Hac-Man RetrochallengePosted: July 5, 2012
I have been accepted into the July retrochallenge!
As mentioned previously, I am writing, or more accurately, recreating a program I wrote in high-school. It’s a clone of a very popular game involving a yellow wedge that eats pellets and avoids ghosts. Because I don’t want to hear from Namco, this game will be called “Hac-Man”. Yes, that’s the right spelling. There are a number of other games with “hack” in the title that I wanted to avoid confusion with.
I’m not writing this from scratch in a month; I had worked on this a few years ago when I got a RSTS/E emulation running, but put it aside. I got far enough to do much of the software design—such as it is. (I’ll explain shortly.)
Our PDP-11/60 at Salem High School looked something like this system except the lower facepanel was blue rather than brown. We ran RSTS/E V6C to, if I recall, five video terminals (a mix of ADDS terminals, VT50s and VT52s) and two hardcopy terminals (DECWriter II’s), not counting the system console. We had one line printer and one card reader (plus a Univac card-punch terminal), two RK06 disk drives (14 MB each) and no tape.
I configured my PDP-11/60 in SIMH in much the same configuration, except I gave my system RL drives, which store a bit more information, and a magtape to take advantage of the many PDP-11 repositories with tape images. I couldn’t find RSTS V6C, but V7 is available and matches the old system well enough for my purposes. (It, by the way, is patched for Y2K.)
The terminal of choice is a VT-100, DEC’s most popular model and one that is very widely emulated over the net even today; my emulation is through Tera Term and a telnet connection to an instance of SIMH that runs on my server.
RSTS/E was built around BASIC. Even for system programming—this is no joke! Hac-Man will have to be in BASIC too. For one that knows contemporary dev practices, this is really something else. Even Visual Basic 6.0 does not expect you to use line numbers anymore! (I had thought about writing Hac-Man in assembler, as RSTS/E has full API support for MACRO-11, the PDP-11 assembly code, but time does not permit this at all.)
My next post will have to go into the various idioms and conventions I had to use in my day to perform tasks in game development, display and input that were already supported as a matter of course in the microcomputers of the time, such as the Tandy CoCo I would use a few years later.