The PDP-8 Crystal
Author: atsampson
Category: Christmas Challenge
System: DEC PDP-8
Language: PAL Assembler
Len source code: 888
Len exe file: 358
Len code only: 79.5
Instructions:
cryst.bin should work on any bare-metal PDP-8 with a console teletype. You
can load it in the simh PDP-8 emulator by running pdp8 and typing:
load cryst.bin
run 200
Description:
The PDP-8 is a 12-bit machine. The code is 53 words, equivalent to 79.5 8-bit
bytes.
It relies on the pattern repeating every 6 characters, which divides neatly
into the PDP-8's 12-bit words. Two copies of the first line of the pattern
are kept in A and B and rotated in opposite directions for each X position.
As each line is 19 characters long, the patterns are naturally offset by 1
for each Y position. B is rotated another 4 places at the end of each line,
so it moves in the opposite direction from A.
The program was cross-assembled using palbart.
Comments:
This is only a little shorter (counting bits) than my PDP-10 version; while the
instructions are one-third the size, it needs a subroutine to do a 12-bit
rotate rather than the PDP-8's normal 13-bit rotate.