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.
Oh, yeah, if you want to follow along,
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.
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.
I’m pretty sure I can come up with a script to turn the C99 code into older ANSI.
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.
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?)