Run the PDP-8/E Simulator with all available plug-ins, including the “ASR 33 Auxiliary Teletype” and the “MemoryContent” plug-in from the “PDP-8/E Simulator PlugIns” folder. Open the “Preferences” dialog (from the “PDP-8/E Simulator” menu). In the various panels, set the following options:
In the TSC8-75 Board window, set “ESME is currently enabled”.
From the “File” menu, select “Load Paper Tape…” and open “welcome.rim”. The program is loaded into the PDP-8/E memory. To set the program counter to 0200, edit the “PC” input field in the PDP-8/E CPU window. Now klick the “Go“ button in the toolbar or choose “Go” from the “Simulator” menu. Switch the ASR 33 Console Teletype window to the front (by selecting from the Windows menu). Watch the teletype output and listen to its sound.
Start the simulator, scroll the CPU window memory display to location 7756 and double click in the “Opcode” column to switch to edit mode. Type in the following program (the RIM loader) at locations 7756–7777. You can type in the octal code (second column in the following listing) or the the symbolic assembler code. To enter the next cell, type “Return”; to go back to the previous cell, use “Shift-Tab”. Try to input invalid opcodes or assembler instructions to see the error handling.
07756 6032 KCC 07757 6031 KSF 07760 5357 JMP .-1 07761 6036 KRB 07762 7106 CLL RTL 07763 7006 RTL 07764 7510 SPA 07765 5357 JMP 7757 07766 7006 RTL 07767 6031 KSF 07770 5367 JMP .-1 07771 6034 KRS 07772 7420 SNL 07773 3776 DCA I 7776 07774 3376 DCA 7776 07775 5356 JMP 7756 07776 0000 AND 0 07777 5301 JMP 7701
Then set PC to 7756, either by typing this address into the PC field, by a double click in the PC column, by dragging the PC arrow or by using the context menu in the memory content area of the CPU window.
There is also a shortcut for loading the RIM loader: open the “Bootstrap Loader” toolbox (from the Simulator menu), select “Low Speed Reader RIM Loader” and click “Load”. To load the selected loader again, use “Load Bootstrap Loader” from the Simulator menu or type Command-B.
Now switch to the ASR 33 Console Teletype window. Make sure that the teletype is online (click the “Online” switch), click the “Load” button, select the file “BIN Loader.rim” (you also can drag the file from the Finder to the “Load” button to load it) and turn the reader on by clicking the “On” switch. Then select “Go” (from the Simulator menu) to start the PDP-8/E. The tape reads in — watch the progress bar in the teletype window. When it disappears, the tape is completely read in. Select “Stop” (from the Simulator menu) to halt the PDP-8/E.
The “Bootstrap Loader” toolbox provides a shortcut for loading the BIN loader, so later you don't need to load it from the paper tape again.
Load the BIN loader (see above) and set PC to 7777. Go to the PC8-E Paper Tape & Punch window, click the “Load” button and select the file “FOCAL-8.bn” or drag the file from the Finder to the “Load” button. Then start the PDP-8/E. The tape reads in — watch the progress bar in the PC8-E window and inspect the Memory Content window to see how the PDP-8/E memory is filled with the FOCAL code. When the PDP-8/E halts, the program is read in. The tape is not unloaded automatically because the BIN loader does not read the trailer.
There is also a shortcut for loading RIM or BIN paper tapes directly into the PDP-8/E memory: select “Load Paper Tape...” from the File menu and choose the tape file you want to load.
Now set PC to 0200 and click in the “Go” icon in the toolbar of the CPU window. The PDP-8/E starts running FOCAL-8. Look at the message in the teletype window and answer two the questions with “NO”.
Run FOCAL-8 (see above). Go to the ASR 33 Console Teletype window and load the file “Towers of Hanoi (FOCAL-8).pt” into the teletype reader. Turn the reader on. The source code of the Towers of Hanoi program is read in and typed on the teletype. Sooner or later the output will become confused and you get the FOCAL-8 error message ?11.35 which means that the FOCAL-8 input buffer overflowed.
This seems to be a typical FOCAL-8 problem. It occurs because the interpreter uses interrupt driven I/O but is not prepared to handle such situations. (From the German FOCAL-8 manual: “Der Hinweis ist angebracht, daß hier kein Gerätefehler vorliegt, sondern rein von der Programmierung her eine zusätzliche Prüfroutine vermieden wurde, um dem Anwender den größtmöglichen Speicherplatz zur Verfügung zu stellen.”)
To avoid this problem, you can modify the FOCAL interpreter so that it does not use interrupts. To do this, first turn off the paper tape reader and unload the tape. Then type the return key and the command “ERASE ALL” to erase the FOCAL program store. Halt the PDP-8/E. Now go to the CPU window and modify the following memory locations:
Address | Old Content | New Content | ||
---|---|---|---|---|
00063 | 2676 | 1354 | ||
00064 | 2666 | 2414 | ||
02732 | 6001 | 5336 | ||
02762 | 6046 | 7000 |
Bernhard Baehr | 14.02.2022 21:53:00 |