1
0
mirror of https://github.com/aap/pdp6.git synced 2026-01-11 23:53:31 +00:00
aap.pdp6/code/bootstrap.txt

124 lines
2.9 KiB
Plaintext

PAPER TAPE RIM LOADER (AT 20):
LOC 20
CONO PTR,60 ; 710600 000060
A: CONSO PTR,10 ; 710740 000010
JRST .-1 ; 254000 000021
DATAI PTR,B ; 710440 000026
CONSO PTR,10 ; 710740 000010
JRST .-1 ; 254000 000024
B: 0 ; 000000 000000
JRST A ; 254000 000021
DECTAPE RIM LOADER AT 0 (SHADOW) 014 INSTRUCTIONS
MY DECTAPE LOADER:
CONO DC,4010 ; 720200 004010
CONO UTC,220300 ; 721200 220300
MOVE 17,12 ; 200740 000012
CONSO DC,1000 ; 720340 001000
JRST .-1 ; 254000 000003
BLKI DC,17 ; 720000 000017
JRST DONE ; 254000 000010
JRST .-1 ; 254000 000003
DONE: CONO DC,0 ; 720200 000000
HALT 300 ; 254200 000300
777600000277 ; 777600 000277
PDP-10 RIM10 LOADER:
003110' R1BLDR:
000000 PHASE 0
003110' 777762 000000 IOWD $ADR,$ST
003111' 710600 000060 $ST: CONO PTR,60
003112' 541400 000004 HRRI $A,$RD+1
003113' 710740 000010 $RD: CONSO PTR,10
003114' 254000 000003 JRST .-1
003115' 710470 000007 DATAI PTR,@$TBL1-$RD+1($A)
003116' 256010 000007 XCT $TBL1-$RD+1($A)
003117' 256010 000012 XCT $TBL2-$RD+1($A)
003120' 364400 000000 $A: SOJA $A,
003121' 312740 000016 $TBL1: CAME $CKSM,$ADR
003122' 270756 000001 ADD $CKSM,1($ADR)
003123' 331740 000016 SKIPL $CKSM,$ADR
003124' 254200 000001 $TBL2: JRST 4,$ST
003125' 253700 000003 AOBJN $ADR,$RD
003126' 254000 000002 $ADR: JRST $ST+1
000017 $CKSM:
003127' DEPHASE
MAC DECtape RIM loader:
00 255000 000000 JFCL / no-op, what for?
01 205000 255000 MOVSI (JFCL) / restore JFCL in 0
02 700200 635550 CONO 635550 / reset APR
03 700600 011577 CONO PI,11577 / reset PI
04 721200 223110 CONO UTC,223110 / read all forward
05 720200 004010 CONO DC,4010 / read
06 720340 001000 LUP%: CONSO DC,1000 / wait for word
07 254000 000006 JRST .-1
10 720040 000013 DATAI DC,A% / read word
11 345540 000006 AOJGE A%,LUP% / try next word if >= -1
12 602540 777777 TRNE A%,-1 / execute if RH!=0 (was -1)
13 000000 000013 A%: .
14 254000 000006 JRST LUP%
15
16
17
11: like AOBJP without incrementing left half
12: execute only if right half != 0
0 DATAI PTR,1
1 .
2 JRST 0
Written by RIM loader loader (part of MACDMP)
2 JRST 0
10 CONO 1000 / turn clock flag off
11 JFCL X
12 JFCL X
13 JFCL X
14 JFCL X
15 CONSZ 1000 / skip if clock flag off
16 JRST 10 / clock on, so still on repeat
17 SKIPA X / clock off, we're at full speed
20 CONO PTR,60
21 CONSO PTR,10
22 JRST 21
23 DATAI PTR,26
24 CONSO PTR,10
25 JRST 24
26 XCT 26
27 JRST 21
37 37176
PDP6 SBLK loader:
1 MOVE 1,15
2 JSP 17,30 / wait for ready
3 DATAI PTR,16 / get block header
4 MOVE 15,16 / save for checksum
5 JUMPG 16,16 / execute if not negative
6 JSP 17,30 / read block word
7 DATAI PTR,(16)
10 ROT 15,1
11 ADD 15,(16)
12 AOBJN 16,6
13 MOVEI 17,33
14 JRST 30
15 CONO PTR,60 / replaced by current checksum
16 / input word: header/aobjn pointer/checksum
17 / return address
30 CONSO PTR,10 / wait for word
31 JRST 30
32 JRST (17)
33 DATAI PTR,16 / get checksum word
34 CAMN 15,16
35 JRST 2 / go to next block if checksum ok
36 JRST 4,1