Added more PDP-11 paper tape resources
This commit is contained in:
parent
5d5629c27b
commit
89dc2660f1
51 changed files with 11603 additions and 166 deletions
745
apps/pdp11/diags/cpu/XCPA.lst
Normal file
745
apps/pdp11/diags/cpu/XCPA.lst
Normal file
|
|
@ -0,0 +1,745 @@
|
|||
1 .title AC-E664G-MC_CXCPAG0-Processor-test_Sep78
|
||||
2 ;
|
||||
3 ; original code OCRed from
|
||||
4 ; http://www.bitsavers.org/pdf/dec/pdp11/xxdp/listings/AC-E664G-MC_CXCPAG0-Processor-test_Sep78.pdf
|
||||
5 ;
|
||||
6 ; Changed to run standalone without monitor
|
||||
7 ; JH
|
||||
8
|
||||
9 .LIST BIN
|
||||
10 .ENABLE AMA ; relocatable addresses as absolute
|
||||
11
|
||||
12 ;**********************************************************************
|
||||
13 .asect
|
||||
14
|
||||
15 000040 SPSIZ=040 ; stack size
|
||||
16
|
||||
17 ; is called on every error
|
||||
18 .MACRO HRDER$
|
||||
19 HALT ; just halt on error
|
||||
20 HALT ; force3 word size, like in original
|
||||
21 HALT
|
||||
22 .ENDM
|
||||
23
|
||||
24 ;MODNAM: .ASCII /CPAG / ;MODULE NAME
|
||||
25 ;**********************************************************************
|
||||
26 000000 000220 INIT: START ;MODULE START ADDRE.
|
||||
27 000002 001760 SPOINT: MODSP ;MODULE STACK POINTER.
|
||||
28 000004 000000 PASCNT: 0 ;PASS COUNTER.
|
||||
29
|
||||
30
|
||||
31 000220 .=220 ; generate same addresses as in original
|
||||
32
|
||||
33
|
||||
34
|
||||
35 START:
|
||||
36 000220 013706 000002 MOV SPOINT,SP ; load stack pointer
|
||||
37
|
||||
38
|
||||
39 ;**********************************************************************
|
||||
40 ;CHECK BRANCH INSTRUCTIONS
|
||||
41 000224 000257 RESTRT: CCC
|
||||
42 000226 103407 BCS CC0
|
||||
43 000230 102406 BVS CC0
|
||||
44 000232 001405 BEQ CC0
|
||||
45 000234 100404 BMI CC0
|
||||
46 000236 002403 BLT CC0
|
||||
47 000240 003402 BLE CC0
|
||||
48 000242 101401 BLOS CC0
|
||||
49 000244 101003 BHI CON1
|
||||
50 CC0:
|
||||
51 ;**************************************************************
|
||||
52 HRDER$,BEGIN,NULL ;
|
||||
1 000246 000000 HALT ; just halt on error
|
||||
2 000250 000000 HALT ; force3 word size, like in original
|
||||
3 000252 000000 HALT
|
||||
53 ;**************************************************************
|
||||
54
|
||||
55 ;CONTINUE
|
||||
56 000254 000262 CON1: SEV ;CC'S=1010
|
||||
57 000256 000270 SEN
|
||||
58 000260 102003 BVC CC2
|
||||
59 000262 002402 BLT CC2
|
||||
60 000264 003401 BLE CC2
|
||||
61 000266 002003 BGE CON3
|
||||
62 CC2:
|
||||
63 ;**************************************************************
|
||||
64 HRDER$,BEGIN,NULL ;
|
||||
1 000270 000000 HALT ; just halt on error
|
||||
2 000272 000000 HALT ; force3 word size, like in original
|
||||
3 000274 000000 HALT
|
||||
65 ;**************************************************************
|
||||
66 ;CONTINUE
|
||||
67 000276 000264 CON3: SEZ ;CC'S=1111
|
||||
68 000300 000261 SEC
|
||||
69 000302 001003 BNE CC4
|
||||
70 000304 003002 BGT CC4
|
||||
71 000306 101001 BHI CC4
|
||||
72 000310 003403 BLE YT15:
|
||||
73 CC4:
|
||||
74 ;**************************************************************
|
||||
75 HRDER$,BEGIN,NULL ;
|
||||
1 000312 000000 HALT ; just halt on error
|
||||
2 000314 000000 HALT ; force3 word size, like in original
|
||||
3 000316 000000 HALT
|
||||
76 ;**************************************************************
|
||||
77
|
||||
78
|
||||
79
|
||||
80
|
||||
81 ;CHECK UNARY WORD OPS USING ADDRESS MODES 3 AND 5
|
||||
82 000320 000402 YT15: BR 1$
|
||||
83 000322 000000 .WORD 0
|
||||
84 000324 000000 .WORD 0
|
||||
85 000326 010703 1$: MOV PC,R3
|
||||
86 000330 162703 000004 SUB #4,R3
|
||||
87 000334 005013 CLR (R3)
|
||||
88 000336 010300 MOV R3,R0
|
||||
89 000340 005743 TST -(R3)
|
||||
90 000342 010013 MOV R0,(R3)
|
||||
91 000344 010304 MOV R3,R4
|
||||
92 000346 000257 CCC
|
||||
93 000350 005733 TST @(R3)+ ;(R0)=000000,CC=0100
|
||||
94 000352 001403 BEQ 2$
|
||||
95 ;**************************************************************
|
||||
96 HRDER$,BEGIN,NULL ;
|
||||
1 000354 000000 HALT ; just halt on error
|
||||
2 000356 000000 HALT ; force3 word size, like in original
|
||||
3 000360 000000 HALT
|
||||
97 ;**************************************************************
|
||||
98
|
||||
99 000362 000261 2$: SEC
|
||||
100 000364 006053 ROR @-(R3) ;(R0)=100000,CC=0101
|
||||
101 000366 103402 BCS ROR5
|
||||
102 000370 102001 BVC ROR5
|
||||
103 000372 100403 BMI RD
|
||||
104 ROR5:
|
||||
105 ;**************************************************************
|
||||
106 HRDER$,BEGIN,NULL ;
|
||||
1 000374 000000 HALT ; just halt on error
|
||||
2 000376 000000 HALT ; force3 word size, like in original
|
||||
3 000400 000000 HALT
|
||||
107 ;**************************************************************
|
||||
108
|
||||
109 000402 000257 RD: CCC
|
||||
110 000404 006234 ASR @(R4)+ ;(R0)=140000,CC=1010
|
||||
111 000406 102001 BVC ASR3
|
||||
112 000410 100403 BMI RD1
|
||||
113 ASR3:
|
||||
114 ;**************************************************************
|
||||
115 HRDER$,BEGIN,NULL ;
|
||||
1 000412 000000 HALT ; just halt on error
|
||||
2 000414 000000 HALT ; force3 word size, like in original
|
||||
3 000416 000000 HALT
|
||||
116 ;**************************************************************
|
||||
117
|
||||
118 000420 000250 RD1: CLN
|
||||
119 000422 006333 ASL @(R3)+ ;(R0)=100000,CC=1001
|
||||
120 000424 103002 BCC ASL3
|
||||
121 000426 102401 BVS ASL3
|
||||
122 000430 100403 BMI RD2
|
||||
123 ASL3:
|
||||
124 ;**************************************************************
|
||||
125 HRDER$,BEGIN,NULL ;
|
||||
1 000432 000000 HALT ; just halt on error
|
||||
2 000434 000000 HALT ; force3 word size, like in original
|
||||
3 000436 000000 HALT
|
||||
126 ;**************************************************************
|
||||
127
|
||||
128 000440 000277 RD2: SCC
|
||||
129 000442 005354 DEC @-(R4) ;(R0)=077777,CC=0010
|
||||
130 000444 103003 BCC DEC5
|
||||
131 000446 102002 BVC DEC5
|
||||
132 000450 001401 BEQ DEC5
|
||||
133 000452 100003 BPL RD3
|
||||
134 DEC5:
|
||||
135 ;**************************************************************
|
||||
136 HRDER$,BEGIN,NULL ;
|
||||
1 000454 000000 HALT ; just halt on error
|
||||
2 000456 000000 HALT ; force3 word size, like in original
|
||||
3 000460 000000 HALT
|
||||
137 ;**************************************************************
|
||||
138
|
||||
139 000462 005453 RD3: NEG @-(R3) ;(R0)=100001, C=1001
|
||||
140 000464 103002 BCC NEG5
|
||||
141 000466 102401 BVS NEG5
|
||||
142 000470 100403 BMI RD4
|
||||
143 NEG5:
|
||||
144 ;**************************************************************
|
||||
145 HRDER$,BEGIN,NULL ;
|
||||
1 000472 000000 HALT ; just halt on error
|
||||
2 000474 000000 HALT ; force3 word size, like in original
|
||||
3 000476 000000 HALT
|
||||
146 ;**************************************************************
|
||||
147
|
||||
148 000500 000262 RD4: SEV
|
||||
149 000502 005134 COM @(R4)+ ;(R0)=077776, C=0001
|
||||
150 000504 103001 BCC COM3
|
||||
151 000506 102003 BVC RD5
|
||||
152 COM3:
|
||||
153 ;**************************************************************
|
||||
154 HRDER$,BEGIN,NULL ;
|
||||
1 000510 000000 HALT ; just halt on error
|
||||
2 000512 000000 HALT ; force3 word size, like in original
|
||||
3 000514 000000 HALT
|
||||
155 ;**************************************************************
|
||||
156
|
||||
157 000516 005233 RD5: INC @(R3)+ ;(R0)=077777, C=0001
|
||||
158 000520 103001 BCC INC3
|
||||
159 000522 100003 BPL RD6
|
||||
160 INC3:
|
||||
161 ;**************************************************************
|
||||
162 HRDER$,BEGIN,NULL ;
|
||||
1 000524 000000 HALT ; just halt on error
|
||||
2 000526 000000 HALT ; force3 word size, like in original
|
||||
3 000530 000000 HALT
|
||||
163 ;**************************************************************
|
||||
164
|
||||
165 000532 005554 RD6: ADC @-(R4) ;(R0)=100000, C=1010
|
||||
166 000534 103402 BCS ADC5
|
||||
167 000536 102001 BVC ADC5
|
||||
168 000540 100403 BMI RD7
|
||||
169 ADC5:
|
||||
170 ;**************************************************************
|
||||
171 HRDER$,BEGIN,NULL ;
|
||||
1 000542 000000 HALT ; just halt on error
|
||||
2 000544 000000 HALT ; force3 word size, like in original
|
||||
3 000546 000000 HALT
|
||||
172 ;**************************************************************
|
||||
173
|
||||
174 000550 000257 RD7: CCC
|
||||
175 000552 006134 ROL @(R4)+ ;(R0)=000000, C=0111
|
||||
176 000554 103002 BCC ROL3
|
||||
177 000556 102001 BVC ROL3
|
||||
178 000560 001403 BEQ RD8
|
||||
179 ROL3:
|
||||
180 ;**************************************************************
|
||||
181 HRDER$,BEGIN,NULL ;
|
||||
1 000562 000000 HALT ; just halt on error
|
||||
2 000564 000000 HALT ; force3 word size, like in original
|
||||
3 000566 000000 HALT
|
||||
182 ;**************************************************************
|
||||
183
|
||||
184 000570 005253 RD8: INC @-(R3) ;(R0)=000001, C=0001
|
||||
185 000572 005654 SBC @-(R4) ;(R0)=000000, C=0100
|
||||
186 000574 103401 BCS SBC5
|
||||
187 000576 001403 BEQ RD9
|
||||
188 SBC5:
|
||||
189 ;**************************************************************
|
||||
190 HRDER$,BEGIN,NULL ;
|
||||
1 000600 000000 HALT ; just halt on error
|
||||
2 000602 000000 HALT ; force3 word size, like in original
|
||||
3 000604 000000 HALT
|
||||
191 ;**************************************************************
|
||||
192
|
||||
193 ;CHECK UNARY BYTE OPS USING ADDRESS MODES 3 AND 4
|
||||
194 000606 000403 RD9: BR 1$ ; RESERVE 3 WORDS
|
||||
195 000610 000000 .WORD 0 ;1 FOR EVEN BYTE ADDRESS
|
||||
196 000612 000000 .WORD 0 ;1 FOR ODD BYTE ADDRESS
|
||||
197 000614 000000 .WORD 0 ;AND 1 FOR DATA
|
||||
198 000616 010702 1$: MOV PC,R2
|
||||
199 000620 005742 TST -(R2) ;BACK R2 UP TO
|
||||
200 000622 005742 TST -(R2) ;DATA WORD
|
||||
201 000624 010200 MOV R2,R0 ;R0 POINTS TO THE DATA WORD
|
||||
202 000626 005010 CLR (R0) ;PRESET DATA
|
||||
203 000630 005742 TST -(R2) ;BACK R2 UP TO
|
||||
204 000632 005742 TST -(R2) ;EVEN BYTE ADDRESS WORD
|
||||
205 000634 010022 MOV R0,(R2)+ ;LOAD ADDRESS
|
||||
206 000636 005200 INC R0 ;ODD BYTE ADDRESS
|
||||
207 000640 010022 MOV R0,(R2)+ ;LOAD ODD BYTE ADDRESS
|
||||
208 000642 010200 MOV R2,R0 ;RESET R0
|
||||
209 000644 010205 MOV R2,R5
|
||||
210
|
||||
211 000646 105152 COMB @-(R2) ;(R0)=177400, CC=1001
|
||||
212 000650 103001 BCC COMB5
|
||||
213 000652 100403 BMI TE
|
||||
214 COMB5:
|
||||
215 ;**************************************************************
|
||||
216 HRDER$,BEGIN,NULL ;
|
||||
1 000654 000000 HALT ; just halt on error
|
||||
2 000656 000000 HALT ; force3 word size, like in original
|
||||
3 000660 000000 HALT
|
||||
217 ;**************************************************************
|
||||
218
|
||||
219 000662 105752 TE: TSTB @-(R2) ;(R0)=177400, CC=0100
|
||||
220 000664 001403 BEQ 1$
|
||||
221 ;**************************************************************
|
||||
222 HRDER$,BEGIN,NULL ;
|
||||
1 000666 000000 HALT ; just halt on error
|
||||
2 000670 000000 HALT ; force3 word size, like in original
|
||||
3 000672 000000 HALT
|
||||
223 ;**************************************************************
|
||||
224
|
||||
225 000674 000262 1$: SEV
|
||||
226 000676 106255 ASRB @-(R5) ;(R0)=177400, CC=1001
|
||||
227 000700 103002 BCC ASRB5
|
||||
228 000702 102401 BVS ASRB5
|
||||
229 000704 100403 BMI TE1
|
||||
230 ASRB5:
|
||||
231 ;**************************************************************
|
||||
232 HRDER$,BEGIN,NULL ;
|
||||
1 000706 000000 HALT ; just halt on error
|
||||
2 000710 000000 HALT ; force3 word size, like in original
|
||||
3 000712 000000 HALT
|
||||
233 ;**************************************************************
|
||||
234
|
||||
235 000714 105232 TE1: INCB @(R2)+ ;(R0)=177401, CC=000
|
||||
236 000716 103001 BCC INCB3
|
||||
237 000720 100003 BPL TE2
|
||||
238 INCB3:
|
||||
239 ;**************************************************************
|
||||
240 HRDER$,BEGIN,NULL ;
|
||||
1 000722 000000 HALT ; just halt on error
|
||||
2 000724 000000 HALT ; force3 word size, like in original
|
||||
3 000726 000000 HALT
|
||||
241 ;**************************************************************
|
||||
242
|
||||
243 000730 000241 TE2: CLC
|
||||
244 000732 106055 RORB @-(R5) ;(R0)=177400, CC=0111
|
||||
245 000734 103003 BCC RORB5
|
||||
246 000736 102002 BVC RORB5
|
||||
247 000740 001001 BNE RORB5
|
||||
248 000742 100003 BPL TE3
|
||||
249 RORB5:
|
||||
250 ;**************************************************************
|
||||
251 HRDER$,BEGIN,NULL ;
|
||||
1 000744 000000 HALT ; just halt on error
|
||||
2 000746 000000 HALT ; force3 word size, like in original
|
||||
3 000750 000000 HALT
|
||||
252 ;**************************************************************
|
||||
253
|
||||
254 000752 106332 TE3: ASLB @(R2)+ ;(R0)=177000, CC=1001
|
||||
255 000754 103002 BCC ASLB3
|
||||
256 000756 102401 BVS ASLB3
|
||||
257 000760 100403 BMI TE4
|
||||
258 ASLB3:
|
||||
259 ;**************************************************************
|
||||
260 HRDER$,BEGIN,NULL ;
|
||||
1 000762 000000 HALT ; just halt on error
|
||||
2 000764 000000 HALT ; force3 word size, like in original
|
||||
3 000766 000000 HALT
|
||||
261 ;**************************************************************
|
||||
262
|
||||
263 000770 105552 TE4: ADCB @-(R2) ;(R0)=177400, CC=1000
|
||||
264 000772 103401 BCS ADCB5
|
||||
265 000774 100403 BMI TE5:
|
||||
266 ADCB5:
|
||||
267 ;**************************************************************
|
||||
268 HRDER$,BEGIN,NULL ;
|
||||
1 000776 000000 HALT ; just halt on error
|
||||
2 001000 000000 HALT ; force3 word size, like in original
|
||||
3 001002 000000 HALT
|
||||
269 ;**************************************************************
|
||||
270
|
||||
271 001004 000277 TE5: SCC
|
||||
272 001006 106135 ROLB @(R5)+ ;(R0)=177401, CC=0000
|
||||
273 001010 101402 BLOS ROLB3 ;BRANCH IF C OR Z IS SET
|
||||
274 001012 102401 BVS ROLB3
|
||||
275 001014 100003 BPL TE6
|
||||
276 ROLB3:
|
||||
277 ;**************************************************************
|
||||
278 HRDER$,BEGIN,NULL ;
|
||||
1 001016 000000 HALT ; just halt on error
|
||||
2 001020 000000 HALT ; force3 word size, like in original
|
||||
3 001022 000000 HALT
|
||||
279 ;**************************************************************
|
||||
280
|
||||
281 001024 000352 TE6: SWAB @-(R2) ;(R0)=000777, C=1000
|
||||
282 001026 100403 BMI 1$
|
||||
283 ;**************************************************************
|
||||
284 HRDER$,BEGIN,NULL ;
|
||||
1 001030 000000 HALT ; just halt on error
|
||||
2 001032 000000 HALT ; force3 word size, like in original
|
||||
3 001034 000000 HALT
|
||||
285 ;**************************************************************
|
||||
286
|
||||
287 001036 000261 1$: SEC
|
||||
288 001040 105635 SBCB @(R5)+ ;(R0)=000377, CC=0100
|
||||
289 001042 103401 BCS SBCB3
|
||||
290 001044 001403 BEQ TE7
|
||||
291 SBCB3:
|
||||
292 ;**************************************************************
|
||||
293 HRDER$,BEGIN,NULL ;
|
||||
1 001046 000000 HALT ; just halt on error
|
||||
2 001050 000000 HALT ; force3 word size, like in original
|
||||
3 001052 000000 HALT
|
||||
294 ;**************************************************************
|
||||
295
|
||||
296 001054 105432 TE7: NEGB @(R2)+ ;(R0)=000001
|
||||
297 001056 105352 DECB @-(R2) ;(R0)=000000, CC=0101
|
||||
298 001060 103001 BCC DECB5
|
||||
299 001062 001403 BEQ B1
|
||||
300 DECB5:
|
||||
301 ;**************************************************************
|
||||
302 HRDER$,BEGIN,NULL ;
|
||||
1 001064 000000 HALT ; just halt on error
|
||||
2 001066 000000 HALT ; force3 word size, like in original
|
||||
3 001070 000000 HALT
|
||||
303 ;**************************************************************
|
||||
304
|
||||
305 ;CHECK BINARY WORD OPS USING ADDRESS MODES 3 & b5.
|
||||
306 001072 000404 B1: BR 1$ ; RESERVE SPACE FOR DATA AND ADDRESSES
|
||||
307 001074 000000 .WORD 0 ;CONTAINS ADDRESS OF SOURCE DATA
|
||||
308 001076 000000 .WORD 0 ;CONTAINS ADDRESS OF DEST DATA
|
||||
309 001100 000000 .WORD 0 ;CONTAINS SOURCE DATA
|
||||
310 001102 000000 .WORD 0 ;CONTAINS DEST DATA
|
||||
311 001104 010701 1$: MOV PC,R1
|
||||
312 001106 010100 MOV R1,R0 ;SET SCOPE PTR
|
||||
313 001110 024040 CMP -(R0),-(R0) ;ADJUST R0
|
||||
314 001112 010005 MOV R0,R5 ;R5 POINTS TO DEST DATA
|
||||
315 001114 024545 CMP -(R5),-(R5) ;SUB 4 FROM R5
|
||||
316 001116 010015 MOV R0,(R5) ;R5 POINTS TO ADDRESS OF DEST DATA
|
||||
317 001120 010502 MOV R5,R2
|
||||
318 001122 010004 MOV R0,R4 ;R4 POINTS TO DEST DATA
|
||||
319 001124 005740 TST -(R0)
|
||||
320 001126 010003 MOV R0,R3 ;R3 POINTS TO SOURCE DATA
|
||||
321 001130 010042 MOV R0,-(R2) ;R2 POINTS TO ADDRESS OF SOURCE DATA
|
||||
322 001132 005013 CLR (R3) ;PRESET SOURCE DATA
|
||||
323 001134 005014 CLR (R4) ;PRESET DEST DATA
|
||||
324
|
||||
325 001136 000277 SCC
|
||||
326 001140 000244 CLZ
|
||||
327 001142 163235 SUB @(R2)+,@(R5)+ ;(R3)=000000,(R4)=000000, CC=0100
|
||||
328 001144 103402 BCS SUB3
|
||||
329 001146 102401 BVS SUB3
|
||||
330 001150 001403 BEQ H3
|
||||
331 SUB3:
|
||||
332 ;**************************************************************
|
||||
333 HRDER$,BEGIN,NULL ;
|
||||
1 001152 000000 HALT ; just halt on error
|
||||
2 001154 000000 HALT ; force3 word size, like in original
|
||||
3 001156 000000 HALT
|
||||
334 ;**************************************************************
|
||||
335
|
||||
336 001160 052752 100000 H3: BIS #100000,@-(R2) ;(R3)=100000
|
||||
337 001164 062755 000001 ADD #1,@-(R5) ;(R4)=000001
|
||||
338 001170 163235 SUB @(R2)+,@(R5)+ ;(R3)=100000,(R4)=10001, CC=1011
|
||||
339 001172 103002 BCC SUB3A
|
||||
340 001174 102001 BVC SUB3A
|
||||
341 001176 100403 BMI H4
|
||||
342 SUB3A:
|
||||
343 ;**************************************************************
|
||||
344 HRDER$,BEGIN,NULL ;
|
||||
1 001200 000000 HALT ; just halt on error
|
||||
2 001202 000000 HALT ; force3 word size, like in original
|
||||
3 001204 000000 HALT
|
||||
345 ;**************************************************************
|
||||
346
|
||||
347 001206 005414 H4: NEG (R4) ;(R4)=077777
|
||||
348 001210 035255 BIT @-(R2),@-(R5) ;(R3)=100000,(R4)=077777
|
||||
349 001212 001403 BEQ 1$
|
||||
350 ;**************************************************************
|
||||
351 HRDER$,BEGIN,NULL ;
|
||||
1 001214 000000 HALT ; just halt on error
|
||||
2 001216 000000 HALT ; force3 word size, like in original
|
||||
3 001220 000000 HALT
|
||||
352 ;**************************************************************
|
||||
353
|
||||
354 001222 023235 1$: CMP @(R2)+,@(R5)+
|
||||
355 001224 102403 BVS 2$
|
||||
356 ;**************************************************************
|
||||
357 HRDER$,BEGIN,NULL ;
|
||||
1 001226 000000 HALT ; just halt on error
|
||||
2 001230 000000 HALT ; force3 word size, like in original
|
||||
3 001232 000000 HALT
|
||||
358 ;**************************************************************
|
||||
359
|
||||
360 001234 005152 2$: COM @-(R2)
|
||||
361 001236 000257 CCC
|
||||
362 001240 063255 ADD @(R2)+,@-(R5)
|
||||
363 001242 102001 BVC ADD3
|
||||
364 001244 100403 BMI H41
|
||||
365 ADD3:
|
||||
366 ;**************************************************************
|
||||
367 HRDER$,BEGIN,NULL ;
|
||||
1 001246 000000 HALT ; just halt on error
|
||||
2 001250 000000 HALT ; force3 word size, like in original
|
||||
3 001252 000000 HALT
|
||||
368 ;**************************************************************
|
||||
369
|
||||
370 001254 000261 H41: SEC
|
||||
371 001256 045235 BIC @-(R2),@(R5)+ ;(R3)=077777,(R4)=100000
|
||||
372 001260 103001 BCC BIC3
|
||||
373 001262 100403 BMI H5
|
||||
374 BIC3:
|
||||
375 ;**************************************************************
|
||||
376 HRDER$,BEGIN,NULL ;
|
||||
1 001264 000000 HALT ; just halt on error
|
||||
2 001266 000000 HALT ; force3 word size, like in original
|
||||
3 001270 000000 HALT
|
||||
377 ;**************************************************************
|
||||
378
|
||||
379 001272 005155 H5: COM @-(R5) ;(R4)=077777
|
||||
380 001274 023235 CMP @(R2)+,@(R5)+ ;(R3)=077777,(R4)=077777
|
||||
381 001276 001403 BEQ H6
|
||||
382 ;**************************************************************
|
||||
383 HRDER$,BEGIN,NULL ;
|
||||
1 001300 000000 HALT ; just halt on error
|
||||
2 001302 000000 HALT ; force3 word size, like in original
|
||||
3 001304 000000 HALT
|
||||
384 ;**************************************************************
|
||||
385
|
||||
386 ;CHECK BINARY BYTE OPS USING ADDRESS MODES 3 & 5
|
||||
387 001306 000406 H6: BR 1$ ;RESERVE SPACE FOR ADDRESSES & DATA
|
||||
388 001310 000000 .WORD 0 ;CONTAINS ADDRESS OF SOURCE DATA (EVEN BYTE)
|
||||
389 001312 000000 .WORD 0 ;CONTAINS ADDRESS OF SOURCE DATA (ODD BYTE)
|
||||
390 001314 000000 .WORD 0 ;CONTAINS ADDRESS OF DEST DATA (EVEN BYTE)
|
||||
391 001316 000000 .WORD 0 ;CONTAINS ADDRESS OF DEST DATA (ODD BYTE)
|
||||
392 001320 000000 .WORD 0 ;CONTAINS SOURCE DATA
|
||||
393 001322 000000 .WORD 0 ;CONTAINS DEST DATA
|
||||
394 001324 010700 1$: MOV PC,R0
|
||||
395 001326 024040 CMP -(R0),-(R0) ;R0=ADDRESS OF DEST DATA
|
||||
396 001330 010003 MOV R0,R3 ;R3 " "
|
||||
397 001332 010305 MOV R3,R5 ;R3 " "
|
||||
398 001334 005743 TST -(R3) ; SUB2 FROm R3
|
||||
399 001336 010043 MOV R0,-(R3) ;R3 POINTS TO ADDRESS OF DEST DATA
|
||||
400 001340 005213 INC (R3) ;ODD BYTE
|
||||
401 001342 010043 MOV R0,-(R3) ;EVEN BYTE
|
||||
402 001344 010304 MOV R3,R4
|
||||
403 001346 005740 TST -(R0) ;R0=ADDRESS OF SOURCE DATA
|
||||
404 001350 010044 MOV R0,-(R4) ;R4 POINTS TO ADDRESS OF SOURCE DATA
|
||||
405 001352 005214 INC (R4) ;ODD BYTE
|
||||
406 001354 010044 MOV R0,-(R4) ;EVEN BYTE
|
||||
407
|
||||
408 001356 000261 SEC ;SET CARRY
|
||||
409 001360 012734 177001 MOV #177001,@(R4)+
|
||||
410 001364 112734 000200 MOVB #200,@(R4)+ ;SOURCE DATA=100001
|
||||
411 001370 115433 MOVB @-(R4),@(R3)+ ;
|
||||
412 001372 115433 MOVB @-(R4),@(R3)+ ;DEST DATA=000600
|
||||
413 001374 103403 BCS 2$
|
||||
414 ;**************************************************************
|
||||
415 HRDER$,BEGIN,NULL ;
|
||||
1 001376 000000 HALT ; just halt on error
|
||||
2 001400 000000 HALT ; force3 word size, like in original
|
||||
3 001402 000000 HALT
|
||||
416 ;**************************************************************
|
||||
417
|
||||
418 001404 022715 000600 2$: CMP #600,(R5) ;CHECK DEST DATA
|
||||
419 001410 001403 BEQ 3$
|
||||
420 ;**************************************************************
|
||||
421 HRDER$,BEGIN,NULL ;
|
||||
1 001412 000000 HALT ; just halt on error
|
||||
2 001414 000000 HALT ; force3 word size, like in original
|
||||
3 001416 000000 HALT
|
||||
422 ;**************************************************************
|
||||
423
|
||||
424 001420 024343 3$: CMP -(R3),-(R3) ;POINT R4 BACK TO EVEN BYTE
|
||||
425 001422 153433 BISB @(R4)+,@(R3)+
|
||||
426 001424 153433 BISB @(R4)+,@(R3)+ ;DEST DATA=100601
|
||||
427 001426 022715 100601 CMP #100601,(R5) ;CHECK RESULT
|
||||
428 001432 001403 BEQ 4$
|
||||
429 ;**************************************************************
|
||||
430 HRDER$,BEGIN,NULL ;
|
||||
1 001434 000000 HALT ; just halt on error
|
||||
2 001436 000000 HALT ; force3 word size, like in original
|
||||
3 001440 000000 HALT
|
||||
431 ;**************************************************************
|
||||
432
|
||||
433 001442 145453 4$: BICB @-(R4),@-(R3)
|
||||
434 001444 145453 BICB @-(R4),@-(R3)
|
||||
435 001446 133433 BITB @(R4)+,@(R3)+
|
||||
436 001450 001002 BNE BITB3
|
||||
437 001452 135433 BITB @-(R4),@(R3)+
|
||||
438 001454 001003 BNE H7
|
||||
439 BITB3:
|
||||
440 ;**************************************************************
|
||||
441 HRDER$,BEGIN,NULL ;
|
||||
1 001456 000000 HALT ; just halt on error
|
||||
2 001460 000000 HALT ; force3 word size, like in original
|
||||
3 001462 000000 HALT
|
||||
442 ;**************************************************************
|
||||
443
|
||||
444 001464 123453 H7: CMPB @(R4)+,@-(R3)
|
||||
445 001466 001002 BNE CMPB3
|
||||
446 001470 123453 CMPB @(R4)+,@-(R3)
|
||||
447 001472 001403 BEQ JP1
|
||||
448 CMPB3:
|
||||
449 ;**************************************************************
|
||||
450 HRDER$,BEGIN,NULL ;
|
||||
1 001474 000000 HALT ; just halt on error
|
||||
2 001476 000000 HALT ; force3 word size, like in original
|
||||
3 001500 000000 HALT
|
||||
451 ;**************************************************************
|
||||
452
|
||||
453 ;CHECK JUMP INSTRUCTIONS
|
||||
454 001502 010700 JP1: MOV PC,R0
|
||||
455 001504 062700 000012 ADD #12,R0 ;SET ADDRESS FOR JUMP INST
|
||||
456 001510 000277 SCC
|
||||
XCPA.mac:457: ***ERROR JMP Rn is illegal
|
||||
457 001512 000110 JMP (R0)
|
||||
458 001514 000402 2$: BR 3$
|
||||
459 001516 000250 CLN ;JMP INST JUMPS HERE
|
||||
460 001520 000775 BR 2$
|
||||
461
|
||||
462 001522 103003 3$: BCC JMP1
|
||||
463 001524 102002 BVC JMP1
|
||||
464 001526 001001 BNE JMP1
|
||||
465 001530 100003 BPL K2
|
||||
466 JMP1:
|
||||
467 ;**************************************************************
|
||||
468 HRDER$,BEGIN,NULL ;
|
||||
1 001532 000000 HALT ; just halt on error
|
||||
2 001534 000000 HALT ; force3 word size, like in original
|
||||
3 001536 000000 HALT
|
||||
469 ;**************************************************************
|
||||
470
|
||||
471 001540 005002 K2: CLR R2 ;SET INDICATOR
|
||||
472 001542 010704 MOV PC,R4 ;SET UP JUMP REGISTER
|
||||
473 001544 010400 MOV R4,R0 ;SET UP CHECK REGISTER
|
||||
474 001546 000402 BR 1$
|
||||
475 001550 005102 COM R2 ;COMPLEMENT INDICATOR
|
||||
476 001552 000403 BR 2$
|
||||
477 001554 022424 1$: CMP (R4)+,(R4)+
|
||||
478 001556 005724 TST (R4)+ ;R4=JMP ADDRESS
|
||||
479 001560 000144 JMP -(R4) ;USE R4 AS ADDRESS
|
||||
480 001562 005202 2$: INC R2 ;CHECK INDICATOR
|
||||
481 001564 001003 BNE JMP4
|
||||
482 001566 022020 CMP (R0)+,(R0)+
|
||||
483 001570 020004 CMP R0,R4 ;CHECK AUTO-DEC R4
|
||||
484 001572 001403 BEQ JSRTST
|
||||
485 JMP4:
|
||||
486 ;**************************************************************
|
||||
487 HRDER$,BEGIN,NULL ;
|
||||
1 001574 000000 HALT ; just halt on error
|
||||
2 001576 000000 HALT ; force3 word size, like in original
|
||||
3 001600 000000 HALT
|
||||
488 ;**************************************************************
|
||||
489
|
||||
490 ;CHECK JSR INSTRUCTIONS
|
||||
491 001602 012702 001624 JSRTST: MOV #3$,R2 ;FORM DEST ADRS
|
||||
492 001606 000277 SCC ;PRESET CC'S
|
||||
493 001610 000242 CLV
|
||||
494 001612 004512 JSR R5,(R2) ;GO TO 3$ VIA R2
|
||||
495 001614 005702 1$: TST R2 ;CHECK INDICATOR
|
||||
496 001616 001012 BNE JSR1 ;R2 SHOULD=0
|
||||
497 001620 000414 BR EX
|
||||
498 001622 000205 2$: RTS R5 ;RETURN FROM SUB ROUTINE
|
||||
499 001624 103007 3$: BCC JSR1 ;CHECK THAT JSR DID NOT
|
||||
500 001626 102406 BVS JSR1
|
||||
501 001630 001005 BNE JSR1 ;AFFECT CC'S
|
||||
502 001632 100004 BPL JSR1
|
||||
503 001634 005002 CLR R2 ;CLEAR INDICATOR
|
||||
504 001636 012704 001614 MOV #1$,R4 ;GET RETURN ADDRESS
|
||||
505 001642 000767 BR 2$
|
||||
506 JSR1:
|
||||
507 ;**************************************************************
|
||||
508 HRDER$,BEGIN,NULL ;
|
||||
1 001644 000000 HALT ; just halt on error
|
||||
2 001646 000000 HALT ; force3 word size, like in original
|
||||
3 001650 000000 HALT
|
||||
509 ;**************************************************************
|
||||
510
|
||||
511 EX:
|
||||
512 ; ENDIT$,BEGIN ;SIGNAL END OF ITERATION
|
||||
513 ;MONITOR SHALL TEst END OF PASS
|
||||
514 001652 000000 HALT
|
||||
515 001654 000137 000224 ST: JMP RESTRT
|
||||
516
|
||||
517
|
||||
518 ; stack area has to be beyond 000400
|
||||
519 .REPT SPSIZ ;MODULE STACK STARTS HERE
|
||||
520 .NLIST
|
||||
521 .WORD 0
|
||||
522 .LIST
|
||||
523 .ENDR
|
||||
1 .NLIST
|
||||
2 001660 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001662 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001664 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001666 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001670 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001672 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001674 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001676 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001700 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001702 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001704 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001706 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001710 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001712 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001714 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001716 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001720 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001722 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001724 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001726 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001730 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001732 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001734 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001736 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001740 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001742 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001744 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001746 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001750 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001752 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001754 000000 .WORD 0
|
||||
3 .LIST
|
||||
1 .NLIST
|
||||
2 001756 000000 .WORD 0
|
||||
3 .LIST
|
||||
524 MODSP: ; module stack base
|
||||
525
|
||||
526
|
||||
527 .END
|
||||
527
|
||||
Loading…
Reference in a new issue