Keep tabs on the PCjs Project on GitHub: Releases, Issues, and Commits.

For random musings about PCjs, web technologies, old hardware and software, and more, read on.

Posts

  • Of Mice And When

    While trying to bring the PCjs Microsoft Mouse Driver collection up-to-date, at least through the 1980’s, a number of versions have proven hard to find:...

  • dBASE III Copy Protection Revisited

    One of the earliest tasks I remember tackling on an IBM PC was a basically a favor for my father-in-law, Tom Estelita. In 1984, he had purchased a copy of dBASE III and had become frustrated by its copy-protection. The previous version, dBASE II, had no such protection, which probably added to his frustration. At the time, he was running his own tiny software company, Radix 2 Software, and he certainly wasn’t interested in redistributing dBASE III – he just wanted to be able to back-up his software and switch between a handful of machines without the hassle or worry of relying on a single fragile copy-protected diskette....

  • RetroReview: SPEEDUP

    While browsing the June/July 1982 issue of PC Magazine (Vol. 1, No. 3), I found the following User-To-User article about an intriguing little program called SPEEDUP. Unfortunately, the first time I tried it, it immediately hung my test machine. Here’s the original article, followed by my analysis of the program and why it hung....

  • Flicker Fakery

    One of my long-standing pet peeves about PC emulators has been their obsession with raw speed, and how hard they try to squeeze every last drop of performance out of their instruction execution loop, on the assumption that everyone wants an 8088 that runs at, say, 500Mhz, as opposed to the stately 4.77Mhz of the original IBM PC....

  • Magware

    You may recall from my last post that I had tracked down some useful Modula-2 test code, originally published in PC Tech Journal (October 1986), inside a ZIP archive at “THE PROGRAMMER’S CORNER: BBS ARCHIVE FROM THE PAST”....

  • FantasyLand

    I recently added a demo of the Logitech Modula-2/86 Compiler (1984), because I wanted to recreate the IBM PC test environment that John T. Cockerham had used in his October 1986 PC Tech Journal article “Evaluating the EGA: The EGA Standard”....

  • Adventures in Archiving

    In October 1983, IBM released a game called “Adventures in Math”, which apparently tried to make mathematics as exciting as walking through a dungeon full of locked doors, treasures, spiders, and more. I had never heard of this game, until I was recently browsing the Internet Archive’s MS-DOS Showcase:...

  • Stepping Through PDP-10 Diagnostics

    Now that the PDPjs MACRO-10 Mini-Assembler is limping along, it’s time to start assembling some of DEC’s PDP-10 “Basic Instruction” diagnostics and loading them into a test machine. The first diagnostic I tried was KA10 Basic Instruction Diagnostic #1 (MAINDEC-10-DAKAA), which has been loaded into the machine below....

  • The MACRO-10 Assembler, 50 Years Later

    A few weeks ago, I finished my first cut of the core PDP-10 instructions in PDPjs. Most of my remaining work falls into these categories:...

  • Learning the PDP-10

    Since I’ve more or less achieved all my goals for the PCjs PDP-11 Emulator, I’ve decided to turn my attention to an even older historically important DEC computer: the PDP-10....

  • PDP-11 Operator's Console (Front Panel) Demo

    As I mentioned in the “PDP-11 Tutorials” blog post, I’ve been working on some methods for visually illustrating how machine components work. And the PDP-11/70 Operator’s Console, with its daunting number of lights and switches, seemed like a good candidate....

  • Completing the Switch to ES6 Classes

    As I mentioned last December, I had started converting PCjs machines to ECMAScript 2015, more conveniently known as ES6. At the time, only one PCjs machine, PDPjs, had been converted, which left the website in the unfortunate position of having duplicate shared modules: one set for ES5-based machines and another set for ES6....

  • PDP-11 Tutorials

    Introducing PDP-11 tutorials. For more details, keep scrolling, and keep your eye on the VT100 below....

  • Out With The Old, In with ECMAScript 2015

    As 2016 was drawing to a close, browser support for ECMAScript 2015 (aka ES6) was looking pretty good, so maybe it was time to start taking advantage of a few ES6 features, especially:...

  • The PDP-11 and VT100 Revisited

    I recently did some more work on the PCjs VT100 Terminal emulation, making it work a bit better with other PCjs machines – specifically, PDP-11 and IBM PC machines....

  • Debugging PDP-11 Issues

    I’m still trying to flush out lingering bugs in PDPjs. I’ll give you an example, using the PDP-11/70 pictured below....

  • Curious PDP-11 Features

    Last week, I ran PDPjs through a series of early PDP-11 Paper Tape Diagnostics. These tests were originally released in 1970 and are documented in such DEC publications as the MAINDEC USER REFERENCE MANUAL (October 1973)....

  • You Should Have Voted For The PDP-11

    Greetings from an alternate reality where DEC’s elegant PDP-11 architecture beat out Intel’s gross 8086 architecture, and DEC managed to gracefully evolve the 16-bit PDP-11 into powerful 32-bit and 64-bit successors, all while maintaining excellent backward compatibility....

    Unfortunately, you’re stuck in your reality, so you have no idea what I’m talking about. Basically, your ancestors voted for the cheapest solution rather than the best solution, and now you have to live with the consequences....

  • Booting PDP-11 BASIC

    PDPjs can now simulate a PDP-11/20. It was one of the first PDP-11 models, and since it had no MMU, it was limited to a maximum of 56Kb of RAM (or as DEC would say, 28K words), since the top 8Kb (or 4K words) of its 16-bit address space was reserved for UNIBUS devices....

  • Introducing PDPjs, a PDP-11 Emulator

    PDPjs is the newest addition to the PCjs family of emulators, joining PCx86, PC8080, and C1Pjs....

  • Connecting an IBM PC to a DEC VT100 Terminal

    Now that you’ve had a chance to play with a standalone VT100 Terminal, not to mention Dual VT100 Terminals, it’s time to take PCjs Machines to the next level, and begin connecting PCs to terminals....

  • The VT100 Terminal

    Summer has been filled with distractions, but I’ve finally begun making headway on a DEC VT100 Terminal simulation....

  • The Sharpening

    This was the week of The Sharpening....

  • Introducing the Intel 8080 CPU

    Or rather, introducing PC8080, a new 8080-based machine emulator recently added to the PCjs Project....

  • Demos of Windows/386 and Windows 3.x

    I recently added some more demos to the PCjs Project, to showcase its ability to run old 80286-based and 80386-based software, such as Windows/386, Windows 3.0, Windows 3.1, and Windows 95....

  • Touching Windows

    Yesterday, I fired up Windows 3.1 and played a complete game of Windows Solitaire on my iPad. It was a bit, um, touchy, but it worked....

  • Remembering COMPAQ

    IBM is obviously the company everyone thinks of first when we talk about the IBM PC – after all, IBM is right there in the name. They designed the thing. So IBM, and in particular the folks who worked in Boca Raton at IBM’s Entry Systems Division in the early 1980’s, deserve all the credit for defining what eventually became known as the Industry Standard Architecture (ISA) PC platform....

  • Saving Disks and Machines

    PCx86 (v1.20.9) now offers new, much easier ways to save disks and machines, thanks to the new Save Disk and Save Machine features. With one click, PCx86 can now generate a single download containing everything you need to embed any of our IBM PC demos on your own web page....

  • Super Bowl Winner: PCjs

    The new release of PCjs (v1.20.8) is a fairly minor update, but it’s an important one for FOOTBALL fans, resolving two annoying problems with the OS/2 FOOTBALL Boot Disk: mysterious hard-error popups and blank screens....

  • Early OS/2 Artifacts

    Before OS/2 was named OS/2 by IBM on April 2, 1987, the operating system was known by many different names at Microsoft as it evolved, including DOS5, MT-DOS, CP-DOS, and ADOS....

  • Revisiting OS/2

    Just for fun (because I have a warped sense of fun), I decided to revisit some of the old OS/2 software I wrote almost 30 years ago. But first, I needed an OS/2 development environment....

  • Rebuilding the PCjs Website

    It’s been nice using Node.js to power the PCjs website, using Amazon’s Elastic Beanstalk service, but that combination has also been a source of some frustrations....

  • Windows 95 and Early 80386 CPUs

    Every time Windows 95 starts up, its real-mode loader performs the following CPU identification test....

  • Windows 95 In Your Web Browser

    Today, the last serious bug preventing a successful boot of Windows 95 was fixed. I won’t bore you with the details....

  • Windows 95

    This week (July 14, 2015) was the 20th anniversary of Windows 95 RTM (“Release To Manufacturing”). So I decided to throw a PCjs party and try running Windows 95 Setup inside a PCx86 machine for the first time....

  • The Strange Case of the EGA Graphics Scroll Bug

    I was playing with different video modes using this IBM PC AT w/EGA, and I discovered an odd problem....

  • Debugging the IBM VGA ROM

    The IBM VGA (“Video Graphics Array”) standard was introduced as part of the IBM PS/2 line of computers; it was not a feature you could purchase or install in older PC, XT or AT-compatible machines. In fact, full VGA support was not even available in all PS/2 models....

  • PC Tech Journal Collection

    This is an update to my 2014 post on the PCjs online collection of old PC Tech Journal magazine issues....

    Our collection is much more complete now. We have the first issue, the last issue, and almost all the issues in between. All we’re currently missing are the April 1988 issue and the first three issues of 1989, at least in terms of regular issues....

  • COMPAQ DeskPro 386 Update

    PCx86 can now boot the COMPAQ DeskPro 386/16 ROM BIOS....

  • JavaScript Idiosyncrasies

    Time to mention a few JavaScript idiosyncrasies, and how I deal with them....

  • Early 80386 CPUs

    Assembling a detailed and accurate history of the Intel 80386 CPU, including a complete listing of all the “steppings” (revisions), when they were released, what “errata” (problems) each stepping suffered from, and which of those problems were fixed by a later stepping, seems virtually impossible at this late date....

  • COMPAQ DeskPro 386

    I finally dumped the COMPAQ DeskPro 386/16 ROMs from the motherboard I bought on ebay last year, so I’m ready to begin adding 80386 support to PCx86....

  • New PCx86 Control Panel

    A new PCx86 Control Panel is under development, featuring a new “Display Panel” that will provide a variety of information about the machine, in real-time, and operate more efficiently than previous DOM-based Control Panels....

  • 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....

  • Canvas Performance and ContentEditable

    From the beginning of the JavaScript Machines Project, I’ve always used an HTML5 Canvas object for both machine output and input. It’s the obvious choice for output, because the Canvas provides a 2D drawing API that’s essential both for drawing bitmappped graphics and for faithfully rendering individual characters using the machine’s original bitmapped fonts....

  • OS/2 1.0

    Exciting news for OS/2 fans: PCjs (v1.16.1) is now able to run OS/2 1.0 on IBM PC AT Machine Configurations. This is the culmination of recent work in PCjs to fully emulate the Intel 80286 processor and 16-bit protected-mode, including undocumented features like LOADALL and triple-fault resets....

  • Limited Support for XDF Diskettes

    PCjs v1.15.7 adds support for the XDF Diskette Format, which was used in PC-DOS 7.00....

  • JavaScript Negativity

    Coming from the C programming language, it’s easy to be “negative” about how JavaScript deals with 32-bit integers....

  • Improved PC-DOS 7.00 Support

    PCjs v1.15.6 is a fairly minor update that fixes a few Floppy Drive Controller (FDC) issues and one CPU emulation bug that prevented PC-DOS 7.00 from working properly....

  • Improved support for PC AT machines

    The 8Mhz IBM PC AT machine configuration now boots in PCjs v1.15.5, which includes the following fixes:...

  • The 8Mhz IBM PC AT 5170

    I just added my first 8Mhz IBM PC AT machine configuration to the list of IBM PC Machine Configurations, and not surprisingly, the new machine fails to boot....

  • PCjs Released on GitHub

    I’ve decided the time has come to make the PCjs Project an open source project on GitHub....

  • PCjs Coding Conventions

    Here are a few highlights of the (evolving) JavaScript coding conventions used in PCjs....

  • The IBM PC AT: Alive and Booting

    My first IBM PC AT (Model 5170) Test Configuration finally boots to a PC-DOS prompt. The configuration uses the original IBM Model 5170 ROM BIOS, dated January 10, 1984....

    Getting through the BIOS “POST” (Power-On Self Test) diagnostics was like running an obstacle course, with various tests derailing the simulation at every turn....

  • Minor Fixes and Additions

    The following fixes were made in PCjs v1.15.1...

  • Supporting the 80286

    The next milestone for PCx86 is complete 80286 emulation. My hope is to have it working by the end of the year....

  • PC Tech Journal, 1987

    As part of an ongoing effort to make classic PC technical literature more accessible, I just finished scanning and posting the 12 issues of PC Tech Journal from 1987....

  • EGA Support

    PCjs v1.14.0 now includes basic EGA support. It emulates the EGA hardware well enough to pass the IBM EGA BIOS diagnostics and run Windows 1.01 in color. Check out our Windows 1.01 “Server Array” demo....

  • More Under-The-Hood Changes

    v1.13.7 of PCjs contains a few minor improvements, mostly in terms of rendering video modes a little more efficiently. The rest of the changes to the website involved beefing up support for both “software manifests” and “document manifests.”...

  • Halt and Catch Liar

    I had high hopes for the new AMC series “Halt and Catch Fire,” but it has proven to be an utter disappointment. I think I can suspend my disbelief as well as anyone, but this show requires you to completely turn your brain off in order to be believed. I’m also baffled by the show’s high IMDb score, which is currently 8.4 (out of 10). Either AMC has figured out how to game the system, or viewers are easily turned on by clichés, like the know-it-all Hot Programmer, the self-assured Sales Guy, and the non-plot-advancing sex that they almost instantly engage in....

  • Chrome Kicks Butt

    I haven’t been closely monitoring the performance of PCjs across various browsers. Most of my browser testing has been limited to “Does the latest version still work in all current web browsers?”...

  • Heading to New York

    Lots of tinkering has been going on here at pcjs.org the past couple of weeks, but with nothing substantial to show for it. Fixing lots of little problems requires only small bits of time, whereas buckling down and tackling “the next BIG thing” for PCjs requires a much more serious time commitment, with limited interruptions....

  • Node + Express != Safari

    There’s something very odd going on with between Node+Express and Safari, resulting in blank web pages. Don’t believe me? Just ask Google....

  • What's New in 1.13.0

    The latest version adds support for “software manifests”, which you can read more about here. Basically, manifests are simple XML files that describe a piece of software (an application, an operating system, whatever). They can also link to a PCjs machine configuration capable of running the software, along with a “ready-to-run” machine state file. Conversely, a PCjs machine XML file can refer back to the manifest, to obtain a list of disk images....

  • The Latest in Emulator Technology

    Announcing InternetJS: The Internet Emulator, the world’s smallest JavaScript application capable of emulating the entire Internet. And like all PCjs applications, there’s nothing to install. It runs safely and securely from any web browser....

  • Browser Compatibility Woes

    While JavaScript has been doing a good job of delivering on the old “write once, run everywhere” promise that its unrelated namesake coined, the “hook once, deliver everywhere” promise seems less fulfilled....

  • Running on Azure

    Publishing a Node-based site to Azure was painless, thanks to their friendly web portal and GitHub integration. Getting a fully operational site, however, took a bit more time....

  • New Year, New Directions

    Initial goals for 2014 include...

  • A Blog That's Not A Blog

    As you may have noticed (or not), the JSMachines website had a very modest makeover recently....

subscribe via RSS