Some progress, an important table and I think I found out how a table is read.
I found a table with 7 sections (I have 7 operation mode keys). The table is directly after the mnemonics table.
I’m confident that this is indeed the table for these keys and after the separator word (here 3137, what might be the temp return address ).
I noticed 7344 what is the same words as at 0. I first thought that this is an address, but probably it’s a PDP-8 instruction here. A common clear instruction. Earlier words (1166) more looking like data or bit patterns or half word values. Note 1105 to 1101 downwards.
Sim and test both start with 7344. Control starts with 7346. These 3 needs interaction with the PLC. Sim and control have the longest section. Delete the shortest. That all make sense. Palbart identifies most 3137 as labels.
previous page after mnemonics
7340
1102 3102
4023
4532 3142 0000 0000
1105 4172 --------(new page 6200)
1104
3137 ------------write, 1st op. mode key ?
1103 4172 1356
3136 1137 7006 7004
3137 ------------read, 2nd key
1137 7004 0035 4172
2136 5210 5020
1122 5226
1102
3137 ------------delete, 3rd key? (at 6226)
1101 5205 1104
3137 ------------copy, 4th key
5206
1166 5232
1167 5232
1165 5317
7330 1137 1137
3137 ------------sim, 5th key
7344 ------ x at 6246
3136 1537 7002 …
Some appears as plausible PDP-8 code. But there are also JMP and JMS and some would enter other sections.
Starting with the sim key, it seems like it would check for 2 keys and even load another table
[6246] IRQ,DLY,IE=0,1,0 L/AC:0/0000 MQ:0000 IR:7344 CLL CLA CMA RAL;Clear L, Set AC to 7777, rotate AC & L left
[6247] IRQ,DLY,IE=0,1,0 L/AC:1/7776 MQ:0000 IR:3136 DCA 0136 ;Deposit AC to memory then clear AC, ZP 0136
[6250] IRQ,DLY,IE=0,1,0 L/AC:1/0000 MQ:0000 IR:1537 TAD I 0137 ;Add operand to AC, Indexed ZP 0137
[6251] IRQ,DLY,IE=0,1,0 L/AC:1/5777 MQ:0000 IR:7002 BSW ;Byte Swap AC
[6252] IRQ,DLY,IE=0,1,0 L/AC:1/7757 MQ:0000 IR:0357 AND @@57 ;AND operand with AC, Current page @@57
[6253] IRQ,DLY,IE=0,1,0 L/AC:1/0057 MQ:0000 IR:7450 SNA ;Skip on AC <> 0
[6255] IRQ,DLY,IE=0,1,0 L/AC:1/0057 MQ:0000 IR:7110 CLL RAR ;Clear L, Rotate AC & L right
[6256] IRQ,DLY,IE=0,1,0 L/AC:1/0027 MQ:0000 IR:7420 SNL ;Skip on L <> 0
[6260] IRQ,DLY,IE=0,1,0 L/AC:1/0027 MQ:0000 IR:1360 TAD @@60 ;Add operand to AC, Current page @@60
[6261] IRQ,DLY,IE=0,1,0 L/AC:1/0067 MQ:0000 IR:4175 JMS 0175 ;Jump to subroutine ZP 0175
With a byte swap there are checks for 57 and 27, probably keys. I’ve changed the AC to 0 and continue without skipping
[6254] IRQ,DLY,IE=0,1,0 L/AC:0/0000 MQ:0000 IR:5771 JMP I @@71 ;Jump Indexed Current page @@71
[3561] IRQ,DLY,IE=0,0,0 L/AC:0/0000 MQ:0000 IR:1547 TAD I 0147 ;Add operand to AC, Indexed ZP 0147 =1000 = funct. unit list 2
[3562] IRQ,DLY,IE=0,0,0 L/AC:0/4017 MQ:0000 IR:1602 TAD I @@02 ;Add operand to AC, Indexed Current page @@02
[3563] IRQ,DLY,IE=0,0,0 L/AC:0/6157 MQ:0000 IR:7071 CML ;Complement L
[3564] IRQ,DLY,IE=0,0,0 L/AC:1/4710 MQ:0000 IR:0000 AND 0000 ;AND operand with AC, ZP 0000
[3565] IRQ,DLY,IE=0,0,0 L/AC:1/4300 MQ:0000 IR:2400 ISZ I 0000 ;Increment operand and skip if zero, Indexed ZP 0000
[3566] IRQ,DLY,IE=0,0,0 L/AC:1/4300 MQ:0000 IR:1125 TAD 0125 ;Add operand to AC, ZP 0125
[3567] IRQ,DLY,IE=0,0,0 L/AC:0/3700 MQ:0000 IR:7450 SNA ;Skip on AC <> 0
[3571] IRQ,DLY,IE=0,0,0 L/AC:0/3700 MQ:0000 IR:7002 BSW ;Byte Swap AC
[3572] IRQ,DLY,IE=0,0,0 L/AC:0/0037 MQ:0000 IR:7110 CLL RAR ;Clear L, Rotate AC & L right
[3573] IRQ,DLY,IE=0,0,0 L/AC:1/0017 MQ:0000 IR:1212 TAD @@12 ;Add operand to AC, Current page @@12
[3574] IRQ,DLY,IE=0,0,0 L/AC:1/0417 MQ:0000 IR:3060 DCA 0060 ;Deposit AC to memory then clear AC, ZP 0060
[3575] IRQ,DLY,IE=0,0,0 L/AC:1/0000 MQ:0000 IR:5020 JMP 0020 ;Jump ZP 0020
[0020] IRQ,DLY,IE=0,0,0 L/AC:1/0000 MQ:0000 IR:1126 TAD 0126 ;Add operand to AC, ZP 0126
The index at 147 is 1000 what is the start of the 2nd table with units, containing the separator word 4017. I haven’t found more values loaded, though. I don’t know what 3700 could be. And maybe I’m completely wrong.
Edit: The copy key is used in 3 ways
F0 input from TTY or cassette
F1 output to TTY or cassette (incl. print disassembly with mnemonics)
F2 CRC check.
And there are 3 lines. Output (5317 ? ) needs more operands. Next to baud rate also the output format (disassembly, 8 or 2 instructions per line or papertape)
1166 5232
1167 5232
1165 5317