thefox / i8086emu
Intel 8086 CPU Emulator
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 26
Watchers: 5
Forks: 1
Open Issues: 3
Type:project
Requires
- php: ^7.2
- nesbot/carbon: ^1.32.0
- symfony/console: ^4.1.0
- symfony/process: ^4.1.0
Requires (Dev)
- ext-pcntl: *
- ext-xdebug: *
- phpstan/phpstan: ^0.9.0
- phpunit/phpunit: ^7.2.0
- squizlabs/php_codesniffer: ^3.3.0
This package is auto-updated.
Last update: 2024-12-24 06:18:49 UTC
README
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