Trailing-Edge
-
PDP-10 Archives
-
BB-P363B-SM_1985
-
mcb/loaders/dtemps.lst
There are no other files named dtemps.lst in the archive.
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51
DTEMOP.MAC 04-JAN-83 11:15 TABLE OF CONTENTS
27 TITLE PAGE
66 MACROS AND DEFINITIONS
255 MOVE TO TOP OF PHYSICAL MEMORY
365 MOP PROCESSOR
604 DTE SUBROUTINES
726 DATA
777 END
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 1
DTEMPS.MAC 30-DEC-82 15:39
1 ; COPYRIGHT (C) 1980, 1981, 1982
2 ; DIGITAL EQUIPMENT CORPORATION
3 ; MAYNARD, MASSACHUSETTS
4 ;
5 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED
6 ; AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE
7 ; AND WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS
8 ; SOFTWARE OR ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR
9 ; OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON. NO TITLE TO
10 ; AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
11 ;
12 ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE
13 ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT
14 ; BY DIGITAL EQUIPMENT CORPORATION.
15 ;
16 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
17 ; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY
18 ; DIGITAL.
19
20 000000 S$$CLD= 0 ;*** ASSEMBLE SECONDARY LOADER ***
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 2
DTEMOP.MAC 04-JAN-83 11:15
21
22 ;<SROBINSON>DTEMOP.MAC.5 13-APR-81 11:11:42, EDIT BY SROBINSON
23 ;NET:<SROBINSON>DTEMOP.MAC.3 7-APR-81 11:17:34, EDIT BY SROBINSON
24 .IIF NDF S$$CLD!T$$RLD .TITLE DTEMOP -- DTE20 MOP MODE BOOTSTRAP
25 .IIF DF S$$CLD .TITLE DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP
26 .IIF DF T$$RLD .TITLE DTEMPT -- DTE20 MOP TERTIARY BOOTSTRAP
27 .SBTTL TITLE PAGE
28 .IDENT "V01.02"
29 ;
30 ;
31 ; COPYRIGHT (C) 1980, 1981, 1982
32 ; DIGITAL EQUIPMENT CORPORATION
33 ; MAYNARD, MASSACHUSETTS
34 ;
35 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED
36 ; AND COPIED ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE
37 ; AND WITH THE INCLUSION OF THE ABOVE COPYRIGHT NOTICE. THIS
38 ; SOFTWARE OR ANY OTHER COPIES THEREOF MAY NOT BE PROVIDED OR
39 ; OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON. NO TITLE TO
40 ; AND OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
41 ;
42 ; THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE
43 ; WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT
44 ; BY DIGITAL EQUIPMENT CORPORATION.
45 ;
46 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY
47 ; OF ITS SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY
48 ; DIGITAL.
49 ;
50 ;
51 ; MODULE: DTEMOP
52 ;
53 ; IDENT HISTORY:
54 ;
55 ; 1.00 22-JAN-77 TOM PORCHER
56 ; RELEASE 3A AND 4 BASE
57 ;
58 ; 1.01 13-APR-79 LEE WEBBER
59 ; MODIFY LOAD PARAMETER HANDLING TO THE STANDARD.
60 ;
61 ; 1.02 13-APR-81 SCOTT ROBINSON
62 ; CHANGE EDIT 1.01 TO MAKE SECONDARY WORK AGAIN
63 ;
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 3
DTEMOP.MAC 04-JAN-83 11:15 TITLE PAGE
65
66 .SBTTL MACROS AND DEFINITIONS
67 ;
68 ; PARAMETERS (DEFINED IN PARAMETER MODULE)
69 ;
70 ; S$$CLD= 0 ;SECONDARY LOADER (FOR TERTIARY) IF DEFINED
71 ; T$$RLD= 0 ;TERTIARY LOADER IF DEFINED
72 ;
73 ; PARAMETERS
74 ;
75 ;** D$$BUG= 0 ;DEBUG VERSION IF DEFINED
76 000000 E$$CHK= 0 ;ERROR CHECKING IF DEFINED
77 000000 D$$CHK= 0 ;DTE-20 CONSISTENCY CHECKING IF DEFINED
78 000000 M$$CHK= 0 ;MEMORY LIMIT CHECKING IF DEFINED
79 001 .IF DF T$$RLD
80 L$$DPR= 0 ;ALLOW LOAD PARAMETERS IF DEFINED
81 M$$XSZ= 1024. ;MAX SIZE IS 1K BYTES (0.5K WORDS)
82 M$$MGE= 0 ;MEMORY MANAGEMENT IF DEFINED
83 T$$32K= 0 ;ALLOW DTE20 TRANSFERS OVER 32K BOUNDARIES IF DEFINED
84 .IFF
85 001000 M$$XSZ= 512. ;MAX SIZE IF PROGRAM IS 512. BYTES (256. WORDS)
86 000 .ENDC
87 ;
88 ;
89 ; MISC. MCALLS
90 ;
91 .MACRO CALL,A
92 JSR PC,A ;CALL A
93 .ENDM
94
95 .MACRO RETURN
96 RTS PC
97 .ENDM
98
99 ;
100 ; MACROS
101 ;
102 .MACRO DEBUG,OP,MSG,ALTOP
103 .IF DF D$$BUG
104 OP ;MSG
105 .IF NDF PASS2
106 .PRINT .-MOP ;MSG
107 .ENDC
108 .IFF
109 ALTOP
110 .ENDC
111 .ENDM DEBUG
112 ;
113 .MACRO ERR,CND,MSG,WHERE,?LABEL
114 .IF DF D$$BUG
115 .IIF IDN <CND>,<R>,
116 .IIF IDN <CND>,<NE>,BEQ LABEL
117 .IIF IDN <CND>,<EQ>,BNE LABEL
118 .IIF IDN <CND>,<PL>,BMI LABEL
119 .IIF IDN <CND>,<MI>,BPL LABEL
120 .IIF IDN <CND>,<VC>,BVS LABEL
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 3-1
DTEMOP.MAC 04-JAN-83 11:15 MACROS AND DEFINITIONS
121 .IIF IDN <CND>,<VS>,BVC LABEL
122 .IIF IDN <CND>,<CC>,BCS LABEL
123 .IIF IDN <CND>,<CS>,BCC LABEL
124 .IIF IDN <CND>,<GE>,BLT LABEL
125 .IIF IDN <CND>,<LT>,BGE LABEL
126 .IIF IDN <CND>,<GT>,BLE LABEL
127 .IIF IDN <CND>,<LE>,BGT LABEL
128 .IIF IDN <CND>,<HI>,BLOS LABEL
129 .IIF IDN <CND>,<LOS>,BHI LABEL
130 .IIF IDN <CND>,<HIS>,BLO LABEL
131 .IIF IDN <CND>,<LO>,BHIS LABEL
132 .IFTF
133 DEBUG HALT,<ERROR: "MSG">,<B'CND WHERE'MOPERR>
134 .IFT
135 LABEL:
136 .ENDC
137 .ENDM ERR
138 ;
139 .MACRO FIT,BASE,SIZE,STUFF
140 .IF DF SIZE&PASS2
141 .IF G <<.-BASE>-SIZE>
142 .ERROR <<.-BASE>-SIZE> ; TOO MUCH STUFF
143 .IFF
144 .PRINT <SIZE-<.-BASE>> ; FREE FOR STUFF
145 .ENDC
146 .ENDC
147 .ENDM FIT
148 ;
149 ;
150 ; GENERAL BIT DEFINITIONS
151 ;
152 000001 BIT0= 000001
153 000002 BIT1= 000002
154 000004 BIT2= 000004
155 000010 BIT3= 000010
156 000020 BIT4= 000020
157 000040 BIT5= 000040
158 000100 BIT6= 000100
159 000200 BIT7= 000200
160 000400 BIT8= 000400
161 001000 BIT9= 001000
162 002000 BIT10= 002000
163 004000 BIT11= 004000
164 010000 BIT12= 010000
165 020000 BIT13= 020000
166 040000 BIT14= 040000
167 100000 BIT15= 100000
168 ;
169 ;
170 ; MOP DEFINITIONS
171 ;
172 000000 M.PMLT= 0. ;MEMORY LOAD WITH TRANSFER
173 000002 M.PMLD= 2. ;MEMORY LOAD
174 000004 M.PRMD= 4. ;REQUEST MEMORY DUMP
175 000006 M.PEMM= 6. ;ENTER MOP MODE
176 000010 M.PRPR= 8. ;REQUEST PROGRAM
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 3-2
DTEMOP.MAC 04-JAN-83 11:15 MACROS AND DEFINITIONS
177 000012 M.PRML= 10. ;REQUEST/ACKNOWLEDGE MEMORY LOAD
178 000014 M.PMMR= 12. ;MOP MODE RUNNING
179 000016 M.PMDP= 14. ;MEMORY DUMP
180 000020 M.PDAP= 16. ;(REMOTE-11) DAP ENVELOPE
181 000022 M.PEAM= 18. ;(REMOTE-11) ENTER REMOTE-11 ASCII MODE
182 000024 M.PLDP= 20. ;PROGRAM DATA
183 000030 M.PLBT= 24. ;LOOPBACK TEST
184 ;
185 ;
186 ; CPU REGISTER DEFINITIONS
187 ;
188 177570 SWR= 177570 ;SWITCH REGISTER
189 177776 PS= 177776 ;PROCESSOR STATUS WORD
190 000340 PR7= 7*BIT5 ;PRIORITY 7
191 ;
192 ; MEMORY MANAGEMENT REGISTER DEFINITIONS
193 ;
194 177572 SR0= 177572 ;STATUS REGISTER 0
195 ;
196 172300 KISDR0= 172300 ;KERNAL PAGE DESRIPTOR 0
197 172302 KISDR1= 172302 ; . . 1
198 172304 KISDR2= 172304 ; . . 2
199 172306 KISDR3= 172306 ; . . 3
200 172310 KISDR4= 172310 ; . . 4
201 172312 KISDR5= 172312 ; . . 5
202 172314 KISDR6= 172314 ; . . 6
203 172316 KISDR7= 172316 ; . . 7
204 ;
205 172340 KISAR0= 172340 ;KERNAL PAGE ADDRESS REGISTER 0
206 172342 KISAR1= 172342 ; . . 1
207 172344 KISAR2= 172344 ; . . 2
208 172346 KISAR3= 172346 ; . . 3
209 172350 KISAR4= 172350 ; . . 4
210 172352 KISAR5= 172352 ; . . 5
211 172354 KISAR6= 172354 ; . . 6
212 172356 KISAR7= 172356 ; . . 7
213 ;
214 ;
215 ; DTE20 REGISTER DEFINITIONS
216 ;
217 000000 DLYCNT= 0 ;DELAY COUNTER
218 100000 BUSA17= BIT15 ;UNIBUS ADDRESS BIT 17
219 040000 BUSA16= BIT14 ;UNIBUS ADDRESS BIT 16
220 037777 DLYMSK= 37777 ;DELAY COUNTER
221 000002 DEXWD3= 2 ;DEPOSIT/EXAMINE WORD 3
222 000004 DEXWD2= 4 ; . . 2
223 000006 DEXWD1= 6 ; . . 1
224 000010 TENAD1= 10 ;KL-10 MEMORY ADDRESS 1
225 000012 TENAD2= 12 ; . . 2
226 000014 TO10BC= 14 ;TO -10 BYTE (WORD) COUNT
227 000016 TO11BC= 16 ;TO -11 BYTE (WORD) COUNT
228 100000 TO11IB= BIT15 ;INTERRUPT BOTH -10 AND -11 WHEN DONE
229 020000 TO11BM= BIT13 ;TO -11 BYTE MODE
230 007777 TO11CM= 7777 ;BYTE (WORD) COUNT
231 000020 TO10AD= 20 ;TO -10 ADDRESS
232 000022 TO11AD= 22 ;TO -11 ADDRESS
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 3-3
DTEMOP.MAC 04-JAN-83 11:15 MACROS AND DEFINITIONS
233 000024 TO10DT= 24 ;TO -10 DATA WORD
234 000026 TO11DT= 26 ;TO -11 DATA WORD
235 ;
236 000030 DIAG1= 30 ;DIAGNOSTIC/CONTROL REGISTER 1
237 000032 DIAG2= 32 ;DIAGNOSTIC REGISTER 2
238 000100 DRESET= BIT6 ;(W) DTE20 RESET
239 000034 CSTAT= 34 ;CONTROL/STATUS REGISTER
240 100000 TO10DN= BIT15 ;(R) TO -10 TRANSFER DONE
241 040000 DON10C= BIT14 ;(W) CLEAR TO -10 DONE
242 020000 TO10ER= BIT13 ;(R) TO -10 TRANSFER ERROR
243 010000 ERR10C= BIT12 ;(W) CLEAR TO -10 TRANSFER ERROR
244 004000 TO11DB= BIT11 ;(R/W) TO -11 DOORBELL
245 002000 INT11C= BIT10 ;(W) CLEAR TO -11 DOORBELL
246 000400 TO10DB= BIT8 ;(R/W) TO -10 DOORBELL
247 000200 TO11DN= BIT7 ;(R) TO -11 TRANSFER DONE
248 000100 DON11C= BIT6 ;(W) CLEAR TO -11 DONE
249 000002 TO11ER= BIT1 ;(R) TO -11 TRANSFER ERROR
250 000001 ERR11C= BIT0 ;(W) CLEAR TO -11 TRANSFER ERROR
251 000036 DIAG3= 36 ;DIAGNOSTIC/CONTROL REGISTER 3
252 000001 TO10BM= BIT0 ;(W) TO -10 BYTE MODE
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 4
DTEMOP.MAC 04-JAN-83 11:15 MACROS AND DEFINITIONS
254
255 .SBTTL MOVE TO TOP OF PHYSICAL MEMORY
256 ;
257 ; SEONDARY LOADER:
258 ; THE BM873-YF, -YG, -YH, -YJ ROM LOADS THIS 256. WORD (512. BYTE) PROGRAM
259 ; STARTING AT LOCATION 0, THEN TRANSFERS TO LOCATION 0.
260 ;
261 ; TERTIARY LOADER:
262 ; THE SECONDARY LOADER LOADS THIS 1K WORD (2048. BYTE) PROGRAM
263 ; AND TRANSFERS TO IT AT ITS TRANSFER ADDRESS "DTEMOP"
264 ;
265 ;
266 ; THE FOLLOWING REGISTERS ARE LEFT BY THE ROM:
267 ; R1 -- ADDRESS OF DTE20 STATUS WORD "CSTAT"
268 ;
269 ;
270 000000' DTEMOP:
271 000000' DEBUG HALT,<BOOTSTRAP>,NOP ;(0) MARK START OF BOOTSTRAP
272 001 .IF DF T$$RLD
273 MOV #30$,@#4 ;(2,4,6) SET UP TIMEOUT TRAP
274 MOV #PR7,@#6 ; TO TRAP TO US
275 .IFF
276 000002' 000402 BR 10$ ;(2) SKIP OVER TIMEOUT CODE
277 ;
278 ; TIMEOUT VECTOR-- USED TO FIND TOP OF MEMORY
279 ;
280 000004' 000032' 000340 .WORD 30$,PR7 ;(4,6) WHERE TO GO ON NXM (FIRST ON KT-11, THEN MEMORY S
281 ;
282 000010' 10$:
283 ;
284 ; WAIT FOR TO -11 DOORBELL IF NOT CLEARED BY ROM
285 ;
286 000010' 105711 TSTB (R1) ;TO -11 DONE?
287 000012' 100003 BPL 15$ ;NO-- DOOBELL HAS BEEN CLEARED
288 000014' 032711 004000 BIT #TO11DB,(R1) ;DOORBELL RINGING?
289 000020' 001773 BEQ 10$ ;NO-- WAIT
290 000022' 15$:
291 000 .ENDC
292 ;
293 ; FIND TOP BLOCK OF PHYSICAL MEMORY WHERE WE WILL FIT
294 ;
295 000022' 012706 000770' MOV #STACK-4,SP ;SET STACK
296 000026' 012700 160000 MOV #160000,R0 ;START AT EXTERNAL PAGE IF NO KT11
297 001 .IF DF M$$MGE
298 MOV #77406,R2 ;SET MAX SIZE FOR AN APR
299 MOV R2,@#KISDR0 ;SET MAP FOR THIS CODE (THIS WILL TRAP TO 30$ IF NO KT11
300 MOV R2,@#KISDR1 ;SET MAP FOR FINDING MEMORY
301 MOV R2,@#KISDR7 ; THEN FOR EXTERNAL PAGE
302 CLR @#KISAR0 ;SET MAP SEGMENT 0 TO THIS CODE
303 MOV #7600,@#KISAR1 ;START MEMORY LOOKING AT EXTERNAL PAGE
304 MOV #7600,@#KISAR7 ;ALSO MAP EXTERNAL PAGE
305 MOV #1,@#SR0 ;ENABLE SEGMENTATION
306 MOV #20000,R0 ;POINT TO WHERE MAPPING REGISTER 1 MAPS
307 MOV #20$,@#4 ;SET TIMEOUT TO KT11 FLAVOR
308 20$:
309 CMP (SP)+,(SP)+ ;REMOVE TRAP
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 4-1
DTEMOP.MAC 04-JAN-83 11:15 MOVE TO TOP OF PHYSICAL MEMORY
310 SUB #M$$XSZ/100,@#KISAR1 ;COUNT DOWN BY OUR SIZE
311 TST (R0) ;TRAP BACK TO 20$ IF NON-EX MEM
312 ;
313 ; FOUND TOP OF PHYSICAL MEMORY-- NOW COMPUTE PHYSICAL ADDRESS
314 ;
315 MOV @#KISAR1,R5 ;GET PHYSICAL ADDRESS (RIGHT-SHIFTED 6 BITS)
316 ASL R5 ;SHIFT
317 ASL R5 ; EXTENSION
318 ASL R5 ; BITS TO
319 ASL R5 ; BITS 15-14
320 MOV R5,R4 ;COPY IT
321 BIC #^C<BUSA17!BUSA16>,R4 ;TRIM TO RIGHT SIZE
322 ASL R5 ;MAKE R5
323 ASL R5 ; PHYSICAL ADDRESS
324 BR 40$ ;GO ON TO MOVE
325 .IFTF
326 ;
327 ; HERE IF WE MUST FIND TOP OF MEMORY WITHOUT MEMORY MANAGEMENT
328 ;
329 000032' 30$:
330 000032' 022626 CMP (SP)+,(SP)+ ;REMOVE TRAP FROM STACK
331 000034' 162700 001000 SUB #M$$XSZ,R0 ;DOWN BY ANOTHER BLOCK
332 000040' 005710 TST (R0) ;TRAP TO 30$ IF STILL NXM
333 ;
334 ; FOUND TOP OF PHYSICAL MEMORY
335 ;
336 000042' 010005 MOV R0,R5 ;COPY PHYSICAL ADDRESS
337 .IFT
338 CLR R4 ;MEMORY EXTENSION= 0
339 MOV #240,CLRSR0 ;CHANGE "CLR (SP)" (SR0) TO NO-OP
340 .IFF
341 000044' 005061 177744 CLR DLYCNT-CSTAT(R1) ;SET MEMORY EXTENSION BITS FOR DTE20 TO 0
342 000 .ENDC
343 ;
344 ; WE NOW HAVE R0 POINTING TO THE TOP BLOCK IN MEMORY.
345 ; SINCE THIS IS POSITION-INDEPENDENT, WE CAN MOVE UP THERE NOW.
346 ;
347 ; REGISTERS:
348 ; R0 -- VIRTUAL ADDRESS OF WHERE TO MOVE CODE
349 ; R1 -- VIRTUAL ADDRESS OF DTE20 "CSTAT" REGISTER
350 ; R4 -- PHYSICAL ADDRESS OF WHERE TO MOVE CODE (BITS 17-16, IN BITS 15-14)
351 ; R5 -- PHYSICAL ADDRESS OF WHERE TO MOVE CODE (BITS 15-0)
352 ;
353 000050' 40$:
354 000050' 010006 MOV R0,SP ;COPY VIRTUAL ADDRESS
355 000052' 010067 000530 MOV R0,PARMAD ;CALCULATE START
356 000056' 062767 000700 000522 ADD #M$$XSZ-64.,PARMAD ; OF PARAMETER AREA
357 000064' 012702 000102' MOV #MOP,R2 ;SET SOURCE ADDRESS
358 000070' 50$:
359 000070' 012226 MOV (R2)+,(SP)+ ;MOVE A WORD
360 000072' 020227 000774' CMP R2,#STACK ;MOVED ALL THE CODE?
361 000076' 103774 BLO 50$ ;NO-- KEEP ON MOVIN'
362 000100' 000110 JMP (R0) ;OFF AND RUNNING
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 5
DTEMOP.MAC 04-JAN-83 11:15 MOVE TO TOP OF PHYSICAL MEMORY
364
365 .SBTTL MOP PROCESSOR
366 ;
367 ; THIS POSITION-INDEPENDENT CODE EXECUTES IN THE TOP BLOCK OF PHYSICAL MEMORY
368 ;
369 ; REGISTERS:
370 ; R1 -- VIRTUAL ADDRESS OF DTE20 "CSTAT" REGISTER
371 ; R4 -- PHYSICAL ADDRESS OF MOVED CODE (BITS 17-16, IN BITS 15-14)
372 ; R5 -- PHYSICAL ADDRESS OF MOVED CODE (BITS 15-0)
373 ; SP -- STACK POINTER (TOP OF VIRTUAL MEMORY)
374 ;
375 ; PAGE REGISTERS:
376 ; 0 -- MAPS TO PHYSICAL 0
377 ; 1 -- MAPS TO THIS CODE
378 ; 7 -- MAPS TO EXTERNAL PAGE
379 ;
380 000102' MOP:
381 000102' DEBUG HALT,<MOVED TO TOP OF PHYSICAL>
382 001 .IF DF E$$CHK!D$$CHK!M$$CHK
383 000102' 012761 000100 177776 MOV #DRESET,DIAG2-CSTAT(R1) ;RESET ALL TRANSFERS IN PROGRESS
384 000110' 010706 MOV PC,SP ;SET STACK
385 000112' 062706 000662 ADD #STACK-.,SP ; BACK, JACK
386 000116' 105067 000463 CLRB LODNUM ;START LOAD AT ZERO
387 002 .IF DF L$$DPR
388 CLRB PRGDAT ;MARK NO PROGRAM DATA YET
389 001 .ENDC
390 000 .ENDC
391 ;
392 ; SEND "REQUEST PROGRAM" MESSAGE TO THE -10
393 ;
394 000122' 012700 000472 MOV #REQOPS-MOP,R0 ;GET ADDRESS OF MOP "REQUEST PROGRAM"
395 000126' CALL DTESND ;SEND IT TO -10
396 ;
397 ; WAIT FOR -10 TO SEND US SOMETHING-- DOORBELL WILL RING
398 ;
399 000132' MOPWAT:
400 000132' 032711 004000 BIT #TO11DB,(R1) ;DOORBELL RINGING?
401 000136' 001775 BEQ MOPWAT ;NO-- WAIT UNTIL -10 RINGS US
402 ;
403 ; THE FIRST TWO BYTES ARE THE BYTE COUNT.
404 ;
405 000140' 012700 000652 MOV #RCVMSG-MOP,R0 ;GET ADDRESS OF BYTE COUNT WORD
406 000144' 011703 MOV (PC),R3 ;SET LARGE COUNT
407 000146' 012702 000002 MOV #2,R2 ;SET BYTE COUNT
408 000152' CALL DTERCV ;RECEIVE BYTE COUNT
409 ;
410 ; THE NEXT BYTE IS THE MOP FUNCTION CODE.
411 ; THE NEXT BYTE IS THE LOAD NUMBER.
412 ;
413 000156' 016703 000572 MOV BYTCNT,R3 ;GET BYTE COUNT NOW
414 000162' 012702 000002 MOV #2,R2 ;ONE BYTE MOP FUNCTION, ONE BYTE LOAD NUMBER
415 000166' CALL DTERCA ;RECEIVE MOP CODE, ADDRESS IN R0
416 001 .IF DF E$$CHK
417 ;
418 ; VERIFY MOP FUNCTION
419 ;
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 5-1
DTEMOP.MAC 04-JAN-83 11:15 MOP PROCESSOR
420 000172' 116702 000560 MOVB MOPFNC,R2 ;GET MOP FUNCTION
421 000176' 001406 BEQ 10$ ;(M.PMLT) MEMORY LOAD W/TRANSFER-- OK
422 000200' 120227 000024 CMPB R2,#M.PLDP ;PROGRAM DATA?
423 000204' 001403 BEQ 10$ ;YES-- OK
424 000206' 120227 000002 CMPB R2,#M.PMLD ;MEMORY LOAD?
425 000212' ERR NE,<INVALID MOP FUNCTION CODE RECEIVED>,MOPFER
426 000214' 10$:
427 ;
428 ; VERIFY LOAD NUMBER
429 ;
430 .IFTF
431 000214' 116702 000537 MOVB RCVLDN,R2 ;IS LOAD 0?
432 .IFT
433 000220' 001403 BEQ 20$ ;YES-- ALWAYS OK
434 000222' 120267 000357 CMPB R2,LODNUM ;THIS RIGHT LOAD?
435 000226' ERR NE,<WRONG LOAD NUMBER RECIEVED>,MOPFER
436 000230' 20$:
437 000 .ENDC
438 000230' 105202 INCB R2 ;BUMP LOAD NUMBER
439 000232' 110267 000347 MOVB R2,LODNUM ;STORE LOAD NUMBER
440 ;
441 ; RECEIVE DATA INTO MEMORY
442 ;
443 000236' 012702 000004 MOV #4,R2 ;SET TO GET LOAD ADDRESS
444 000242' 126727 000510 000024 CMPB MOPFNC,#M.PLDP ;PROGRAM DATA?
445 000250' 001005 BNE 40$ ;NO-- USE ADDRESS
446 000252' 062700 177630 ADD #PRGDAT-LODADR,R0 ;YES-- POINT TO PROGRAM DATA STORAGE AREA
447 000256' 005402 NEG R2 ;GET -4 FOR TRANSFER ADDRESS
448 000260' 060302 ADD R3,R2 ;GET SIZE LEFT
449 000262' 000422 BR 60$ ;AND RECEIVE PROGRAM DATA
450 ;
451 000264' 40$:
452 000264' CALL DTERCA ; INTO LODADR
453 000270' 003426 BLE 70$ ;ONLY TRANSFER -- DO THAT
454 000272' 126727 000460 000002 CMPB MOPFNC,#M.PMLD ;MEMORY LOAD ONLY?
455 000300' 001402 BEQ 42$ ;YES-- ALL IS DATA
456 000302' 162702 000004 SUB #4,R2 ;NO-- SAVE TRANSFER FOR LATER
457 000306' 42$:
458 000306' 016700 000446 MOV LODADR+0,R0 ;GET LOW ADDRESS BITS
459 001 .IF DF M$$MGE
460 002 .IF DF M$$CHK
461 MOV R0,-(SP) ;ALSO SAVE AS ADDRESS RANGE
462 .IFTF
463 MOV LODADR+2,-(SP) ;GET HIGH ADDRESS BITS
464 .IFT
465 BIT #^C<BIT1!BIT0>,(SP) ;EXTRA BITS SET?
466 ERR NE,<LOAD REQUEST ABOVE 128K>,MOPFER
467 .IFTF
468 ASR (SP) ;SHIFT
469 ROR (SP) ; TO
470 ROR (SP) ; BITS 15-14
471 BIC #^C<BUSA17!BUSA16>,(SP) ;TRIM EXCESS
472 .IFT
473 MOV (SP),DLYCNT-CSTAT(R1) ;SET MEMORY BITS
474 ADD R2,2(SP) ;COMPUTE FINAL TRANSFER ADDRESS
475 BCC 44$ ;NO CARRY-- GO ON
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 5-2
DTEMOP.MAC 04-JAN-83 11:15 MOP PROCESSOR
476 ADD #BUSA16,(SP) ;CARRY INTO THE HIGH PART
477 ERR CS,<LOAD REQUEST WRAPS AROUND 128K>,MOPFER
478 44$:
479 CMP (SP)+,R4 ;VERIFY HIGH ADDRESS
480 ERR HI,<LOAD REQUEST ABOVE LOADER>,MOPFER
481 BLO 46$ ;CHECK LOW ADDRESS ONLY IF EQ
482 CMP (SP),R5 ;VERIFY LOW ADDRESS
483 ERR HI,<LOAD REQUEST ON OR ABOVE LOADER>,MOPFER
484 46$:
485 TST (SP)+ ;REMOVE LOW ADDRESS
486 .IFF
487 MOV (SP)+,DLYCNT-CSTAT(R1) ;SET MEMORY BITS
488 001 .ENDC
489 .IFF
490 002 .IF DF M$$CHK
491 000312' 005767 000444 TST LODADR+2 ;MAKE SURE HIGH ADDRESS IS ZERO
492 000316' ERR NE,<LOAD REQUEST ABOVE LOADER>,MOPFER
493 000320' 010046 MOV R0,-(SP) ;ALSO SAVE LOW ADDRESS FOR COMPARE
494 000322' 060216 ADD R2,(SP) ;COMPUTE FINAL TRANSFER ADDRESS
495 000324' 022605 CMP (SP)+,R5 ;VERIFY LOW ADDRESS
496 000326' ERR HI,<LOAD REQUEST ON OR ABOVE LOADER>,MOPFER
497 001 .ENDC
498 000 .ENDC
499 000330' 60$:
500 000330' CALL DTERCA ;RECEIVE THEM BYTES
501 000334' 003410 BLE 80$ ;ALL DONE-- DO ANOTHER REQUEST
502 ;
503 ; READ TRANSFER ADDRESS INTO LODADR
504 ;
505 000336' 012700 000656 MOV #LODADR-MOP,R0 ;POINT BACK TO VIRTUAL MEMORY
506 000342' CALL DTERCV ;READ THE ADDRESS INTO VIRTUAL MEMORY
507 000346' 70$:
508 001 .IF DF S$$CLD
509 000346' 126727 000404 000002 CMPB MOPFNC,#M.PMLD ;MEMORY LOAD ONLY?
510 000354' 001005 BNE 90$ ;NO-- DO THE TRANSFER
511 .IFTF
512 ;
513 ; SEND REQUEST FOR NEXT MEMORY LOAD SEGMENT TO THE -10
514 ;
515 000356' 80$:
516 000356' 012700 000500 MOV #REQMLD-MOP,R0 ;GET ADDRESS OF MOP "REQUEST/ACKNOWLEDGE MEMORY LOAD"
517 000362' CALL DTESND ;SEND IT TO -10
518 .IFT
519 000366' 000661 BR MOPWAT ;AND WAIT FOR ANOTHER REQUEST
520 ;
521 000370' 90$:
522 .IFF
523 CMPB MOPFNC,#M.PMLD ;MEMORY LOAD ONLY?
524 BEQ MOPWAT ;YES-- WAIT FOR NEXT REQUEST
525 000 .ENDC
526 ;
527 ; TRANSFER TO ADDRESS NOW IN LODADR.
528 ;
529 001 .IF DF M$$CHK
530 000370' 005767 000366 TST LODADR+2 ;MUST HAVE A VIRTUAL (16-BIT) TRANSFER ADDRESS
531 000374' ERR NE,<TRANSFER ADDRESS ABOVE 32K>,,95$
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 5-3
DTEMOP.MAC 04-JAN-83 11:15 MOP PROCESSOR
532 000 .ENDC
533 001 .IF DF L$$DPR
534 MOV PC,R4 ; DATA FROM THE
535 ADD #<PRGDAT-.>,R4 ; RECEIVE BUFFER
536 MOV PARMAD,R5 ; TO THE STANDARD
537 CLR (R5)+ ;CLEAR OUT BINARY AREA
538 MOV #6,R0 ;CLEAR OUT NODE
539 110$: MOV #20040,(R5)+ ; AND HOST
540 SOB R0,110$ ; NAME AREAS
541 112$: MOV PARMAD,R5 ;ADDRESS BEGINNING OF STANDARD AREA
542 TSTB (R4) ;IF THERE ARE NO MORE PARMS,
543 BEQ 118$ ; GET OUT OF LOOP
544 CMPB (R4),#2 ;NODE NUMBER -
545 BEQ 115$ ; WE'RE POSITIONED RIGHT NOW
546 TST (R5)+ ;PAST BINARY AREA
547 DECB (R4) ;IF NOT
548 BEQ 115$ ; NODE NAME,
549 ADD #6,R5 ; BUMP TO HOST AREA
550 115$: INCB (R4)+ ;PAST PARM TYPE (MAKE IT NON-ZERO)
551 MOVB (R4)+,R0 ;PICK UP PARM LENGTH
552 116$: MOVB (R4)+,(R5)+ ;MOVE PARM TO
553 SOB R0,116$ ; STANDARD AREA
554 BR 112$ ;GO DO NEXT PARM
555 000 .ENDC
556 ;
557
558 000376' 010106 118$: MOV R1,SP ;COPY DTE STATUS ADDRESS
559 000400' 010100 MOV R1,R0 ; (ALSO TO HERE)
560 001 .IF DF L$$DPR
561 MOVB PRGDAT,R1 ;IF THERE IS
562 BEQ 120$ ; PROGRAM DATA,
563 MOV #-1,R1 ; FLAG THE FACT
564 MOV R1,R2 ; IN R1 AND R2
565 000 .ENDC
566 001 .IF DF M$$MGE
567 120$: ADD #DEXWD3-CSTAT,SP ;POINT TO DEXWD3, DEXWD2 FOR CODE
568 MOV (PC)+,(SP)+ ;(DEXWD3)
569 CLRSR0: CLR (SP) ;TURN OFF SEGMENTATION
570 MOV (PC)+,(SP)+ ;(DEXWD2)
571 JMP (R3) ;TRANSFER TO LOADED CODE.
572 MOV LODADR,R3 ;SET TRANSFER ADDRESS
573 MOV #SR0,SP ;ALSO WHERE TO DISABLE SEGMENTATION
574 DEBUG HALT,<TRANSFER ADDRESS READY>
575 JMP DEXWD3-CSTAT(R0) ;NOW TURN OFF SEGMENTATION AND TRANSFER.
576 .IFF
577 000402' DEBUG HALT,<TRANSFER ADDRESS READY>
578 000402' 000177 000352 JMP @LODADR ;TRANSFER TO IT.
579 000 .ENDC
580 001 .IF DF E$$CHK!D$$CHK!M$$CHK
581 ;
582 ; MOP FORMAT ERROR-- READ REST OF MOP MESSAGE AND REQUEST PROGRAM AGAIN
583 ;
584 002 .IF DF E$$CHK!M$$CHK
585 000406' MOPFER:
586 000406' 012702 000001 MOV #1,R2 ;READ ONE BYTE
587 000412' 012700 000754' MOV #RCVMSG,R0 ; INTO RCVMSG
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 5-4
DTEMOP.MAC 04-JAN-83 11:15 MOP PROCESSOR
588 000416' CALL DTERCV ; FROM -10
589 000422' 003371 BGT MOPFER ;NOT DONE-- READ ANOTHER
590 ; BR MOPERR ;DONE-- ABORT
591 001 .ENDC
592 ;
593 ; ERROR-- BACK TO REQUEST PROGRAM AGAIN
594 ;
595 000424' MOPERR:
596 002 .IF LT <<.-MOP>-256.>
597 000424' 000626 BR MOP ;SEND REQUEST PROGRAM
598 .IFF
599 JMP MOP ;SEND REQUEST PROGRAM
600 001 .ENDC
601 000 .ENDC
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 6
DTEMOP.MAC 04-JAN-83 11:15 MOP PROCESSOR
603
604 .SBTTL DTE SUBROUTINES
605 ;
606 ; DTESND -- SEND MESSAGE TO DTE20 FROM VIRTUAL
607 ; R0 -- ADDRESS WITHIN MOVED CODE TO SEND DATA FROM (BYTE COUNT WORD)
608 ; R1 -- VIRTUAL ADDRESS OF DTE20 "CSTAT" REGISTER
609 ; R4 -- PHYSICAL ADDRESS OF MOVED CODE (BITS 17-16, IN BITS 15-14)
610 ; R5 -- PHYSICAL ADDRESS OF MOVED CODE (BITS 15-0)
611 ;
612 000426' DTESND:
613 000426' 012711 050000 MOV #DON10C!ERR10C,(R1) ;RESET TO10DN AND TO10ER
614 000432' 012761 000001 000002 MOV #TO10BM,DIAG3-CSTAT(R1) ;SET TO -10 BYTE MODE
615 001 .IF DF M$$MGE
616 MOV R4,DLYCNT-CSTAT(R1) ;SET MEMORY EXTENSION BITS
617 000 .ENDC
618 001 .IF DF D$$CHK
619 000440' 010046 MOV R0,-(SP) ;SAVE ADDRESS
620 .IFTF
621 000442' 060500 ADD R5,R0 ;CONVERT TO PHYSICAL
622 000444' 010061 177764 MOV R0,TO10AD-CSTAT(R1) ;SET ADDRESS OF MOP MESSAGE
623 .IFT
624 000450' 062700 000002 ADD #2,R0 ;DON'T FORGET THE BYTE COUNT!
625 000454' 060716 ADD PC,(SP) ;CONVERT OFFSET WITHIN "MOP" TO VIRTUAL
626 000456' 062716 177424 ADD #MOP-.,(SP) ; . .
627 000462' 063600 ADD @(SP)+,R0 ;UPDATE ADDRESS BY BYTE COUNT
628 000 .ENDC
629 000464' 012711 002400 MOV #TO10DB!INT11C,(R1) ;RING -10'S DOORBELL WITH THIS MESSAGE
630 ;
631 ; WAIT FOR TO -10 TRANSFER
632 ;
633 000470' 10$:
634 001 .IF DF E$$CHK
635 000470' 032711 120000 BIT #TO10DN!TO10ER,(R1) ;DONE OR ERROR?
636 000474' 001775 BEQ 10$ ;NOT DONE OR ERROR-- WAIT
637 000476' ERR PL,<TO -10 TRANSFER ERROR>
638 .IFF
639 TST (R1) ;DONE?
640 BPL 10$ ;NO-- WAIT
641 000 .ENDC
642 001 .IF DF D$$CHK
643 000500' 020061 177764 CMP R0,TO10AD-CSTAT(R1) ;TRANSFER REQUESTED NUMBER OF BYTES?
644 000504' ERR NE,<TO -10 TRANSFER WRONG NUMBER OF BYTES>
645 000 .ENDC
646 000506' RETURN ;RETURN FROM DTESND
647 ;
648 ; DTERCV -- RECEIVE MESSAGE FROM DTE20 VIRTUAL
649 ; R0 -- ADDRESS WITHIN MOVED CODE TO STORE DATA
650 ; R1 -- VIRTUAL ADDRESS OF DTE20 "CSTAT" REGISTER
651 ; R2 -- BYTE COUNT TO BE RECEIVED
652 ; R3 -- GLOBAL BYTE COUNT
653 ; R4 -- PHYSICAL ADDRESS OF MOVED CODE (BITS 17-16, IN BITS 15-14)
654 ; R5 -- PHYSICAL ADDRESS OF MOVED CODE (BITS 15-0)
655 ;
656 000510' DTERCV:
657 001 .IF DF M$$MGE
658 MOV R4,DLYCNT-CSTAT(R1) ;SET EXTENDED MEMORY BITS
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 6-1
DTEMOP.MAC 04-JAN-83 11:15 DTE SUBROUTINES
659 000 .ENDC
660 000510' 060500 ADD R5,R0 ;MAKE PHYSICAL ADDRESS
661 ;
662 ; DTERCA -- RECEIVE FROM DTE20
663 ; R0 -- PHYSICAL RECEIVE ADDRESS (BITS 15-0)
664 ; R1 -- VIRTUAL ADDRESS OF DTE20 "CSTAT" REGISTER
665 ; R2 -- BYTE COUNT TO BE RECEIVED
666 ; R3 -- GLOBAL BYTE COUNT
667 ;
668 000512' DTERCA:
669 000512' 010061 177766 MOV R0,TO11AD-CSTAT(R1) ;SET ADDRESS
670 000516' 060200 ADD R2,R0 ;UPDATE ADDRESS
671 001 .IF DF T$$32K
672 BCC 10$ ;NO BOUNDARY-- OK
673 BEQ 10$ ;EXACTLY A BOUNDARY-- OK ALSO
674 ;
675 ; THE REQUESTED TRANSFER CROSSES A 32K BOUNDARY-- WE MUST
676 ; DO THE TRANSFER IN TWO PIECES
677 ;
678 MOV R0,-(SP) ;SAVE RESIDUAL COUNT ABOVE BOUNDARY
679 SUB R0,R2 ;CHANGE THIS COUNT TO JUST BELOW BOUNDARY
680 CLR R0 ;SET FINAL ADDRESS= 0
681 CALL 10$ ;DO THE FIRST PART OF THE TRANSFER
682 MOV (SP)+,R2 ;GET RESIDUAL COUNT
683 MOV R2,R0 ;THAT'S FINAL ADDRESS, ALSO
684 10$:
685 000 .ENDC
686 000520' 012711 000101 MOV #DON11C!ERR11C,(R1) ;RESET TO11DN AND TO11ER
687 000524' 160203 SUB R2,R3 ;LAST TRANSFER?
688 000526' 001403 BEQ 20$ ;YES-- SET TO11IB TO INDICATE "DONE" TO BOTH PROCESSORS
689 001 .IF DF E$$CHK
690 000530' ERR LT,<TO -11 MESSAGE TO SHORT>
691 000 .ENDC
692 000532' 052702 100000 BIS #TO11IB,R2 ;CLEAR TO11IB (WHEN WE NEG R2)
693 000536' 20$:
694 000536' 005402 NEG R2 ;NEGATE BYTE COUNT
695 000540' 042702 050000 BIC #^C<TO11IB!TO11BM!TO11CM>,R2 ;CLEAR UNUSED BITS
696 001 .IF DF E$$CHK
697 000544' ERR EQ,<TO -11 ZERO BYTE TRANSFER>
698 000 .ENDC
699 000546' 010261 177762 MOV R2,TO11BC-CSTAT(R1) ;START TRANSFER
700 ;
701 ; WAIT FOR TO -11 TRANSFER
702 ;
703 000552' 30$:
704 001 .IF DF E$$CHK
705 000552' 132711 000202 BITB #TO11DN!TO11ER,(R1) ;DONE OR ERROR?
706 000556' 001775 BEQ 30$ ;NOT DONE OR ERROR-- WAIT
707 000560' ERR PL,<TO -11 TRANSFER ERROR>
708 .IFF
709 TSTB (R1) ;DONE?
710 BPL 30$ ;NO-- WAIT
711 000 .ENDC
712 001 .IF DF D$$CHK
713 000562' 020061 177766 CMP R0,TO11AD-CSTAT(R1) ;TRANSFER PROPER NUMBER OF BYTES?
714 000566' ERR NE,<TO -11 TRANSFER WRONG NUMBER OF BYTES>
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 6-2
DTEMOP.MAC 04-JAN-83 11:15 DTE SUBROUTINES
715 000 .ENDC
716 001 .IF DF T$$32K
717 TST R0 ;THIS TRANSFER CROSS A 32K BOUNDARY?
718 BNE 40$ ;NO-- ALL OK
719 ADD #BUSA16,DLYCNT-CSTAT(R1) ;YES-- BUMP ADDRESS BITS
720 40$:
721 000 .ENDC
722 000570' 010302 MOV R3,R2 ;GET REMAINING COUNT, AND TST IT
723 000572' RETURN ;RETURN FROM DTERCV/DTERCA
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 7
DTEMOP.MAC 04-JAN-83 11:15 DTE SUBROUTINES
725
726 .SBTTL DATA
727 ;
728 ; MOP MESSAGE "REQUEST PROGRAM"
729 ;
730 000574' REQOPS:
731 000574' 000004 .WORD REQOPZ ;(2 BYTES) BYTE COUNT
732 000576' 010 .BYTE M.PRPR ;(0) FUNCTION = REQUEST PROGRAM
733 000577' 024 .BYTE 20. ;(1) DEVICE TYPE = DTE20/11
734 000600' 001 .BYTE 1 ;(2) STATION ADDRESS = 1
735 001 .IF DF S$$CLD
736 000601' 001 .BYTE 1 ;(3) PROGRAM TYPE = TERTIARY LOADER
737 .IFF
738 .BYTE 2 ;(3) PROGRAM TYPE = OPERATING SYSTEM
739 000 .ENDC
740 000004 REQOPZ= .-REQOPS-2
741 .EVEN
742 ;
743 ; MOP MESSAGE "REQUEST/ACKNOWLEDGE MEMORY LOAD"
744 ;
745 000602' REQMLD:
746 000602' 000002 .WORD REQMLZ ;(2 BYTES) BYTE COUNT
747 000604' 012 .BYTE M.PRML ;(0) FUNCTION = REQUEST/ACKNOWLEDGE MEMORY LOAD
748 000605' 000 LODNUM: .BYTE 0 ;(1) LOAD NUMBER (START AT 0)
749 000002 REQMLZ= .-REQMLD-2
750 ;
751 ; LOAD PARAMETER BLOCK FOR PROGRAM
752 ;
753 000606' 000000 PARMAD: .WORD 0 ;VIRTUAL ADDRESS OF STANDARD PROGRAM DATA AREA
754 000610' PRGDAT:
755 000610' 000 .BYTE 0 ;FIRST BYTE INDICATES EXISTENCE
756 000611' FIT DTEMOP,M$$XSZ,<CODE>
(1) 000611' 000167 .PRINT <M$$XSZ-<.-DTEMOP>> ; FREE FOR CODE
757 000611' 000143 .BLKB 100.-1 ;LOAD PARAMETERS FOR PROGRAM
758 ;
759 ; RECEIVED MOP MESSAGE
760 ;
761 .EVEN
762 000754' RCVMSG:
763 000754' 000001 BYTCNT: .BLKW 1 ;BYTE COUNT
764 000756' 000001 MOPFNC: .BLKB 1 ;MOP FUNCTION
765 000757' 000001 RCVLDN: .BLKB 1 ;LOAD NUMBER RECEIVED
766 000760' 000004 LODADR: .BLKB 4 ;LOAD ADDRESS/TRANSFER ADDRESS
767 ;
768 ; STACK
769 ;
770 .EVEN
771 000764' 000004 .BLKW 4
772 000774' STACK:
773 ;
774 000774' FIT MOP,M$$XSZ,<MOVED CODE>
(1) 000774' 000106 .PRINT <M$$XSZ-<.-MOP>> ; FREE FOR MOVED CODE
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 8
DTEMOP.MAC 04-JAN-83 11:15 DATA
776
777 .SBTTL END
778 000774' PASS2:
779 000000' .END DTEMOP
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 9
DTEMOP.MAC 04-JAN-83 11:15 CROSS REFERENCE TABLE -- USER SYMBOLS
BIT0 = 000001 152# 250 252
BIT1 = 000002 153# 249
BIT10 = 002000 162# 245
BIT11 = 004000 163# 244
BIT12 = 010000 164# 243
BIT13 = 020000 165# 229 242
BIT14 = 040000 166# 219 241
BIT15 = 100000 167# 218 228 240
BIT2 = 000004 154#
BIT3 = 000010 155#
BIT4 = 000020 156#
BIT5 = 000040 157# 190
BIT6 = 000100 158# 238 248
BIT7 = 000200 159# 247
BIT8 = 000400 160# 246
BIT9 = 001000 161#
BUSA16= 040000 219#
BUSA17= 100000 218#
BYTCNT 000754R 413 763#
CSTAT = 000034 239# 341* 383* 614* 622* 643 669* 699* 713
DEXWD1= 000006 223#
DEXWD2= 000004 222#
DEXWD3= 000002 221#
DIAG1 = 000030 236#
DIAG2 = 000032 237# 383*
DIAG3 = 000036 251# 614*
DLYCNT= 000000 217# 341*
DLYMSK= 037777 220#
DON10C= 040000 241# 613
DON11C= 000100 248# 686
DRESET= 000100 238# 383
DTEMOP 000000R 270# 756 779
DTERCA 000512R 415 452 500 668#
DTERCV 000510R 408 506 588 656#
DTESND 000426R 395 517 612#
D$$BUG= ****** U 271 381 425 435 492 496 531 577 637 644 690 697 707
714
D$$CHK= 000000 77# 382 580 618 642 712
ERR10C= 010000 243# 613
ERR11C= 000001 250# 686
E$$CHK= 000000 76# 382 416 580 584 634 689 696 704
INT11C= 002000 245# 629
KISAR0= 172340 205#
KISAR1= 172342 206#
KISAR2= 172344 207#
KISAR3= 172346 208#
KISAR4= 172350 209#
KISAR5= 172352 210#
KISAR6= 172354 211#
KISAR7= 172356 212#
KISDR0= 172300 196#
KISDR1= 172302 197#
KISDR2= 172304 198#
KISDR3= 172306 199#
KISDR4= 172310 200#
KISDR5= 172312 201#
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 9-1
DTEMOP.MAC 04-JAN-83 11:15 CROSS REFERENCE TABLE -- USER SYMBOLS
KISDR6= 172314 202#
KISDR7= 172316 203#
LODADR 000760R 446 458 491 505 530 578 766#
LODNUM 000605R 386* 434 439* 748#
L$$DPR= ****** U 387 533 560
MOP 000102R 357 380# 394 405 505 516 596 597 626 774
MOPERR 000424R 531 595# 637 644 690 697 707 714
MOPFER 000406R 425 435 492 496 585# 589
MOPFNC 000756R 420 444 454 509 764#
MOPWAT 000132R 399# 401 519
M$$CHK= 000000 78# 382 490 529 580 584
M$$MGE= ****** U 297 459 566 615 657
M$$XSZ= 001000 85# 331 356 756 774
M.PDAP= 000020 180#
M.PEAM= 000022 181#
M.PEMM= 000006 175#
M.PLBT= 000030 183#
M.PLDP= 000024 182# 422 444
M.PMDP= 000016 179#
M.PMLD= 000002 173# 424 454 509
M.PMLT= 000000 172#
M.PMMR= 000014 178#
M.PRMD= 000004 174#
M.PRML= 000012 177# 747
M.PRPR= 000010 176# 732
PARMAD 000606R 355* 356* 753#
PASS2 000774R 756 774 778#
PRGDAT 000610R 446 754#
PR7 = 000340 190# 280
PS = 177776 189#
RCVLDN 000757R 431 765#
RCVMSG 000754R 405 587 762#
REQMLD 000602R 516 745# 749
REQMLZ= 000002 746 749#
REQOPS 000574R 394 730# 740
REQOPZ= 000004 731 740#
SR0 = 177572 194#
STACK 000774R 295 360 385 772#
SWR = 177570 188#
S$$CLD= 000000 20# 24 25 508 735
TENAD1= 000010 224#
TENAD2= 000012 225#
TO10AD= 000020 231# 622* 643
TO10BC= 000014 226#
TO10BM= 000001 252# 614
TO10DB= 000400 246# 629
TO10DN= 100000 240# 635
TO10DT= 000024 233#
TO10ER= 020000 242# 635
TO11AD= 000022 232# 669* 713
TO11BC= 000016 227# 699*
TO11BM= 020000 229# 695
TO11CM= 007777 230# 695
TO11DB= 004000 244# 288 400
TO11DN= 000200 247# 705
TO11DT= 000026 234#
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 9-2
DTEMOP.MAC 04-JAN-83 11:15 CROSS REFERENCE TABLE -- USER SYMBOLS
TO11ER= 000002 249# 705
TO11IB= 100000 228# 692 695
T$$RLD= ****** U 24 26 79 272
T$$32K= ****** U 671 716
. = 000774R 385 596 626 740 749 756 757# 763# 764# 765# 766# 771# 774
DTEMPS -- DTE20 MOP SECONDARY BOOTSTRAP DNMAC X24.07-563 25-JAN-83 09:51 PAGE 10
DTEMOP.MAC 04-JAN-83 11:15 CROSS REFERENCE TABLE -- MACRO NAMES
CALL 91# 395 408 415 452 500 506 517 588
DEBUG 102# 271 381 425 435 492 496 531 577 637 644 690 697 707 714
ERR 113# 425 435 492 496 531 637 644 690 697 707 714
FIT 139# 756 774
RETURN 95# 646 723
. ABS. 000000 000 CON RW ABS LCL I
000774 001 OVR RO REL GBL D
ERRORS DETECTED: 0
DEFAULT GLOBALS GENERATED: 0
DTEMPS,DTEMPS/CRF=DTEMPS,DTEMOP
RUN-TIME: 1 1 .2 SECONDS
RUN-TIME RATIO: 7/3=2.2
CORE USED: 6K (11 PAGES)