PDP8 and Z-machine engine

Johnny Billquist bqt at softjar.se
Tue Sep 5 02:35:17 CDT 2006

woodelf <bfranchuk at jetnet.ab.ca> wrote:

 > Johnny Billquist wrote:
 >>> However, have you ever programmed on a PDP-8?
 >>> If so, you would realize that it really requires you to do things a 
 >>> different from what people nowadays do.
 >>> You have 4K word pages. One word is 12 bits. The addressing style of
 >>> instructions really limit most routines to what you can fit into 128
 >>> words. No stack...
 >Well 12 bits holds 2 6 bit chars nicely  :)
 >I suspect the best way to do this is to convert Z-machine
 >data into something better suited for 12/24 bit processing.

Hmm, I'm not sure how easy it would be to convert the game files in a 
way that would be good here... Text data would be nice to change, but 
other stuff you'd want to keep the way it is. But this would cause stuff 
to move around, so you'd really get into trouble.

Nah, I suspect you'll want to leave the game files as they are...

 >>> Well, there are a lot of things to play around with.
 >>> Like I said, it wouldn't be difficult to write a Z-machine interpreter
 >>> for the PDP-8, but you'd better not base it on something written in C.
 >>> You might pick an idea or two from Frotz, for instance, but you'd have
 >>> to rewrite that as well to fit with the PDP-8.
 >Well the PDP-8 is easy to program in -- 8 instructions types.  :)

Depending on how you look at it, yes. You have six instructions that 
have an address argument, one I/O instruction, and one operator 
instruction. But the IOT leaves most of the bits free for interpretation 
by the device, and the OPR instruction is bit-coded, so it's really a 
lot of instructions.

 >>> And you have almost no OS to support you either, so you'd have to
 >>> implement the I/O as well, and figure out which, if any, clock you 
 >>> if you want to implement timed input.
 >Oddly you have better OS support now with the emulators and
 >some new-ish hardware that uses ide drives.

Huh? What are you talking about? You'll still have the emulator running 
OS/8, and nothing else. (Well, you could write it for RTS-8 for a 
different environment with support for more hardware, but I doubt anyone 
would to that.)

OS/8 is a very limited OS. Whatever underlying hardware you use is 
irrelevant. It's all a question of what you're emulating, and I would 
recommend that your code works on atleast a few different combinations 
of hardware.


More information about the cctech mailing list