Porting Dumb-Frotz 2.32 to TOPS-20


I’m in the midst of porting dumb-frotz to TOPS-20 on the PDP-10.

This is basically in order to run the commercial Infocom games under TOPS-20, and also to give the poor thing access to all the z-machine games. Then I intend to package it and a front-end menu system up and send it to the Living Computer Museum.

I have Zork 1 almost working: text is displaying fine, but after a while the verb tree gets corrupt and, for instance, “take” turns to “climb” and “look” requires a direct object. This is a direct consequence of not having found all the places that a 16-bit short or an 8-bit char is assumed (the PDP has 18 and 9 bits, respectively).

Which brings me to my point.

Is there a Z-Machine Compliance Test zcode file? Like, I’d really like to have one to run and see which instructions are misbehaving. If not, it is by no means a showstopper; life would just go more quickly if I had a better way to debug than obsessively instrumenting the opcodes and seeing where the behavior between an x86_64 system and a PDP-10 diverge.


1 Like

Oh, yeah, if you want to follow along,


(David Kinder) #3

There’s Czech and Terpetude, here:

Also Praxix, here: https://github.com/curiousdannii/if/tree/master/tests

1 Like

Thank you!

(David Griffith) #5

Why are you using version 2.32?

I’ve been poking at things to see how to add full-screen support for at least TOPS20… trying to understand things there.


Because KCC is an ANSI C compiler, and I can make it go with “cc -o frotz *.c”.

I don’t have to de-C99-ify it, or find a working make, or anything.

Once I get dumb-frotz going, yeah, adding VT100 support should be pretty easy assuming there’s an adequate curses library on TOPS-20.

(David Griffith) #7

Is the KCC you’re referring to Kok Chen’s compiler at https://github.com/PDP-10/kcc and https://gitlab.com/PDP-10/kcc?


I believe so. I’m running the one that’s already embedded in the pandas distribution.

(David Griffith) #9

I’m pretty sure I can come up with a script to turn the C99 code into older ANSI.


It seems to play Zork 1 now: https://github.com/athornton/gnusto-frotz-tops20


And now it seems to be working as well as Dumb-Frotz 2.32r1 on other systems works.

I’ll do a separate announcement post.

(David Griffith) #12

I made a pull request to allow the script to pull in the latest codebase and deposit it into a single directory for later massaging. I hope this can be a basis for doing any necessary de-C99-ing and ensuring that any changes you find necessary make it back into Frotz.

BTW, I noticed a problem in which the usage blurb is mangled by the symbol-shrinker.


Well I mean obviously A000236 is a synonym for interpret! (I should postprocess that, shouldn’t I?)