• Please review our updated Terms and Rules here

Lessons learnt running a QBUS PDP-11 with only paper tape

Christoffer

Experienced Member
Joined
Oct 15, 2014
Messages
299
Location
Denmark
Hi all,

So, I've gathered a lot of info on how to squeeze actual fun out of a PDP-11 with only paper tape as storage (in no small part thanks to advice from a lot of you guys!), I figured it's time I compile it into a post, that could potentially help others doing the same.

My issue was: Had PDP-11/23 with some boards. no floppy drives, no disk drives, no tape decks. Pretty much all magnetic media from that era weighes a ton, and is scarcer in Europe than the states. Had verifyed it worked (could load tapes via PDP11GUI, could punch in test routines via ODT, etc.)

So paper tape it was. I aquired (by luck!) a GNT4604 high speed punch/reader combo, the following will be applicable to that, and any other serial-based tape system.

To run an LSI-11 with a serial paper tape drive, the minimal system needed is:
-QBUS/LSI-11 CPU card
-QBUS RAM card
-QBUS Serial card (I recommend the DLV11-J 4-line serial card)
and of course a box to put it in.

The problem with a serial tape reader is that it have to function like the punch/reader on a teletype. that means it uses the same console port as your terminal. This is a problem, because pulling out RS-232 plugs to switch to tape is likely to result in errors and random ghost characters on both ends.
My solution is a switch box, that lets terminal+reader/punch act as a teletype. It's built into one of those DB25 printer/serial switch boxes that were common back in the day, re-using the connectors and the switch. You'll have to ohm that out yourself, but the switch positions are as follows:

1: TERM:
TERM KBD -->PDP11-CONSL RX
TERM SCRN -->PDP11-CONSL TX
TAPE PNCH -->
TAPE RDR -->

1:TAPE READ
TERM KBD -->
TERM SCRN -->PDP11-CONSL TX
TAPE PNCH -->
TAPE RDR -->PDP11-CONSL RX

1:TAPE PUNCH
TERM KBD -->PDP11-CONSL RX
TERM SCRN -->
TAPE PNCH -->PDP11-CONSL TX
TAPE RDR -->

The point is, that when punching a tape, the computer still responds to the keyboard, and when it reads a tape, it still prints on the screen. This is massively helpful for saving BASIC programs on tape, as you have to turn on the punch, then run a LIST command. It starts list on ENTER key, so you really need this functionality.

Loading paper tapes is done in multiple steps, which has surely been covered elsewhere, but it goes as follows:

In the ODT a short routine is entered. This is a very simple tape loader:
(borrowed from http://www.psych.usyd.edu.au/pdp-11/bootstraps.html )

Loc. Cont. Label Instruction Comment
================================================
xx7744 016701 mov device,r1 get csr address
xx7746 000026
xx7750 012702 loop: mov #offset,r2 get offset
xx7752 000352 offset:
xx7754 005211 inc (r1) read frame
xx7756 105711 wait: tstb (r1) wait for ready
xx7760 100376 bpl wait
xx7762 116162 movb (r1),bnk(r2) store data
xx7764 000002
xx7766 xx7400
xx7770 005267 inc offset bump address
xx7772 177756
xx7774 000765 br loop
xx7776 177550 device: HSR csr, or 177560 for teletype


Where

xx Memory Size
===========================
017744 4k
037744 8K
057744 12K
077744 16k
117744 20k
137744 24k
157744 28k

This is then run by (making sure HALT/RUN is RUN!) "xx7744G" in ODT.
It'll now be awaiting the absolute loader. it's a short paper tape that'll load long tapes!

This can be found online. Notice that THERE ARE MULTIPLE VERSIONS, and only one of them works well with LSI-11's. The other's require the front panel to enter addresses on.
The one you want is the "SWITCHLESS" - The tape's name is "DEC-11-UABLB-A-PO"

This tape has a leader that's the same character over and over for about 40 cm - this section must be IN the reader at start - very important.

When that's been read, if successful, it'll kick you back to the ODT prompt. Now, simply press "P" (Proceed) and it'll run from where it halted. Put in whatever tape you want and load it.
It SHOULD start automatically, both the assembler and BASIC will begin telling you stuff that looks like it should (BASIC has a welcome message in english). at that point, you can stop the reader.

The GNT reader I use can run up to 4800 bd - which loads BASIC in less than a minute. this is too fast to save/load programs as one would with a teletype. But loading long tapes slower is agonizing. I've gotten myself a smaller GNT reader cheaply off of Ebay that I've hooked up to port 2 on the DLV11-J. Now I'm running this at full speed, and have my terminal+punch/reader at a moderate 1200 baud. This works well, just remember to change the last word in above tape load routine to the base address of your actual port.

IF you do as I and make a switchbox, remember to actually put it in the correct mode! I still forget half the times.

If you google 'pdp-11 paper tape" you can find a lot of software, there's a DEC manual for it, too. Here's one link That has a lot of wierd things I haven't gotten working yet:
http://iamvirtual.ca/collection/systems/mediadoc/mediadoc.html#papertape

Hope someone finds this helpful! If anyone has anything to add, or if I made some grave error without noticing, please yell!



Here's a pic of my system:
PDP2017.jpg
And one annotated with PDP-11 specifics:
PDP2017ann.jpg
 
I have seen some serial reader/punch devices that are connected between the terminal and the computer. You can select if the reader/punch is connected to the terminal or computer, or if the terminal is directly connected to the computer.
 
Excellent work. Congratulations on your achievement!

Thanks very much for sharing this information.

smp
 
I have seen some serial reader/punch devices that are connected between the terminal and the computer. You can select if the reader/punch is connected to the terminal or computer, or if the terminal is directly connected to the computer.

Absolutely, yeah. It doesn't seem terribly well implemented in the GNT4604, though. Or maybe mine just have some issues on one of the ports. Messed with it, couldn't solve it, but I'd prefer a system that works with ANY serial punch/reader too.
 
Have you thought about how this would work using the AUX port of the terminal? Obviously you'd need a terminal with a bidirectional AUX port, but lots of them are designed for wand readers and such and so therefore have this capacity.
 
Back
Top