First post, by UselessSoftware
Hi, I wanted to share a very early version of my 80186 PC emulator and get some feedback if anybody is interested.
Current features:
- Full 80186 instruction set support
- Standard XT-class PC chipset support (8259, 8253, 8237, 8255, 8250)
- Microsoft-compatible serial mouse
- CGA, EGA/VGA
- Sound Blaster 2.0
- Adlib/OPL2 (Nuked OPL, though I plan to finish my own version just for fun)
- PC speaker
- Hard and floppy disk support at int 13h level (I'm working on proper FD and HD controllers)
- RTC
- NE2000 emulation (adapted from Bochs)
- Modem emulation via TCP (client and server)
- Support for multiple machine definitions (Different BIOSes, memory maps, peripherals, etc)
Known issues:
- Some parts of chipset incomplete or buggy (Due to this, only the public domain Turbo XT BIOS seems to boot 100% correctly)
- CGA is not perfect if you try to do tricky things with the registers
- EGA/VGA has a couple of issues I'm still trying to track down, but working for the most part
- PC speaker is not perfect
- Modem emulation very buggy in server mode (Most BBS programs don't like it) but seems to work well in client mode with terminal software
Future goals:
- Proper disk controllers
- 286 and then 386/486 support
- VESA high res/color modes in VGA module
- Additional peripherals
Source code and screen shots: https://github.com/mikechambers84/XTulator
Pre-compiled Windows binary plus ROMs and a sample hard disk image with DOS and some old games available here:
https://gofile.io/d/TCobEf
It's currently able to boot MS-DOS, MINIX 2, run Windows 3.0 and play many real mode DOS games. The "GUI" in Windows is super minimal and I'm going to be fleshing that out some more. You can see all of the available options by running XTulator.exe -h at the command prompt.
XTulator.exe -hd0 hd0.img will boot the sample image using the default generic, speed-unlimited XT machine definition.
I'm happy to hear any feedback/constructive criticism/bug reports etc if anybody feels like giving it a shot! Again, this is a very early build so issues are to be expected.