pcjs/apps/pdp11/boot/monitor/BOOTMON.txt

533 lines
28 KiB
Text

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 177564 DL11XCSR = 177564
8 000064 DL11VEC = 64
9
10 177546 KW11LKS = 177546
11 000100 KW11VEC = 100
12
13 .ASECT
14 140000 .=140000
15 140000 000005 START: RESET
16 140002 005037 177776 CLR @#PSW
17 140006 012706 140000 MOV #START,SP
18 140012 005037 177564 CLR @#DL11XCSR ; CLEAR THE XCSR
19 140016 012700 141121 MOV #BANNER,R0
20 140022 004767 140150' JSR PC,PRINT
21 140026 012737 140124 000100 MOV #CLKAST,@#KW11VEC
22 140034 012737 000340 000102 MOV #340,@#KW11VEC+2
23 140042 052737 000100 177546 BIS #100,@#KW11LKS ; SET CLOCK TICKING
24
25 140050 012700 141151 MOV #PROMPT,R0
26 140054 004767 140150' JSR PC,PRINT
27 140060 162706 000256 SUB #256,SP
28 140064 010600 MOV SP,R0
29 140066 004767 140244' JSR PC,INPUT
30 140072 005000 CLR R0
31 140074 000001 1$: WAIT
32 140076 005200 INC R0
33 140100 005767 140120' TST LGHTON
34 140104 001773 BEQ 1$
35 140106 012746 054000 MOV #054000,-(SP) ; SUPER PRIORITY 0 ALT REG
36 140112 016746 140120' MOV LGHTON,-(SP) ; CALL SUPER LOOP START
37 140116 000002 RTI
38
39 140120 000000 LGHTON: .WORD 0
40 140122 000000 CLKTIC: .WORD 0
41
42 CLKAST:
43 140124 005267 140122' INC CLKTIC
44 140130 000002 RTI
45
46 ONECHR:
47 140132 105737 177564 TSTB @#DL11XCSR
48 140136 100375 BPL ONECHR
49 140140 110037 177566 MOVB R0,@#177566
50 140144 000207 RTS PC
51
52 140146 000000 PRTPTR: .WORD 0
53
54 PRINT:
55 140150 132737 000100 177564 BITB #100,@#DL11XCSR
56 140156 001374 BNE PRINT
57 140160 010067 140146' MOV R0,PRTPTR
58 140164 012737 140210 000064 MOV #PRTAST,@#DL11VEC
59 140172 012737 000200 000066 MOV #200,@#DL11VEC+2
60 140200 152737 000100 177564 BISB #100,@#DL11XCSR
61 140206 000207 RTS PC
62
63 PRTAST:
64 140210 105777 140146' TSTB @PRTPTR
65 140214 001406 BEQ 2$
66 140216 117737 140146' 177566 MOVB @PRTPTR,@#177566
67 140224 005267 140146' INC PRTPTR
68 140230 000002 RTI
69 140232 105037 177564 2$: CLRB @#177564
70 140236 000002 RTI
71
72 140240 000000 BUFFER: .WORD 0 ; INPUT BUFFER POINTER
73 140242 000000 LENGTH: .WORD 0 ; INPUT BUFFER LENGTH
74
75 INPUT:
76 140244 010067 140240' MOV R0,BUFFER
77 140250 005067 140242' CLR LENGTH
78 140254 012737 140300 000060 MOV #INPAST,@#60
79 140262 012737 000200 000062 MOV #200,@#62
80 140270 152737 000100 177560 BISB #100,@#177560
81 140276 000207 RTS PC
82
83 INPAST:
84 140300 010046 MOV R0,-(SP)
85 140302 113700 177562 MOVB @#177562,R0
86 140306 120027 000015 CMPB R0,#15
87 140312 001455 BEQ 7$ ; CARRIAGE RETURN
88 140314 120027 000177 CMPB R0,#127.
89 140320 001403 BEQ 2$ ; <DEL>
90 140322 120027 000010 CMPB R0,#10
91 140326 001012 BNE 4$ ; BACK SPACE
92 140330 005767 140242' 2$: TST LENGTH ; DATA IN BUFFER?
93 140334 001406 BEQ 3$
94 140336 005367 140242' DEC LENGTH ; LENGTH
95 140342 012700 141037 MOV #DEL,R0
96 140346 004767 140150' JSR PC,PRINT
97 140352 000453 3$: BR 9$
98 140354 120027 000040 4$: CMPB R0,#40
99 140360 002450 BLT 9$ ; BELOW SPACE
100 140362 120027 000177 CMPB R0,#177
101 140366 002045 BGE 9$ ; SKIP STUFF TOO BIG
102 140370 004767 140132' JSR PC,ONECHR ; ECHO CHAR
103 140374 120027 000172 CMPB R0,#172
104 140400 003005 BGT 5$ ; ABOVE Z
105 140402 120027 000141 CMPB R0,#141
106 140406 002402 BLT 5$ ; BELOW A
107 140410 142700 000040 BICB #40,R0 ; CONVERT TO UPPER CASE
108 140414 026727 140242' 000254 5$: CMP LENGTH,#254
109 140422 002027 BGE 9$
110 140424 110046 MOVB R0,-(SP)
111 140426 016700 140240' MOV BUFFER,R0
112 140432 066700 140242' ADD LENGTH,R0
113 140436 112610 MOVB (SP)+,(R0)
114 140440 005267 140242' INC LENGTH
115 140444 000416 BR 9$
116
117 140446 016700 140240' 7$: MOV BUFFER,R0
118 140452 066700 140242' ADD LENGTH,R0
119 140456 105010 CLRB (R0)
120 140460 012737 140506 000240 MOV #CMD,@#240 ; CALL CMD AT PRIORITY 2
121 140466 012737 000100 000242 MOV #100,@#242
122 140474 012737 002000 177772 MOV #2000,@#177772
123 140502 012600 9$: MOV (SP)+,R0
124 140504 000002 RTI
125
126 CMD:
127 140506 005037 177772 CLR @#177772 ; NO MORE PIR CALLS
128 140512 010046 MOV R0,-(SP)
129 140514 010146 MOV R1,-(SP)
130 140516 010246 MOV R2,-(SP)
131 140520 010346 MOV R3,-(SP)
132 140522 010446 MOV R4,-(SP)
133 140524 012700 141034 MOV #EOL,R0
134 140530 004767 140150' JSR PC,PRINT
135 140534 132737 000100 177564 1$: BITB #100,@#177564
136 140542 001374 BNE 1$
137 140544 005004 CLR R4
138 140546 012703 141043 MOV #CMDLST,R3 ; CMD LIST
139 140552 112300 3$: MOVB (R3)+,R0
140 140554 001431 BEQ 13$
141 140556 016702 140240' MOV BUFFER,R2 ; USER CMD
142 140562 112201 4$: MOVB (R2)+,R1
143 140564 001431 BEQ 15$ ; NULL COMMAND?
144 140566 120127 000040 CMPB R1,#40
145 140572 001773 BEQ 4$ ; SKIP SPACE
146 140574 120001 5$: CMPB R0,R1
147 140576 001010 BNE 7$
148 140600 112300 MOVB (R3)+,R0
149 140602 001412 BEQ 9$
150 140604 112201 MOVB (R2)+,R1
151 140606 001410 BEQ 9$
152 140610 120127 000040 CMPB R1,#40
153 140614 001367 BNE 5$
154 140616 000404 BR 9$
155 140620 112300 7$: MOVB (R3)+,R0
156 140622 001376 BNE 7$
157 140624 005204 INC R4
158 140626 000751 BR 3$
159 140630 006304 9$: ASL R4
160 140632 004774 140700 JSR PC,@CMDTBL(R4) ; EXECUTE
161 140636 000404 BR 15$
162
163 140640 012700 141077 13$: MOV #UNKMSG,R0
164 140644 004767 140150' JSR PC,PRINT
165
166 140650 005067 140242' 15$: CLR LENGTH
167 140654 012700 141151 MOV #PROMPT,R0
168 140660 004767 140150' JSR PC,PRINT
169 140664 012604 MOV (SP)+,R4
170 140666 012603 MOV (SP)+,R3
171 140670 012602 MOV (SP)+,R2
172 140672 012601 MOV (SP)+,R1
173 140674 012600 MOV (SP)+,R0
174 140676 000002 RTI
175
176
177 140700 142050 141244 141260 CMDTBL: .WORD BOOT,HALT,TEST,LIGHTS,HELP
140706 141364 141232
178 140712 103 117 115 HLPMSG: .ASCIZ 'COMMANDS ARE BOOT, HALT, LIGHTS, TEST AND HELP'<15><12>'BOOT DEVICES ARE RK? RL? OR RP?'<15><12>
140715 115 101 116
140720 104 123 040
140723 101 122 105
140726 040 102 117
140731 117 124 054
140734 040 110 101
140737 114 124 054
140742 040 114 111
140745 107 110 124
140750 123 054 040
140753 124 105 123
140756 124 040 101
140761 116 104 040
140764 110 105 114
140767 120 015 012
140772 102 117 117
140775 124 040 104
141000 105 126 111
141003 103 105 123
141006 040 101 122
141011 105 040 122
141014 113 077 040
141017 122 114 077
141022 040 117 122
141025 040 122 120
141030 077 015 012
141033 000
179 141034 015 012 000 EOL: .BYTE 15,12,0
180 141037 010 040 010 DEL: .BYTE 10,40,10,0
141042 000
181 141043 102 117 117 CMDLST: .ASCIZ 'BOOT'
141046 124 000
182 141050 110 101 114 .ASCIZ 'HALT'
141053 124 000
183 141055 124 105 123 .ASCIZ 'TEST'
141060 124 000
184 141062 114 111 107 .ASCIZ 'LIGHTS'
141065 110 124 123
141070 000
185 141071 110 105 114 .ASCIZ 'HELP'
141074 120 000
186 141076 000 .BYTE 0
187 141077 125 116 113 UNKMSG: .ASCIZ 'UNKNOWN COMMAND'<12><15>
141102 116 117 127
141105 116 040 103
141110 117 115 115
141113 101 116 104
141116 012 015 000
188 141121 120 104 120 BANNER: .ASCIZ 'PDP-11 MONITOR V1.0'<12><15><12><15>
141124 055 061 061
141127 040 115 117
141132 116 111 124
141135 117 122 040
141140 126 061 056
141143 060 012 015
141146 012 015 000
189 ; 'ADAPTED FROM CODE BY PAUL NANKERVIS <PAULNANK@HOTMAIL.COM>'<12><15><12><15>
190 141151 102 117 117 PROMPT: .ASCIZ 'BOOT> '
141154 124 076 040
141157 000
191 141160 125 116 113 BADBOO: .ASCIZ 'UNKNOWN BOOT DEVICE'<12><15>
141163 116 117 127
141166 116 040 102
141171 117 117 124
141174 040 104 105
141177 126 111 103
141202 105 012 015
141205 000
192 141206 040 040 040 PERMSG: .ASCIZ ' CLOCK TICKS'<12><15>
141211 040 040 040
141214 103 114 117
141217 103 113 040
141222 124 111 103
141225 113 123 012
141230 015 000
193
194 .EVEN
195
196 HELP:
197 141232 012700 140712 MOV #HLPMSG,R0
198 141236 004767 140150' JSR PC,PRINT
199 141242 000207 RTS PC
200
201 HALT:
202 141244 000000 HALT
203 141246 012700 141034 MOV #EOL,R0
204 141252 004767 140150' JSR PC,PRINT
205 141256 000207 RTS PC
206
207 TEST:
208 141260 005067 140122' CLR CLKTIC
209
210 141264 012705 015000 MOV #15000,R5
211 141270 010537 177570 10$: MOV R5,@#177570 ; DISPLAY
212 141274 010504 MOV R5,R4
213 141276 006204 ASR R4
214 141300 005000 15$: CLR R0
215 141302 010501 MOV R5,R1
216 141304 071004 DIV R4,R0
217 141306 010002 MOV R0,R2
218 141310 070204 MUL R4,R2
219 141312 060301 ADD R3,R1
220 141314 020105 CMP R1,R5
221 141316 001401 BEQ 20$
222 141320 000000 HALT
223 141322 077412 20$: SOB R4,15$
224 141324 077517 SOB R5,10$
225
226 141326 012700 141213 MOV #PERMSG+5,R0
227 141332 016703 140122' MOV CLKTIC,R3
228
229 141336 005002 25$: CLR R2
230 141340 071227 000010 DIV #10,R2
231 141344 062703 000060 ADD #'0,R3
232 141350 110340 MOVB R3,-(R0)
233 141352 010203 MOV R2,R3
234 141354 001370 BNE 25$
235
236 141356 004767 140150' JSR PC,PRINT
237 141362 000207 RTS PC
238
239
240 177572 MMR0=177572
241 177574 MMR1=177574
242 177576 MMR2=177576
243 172516 MMR3=172516
244
245 LIGHTS:
246 141364 012703 077406 MOV #77406,R3 ; DEFAULT PDR
247 141370 005002 CLR R2
248 141372 005001 CLR R1
249 141374 012700 000010 MOV #8.,R0
250 141400 010361 172300 1$: MOV R3,172300(R1) ; KERNEL I PDR
251 141404 010261 172340 MOV R2,172340(R1) ; KERNEL I PAR
252 141410 010361 172320 MOV R3,172320(R1) ; KERNEL D PDR
253 141414 010261 172360 MOV R2,172360(R1) ; KERNEL D PAR
254 141420 010361 172200 MOV R3,172200(R1) ; SUPER I PDR
255 141424 010261 172240 MOV R2,172240(R1) ; SUPER I PAR
256 141430 010361 172220 MOV R3,172220(R1) ; SUPER D PDR
257 141434 010261 172260 MOV R2,172260(R1) ; SUPER D PAR
258 141440 010361 177600 MOV R3,177600(R1) ; USER I PDR
259 141444 010261 177640 MOV R2,177640(R1) ; USER I PAR
260 141450 010361 177620 MOV R3,177620(R1) ; USER D PDR
261 141454 010361 177660 MOV R3,177660(R1) ; USER D PAR
262 141460 062702 000200 ADD #200,R2
263 141464 062701 000002 ADD #2,R1
264 141470 077035 SOB R0,1$
265 141472 052737 176000 172376 BIS #176000,@#172376 ; KERNEL D POINTS TO I/O SPACE
266 141500 052737 176000 172276 BIS #176000,@#172276 ; SUPER D POINTS TO I/O SPACE
267 141506 052737 176000 177676 BIS #176000,@#177676 ; USER D POINTS TO I/O SPACE
268 141514 012737 000077 172516 MOV #77,@#MMR3 ; 77 FOR 22 BIT
269 141522 012737 000001 177572 MOV #1,@#MMR0
270
271 141530 012737 001700 172244 MOV #1700,@#172244 ; BASE SUPER I (PAR 2) #40000 AT #170000
272 141536 012737 001700 172264 MOV #1700,@#172264 ; BASE SUPER D (PAR 2) #40000 AT #170000
273 141544 012737 010000 177776 MOV #010000,@#177776 ; SET PM TO SUPER
274
275 141552 012703 040200 MOV #40200,R3 ; SUPER CODE ADDRESS
276 141556 012702 141604 MOV #SUPERS,R2 ; ADDRESS SUPER CODE
277 141562 012246 10$: MOV (R2)+,-(SP)
278 141564 006623 MTPI (R3)+
279 141566 020227 142050 CMP R2,#SUPERE
280 141572 103773 BLO 10$
281
282 141574 012767 040200 140120' MOV #40200,LGHTON ; CHANGE IDLE TASK
283 141602 000207 RTS PC
284
285 ;
286 ; TO BE COPIED TO SUPER #40200 AT PHYSICAL #170000
287 ; #40000 TO #40200 FOR WAIT & JMP INSTRUCTIONS
288 ;
289 SUPERS:
290 141604 012700 000037 MOV #37,R0 ; LOAD PATTERN
291 141610 012701 174000 MOV #174000,R1
292 141614 032737 000001 177570 BIT #1,@#177570
293 141622 001414 BEQ 10$
294 141624 012700 007417 MOV #7417,R0
295 141630 010001 MOV R0,R1
296 141632 005101 COM R1
297 141634 032737 000002 177570 BIT #2,@#177570
298 141642 001404 BEQ 10$
299 141644 012700 036163 MOV #36163,R0
300 141650 012701 037000 MOV #37000,R1
301 141654 010102 10$: MOV R1,R2
302 141656 162702 000002 SUB #2,R2
303 141662 042702 000001 BIC #1,R2 ; WAIT ADDRESS
304 141666 010203 MOV R2,R3
305 141670 042703 177701 BIC #177701,R3 ; ADDRESS OFFSET
306 141674 012763 000001 040000 MOV #0000001,40000(R3) ; WRITE WAIT
307 141702 062703 000002 ADD #2,R3
308 141706 012763 000113 040000 MOV #0000113,40000(R3) ; WRITE JMP (R3)
309
310 141714 010204 MOV R2,R4
311 141716 072427 177772 ASH #-6,R4
312 141722 042704 177600 BIC #177600,R4
313 141726 012705 001700 MOV #1700,R5
314 141732 160405 SUB R4,R5 ; PAR ADDRESS BASE FOR WAIT
315 141734 010204 MOV R2,R4
316 141736 072427 177764 ASH #-12.,R4
317 141742 042704 177761 BIC #177761,R4 ; PAR SELECT OFFSET
318 141746 010564 172240 MOV R5,172240(R4) ; SUPER I SPACE
319
320 141752 010103 MOV R1,R3
321 141754 072327 177764 ASH #-12.,R3
322 141760 042703 177761 BIC #177761,R3 ; PAR SELECT OFFSET
323 141764 020304 CMP R3,R4 ; SAME PAR
324 141766 001412 BEQ 30$
325 141770 010104 MOV R1,R4
326 141772 072427 177772 ASH #-6,R4
327 141776 042704 177600 BIC #177600,R4
328 142002 012705 001700 MOV #1700,R5
329 142006 160405 SUB R4,R5 ; PAR ADDRESS BASE FOR JMP
330 142010 010563 172240 MOV R5,172240(R3) ; SUPER I SPACE
331 30$:
332 142014 012704 000003 MOV #3,R4
333 142020 063704 177570 ADD @#177570,R4
334 142024 012703 000002 MOV #2,R3
335 142030 060703 ADD PC,R3
336 142032 000112 40$: JMP (R2)
337 142034 077402 SOB R4,40$
338 142036 010002 MOV R0,R2
339 142040 006002 ROR R2 ; ROTATE PATTERN
340 142042 006101 ROL R1
341 142044 006000 ROR R0
342 142046 000702 BR 10$
343 SUPERE:
344
345 BOOT:
346 142050 005003 CLR R3 ; UNIT
347 142052 112201 1$: MOVB (R2)+,R1
348 142054 001545 BEQ BOOTRK ; DEFAULT DEVICE IS RK0
349 142056 120127 000040 CMPB R1,#40
350 142062 001773 BEQ 1$
351 142064 120127 000122 CMPB R1,#'R
352 142070 001405 BEQ 5$
353
354 142072 012700 141160 MOV #BADBOO,R0
355 142076 004767 140150' JSR PC,PRINT
356 142102 000207 RTS PC
357
358 142104 112201 5$: MOVB (R2)+,R1 ; HOPEFULLY K, L OR P
359 142106 112200 7$: MOVB (R2)+,R0 ; DIGIT
360 142110 001416 BEQ 9$
361 142112 120027 000040 CMPB R0,#40
362 142116 001413 BEQ 9$
363 142120 120027 000067 CMPB R0,#'7
364 142124 003031 BGT 11$
365 142126 162700 000060 SUB #'0,R0
366 142132 002426 BLT 11$
367 142134 006303 ASL R3
368 142136 006303 ASL R3
369 142140 006303 ASL R3
370 142142 050003 BIS R0,R3 ; PUT DIGIT INTO UNIT
371 142144 000760 BR 7$
372 142146 005002 9$: CLR R2
373 142150 012722 000137 MOV #137,(R2)+ ; STORE "JMP @#140000" INSTRUCTION AT ADDRESS 0
374 142154 012722 140000 MOV #START,(R2)+
375 142160 012722 140000 MOV #START,(R2)+ ; STORE #140000 IN VECTOR 4, IN CASE OF TRAP TO 4
376 142164 005022 CLR (R2)+
377 142166 120127 000113 CMPB R1,#'K
378 142172 001476 BEQ BOOTRK
379 142174 120127 000114 CMPB R1,#'L
380 142200 001410 BEQ BOOTRL
381 142202 120127 000120 CMPB R1,#'P
382 142206 001517 BEQ BOOTRP
383
384 142210 012700 141077 11$: MOV #UNKMSG,R0
385 142214 004767 140150' JSR PC,PRINT
386 142220 000207 RTS PC
387
388 174400 RLCS=174400
389 BOOTRL:
390 142222 000005 RESET
391 142224 000303 SWAB R3 ; UNIT NUMBER
392 142226 012701 174400 MOV #RLCS,R1 ; CSR
393 142232 012761 000013 000004 MOV #13,4(R1) ; CLR ERR
394 142240 052703 000004 BIS #4,R3 ; UNIT+GSTAT
395 142244 010311 MOV R3,(R1) ; ISSUE CMD
396 142246 105711 TSTB (R1) ; WAIT
397 142250 100376 BPL .-2
398 142252 105003 CLRB R3
399 142254 052703 000010 BIS #10,R3 ; UNIT+RDHDR
400 142260 010311 MOV R3,(R1) ; ISSUE CMD
401 142262 105711 TSTB (R1) ; WAIT
402 142264 100376 BPL .-2
403 142266 016102 000006 MOV 6(R1),R2 ; GET HDR
404 142272 042702 000077 BIC #77,R2 ; CLR SECTOR
405 142276 005202 INC R2 ; MAGIC BIT
406 142300 010261 000004 MOV R2,4(R1) ; SEEK TO 0
407 142304 105003 CLRB R3
408 142306 052703 000006 BIS #6,R3 ; UNIT+SEEK
409 142312 010311 MOV R3,(R1) ; ISSUE CMD
410 142314 105711 TSTB (R1) ; WAIT
411 142316 100376 BPL .-2
412 142320 005061 000002 CLR 2(R1) ; CLR BA
413 142324 005061 000004 CLR 4(R1) ; CLR DA
414 142330 012761 177000 000006 MOV #-512.,6(R1) ; SET WC
415 142336 105003 CLRB R3
416 142340 052703 000014 BIS #14,R3 ; UNIT+READ
417 142344 010311 MOV R3,(R1) ; ISSUE CMD
418 142346 105711 TSTB (R1) ; WAIT
419 142350 100376 BPL .-2
420 142352 042711 000377 BIC #377,(R1)
421 142356 005002 CLR R2
422 142360 005003 CLR R3
423 142362 005004 CLR R4
424 142364 005005 CLR R5
425 142366 005007 CLR PC
426
427 177412 RKDA=177412
428 000005 READGO=5
429 BOOTRK:
430 142370 000005 RESET
431 142372 000303 SWAB R3 ; UNIT NUMBER
432 142374 006303 ASL R3
433 142376 006303 ASL R3
434 142400 006303 ASL R3
435 142402 006303 ASL R3
436 142404 006303 ASL R3
437 142406 012701 177412 MOV #RKDA,R1 ; CSR
438 142412 010311 MOV R3,(R1) ; LOAD DA
439 142414 005041 CLR -(R1) ; CLEAR BA
440 142416 012741 177000 MOV #-256.*2,-(R1) ; LOAD WC
441 142422 012741 000005 MOV #READGO,-(R1) ; READ & GO
442 142426 005002 CLR R2
443 142430 005003 CLR R3
444 142432 005004 CLR R4
445 142434 005005 CLR R5
446 142436 105711 TSTB (R1)
447 142440 100376 BPL .-2
448 142442 105011 CLRB (R1)
449 142444 005007 CLR PC
450
451 176700 RPCSR=0176700
452 BOOTRP:
453 142446 000005 RESET
454 142450 012701 176700 MOV #RPCSR, R1
455 142454 012761 000040 000010 MOV #0000040, 10(R1) ; RESET
456 142462 010361 000010 MOV R3, 10(R1) ; SET UNIT
457 142466 012711 000021 MOV #0000021, (R1) ; PACK ACK
458 142472 012761 010000 000032 MOV #0010000, 32(R1) ; 16B MODE
459 142500 012761 177000 000002 MOV #-512., 2(R1) ; SET WC
460 142506 005061 000004 CLR 4(R1) ; CLR BA
461 142512 005061 000006 CLR 6(R1) ; CLR DA
462 142516 005061 000034 CLR 34(R1) ; CLR CYL
463 142522 012711 000071 MOV #0000071, (R1) ; READ
464 142526 105711 TSTB (R1) ; WAIT
465 142530 100376 BPL .-2
466 142532 105011 CLRB (R1)
467 142534 010300 MOV R3,R0
468 142536 005007 CLR PC
469
470 .END START
470