i8086emu
i8086emu copied to clipboard
An Intel 8086 CPU Emulator written in pure PHP.
Intel 8086 CPU Emulator
An Intel 8086 CPU Emulator written in pure PHP.
Project Outlines
The project outlines as described in my blog post about Open Source Software Collaboration.
- The main purpose of this software is to emulate the Intel 8086 CPU using pure PHP.
- The features should not go beyond Intel's features and functions. So the features of this software are limited to those of the Intel 8086 CPU.
- This list is open. Feel free to request features.
Compile the BIOS
Run make bios/bios.
TTY
In order to have a TTY for the in- and output you can specify --tty <path>. This will start a socat subprocess to create an interface between PHP and TTY. The TTY then can be accessed using screen.
Optional, to use a different installation path for the socat binary you can specify --socat <path>.
- Install
socat. - Open a shell and run
./bin/screen.sh. - Open another shell and run
./bin/run.sh.
Terms
Byte- 8 bit, one single character.Word- 16 bit, or 2 Byte.
8086 Resources
- Wikipedia: Intel 8086
- Wikipedia: Processor Register
- Wikipedia: FLAGS Register
- Wikipedia: Parity Flag
- Wikipedia: Word
- 8086 opcodes
- StackExchange: Emulate an Intel 8086 CPU
- x86 Registers
- Encoding x86 Instructions
- Encoding x86 Instruction Operands, MOD-REG-R/M Byte
- X86 Assembly/X86 Architecture
- X86-64 Instruction Encoding
- OUT -- Output to Port
- MDA, CGA, HGC, EGA, VGA, SVGA, TIGA (German)
- 8086/88 Assembler Befehlsreferenz (German)
- X86 Opcode and Instruction Reference
- Understanding Intel Instruction Sizes