pcjs/devices/pdp11/rom/M9312/23-616F1.txt

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)