An Intel 8086 CPU Emulator written in pure PHP.
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.
Run make bios/bios
.
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
.
Byte
- 8 bit, one single character.Word
- 16 bit, or 2 Byte.
- 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