PCjs Machines

Home of the original IBM PC emulator for browsers.

Logo

PCjs Blog

PCx86 Uncompiled

Most PCx86 machines on pcjs.org run with a compiled version of PCx86, which is produced by running the PCx86 JavaScript source code through Google’s Closure Compiler, yielding a smaller (minified) version that loads and runs much faster than the original source code.

However, certain features are disabled in the compiled versions, including a new BACKTRACK feature that makes it possible to track the contents of memory locations and registers back to their source (eg, to a ROM or file location). Once the BACKTRACK feature is finished, it will be folded into the compiled code, but until then, the only way to experiment with it is by running the uncompiled code.

To make it easier to launch machines with uncompiled code, a PCx86 machine definition can now set uncompiled to true, overriding the value of site.pcjs.compiled in _config.yml.

Here’s what a typical Markdown file would look like:

---
...
machines:
  - type: pcx86
    id: at-ega-1024k-rev3
    debugger: true
    uncompiled: true
    config: /devices/pcx86/machine/5170/ega/1024kb/rev3/debugger/visual/machine.xml
---
...
{% include machine.html id="at-ega-1024k-rev3" %}

In fact, that’s what we’ve done in the Markdown file you are reading right now.

[PCjs Machine "at-ega-1024k-rev3"]

Waiting for machine "at-ega-1024k-rev3" to load....

Jeff Parsons
Jan 17, 2015