Difference between revisions of "PC-98"

From ReactOS Wiki
Jump to: navigation, search
m (Add page categories)
(Completion Status (rough estimates))
 
(9 intermediate revisions by 4 users not shown)
Line 3: Line 3:
 
== Status ==
 
== Status ==
 
ReactOS PC-98 port is under slow development.
 
ReactOS PC-98 port is under slow development.
 +
 +
=== Completion Status (rough estimates) ===
 +
{| class="wikitable"
 +
! Stage
 +
! Completion
 +
! Comment
 +
|-
 +
| Create a boot sector floppy || 100% ||
 +
|-
 +
| Create ARC platform-specific code for FreeLoader ||  100% ||
 +
|-
 +
| Create kernel debug driver over serial port || 90% || Implemented as cportlib extension, needs to be in a separate driver.
 +
|-
 +
| Create boot video driver || 100% ||
 +
|-
 +
| Create Hardware Abstraction Layer (HAL) || 90% || Almost complete, only bug fixes and minor improvements expected.
 +
|-
 +
| Create video miniport driver for Win32 subsystem || 80% || Only one mode supported: 640x480x8bpp (256 color PEGC).
 +
|-
 +
| Create driver for IDE controller on C-bus || 20% ||
 +
* UniATA attempt: https://github.com/disean/reactos/tree/pc98_uniata
 +
* ATAPI attempt: https://chat.reactos.org/reactos/pl/5fpb6tu8upreb8tqbwfd495y1o
 +
|-
 +
| Create driver for keyboard input || 0% ||
 +
|-
 +
| Create driver for mouse input || 90% || Only bug fixes and minor improvements expected.
 +
|-
 +
| Create driver for console video (for 1st stage setup) || 0% ||
 +
|-
 +
| Create a boot sector for HDD || 0% ||
 +
|-
 +
| Add support for PC-98 hard disk partitioning || 0% ||
 +
|-
 +
| Create drivers for other peripherals, such as NIC, audio, or floppy || 0% ||
 +
|-
 +
| More work along with bug fixes || ||
 +
|}
  
 
== Help in testing ==
 
== Help in testing ==
You can run ReactOS only on [[Supported Hardware/CPU|i586 class CPUs and above]], so that means you can run it on any of the models with a Pentium CPU. Keep in mind ReactOS requires at least 64 MB of RAM. It's recommended to use NEC PC-9821Ra43 with a Celeron CPU @ 433 MHz which is the last model in the series. Currently ReactOS only supports booting from a 1.44 MB 3.5" internal floppy drive. After booting up using the diskette, FreeLoader loads a boot image from any of supported devices: IDE CD-ROM, SCSI CD-ROM or MO.
+
You can run ReactOS only on [[Supported Hardware/CPU|i586 class CPUs and above]], so that means you can run it on any of the models with a Pentium CPU. Keep in mind ReactOS requires at least 64 MB of RAM. It's recommended to use NEC PC-9821Ra43 with a Celeron CPU @ 433 MHz which is the last model in the series. Currently, ReactOS only supports booting from a 1.44 MB 3.5" internal floppy drive. After booting up using the diskette, FreeLoader loads a boot image from any supported devices: IDE CD-ROM, SCSI CD-ROM, or MO.
  
 
You need the following steps:
 
You need the following steps:
 
* Check out [[ReactOS FAQ#Testing ReactOS on real hardware|this article]] to learn more about the testing process.
 
* Check out [[ReactOS FAQ#Testing ReactOS on real hardware|this article]] to learn more about the testing process.
 
* You should be able to [[Building ReactOS|compile ReactOS]].
 
* You should be able to [[Building ReactOS|compile ReactOS]].
 +
* Open file <code>boot/bootdata/livecd.ini</code> and add <code>/HAL=halpc98.dll</code> to every <code>Options</code> record (To be fixed in future versions).
 
* Run the following command <code>configure -DSARCH=pc98</code> before compilation to set target platform as PC-98.
 
* Run the following command <code>configure -DSARCH=pc98</code> before compilation to set target platform as PC-98.
 
* Execute <code>ninja pc98bootfdd</code> build target to create a bootable floppy image. The created image will be placed on <code>/output folder/PC98/</code>.
 
* Execute <code>ninja pc98bootfdd</code> build target to create a bootable floppy image. The created image will be placed on <code>/output folder/PC98/</code>.
* Build and burn a LiveCD/BootCD ISO image.
+
* Build and burn a LiveCD ISO image (BootCD is not supported yet).
 
* Insert the floppy disk, medium, and boot ReactOS.
 
* Insert the floppy disk, medium, and boot ReactOS.
  
Any test results will be useful to improve PC-98 port.
+
Any test results will be useful to improve the PC-98 port.
  
 
== Hardware ==
 
== Hardware ==
The PC-9800 series use a custom hardware C-bus (later models do use PCI) and a firmware that is completely different from a Standard PC BIOS, so a new [[HAL]] should be created.
+
The PC-9800 series use a custom hardware C-bus (later models do use PCI) and a firmware that is completely different from a Standard PC BIOS.
  
 
In Windows 2000 there are four known HALs for this platform:
 
In Windows 2000 there are four known HALs for this platform:
Line 35: Line 73:
  
 
PC-9800 series hard disks are usually formatted with FAT12, but they use 1024 bytes per sector as opposed to the PC's 512.
 
PC-9800 series hard disks are usually formatted with FAT12, but they use 1024 bytes per sector as opposed to the PC's 512.
 +
 +
Some known chipsets used on the Pentium and later PC-98s are:
 +
* Intel 430FX, 430HX, 430VX, 430TX, 440FX, and 450KX
 +
* VLSI Wildcat (SuperCore 594)
 +
 +
Some known windows accelerators used in PC-98 are:
 +
* Trident Microsystems TGUI 9660/938x/968x
 +
* Cirrus Logic CL-GD5430 and CL-GD5446
  
 
== Emulation ==
 
== Emulation ==
* Neko Project 21/W is a NEC PC-9821 series emulator that can run Windows 2000. It potentially can be used for ReactOS PC-98 port development and testing.
+
* Neko Project 21/W is an NEC PC-9821 series emulator that can run Windows 2000. It potentially can be used for ReactOS PC-98 port development and testing.
* SL9821 is a NEC PC-9821 series emulator with partial compatibility with Windows 2000 (no sound, no network, IDE issues). ROM image files are required to run SL9821.
+
* SL9821 is an NEC PC-9821 series emulator with partial compatibility with Windows 2000 (no sound, no network, IDE issues). ROM image files are required to run SL9821.
 
* QEMU/9821 also exists, but it seems not maintained anymore and does not run Windows 2000.
 
* QEMU/9821 also exists, but it seems not maintained anymore and does not run Windows 2000.
 
* DOSBox-X and MAME can emulate a wide range of PC-98 hardware.  
 
* DOSBox-X and MAME can emulate a wide range of PC-98 hardware.  
Line 54: Line 100:
 
* [https://github.com/mamedev/mame MAME]
 
* [https://github.com/mamedev/mame MAME]
 
* [https://github.com/joncampbell123/dosbox-x/issues/106#issuecomment-132394519 Overview of PC-98 hardware and BIOS architecture]
 
* [https://github.com/joncampbell123/dosbox-x/issues/106#issuecomment-132394519 Overview of PC-98 hardware and BIOS architecture]
* [https://gist.github.com/tomari/3793102 Example output of the lspci command], [https://www.mail-archive.com/freebsd-users-jp@jp.freebsd.org/msg04032.html and another one (pciconf)]. Device manager listing: [http://hamlin.html.xdomain.jp/pc98/pc98irq/pc98irq.htm], [https://weblabo.griffonworks.net/dorlog/2nddorcom/pc-98/52028.html], [http://www.cham-reo.com/logsearch/Log.aspx?c=pc-98&d=19990715T192005&id=2052].
+
* [https://gist.github.com/tomari/3793102 Example output of the lspci command], [https://www.mail-archive.com/freebsd-users-jp@jp.freebsd.org/msg04032.html and another one (pciconf)]. [http://rs20.nextfoods.jp/index.php?spec Boot log from an SMP machine]. Device manager listing: [http://hamlin.html.xdomain.jp/pc98/pc98irq/pc98irq.htm], [https://weblabo.griffonworks.net/dorlog/2nddorcom/pc-98/52028.html], [http://www.cham-reo.com/logsearch/Log.aspx?c=pc-98&d=19990715T192005&id=2052].
 
* [https://github.com/lpproj/fdkernel/tree/nec98test/nec98 FreeDOS(98) kernel source code]
 
* [https://github.com/lpproj/fdkernel/tree/nec98test/nec98 FreeDOS(98) kernel source code]
 
* [https://www.betaarchive.com/forum/viewtopic.php?f=61&t=35758 Discussion on BetaArchive]
 
* [https://www.betaarchive.com/forum/viewtopic.php?f=61&t=35758 Discussion on BetaArchive]
Line 63: Line 109:
 
[[Category:Documentation]]
 
[[Category:Documentation]]
 
[[Category:Development]]
 
[[Category:Development]]
 +
[[Category:Hardware Platforms]]

Latest revision as of 14:25, 5 November 2020

The NEC PC-9800 series are 16/32-bit computers from NEC Corporation. It marked a shift away from the Z80-based PC-88 to the x86 architecture. Just like their predecessor series, they were known for their unique sound hardware by YAMAHA, and games kept the systems popular. They were likely never released outside Japan in the series lifespan, except for the APC III.

Status

ReactOS PC-98 port is under slow development.

Completion Status (rough estimates)

Stage Completion Comment
Create a boot sector floppy 100%
Create ARC platform-specific code for FreeLoader 100%
Create kernel debug driver over serial port 90% Implemented as cportlib extension, needs to be in a separate driver.
Create boot video driver 100%
Create Hardware Abstraction Layer (HAL) 90% Almost complete, only bug fixes and minor improvements expected.
Create video miniport driver for Win32 subsystem 80% Only one mode supported: 640x480x8bpp (256 color PEGC).
Create driver for IDE controller on C-bus 20%
Create driver for keyboard input 0%
Create driver for mouse input 90% Only bug fixes and minor improvements expected.
Create driver for console video (for 1st stage setup) 0%
Create a boot sector for HDD 0%
Add support for PC-98 hard disk partitioning 0%
Create drivers for other peripherals, such as NIC, audio, or floppy 0%
More work along with bug fixes

Help in testing

You can run ReactOS only on i586 class CPUs and above, so that means you can run it on any of the models with a Pentium CPU. Keep in mind ReactOS requires at least 64 MB of RAM. It's recommended to use NEC PC-9821Ra43 with a Celeron CPU @ 433 MHz which is the last model in the series. Currently, ReactOS only supports booting from a 1.44 MB 3.5" internal floppy drive. After booting up using the diskette, FreeLoader loads a boot image from any supported devices: IDE CD-ROM, SCSI CD-ROM, or MO.

You need the following steps:

  • Check out this article to learn more about the testing process.
  • You should be able to compile ReactOS.
  • Open file boot/bootdata/livecd.ini and add /HAL=halpc98.dll to every Options record (To be fixed in future versions).
  • Run the following command configure -DSARCH=pc98 before compilation to set target platform as PC-98.
  • Execute ninja pc98bootfdd build target to create a bootable floppy image. The created image will be placed on /output folder/PC98/.
  • Build and burn a LiveCD ISO image (BootCD is not supported yet).
  • Insert the floppy disk, medium, and boot ReactOS.

Any test results will be useful to improve the PC-98 port.

Hardware

The PC-9800 series use a custom hardware C-bus (later models do use PCI) and a firmware that is completely different from a Standard PC BIOS.

In Windows 2000 there are four known HALs for this platform:

File Name Hardware ID String HAL Name
hal98up.dll nec98Notmr_up PC-9800 System Clock 10MHz
hal98tmr.dll nec98tmr_up PC-9800 System Clock 10MHz (support 2nd Timer)
hal98apc.dll nec98mps_up NEC PC-9800 APIC HAL
hal98mp.dll nec98mps_mp NEC PC-9800 MPS HAL

PC-9800 series hard disks are usually formatted with FAT12, but they use 1024 bytes per sector as opposed to the PC's 512.

Some known chipsets used on the Pentium and later PC-98s are:

  • Intel 430FX, 430HX, 430VX, 430TX, 440FX, and 450KX
  • VLSI Wildcat (SuperCore 594)

Some known windows accelerators used in PC-98 are:

  • Trident Microsystems TGUI 9660/938x/968x
  • Cirrus Logic CL-GD5430 and CL-GD5446

Emulation

  • Neko Project 21/W is an NEC PC-9821 series emulator that can run Windows 2000. It potentially can be used for ReactOS PC-98 port development and testing.
  • SL9821 is an NEC PC-9821 series emulator with partial compatibility with Windows 2000 (no sound, no network, IDE issues). ROM image files are required to run SL9821.
  • QEMU/9821 also exists, but it seems not maintained anymore and does not run Windows 2000.
  • DOSBox-X and MAME can emulate a wide range of PC-98 hardware.

See Also

ReactOS ports‎
In active development Intel IA-32 (x86) | AMD64 (x64)
In slow development NEC PC-98 (x86) | Xbox (x86)
Unmaintained ARM32 (armv7) | PowerPC (ppc) | OLPC (x86)
Missing ports that Windows has ARM64 (aarch64) | Intel IA-64 (Itanium) | SGI 320/540 (x86) | DEC Alpha (axp) | MIPS