Home of the original IBM PC emulator for browsers.
Log in with
SYSTEM/QUOKKA1953The machine boots itself: the KA655’s self-tests first, then OpenVMS, about a minute to the
Username:prompt. Click the terminal before typing.
The machine below is a DEC MicroVAX 3900, the Q22-bus VAX built around the KA655 CPU module:
a CVAX 78034 at 3.125 MHz with the CFPA floating-point accelerator, the CMCTL memory controller, the
CQBIC Qbus interface, and the KA655 console/diagnostic ROM at physical 0x20040000.
Attached devices:
DUA0:OPA0:, as a glass TTY — DCL and the boot stream render correctly, but
screen programs (EDT, EVE, NOTES) do not paintThe disk image is fetched read-only; writes go to an in-memory copy-on-write overlay that vanishes
when you close the tab. Set autoBoot="false" on the <cpu> element of
machine.xml if you would rather stop at the KA655’s >>> prompt and boot by hand.
[PCjs Machine "vax3900"]
Waiting for machine "vax3900" to load....
The port, the media it loads, and how to run it locally are described on the DEC VAX page.
The VAX emulator is JavaScript, and all of it is readable:
modules/v2/ — the
machine itself: cpu.js
and decode.js
for instruction execution, mmu.js
for memory management, cqbic.js
for the Qbus, rqdx3.js
and rq.js for
the MSCP disk controller that DUA0: is attached totests/ — how it is
graded. Most of these are differentials: they run the same instruction stream through this
emulator and through Open SIMH and compare state register by register, rather than asserting
against numbers somebody typed in.browser/ — the Web
Worker the machine runs in, and the disk provider that fetches the volume over HTTPIt is ported site-for-site from Open SIMH’s VAX/ sources
(MIT, © 1998–2019 Robert M Supnik), so a function here generally has a C original with the same
name, and the comments say which one.