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
13
apps/pdp11/diags/cpu/README.md
Normal file
13
apps/pdp11/diags/cpu/README.md
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
---
|
||||
layout: page
|
||||
title: PDP-11 CPU Diagnostics
|
||||
permalink: /apps/pdp11/diags/cpu/
|
||||
---
|
||||
|
||||
PDP-11 CPU Diagnostics
|
||||
----------------------
|
||||
|
||||
DEC published a variety of PDP-11 CPU diagnostics:
|
||||
|
||||
* [XCPA](XCPA.mac) (from [RETROCMP](http://www.retrocmp.com/images/stories/joerg/pdp11_diagnostic_database//resourcefiles/set0/AC-E664G-MC_CXCPAG_Processor_Test_Sep78.mac), extracted from [PDF](http://bitsavers.org/pdf/dec/pdp11/xxdp/x11_listings/AC-E664G-MC_CXCPAG0-Processor-test_Sep78.pdf))
|
||||
|
||||
58
apps/pdp11/diags/cpu/XCPA.json
Normal file
58
apps/pdp11/diags/cpu/XCPA.json
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
{"load":0x0000 /*000000*/,"exec":0x0000 /*000000*/,
|
||||
"words":[
|
||||
0x0090 /*000220*/,0x03F0 /*001760*/,0x0000 /*000000*/,0x17C6 /*013706*/,0x0002 /*000002*/,0x00AF /*000257*/,0x8707 /*103407*/,0x8506 /*102406*/,
|
||||
0x0305 /*001405*/,0x8104 /*100404*/,0x0503 /*002403*/,0x0702 /*003402*/,0x8301 /*101401*/,0x8203 /*101003*/,0x0000 /*000000*/,0x0000 /*000000*/,
|
||||
0x0000 /*000000*/,0x00B2 /*000262*/,0x00B8 /*000270*/,0x8403 /*102003*/,0x0502 /*002402*/,0x0701 /*003401*/,0x0403 /*002003*/,0x0000 /*000000*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x00B4 /*000264*/,0x00B1 /*000261*/,0x0203 /*001003*/,0x0602 /*003002*/,0x8201 /*101001*/,0x0703 /*003403*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0102 /*000402*/,0x0000 /*000000*/,0x0000 /*000000*/,0x11C3 /*010703*/,0xE5C3 /*162703*/,
|
||||
0x0004 /*000004*/,0x0A0B /*005013*/,0x10C0 /*010300*/,0x0BE3 /*005743*/,0x100B /*010013*/,0x10C4 /*010304*/,0x00AF /*000257*/,0x0BDB /*005733*/,
|
||||
0x0303 /*001403*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x00B1 /*000261*/,0x0C2B /*006053*/,0x8702 /*103402*/,0x8401 /*102001*/,
|
||||
0x8103 /*100403*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x00AF /*000257*/,0x0C9C /*006234*/,0x8401 /*102001*/,0x8103 /*100403*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x00A8 /*000250*/,0x0CDB /*006333*/,0x8602 /*103002*/,0x8501 /*102401*/,0x8103 /*100403*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x00BF /*000277*/,0x0AEC /*005354*/,0x8603 /*103003*/,0x8402 /*102002*/,0x0301 /*001401*/,
|
||||
0x8003 /*100003*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0B2B /*005453*/,0x8602 /*103002*/,0x8501 /*102401*/,0x8103 /*100403*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x00B2 /*000262*/,0x0A5C /*005134*/,0x8601 /*103001*/,0x8403 /*102003*/,0x0000 /*000000*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x0A9B /*005233*/,0x8601 /*103001*/,0x8003 /*100003*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,
|
||||
0x0B6C /*005554*/,0x8702 /*103402*/,0x8401 /*102001*/,0x8103 /*100403*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x00AF /*000257*/,
|
||||
0x0C5C /*006134*/,0x8602 /*103002*/,0x8401 /*102001*/,0x0303 /*001403*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0AAB /*005253*/,
|
||||
0x0BAC /*005654*/,0x8701 /*103401*/,0x0303 /*001403*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0103 /*000403*/,0x0000 /*000000*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x11C2 /*010702*/,0x0BE2 /*005742*/,0x0BE2 /*005742*/,0x1080 /*010200*/,0x0A08 /*005010*/,0x0BE2 /*005742*/,
|
||||
0x0BE2 /*005742*/,0x1012 /*010022*/,0x0A80 /*005200*/,0x1012 /*010022*/,0x1080 /*010200*/,0x1085 /*010205*/,0x8A6A /*105152*/,0x8601 /*103001*/,
|
||||
0x8103 /*100403*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x8BEA /*105752*/,0x0303 /*001403*/,0x0000 /*000000*/,0x0000 /*000000*/,
|
||||
0x0000 /*000000*/,0x00B2 /*000262*/,0x8CAD /*106255*/,0x8602 /*103002*/,0x8501 /*102401*/,0x8103 /*100403*/,0x0000 /*000000*/,0x0000 /*000000*/,
|
||||
0x0000 /*000000*/,0x8A9A /*105232*/,0x8601 /*103001*/,0x8003 /*100003*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x00A1 /*000241*/,
|
||||
0x8C2D /*106055*/,0x8603 /*103003*/,0x8402 /*102002*/,0x0201 /*001001*/,0x8003 /*100003*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,
|
||||
0x8CDA /*106332*/,0x8602 /*103002*/,0x8501 /*102401*/,0x8103 /*100403*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x8B6A /*105552*/,
|
||||
0x8701 /*103401*/,0x8103 /*100403*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x00BF /*000277*/,0x8C5D /*106135*/,0x8302 /*101402*/,
|
||||
0x8501 /*102401*/,0x8003 /*100003*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x00EA /*000352*/,0x8103 /*100403*/,0x0000 /*000000*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x00B1 /*000261*/,0x8B9D /*105635*/,0x8701 /*103401*/,0x0303 /*001403*/,0x0000 /*000000*/,0x0000 /*000000*/,
|
||||
0x0000 /*000000*/,0x8B1A /*105432*/,0x8AEA /*105352*/,0x8601 /*103001*/,0x0303 /*001403*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,
|
||||
0x0104 /*000404*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x11C1 /*010701*/,0x1040 /*010100*/,0x2820 /*024040*/,
|
||||
0x1005 /*010005*/,0x2965 /*024545*/,0x100D /*010015*/,0x1142 /*010502*/,0x1004 /*010004*/,0x0BE0 /*005740*/,0x1003 /*010003*/,0x1022 /*010042*/,
|
||||
0x0A0B /*005013*/,0x0A0C /*005014*/,0x00BF /*000277*/,0x00A4 /*000244*/,0xE69D /*163235*/,0x8702 /*103402*/,0x8501 /*102401*/,0x0303 /*001403*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x55EA /*052752*/,0x8000 /*100000*/,0x65ED /*062755*/,0x0001 /*000001*/,0xE69D /*163235*/,
|
||||
0x8602 /*103002*/,0x8401 /*102001*/,0x8103 /*100403*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0B0C /*005414*/,0x3AAD /*035255*/,
|
||||
0x0303 /*001403*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x269D /*023235*/,0x8503 /*102403*/,0x0000 /*000000*/,0x0000 /*000000*/,
|
||||
0x0000 /*000000*/,0x0A6A /*005152*/,0x00AF /*000257*/,0x66AD /*063255*/,0x8401 /*102001*/,0x8103 /*100403*/,0x0000 /*000000*/,0x0000 /*000000*/,
|
||||
0x0000 /*000000*/,0x00B1 /*000261*/,0x4A9D /*045235*/,0x8601 /*103001*/,0x8103 /*100403*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,
|
||||
0x0A6D /*005155*/,0x269D /*023235*/,0x0303 /*001403*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0106 /*000406*/,0x0000 /*000000*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x11C0 /*010700*/,0x2820 /*024040*/,0x1003 /*010003*/,
|
||||
0x10C5 /*010305*/,0x0BE3 /*005743*/,0x1023 /*010043*/,0x0A8B /*005213*/,0x1023 /*010043*/,0x10C4 /*010304*/,0x0BE0 /*005740*/,0x1024 /*010044*/,
|
||||
0x0A8C /*005214*/,0x1024 /*010044*/,0x00B1 /*000261*/,0x15DC /*012734*/,0xFE01 /*177001*/,0x95DC /*112734*/,0x0080 /*000200*/,0x9B1B /*115433*/,
|
||||
0x9B1B /*115433*/,0x8703 /*103403*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x25CD /*022715*/,0x0180 /*000600*/,0x0303 /*001403*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x28E3 /*024343*/,0xD71B /*153433*/,0xD71B /*153433*/,0x25CD /*022715*/,0x8181 /*100601*/,
|
||||
0x0303 /*001403*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0xCB2B /*145453*/,0xCB2B /*145453*/,0xB71B /*133433*/,0x0202 /*001002*/,
|
||||
0xBB1B /*135433*/,0x0203 /*001003*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0xA72B /*123453*/,0x0202 /*001002*/,0xA72B /*123453*/,
|
||||
0x0303 /*001403*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x11C0 /*010700*/,0x65C0 /*062700*/,0x000A /*000012*/,0x00BF /*000277*/,
|
||||
0x0048 /*000110*/,0x0102 /*000402*/,0x00A8 /*000250*/,0x01FD /*000775*/,0x8603 /*103003*/,0x8402 /*102002*/,0x0201 /*001001*/,0x8003 /*100003*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0A02 /*005002*/,0x11C4 /*010704*/,0x1100 /*010400*/,0x0102 /*000402*/,0x0A42 /*005102*/,
|
||||
0x0103 /*000403*/,0x2514 /*022424*/,0x0BD4 /*005724*/,0x0064 /*000144*/,0x0A82 /*005202*/,0x0203 /*001003*/,0x2410 /*022020*/,0x2004 /*020004*/,
|
||||
0x0303 /*001403*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x15C2 /*012702*/,0x0394 /*001624*/,0x00BF /*000277*/,0x00A2 /*000242*/,
|
||||
0x094A /*004512*/,0x0BC2 /*005702*/,0x020A /*001012*/,0x010C /*000414*/,0x0085 /*000205*/,0x8607 /*103007*/,0x8506 /*102406*/,0x0205 /*001005*/,
|
||||
0x8004 /*100004*/,0x0A02 /*005002*/,0x15C4 /*012704*/,0x038C /*001614*/,0x01F7 /*000767*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,
|
||||
0x0000 /*000000*/,0x005F /*000137*/,0x0094 /*000224*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/,
|
||||
0x0000 /*000000*/,0x0000 /*000000*/,0x0000 /*000000*/]
|
||||
}
|
||||
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
|
||||
527
apps/pdp11/diags/cpu/XCPA.mac
Normal file
527
apps/pdp11/diags/cpu/XCPA.mac
Normal file
|
|
@ -0,0 +1,527 @@
|
|||
.title AC-E664G-MC_CXCPAG0-Processor-test_Sep78
|
||||
;
|
||||
; original code OCRed from
|
||||
; http://www.bitsavers.org/pdf/dec/pdp11/xxdp/listings/AC-E664G-MC_CXCPAG0-Processor-test_Sep78.pdf
|
||||
;
|
||||
; Changed to run standalone without monitor
|
||||
; JH
|
||||
|
||||
.LIST BIN
|
||||
.ENABLE AMA ; relocatable addresses as absolute
|
||||
|
||||
;**********************************************************************
|
||||
.asect
|
||||
|
||||
SPSIZ=040 ; stack size
|
||||
|
||||
; is called on every error
|
||||
.MACRO HRDER$
|
||||
HALT ; just halt on error
|
||||
HALT ; force3 word size, like in original
|
||||
HALT
|
||||
.ENDM
|
||||
|
||||
;MODNAM: .ASCII /CPAG / ;MODULE NAME
|
||||
;**********************************************************************
|
||||
INIT: START ;MODULE START ADDRE.
|
||||
SPOINT: MODSP ;MODULE STACK POINTER.
|
||||
PASCNT: 0 ;PASS COUNTER.
|
||||
|
||||
|
||||
.=220 ; generate same addresses as in original
|
||||
|
||||
|
||||
|
||||
START:
|
||||
MOV SPOINT,SP ; load stack pointer
|
||||
|
||||
|
||||
;**********************************************************************
|
||||
;CHECK BRANCH INSTRUCTIONS
|
||||
RESTRT: CCC
|
||||
BCS CC0
|
||||
BVS CC0
|
||||
BEQ CC0
|
||||
BMI CC0
|
||||
BLT CC0
|
||||
BLE CC0
|
||||
BLOS CC0
|
||||
BHI CON1
|
||||
CC0:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
;CONTINUE
|
||||
CON1: SEV ;CC'S=1010
|
||||
SEN
|
||||
BVC CC2
|
||||
BLT CC2
|
||||
BLE CC2
|
||||
BGE CON3
|
||||
CC2:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
;CONTINUE
|
||||
CON3: SEZ ;CC'S=1111
|
||||
SEC
|
||||
BNE CC4
|
||||
BGT CC4
|
||||
BHI CC4
|
||||
BLE YT15:
|
||||
CC4:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
|
||||
|
||||
|
||||
;CHECK UNARY WORD OPS USING ADDRESS MODES 3 AND 5
|
||||
YT15: BR 1$
|
||||
.WORD 0
|
||||
.WORD 0
|
||||
1$: MOV PC,R3
|
||||
SUB #4,R3
|
||||
CLR (R3)
|
||||
MOV R3,R0
|
||||
TST -(R3)
|
||||
MOV R0,(R3)
|
||||
MOV R3,R4
|
||||
CCC
|
||||
TST @(R3)+ ;(R0)=000000,CC=0100
|
||||
BEQ 2$
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
2$: SEC
|
||||
ROR @-(R3) ;(R0)=100000,CC=0101
|
||||
BCS ROR5
|
||||
BVC ROR5
|
||||
BMI RD
|
||||
ROR5:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
RD: CCC
|
||||
ASR @(R4)+ ;(R0)=140000,CC=1010
|
||||
BVC ASR3
|
||||
BMI RD1
|
||||
ASR3:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
RD1: CLN
|
||||
ASL @(R3)+ ;(R0)=100000,CC=1001
|
||||
BCC ASL3
|
||||
BVS ASL3
|
||||
BMI RD2
|
||||
ASL3:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
RD2: SCC
|
||||
DEC @-(R4) ;(R0)=077777,CC=0010
|
||||
BCC DEC5
|
||||
BVC DEC5
|
||||
BEQ DEC5
|
||||
BPL RD3
|
||||
DEC5:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
RD3: NEG @-(R3) ;(R0)=100001, C=1001
|
||||
BCC NEG5
|
||||
BVS NEG5
|
||||
BMI RD4
|
||||
NEG5:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
RD4: SEV
|
||||
COM @(R4)+ ;(R0)=077776, C=0001
|
||||
BCC COM3
|
||||
BVC RD5
|
||||
COM3:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
RD5: INC @(R3)+ ;(R0)=077777, C=0001
|
||||
BCC INC3
|
||||
BPL RD6
|
||||
INC3:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
RD6: ADC @-(R4) ;(R0)=100000, C=1010
|
||||
BCS ADC5
|
||||
BVC ADC5
|
||||
BMI RD7
|
||||
ADC5:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
RD7: CCC
|
||||
ROL @(R4)+ ;(R0)=000000, C=0111
|
||||
BCC ROL3
|
||||
BVC ROL3
|
||||
BEQ RD8
|
||||
ROL3:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
RD8: INC @-(R3) ;(R0)=000001, C=0001
|
||||
SBC @-(R4) ;(R0)=000000, C=0100
|
||||
BCS SBC5
|
||||
BEQ RD9
|
||||
SBC5:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
;CHECK UNARY BYTE OPS USING ADDRESS MODES 3 AND 4
|
||||
RD9: BR 1$ ; RESERVE 3 WORDS
|
||||
.WORD 0 ;1 FOR EVEN BYTE ADDRESS
|
||||
.WORD 0 ;1 FOR ODD BYTE ADDRESS
|
||||
.WORD 0 ;AND 1 FOR DATA
|
||||
1$: MOV PC,R2
|
||||
TST -(R2) ;BACK R2 UP TO
|
||||
TST -(R2) ;DATA WORD
|
||||
MOV R2,R0 ;R0 POINTS TO THE DATA WORD
|
||||
CLR (R0) ;PRESET DATA
|
||||
TST -(R2) ;BACK R2 UP TO
|
||||
TST -(R2) ;EVEN BYTE ADDRESS WORD
|
||||
MOV R0,(R2)+ ;LOAD ADDRESS
|
||||
INC R0 ;ODD BYTE ADDRESS
|
||||
MOV R0,(R2)+ ;LOAD ODD BYTE ADDRESS
|
||||
MOV R2,R0 ;RESET R0
|
||||
MOV R2,R5
|
||||
|
||||
COMB @-(R2) ;(R0)=177400, CC=1001
|
||||
BCC COMB5
|
||||
BMI TE
|
||||
COMB5:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
TE: TSTB @-(R2) ;(R0)=177400, CC=0100
|
||||
BEQ 1$
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
1$: SEV
|
||||
ASRB @-(R5) ;(R0)=177400, CC=1001
|
||||
BCC ASRB5
|
||||
BVS ASRB5
|
||||
BMI TE1
|
||||
ASRB5:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
TE1: INCB @(R2)+ ;(R0)=177401, CC=000
|
||||
BCC INCB3
|
||||
BPL TE2
|
||||
INCB3:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
TE2: CLC
|
||||
RORB @-(R5) ;(R0)=177400, CC=0111
|
||||
BCC RORB5
|
||||
BVC RORB5
|
||||
BNE RORB5
|
||||
BPL TE3
|
||||
RORB5:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
TE3: ASLB @(R2)+ ;(R0)=177000, CC=1001
|
||||
BCC ASLB3
|
||||
BVS ASLB3
|
||||
BMI TE4
|
||||
ASLB3:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
TE4: ADCB @-(R2) ;(R0)=177400, CC=1000
|
||||
BCS ADCB5
|
||||
BMI TE5:
|
||||
ADCB5:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
TE5: SCC
|
||||
ROLB @(R5)+ ;(R0)=177401, CC=0000
|
||||
BLOS ROLB3 ;BRANCH IF C OR Z IS SET
|
||||
BVS ROLB3
|
||||
BPL TE6
|
||||
ROLB3:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
TE6: SWAB @-(R2) ;(R0)=000777, C=1000
|
||||
BMI 1$
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
1$: SEC
|
||||
SBCB @(R5)+ ;(R0)=000377, CC=0100
|
||||
BCS SBCB3
|
||||
BEQ TE7
|
||||
SBCB3:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
TE7: NEGB @(R2)+ ;(R0)=000001
|
||||
DECB @-(R2) ;(R0)=000000, CC=0101
|
||||
BCC DECB5
|
||||
BEQ B1
|
||||
DECB5:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
;CHECK BINARY WORD OPS USING ADDRESS MODES 3 & b5.
|
||||
B1: BR 1$ ; RESERVE SPACE FOR DATA AND ADDRESSES
|
||||
.WORD 0 ;CONTAINS ADDRESS OF SOURCE DATA
|
||||
.WORD 0 ;CONTAINS ADDRESS OF DEST DATA
|
||||
.WORD 0 ;CONTAINS SOURCE DATA
|
||||
.WORD 0 ;CONTAINS DEST DATA
|
||||
1$: MOV PC,R1
|
||||
MOV R1,R0 ;SET SCOPE PTR
|
||||
CMP -(R0),-(R0) ;ADJUST R0
|
||||
MOV R0,R5 ;R5 POINTS TO DEST DATA
|
||||
CMP -(R5),-(R5) ;SUB 4 FROM R5
|
||||
MOV R0,(R5) ;R5 POINTS TO ADDRESS OF DEST DATA
|
||||
MOV R5,R2
|
||||
MOV R0,R4 ;R4 POINTS TO DEST DATA
|
||||
TST -(R0)
|
||||
MOV R0,R3 ;R3 POINTS TO SOURCE DATA
|
||||
MOV R0,-(R2) ;R2 POINTS TO ADDRESS OF SOURCE DATA
|
||||
CLR (R3) ;PRESET SOURCE DATA
|
||||
CLR (R4) ;PRESET DEST DATA
|
||||
|
||||
SCC
|
||||
CLZ
|
||||
SUB @(R2)+,@(R5)+ ;(R3)=000000,(R4)=000000, CC=0100
|
||||
BCS SUB3
|
||||
BVS SUB3
|
||||
BEQ H3
|
||||
SUB3:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
H3: BIS #100000,@-(R2) ;(R3)=100000
|
||||
ADD #1,@-(R5) ;(R4)=000001
|
||||
SUB @(R2)+,@(R5)+ ;(R3)=100000,(R4)=10001, CC=1011
|
||||
BCC SUB3A
|
||||
BVC SUB3A
|
||||
BMI H4
|
||||
SUB3A:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
H4: NEG (R4) ;(R4)=077777
|
||||
BIT @-(R2),@-(R5) ;(R3)=100000,(R4)=077777
|
||||
BEQ 1$
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
1$: CMP @(R2)+,@(R5)+
|
||||
BVS 2$
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
2$: COM @-(R2)
|
||||
CCC
|
||||
ADD @(R2)+,@-(R5)
|
||||
BVC ADD3
|
||||
BMI H41
|
||||
ADD3:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
H41: SEC
|
||||
BIC @-(R2),@(R5)+ ;(R3)=077777,(R4)=100000
|
||||
BCC BIC3
|
||||
BMI H5
|
||||
BIC3:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
H5: COM @-(R5) ;(R4)=077777
|
||||
CMP @(R2)+,@(R5)+ ;(R3)=077777,(R4)=077777
|
||||
BEQ H6
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
;CHECK BINARY BYTE OPS USING ADDRESS MODES 3 & 5
|
||||
H6: BR 1$ ;RESERVE SPACE FOR ADDRESSES & DATA
|
||||
.WORD 0 ;CONTAINS ADDRESS OF SOURCE DATA (EVEN BYTE)
|
||||
.WORD 0 ;CONTAINS ADDRESS OF SOURCE DATA (ODD BYTE)
|
||||
.WORD 0 ;CONTAINS ADDRESS OF DEST DATA (EVEN BYTE)
|
||||
.WORD 0 ;CONTAINS ADDRESS OF DEST DATA (ODD BYTE)
|
||||
.WORD 0 ;CONTAINS SOURCE DATA
|
||||
.WORD 0 ;CONTAINS DEST DATA
|
||||
1$: MOV PC,R0
|
||||
CMP -(R0),-(R0) ;R0=ADDRESS OF DEST DATA
|
||||
MOV R0,R3 ;R3 " "
|
||||
MOV R3,R5 ;R3 " "
|
||||
TST -(R3) ; SUB2 FROm R3
|
||||
MOV R0,-(R3) ;R3 POINTS TO ADDRESS OF DEST DATA
|
||||
INC (R3) ;ODD BYTE
|
||||
MOV R0,-(R3) ;EVEN BYTE
|
||||
MOV R3,R4
|
||||
TST -(R0) ;R0=ADDRESS OF SOURCE DATA
|
||||
MOV R0,-(R4) ;R4 POINTS TO ADDRESS OF SOURCE DATA
|
||||
INC (R4) ;ODD BYTE
|
||||
MOV R0,-(R4) ;EVEN BYTE
|
||||
|
||||
SEC ;SET CARRY
|
||||
MOV #177001,@(R4)+
|
||||
MOVB #200,@(R4)+ ;SOURCE DATA=100001
|
||||
MOVB @-(R4),@(R3)+ ;
|
||||
MOVB @-(R4),@(R3)+ ;DEST DATA=000600
|
||||
BCS 2$
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
2$: CMP #600,(R5) ;CHECK DEST DATA
|
||||
BEQ 3$
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
3$: CMP -(R3),-(R3) ;POINT R4 BACK TO EVEN BYTE
|
||||
BISB @(R4)+,@(R3)+
|
||||
BISB @(R4)+,@(R3)+ ;DEST DATA=100601
|
||||
CMP #100601,(R5) ;CHECK RESULT
|
||||
BEQ 4$
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
4$: BICB @-(R4),@-(R3)
|
||||
BICB @-(R4),@-(R3)
|
||||
BITB @(R4)+,@(R3)+
|
||||
BNE BITB3
|
||||
BITB @-(R4),@(R3)+
|
||||
BNE H7
|
||||
BITB3:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
H7: CMPB @(R4)+,@-(R3)
|
||||
BNE CMPB3
|
||||
CMPB @(R4)+,@-(R3)
|
||||
BEQ JP1
|
||||
CMPB3:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
;CHECK JUMP INSTRUCTIONS
|
||||
JP1: MOV PC,R0
|
||||
ADD #12,R0 ;SET ADDRESS FOR JUMP INST
|
||||
SCC
|
||||
JMP (R0)
|
||||
2$: BR 3$
|
||||
CLN ;JMP INST JUMPS HERE
|
||||
BR 2$
|
||||
|
||||
3$: BCC JMP1
|
||||
BVC JMP1
|
||||
BNE JMP1
|
||||
BPL K2
|
||||
JMP1:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
K2: CLR R2 ;SET INDICATOR
|
||||
MOV PC,R4 ;SET UP JUMP REGISTER
|
||||
MOV R4,R0 ;SET UP CHECK REGISTER
|
||||
BR 1$
|
||||
COM R2 ;COMPLEMENT INDICATOR
|
||||
BR 2$
|
||||
1$: CMP (R4)+,(R4)+
|
||||
TST (R4)+ ;R4=JMP ADDRESS
|
||||
JMP -(R4) ;USE R4 AS ADDRESS
|
||||
2$: INC R2 ;CHECK INDICATOR
|
||||
BNE JMP4
|
||||
CMP (R0)+,(R0)+
|
||||
CMP R0,R4 ;CHECK AUTO-DEC R4
|
||||
BEQ JSRTST
|
||||
JMP4:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
;CHECK JSR INSTRUCTIONS
|
||||
JSRTST: MOV #3$,R2 ;FORM DEST ADRS
|
||||
SCC ;PRESET CC'S
|
||||
CLV
|
||||
JSR R5,(R2) ;GO TO 3$ VIA R2
|
||||
1$: TST R2 ;CHECK INDICATOR
|
||||
BNE JSR1 ;R2 SHOULD=0
|
||||
BR EX
|
||||
2$: RTS R5 ;RETURN FROM SUB ROUTINE
|
||||
3$: BCC JSR1 ;CHECK THAT JSR DID NOT
|
||||
BVS JSR1
|
||||
BNE JSR1 ;AFFECT CC'S
|
||||
BPL JSR1
|
||||
CLR R2 ;CLEAR INDICATOR
|
||||
MOV #1$,R4 ;GET RETURN ADDRESS
|
||||
BR 2$
|
||||
JSR1:
|
||||
;**************************************************************
|
||||
HRDER$,BEGIN,NULL ;
|
||||
;**************************************************************
|
||||
|
||||
EX:
|
||||
; ENDIT$,BEGIN ;SIGNAL END OF ITERATION
|
||||
;MONITOR SHALL TEst END OF PASS
|
||||
HALT
|
||||
ST: JMP RESTRT
|
||||
|
||||
|
||||
; stack area has to be beyond 000400
|
||||
.REPT SPSIZ ;MODULE STACK STARTS HERE
|
||||
.NLIST
|
||||
.WORD 0
|
||||
.LIST
|
||||
.ENDR
|
||||
MODSP: ; module stack base
|
||||
|
||||
|
||||
.END
|
||||
11
apps/pdp11/diags/cpu/makefile
Normal file
11
apps/pdp11/diags/cpu/makefile
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
#
|
||||
# Don't have macro11? Make yourself a copy from https://github.com/shattered/macro11
|
||||
#
|
||||
|
||||
all: XCPA.json
|
||||
|
||||
XCPA.lst: XCPA.mac
|
||||
macro11 XCPA.mac -l XCPA.lst
|
||||
|
||||
XCPA.json: XCPA.lst
|
||||
node ../../../../modules/filedump/bin/filedump --file=XCPA.lst --format=octal --output=XCPA.json --overwrite
|
||||
Loading…
Reference in a new issue