Fixed incorrect RL11 addresses
This commit is contained in:
parent
d470f17cdf
commit
71546f1ed5
16 changed files with 24 additions and 24 deletions
535
apps/pdp11/boot/monitor/BOOTMON.txt
Normal file
535
apps/pdp11/boot/monitor/BOOTMON.txt
Normal file
|
|
@ -0,0 +1,535 @@
|
|||
1 ; BOOT MONITOR
|
||||
2 ;
|
||||
3 ; REBASE HIGHER LINK/BOT:140000
|
||||
4 ; WANT PERFORMANCE COUNTER - CLOCK TICKS TO DO SOMETHING?
|
||||
5
|
||||
6 177776 PSW = 177776
|
||||
7 177570 CNSW = 177570
|
||||
8 177564 DL11XCSR = 177564
|
||||
9 000064 DL11VEC = 64
|
||||
10
|
||||
11 177546 KW11LKS = 177546
|
||||
12 000100 KW11VEC = 100
|
||||
13
|
||||
14 .ASECT
|
||||
15 140000 .=140000
|
||||
16 140000 000005 START: RESET ; 140000
|
||||
17 140002 005037 177776 CLR @#PSW
|
||||
18 140006 012706 140000 MOV #START,SP
|
||||
19 140012 005037 177564 CLR @#DL11XCSR ; CLEAR THE XCSR
|
||||
20 140016 012700 141125 MOV #BANNER,R0
|
||||
21 140022 004767 140154' JSR PC,PRINT
|
||||
22 140026 012737 140130 000100 MOV #CLKAST,@#KW11VEC
|
||||
23 140034 012737 000340 000102 MOV #340,@#KW11VEC+2
|
||||
24 140042 052737 000100 177546 BIS #100,@#KW11LKS ; SET CLOCK TICKING
|
||||
25
|
||||
26 140050 012700 141155 MOV #PROMPT,R0
|
||||
27 140054 004767 140154' JSR PC,PRINT
|
||||
28 140060 162706 000256 SUB #256,SP
|
||||
29 140064 010600 MOV SP,R0
|
||||
30 140066 004767 140250' JSR PC,INPUT
|
||||
31 140072 005000 CLR R0
|
||||
32 140074 010037 177570 1$: MOV R0,@#CNSW ; UPDATE THE FRONT PANEL DATA DISPLAY WITH R0
|
||||
33 140100 000001 WAIT
|
||||
34 140102 005200 INC R0
|
||||
35 140104 005767 140124' TST LGHTON
|
||||
36 140110 001771 BEQ 1$
|
||||
37 140112 012746 054000 MOV #054000,-(SP) ; SUPER PRIORITY 0 ALT REG
|
||||
38 140116 016746 140124' MOV LGHTON,-(SP) ; CALL SUPER LOOP START
|
||||
39 140122 000002 RTI
|
||||
40
|
||||
41 140124 000000 LGHTON: .WORD 0
|
||||
42 140126 000000 CLKTIC: .WORD 0
|
||||
43
|
||||
44 CLKAST: ; 140124
|
||||
45 140130 005267 140126' INC CLKTIC
|
||||
46 140134 000002 RTI
|
||||
47
|
||||
48 ONECHR:
|
||||
49 140136 105737 177564 TSTB @#DL11XCSR ; 140132
|
||||
50 140142 100375 BPL ONECHR
|
||||
51 140144 110037 177566 MOVB R0,@#177566
|
||||
52 140150 000207 RTS PC
|
||||
53
|
||||
54 140152 000000 PRTPTR: .WORD 0 ; 140146
|
||||
55
|
||||
56 PRINT: ; 140150
|
||||
57 140154 132737 000100 177564 BITB #100,@#DL11XCSR
|
||||
58 140162 001374 BNE PRINT
|
||||
59 140164 010067 140152' MOV R0,PRTPTR
|
||||
60 140170 012737 140214 000064 MOV #PRTAST,@#DL11VEC
|
||||
61 140176 012737 000200 000066 MOV #200,@#DL11VEC+2
|
||||
62 140204 152737 000100 177564 BISB #100,@#DL11XCSR
|
||||
63 140212 000207 RTS PC
|
||||
64
|
||||
65 PRTAST: ; 140210
|
||||
66 140214 105777 140152' TSTB @PRTPTR
|
||||
67 140220 001406 BEQ 2$
|
||||
68 140222 117737 140152' 177566 MOVB @PRTPTR,@#177566
|
||||
69 140230 005267 140152' INC PRTPTR
|
||||
70 140234 000002 RTI
|
||||
71 140236 105037 177564 2$: CLRB @#177564
|
||||
72 140242 000002 RTI
|
||||
73
|
||||
74 140244 000000 BUFFER: .WORD 0 ; INPUT BUFFER POINTER
|
||||
75 140246 000000 LENGTH: .WORD 0 ; INPUT BUFFER LENGTH
|
||||
76
|
||||
77 INPUT:
|
||||
78 140250 010067 140244' MOV R0,BUFFER ; 140244
|
||||
79 140254 005067 140246' CLR LENGTH
|
||||
80 140260 012737 140304 000060 MOV #INPAST,@#60
|
||||
81 140266 012737 000200 000062 MOV #200,@#62
|
||||
82 140274 152737 000100 177560 BISB #100,@#177560
|
||||
83 140302 000207 RTS PC
|
||||
84
|
||||
85 INPAST: ; 140300
|
||||
86 140304 010046 MOV R0,-(SP)
|
||||
87 140306 113700 177562 MOVB @#177562,R0
|
||||
88 140312 120027 000015 CMPB R0,#15
|
||||
89 140316 001455 BEQ 7$ ; CARRIAGE RETURN
|
||||
90 140320 120027 000177 CMPB R0,#127.
|
||||
91 140324 001403 BEQ 2$ ; <DEL>
|
||||
92 140326 120027 000010 CMPB R0,#10
|
||||
93 140332 001012 BNE 4$ ; BACK SPACE
|
||||
94 140334 005767 140246' 2$: TST LENGTH ; DATA IN BUFFER?
|
||||
95 140340 001406 BEQ 3$
|
||||
96 140342 005367 140246' DEC LENGTH ; LENGTH
|
||||
97 140346 012700 141043 MOV #DEL,R0
|
||||
98 140352 004767 140154' JSR PC,PRINT
|
||||
99 140356 000453 3$: BR 9$
|
||||
100 140360 120027 000040 4$: CMPB R0,#40
|
||||
101 140364 002450 BLT 9$ ; BELOW SPACE
|
||||
102 140366 120027 000177 CMPB R0,#177
|
||||
103 140372 002045 BGE 9$ ; SKIP STUFF TOO BIG
|
||||
104 140374 004767 140136' JSR PC,ONECHR ; ECHO CHAR
|
||||
105 140400 120027 000172 CMPB R0,#172
|
||||
106 140404 003005 BGT 5$ ; ABOVE Z
|
||||
107 140406 120027 000141 CMPB R0,#141
|
||||
108 140412 002402 BLT 5$ ; BELOW A
|
||||
109 140414 142700 000040 BICB #40,R0 ; CONVERT TO UPPER CASE
|
||||
110 140420 026727 140246' 000254 5$: CMP LENGTH,#254
|
||||
111 140426 002027 BGE 9$
|
||||
112 140430 110046 MOVB R0,-(SP)
|
||||
113 140432 016700 140244' MOV BUFFER,R0
|
||||
114 140436 066700 140246' ADD LENGTH,R0
|
||||
115 140442 112610 MOVB (SP)+,(R0)
|
||||
116 140444 005267 140246' INC LENGTH
|
||||
117 140450 000416 BR 9$
|
||||
118
|
||||
119 140452 016700 140244' 7$: MOV BUFFER,R0
|
||||
120 140456 066700 140246' ADD LENGTH,R0
|
||||
121 140462 105010 CLRB (R0)
|
||||
122 140464 012737 140512 000240 MOV #CMD,@#240 ; CALL CMD AT PRIORITY 2
|
||||
123 140472 012737 000100 000242 MOV #100,@#242
|
||||
124 140500 012737 002000 177772 MOV #2000,@#177772
|
||||
125 140506 012600 9$: MOV (SP)+,R0
|
||||
126 140510 000002 RTI
|
||||
127
|
||||
128 CMD: ; 140506
|
||||
129 140512 005037 177772 CLR @#177772 ; NO MORE PIR CALLS
|
||||
130 140516 010046 MOV R0,-(SP)
|
||||
131 140520 010146 MOV R1,-(SP)
|
||||
132 140522 010246 MOV R2,-(SP)
|
||||
133 140524 010346 MOV R3,-(SP)
|
||||
134 140526 010446 MOV R4,-(SP)
|
||||
135 140530 012700 141040 MOV #EOL,R0
|
||||
136 140534 004767 140154' JSR PC,PRINT
|
||||
137 140540 132737 000100 177564 1$: BITB #100,@#177564
|
||||
138 140546 001374 BNE 1$
|
||||
139 140550 005004 CLR R4
|
||||
140 140552 012703 141047 MOV #CMDLST,R3 ; CMD LIST
|
||||
141 140556 112300 3$: MOVB (R3)+,R0
|
||||
142 140560 001431 BEQ 13$
|
||||
143 140562 016702 140244' MOV BUFFER,R2 ; USER CMD
|
||||
144 140566 112201 4$: MOVB (R2)+,R1
|
||||
145 140570 001431 BEQ 15$ ; NULL COMMAND?
|
||||
146 140572 120127 000040 CMPB R1,#40
|
||||
147 140576 001773 BEQ 4$ ; SKIP SPACE
|
||||
148 140600 120001 5$: CMPB R0,R1
|
||||
149 140602 001010 BNE 7$
|
||||
150 140604 112300 MOVB (R3)+,R0
|
||||
151 140606 001412 BEQ 9$
|
||||
152 140610 112201 MOVB (R2)+,R1
|
||||
153 140612 001410 BEQ 9$
|
||||
154 140614 120127 000040 CMPB R1,#40
|
||||
155 140620 001367 BNE 5$
|
||||
156 140622 000404 BR 9$
|
||||
157 140624 112300 7$: MOVB (R3)+,R0
|
||||
158 140626 001376 BNE 7$
|
||||
159 140630 005204 INC R4
|
||||
160 140632 000751 BR 3$
|
||||
161 140634 006304 9$: ASL R4
|
||||
162 140636 004774 140704 JSR PC,@CMDTBL(R4) ; EXECUTE
|
||||
163 140642 000404 BR 15$
|
||||
164
|
||||
165 140644 012700 141103 13$: MOV #UNKMSG,R0
|
||||
166 140650 004767 140154' JSR PC,PRINT
|
||||
167
|
||||
168 140654 005067 140246' 15$: CLR LENGTH
|
||||
169 140660 012700 141155 MOV #PROMPT,R0
|
||||
170 140664 004767 140154' JSR PC,PRINT
|
||||
171 140670 012604 MOV (SP)+,R4
|
||||
172 140672 012603 MOV (SP)+,R3
|
||||
173 140674 012602 MOV (SP)+,R2
|
||||
174 140676 012601 MOV (SP)+,R1
|
||||
175 140700 012600 MOV (SP)+,R0
|
||||
176 140702 000002 RTI
|
||||
177
|
||||
178
|
||||
179 140704 142054 141250 141264 CMDTBL: .WORD BOOT,HALT,TEST,LIGHTS,HELP
|
||||
140712 141370 141236
|
||||
180 140716 103 117 115 HLPMSG: .ASCIZ 'COMMANDS ARE BOOT, HALT, LIGHTS, TEST AND HELP'<15><12>'BOOT DEVICES ARE RK? RL? OR RP?'<15><12>
|
||||
140721 115 101 116
|
||||
140724 104 123 040
|
||||
140727 101 122 105
|
||||
140732 040 102 117
|
||||
140735 117 124 054
|
||||
140740 040 110 101
|
||||
140743 114 124 054
|
||||
140746 040 114 111
|
||||
140751 107 110 124
|
||||
140754 123 054 040
|
||||
140757 124 105 123
|
||||
140762 124 040 101
|
||||
140765 116 104 040
|
||||
140770 110 105 114
|
||||
140773 120 015 012
|
||||
140776 102 117 117
|
||||
141001 124 040 104
|
||||
141004 105 126 111
|
||||
141007 103 105 123
|
||||
141012 040 101 122
|
||||
141015 105 040 122
|
||||
141020 113 077 040
|
||||
141023 122 114 077
|
||||
141026 040 117 122
|
||||
141031 040 122 120
|
||||
141034 077 015 012
|
||||
141037 000
|
||||
181 141040 015 012 000 EOL: .BYTE 15,12,0
|
||||
182 141043 010 040 010 DEL: .BYTE 10,40,10,0
|
||||
141046 000
|
||||
183 141047 102 117 117 CMDLST: .ASCIZ 'BOOT'
|
||||
141052 124 000
|
||||
184 141054 110 101 114 .ASCIZ 'HALT'
|
||||
141057 124 000
|
||||
185 141061 124 105 123 .ASCIZ 'TEST'
|
||||
141064 124 000
|
||||
186 141066 114 111 107 .ASCIZ 'LIGHTS'
|
||||
141071 110 124 123
|
||||
141074 000
|
||||
187 141075 110 105 114 .ASCIZ 'HELP'
|
||||
141100 120 000
|
||||
188 141102 000 .BYTE 0
|
||||
189 141103 125 116 113 UNKMSG: .ASCIZ 'UNKNOWN COMMAND'<12><15>
|
||||
141106 116 117 127
|
||||
141111 116 040 103
|
||||
141114 117 115 115
|
||||
141117 101 116 104
|
||||
141122 012 015 000
|
||||
190 141125 120 104 120 BANNER: .ASCIZ 'PDP-11 MONITOR V1.0'<12><15><12><15>
|
||||
141130 055 061 061
|
||||
141133 040 115 117
|
||||
141136 116 111 124
|
||||
141141 117 122 040
|
||||
141144 126 061 056
|
||||
141147 060 012 015
|
||||
141152 012 015 000
|
||||
191 ; 'ADAPTED FROM CODE BY PAUL NANKERVIS <PAULNANK@HOTMAIL.COM>'<12><15><12><15>
|
||||
192 141155 102 117 117 PROMPT: .ASCIZ 'BOOT> '
|
||||
141160 124 076 040
|
||||
141163 000
|
||||
193 141164 125 116 113 BADBOO: .ASCIZ 'UNKNOWN BOOT DEVICE'<12><15>
|
||||
141167 116 117 127
|
||||
141172 116 040 102
|
||||
141175 117 117 124
|
||||
141200 040 104 105
|
||||
141203 126 111 103
|
||||
141206 105 012 015
|
||||
141211 000
|
||||
194 141212 040 040 040 PERMSG: .ASCIZ ' CLOCK TICKS'<12><15>
|
||||
141215 040 040 040
|
||||
141220 103 114 117
|
||||
141223 103 113 040
|
||||
141226 124 111 103
|
||||
141231 113 123 012
|
||||
141234 015 000
|
||||
195
|
||||
196 .EVEN
|
||||
197
|
||||
198 HELP: ; 141244
|
||||
199 141236 012700 140716 MOV #HLPMSG,R0
|
||||
200 141242 004767 140154' JSR PC,PRINT
|
||||
201 141246 000207 RTS PC
|
||||
202
|
||||
203 HALT: ; 141260
|
||||
204 141250 000000 HALT
|
||||
205 141252 012700 141040 MOV #EOL,R0
|
||||
206 141256 004767 140154' JSR PC,PRINT
|
||||
207 141262 000207 RTS PC
|
||||
208
|
||||
209 TEST: ; 141272
|
||||
210 141264 005067 140126' CLR CLKTIC
|
||||
211
|
||||
212 141270 012705 015000 MOV #15000,R5
|
||||
213 141274 010537 177570 10$: MOV R5,@#177570 ; DISPLAY
|
||||
214 141300 010504 MOV R5,R4
|
||||
215 141302 006204 ASR R4
|
||||
216 141304 005000 15$: CLR R0
|
||||
217 141306 010501 MOV R5,R1
|
||||
218 141310 071004 DIV R4,R0
|
||||
219 141312 010002 MOV R0,R2
|
||||
220 141314 070204 MUL R4,R2
|
||||
221 141316 060301 ADD R3,R1
|
||||
222 141320 020105 CMP R1,R5
|
||||
223 141322 001401 BEQ 20$
|
||||
224 141324 000000 HALT
|
||||
225 141326 077412 20$: SOB R4,15$
|
||||
226 141330 077517 SOB R5,10$
|
||||
227
|
||||
228 141332 012700 141217 MOV #PERMSG+5,R0
|
||||
229 141336 016703 140126' MOV CLKTIC,R3
|
||||
230
|
||||
231 141342 005002 25$: CLR R2 ; 141350
|
||||
232 141344 071227 000010 DIV #10,R2
|
||||
233 141350 062703 000060 ADD #'0,R3
|
||||
234 141354 110340 MOVB R3,-(R0)
|
||||
235 141356 010203 MOV R2,R3
|
||||
236 141360 001370 BNE 25$
|
||||
237
|
||||
238 141362 004767 140154' JSR PC,PRINT
|
||||
239 141366 000207 RTS PC
|
||||
240
|
||||
241
|
||||
242 177572 MMR0=177572
|
||||
243 177574 MMR1=177574
|
||||
244 177576 MMR2=177576
|
||||
245 172516 MMR3=172516
|
||||
246
|
||||
247 LIGHTS: ; 141376
|
||||
248 141370 012703 077406 MOV #77406,R3 ; DEFAULT PDR
|
||||
249 141374 005002 CLR R2
|
||||
250 141376 005001 CLR R1
|
||||
251 141400 012700 000010 MOV #8.,R0
|
||||
252 141404 010361 172300 1$: MOV R3,172300(R1) ; KERNEL I PDR
|
||||
253 141410 010261 172340 MOV R2,172340(R1) ; KERNEL I PAR
|
||||
254 141414 010361 172320 MOV R3,172320(R1) ; KERNEL D PDR
|
||||
255 141420 010261 172360 MOV R2,172360(R1) ; KERNEL D PAR
|
||||
256 141424 010361 172200 MOV R3,172200(R1) ; SUPER I PDR
|
||||
257 141430 010261 172240 MOV R2,172240(R1) ; SUPER I PAR
|
||||
258 141434 010361 172220 MOV R3,172220(R1) ; SUPER D PDR
|
||||
259 141440 010261 172260 MOV R2,172260(R1) ; SUPER D PAR
|
||||
260 141444 010361 177600 MOV R3,177600(R1) ; USER I PDR
|
||||
261 141450 010261 177640 MOV R2,177640(R1) ; USER I PAR
|
||||
262 141454 010361 177620 MOV R3,177620(R1) ; USER D PDR
|
||||
263 141460 010361 177660 MOV R3,177660(R1) ; USER D PAR
|
||||
264 141464 062702 000200 ADD #200,R2
|
||||
265 141470 062701 000002 ADD #2,R1
|
||||
266 141474 077035 SOB R0,1$
|
||||
267 141476 052737 176000 172376 BIS #176000,@#172376 ; KERNEL D POINTS TO I/O SPACE
|
||||
268 141504 052737 176000 172276 BIS #176000,@#172276 ; SUPER D POINTS TO I/O SPACE
|
||||
269 141512 052737 176000 177676 BIS #176000,@#177676 ; USER D POINTS TO I/O SPACE
|
||||
270 141520 012737 000077 172516 MOV #77,@#MMR3 ; 77 FOR 22 BIT
|
||||
271 141526 012737 000001 177572 MOV #1,@#MMR0
|
||||
272
|
||||
273 141534 012737 001700 172244 MOV #1700,@#172244 ; BASE SUPER I (PAR 2) #40000 AT #170000
|
||||
274 141542 012737 001700 172264 MOV #1700,@#172264 ; BASE SUPER D (PAR 2) #40000 AT #170000
|
||||
275 141550 012737 010000 177776 MOV #010000,@#177776 ; SET PM TO SUPER
|
||||
276
|
||||
277 141556 012703 040200 MOV #40200,R3 ; SUPER CODE ADDRESS
|
||||
278 141562 012702 141610 MOV #SUPERS,R2 ; ADDRESS SUPER CODE
|
||||
279 141566 012246 10$: MOV (R2)+,-(SP)
|
||||
280 141570 006623 MTPI (R3)+
|
||||
281 141572 020227 142054 CMP R2,#SUPERE
|
||||
282 141576 103773 BLO 10$
|
||||
283
|
||||
284 141600 012767 040200 140124' MOV #40200,LGHTON ; CHANGE IDLE TASK
|
||||
285 141606 000207 RTS PC
|
||||
286
|
||||
287 ;
|
||||
288 ; TO BE COPIED TO SUPER #40200 AT PHYSICAL #170000
|
||||
289 ; #40000 TO #40200 FOR WAIT & JMP INSTRUCTIONS
|
||||
290 ;
|
||||
291 SUPERS: ; 141616
|
||||
292 141610 012700 000037 MOV #37,R0 ; LOAD PATTERN
|
||||
293 141614 012701 174000 MOV #174000,R1
|
||||
294 141620 032737 000001 177570 BIT #1,@#177570
|
||||
295 141626 001414 BEQ 10$
|
||||
296 141630 012700 007417 MOV #7417,R0
|
||||
297 141634 010001 MOV R0,R1
|
||||
298 141636 005101 COM R1
|
||||
299 141640 032737 000002 177570 BIT #2,@#177570
|
||||
300 141646 001404 BEQ 10$
|
||||
301 141650 012700 036163 MOV #36163,R0
|
||||
302 141654 012701 037000 MOV #37000,R1
|
||||
303 141660 010102 10$: MOV R1,R2
|
||||
304 141662 162702 000002 SUB #2,R2
|
||||
305 141666 042702 000001 BIC #1,R2 ; WAIT ADDRESS
|
||||
306 141672 010203 MOV R2,R3
|
||||
307 141674 042703 177701 BIC #177701,R3 ; ADDRESS OFFSET
|
||||
308 141700 012763 000001 040000 MOV #0000001,40000(R3) ; WRITE WAIT
|
||||
309 141706 062703 000002 ADD #2,R3
|
||||
310 141712 012763 000113 040000 MOV #0000113,40000(R3) ; WRITE JMP (R3)
|
||||
311
|
||||
312 141720 010204 MOV R2,R4
|
||||
313 141722 072427 177772 ASH #-6,R4
|
||||
314 141726 042704 177600 BIC #177600,R4
|
||||
315 141732 012705 001700 MOV #1700,R5
|
||||
316 141736 160405 SUB R4,R5 ; PAR ADDRESS BASE FOR WAIT
|
||||
317 141740 010204 MOV R2,R4
|
||||
318 141742 072427 177764 ASH #-12.,R4
|
||||
319 141746 042704 177761 BIC #177761,R4 ; PAR SELECT OFFSET
|
||||
320 141752 010564 172240 MOV R5,172240(R4) ; SUPER I SPACE
|
||||
321
|
||||
322 141756 010103 MOV R1,R3
|
||||
323 141760 072327 177764 ASH #-12.,R3
|
||||
324 141764 042703 177761 BIC #177761,R3 ; PAR SELECT OFFSET
|
||||
325 141770 020304 CMP R3,R4 ; SAME PAR
|
||||
326 141772 001412 BEQ 30$
|
||||
327 141774 010104 MOV R1,R4
|
||||
328 141776 072427 177772 ASH #-6,R4
|
||||
329 142002 042704 177600 BIC #177600,R4
|
||||
330 142006 012705 001700 MOV #1700,R5
|
||||
331 142012 160405 SUB R4,R5 ; PAR ADDRESS BASE FOR JMP
|
||||
332 142014 010563 172240 MOV R5,172240(R3) ; SUPER I SPACE
|
||||
333 30$:
|
||||
334 142020 012704 000003 MOV #3,R4
|
||||
335 142024 063704 177570 ADD @#177570,R4
|
||||
336 142030 012703 000002 MOV #2,R3
|
||||
337 142034 060703 ADD PC,R3
|
||||
338 142036 000112 40$: JMP (R2)
|
||||
339 142040 077402 SOB R4,40$
|
||||
340 142042 010002 MOV R0,R2
|
||||
341 142044 006002 ROR R2 ; ROTATE PATTERN
|
||||
342 142046 006101 ROL R1
|
||||
343 142050 006000 ROR R0
|
||||
344 142052 000702 BR 10$
|
||||
345 SUPERE:
|
||||
346
|
||||
347 BOOT: ; 142062
|
||||
348 142054 005003 CLR R3 ; UNIT
|
||||
349 142056 112201 1$: MOVB (R2)+,R1
|
||||
350 142060 001545 BEQ BOOTRK ; DEFAULT DEVICE IS RK0
|
||||
351 142062 120127 000040 CMPB R1,#40
|
||||
352 142066 001773 BEQ 1$
|
||||
353 142070 120127 000122 CMPB R1,#'R
|
||||
354 142074 001405 BEQ 5$
|
||||
355
|
||||
356 142076 012700 141164 MOV #BADBOO,R0
|
||||
357 142102 004767 140154' JSR PC,PRINT
|
||||
358 142106 000207 RTS PC
|
||||
359
|
||||
360 142110 112201 5$: MOVB (R2)+,R1 ; HOPEFULLY K, L OR P
|
||||
361 142112 112200 7$: MOVB (R2)+,R0 ; DIGIT
|
||||
362 142114 001416 BEQ 9$
|
||||
363 142116 120027 000040 CMPB R0,#40
|
||||
364 142122 001413 BEQ 9$
|
||||
365 142124 120027 000067 CMPB R0,#'7
|
||||
366 142130 003031 BGT 11$
|
||||
367 142132 162700 000060 SUB #'0,R0
|
||||
368 142136 002426 BLT 11$
|
||||
369 142140 006303 ASL R3
|
||||
370 142142 006303 ASL R3
|
||||
371 142144 006303 ASL R3
|
||||
372 142146 050003 BIS R0,R3 ; PUT DIGIT INTO UNIT
|
||||
373 142150 000760 BR 7$
|
||||
374 142152 005002 9$: CLR R2
|
||||
375 142154 012722 000137 MOV #137,(R2)+ ; STORE "JMP @#140000" INSTRUCTION AT ADDRESS 0
|
||||
376 142160 012722 140000 MOV #START,(R2)+
|
||||
377 142164 012722 140000 MOV #START,(R2)+ ; STORE #140000 IN VECTOR 4, IN CASE OF TRAP TO 4
|
||||
378 142170 005022 CLR (R2)+
|
||||
379 142172 120127 000113 CMPB R1,#'K
|
||||
380 142176 001476 BEQ BOOTRK
|
||||
381 142200 120127 000114 CMPB R1,#'L
|
||||
382 142204 001410 BEQ BOOTRL
|
||||
383 142206 120127 000120 CMPB R1,#'P
|
||||
384 142212 001517 BEQ BOOTRP
|
||||
385
|
||||
386 142214 012700 141103 11$: MOV #UNKMSG,R0
|
||||
387 142220 004767 140154' JSR PC,PRINT
|
||||
388 142224 000207 RTS PC
|
||||
389
|
||||
390 174400 RLCS=174400
|
||||
391 BOOTRL: ; 142326
|
||||
392 142226 000005 RESET
|
||||
393 142230 000303 SWAB R3 ; UNIT NUMBER
|
||||
394 142232 012701 174400 MOV #RLCS,R1 ; CSR
|
||||
395 142236 012761 000013 000004 MOV #13,4(R1) ; CLR ERR
|
||||
396 142244 052703 000004 BIS #4,R3 ; UNIT+GSTAT
|
||||
397 142250 010311 MOV R3,(R1) ; ISSUE CMD
|
||||
398 142252 105711 TSTB (R1) ; WAIT
|
||||
399 142254 100376 BPL .-2
|
||||
400 142256 105003 CLRB R3
|
||||
401 142260 052703 000010 BIS #10,R3 ; UNIT+RDHDR
|
||||
402 142264 010311 MOV R3,(R1) ; ISSUE CMD
|
||||
403 142266 105711 TSTB (R1) ; WAIT
|
||||
404 142270 100376 BPL .-2
|
||||
405 142272 016102 000006 MOV 6(R1),R2 ; GET HDR
|
||||
406 142276 042702 000077 BIC #77,R2 ; CLR SECTOR
|
||||
407 142302 005202 INC R2 ; MAGIC BIT
|
||||
408 142304 010261 000004 MOV R2,4(R1) ; SEEK TO 0
|
||||
409 142310 105003 CLRB R3
|
||||
410 142312 052703 000006 BIS #6,R3 ; UNIT+SEEK
|
||||
411 142316 010311 MOV R3,(R1) ; ISSUE CMD
|
||||
412 142320 105711 TSTB (R1) ; WAIT
|
||||
413 142322 100376 BPL .-2
|
||||
414 142324 005061 000002 CLR 2(R1) ; CLR BA
|
||||
415 142330 005061 000004 CLR 4(R1) ; CLR DA
|
||||
416 142334 012761 177000 000006 MOV #-512.,6(R1) ; SET WC
|
||||
417 142342 105003 CLRB R3
|
||||
418 142344 052703 000014 BIS #14,R3 ; UNIT+READ
|
||||
419 142350 010311 MOV R3,(R1) ; ISSUE CMD
|
||||
420 142352 105711 TSTB (R1) ; WAIT
|
||||
421 142354 100376 BPL .-2
|
||||
422 142356 042711 000377 BIC #377,(R1)
|
||||
423 142362 005002 CLR R2
|
||||
424 142364 005003 CLR R3
|
||||
425 142366 005004 CLR R4
|
||||
426 142370 005005 CLR R5
|
||||
427 142372 005007 CLR PC
|
||||
428
|
||||
429 177412 RKDA=177412
|
||||
430 000005 READGO=5
|
||||
431 BOOTRK:
|
||||
432 142374 000005 RESET ; 142402
|
||||
433 142376 000303 SWAB R3 ; UNIT NUMBER
|
||||
434 142400 006303 ASL R3
|
||||
435 142402 006303 ASL R3
|
||||
436 142404 006303 ASL R3
|
||||
437 142406 006303 ASL R3
|
||||
438 142410 006303 ASL R3
|
||||
439 142412 012701 177412 MOV #RKDA,R1 ; CSR
|
||||
440 142416 010311 MOV R3,(R1) ; LOAD DA
|
||||
441 142420 005041 CLR -(R1) ; CLEAR BA
|
||||
442 142422 012741 177000 MOV #-256.*2,-(R1) ; LOAD WC
|
||||
443 142426 012741 000005 MOV #READGO,-(R1) ; READ & GO
|
||||
444 142432 005002 CLR R2
|
||||
445 142434 005003 CLR R3
|
||||
446 142436 005004 CLR R4
|
||||
447 142440 005005 CLR R5
|
||||
448 142442 105711 TSTB (R1)
|
||||
449 142444 100376 BPL .-2
|
||||
450 142446 105011 CLRB (R1)
|
||||
451 142450 005007 CLR PC
|
||||
452
|
||||
453 176700 RPCSR=0176700
|
||||
454 BOOTRP: ; 142460
|
||||
455 142452 000005 RESET
|
||||
456 142454 012701 176700 MOV #RPCSR, R1
|
||||
457 142460 012761 000040 000010 MOV #0000040, 10(R1) ; RESET
|
||||
458 142466 010361 000010 MOV R3, 10(R1) ; SET UNIT
|
||||
459 142472 012711 000021 MOV #0000021, (R1) ; PACK ACK
|
||||
460 142476 012761 010000 000032 MOV #0010000, 32(R1) ; 16B MODE
|
||||
461 142504 012761 177000 000002 MOV #-512., 2(R1) ; SET WC
|
||||
462 142512 005061 000004 CLR 4(R1) ; CLR BA
|
||||
463 142516 005061 000006 CLR 6(R1) ; CLR DA
|
||||
464 142522 005061 000034 CLR 34(R1) ; CLR CYL
|
||||
465 142526 012711 000071 MOV #0000071, (R1) ; READ
|
||||
466 142532 105711 TSTB (R1) ; WAIT
|
||||
467 142534 100376 BPL .-2
|
||||
468 142536 105011 CLRB (R1)
|
||||
469 142540 010300 MOV R3,R0
|
||||
470 142542 005007 CLR PC
|
||||
471
|
||||
472 .END START
|
||||
472
|
||||
Loading…
Reference in a new issue