Some time ago, fellow coders commented that they might add x86 emulation to their OS instead of using the Virtual x86 mode the hardware supports. This was an interesting idea, so I started to play around with it.
I ended up making it a much larger project and decided to emulate the whole machine instead of just the v86 mode stuff.
Therefore, FYSOS has a 32-bit (un)real-mode emulator that currently loads and runs DOS 5.0a.
(To view full size, right click, then select "View Image", or what ever your browser's options are).
It still needs some work, but so far the early stages of the basic hardware are supported.
- 80x386 CPU, (un)real mode, no protection or paging.
- CMOS: 64 bytes of standard CMOS
- PIT: Standard Programable Interval Timer
- PIC: Standard Programable Interupt Controller
- FDC: Floppy Disk Controller allowing up to 4-drives
- DMA: Standard ISA DMA (used by the FDC)
- Serial: Standard Serial Port (not complete)
- Parallel: Standard Parallel Port (Sends data to a file: not complete)
- Keyboard: PS/2 Keyboard controller. The FYSOS GUI needs a little work to make the make/break codes correct.
- VGA: Standard VGA graphics (Text mode only at the moment)
- ATA: Nothing has been implemented for hard drives yet.
- Other hardware to come, though PCI needs to be implemented first.
The "Bochs" reference you see is the BIOS from Bochs. My emulator loads a 64k or 128k BIOS from disk. This means any BIOS can be loaded.