Repository navigation
Tab5 PC 1.6.0: faster DOS programs and disks, the FPU reported by the BIOS, a 486 with CPUID, and Wi-Fi that stays as you left it. See CHANGELOG.md for the full list and the README for how to use it.
Changes
- Faster DOS programs: the instructions DOS programs still ran in the slow interpreter are now translated: long string copies and searches (REP MOVS/STOS across pages, REP LODS, string compares and scans, backward copies), RCL/RCR, the BCD instructions, POP SS, LAR/LSL, 16-bit SHLD/SHRD. Text-mode video memory goes straight to the emulated VGA's memory. A DOS benchmark's score goes from 83 to about 184. Translated code is also ~20% smaller, so more of it fits the cache: a game's timed demo ~3% faster, Linux workloads 10-13%.
- Faster disks: a write command's sectors go to the card together (a DOS file copy takes half as long, Linux writes ~1.7x faster); sequential reads are read ahead on the other core (DOS ~6 MB/s, Linux ~3.8 MB/s); bus-master DMA for Linux kernels that use it (Sprig Linux 1.5.0: ~4.1 MB/s); CD images read as raw card sectors (4-6 MB/s, a disc change in 0.5 s); a Linux kernel loads in 0.22 s instead of 2.1 s.
- The BIOS reports the math coprocessor: programs that ask the BIOS before using the FPU now use it instead of doing floating point in software (a benchmark's FPU test: 6.5 -> 205 "MHz").
- The 486 has CPUID (
gen = 4): programs can set the EFLAGS ID bit, and CPUID names the maker GenuineIntel, as QEMU's Intel CPU models do. F2XM1 outside -1..+1 leaves its operand as Intel FPUs can. A system information program now reports an 80486DX with its coprocessor. - Wi-Fi stays as you left it, on or off, after a restart, a power-off or a crash.
- The clock: opening the Tab5's web page sets its clock and time zone from your browser's; while Wi-Fi is on, the Tab5 also checks its clock with pool.ntp.org.
- tiny386 updated: blinking text, the cursor's shape, the keyboard's scancode set 2; several of our fixes are now tiny386's own.
- Fixes: 40-column text shows all its columns; and others (see the changelog).
Firmware (one image, written at address 0x0, e.g. esptool --chip esp32p4 write-flash 0x0 tab5-pc-1.6.0-prev3.bin). Writing the image clears the saved settings: choose your Wi-Fi network again in the settings panel (and set your time zone again by opening the web page or with clock tz).
tab5-pc-1.6.0-prev3.bin: for the Tab5 (its ESP32-P4 is revision v1.x: esptool prints "revision v1.x"). Tested.
Licenses and source (the firmware contains third-party software, some of it under the LGPL):
tab5-pc-1.6.0-NOTICES.txt: the notices and license texts of everything in the firmware.tab5-pc-1.6.0-source.tar.gz: the corresponding source (this repository at v1.6.0, tiny386 and ESP-Hosted as patched, SeaBIOS, the BIOS images, the Arduino core as built);SOURCE.txtinside explains how to rebuild.SHA256SUMS
No SD card images are provided: the Tab5 downloads FreeDOS or Sprig Linux itself, or tools/make_sdcard.py prepares a card. See docs/DISTRIBUTION.md.