Welcome to PCjs, the first IBM PC simulation to run in your web browser without any plugins. It was added to the JavaScript Machines project in Fall 2012, and it is now part of the PCjs Project on GitHub.

The project includes the following web-based emulators:

  • PCjs: an IBM PC and PC-compatible emulator
  • PC8080: an 8080-based machine emulation module
  • C1Pjs: a simulation of the 6502-based OSI Challenger 1P

PCjs first simulated the 4.77Mhz 8088-based IBM PC, and has steadily evolved to support more classic x86 machines, including the IBM PC XT, the 80286-based IBM PC AT, and the 80386-based COMPAQ DeskPro 386. PCjs fully supports the original machine ROMs, video cards, etc, and all machines run at their original speeds.

All the simulations are written entirely in JavaScript. No Flash, Java or other plugins are required. Supported browsers include modern versions of Chrome, Safari, Firefox, Internet Explorer (v9.0 and up), Edge, and assorted mobile browsers.

[IBM PC (Model 5150) with Monochrome Display]

The simulation above features an Intel 8088 running at 4.77Mhz, with 64Kb of RAM and an IBM Monochrome Display Adapter. For more control, there are also Control Panel and Soft Keyboard configurations, featuring the built-in PCjs Debugger. For even greater control, build your own PC. The PCjs Documentation will help you get started.

The goals of the JavaScript Machines project are to create fast, full-featured simulations of classic computer hardware, help people understand how these early machines worked, make it easy to experiment with different machine configurations, and provide a platform for running and analyzing old computer software.

Demos

Some pre-configured machines are shown below, ready to run BASIC, DOS, Windows, OS/2, and other assorted software.

IBM PC running VisiCalc
IBM PC running DONKEY.BAS
IBM PC AT w/EGA, OS/2 1.0
IBM PC XT w/CGA, Windows 1.01
IBM PC XT w/EGA, Windows 1.01
COMPAQ DeskPro 386, Windows/386 2.01
IBM PC AT w/EGA, Windows 3.00
IBM PC AT w/VGA, Windows 3.10
COMPAQ DeskPro 386, Windows 95
IBM PC w/MDA, CP/M-86
IBM PC w/MDA, Microsoft Adventure
IBM PC w/CGA, Zork I

There are many more PCjs Demos, including an IBM PC with Dual Displays demonstrating early multi-monitor support, and multiple IBM PC XT machines running side-by-side with CGA Displays and EGA Displays.

C1Pjs

Below is the OSI Challenger C1P, another simulation in the JavaScript Machines project. It simulates Ohio Scientific’s 6502-based microcomputer, released in 1978. More details about this simulation and the original machine are available in the C1Pjs Documentation.

[PCjs: The Virtual IBM PC]

License

The PCjs Project is now an open source project on GitHub. All published portions are free for redistribution and/or modification under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

You are required to include the following copyright notice, with a link to pcjs.org:

PCjs © 2012-2016 by Jeff Parsons (@jeffpar)

in every source code file of every copy or modified version of this work, and to display that notice on every web page or computer that runs any version of this software.

See LICENSE for details.

More Information

Learn more about the JavaScript Machines Project and PCjs. To create your own PCjs machines, see the Documentation for details.

If you have questions or run into any problems, feel free to tweet or email.