node package manager



An object-oriented JavaScript x86 Emulator

jemul8 takes an object-oriented approach to emulation. Primarily an educational tool, it aims to provide a detailed description of the internal workings of an IBM-compatible PC.

It is built using the easy-to-use language JavaScript, so it may be picked up and tweaked by even the amateur programmer.

It aims to reflect computer science concepts, such as Fetch-Decode-Execute, in a largely abstract context, although the only instruction set currently supported is Intel's IA-32/x86 architecture.

Live demo

Run the tests

To run the tests, visit /tests/bdd/ in the browser. For example, to run the tests from the demo environment on, visit to run the Mocha tests (warning: this is slow - it is recommended to run the tests locally.)

A simple example of instantiating the emulator:

var emu = new jemul8( {
    , "floppy0.diskType":
    , "floppy0.path":
    , "floppy0.status": true
} );
emu.init(function () {;
}, function () {
    // Load failed