We modified Linux 2.1.57 kernel source with plenty of dirty patches.
But we are reconstructing Linux/98 patch for Linux 2.3 kernel so that it will not break any other architecture support such as original i386 architecture.
CONFIG_PC9800 #defines for distinction
NEC PC-9800 specific code from original i386 code.
arch/i386/boot/pc9800 directory are newly created
because boot code using BIOS are pretty different from IBM PC/AT compatibles.
CONFIG_PC9800 is not defined when compiling the kernel,
you can get the kernel binary for IBM PC/AT compatibles.
In the following, first we explain NEC PC-9800 architecture to you. Then, we describe the situation around Linux for NEC PC-9800.
First of all, the arrangement of I/O ports, memory maps and BIOS are different from PC/AT.
|MPU||ix86 and compatibles (the same!!)|
|legacy narrow bus||C-bus (The counterpart is ISA-bus.)|
|DMA||8237AC (only 4 channels, band width is 8bit)|
|Calender Timer||NEC mu PD4990A|
|Keyboard||controller is 8251A|
(Key map is customed from ASCII keyboard. It is called JIS keyboard. JIS means Japanese Industrial Standard.)
|BIOS||PC-9800 specific, quite different.
|FDC||NEC mu PD765A|
|SCSI host adapter||Most popular adapters for C-bus use WD33C93 chip.|
|Mouse||Logitech bus mouse|
|Serial port||COM1: NEC mu PD8251A with or without FIFO.|
COM2: 16550A (legacy PC-9800 doesn't have COM2.)
|Sound||Not Sound Blaster, but PC-9800 specific.|
The original PC-9800 architecture is pretty different from PC/AT as you see above.
But the functions which have been added recently are almost compatible with PC/AT. Those are PCI, APM, PCMCIA, DPMS, IDE/ATAPI, WSS/MSS and so on. Most of the cards for PCI on PC/AT will run on PC-9800 if the BIOS on the card can be disabled. SMP is based on Intel MP Architecture. The primary and secondary IDE/ATAPI interface have the same I/O port address of which bank is switchable.
NEC and other companies have sold some 20 million PC-9800's. They had more than half market shares in Japan only 3 years ago.
We've developed Linux/98 based on main Linux 2.1.57 since Summer 1997. We wrote a lot of #ifdef ... #endif's in arch/i386/ and made some device drivers for PC-9800 specific devices, such as SCSI host adapter. We've modified console driver for Japanese character support on PC-9800. We added a PC-9800 specific disk partition format support into drivers/block/genhd.c. The numbers of other small changes are numerous.
In addition to the kernel patches, our team has developed kernel releavant utilties. For example,
Linux/98 based on 2.1.57 is stable enough and used by some 1,000 people, we think.
XFree86 3.3.2 (and over) includes server binaries for Linux/98 in their official release. You can find 'XFree86 PC98 Servers for Linux-ix86' in their ftp site.
We have 'Plamo Linux' distribution for Linux/98, though Plamo Linux
supports PC/AT, too. Plamo Linux is a variant of Slackware,
mainly developed by KOJIMA Mitsuhiro.
Plamo Linux for PC-9800 has been be distributed broadly via magazines' extra CD-ROMs (4 times), 2 books extra CD-ROMs and so on.