PCjs Machines – In‑Browser Emulation of Classic IBM PCs, DEC Minicomputers, and More
PCjs Machines – In‑Browser Emulation of Classic IBM PCs, DEC Minicomputers, and More
What PCjs Offers and Why It Matters
PCjs is a browser‑based emulator that reproduces the hardware and software of classic IBM PCs, DEC minicomputers, calculators, terminals, and arcade machines using pure JavaScript. By running entirely in a web page, it lets anyone experience the slow CPUs, low‑resolution displays, and primitive sound of 1970s‑80s computers without installing legacy operating systems or hardware. This accessibility preserves a large swath of computing history and provides a practical platform for education, hobbyist tinkering, and software archaeology.
Core Features of the PCjs Platform
JavaScript‑Only Emulation
- PCjs implements the entire hardware stack—from CPU to video adapters and floppy drives—in JavaScript, eliminating the need for plugins or native code.
- The emulator runs on desktop and mobile browsers, including Apple Silicon Macs, as demonstrated by a user who created a Visual Basic program in Windows 3.1, exported the executable, and ran it on a real 1992 IBM PC‑AT after transferring the file via a floppy.
Vast Library of Machines and Software
- IBM PC Compatibles – Models such as the IBM 5150, PC XT, AT, PC Jr, and various COMPAQ machines (Portable, DeskPro 286/386, LTE/286) are fully emulated with CGA, EGA, VGA, and monochrome graphics options.
- DEC Minicomputers – PDP‑10 (KA10, KL10) and PDP‑11 (20, 45, 70) families with front‑panel debugging, VT100 terminals, and a rich set of ROMs and diagnostic tapes.
- Calculators and Terminals – TI‑57, TI‑42, TI‑55, Ohio Scientific Challenger 1P, and DEC VT100 terminals.
- Arcade Classics – Space Invaders (1978) and other early arcade titles.
- Software Archive – Over 200 public‑domain and shareware titles, including DOS utilities (Norton Utilities, PC‑SIG Diskette Library), early Windows versions (1.0 through 95), productivity apps (VisiCalc, Lotus 1‑2‑3, Microsoft Word, Excel), games (Zork, Commander Keen, Wolfenstein 3D, Dune II), and development tools (Turbo Pascal, QuickBASIC, Microsoft C compilers).
- Documentation & Source – Full BIOS source, manuals, datasheets, and the open‑source project on GitHub (MIT‑licensed) enable deeper study and contributions.
Interactive Explorer
- The PCjs Explorer lets users expand or collapse the entire hardware/software hierarchy, “Surprise Me” random selections, and directly launch any machine or disk image in the browser.
Community Reactions Highlighted on Hacker News
Real‑World Cross‑Platform Workflow
"I created a small program in Visual Basic on Windows 3.1 inside PCjs, exported the .exe and vbrun100.dll, copied them to a real floppy, and ran the program on a 1992 Intel 486‑DX machine. The whole chain worked flawlessly." – mk_stjames
This anecdote proves that PCjs can produce artifacts that are truly usable on original hardware, bridging emulation and preservation.
Nostalgia and Educational Value
"So many goosebumps going down memory lane." – nashashmi
"I cannot wait to sit my kids down in front of full‑screen Oregon Trail and King's Quest experiences." – CharlesW
These comments underscore the platform’s appeal for both personal nostalgia and introducing younger generations to classic software.
Technical Observations
"The sound was cutting out in the ‘Exploring the IBM PC’ demo; the music seems to be missing rests. It’s not perfect, but the bootable tutorial is a great way to learn the original keyboard layout." – drivers99
"Turn down your speakers for a few of these; Dune II is very loud and lacks a volume knob." – danvayn
Users are already testing the fidelity of audio and hardware behavior, providing valuable feedback for further refinement.
Why PCjs Stands Out Among In‑Browser Emulators
- Breadth of Content – Few projects cover as many architectures (IBM PC, DEC, 6502‑based OSI machines) and software generations in a single UI.
- Open‑Source Transparency – The entire codebase, BIOS sources, and documentation are hosted on GitHub, allowing developers to audit, fork, and extend the emulator.
- Educational Tools – Built‑in CPU exercisers, debuggers, and diagnostic suites (e.g., IBM PC diagnostics, DEC PDP‑11 tests) make the site a practical learning environment for low‑level programming and computer architecture.
- No Installation Barrier – Because everything runs in JavaScript, users can start a session with a single click, even on devices that cannot run native emulators.
Getting Started with PCjs
- Visit pcjs.org.
- Use the top navigation to choose a machine category (e.g., Machines → IBM → PC 5150 → VGA).
- Click a software title (e.g., Microsoft Windows 3.1) to launch the emulator.
- Interact with the virtual keyboard, mouse, and display just as you would on the original hardware.
- Explore the Explorer panel for random selections or to drill down into specific ROMs, disk images, or diagnostic programs.
Contributing and Extending the Archive
- The project welcomes contributions of additional ROMs, software images, documentation, and bug fixes.
- All contributions are governed by the MIT License, ensuring that the archive remains freely available.
- Detailed contribution guidelines and a roadmap are available in the GitHub repository github.com/jeffpar/pcjs.
Conclusion
PCjs transforms the web browser into a time machine, delivering authentic, interactive experiences of historic computers and software. Its extensive catalog, open‑source nature, and community‑driven development make it a unique resource for preservationists, educators, and anyone curious about the origins of personal computing.