mass:werk / Blog

(Posts tagged “computerhistory“.  All posts. RSS feed: Subscribe.)

Minskytron Refurbished

Classic PDP-1 ‘display hacks’ emulation brought up to new standards.

PDP-1 emulation, running several 1960s graphics demos (Minskytron, Munching Squares, Snowflake)
The Minskytron, Munching Squares, Snowflake, and (my own) Snow Wave.

The emulation of the Minskytron and other so-called “display hacks” for the DEC PDP-1 is now en par with the Spacewar! emulation, in fact, it uses the same script and resources.

Check it out here,

The Minskytron and Other Early Graphics Demos @ PDP-1


Moreover, the emulation of David Mapes’ “Graphical Fun” has been overhauled, as well. (David Mapes invented at LLNL independently the same fast circle algorithm as Marvin Minsky and used it for animations similar to the Minskytron.)

Graphical Fun for the PDP-1 by David Mapes

Spacewar! is 60 Today!

The first digital video game just became 60.

Emulation of a PDP-1 running Spacewar!

Spacewar! 2B, the very version shown at the MIT’s Parent Weekend on Sat. 28 / Sun. 29 April, 1962, is labeled “2 Apr 62” — exactly 60 years ago today! Moreover, a first article on the game was published in the April 1962 issue of “Decuscope – Information for Digital Equipment Computer Users” (Vol. 1 No. 1, April 1962, pp 2 and 4).

Happy birthday!

To celebrate the event, the emulation was slightly overhauled, the appearance was updated and significant portions of the descriptive text were rewritten.

Check it out here,

Spacewar! on a virtual PDP-1

6502 “Illegal” Opcodes Demystified

A closer look at the “illegal” opcodes and undocumented instructions of the MOS 6502 MPU.

Illustation: MOS 6502 MPU

The instruction table of the MOS 6502 MPU, designed by MOS Technology and introduced in 1975 (the CMOS version, 65C02, was developed by Western Design Center) has some obvious gaps, with just 56 intructions documented in various address modes. This leaves 105 undocumented slots — and the 6502 community has been eager to fill these gaps, ever since.

Still, there’s some mystery left and there are questions unanswered, like, were at least some of them intentional (especially, since some of them are handy for block transfer, something the Z80 has dedicated instructions for) or are they all by accident, how do they behave, and why so? Here, we’ll try to come up with some answers to these questions.

Continue reading…

More 6502 Updates

Further improvements on the Virtual 6502 suite.

Illustation: MOS 6502 MPU

Never at a loss to improve and always afraid to miss out on features or correctness ;-), I added another bunch of improvements to the Virtual 6502 suite.

This time, it has been about the emulator, which received a watchdog to monitor breakpoints and other conditions (like register contents or stack underflow), and support for interrupts. Also, stack operations in conjunction to the implementation of the break flag have been improved. (Moreover, all the applications now enjoy — hopefully as much as the user — fancy UI buttons and custom dialogs. Besides looking period appropriately pretty — this is sort of a sympathetic restoration —, these also provide some extended functionallity that is essential to some of these improvements, like the dialog for editing the watchdog’s conditions.)

In addition to this, the 6502 Instruction Set Sheet now features all kind of information on “illegal” opcodes: there’s now a checkbox below the instruction table to include them in the view, a new section with details on those undocumented instructions, and two three more decoding tables showing, where these fit in, and providing deeper insight into the internal operations.

I guess, next steps will be to implement support for these illegal opcodes for the emulator, assembler, and disassembler as an option.

An Update to the Virtual 6502 Suite

Improving one of the oldest 6502 tool sets on the web.


The Virtual 6502 suite maybe the oldest 6502 tool set on the web still in existence. It may be also one of the earlier ones, at least, when I was doing it, I hadn’t found another one. Reason enough, to give these venerable web pages a bit of an update treatment.

Continue reading…

Spacewar 1 and the Beginnings of Video Game Aesthetics

Tales of the early days of the first digital video game.


Sometimes it’s only a short sentence, a few words dropped as an aside, which changes our understanding. A short glimpse, which provides deeper inside and understanding in what is a complex process. As it is here the case regarding how Spacewar!, the first digital video game became this remarkable program that gave birth to an entire industry. As usually, what was intended to be just a brief dump of an idea — at least, this is what a blog post is all about, isn’t it? — became lengthier than expected. Not for the least, as it’s still necessary to establish the subject, even as Spacewar! is rapidly progressing towards its 60th anniversary.

Continue reading…

PDP-1 Spotting — The Mystery Solved

Update: Solving the Amherst Mystery.

Spotting PDP-1s (and trains)

Earlier, in our last blog story, we investigated into the mystery of what appeared to be a PDP-1 prototype at Amherst, which doesn’t seem to fit into computer history, as we know it. Now, I eventually found out what it is and how it fits into the lineage of PDP-1 machines. — So, without further spoilers, see the update to this post:

PDP-1 Spotting - The Amherst Mystery #Update

PDP-1 Spotting — The Amherst Mystery

Yet another PDP-1 riddle, extended mode.

Spotting PDP-1s (and trains)

Yesterday, we solved the mystery of two well-known images, formerly known as “The PDP-1 at the Tech Model Railroad Club”, with the help of the Hacker News community. — A triumph of shared knowledge.

In 1971, the German artist Daniel Chodowiecki (1726 – 1801) commented his etching “Enlightenment” (Aufklärung) by the words, “However, if the sun only rises, mists do no harm.” (Indessen wenn die Sonne nur aufgeht, so schaden Nebel nichts.) In real life, mists rise only to reveal another bank of fog. Which is the very process of research. — And this is certainly no exception. So this is a post about annother bank of fog, in the amazing form factor of a fully transitorized electronic contraption apt to manipulate 18-bit words in realtime according to a stored program and human interaction.

Continue reading…

Trainspotting (I)

A story of trains, computers, and two images.

Spotting trains and computers

This is at the same time a continuation to what may become a loose series, namely, “Things on the Web that aren’t what they seem to be”, and the beginning of an entirely new one. Anyway, this is the story of two photos that are rather well known in the context of computer history. You may even have seen one or the other popping up on a website.

Continue reading…

Update of the MOS 6502 Instruction Sheet

Some work for better accessibility.

MOS 6502 MPU
The MOS 6502 8-bit MPU designed by Western Design Center, Inc..

It looks about the same, but much has changed behind the scenes. What started out as a pure text file is now a properly marked up document with suitable semantics. E.g, the instruction details where formerly just a run of preformatted text, but are now a definition list. Each entry has its own summary paragraph, a synopsis, a flags-table and the instruction table proper with all the address modes. All tables come with proper headers, where appropriate also with scopes for columns, rows, and even groups. Many tables have changed to definition lists and there’s additional ARIA annotation available. (Some more broad scale information has been included before, but as an addition to this, all the new bits are labeled properly to tell what these are.)

And, since you can’t beat simple things, thanks to the wonders of CSS it still looks like a simple run of text.

— *phew!* —

See the 6502 Instruction Sheet:

IBM Punched Card Typography

The surprising mechanical store for exchangable fonts of the IBM card punches

IBM punched card typography explained
Punched card typography explained.

Another recap from the days before the blog, this time about IBM card punch equipment. You may already know that some of the card punches featured a built-in printer to represent the data in human readable characters on the very top of a card. But did you also know that the font and character set used for printing were exchangable? Or how these electro-mechanical wonders stored them?

In this mini-series you may not only learn all about the astounding intrinsics (including interactive animations of the decoding mechanism), but, if you’re the lucky owner of such an amazing device, you may even design your own font or character set for your IBM 026, 029 or 129 card punch.

Stay at Home Edition: Inside Spacewar!

A Software Archeological Approach to the First Video Game.

Inside Spacewar! teaser.
Some serious software archeology on the first digital video game.

Over the years, before I started this blog, some rather blog-like formats have accumulated on my website, each dedicated to a certain topic or project. Maybe, as many of us are expected to stay at home on their own, this is also an opportunity to point these series of write-ups out and to include them here as links, over the next few days.

For a beginning, there’s a walk through the code of Spacewar!, which is generally considered the first digital video game. We’ll have a look at every single line of code — no instruction is left behind —, learn about the DEC PDP-1 computer, learn how this game was achieved on this early 1960s machine by some ingenious tricks in software. (There are actually some things to be admired, like early object oriented approaches and a JIT compiler.) We’ll even learn about some of the fundamental intrinsics of digital computing, e.g., how basic operations like multiplications and divisions, or integer square roots were solved on this particular machine. Moreover, we’ll have a look at some of the more arcane versions of the game, including a somewhat first person multiplayer version from 1963. — Already intrigued? Then, have a closer look and follow the link, or, maybe, save it for later…

Start reading: “Inside Spacewar!”…

LGP-30 — A Drum Computer of Significance

Affordable computing by rotating bits at 3700 rpm.

In July 1956, when IBM was still considering its answer (which was to become the IBM 1401) to the French challenge that was the Bull Gamma 3 (1952), then posing a serious threat to IBM’s monopolic line-up of punched card appliances, Librazette, Librascope’s employees’ and PR gazette, proudly announced that the company’s new LGP-30 computer had been promoted to production.

The computer had been developed by Stan Frankel as the MINAC at CalTech in 1954 and Librascope had bought Frankel’s design (apparently in the same year), releasing it as the LGP-30 in 1956. (…)

Royal Precicision LGP-30
LGP-30 sales brochure, Royal McBee Corporation, 1956.

The computer generally known as the Royal McBee LGP-30 was a desk-sized appliance and weighed in at about 800 pounds (360 kg). It came with a Flexowriter-style console typewriter and consisted internally of just 113 vaccum tubes, 1,450 solid state diodes, and a magnetic drum for memory (4K of 31-bits words) and 3 registers. It plugged into an ordinary wall socket, from which the combined circuitry drew up to 1500 Watts. All this could be yours for just US$ 47,000 ($433,000 in 2018), which was actually the first viable option for small-to-medium scale computing.

Continue reading…

The Peculiar Case of a Self-Referential Computer Instruction (DEC PDP-7, 1964)

Or, how to lift Kurt Gödel’s hat by −0.

Lifting Gödle's Hat by -0.
Photograph of Kurt Gödel by Richard Arens, 1954,
“Oslo” PDP-7 by Tore Sinding Bekkedal, 2005 (Wikimedia Commons).

A recent discussion on the Retro Computing Forum turned my interest towards the DEC PDP-7 in general and it’s peculiar lack of a dedicated instruction for two’s complement subtraction (or, that is, subtraction at all) in the absence of a two’s complement negate instruction …

Continue reading…

Digital Video Game Firsts — Michigan Pool (1954)

On the origin of digital video games and the complexity of classification.

When it comes to the first known digital video game (i.e. an interactive game implemented on a digital computer communicating its state by some kind of graphical display), it’s always also about a question of definition. Personally, I’d opt for a requirement of a digital computer running a simulation in real-time and providing means of interactive manipulation of said simulation by some kind of user input (without any interruption to the flow of the program). By this, we define a distinctive problem class for this, namely interactive, visual real-time computing. So a turn based game, like OXO, wouldn’t be a member of this class, while, say, Spacewar! would happily fit the definition.

Pool on MIDSAC, 1964
A game of Pool on MIDSAC, 1954.

So I’d like to divert your esteemed attention to a certain, lesser known edge case, “Pool”, implemented by William George Brown and Ted Lewis in 1954 on the one-of-a-kind MIDSAC computer.

Continue reading…

Raster CRT Typography (According to DEC)

A closer look at the glyphs drawn by the DEC terminals VT100 and VT220.

Recently, I engaged in a bit of analog media emulation, namely for the purpose of the reenactment of raster CRT graphics as seen on “glass terminals” like the iconic VT-series by the Digital Equipment Corporation (DEC). An endeavor, which raises a few questions, like, is there anything special to the media, what did the fonts really look like, and can we reconstruct them from specifications?

VT100 Series CRT Typography
(Not a DEC manual.)

Since ROMs are available (and modern TrueType fonts, as well), we may start there, since they are the closest, we may get, to the real thing, aren’t they? What could possibly go wrong?

Continue reading…

Forgotten JavaScript: Object.handleEvent()

Tales of event-handling in JavaScript and some historic oddities of Netscape Navigator 4.

An interesting aspect of web technology is that solutions to specific problems tend to be invented more than once. For some reason or the other, a given solution doesn’t catch on and a new generation of developers will eventually address the wheel by the help of a new proposal. In this case it’s about object isolation and event handling.

code example for object.handleEvent

And while we’re at it, we may have a closer look at some of the (other) oddities of the Netscape Navigator 4 browser, as well…

Continue reading…

Legacy Graphics Range for Char8.js

The Terminals Working Group proposed a new Unicode range earlier this month (Jan. 4, 2019) for the purpose of retrocomputing and emulation. As of version 1.1, the newly proposed glyphs are already included in the Char8.js library for generating 8-bit characters from Unicode.

Here’s a sample, rendering the new glyphs in double height using a 16 × 8 character matrix:

The proposed legacy graphics range, rendered at 8 x 16 using Char8.js

The proposed range incorporates glyphs from various legacy systems, including

Related Links:

Snowflake Archeology (DEC PDP-1)

Software archeology of an early computer animation (1960s) for the DEC PDP-1

Snowflake (compare the post below) is a small graphics program written for DEC PDP-1 somewhen in the early to mid 1960s. In essence, Snowflake is a kaleidoscopic program, mapping a list of moving points multiple times onto the screen in a starlike manner. It may be the first of these programs, at least, it’s an early specimen of the species.

Snowflake for the PDP-1 (montage)

In order to learn how it does its trick, we engage in a bit of serious software archeology. All the fun is provided: PDP-1 assembler code, intricacies of display instructions, disassemblies, we even provide a little hack of our own to demonstrate the algorithm (which happens to be much like an once original form and isn’t without a beauty of its own). However, strap yourself for a lengthy read…

Continue reading…

Snowflake: The Original Virtual Christmas Ornament

Snowflake for the PDP-1

It may be just the right season to remind of one of the first computer animations, “Snowflake” written in the 1960s for the DEC PDP-1. Despite various research efforts, the author of this amazing little program remains still unknown, which is quite a bity, since s/he deserves to be rembered along with the program.

Click the image for an emulation and/or have a look at some images of the real thing as hosted at the DigiBarn museum’s website.

Anatomy of a Random Number Generator

Tales from the realms of software archeology.

DEC PDP-1 at the Computer History Museum

Recently, I returned my interest to Spacewar!, the first digital video game, particularly to differences between early versions, like Spacewar 2B, and the better known, later versions, like 3.1 and thereafter. One of these differences, particularly of interest here, is in the random number generator, implemented by a macro named "random" (what else?).

Continue reading…