722 lines
38 KiB
Text
722 lines
38 KiB
Text
1 ; BOOT MONITOR
|
|
2 ;
|
|
3 ; REBASE HIGHER LINK/BOT:140000
|
|
4 ; WANT PERFORMANCE COUNTER - CLOCK TICKS TO DO SOMETHING?
|
|
5
|
|
6 177546 KW11LKS = 177546
|
|
7 000100 KW11VEC = 100
|
|
8
|
|
9 177560 DL11RCSR = 177560
|
|
10 177562 DL11RBUF = 177562
|
|
11 177564 DL11XCSR = 177564
|
|
12 177566 DL11XBUF = 177566
|
|
13 000064 DL11VEC = 64
|
|
14
|
|
15 177776 PSW = 177776
|
|
16
|
|
17 .ASECT
|
|
18 140000 .=140000
|
|
19 140000 000005 START: RESET
|
|
20 140002 005037 177776 CLR @#PSW
|
|
21 140006 012706 140000 MOV #START,SP
|
|
22 140012 005037 177564 CLR @#DL11XCSR ; CLEAR THE XCSR
|
|
23 140016 012700 141144 MOV #BANNER,R0
|
|
24 140022 004767 140150' JSR PC,PRINT
|
|
25 140026 012737 140124 000100 MOV #CLKAST,@#KW11VEC
|
|
26 140034 012737 000340 000102 MOV #340,@#KW11VEC+2
|
|
27 140042 052737 000100 177546 BIS #100,@#KW11LKS ; SET CLOCK TICKING
|
|
28
|
|
29 140050 012700 141174 MOV #PROMPT,R0
|
|
30 140054 004767 140150' JSR PC,PRINT
|
|
31 140060 162706 000256 SUB #256,SP
|
|
32 140064 010600 MOV SP,R0
|
|
33 140066 004767 140244' JSR PC,INPUT
|
|
34 140072 005000 CLR R0
|
|
35 140074 000001 1$: WAIT
|
|
36 140076 005200 INC R0
|
|
37 140100 005767 140120' TST LGHTON
|
|
38 140104 001773 BEQ 1$
|
|
39 140106 012746 054000 MOV #054000,-(SP) ; SUPER PRIORITY 0 ALT REG
|
|
40 140112 016746 140120' MOV LGHTON,-(SP) ; CALL SUPER LOOP START
|
|
41 140116 000002 RTI
|
|
42
|
|
43 140120 000000 LGHTON: .WORD 0
|
|
44 140122 000000 CLKTIC: .WORD 0
|
|
45
|
|
46 CLKAST:
|
|
47 140124 005267 140122' INC CLKTIC
|
|
48 140130 000002 RTI
|
|
49
|
|
50 ONECHR:
|
|
51 140132 105737 177564 TSTB @#DL11XCSR
|
|
52 140136 100375 BPL ONECHR
|
|
53 140140 110037 177566 MOVB R0,@#DL11XBUF
|
|
54 140144 000207 RTS PC
|
|
55
|
|
56 140146 000000 PRTPTR: .WORD 0
|
|
57
|
|
58 PRINT:
|
|
59 140150 132737 000100 177564 BITB #100,@#DL11XCSR
|
|
60 140156 001374 BNE PRINT
|
|
61 140160 010067 140146' MOV R0,PRTPTR
|
|
62 140164 012737 140210 000064 MOV #PRTAST,@#DL11VEC
|
|
63 140172 012737 000200 000066 MOV #200,@#DL11VEC+2
|
|
64 140200 152737 000100 177564 BISB #100,@#DL11XCSR
|
|
65 140206 000207 RTS PC
|
|
66
|
|
67 PRTAST:
|
|
68 140210 105777 140146' TSTB @PRTPTR
|
|
69 140214 001406 BEQ 2$
|
|
70 140216 117737 140146' 177566 MOVB @PRTPTR,@#DL11XBUF
|
|
71 140224 005267 140146' INC PRTPTR
|
|
72 140230 000002 RTI
|
|
73 140232 105037 177564 2$: CLRB @#DL11XCSR
|
|
74 140236 000002 RTI
|
|
75
|
|
76 140240 000000 BUFFER: .WORD 0 ; INPUT BUFFER POINTER
|
|
77 140242 000000 LENGTH: .WORD 0 ; INPUT BUFFER LENGTH
|
|
78
|
|
79 INPUT:
|
|
80 140244 010067 140240' MOV R0,BUFFER
|
|
81 140250 005067 140242' CLR LENGTH
|
|
82 140254 012737 140300 000060 MOV #INPAST,@#60
|
|
83 140262 012737 000200 000062 MOV #200,@#62
|
|
84 140270 152737 000100 177560 BISB #100,@#DL11RCSR
|
|
85 140276 000207 RTS PC
|
|
86
|
|
87 INPAST:
|
|
88 140300 010046 MOV R0,-(SP)
|
|
89 140302 113700 177562 MOVB @#DL11RBUF,R0
|
|
90 140306 042737 000340 177776 BIC #340,@#PSW ; HACK TO PERMIT XBUF INTERRUPTS WHILE RBUF INTERRUPT HANDLER STILL RUNNING
|
|
91 140314 120027 000015 CMPB R0,#15
|
|
92 140320 001455 BEQ 7$ ; CARRIAGE RETURN
|
|
93 140322 120027 000177 CMPB R0,#127.
|
|
94 140326 001403 BEQ 2$ ; <DEL>
|
|
95 140330 120027 000010 CMPB R0,#10
|
|
96 140334 001012 BNE 4$ ; BACK SPACE
|
|
97 140336 005767 140242' 2$: TST LENGTH ; DATA IN BUFFER?
|
|
98 140342 001406 BEQ 3$
|
|
99 140344 005367 140242' DEC LENGTH ; LENGTH
|
|
100 140350 012700 141055 MOV #DEL,R0
|
|
101 140354 004767 140150' JSR PC,PRINT
|
|
102 140360 000453 3$: BR 9$
|
|
103 140362 120027 000040 4$: CMPB R0,#40
|
|
104 140366 002450 BLT 9$ ; BELOW SPACE
|
|
105 140370 120027 000177 CMPB R0,#177
|
|
106 140374 002045 BGE 9$ ; SKIP STUFF TOO BIG
|
|
107 140376 004767 140132' JSR PC,ONECHR ; ECHO CHAR
|
|
108 140402 120027 000172 CMPB R0,#172
|
|
109 140406 003005 BGT 5$ ; ABOVE Z
|
|
110 140410 120027 000141 CMPB R0,#141
|
|
111 140414 002402 BLT 5$ ; BELOW A
|
|
112 140416 142700 000040 BICB #40,R0 ; CONVERT TO UPPER CASE
|
|
113 140422 026727 140242' 000254 5$: CMP LENGTH,#254
|
|
114 140430 002027 BGE 9$
|
|
115 140432 110046 MOVB R0,-(SP)
|
|
116 140434 016700 140240' MOV BUFFER,R0
|
|
117 140440 066700 140242' ADD LENGTH,R0
|
|
118 140444 112610 MOVB (SP)+,(R0)
|
|
119 140446 005267 140242' INC LENGTH
|
|
120 140452 000416 BR 9$
|
|
121
|
|
122 140454 016700 140240' 7$: MOV BUFFER,R0
|
|
123 140460 066700 140242' ADD LENGTH,R0
|
|
124 140464 105010 CLRB (R0)
|
|
125 140466 012737 140514 000240 MOV #CMD,@#240 ; CALL CMD AT PRIORITY 2
|
|
126 140474 012737 000100 000242 MOV #100,@#242
|
|
127 140502 012737 002000 177772 MOV #2000,@#177772
|
|
128 140510 012600 9$: MOV (SP)+,R0
|
|
129 140512 000002 RTI
|
|
130
|
|
131 CMD:
|
|
132 140514 005037 177772 CLR @#177772 ; NO MORE PIR CALLS
|
|
133 140520 010046 MOV R0,-(SP)
|
|
134 140522 010146 MOV R1,-(SP)
|
|
135 140524 010246 MOV R2,-(SP)
|
|
136 140526 010346 MOV R3,-(SP)
|
|
137 140530 010446 MOV R4,-(SP)
|
|
138 140532 012700 141052 MOV #EOL,R0
|
|
139 140536 004767 140150' JSR PC,PRINT
|
|
140 140542 132737 000100 177564 1$: BITB #100,@#DL11XCSR
|
|
141 140550 001374 BNE 1$
|
|
142 140552 005004 CLR R4
|
|
143 140554 012703 141061 MOV #CMDLST,R3 ; CMD LIST
|
|
144 140560 112300 3$: MOVB (R3)+,R0
|
|
145 140562 001431 BEQ 13$
|
|
146 140564 016702 140240' MOV BUFFER,R2 ; USER CMD
|
|
147 140570 112201 4$: MOVB (R2)+,R1
|
|
148 140572 001431 BEQ 15$ ; NULL COMMAND?
|
|
149 140574 120127 000040 CMPB R1,#40
|
|
150 140600 001773 BEQ 4$ ; SKIP SPACE
|
|
151 140602 120001 5$: CMPB R0,R1
|
|
152 140604 001010 BNE 7$
|
|
153 140606 112300 MOVB (R3)+,R0
|
|
154 140610 001412 BEQ 9$
|
|
155 140612 112201 MOVB (R2)+,R1
|
|
156 140614 001410 BEQ 9$
|
|
157 140616 120127 000040 CMPB R1,#40
|
|
158 140622 001367 BNE 5$
|
|
159 140624 000404 BR 9$
|
|
160 140626 112300 7$: MOVB (R3)+,R0
|
|
161 140630 001376 BNE 7$
|
|
162 140632 005204 INC R4
|
|
163 140634 000751 BR 3$
|
|
164 140636 006304 9$: ASL R4
|
|
165 140640 004774 140706 JSR PC,@CMDTBL(R4) ; EXECUTE
|
|
166 140644 000404 BR 15$
|
|
167
|
|
168 140646 012700 141122 13$: MOV #UNKMSG,R0
|
|
169 140652 004767 140150' JSR PC,PRINT
|
|
170
|
|
171 140656 005067 140242' 15$: CLR LENGTH
|
|
172 140662 012700 141174 MOV #PROMPT,R0
|
|
173 140666 004767 140150' JSR PC,PRINT
|
|
174 140672 012604 MOV (SP)+,R4
|
|
175 140674 012603 MOV (SP)+,R3
|
|
176 140676 012602 MOV (SP)+,R2
|
|
177 140700 012601 MOV (SP)+,R1
|
|
178 140702 012600 MOV (SP)+,R0
|
|
179 140704 000002 RTI
|
|
180
|
|
181
|
|
182 140706 142664 141312 141326 CMDTBL: .WORD BOOT,HALT,TEST,DIAG,LIGHTS,HELP
|
|
140714 141434 142200 141300
|
|
183 140722 103 117 115 HLPMSG: .ASCIZ 'COMMANDS ARE BOOT, HALT, TEST, DIAG, LIGHTS AND HELP'<15><12>'BOOT DEVICES ARE RK? RL? OR RP?'<15><12>
|
|
140725 115 101 116
|
|
140730 104 123 040
|
|
140733 101 122 105
|
|
140736 040 102 117
|
|
140741 117 124 054
|
|
140744 040 110 101
|
|
140747 114 124 054
|
|
140752 040 124 105
|
|
140755 123 124 054
|
|
140760 040 104 111
|
|
140763 101 107 054
|
|
140766 040 114 111
|
|
140771 107 110 124
|
|
140774 123 040 101
|
|
140777 116 104 040
|
|
141002 110 105 114
|
|
141005 120 015 012
|
|
141010 102 117 117
|
|
141013 124 040 104
|
|
141016 105 126 111
|
|
141021 103 105 123
|
|
141024 040 101 122
|
|
141027 105 040 122
|
|
141032 113 077 040
|
|
141035 122 114 077
|
|
141040 040 117 122
|
|
141043 040 122 120
|
|
141046 077 015 012
|
|
141051 000
|
|
184 141052 015 012 000 EOL: .BYTE 15,12,0
|
|
185 141055 010 040 010 DEL: .BYTE 10,40,10,0
|
|
141060 000
|
|
186 141061 102 117 117 CMDLST: .ASCIZ 'BOOT'
|
|
141064 124 000
|
|
187 141066 110 101 114 .ASCIZ 'HALT'
|
|
141071 124 000
|
|
188 141073 124 105 123 .ASCIZ 'TEST'
|
|
141076 124 000
|
|
189 141100 104 111 101 .ASCIZ 'DIAG'
|
|
141103 107 000
|
|
190 141105 114 111 107 .ASCIZ 'LIGHTS'
|
|
141110 110 124 123
|
|
141113 000
|
|
191 141114 110 105 114 .ASCIZ 'HELP'
|
|
141117 120 000
|
|
192 141121 000 .BYTE 0
|
|
193 141122 125 116 113 UNKMSG: .ASCIZ 'UNKNOWN COMMAND'<12><15>
|
|
141125 116 117 127
|
|
141130 116 040 103
|
|
141133 117 115 115
|
|
141136 101 116 104
|
|
141141 012 015 000
|
|
194 141144 120 104 120 BANNER: .ASCIZ 'PDP-11 MONITOR V1.0'<12><15><12><15>
|
|
141147 055 061 061
|
|
141152 040 115 117
|
|
141155 116 111 124
|
|
141160 117 122 040
|
|
141163 126 061 056
|
|
141166 060 012 015
|
|
141171 012 015 000
|
|
195 ; 'ADAPTED FROM CODE BY PAUL NANKERVIS <PAULNANK@HOTMAIL.COM>'<12><15><12><15>
|
|
196 141174 102 117 117 PROMPT: .ASCIZ 'BOOT> '
|
|
141177 124 076 040
|
|
141202 000
|
|
197 141203 125 116 113 BADBOO: .ASCIZ 'UNKNOWN BOOT DEVICE'<12><15>
|
|
141206 116 117 127
|
|
141211 116 040 102
|
|
141214 117 117 124
|
|
141217 040 104 105
|
|
141222 126 111 103
|
|
141225 105 012 015
|
|
141230 000
|
|
198 141231 040 040 040 PERMSG: .ASCIZ ' CLOCK TICKS'<12><15>
|
|
141234 040 040 040
|
|
141237 103 114 117
|
|
141242 103 113 040
|
|
141245 124 111 103
|
|
141250 113 123 012
|
|
141253 015 000
|
|
199 141255 040 040 040 LOOMSG: .ASCIZ ' ITERATIONS'<12><15>
|
|
141260 040 040 040
|
|
141263 111 124 105
|
|
141266 122 101 124
|
|
141271 111 117 116
|
|
141274 123 012 015
|
|
141277 000
|
|
200
|
|
201 .EVEN
|
|
202
|
|
203 HELP:
|
|
204 141300 012700 140722 MOV #HLPMSG,R0
|
|
205 141304 004767 140150' JSR PC,PRINT
|
|
206 141310 000207 RTS PC
|
|
207
|
|
208 HALT:
|
|
209 141312 000000 HALT
|
|
210 141314 012700 141052 MOV #EOL,R0
|
|
211 141320 004767 140150' JSR PC,PRINT
|
|
212 141324 000207 RTS PC
|
|
213
|
|
214 TEST:
|
|
215 141326 005067 140122' CLR CLKTIC
|
|
216
|
|
217 141332 012705 015000 MOV #15000,R5
|
|
218 141336 010537 177570 10$: MOV R5,@#177570 ; DISPLAY
|
|
219 141342 010504 MOV R5,R4
|
|
220 141344 006204 ASR R4
|
|
221 141346 005000 15$: CLR R0
|
|
222 141350 010501 MOV R5,R1
|
|
223 141352 071004 DIV R4,R0
|
|
224 141354 010002 MOV R0,R2
|
|
225 141356 070204 MUL R4,R2
|
|
226 141360 060301 ADD R3,R1
|
|
227 141362 020105 CMP R1,R5
|
|
228 141364 001401 BEQ 20$
|
|
229 141366 000000 HALT
|
|
230 141370 077412 20$: SOB R4,15$
|
|
231 141372 077517 SOB R5,10$
|
|
232
|
|
233 141374 012700 141236 MOV #PERMSG+5,R0
|
|
234 141400 016703 140122' MOV CLKTIC,R3
|
|
235
|
|
236 141404 005002 25$: CLR R2
|
|
237 141406 071227 000010 DIV #10,R2
|
|
238 141412 062703 000060 ADD #'0,R3
|
|
239 141416 110340 MOVB R3,-(R0)
|
|
240 141420 010203 MOV R2,R3
|
|
241 141422 001370 BNE 25$
|
|
242
|
|
243 141424 004767 140150' JSR PC,PRINT
|
|
244 141430 000207 RTS PC
|
|
245
|
|
246 141432 000000 LOOCNT: .WORD 0
|
|
247
|
|
248 DIAG:
|
|
249 141434 005067 141432' CLR LOOCNT
|
|
250 141440 005067 140122' CLR CLKTIC
|
|
251 DIAGLP:
|
|
252 141444 005005 CLR R5
|
|
253 141446 100404 BMI L1
|
|
254 141450 102403 BVS L1
|
|
255 141452 101002 BHI L1
|
|
256 141454 002401 BLT L1
|
|
257 141456 101401 BLOS L2
|
|
258 141460 000000 L1: HALT
|
|
259
|
|
260 141462 005305 L2: DEC R5
|
|
261 141464 100003 BPL L3
|
|
262 141466 001402 BEQ L3
|
|
263 141470 002001 BGE L3
|
|
264 141472 003401 BLE L4
|
|
265 141474 000000 L3: HALT
|
|
266
|
|
267 141476 006005 L4: ROR R5
|
|
268 141500 102002 BVC L5
|
|
269 141502 103001 BCC L5
|
|
270 141504 001001 BNE L6
|
|
271 141506 000000 L5: HALT
|
|
272
|
|
273 141510 112737 000017 177776 L6: MOVB #17,@#177776
|
|
274 141516 100004 BPL L7
|
|
275 141520 102003 BVC L7
|
|
276 141522 002402 BLT L7
|
|
277 141524 101001 BHI L7
|
|
278 141526 100401 BMI L8
|
|
279 141530 000000 L7: HALT
|
|
280
|
|
281 141532 012703 077777 L8: MOV #77777,R3
|
|
282 141536 062703 077777 ADD #77777,R3
|
|
283 141542 123727 177776 000005 CMPB @#177776,#5
|
|
284 141550 001001 BNE L9
|
|
285 141552 000000 HALT
|
|
286
|
|
287 141554 112704 001700 L9: MOVB #1700,R4
|
|
288 141560 100003 BPL L10
|
|
289 141562 020427 177700 CMP R4,#177700
|
|
290 141566 001401 BEQ L11
|
|
291 141570 000000 L10: HALT
|
|
292
|
|
293 141572 105004 L11: CLRB R4
|
|
294 141574 020427 177400 CMP R4,#177400
|
|
295 141600 001401 BEQ L12
|
|
296 141602 000000 HALT
|
|
297
|
|
298 141604 012705 125252 L12: MOV #125252,R5
|
|
299 141610 010500 MOV R5,R0
|
|
300 141612 010001 MOV R0,R1
|
|
301 141614 010102 MOV R1,R2
|
|
302 141616 010203 MOV R2,R3
|
|
303 141620 010304 MOV R3,R4
|
|
304 141622 010405 MOV R4,R5
|
|
305 141624 160501 SUB R5,R1
|
|
306 141626 002401 BLT NODIAG
|
|
307 141630 001401 BEQ L13
|
|
308 141632 000000 NODIAG: HALT
|
|
309
|
|
310 141634 006102 L13: ROL R2
|
|
311 141636 103001 BCC L14
|
|
312 141640 002401 BLT L15
|
|
313 141642 000000 L14: HALT
|
|
314
|
|
315 141644 060203 L15: ADD R2,R3
|
|
316 141646 005203 INC R3
|
|
317 141650 005103 COM R3
|
|
318 141652 060301 ADD R3,R1
|
|
319 141654 103401 BCS L16
|
|
320 141656 003401 BLE L17
|
|
321 141660 000000 L16: HALT
|
|
322
|
|
323 141662 006004 L17: ROR R4
|
|
324 141664 050403 BIS R4,R3
|
|
325 141666 060503 ADD R5,R3
|
|
326 141670 005203 INC R3
|
|
327 141672 103402 BCS L18
|
|
328 141674 005301 DEC R1
|
|
329 141676 002401 BLT L19
|
|
330 141700 000000 L18: HALT
|
|
331
|
|
332 141702 005100 L19: COM R0
|
|
333 141704 101401 BLOS L20
|
|
334 141706 000000 HALT
|
|
335
|
|
336 141710 040001 L20: BIC R0,R1
|
|
337 141712 060101 ADD R1,R1
|
|
338 141714 003001 BGT L21
|
|
339 141716 003401 BLE L22
|
|
340 141720 000000 L21: HALT
|
|
341
|
|
342 141722 000301 L22: SWAB R1
|
|
343 141724 020127 052125 CMP R1,#052125
|
|
344 141730 001004 BNE L23
|
|
345 141732 030405 BIT R4,R5
|
|
346 141734 003002 BGT L23
|
|
347 141736 005105 COM R5
|
|
348 141740 001001 BNE L24
|
|
349 141742 000000 L23: HALT
|
|
350
|
|
351 141744 112700 177401 L24: MOVB #177401,R0
|
|
352 141750 100001 BPL L26
|
|
353 141752 000000 L25: HALT
|
|
354
|
|
355 141754 077002 L26: SOB R0,L25
|
|
356 141756 005001 CLR R1
|
|
357 141760 005201 L27: INC R1
|
|
358 141762 077002 SOB R0,L27
|
|
359 141764 005700 TST R0
|
|
360 141766 001002 BNE L28
|
|
361 141770 005701 TST R1
|
|
362 141772 001401 BEQ L29
|
|
363 141774 000000 L28: HALT
|
|
364
|
|
365 141776 012707 142004 L29: MOV #N1,PC
|
|
366 142002 000000 HALT
|
|
367
|
|
368 142004 005727 N1: TST (PC)+
|
|
369 142006 000000 HALT
|
|
370
|
|
371 142010 012746 142020 N2: MOV #N3,-(SP)
|
|
372 142014 000207 RTS PC
|
|
373 142016 000000 HALT
|
|
374
|
|
375 142020 005046 N3: CLR -(SP)
|
|
376 142022 012746 142032 MOV #N4,-(SP)
|
|
377 142026 000002 RTI
|
|
378 142030 000000 HALT
|
|
379
|
|
380 142032 000137 142040 N4: JMP @#N5
|
|
381 142036 000000 HALT
|
|
382
|
|
383 142040 012705 000003 N5: MOV #3,R5
|
|
384 142044 005037 000006 CLR @#6
|
|
385 142050 012737 142062 000004 MOV #N6,@#4
|
|
386 142056 005745 TST -(R5)
|
|
387 142060 000000 HALT
|
|
388 142062 062706 000004 N6: ADD #4,SP
|
|
389
|
|
390 142066 005000 CLR R0
|
|
391 142070 012701 007777 MOV #7777,R1
|
|
392 142074 010002 N7: MOV R0,R2
|
|
393 142076 062702 000005 ADD #5,R2
|
|
394 142102 022062 177773 CMP (R0)+,-5(R2)
|
|
395 142106 001402 BEQ N8
|
|
396 142110 000000 HALT
|
|
397 142112 000000 D1: .WORD 0
|
|
398
|
|
399 142114 077111 N8: SOB R1,N7
|
|
400
|
|
401 142116 005267 141432' INC LOOCNT
|
|
402 142122 103001 BCC 10$
|
|
403 142124 000000 HALT
|
|
404 142126 026727 140122' 002200 10$: CMP CLKTIC,#2200
|
|
405 142134 101002 BHI 20$
|
|
406 142136 000167 141444' JMP DIAGLP
|
|
407 142142 012700 141262 20$: MOV #LOOMSG+5,R0
|
|
408 142146 016703 141432' MOV LOOCNT,R3
|
|
409
|
|
410 142152 005002 25$: CLR R2
|
|
411 142154 071227 000010 DIV #10,R2
|
|
412 142160 062703 000060 ADD #'0,R3
|
|
413 142164 110340 MOVB R3,-(R0)
|
|
414 142166 010203 MOV R2,R3
|
|
415 142170 001370 BNE 25$
|
|
416
|
|
417 142172 004767 140150' JSR PC,PRINT
|
|
418 142176 000207 RTS PC
|
|
419
|
|
420 177572 MMR0=177572
|
|
421 177574 MMR1=177574
|
|
422 177576 MMR2=177576
|
|
423 172516 MMR3=172516
|
|
424
|
|
425 LIGHTS:
|
|
426 142200 012703 077406 MOV #77406,R3 ; DEFAULT PDR
|
|
427 142204 005002 CLR R2
|
|
428 142206 005001 CLR R1
|
|
429 142210 012700 000010 MOV #8.,R0
|
|
430 142214 010361 172300 1$: MOV R3,172300(R1) ; KERNEL I PDR
|
|
431 142220 010261 172340 MOV R2,172340(R1) ; KERNEL I PAR
|
|
432 142224 010361 172320 MOV R3,172320(R1) ; KERNEL D PDR
|
|
433 142230 010261 172360 MOV R2,172360(R1) ; KERNEL D PAR
|
|
434 142234 010361 172200 MOV R3,172200(R1) ; SUPER I PDR
|
|
435 142240 010261 172240 MOV R2,172240(R1) ; SUPER I PAR
|
|
436 142244 010361 172220 MOV R3,172220(R1) ; SUPER D PDR
|
|
437 142250 010261 172260 MOV R2,172260(R1) ; SUPER D PAR
|
|
438 142254 010361 177600 MOV R3,177600(R1) ; USER I PDR
|
|
439 142260 010261 177640 MOV R2,177640(R1) ; USER I PAR
|
|
440 142264 010361 177620 MOV R3,177620(R1) ; USER D PDR
|
|
441 142270 010361 177660 MOV R3,177660(R1) ; USER D PAR
|
|
442 142274 062702 000200 ADD #200,R2
|
|
443 142300 062701 000002 ADD #2,R1
|
|
444 142304 077035 SOB R0,1$
|
|
445 142306 052737 176000 172376 BIS #176000,@#172376 ; KERNEL D POINTS TO I/O SPACE
|
|
446 142314 052737 176000 172276 BIS #176000,@#172276 ; SUPER D POINTS TO I/O SPACE
|
|
447 142322 052737 176000 177676 BIS #176000,@#177676 ; USER D POINTS TO I/O SPACE
|
|
448 142330 012737 000077 172516 MOV #77,@#MMR3 ; 77 FOR 22 BIT
|
|
449 142336 012737 000001 177572 MOV #1,@#MMR0
|
|
450
|
|
451 142344 012737 001700 172244 MOV #1700,@#172244 ; BASE SUPER I (PAR 2) #40000 AT #170000
|
|
452 142352 012737 001700 172264 MOV #1700,@#172264 ; BASE SUPER D (PAR 2) #40000 AT #170000
|
|
453 142360 012737 010000 177776 MOV #010000,@#177776 ; SET PM TO SUPER
|
|
454
|
|
455 142366 012703 040200 MOV #40200,R3 ; SUPER CODE ADDRESS
|
|
456 142372 012702 142420 MOV #SUPERS,R2 ; ADDRESS SUPER CODE
|
|
457 142376 012246 10$: MOV (R2)+,-(SP)
|
|
458 142400 006623 MTPI (R3)+
|
|
459 142402 020227 142664 CMP R2,#SUPERE
|
|
460 142406 103773 BLO 10$
|
|
461
|
|
462 142410 012767 040200 140120' MOV #40200,LGHTON ; CHANGE IDLE TASK
|
|
463 142416 000207 RTS PC
|
|
464
|
|
465 ;
|
|
466 ; TO BE COPIED TO SUPER #40200 AT PHYSICAL #170000
|
|
467 ; #40000 TO #40200 FOR WAIT & JMP INSTRUCTIONS
|
|
468 ;
|
|
469 SUPERS:
|
|
470 142420 012700 000037 MOV #37,R0 ; LOAD PATTERN
|
|
471 142424 012701 174000 MOV #174000,R1
|
|
472 142430 032737 000001 177570 BIT #1,@#177570
|
|
473 142436 001414 BEQ 10$
|
|
474 142440 012700 007417 MOV #7417,R0
|
|
475 142444 010001 MOV R0,R1
|
|
476 142446 005101 COM R1
|
|
477 142450 032737 000002 177570 BIT #2,@#177570
|
|
478 142456 001404 BEQ 10$
|
|
479 142460 012700 036163 MOV #36163,R0
|
|
480 142464 012701 037000 MOV #37000,R1
|
|
481 142470 010102 10$: MOV R1,R2
|
|
482 142472 162702 000002 SUB #2,R2
|
|
483 142476 042702 000001 BIC #1,R2 ; WAIT ADDRESS
|
|
484 142502 010203 MOV R2,R3
|
|
485 142504 042703 177701 BIC #177701,R3 ; ADDRESS OFFSET
|
|
486 142510 012763 000001 040000 MOV #0000001,40000(R3) ; WRITE WAIT
|
|
487 142516 062703 000002 ADD #2,R3
|
|
488 142522 012763 000113 040000 MOV #0000113,40000(R3) ; WRITE JMP (R3)
|
|
489
|
|
490 142530 010204 MOV R2,R4
|
|
491 142532 072427 177772 ASH #-6,R4
|
|
492 142536 042704 177600 BIC #177600,R4
|
|
493 142542 012705 001700 MOV #1700,R5
|
|
494 142546 160405 SUB R4,R5 ; PAR ADDRESS BASE FOR WAIT
|
|
495 142550 010204 MOV R2,R4
|
|
496 142552 072427 177764 ASH #-12.,R4
|
|
497 142556 042704 177761 BIC #177761,R4 ; PAR SELECT OFFSET
|
|
498 142562 010564 172240 MOV R5,172240(R4) ; SUPER I SPACE
|
|
499
|
|
500 142566 010103 MOV R1,R3
|
|
501 142570 072327 177764 ASH #-12.,R3
|
|
502 142574 042703 177761 BIC #177761,R3 ; PAR SELECT OFFSET
|
|
503 142600 020304 CMP R3,R4 ; SAME PAR
|
|
504 142602 001412 BEQ 30$
|
|
505 142604 010104 MOV R1,R4
|
|
506 142606 072427 177772 ASH #-6,R4
|
|
507 142612 042704 177600 BIC #177600,R4
|
|
508 142616 012705 001700 MOV #1700,R5
|
|
509 142622 160405 SUB R4,R5 ; PAR ADDRESS BASE FOR JMP
|
|
510 142624 010563 172240 MOV R5,172240(R3) ; SUPER I SPACE
|
|
511 30$:
|
|
512 142630 012704 000003 MOV #3,R4
|
|
513 142634 063704 177570 ADD @#177570,R4
|
|
514 142640 012703 000002 MOV #2,R3
|
|
515 142644 060703 ADD PC,R3
|
|
516 142646 000112 40$: JMP (R2)
|
|
517 142650 077402 SOB R4,40$
|
|
518 142652 010002 MOV R0,R2
|
|
519 142654 006002 ROR R2 ; ROTATE PATTERN
|
|
520 142656 006101 ROL R1
|
|
521 142660 006000 ROR R0
|
|
522 142662 000702 BR 10$
|
|
523 SUPERE:
|
|
524
|
|
525 BOOT:
|
|
526 142664 005003 CLR R3 ; UNIT
|
|
527 142666 112201 1$: MOVB (R2)+,R1
|
|
528 142670 001545 BEQ BOOTRK ; DEFAULT DEVICE IS RK0
|
|
529 142672 120127 000040 CMPB R1,#40
|
|
530 142676 001773 BEQ 1$
|
|
531 142700 120127 000122 CMPB R1,#'R
|
|
532 142704 001405 BEQ 5$
|
|
533
|
|
534 142706 012700 141203 MOV #BADBOO,R0
|
|
535 142712 004767 140150' JSR PC,PRINT
|
|
536 142716 000207 RTS PC
|
|
537
|
|
538 142720 112201 5$: MOVB (R2)+,R1 ; HOPEFULLY K, L OR P
|
|
539 142722 112200 7$: MOVB (R2)+,R0 ; DIGIT
|
|
540 142724 001416 BEQ 9$
|
|
541 142726 120027 000040 CMPB R0,#40
|
|
542 142732 001413 BEQ 9$
|
|
543 142734 120027 000067 CMPB R0,#'7
|
|
544 142740 003031 BGT 11$
|
|
545 142742 162700 000060 SUB #'0,R0
|
|
546 142746 002426 BLT 11$
|
|
547 142750 006303 ASL R3
|
|
548 142752 006303 ASL R3
|
|
549 142754 006303 ASL R3
|
|
550 142756 050003 BIS R0,R3 ; PUT DIGIT INTO UNIT
|
|
551 142760 000760 BR 7$
|
|
552 142762 005002 9$: CLR R2
|
|
553 142764 012722 000137 MOV #137,(R2)+ ; STORE "JMP @#140000" INSTRUCTION AT ADDRESS 0
|
|
554 142770 012722 140000 MOV #START,(R2)+
|
|
555 142774 012722 140000 MOV #START,(R2)+ ; STORE #140000 IN VECTOR 4, IN CASE OF TRAP TO 4
|
|
556 143000 005022 CLR (R2)+
|
|
557 143002 120127 000113 CMPB R1,#'K
|
|
558 143006 001476 BEQ BOOTRK
|
|
559 143010 120127 000114 CMPB R1,#'L
|
|
560 143014 001410 BEQ BOOTRL
|
|
561 143016 120127 000120 CMPB R1,#'P
|
|
562 143022 001517 BEQ BOOTRP
|
|
563
|
|
564 143024 012700 141122 11$: MOV #UNKMSG,R0
|
|
565 143030 004767 140150' JSR PC,PRINT
|
|
566 143034 000207 RTS PC
|
|
567
|
|
568 174400 RLCS=174400
|
|
569 BOOTRL:
|
|
570 143036 000005 RESET
|
|
571 143040 000303 SWAB R3 ; UNIT NUMBER
|
|
572 143042 012701 174400 MOV #RLCS,R1 ; CSR
|
|
573 143046 012761 000013 000004 MOV #13,4(R1) ; CLR ERR
|
|
574 143054 052703 000004 BIS #4,R3 ; UNIT+GSTAT
|
|
575 143060 010311 MOV R3,(R1) ; ISSUE CMD
|
|
576 143062 105711 TSTB (R1) ; WAIT
|
|
577 143064 100376 BPL .-2
|
|
578 143066 105003 CLRB R3
|
|
579 143070 052703 000010 BIS #10,R3 ; UNIT+RDHDR
|
|
580 143074 010311 MOV R3,(R1) ; ISSUE CMD
|
|
581 143076 105711 TSTB (R1) ; WAIT
|
|
582 143100 100376 BPL .-2
|
|
583 143102 016102 000006 MOV 6(R1),R2 ; GET HDR
|
|
584 143106 042702 000077 BIC #77,R2 ; CLR SECTOR
|
|
585 143112 005202 INC R2 ; MAGIC BIT
|
|
586 143114 010261 000004 MOV R2,4(R1) ; SEEK TO 0
|
|
587 143120 105003 CLRB R3
|
|
588 143122 052703 000006 BIS #6,R3 ; UNIT+SEEK
|
|
589 143126 010311 MOV R3,(R1) ; ISSUE CMD
|
|
590 143130 105711 TSTB (R1) ; WAIT
|
|
591 143132 100376 BPL .-2
|
|
592 143134 005061 000002 CLR 2(R1) ; CLR BA
|
|
593 143140 005061 000004 CLR 4(R1) ; CLR DA
|
|
594 143144 012761 177000 000006 MOV #-512.,6(R1) ; SET WC
|
|
595 143152 105003 CLRB R3
|
|
596 143154 052703 000014 BIS #14,R3 ; UNIT+READ
|
|
597 143160 010311 MOV R3,(R1) ; ISSUE CMD
|
|
598 143162 105711 TSTB (R1) ; WAIT
|
|
599 143164 100376 BPL .-2
|
|
600 143166 042711 000377 BIC #377,(R1)
|
|
601 143172 005002 CLR R2
|
|
602 143174 005003 CLR R3
|
|
603 143176 005004 CLR R4
|
|
604 143200 005005 CLR R5
|
|
605 143202 005007 CLR PC
|
|
606
|
|
607 177412 RKDA=177412
|
|
608 000005 READGO=5
|
|
609 BOOTRK:
|
|
610 143204 000005 RESET
|
|
611 143206 000303 SWAB R3 ; UNIT NUMBER
|
|
612 143210 006303 ASL R3
|
|
613 143212 006303 ASL R3
|
|
614 143214 006303 ASL R3
|
|
615 143216 006303 ASL R3
|
|
616 143220 006303 ASL R3
|
|
617 143222 012701 177412 MOV #RKDA,R1 ; CSR
|
|
618 143226 010311 MOV R3,(R1) ; LOAD DA
|
|
619 143230 005041 CLR -(R1) ; CLEAR BA
|
|
620 143232 012741 177000 MOV #-256.*2,-(R1) ; LOAD WC
|
|
621 143236 012741 000005 MOV #READGO,-(R1) ; READ & GO
|
|
622 143242 005002 CLR R2
|
|
623 143244 005003 CLR R3
|
|
624 143246 005004 CLR R4
|
|
625 143250 005005 CLR R5
|
|
626 143252 105711 TSTB (R1)
|
|
627 143254 100376 BPL .-2
|
|
628 143256 105011 CLRB (R1)
|
|
629 143260 005007 CLR PC
|
|
630
|
|
631 176700 RPCSR=0176700
|
|
632 BOOTRP:
|
|
633 143262 000005 RESET
|
|
634 143264 012701 176700 MOV #RPCSR, R1
|
|
635 143270 012761 000040 000010 MOV #0000040, 10(R1) ; RESET
|
|
636 143276 010361 000010 MOV R3, 10(R1) ; SET UNIT
|
|
637 143302 012711 000021 MOV #0000021, (R1) ; PACK ACK
|
|
638 143306 012761 010000 000032 MOV #0010000, 32(R1) ; 16B MODE
|
|
639 143314 012761 177000 000002 MOV #-512., 2(R1) ; SET WC
|
|
640 143322 005061 000004 CLR 4(R1) ; CLR BA
|
|
641 143326 005061 000006 CLR 6(R1) ; CLR DA
|
|
642 143332 005061 000034 CLR 34(R1) ; CLR CYL
|
|
643 143336 012711 000071 MOV #0000071, (R1) ; READ
|
|
644 143342 105711 TSTB (R1) ; WAIT
|
|
645 143344 100376 BPL .-2
|
|
646 143346 105011 CLRB (R1)
|
|
647 143350 010300 MOV R3,R0
|
|
648 143352 005007 CLR PC
|
|
649
|
|
650 .END START
|
|
650
|