ADVENTURE
The distribution starts the PDP-8 SimH from a RK05 disk image. This image contains an OS/8 installation with the famous ADVENTURE game installed.
Read here about OS/8 and ADVENT: https://raymii.org/s/articles/Running_ADVENT-on-the-PDP-8-with-SIMH.html
The SimH start script types in all commands needed to start the game.
The game is written in FORTRAN, so first the FORTRAN environment "FRTS" is started. After loading "ADVENT.LD" the ESC key is pressed to start.
A special feature of the PDP-8 ADVENT is an "idle pattern" light animation running on the "Accumulator" lamps. Oscar Vermeulens PidP8 promo video show them: watch https://www.youtube.com/watch?v=5hyUActgT2E at timestamp 3:00.
Toggeling in binary code
Since the front panel is fully operable, you can type in and run own assembler programs.
For assembly you can use the cross-assembler PALBART, see download and info.
The almost shortest possible program is this "light shifter":
/ shifter - manually move a bit through the Accumulator lamps
*100 / start addr
CLA CLL IAC / Link=AC=0, AC++. AC now 1
LOOP,
RAL / rotate the bit left through AC and Link
HLT / wait for user to CONTinue
JMP LOOP / again
$
Save this in file "shifter.pal" and run it through palbart:
palbart shifter.pal
A file "shifter.lst" is produced:
/ shifter - manually move a bit through the Accumulator lamps Page 1
1 / shifter - manually move a bit through the Accumulator lamps
2
3 0100 *100 / start addr
4 00100 7301 CLA CLL IAC / Link=AC=0, AC++. AC now 1
5 LOOP,
6 00101 7004 RAL / rotate the bit left through AC and Link
7 00102 7402 HLT / wait for user to CONTinue
8 00103 5101 JMP LOOP / again
9
10 $
No detected errors
No links generated
In the left column the binary data of the program are shown. Toggle them in and start the program:
Step | Switch Register | Cmd switch | Info |
1. | Halt | stop execution of ADVENT and OS/8 | |
2. | 100 |
Load Add | set start address in Program Counter |
3. | 7301 |
Dep | set word at 100, Program Counter increments |
4. | 7004 |
Dep | set word at 101 |
5. | 7402 |
Dep | set word at 102 |
6. | 5101 |
Dep | set word at 103 (see image below) |
7. | 100 |
Load Add | set Program Counter to start addr |
8. | Start | first shift, then halt | |
9. | Cont | loop, next shift, halt |
After step 6 (Deposit 5101 into 00103) the panel state is this: Switch Register switches = 5101, Memory Address = 103, Program Counter is already incremented to 104, Memory Buffer = 5101.
Of course the OS/8 is demolished after this direct memory manipulation. You really should have activated "PANEL LOCK" !
Exercises for the reader
1) When you activate the "Sing Inst" switch, you can single step through the program with "Cont". What do the "Instruction indicators" show ?
2) After start, the first lamp lighting is not the rightmost one. Can you fix this? Hint: CLL clears the Link bit, CML complements it.
3) Can you change the "shifter" program into a "binary counter" ?