js86emu

js86emu is an x86 architecture emulator written in Javascript. The goal of this project is to emulate multiple x86 chips along with auxilary hardware such as Harddisk controllers, BIOS and graphics.

A full web based GUI is planned. This includes an online disk library including storage and an online community for sharing and creation of disk images. The idea is that programs (games) will be installed on a disk image and then easily imported. This will ease the common frustrations involved with installation of PC based programs and games (himem.sys will already be configured in the disk image, just run the disk image).

This project started as result of my curiosity about how emulators work. One night I decided to do some research on emulators. I downloaded the DOSBox source code and started reading. I discoverd that the general ideas were not that complicated, the implementation could be complicated but mostly in a tedious way. I thought, "how hard could this be", and began my journey to discover the answer to that question.

I'd like to thank copy from Programming Puzzles & Code Golf for the awesome codegolf challenge. The codegolf challenge included a test program with associated assembly without which I would have never gotten even close to the current level of completion.

Current Progress

The 8086 processor has ~72 instruction represented by 252 numeric opcodes (this actually depends on how you count the group instructions).