asm21
The long-sought IOP microcode for HP 2000/Access Time Shared BASIC to run on the 21MX E-series minicomputer has finally been found. The ensuing discussions motivated me to finally add generation of absolute binary object files to asm21, my HP-21xx cross assembler written in Perl.
I wrote asm21 in May of 2000. I started in Awk, but quickly found things I needed to do that were very difficult in Awk. I switched to Perl, and asm21 was the first non-trivial Perl program I'd written, and I had a lot of trouble figuring out how to deal with complex data structures, such as a hash of arrays of arrays containing function references.
A few months later, I needed to write a program to decode Holerith punched card images stored in column binary format, for the IBM 1620 restoration project at the Computer History Museum. I thought that Perl would be ideal for that, so I sat down to write a program... and I quickly discovered that I'd already forgotten almost everything I'd learned about Perl.
This has happened to me every time I've wanted to write or modify a Perl script; I always spend a lot of time digging through the books and online docs. I've never had this problem with other programming or scripting languages. I attribute it to Perl's incredibly baroque syntax.
I'm switching to Python, but in the mean time I put the latest version of asm21 on my web site, and added a very brief rant about Perl. I originally had another, less inflamatory title in mind for that section of the web page, but at some point I decided to just call it "Perl Considered Harmful".
Afterward it occurred to me that there must be a lot of "Perl Considered Harmful" pages on the web, so I did a Google search. Surprisingly, there are very few. The most interesting one was actually a
list of GooglePhraseWhacks, for which "Perl Considered Harmful" was number one.
Nonpareil
No progress on the software. I've been working on the
ROMsucker Mark 3 hardware. I hate wirewrapping! I didn't do an adequate job of power and ground distriution, nor of filtering the switching noise from DC/DC converters, so I was getting about 0.8V peak-to-peak noise on the +/-2.5V voltage references for the DACs that set the comparator thresholds. I cleaned up the power distribution a little, and added some 220 uH inductors between the DC/DC converters and the electrolytic filter capacitors, and that's brought the noise down to about 0.06V p-p. Not great, but probably good enough.
Once the ROMsucker Mark 3 is working, I'll be able to capture the ROM code from the HP-31E and HP-33E, and execution traces from those and other models. This should enable me to fix the HP-25 and HP-34C simulation problems, and get the Voyager series (especially the HP-15C and HP-16C) working.
I have a good-condition HP-10C, but didn't want to tear that one apart to dump the ROM because the HP-10C is fairly rare, resulting in high prices on eBay when they can be found at all. I don't think I'm likely to damage it when I dump the ROM, but I'd rather not risk it. Fortunately I recently found my beat-up HP-10C, so I'll use that one instead. I doubt that many people really want an HP-10C simuluation, since it was one of the most basic RPN scientific calculators, but somehow it seems nice to have as complete a set available in simulation as possible.
The models that will be difficult if not impossible to get running in simulation are the HP-01 watch and the HP-10 (no "C") non-RPN four-banger, because there is no obvious way to extract the ROM code. The HP-01 has the chips inside a hermetically sealed hybrid module, and the HP-10 has a single 40-pin chip that apparently contains the CPU, ROM, and RAM.
PDP-1 Restoration Project
We were pretty excited yesterday when we were able to verify that the player control inputs for Spacewar seem to work correctly. I bought some arcade buttons from HAPP Controls in order to build new player control boxes, since the originals cannot be found. These will be intended for demo use, as they won't particularly resemble the original control boxes. We might also try to build some replicas of the originals.
The power supplies of the Type 30 Precision CRT Display are currently being restored, so it shouldn't be too much longer before we can try to test the display. If we're lucky, we may have Spacewar up and running soon!
The new web site using Plone, Zope, and Zwiki seems to work pretty well. I had a lot of trouble getting everything set up on Fedora Core 1 and had just about given up on that, but on Fedora Core 2 it all Just Works (tm).