PiDP-1 Manual Games Assembly Lisp Music

PDP-1: UNDERSTANDING
PAPER TAPE FORMATS

Work in Progress




Introduction


PiDP-1 construction 'Mozart or Bach' - Samson at the CHM


A good introduction to the pre-history of music & computers: Composers & Computers, a podcast. Though they've not yet reached the PDP-1...

Paper tape: formats for alphanumeric and binary data
Source code is punched on tape in alphanumeric mode. Each line on the tape consists of eight holes, encoding one character. And the character codes used are not 8-bit ASCII, but 6-bit FIODEC. The picture below shows the format:

Binary tapes, however, have to encode 18-bit words. For this, three lines on the tape are used. When the PDP-1 reads binary tapes, it reads three lines, and constructs the loaded word from them as per the following format:

Any paper tape normally has an empty 'leader'; no holes are punched, and these lines are always skipped by the computer. After that may come a title of human-readable lines punching out readable characters. If this is a binary tape, a data block called the RIM loader may follow; this tiny loader program will actually be used to load the rest, the body of the actual program, that comes after it. And right at the end of the tape comes an instruction to jump to the start location of the actual program. Below is the format for binary tapes:


The BIN loader is loaded in at the top of the memory map by the hard-wired circuits behind the 'READ IN' switch. In its details, this is a very neat trick worth studying. After the BIN loader is read, it starts executing to load the rest of the tape. Once it hits the start block, execution is transferred to the actual program.
Note that a binary tape does not have to have the BIN loader. That just makes it read data in more efficiently, if you want to call it that! DDT is often used to read binary tapes without a BIN loader.

Alphanumeric tapes are simpler, of course they might have the human-readable title punched out before the actual file, but there's no BIN loader or start block of course. What there might be (sometimes, must be) is a STOP block at the end of the punched data. Octal code 013, the STOP character, demarks the End-Of-File. Not all alphanumeric tapes have it! It depends on the program that they are intended for. But MACRO certainly wants it.