Linux/PC-98 v0.7.0
Linux/PC-98 v0.7.0
This release restores IDE and SCSI Linux 7.1 disk images for NEC PC-9800 machines, updates the replaceable BOOT98 boot chain, and provides a Windows x64 build of qemu-pc98. Public disk images use the GDC display and PC-98 keyboard as the console.
The PC-9801-55/92 Linux driver is included in the i386 and i486 kernels. PC-9801-55-compatible images use H=8/S=17 geometry, while PC-9801-92 images use H=8/S=32 geometry.
Choosing a disk image
| Image | CPU and userland | Interface and geometry | Minimum RAM | Raw size limit |
|---|---|---|---|---|
linux-pc98-i386sx-busybox-ide.img.xz |
i386SX, static BusyBox | IDE, H=8/S=17 | 5 MiB | below 40 MB |
linux-pc98-i386sx-busybox-scsi55.img.xz |
i386SX, static BusyBox | PC-9801-55 compatible SCSI, H=8/S=17 | 5 MiB | below 40 MB |
linux-pc98-i386sx-busybox-scsi92.img.xz |
i386SX, static BusyBox | PC-9801-92 SCSI, H=8/S=32 | 5 MiB | below 40 MB |
linux-pc98-i486dx-debian13-ide.img.xz |
i486DX or newer, Debian 13/i486 | IDE, H=8/S=17 | 64 MiB | below 2 GB |
linux-pc98-i486dx-debian13-scsi55.img.xz |
i486DX or newer, Debian 13/i486 | PC-9801-55 compatible SCSI, H=8/S=17 | 64 MiB | below 2 GB |
linux-pc98-i486dx-debian13-scsi92.img.xz |
i486DX or newer, Debian 13/i486 | PC-9801-92 SCSI, H=8/S=32 | 64 MiB | below 2 GB |
Write the appropriate decompressed image to a CF card, SD adapter, SCSI2SD,
BlueSCSI, or another block device. Writing an image destroys the existing
contents of the destination device.
Windows qemu-pc98
qemu-pc98-win64.zipcontains x86_64 and i386 QEMU system binaries,
required runtime DLLs, libusb support, and the free compatibility BIOS.virtpc98.exeis included as the graphical frontend.
Kernels and boot loaders
vmlinux-i386is the low-memory Linux 7.1 kernel for i386SX systems.vmlinux-i486-debianis the Linux 7.1/i486DX kernel used by the Debian images.bootloader.zipcontainsLINUX98.EXE,INST.EXE, the three.IMGinstaller inputs,IO.SYS,BOOT.SYS,BOOT.CFG, and documentation.
BOOT98 can chain-load an active partition on another fixed disk without losing its BIOS unit number. This permits the NEC fixed-disk boot menu and DOS partition boot records to continue loading from the selected disk.
Boot from DOS
Copy LINUX98.EXE and an uncompressed VMLINUX to a DOS-accessible FAT volume and run, for example:
LINUX98 VMLINUX ide0 root=PARTLABEL=LINUXROOT rw
LINUX98 VMLINUX scsi0 root=/dev/sda2 rw
Run it from plain real-mode DOS. Memory managers or other software that has already entered protected mode can prevent the loader from taking control.
Bootloader
Read README.md and DOS-README.md in bootloader.zip.
Our boot sequence:
ITF ... Reads LBA0-1 and jumps. (LBA0 is the boot sector, LBA1 is the partition table)
LBA0 ... Reads LBA2 and jumps
LBA2-15 ... Reads LBA3-15 and execute. Just jumps to the PBR of the "BOOT" partition.
BOOT partition PBR ... Loads our IO.SYS and jumps.
IO.SYS ... Loads BOOT.SYS, enters the protected-mode, and jumps.
BOOT.SYS ... 32-bit boot loader program. Loads VMLINUX from the "BOOT" partition and jumps
INST.EXE installs our boot codes to a specified disk or a partition.
# LBA0
INST /LBA0
# LBA2-15
INST /LBA2
# Partition PBR and IO.SYS
INST /PART C:
COPY BOOT.SYS C:
Reproducible build
The complete release artifact set is generated with:
./build.sh release --version v0.7.0