PDP-8/E Simulator Quick Start Tutorial

This is a short tutorial to get started with the PDP-8/E Simulator. The tutorial begins with running a very simple PDP-8 program, advances to more complicated things and ends with a PDP-8/E running the ETOS time sharing operating system. All the steps described in this tutorial can be executed automatically with the “Quick Start AppleScript” included in the simulator distribution.
  1. Configure the emulated hardware

    Attach all I/O devices of the simulator package to the simulator. To do so, quit the simulator, put the plugins into the folder “I/O Devices” inside the simulators folder and start the PDP-8/E Simulator. Open the “Preferences” dialog box (from the Edit menu). In the various panels (available via the popup menu), set the following options:

  2. Run the saved “Welcome!” PDP-8 configuration

    Double-click the file “Welcome!” in the Finder — the simulator appears. Click in the word “Go” in the CPU window — the PDP-8 starts running. Switch the console teletype window to the front (by selecting from the Windows menu). Watch the teletype output.

  3. Load the BIN loader from the paper tape

    Start the simulator, scroll the CPU window memory display to location 7756 and toggle in the following program (the RIM loader) at locations 7756-7775 by clicking in the octal digits of the memory content (try to click and option-click very fast, too) or by clicking into the opcode area and typing the octal numbers, concluded by the return key. (You can type in the corresponding assembler instructions, too):

    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 (click the digits). (Shortcut for loading the RIM loader: Open the “Bootstrap loader” dialog box (from the Simulator menu), select “Low Speed Reader RIM Loader” and click OK.) Now switch to the console teletype window. Click the “Load” button, select the file “BIN Loader (RIM Format)” (with System 7.5 or later, you can drag the file from the Finder window to the “Load” button to mount it) and turn the reader on by clicking the “On” switch. Then select “Go” (from the Simulator menu) to start the PDP-8. 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. (Shortcut for loading the BIN loader: Open the “Bootstrap Loader” dialog box, select “BIN Loader” and click OK.)

  4. Load FOCAL-8

    Load the BIN loader (see above) and set PC to 7777 (scroll the memory display of the CPU window to this location and click in the address while holding down the command key or drag the PC indicator arrow). Go to the PC8-E window, click the “Load” button and select the file “FOCAL-8 (BIN Format)” (or, with System 7.5 or later, drag it from the Finder to the button). Then start the PDP-8. The tape reads in - watch the progress bar in the PC8-E window. When the PDP-8 halts, the program is read in (the tape is not unloaded because the BIN loader does not read the trailer). (Shortcut for loading BIN or RIM paper tapes: 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 word “Go” at the top right of the CPU window. The PDP-8 starts running FOCAL-8. Look at the message in the teletype window. (Answer the two questions with “NO”.)

  5. Load the “Towers of Hanoi” FOCAL source code into the FOCAL interpreter

    Run FOCAL-8 (see above). Go to the console teletype window and load the file “Towers of Hanoi (FOCAL-8)” 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 (depending on the speed of you Macintosh) 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. Now go to the CPU window and modify the following memory locations: location 63 from 2676 (old) to 1354 (new), location 64 from 2666 to 2414, location 2732 from 6001 to 5336, location 2762 from 6046 to 7000. Set the PC to 0200 and clear the interrupt enable flag. Then you can restart the PDP-8; FOCAL now runs without using interrupts. (If you like, you now can make the teletype run as fast as possible. Because the I/O is no longer interrupt driven, the hardware timing is no longer critical.) Go back to the teletype window, type the return key three or four times, load the file “Towers of Hanoi (FOCAL-8)” into the reader and turn the reader on again. The tape reads in without problems now. When the tape is loaded completely (the progress bar with the file name disappears), type “GO” at the FOCAL prompt to start the Towers of Hanoi program. (Be patient: interpreted FOCAL programs running on a PDP-8 simulated by a — slower or faster — Macintosh are very slow.)

  6. Boot OS/8

    Halt the PDP-8, reset the simulator (select “Reset” from the File menu) and open the “Bootstrap Loader” dialog box (from the Simulator menu), check the RK8-E Boot Code item and click OK. Now go to the RK8-E window and click the mount button of RK05 drive 0. Select the file “OS/8 System Disk”. (You can drag the file from the Finder to the mount button, too.) Then start the PDP-8. The OS/8 prompt (a single dot) appears in the console teletype window. Type OS/8 commands. (The first command you want to type is “DATE 31-DEC-99”.)

  7. Run the Pascal-S Benchmark

    Verify that the PDP-8 has at least 28K words of memory (see step 1) and boot OS/8 (see step 6). Halt the PDP-8. Go to the RK8-E window and mount the DECpack “Pascal-S Disk” to drive 1. Start the PDP-8 again. Assign a logical name (e. g. B:) to drive 1 by typing the OS/8 command “ASSIGN RKA1: B:”. Type “RUN B:PASCAL” to start the Pascal-S system. When the command decoder prompt appears (a single asterisk), type the name of the file containing the Pascal program you want to run, in this case “B:BENCH.PS”. The compiler compiles and runs the program.

  8. Boot ETOS

    Halt the PDP-8, reset the simulator (select “Reset” from the File menu) and verify that the emulated machine has 32K words of memory (see step 1). Open the “Bootstrap Loader” dialog box (from the Simulator menu), check the RK8-E Boot Code item and click OK. Now go to the RK8-E window, unmount all drives and mount the ETOS demo disk to drive 0. Then start the PDP-8. The OS/8 prompt (a single dot) appears in the console teletype window. Type “R ETOS” to start ETOS. Hit the return key when the “OPTION?” prompt appears. Now type “LOGIN” and hit return. Answer the question “ACCOUNT?” with “0,4”. At the “PASSWORD?“ prompt, type “USER1”. ETOS now prints its welcome message and an OS/8 prompt. Now you can run your virtual OS/8 session in the console terminal. To get a feeling of the multi user capabilities of ETOS, start a long-running command in the console, e. g. “HELP” and switch to the auxiliary teletype to log in to a second ETOS session. To do so, type “LOGIN” and use the account “0,5” with the password “USER2”. Now two ETOS sessions are active. (For more informations about ETOS, visit the links on the TSC8-75 page.)