As it happens, I recently added a debugger to the PET 2001 emulator, with the expressed purpose of facilitating code reverse engineering. To celebrate this, we’ll risk a glimpse into a peculiar bug — or is it a feature? — of the BASIC flavor found on Commodore’s PET computers. Particularly, it’s about BASIC bailing out into a warm start, whenever an empty string is entered by just pressing RETURN on the INPUT prompt.
It’s fairly well known how CRT displays made their way into computing, from WWII-era PPI (Plan Position Indicator) scan RADAR displays via Whirlwind, the Charctron display and the SAGE protype displays, seeing further applications in the TX-0, TX-2, and DEC PDP computers. However, there may have been an alternative technology available, namely dark trace or scotophor CRTs. In contrast to the light-emitting light-on-dark phosphor CRTs, these drew their images, like the name suggests, in dark traces on a light, often backlit background. Coming at the designation P10, these tubes used tenebrescent minerals, like alkali-halide crystals, instead of phosphor, but could be controlled by the usual means of a cathode ray and deflection circuits. A notatable feature of these dark-scan tubes was a non-volatile image, which gave them similar properties to E-Ink.
Classic PDP-1 ‘display hacks’ emulation brought up to new standards.
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.
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.)
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.
A closer look at the “illegal” opcodes and undocumented instructions of the 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.
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.
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:
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.
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.
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.
The surprising mechanical store for exchangable fonts of the IBM card punches
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.
A Software Archeological Approach to the First 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…
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. (…)
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.
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 …
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.
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.
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?
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?
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.
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…
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 range incorporates glyphs from various legacy systems, including
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.
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…
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.
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?).