Barely-IBM-compatible PC emulator written in Lua 5.3.
- Copy over the .lua files to an OpenComputers drive.
- Prepare uncompressed, raw .img files for your floppy disks and hard disks.
- Run Lunatic86 (
lunatic86.lua -hfor help).
Note that floppy drives require a known floppy drive-matching size. Meanwhile, hard drives can be of any size, but they are assumed to always have 63 sectors and 16 heads.
Do not edit emu_core.lua! It is automatically generated by compile.sh - edit emu_core_pre.lua instead.
- Run ./compile.sh on a (preferably?) Linux machine.
- Run lunatic86 in OpenComputers. (The curses port needs fixing)
- CPU: 8086-esque
- Graphics: CGA (640x200x1, 320x200x2, text modes), 320x200x8 (Mode 13h)
- With some partial I/O ports emulation!
- BIOS: High-level emulation
- Decent implementations of most expected interrupts
- Audio: PC Speaker (Computronics Beep Card)
- Keyboard: PC XT-compatible
- 8259 PIC
- 8253 PIT
- Graphics: Tandy-compatible
- BIOS: Serial/Printer Port interrupts, INT 15h
- Pretty much anything not listed
- platform.lua outputs debug text to stderr. Run with "2>/dev/null" to avoid.
- The performance on my desktop (i7-4790K) seems to be:
- about 3x PC XT in Lua 5.3,
- about 0.6x PC XT in latest stable OpenComputers,
- about 1x PC XT in latest stable OpenComputers + fixed machine.lua - you may override it server-side,
- about 1.8x PC XT in latest stable OpenComputers + fixed machine.lua + natives recompiled to actually use -O2 and not debug mode,
- about 2.5x PC XT in Kallisti with the timeout-checking code disabled altogether, and about 1.8x PC XT otherwise.
- There's a lot of bugs and hacks.
Many. See the Wiki for the Compatibility List.
In particular, a "reduced memory usage" mode has to be introduced for OC users.
TBD. For now, consider it "all rights reserved" - or just ask on IRC.
- 8086tiny, for providing the initial motivation and being one of the emulators which proved helpful during development
- Publicly available 8086 test suites used:
- 80186_tests.zip
- riapyx's test suite - incomplete, but helpful nonetheless