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.
RetroChallenge 2018/04: Writing a proper Atari VCS / 2600 game
There’s a noble challenge, every programmer of self-esteem should obliege to at least once in a lifetime: programming a game for the Atari VCS, also known as “racing the beam”. In case you didn’t know, the Atari VCS (Atari 2600) has no video RAM and every line of raster image has to be composed on the fly. More so, you also have to maintain the vertical composition of the TV image, and there is no operating system, no ROM, just the bare metal machine and a trusty video/sound chip (TIA) to talk to. And there are only 128 bytes of RAM in total, already including the processor stack. To do this properly, it’s 6502 assembler once again, but this time every cycle counts.
Particularly, we do a classic two players console game with a twist. A classic game, like it was 1979, no additional hardware enhancements or fancy bank switching allowed. On the way, we learn about the Atari VCS and its hardware, and how to tackle the programming side of things. Moreover, there’s a tiny sprite editor for the VCS and even a synthesizer app to explore its somewhat unique sound generation. Also, it’s our first RetroChallenge project in color!
RetroChallenge 2017/04: Computer Space for the Commodore PET 2001
In 2017 I had a new toy and it was the 40th anniversary of the Commodore PET 2001, as well. So what may be more appropriate for RetroChallenge 2017 than to port Computer Space this time to the venerable PET? I allways thought it an interesting challenge to port an arcade game to a text only display, using nothing but the available characters. Could we do a free floating space shooter in PETSCII characters only and preserve some of the specific feel and attitude of the original game?
In the end, I succedded with a downloadable game for the PET 2001 (ROM 1 and ROM 2) and a special version for the C64. However, I actually deem the DEC PDP-1 to be the better gaming platform!
Have at least a look at episode 2, where we have a closer look at Computer Space and how early, CPU-less video games worked in general!
RetroChallenge 2016/10: Programming a 60 fps video game for early 1960s hardware.
After all the software archeology on Spacewar! (see below) I was keen to try some programming for the DEC PDP-1 of my own. What about doing my own game? After all, I knew my way pretty well around the PDP-1. So I picked the PDP-1 for the second edition of RetroChallenge 2016 — and managed to write a classic video game running on early 1960s hardware at 60 frames per second!
(No April Fool’s Day Hoax!)
Admittedly, I picked a game, which I knew would fit well the constraints of this particular machine, and I was standing on the shoulders of giants who did Spacewar!, like Steve Russell, Dan Edwards and Peter Samson. More so, the game, I picked, was heavily inspired by Spacewar!, which originated on the PDP-1, so it wasn’t much of a surprise that it should fairly conform to the capabilities of that particular machine. So, closing a never existing circle by a full 360° turn and a somewhat ironic twist in computer history, I ported the very first coin operated video game back to the computer, which inspired it in the first place. Ironically also, because “Computer Space”, despite its cheerful name, doesn’t feature a computer at all, but is rather a complex pattern generator in 74xx-series TTL logic, which we now had to simulate on hardware, which predated its TTL electronics by a decade. And, as a bonus, there’s now a classic single player shooter for the DEC PDP-1. (Eventually, the program ran on the real machine at the CHM.)
Implementing a 3D dungeon crawler in MS BASIC for RetroChallenge 2016/01.
In 1983 Kyocera introduced a remarkable portable computing platform, which was marketed by various vendors as by Tandy as the TRS-80 Model 100, by NEC as the PC-8201 and PC-8201A, by Olivetti as the M10, and by Kyocera itself as the Kyotronic 85. These machines, which I like to refer to as the “Kyocera siblings”, were about the same, but not exactly, differing both in hardware specs and in their respective implementation of MS BASIC (the last one, Bill Gates was actually coding for). Quite a success with in-the-field workers like journalists and with about 6 millions units sold for the TRS Model 100 alone, these were about as numerous as nowadays the stockpile of toilet rolls for a family of four. Therefore, these were rather easy to obtain as a retro machine and I got me two of them, namely a an Olivetti M10 and a NEC PC-8201A.
RetroChallenge is a loose, not too serious gathering/competion twice a year, where folks do things with retro computers or consoles over a month and report about this in order to let others participate in their efforts. Eager to play around with the new toys, the choice for my first participation in RetroChallenge was an easy one. And it was also the first time, I got to mess around with BASIC after a pause of about 30 years. While originally intended as a full-fledged, networked implementation of the historical first person shooter, BASIC and the time constraints got me only that far. Eventually, it became a first person dungeon crawler with a pseudo-3D view port and a static map, running — while not exactly in realtime — at reasonable speeds. (This involved both high and low level approches, like JIT compiling display data to byte code for a small runtime to send low level display data over the internal serial port to the LCD controllers, which also overcame differences in the various dialects of MS BASIC found in these machines.)
Have at least a look at episode 1, where we have a closer look at the various incarnations of the Kyocera siblings.
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…
Veering off of our usual topics for a bit of political economy.
Since everything is a bit out of the ordinary recently, here’s a somewhat different post, diverging from our usual path. Yes it’s about the current “Corona” situation, but also about a somewhat broader perspective. Since my educational background is in such things like philosophy, sociology and even a couple of semesters of political science, I can’t help including this perspective. On the other hand, I’m clearly not a medic nor do I have any relations to that honorable profession. So I’m entirely without expertice in this field and relying on what is to be learned from public appearances of epidemiologist who speak on the matter. (In other words, anything regarding the current situation and its epidemiological perspectives is just hearsay and lacking any further foundations. Any inferences and/or conclusions drawn from this kind of awareness are not any better than the foundations on which they are built.)
Trigger Warning I’m sorry to say, this will not be another pep talk on the subject. If you feel apprehensive about this or do not feel like in the right mood for this, better skip this post.