282 lines
15 KiB
Text
282 lines
15 KiB
Text
1 .title M9312 11/60-70 Diagnostic/Console ROM
|
|
2
|
|
3 ; This source code is an exact copy of the DEC M9312 23-616F1 console PROM.
|
|
4 ;
|
|
5 ; This console/diagnostic PROM is for 11/60-70 CPUs.
|
|
6 ;
|
|
7 ; Standard devices are 82S137, 74S573 or other compatible bipolar PROMs
|
|
8 ; with a 1024x4 TriState 18pin DIP architecture.
|
|
9
|
|
10 000000 .asect
|
|
11 165000 .=165000
|
|
12
|
|
13 165000 base =.
|
|
14
|
|
15 165000 010037 000700 START: mov r0,@#700 ;
|
|
16 165004 010137 000702 mov r1,@#702 ;
|
|
17 165010 010437 000704 mov r4,@#704 ;
|
|
18 165014 005037 000706 clr @#706 ;
|
|
19
|
|
20 165020 .=base+20
|
|
21 165020 052737 100000 177776 DIAG: bis #100000,@#177776 ;
|
|
22 165026 032737 040000 177776 bit #040000,@#177776 ;
|
|
23 165034 001402 beq L1 ;
|
|
24 165036 005237 000706 inc @#706 ;
|
|
25 165042 005037 177776 L1: clr @#177776 ;
|
|
26 165046 000401 br L2 ;
|
|
27 165050 000000 halt ;
|
|
28
|
|
29 165052 005006 L2: clr sp ;
|
|
30 165054 100404 bmi L3 ;
|
|
31 165056 102403 bvs L3 ;
|
|
32 165060 101002 bhi L3 ;
|
|
33 165062 002401 blt L3 ;
|
|
34 165064 101401 blos L4 ;
|
|
35 165066 000000 L3: halt ;
|
|
36
|
|
37 165070 005306 L4: dec sp ;
|
|
38 165072 100003 bpl L5 ;
|
|
39 165074 001402 beq L5 ;
|
|
40 165076 002001 bge L5 ;
|
|
41 165100 003401 ble L6 ;
|
|
42 165102 000000 L5: halt ;
|
|
43
|
|
44 165104 006006 L6: ror sp ;
|
|
45 165106 102002 bvc L7 ;
|
|
46 165110 103001 bcc L7 ;
|
|
47 165112 001001 bne L8 ;
|
|
48 165114 000000 L7: halt ;
|
|
49
|
|
50 165116 012706 125252 L8: mov #125252,sp ;
|
|
51 165122 010600 mov sp,r0 ;
|
|
52 165124 010001 mov r0,r1 ;
|
|
53 165126 010102 mov r1,r2 ;
|
|
54 165130 010203 mov r2,r3 ;
|
|
55 165132 010304 mov r3,r4 ;
|
|
56 165134 010405 mov r4,r5 ;
|
|
57 165136 160501 sub r5,r1 ;
|
|
58 165140 002401 blt NODIAG ;
|
|
59 165142 001401 beq L9 ;
|
|
60
|
|
61 165144 .=base+144
|
|
62 165144 000000 NODIAG: halt ;
|
|
63
|
|
64 165146 006102 L9: rol r2 ;
|
|
65 165150 103001 bcc L10 ;
|
|
66 165152 002401 blt L11 ;
|
|
67 165154 000000 L10: halt ;
|
|
68
|
|
69 165156 060203 L11: add r2,r3 ;
|
|
70 165160 005203 inc r3 ;
|
|
71 165162 005103 com r3 ;
|
|
72 165164 060301 add r3,r1 ;
|
|
73 165166 103401 bcs L12 ;
|
|
74 165170 003401 ble L13 ;
|
|
75 165172 000000 L12: halt ;
|
|
76
|
|
77 165174 006004 L13: ror r4 ;
|
|
78 165176 050403 bis r4,r3 ;
|
|
79 165200 060503 add r5,r3 ;
|
|
80 165202 005203 inc r3 ;
|
|
81 165204 103402 bcs L14 ;
|
|
82 165206 005301 dec r1 ;
|
|
83 165210 002401 blt L15 ;
|
|
84 165212 000000 L14: halt ;
|
|
85
|
|
86 165214 005100 L15: com r0 ;
|
|
87 165216 101401 blos L16 ;
|
|
88 165220 000000 halt ;
|
|
89
|
|
90 165222 040001 L16: bic r0,r1 ;
|
|
91 165224 060101 add r1,r1 ;
|
|
92 165226 003001 bgt L17 ;
|
|
93 165230 003401 ble L18 ;
|
|
94 165232 000000 L17: halt ;
|
|
95
|
|
96 165234 000301 L18: swab r1 ;
|
|
97 165236 020127 052125 cmp r1,#052125 ;
|
|
98 165242 001004 bne L19 ;
|
|
99 165244 030405 bit r4,r5 ;
|
|
100 165246 003002 bgt L19 ;
|
|
101 165250 005105 com r5 ;
|
|
102 165252 001001 bne L20 ;
|
|
103 165254 000000 L19: halt ;
|
|
104
|
|
105 165256 112700 177401 L20: movb #177401,r0 ;
|
|
106 165262 100001 bpl L21 ;
|
|
107 165264 000000 L22: halt ;
|
|
108
|
|
109 165266 077002 L21: sob r0,L22 ;
|
|
110 165270 005001 clr r1 ;
|
|
111 165272 005201 L23: inc r1 ;
|
|
112 165274 077002 sob r0,L23 ;
|
|
113 165276 005700 tst r0 ;
|
|
114 165300 001002 bne L24 ;
|
|
115 165302 005701 tst r1 ;
|
|
116 165304 001401 beq L25 ;
|
|
117 165306 000000 L24: halt ;
|
|
118
|
|
119 165310 012706 000776 L25: mov #776,sp ;
|
|
120 165314 004767 165322' jsr pc,L26 ;
|
|
121 165320 000000 N2: halt ;
|
|
122
|
|
123 165322 022716 165320 L26: cmp #N2,(sp) ;
|
|
124 165326 001401 beq L27 ;
|
|
125 165330 000000 halt ;
|
|
126
|
|
127 165332 012716 165342 L27: mov #N3,(sp) ;
|
|
128 165336 000207 rts pc ;
|
|
129 165340 000000 halt ;
|
|
130
|
|
131 165342 005046 N3: clr -(sp) ;
|
|
132 165344 012746 165354 mov #N4,-(sp) ;
|
|
133 165350 000002 rti ;
|
|
134 165352 000000 halt ;
|
|
135
|
|
136 165354 000137 165362 N4: jmp @#N5 ;
|
|
137 165360 000000 halt ;
|
|
138
|
|
139 165362 012705 160000 N5: mov #160000,r5 ;
|
|
140 165366 005037 000006 clr @#6 ;
|
|
141 165372 012737 165400 000004 mov #N6,@#4 ;
|
|
142 165400 012706 000776 N6: mov #776,sp ;
|
|
143 165404 005745 tst -(r5) ;
|
|
144 165406 012737 165714 000114 mov #N12,@#114 ;
|
|
145 165414 005037 000116 clr @#116 ;
|
|
146 165420 012703 177746 mov #177746,r3 ;
|
|
147 165424 012713 000014 mov #14,(r3) ;
|
|
148 165430 012702 001000 mov #1000,r2 ;
|
|
149 165434 010200 mov r2,r0 ;
|
|
150 165436 010010 L28: mov r0,(r0) ;
|
|
151 165440 005720 tst (r0)+ ;
|
|
152 165442 020005 cmp r0,r5 ;
|
|
153 165444 101774 blos L28 ;
|
|
154 165446 010200 mov r2,r0 ;
|
|
155 165450 011001 L30: mov (r0),r1 ;
|
|
156 165452 020001 cmp r0,r1 ;
|
|
157 165454 001401 beq L29 ;
|
|
158 165456 000000 halt ;
|
|
159
|
|
160 165460 005120 L29: com (r0)+ ;
|
|
161 165462 020005 cmp r0,r5 ;
|
|
162 165464 101771 blos L30 ;
|
|
163 165466 014001 L32: mov -(r0),r1 ;
|
|
164 165470 005101 com r1 ;
|
|
165 165472 020001 cmp r0,r1 ;
|
|
166 165474 001401 beq L31 ;
|
|
167 165476 000000 halt ;
|
|
168
|
|
169 165500 020002 L31: cmp r0,r2 ;
|
|
170 165502 001371 bne L32 ;
|
|
171 165504 005016 clr (sp) ;
|
|
172 165506 012704 125252 mov #125252,r4 ;
|
|
173 165512 012713 000030 mov #30,(r3) ;
|
|
174 165516 012700 004000 mov #4000,r0 ;
|
|
175 165522 012702 001000 L39: mov #1000,r2 ;
|
|
176 165526 005104 L36: com r4 ;
|
|
177 165530 010410 mov r4,(r0) ;
|
|
178 165532 005110 com (r0) ;
|
|
179 165534 005110 com (r0) ;
|
|
180 165536 021004 cmp (r0),r4 ;
|
|
181 165540 001401 beq L33 ;
|
|
182 165542 000000 halt ;
|
|
183
|
|
184 165544 006037 177752 L33: ror @#177752 ;
|
|
185 165550 103402 bcs L34 ;
|
|
186 165552 000000 halt ;
|
|
187 165554 000461 br L35 ;
|
|
188
|
|
189 165556 105116 L34: comb (sp) ;
|
|
190 165560 001362 bne L36 ;
|
|
191 165562 000402 br L37 ;
|
|
192
|
|
193 165564 .=base+564
|
|
194 165564 000167 165000' RESTRT: jmp START ;
|
|
195
|
|
196 165570 005720 L37: tst (r0)+ ;
|
|
197 165572 077223 sob r2,L36 ;
|
|
198 165574 012713 000044 mov #44,(r3) ;
|
|
199 165600 012700 006000 mov #6000,r0 ;
|
|
200 165604 105166 000001 comb 1(sp) ;
|
|
201 165610 001344 bne L39 ;
|
|
202 165612 012702 001000 mov #1000,r2 ;
|
|
203 165616 010200 mov r2,r0 ;
|
|
204 165620 010010 L40: mov r0,(r0) ;
|
|
205 165622 005720 tst (r0)+ ;
|
|
206 165624 020005 cmp r0,r5 ;
|
|
207 165626 101774 blos L40 ;
|
|
208 165630 012701 000003 mov #3,r1 ;
|
|
209 165634 005016 clr (sp) ;
|
|
210 165636 005737 000706 tst @#706 ;
|
|
211 165642 001020 bne L41 ;
|
|
212 165644 012716 000030 mov #30,(sp) ;
|
|
213 165650 010200 L45: mov r2,r0 ;
|
|
214 165652 005110 L44: com (r0) ;
|
|
215 165654 005110 com (r0) ;
|
|
216 165656 020010 cmp r0,(r0) ;
|
|
217 165660 001401 beq L42 ;
|
|
218 165662 000000 halt ;
|
|
219
|
|
220 165664 005720 L42: tst (r0)+ ;
|
|
221 165666 006037 177752 ror @#177752 ;
|
|
222 165672 103402 bcs L43 ;
|
|
223 165674 000000 halt ;
|
|
224 165676 000410 br L35 ;
|
|
225
|
|
226 165700 020005 L43: cmp r0,r5 ;
|
|
227 165702 101763 blos L44 ;
|
|
228 165704 011613 L41: mov (sp),(r3) ;
|
|
229 165706 005016 clr (sp) ;
|
|
230 165710 077121 sob r1,L45 ;
|
|
231 165712 000404 br L46 ;
|
|
232
|
|
233 165714 000000 N12: halt ;
|
|
234 165716 000402 br L46 ;
|
|
235
|
|
236 165720 012713 000014 L35: mov #14,(r3) ;
|
|
237 165724 013700 000700 L46: mov @#700,r0 ;
|
|
238 165730 013701 000702 mov @#702,r1 ;
|
|
239 165734 013704 000704 mov @#704,r4 ;
|
|
240 165740 000164 000002 jmp 2(r4) ;
|
|
241
|
|
242 165744 013704 177570 mov @#177570,r4 ;
|
|
243 165750 042704 177000 bic #177000,r4 ;
|
|
244 165754 052704 173000 bis #173000,r4 ;
|
|
245 165760 113700 177571 movb @#177571,r0 ;
|
|
246 165764 006200 asr r0 ;
|
|
247 165766 000241 clc ;
|
|
248 165770 000114 jmp (r4) ;
|
|
249 165772 000000 halt ;
|
|
250
|
|
251 ; ------------------------------------------------------------
|
|
252
|
|
253 165774 .=base+774
|
|
254 165774 060 102 verson: .ascii "0B" ; version ID
|
|
255
|
|
256 165776 .=base+776
|
|
257 165776 025055 crc16: .word <025055> ; CRC-16 will go here
|
|
258
|
|
259 .end
|
|
259
|
|
|
|
|
|
Symbol table
|
|
|
|
. =****** L17 =165232 L28 =165436 L4 =165070 L9 =165146
|
|
BASE =165000 L18 =165234 L29 =165460 L40 =165620 N12 =165714
|
|
CRC16 =165776 L19 =165254 L3 =165066 L41 =165704 N2 =165320
|
|
DIAG =165020 L2 =165052 L30 =165450 L42 =165664 N3 =165342
|
|
L1 =165042 L20 =165256 L31 =165500 L43 =165700 N4 =165354
|
|
L10 =165154 L21 =165266 L32 =165466 L44 =165652 N5 =165362
|
|
L11 =165156 L22 =165264 L33 =165544 L45 =165650 N6 =165400
|
|
L12 =165172 L23 =165272 L34 =165556 L46 =165724 NODIAG=165144
|
|
L13 =165174 L24 =165306 L35 =165720 L5 =165102 RESTRT=165564
|
|
L14 =165212 L25 =165310 L36 =165526 L6 =165104 START =165000
|
|
L15 =165214 L26 =165322 L37 =165570 L7 =165114 VERSON=165774
|
|
L16 =165222 L27 =165332 L39 =165522 L8 =165116
|
|
|
|
|
|
Program sections:
|
|
|
|
. ABS. 166000 000 (RW,I,GBL,ABS,OVR,NOSAV)
|
|
000000 001 (RW,I,LCL,REL,CON,NOSAV)
|