FYSOS: Emulates FYSOS

Update: My 32-bit real mode emulator is far enough along that it will now load FYSOS itself.

i.e.: FYSOS will load and emulate itself, at least up to the point where paging and protection is needed.

(To view full size, right click, then select "View Image", or what ever your browser's options are).

x86_emu_fysos_0.png

 

It still needs some work. And since it is starting to be GUI heavy, the GUI bug I meantioned earlier really comes into play. I really needed to find it...

FYSOS: Emulates DOS 5.0a

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).

x86_emu_dos50.png

 

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.