Trailing-Edge
-
PDP-10 Archives
-
BB-H311B-RM
-
rsx20f-swskit/listings/klinit.l20
There are 3 other files named klinit.l20 in the archive. Click here to see a list.
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10
TABLE OF CONTENTS
8- 410 MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE
12- 543 DMBMCP -- DTE-20 OPERATION MACROS
32- 1136 REGISTER SAVE/RESTORE TRANSLATION MACROS
52- 1754 $LDNGO -- LOAD AC BLOCKS AND GO
53- 1811 $ZERAC -- ZERO AC SETS 0 TO 6
54- 1842 $XCDT -- INSTRUCTION EXECUTER
56- 1955 $SETCA -- CONFIGURE CACHE
60- 2179 $MCBLD -- LOAD THE RAMS
68- 2609 $FILE -- WRITE THE CONFIGURATION FILE
70- 2827 $FILE -- WRITE BOOTSTRAP RECORD
71- 2866 $FILE -- WRITE END-OF-FILE RECORD
72- 2882 $FILE -- WRITE MEMORY CONTROLLER RECORDS
73- 2917 $FILE -- WRITE CACHE RECORDS
75- 2998 $CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
77- 3309 $CHKIM -- CHECK INTERNAL MEMORY MASK WORD
78- 3438 $CHKMM -- CHECK MOS MEMORY CONFIGURATION
80- 3587 $CONFG -- EDITOR DISPATCH
81- 3622 CFGINT -- INTERNAL MEMORY CONFIGURATION EDITOR
82- 3697 CFGEXT -- EXTERNAL MEMORY CONFIGURATION EDITOR
83- 3738 CFGMOS -- MOS CONFIGURATION EDITOR
84- 3798 $MAPMM -- MAP MOS CONTROLLER BLOCKS
86- 3860 $SWEEP -- SWEEP AND INVALIDATE THE CACHE
88- 3933 $CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG
90- 4058 $CLOSE -- CLOSE FILES AND WRITE ATTRIBUTES
95- 4257 $DELETE -- DELETE A FILE
96- 4287 $SETFN -- SET FILE NAME IN FILE NAME BLOCK
98- 4356 $IOERR -- REPORT I/O ERROR
101- 4472 $LOOKUP -- LOOK UP AN EXISTING FILE
103- 4559 $ENTER -- ENTER A NEW FILE
105- 4643 $PURGE -- PURGE FILES CURRENTLY OPEN
107- 4707 $READC -- START READING A RECORD
108- 4735 $READS -- SKIP THE CURRENT RECORD
109- 4759 $READW -- READ A WORD
110- 4792 $READB -- READ A BYTE
111- 4822 $READ -- READ NEXT VIRTUAL BLOCK
113- 4893 $WRITC -- START WRITING A RECORD
114- 4920 $WRITS -- ZERO REMAINDER OF CURRENT BLOCK
115- 4950 $WRITW -- WRITE A WORD
116- 4984 $WRITB -- WRITE A BYTE
117- 5010 $WRITE -- WRITE NEXT VIRTUAL BLOCK
119- 5081 $EXTEND -- EXTEND OUTPUT FILE BY ONE BLOCK
121- 5148 $WCRAM -- WRITE C-RAM WORD
122- 5217 $RCRAM -- READ C-RAM WORD
123- 5316 $ACRAM -- ADDRESS C-RAM WORD
125- 5388 $WDRAM -- WRITE D-RAM WORD
126- 5441 $RDRAM -- READ D-RAM WORD
127- 5497 $ADRAM -- ADDRESS D-RAM WORD
129- 5587 $DPOS -- DEPOSIT KL MEMORY ROUTINE
130- 5624 $EXAM -- EXAMINE KL MEMORY ROUTINE
133- 5744 $DFRD -- DIAGNOSTIC READ FUNCTION
135- 5821 $DFWR -- DIAGNOSTIC WRITE FUNCTION
138- 5920 $DFXC -- DIAGNOSTIC EXECUTE FUNCTION
140- 5994 $GETCA -- SET CACHE CONFIGURATION TABLES
143- 6095 $GETMM -- SET UP MEMORY CONFIGURATION TABLES
145- 6226 $GETTF -- READ MF20 TIMING FILE DATA
149- 6475 $KLMR -- DO A MASTER RESET ON THE KL
149- 6540 $KLSR -- SOFT RESET FOR RAM LOADERS
KLINI -- PROGRAM INITIALIZATION MACRO M1110 12-OCT-79 14:10
TABLE OF CONTENTS
151- 6641 $INIT -- PROGRAM INITIALIZATION
153- 6751 $DFPC -- KL PC READ SUBROUTINE 7510.21
156- 6879 $DLGBT -- ASK IF LOADING BOOT IS REQUIRED
157- 6946 $DLWCF -- ASK IF CONFIGURATION FILE IS TO BE WRITTEN
158- 6995 LQBRBF -- LOCAL SUBROUTINE TO READ SAVED BOOT FLAG
160- 7086 $DLGCA -- ASK IF CACHE IS TO BE CONFIGURED
161- 7120 LQCCM -- ASK WHICH CACHES TO CONFIGURE
163- 7193 $DLGEX -- ASK WHERE TO EXIT
166- 7288 $DLGMM -- ASK WHETHER TO CONFIGURE THE KL MEMORY
168- 7441 $DLGCT -- ASK FOR MEMORY CONTROLLER NUMBER
170- 7514 $DLGRM -- ASK IF RELOAD MICROCODE IS REQUIRED
172- 7664 $DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
177- 8007 $POWER -- POWER FAILURE RESTART
182- 8197 GLOBAL DATA STORAGE
186- 8450 $START -- MAIN PROGRAM FLOW CONTROL
187- 8558 $DTRXX -- DTE20 REGISTER READ/WRITE SUBROUTINES
188- 8599 $RSAVE -- SAVE REGISTERS FOR ROUTINES
188- 8613 $ASCII -- TRANSFER ASCII STRING
189- 8634 $TRACK -- SPECIAL TRACK ROUTINE
191- 8774 $TENST -- START KL BOOT
193- 8900 $TRB2F -- TRANSLATE BINARY TO ASCII FILENAME
194- 8939 $TRF2B -- TRANSLATE ASCII FILE-NAME TO BINARY
196- 9010 $TRB2I -- TRANSLATE BINARY WORD TO INTEGER ASCII
197- 9061 $TRI2B -- TRANSLATE ASCII INTEGER TO BINARY WORD
199- 9154 $TRCRM -- TRANSLATE CRAM FILE ENTRY TO ASCII OCTAL
200- 9218 $TRDRM -- TRANSLATE DRAM FILE ENTRY TO ASCII OCTAL
201- 9294 TROCT -- TRANSLATE OCTAL VALUE TO ASCII DIGITS
203- 9351 $TENAD -- DISPLAY KL ADDRESS/16K
205- 9433 $WRD22 -- DISPLAY 22 BIT KL WORD
206- 9461 $WRD36 -- DISPLAY 36 BIT KL WORD
209- 9579 $TRB2O -- TRANSLATE BINARY WORD AS OCTAL ASCII
210- 9632 $TRO2B -- TRANSLATE ASCII OCTAL NUMBER TO BINARY WORD
212- 9707 $TRR2B -- TRANSLATE ASCII TO RAD50 WORD
213- 9753 $TRB2R -- TRANSLATE RAD50 WORD TO ASCII
215- 9864 $TTRD -- READ A LINE FROM THE CONSOLE TTY
217- 9953 $TTMSG -- WRITE A MESSAGE TO THE CONSOLE TTY
218-10004 $TTWR -- WRITE A LINE TO THE CONSOLE TTY
220-10073 $EXBLD -- LOAD THE BOOT
224-10278 $EXCT -- EXECUTE KL INSTRUCTION
225-10309 $STRKL -- START THE KL PROCESSOR
226-10365 $WTKL -- WAIT FOR KL PROGRAM TO HALT
227-10394 $LDAR -- LOAD THE AR REGISTER
228-10419 STPKL -- HALT THE KL CPU
229-10476 $MBPHS -- PHASE THE KL CLOCKS
230-10528 $BURST -- BURST THE M-BOX CLOCK
RSXFC -- RSX20F PARAMETER FIL MACRO M1110 12-OCT-79 14:10 PAGE 1
1 .TITLE RSXFC -- RSX20F PARAMETER FILE (TOPS-20 SYSTEM DEFINITION)
2 .IDENT /013100/
3 ;
4 ; COPYRIGHT (C) 1977, 1978 BY
5 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
6 ;
7 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
8 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
9 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
10 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
11 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
12 ;
13 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
14 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
15 ; CORPORATION.
16 ;
17 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
18 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
19
20
21 ;
22 ; VERSION 13-10
23 ;
24 ; ALAN D. PECKHAM 19-APR-77
25 ;
26 ; MODIFIED BY:
27 ;
28 ; R. BELANGER -- ELIMINATE 1090T "ARPA" CONFIGURATTION
29 ; R. BELANGER -- ADD 1091 CONFIGURATION
30 ;
31 ; FUNCTION: THIS MODULE PROVIDES THE PARAMETERS FOR ASSEMBLY OF RSX20F FOR
32 ; THE TOPS-20 SYSTEM.
33 ;
34 ; EQUATED SYMBOLS
35 ;
36 000001 $TOP20 =1 ; DEFINE TOPS-20 OPTION
37
38 000001 $LP20 =1 ; INCLUDE LP20 DRIVER
39 000002 L$$P20 =2 ; INCLUDE 2 LP-20'S
40 000001 $CD11 =1 ; INCLUDE CD11 CARD READER DRIVER
41 000001 $RP04 =1 ; INCLUDE RP04 DISK DRIVER
42 000001 $FE =1 ; INCLUDE FE PSEUDO-DEVICE DRIVER
43 000001 $F11 =1 ; INCLUDE FILES-11 ACP
44 000001 $DH11 =1 ; INCLUDE DH11 DRIVER
45 000010 D$$H11 =8. ; INCLUDE 8 DH-11'S
46 000001 $DBDTE =1 ; INCLUDE DTE20 DEBUGGING CODE
47 000001 $DTE =1 ; INCLUDE DTE20 DTE DRIVER
48 000001 R$$11D =1 ; RSX-11D BASE
49
50 .IF DF $T1091
51 $TOP10 =1 ; DEFINE TOPS-10 BASE FOR 1091
52 .ENDC ; $T1091
53
54 .IF DF $TOP10
55 .IF NDF $T1091
56 $DTA =1 ; INCLUDE DECTAPE DRIVER FOR TOPS-10
57 .IFF
RSXFC -- RSX20F PARAMETER FIL MACRO M1110 12-OCT-79 14:10 PAGE 1-1
58 $RX11 =1 ; INCLUDE FLOPPY DRIVER FOR TOPS-10/1091
59 .ENDC ; $T1091
60 .ENDC ; $TOP10
61
62 .IF DF $TOP20
63 000001 $RX11 =1 ; INCLUDE FLOPPY DRIVER
64 .ENDC ; $TOP20
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 2
66 .TITLE KLINIT - KL CPU INITIALIZATION PROGRAM
67 .IDENT /012120/
68 .ENABL AMA
69 .LIST MEB
70 .NLIST CND
71
72 ;
73 ; COPYRIGHT (C) 1975, 1978 BY
74 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
75 ;
76 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
77 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
78 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
79 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
80 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
81 ;
82 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
83 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
84 ; CORPORATION.
85 ;
86 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
87 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
88 ;
89 ; VERSION: 12-12
90 ;
91 ; ALAN D. PECKHAM 29-MAR-77
92 ;
93 ; MODIFIED BY:
94 ;
95 ; R. BELANGER 16-JUL-79 ADD ENVIRONMENTAL REPORTING
96 ; TCO 4.2333
97 ;
98 ; R. BELANGER 11-JUL-79 ADD FORCE MEMORY CONFIGURATION OPTION.
99 ; ADD FORCE DBE SCAN ON MF-20 POWERFAIL.
100 ; TCO 4.2322
101 ;
102 ; K. LEFEBVRE 13-MAR-79 ADD EXPANDED CRAM/DRAM ERROR REPORT
103 ; TCO 4.2209
104 ;
105 ; K. LEFEBVRE 01-MAR-79 ADD PERMANENT TRACK FEATURE
106 ; TCO 4.2210
107 ;
108 ; R. BELANGER 01-MAR-79 ADD REVERSE MEMORY CONFIGURATION
109 ; TCO 4.2204
110 ;
111 ; R. BELANGER 06-DEC-78 ADD NEW KEEP-ALIVE-CEASE PROCESSING
112 ; TCO 4.2107
113 ;
114 ; R. BELANGER 16-NOV-78 ADD TOPS-10 SMP FEATURES
115 ; CHANGE VERSION TO 11
116 ;
117 ; R. BELANGER 25-JUL-78 INTEGRATE MOS CONFIGURATOR
118 ; CHANGE VERSION TO 10
119 ;
120 ; R. BELANGER 27-JAN-78 CHANGE VERSION TO 7
121 ; REMOVE "$ARPA" CONDITIONALS
122 ; ADD "$RV" CONDITIONAL
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 2-1
123 ; REMOVE "SXCT" CODE FOR REV. 10 MACHINES
124 ;
125 ; R. BELANGER 10-SEP-77 CHANGE VERSION TO 6
126 ; INCLUDE INTERNAL AND EXTERNAL
127 ; MEMORY CONFIGURATORS
128 ;
129 ; THIS MODULE CONTAINS SYMBOLS AND MACROS USED GENERALLY BY ALL KLINIT
130 ; MODULES.
131 ;
132 ; SET VERSION OF KLINIT HERE
133 ;
134 000012 KLI$$V = 12 ; VERSION 12
135 000012 KLI$$E = 12 ; EDIT 12
136 ;
137 ; THIS KLINIT IS RELEASED
138 ;
139 000126 KLI$$K = 'V ; KEY FOR RELEASE
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 3
141 ;+
142 ; NOW SET THE SWITCHES WHICH WILL DETERMINE WHAT KLINIT WILL
143 ; INTERFACE TO.
144 ;
145 ; C.ACHE IF DEFINED WILL ALLOW KLINIT TO HANDLE CACHES
146 ;
147 ; F.TRCK IF DEFINED WILL INCLUDE CODING TO ALLOW TRACKING OF FUNCTIONS
148 ; BEING DONE ON THE KL CPU
149 ;
150 ; F.PTCH IF DEFINED WILL INCLUDE A FREE AREA LABELED "PATCH" IN WHICH
151 ; TO INSERT CODING PATCHES DURING PROGRAM DEBUGGING
152 ;
153 ; DEFINITIONS MADE HERE:
154 ;-
155
159
163
165 000102 KLI$$F = 'B ; TOPS20 FORM OF KLINIT.
167
168 000000 C.ACHE = 0 ; SYSTEM HAS CACHE
169
170 000000 F.TRCK = 0 ; [TCO 4.2210] INCLUDE FUNCTION TRACK
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 4
172 ;
173 ; GLOBAL MACROS
174 ;
175 .MCALL $DEF,DIR$
176 000000 $DEF
177
178 ;
179 ; LOCAL MACROS
180 ;
181 ;+
182 ; MACRO TO SET IDENT FOR KLINIT MODULES.
183 ; FORMAT OF CALL IS:
184 ; IDENT$ VERSION,EDIT
185 ; OR
186 ; IDENT$ VERSION,EDIT,KLI$$F
187 ; IF MODULE CODING CHANGES WITH DIFFERENT FORMS
188 ;-
189
190 .MACRO IDENT$ VER,EDT,FRM,XA,XB,XC,NUM
191 .IF B,NUM
192 .IF B,FRM
193 IDENT$ \VER,\EDT,0,,,,0
194 .IFF
195 .IF EQ,<FRM-'A>
196 IDENT$ \VER,\EDT,A,,,,0
197 .IFF
198 .IF EQ,<FRM-'B>
199 IDENT$ \VER,\EDT,B,,,,0
200 .IFF
201 IDENT$ \VER,\EDT,C,,,,0
202 .ENDC
203 .ENDC
204 .ENDC
205 .MEXIT
206 .IFF
207 .IF GE,VER-10
208 .IF GE,EDT-10
209 .LIST
210 .IDENT /'FRM'VER'EDT'0/
211 .NLIST
212 .IFF
213 .LIST
214 .IDENT /'FRM'VER'0'EDT'0/
215 .NLIST
216 .ENDC
217 .IFF
218 .IF GE,EDT-10
219 .LIST
220 .IDENT /'FRM'0'VER'EDT'0/
221 .NLIST
222 .IFF
223 .LIST
224 .IDENT /'FRM'0'VER'0'EDT'0/
225 .NLIST
226 .ENDC
227 .ENDC
228 .ENDC
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 4-1
229 .ENDM IDENT$
230
231 .MACRO CALL X,Y
232 .NTYPE $$,X
233 .IF EQ,$$&70
234 JSR X,Y
235 .IFF
236 JSR PC,X
237 .ENDC
238 .ENDM CALL
239
240 .MACRO CALLR X
241 JMP X
242 .ENDM CALLR
243
244 .MACRO RETURN X
245 .IF NB,<X>
246 RTS X
247 .IFF
248 RTS PC
249 .ENDC
250 .ENDM RETURN
251
252 .MACRO PUSH LOCS
253 .IRP L,<LOCS>
254 MOV L,-(SP)
255 .ENDR
256 .ENDM PUSH
257
258 .MACRO POP LOCS
259 .IRP L,<LOCS>
260 MOV (SP)+,L
261 .ENDR
262 .ENDM POP
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 5
264 ;
265 ; SHIFT MACROS
266 ;
267 .MACRO SL R,N
268 .IF GT,N-7
269 SWAB R
270 .REPT N-10
271 ASL R
272 .ENDR
273 .IFF
274 .REPT N
275 ASL R
276 .ENDR
277 .ENDC
278 .ENDM SL
279
280 .MACRO SR R,N
281 .IF GT,N-7
282 SWAB R
283 .REPT N-10
284 ASR R
285 .ENDR
286 .IFF
287 .REPT N
288 ASR R
289 .ENDR
290 .ENDC
291 .ENDM SR
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 6
293 ;
294 ; KL INSTRUCTION AND DATA CREATION MACROS
295 ;
296 000005 I.10L = 5 ; KL INSTRUCTIONS TAKE 5 -11 BYTES !!!!
297 000005 W.10L = 5 ; KL WORDS TAKE 5 BYTES ALSO.
298
299 .MACRO I10$ OP,AC,I,AD,XR
300 BY$$0=0
301 BY$$1=0
302 BY$$2=0
303 .IRPC AD1,AD
304 BY$$2=<BY$$2*10&370>+<BY$$1/40&007>
305 BY$$1=<BY$$1*10&370>+<BY$$0/40&007>
306 BY$$0=<BY$$0*10&370>+<AD1>
307 .ENDM
308 BY$$2=<AC+0&1*200>+<I+0&1*100>+<XR+0&17*4>+BY$$2
309 BY$$3=<OP&37*10>+<AC+0/2&7>
310 BY$$4=<OP/40>
311 .BYTE BY$$0,BY$$1,BY$$2
312 .BYTE BY$$3,BY$$4
313 .ENDM I10$
314
315 .MACRO IO10$ OP,DV,I,AD,XR
316 BY$$0=0
317 BY$$1=0
318 BY$$2=0
319 .IRPC AD1,AD
320 BY$$2=<BY$$2*10&370>+<BY$$1/40&007>
321 BY$$1=<BY$$1*10&370>+<BY$$0/40&007>
322 BY$$0=<BY$$0*10&370>+<AD1>
323 .ENDM
324 BY$$2=<OP&1*200>+<I+0&1*100>+<XR+0&17+0*4>+BY$$2
325 BY$$3=<DV&374>+<OP/2&3>
326 BY$$4=16+<DV/400&1>
327 .BYTE BY$$0,BY$$1,BY$$2
328 .BYTE BY$$3,BY$$4
329 .ENDM IO10$
330
331 .MACRO WD22$ AD
332 BY$$0=0
333 BY$$1=0
334 BY$$2=0
335 .IRPC AD1,AD
336 BY$$2=<BY$$2*10&370>+<BY$$1/40&007>
337 BY$$1=<BY$$1*10&370>+<BY$$0/40&007>
338 BY$$0=<BY$$0*10&370>+<AD1>
339 .ENDM
340 .BYTE BY$$0,BY$$1,BY$$2
341 .ENDM WD22$
342
343 .MACRO WD36$ LH,RH
344 BY$$0=0
345 BY$$1=0
346 BY$$2=0
347 BY$$3=0
348 BY$$4=0
349 .IRPC AD1,LH
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 6-1
350 BY$$4=<BY$$4*10&010>+<BY$$3/40&007>
351 BY$$3=<BY$$3*10&370>+<BY$$2/40&007>
352 BY$$2=<BY$$2*10&340>+<AD1*4>
353 .ENDM
354 .IRPC AD1,RH
355 BY$$2=<BY$$2&374>+<BY$$1/40&003>
356 BY$$1=<BY$$1*10&370>+<BY$$0/40&007>
357 BY$$0=<BY$$0*10&370>+<AD1>
358 .ENDM
359 .BYTE BY$$0,BY$$1,BY$$2
360 .BYTE BY$$3,BY$$4
361 .ENDM WD36$
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 7
363 ;
364 ; MESSAGE FORMATING AND PRINT MACROS
365 ;
366 .MACRO MESSAGE MSG
367 .ASCIZ \'MSG'\
368 .ENDM MESSAGE
369
370 .MACRO WARNING MSG
371 .ASCIZ \% 'MSG'\
372 .ENDM WARNING
373
374 .MACRO ERROR MSG
375 .ASCIZ \? 'MSG'\
376 .ENDM ERROR
377
378 .MACRO PRINT ADR
379 .IF NB,<ADR>
380 MOV ADR,R0
381 .ENDC
382 JSR PC,$TTMSG
383 .ENDM PRINT
384
385 ;--- SPECIAL TRACK MACRO
386
387 .MACRO TRACK FN,ADR1,ADR2,?A1
388 .IF DF,F.TRCK
389 JSR R0,A1
390 .WORD "FN
391 .WORD ADR1
392 .WORD ADR2
393 A1: JSR PC,$TRACK
394 MOV (SP)+,R0
395 .ENDC
396 .ENDM TRACK
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 8
398 ;
399 ; EQUATED SYMBOLS
400 ;
401 000200 ED.PHY = 200
402 000001 TTILUN = 1 ; TT: INPUT LOGICAL UNIT
403 000002 TTOLUN = 2 ; TT: OUTPUT LOGICAL UNIT
404 000003 LPOLUN = 3 ; LP: OUTPUT LOGICAL UNIT
405 000004 SYILUN = 4 ; SY: INPUT LOGICAL UNIT
406 000005 SYOLUN = 5 ; SY: OUTPUT LOGICAL UNIT
407 000006 SYFLUN = 6 ; SY: GENERAL FUNCTION LOGICAL UNIT
408 000040 CTLS = 40 ; MAXIMUM NUMBER OF CONTROLLERS.
409 000037 LCTL = CTLS-1 ; LAST CONTROLLER NUMBER.
410 .SBTTL MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE
411
412 .IDENT /001020/
413
414 ; COPYRIGHT (C) 1975, 1978 BY
415 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
416 ;
417 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
418 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
419 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
420 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
421 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
422 ;
423 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
424 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
425 ; CORPORATION.
426 ;
427 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
428 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
429 ;
430 ; VERSION: 01-02
431 ;
432 ; AUTHOR: R. BELANGER
433 ;
434 ; DATE: 11-AUG-78
435 ;
436 ; MODIFICATIONS:
437 ;
438 ; EDIT PROGRAMMER REASON
439 ; ---- ---------- ------
440 ; 001 R. BELANGER FIX BUG IN "PMSG"
441 ; 4.2218 K. LEFEBVRE FIX BUG IN "EXAM"
442
443 .MCALL $DEF
444
445 000000 $DEF
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 9
MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE
447 .MACRO CALL X,Y
448 .NTYPE $$,X
449 .IF EQ,$$&70
450 JSR X,Y
451 .IFF
452 JSR PC,X
453 .ENDC
454 .ENDM CALL
455
456 .MACRO CALLR X
457 JMP X
458 .ENDM CALLR
459
460 .MACRO RETURN X
461 .IF NB,<X>
462 RTS X
463 .IFF
464 RTS PC
465 .ENDC
466 .ENDM RETURN
467
468 .MACRO PUSH LOCS
469 .IRP L,<LOCS>
470 MOV L,-(SP)
471 .ENDR
472 .ENDM PUSH
473
474 .MACRO POP LOCS
475 .IRP L,<LOCS>
476 MOV (SP)+,L
477 .ENDR
478 .ENDM POP
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 10
MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE
480 .MACRO SL REG,NUM
481 .IF GT,NUM-7
482 .IFT
483 SWAB REG
484 .REPT NUM-^D8
485 ASL REG
486 .ENDR
487 .IFF
488 .REPT NUM
489 ASL REG
490 .ENDR
491 .ENDC
492 .ENDM
493
494 .MACRO SR REG,NUM
495 .IF GT,NUM-7
496 .IFT
497 SWAB REG
498 .REPT NUM-^D8
499 ASR REG
500 .ENDR
501 .IFF
502 .REPT NUM
503 ASR REG
504 .ENDR
505 .ENDC
506 .ENDM
507
508 .MACRO EXOR REG,DESTIN,SCRTCH
509 .IF NB,SCRTCH
510 .IFT
511 MOV REG,SCRTCH
512 BIC DESTIN,SCRTCH
513 BIC REG,DESTIN
514 BIS SCRTCH,DESTIN
515 .IFF
516 MOV REG,-(SP)
517 BIC DESTIN,(SP)
518 BIC REG,DESTIN
519 BIS (SP)+,DESTIN
520 .ENDC
521 .ENDM
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 11
MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE
523
524 000000 STPCLK= 000 ; STOP CLOCK
525 000001 STRCLK= 001 ; START CLOCK
526 000002 SSCLK= 002 ; SINGLE STEP THE MBOX CLOCK
527 000003 SECLK= 003 ; SINGLE STEP EBOX CLOCK
528 000004 CECLK= 004 ; CONDITIONAL EBOX CLOCK
529 000006 CLRMR= 006 ; CLEAR MR RESET
530 000007 SETMR= 007 ; SET MR RESET
531 000005 BRCLK= 005 ; BURST THE CLOCK
532 000011 SETRUN= 011 ; SET THE RUN FLOP
533 000012 CONBUT= 012 ; SET THE CONTINUE BUTTON
534 000077 LDAR= 077 ; LOAD THE AR REGISTER
535
536 000002 $SBDIAG=BLKO
537 000004 $$SBDIAG=PI
538 000000 $APRID=BLKI
539 000000 $$APRID=APR
540 000000 $RDERA=BLKI
541 000004 $$RDERA=PI
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 12
DMBMCP -- DTE-20 OPERATION MACROS
543 .SBTTL DMBMCP -- DTE-20 OPERATION MACROS
544
545 ;+
546 ; DFRD -- DIAGNOSTIC FUNCTION READ TRANSLATION MACRO
547 ;
548 ; DFRD TRANSLATES THE DIAGNOSTIC EMT 116 IN TO A CALL TO "$DDFRD"
549 ;
550 ; SEQUENCE OF OPERATION:
551 ;
552 ; 1. R1 IS SAVED ON THE STACK
553 ; 2. R1 IS SET POINTING TO STORAGE
554 ; 3. CALL TO "$DDFRD" IS MADE
555 ;
556 ; ERROR RETURN -- CC-C SET
557 ;
558 ; SUCCESS RETURN -- CC-C CLEAR
559 ;
560 ; R0 -- POINTS TO DEXWDS IN ".DFRBK"
561 ;
562 ; STACK SUMMARY:
563 ;
564 ; STACK IS UNAFFECTED
565 ;
566 ; CALLER'S RESPONSIBILITIES:
567 ;
568 ; NONE
569 ;
570 ;-
571
572 .MACRO DFRD FUNC,ADDR
573 .IF NB,FUNC
574 MOV #FUNC,R0 ; ** FUNCTION READ CODE TO R0
575 .ENDC ; .IF NB,FUNC
576 MOV R1,-(SP) ; ** SAVE R1
577 .IF NB,ADDR
578 MOV #ADDR,R1 ; ** BUFFER POINTER TO R1
579 .IFF
580 CLR R1 ; ** NO DATA BUFFER
581 .IFTF
582 JSR PC,$DDFRD ; ** EXECUTE THE FUNCTION READ
583 MOV (SP)+,R1 ; ** RESTORE R1
584 .ENDC ; .IF NB,ADDR
585 .ENDM ; DFRD
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 13
DMBMCP -- DTE-20 OPERATION MACROS
587 ;+
588 ; DFRDT -- DIAGNOSTIC FUNCTION READ (TRAILING) TRANSLATION MACRO
589 ;
590 ; DFRDT TRANSLATES THE DIAGNOSTIC EMT 140 INTO A "DFRD" MACRO (Q.V.)
591 ;-
592
593 .MACRO DFRDT FUNC,ADDR
594 .IF NB,FUNC
595 MOV #FUNC,R0 ; ** FUNCTION READ CODE TO R0
596 .ENDC ; .IF NB,FUNC
597 MOV R1,-(SP) ; ** SAVE R1
598 .IF NB,ADDR
599 MOV #ADDR,R1 ; ** BUFFER POINTER TO R1
600 .IFF
601 CLR R1 ; ** NO DATA BUFFER
602 .IFTF
603 JSR PC,$DDFRD ; ** EXECUTE THE FUNCTION READ
604 MOV (SP)+,R1 ; ** RESTORE R1
605 .ENDC ; .IF NB,ADDR
606 .ENDM ; DFRDT
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 14
DMBMCP -- DTE-20 OPERATION MACROS
608 ;+
609 ; DFWRT -- DIAGNOSTIC FUNCTION WRITE TRANSTATION MACRO
610 ;
611 ; DFWRT TRANSLATES A DIAGNOSTIC EMT 141 IN TO A CALL TO "$DDFWR"
612 ;
613 ; SEQUENCE OF OPERATION:
614 ;
615 ; 1. DATA POINTER IS LOADED INTO R1
616 ; 2. FUNCTION CODE IS LOADED INTO R0
617 ; 3. CALL IS MADE TO "$DFWR"
618 ;
619 ; ERROR RETURN -- CC-C SET
620 ;
621 ; SUCCESS RETURN -- CC-C CLEAR
622 ;
623 ; R0, R1 -- UNCHANGED
624 ;
625 ; STACK SUMMARY:
626 ;
627 ; STACK IS UNAFFECTED
628 ;
629 ; CALLER'S REPONSIBILITIES:
630 ;
631 ; NONE
632 ;-
633
634 .MACRO DFWRT ADDR,FUNC
635 .IF NB,FUNC
636 MOV #FUNC,R0 ; ** FUNCTION WRITE CODE TO R0
637 .ENDC ; .IF NB,FUNC
638 .IF NB,ADDR
639 MOV R1,-(SP) ; ** SAVE R1
640 MOV #ADDR,R1 ; ** BUFFER POINTER TO R1
641 .IFTF
642 JSR PC,$DDFWR ; ** EXECUTE THE FUNCTION WRITE
643 .IFT
644 MOV (SP)+,R1 ; ** RESTORE R1
645 .ENDC ; .IF NB,ADDR
646 .ENDM ; DFWRT
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 15
DMBMCP -- DTE-20 OPERATION MACROS
648 ;+
649 ; DFWRTT -- DIAGNOSIC FUNCTION WRITE (TRAILING) TRANSLATION MACRO
650 ;
651 ; DFWRT TRANSLATES A DIAGNOSTIC EMT 140 INTO A CALL TO "$DDFWR"
652 ;
653 ; SEQUENCE OF OPERATION:
654 ;
655 ; 1. DATA POINTER IS LOADED INTO R1
656 ; 2. FUNCTION CODE IS LOADED INTO R0
657 ; 3. CALL IS MADE TO "$DDFWR"
658 ;
659 ; ERROR RETURN -- CC-C SET
660 ;
661 ; SUCCESS RETURN -- CC-C CLEAR
662 ;
663 ; R0, R1 -- UNCHANGED
664 ;
665 ; STACK SUMMARY:
666 ;
667 ; STACK IS UNAFFECTED
668 ;
669 ; CALLER'S REPONSIBILITIES:
670 ;
671 ; NONE
672 ;-
673
674 .MACRO DFWRTT ADDR,FUNC
675 .IF NB,FUNC
676 MOV #FUNC,R0 ; ** FUNCTION WRITE CODE TO R0
677 .ENDC ; .IF NB,FUNC
678 .IF NB,ADDR
679 MOV R1,-(SP) ; ** SAVE R1
680 MOV #ADDR,R1 ; ** BUFFER POINTER TO R1
681 .IFTF
682 JSR PC,$DDFWR ; ** EXECUTE THE FUNCTION WRITE
683 .IFT
684 MOV (SP)+,R1 ; ** RESTORE R1
685 .ENDC ; .IF NB,ADDR
686 .ENDM ; DFWRTT
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 16
DMBMCP -- DTE-20 OPERATION MACROS
688 ;+
689 ; DFXCT -- DIAGNOSTIC FUNCTION EXECUTE MACRO
690 ;
691 ; DFXCT TRANSLATES A DIAGNOSTIC EMT 114 IN TO A CALL TO "$DDFXC"
692 ;
693 ; SEQUENCE OF OPERATION:
694 ;
695 ; 1. FUNCTION CODE IS LOADED INTO R0
696 ; 2. CALL IS MADE TO "$DDFXC"
697 ;
698 ; ERROR RETURN -- CC-C SET
699 ;
700 ; SUCCESS RETURN -- CC-C CLEAR
701 ;
702 ; R0, R1 -- UNCHANGED
703 ;
704 ; STACK SUMMARY:
705 ;
706 ; STACK IS UNAFFECTED
707 ;
708 ; CALLER'S REPONSIBILITIES:
709 ;
710 ; NONE
711 ;-
712
713 .MACRO DFXCT FUNC
714 .IF NB,FUNC
715 MOV #FUNC,R0 ; ** FUNCTION CODE TO R0
716 .ENDC ; .IF NB,FUNC
717 JSR PC,$DDFXC ; ** EXECUTE THE FUNCTION EXECUTE
718 .ENDM ; DFXCT
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 17
DMBMCP -- DTE-20 OPERATION MACROS
720 ;+
721 ; DFXCTT -- DIAGNOSIC FUNCTION EXECUTE (TRAILING) TRANSLATION MACRO
722 ;
723 ; DFXCTT TRANSLATES A DIAGNOSTIC EMT 115 INTO A CALL TO "$DDFXC"
724 ;
725 ; SEQUENCE OF OPERATION:
726 ;
727 ; 1. FUNCTION CODE IS LOADED INTO R0
728 ; 2. CALL IS MADE TO "$DDFXC"
729 ;
730 ; ERROR RETURN -- CC-C SET
731 ;
732 ; SUCCESS RETURN -- CC-C CLEAR
733 ;
734 ; R0, R1 -- UNCHANGED
735 ;
736 ; STACK SUMMARY:
737 ;
738 ; STACK IS UNAFFECTED
739 ;
740 ; CALLER'S REPONSIBILITIES:
741 ;
742 ; NONE
743 ;-
744
745 .MACRO DFXCTT FUNC
746 .IF NB,FUNC
747 MOV #FUNC,R0 ; ** FUNCTION CODE TO R0
748 .ENDC ; .IF NB,FUNC
749 JSR PC,$DDFXC ; ** EXECUTE THE FUNCTION EXECUTE
750 .ENDM ; DFXCTT
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 18
DMBMCP -- DTE-20 OPERATION MACROS
752 ;+
753 ; DPOS -- DIAGNOSTIC KL10 DEPOSIT MACRO
754 ;
755 ; DPOS TRANSLATES THE DIAGNOSTIC EMT 105 INTO A CALL TO "$DPOS"
756 ;
757 ; SEQUENCE OF OPERATION:
758 ;
759 ; 1. DATA POINTER IS LOADED INTO R0
760 ; 2. KL10 ADDRESS POINTER IS LOADED INTO R1
761 ; 3. THE CALL TO "$DPOS" IS EXECUTED
762 ;
763 ; ERROR RETURN -- CC-C IS SET
764 ;
765 ; SUCCESS RETURN - CC-C IS CLEAR
766 ;
767 ; R0 AND R1 ARE UNCHANGED
768 ;
769 ; STACK SUMMARY:
770 ;
771 ; STACK IS UNAFFECTED
772 ;
773 ; CALLER'S RESPONSIBILITIES:
774 ;
775 ; NONE
776 ;-
777
778 .MACRO DPOS ADDR,DATA
779 .IF NB,DATA
780 MOV #DATA,R0 ; ** DATA POINTER TO R0
781 .ENDC ; .IF NB,DATA
782 .IF NB, ADDR
783 MOV R1,-(SP) ; ** SAVE R1
784 MOV #ADDR,R1 ; ** ADDRESS POINTER TO R1
785 .IFTF
786 JSR PC,$DPOS ; ** EXECUTE THE DEPOSIT
787 .IFT
788 MOV (SP)+,R1 ; ** RESTORE R1
789 .ENDC ; .IF NB,ADDR
790 .ENDM ; DPOS
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 19
DMBMCP -- DTE-20 OPERATION MACROS
792 ;+
793 ; DPOST -- DIAGNOSTIC KL10 DEPOSIT (TRAILING) MACRO
794 ;
795 ; DPOST TRANSLATES THE DIAGNOSTIC EMT 106 INTO A CALL TO "$DPOST"
796 ;
797 ; SEQUENCE OF OPERATION:
798 ;
799 ; 1. DATA POINTER IS LOADED INTO R0
800 ; 2. KL10 ADDRESS POINTER IS LOADED INTO R1
801 ; 3. THE CALL TO "$DPOS" IS EXECUTED
802 ;
803 ; ERROR RETURN -- CC-C IS SET
804 ;
805 ; SUCESS RETURN - CC-C IS CLEAR
806 ;
807 ; R0 AND R1 ARE UNCHANGED
808 ;
809 ; STACK SUMMARY:
810 ;
811 ; STACK IS UNAFFECTED
812 ;
813 ; CALLERS RESPONSIBILITIES:
814 ;
815 ; NONE
816 ;-
817
818 .MACRO DPOST ADDR,DATA
819 .IF NB, ADDR
820 MOV #ADDR,R0 ; ** ADDRESS TO R0
821 .ENDC ; .IF NB,ADDR
822 .IF NB,DATA
823 MOV R1,-(SP) ; ** SAVE R1
824 MOV #DATA,R1 ; ** DATA POINTER TO R1
825 .IFTF
826 JSR PC,$DPOST ; ** EXECUTE THE DEPOSIT
827 .IFT
828 MOV (SP)+,R1 ; ** RESTORE R1
829 .ENDC ; .IF NB,DATA
830 .ENDM ; DPOST
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 20
DMBMCP -- DTE-20 OPERATION MACROS
832 ;+
833 ; EXAM -- DIAGNOSTIC KL10 EXAMINE TRANSLATION MACRO
834 ;
835 ; EXAM TRANSLATES A DIAGNOSTIC EMT 103 INTO A CALL TO "$EXAM"
836 ;
837 ; SEQUENCE OF OPERATION
838 ;
839 ; 1. R0 POINTS TO THE KL10 ADDRESS
840 ; 2. THE CALL TO "$EXAM" IS EXECUTED
841 ; 3. R0 POINTS TO RETURNED DATA BUFFER
842 ;
843 ; ERROR RETURN -- CC-C IS SET
844 ;
845 ; SUCCESS RETURN -- CC-C CLEAR
846 ;
847 ;
848 ; STACK SUMMARY:
849 ;
850 ; STACK IS UNAFFECTED
851 ;
852 ; CALLER'S RESPONSIBILITIES:
853 ;
854 ; NONE
855 ;-
856
857 .MACRO EXAM ADDR,DATA
858 .IF NB,ADDR
859 MOV #ADDR,R0 ; ** ADDRESS POINTER TO R0
860 .ENDC ; .IF NB,ADDR
861 .IF NB,DATA
862 MOV R1,-(SP) ; ** SAVE R1
863 MOV #DATA,R1 ; ** DATA BUFFER POINTER TO R1
864 .IFF
865 MOV R1,-(SP) ; [4.2218] SAVE R1
866 MOV #.WORK,R1 ; [4.2218] WORK SPACE
867 .IFTF
868 JSR PC,$EXAMD ; ** EXECUTE THE KL10 EXAMINE
869 .IFT
870 MOV (SP)+,R1 ; ** RESTORE R1
871 .IFF
872 MOV #.WORK,R0 ; [4.2218] PTR TO 36 BIT DATA
873 MOV (SP)+,R1 ; [4.2218] RESTORE R1
874 .ENDC ; .IF NB,DATA
875 .ENDM ; EXAM
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 21
DMBMCP -- DTE-20 OPERATION MACROS
877 ;+
878 ; EXAMT -- DIAGNOSTIC KL10 EXAMINE (TRAILING) TRANSLATION MACRO
879 ;
880 ; EXAMT TRANSLATES A DIAGNOSTIC EMT 104 INTO A CALL TO "$EXAM"
881 ;
882 ; SEQUENCE OF OPERATION
883 ;
884 ; 1. R1 POINTS TO THE RETURNED DATA BUFFER
885 ; 2. R0 POINTS TO THE KL10 ADDRESS
886 ; 3. THE CALL TO "$EXAM" IS EXECUTED
887 ;
888 ; ERROR RETURN -- CC-C IS SET
889 ;
890 ; SUCCESS RETURN -- CC-C CLEAR
891 ;
892 ; R1 IS MOVED TO R0 TO MAINTAIN COMPATABILITY
893 ;
894 ; STACK SUMMARY:
895 ;
896 ; STACK IS UNAFFECTED
897 ;
898 ; CALLER'S RESPONSIBILITIES:
899 ;
900 ; NONE
901 ;-
902
903 .MACRO EXAMT ADDR,DATA
904 .IF NB,ADDR
905 MOV #ADDR,R0 ; ** ADDRESS POINTER TO R0
906 .ENDC ; .IF NB,ADDR
907 .IF NB,DATA
908 MOV R1,-(SP) ; ** SAVE R1
909 MOV #DATA,R1 ; ** DATA BUFFER POINTER TO R1
910 .IFTF
911 JSR PC,$EXAMT ; ** EXECUTE THE KL10 EXAMINE
912 .IFT
913 MOV (SP)+,R1 ; ** RESTORE R1
914 .ENDC ; .IF NB,DATA
915 .ENDM ; EXAMT
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 22
DMBMCP -- DTE-20 OPERATION MACROS
917 ;+
918 ; DFSCLK -- DAGNOSTIC SINGLE STEP CLOCK TRANSLATION MACRO
919 ;
920 ; DFSCLK TRANSALTES A DIAGNOSTIC EMT 122 INTO A "DFXCT SSCLK"
921 ;
922 ; SEE "DFXCT" FOR DETAILS
923 ;-
924
925 .MACRO DFSCLK
926 DFXCT SSCLK
927 .ENDM ; DFSCLK
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 23
DMBMCP -- DTE-20 OPERATION MACROS
929 ;+
930 ; DFPC -- DIAGNOSTIC PC READ TRANSLATION MACRO
931 ;
932 ; DFPC RETURNS THE KL10 PC IN A TRIPLET POINTED TO BY R0
933 ;-
934
935 .MACRO DFPC ADDR
936 .IF NB,ADDR
937 MOV #ADDR,R0 ; ** BUFFER POINTER TO R0
938 .ENDC ; .IF NB,ADDR
939 JSR PC,$DFPC ; ** READ THE KL10 PC
940 .ENDM ; DFPC
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 24
DMBMCP -- DTE-20 OPERATION MACROS
942 ;+
943 ; BURST -- BURST MBOX CLOCK TRANSLATION MACRO
944 ;
945 ; BURST TRANSLATES A DIAGNOSTIC EMT 131 INTO A CALL TO "$BURST"
946 ;
947 ; SEQUENCE OF OPERATION:
948 ;
949 ; 1. THE MBOX CLOCK BURST COUNT IS LOADED INTO R0
950 ; 2. THE CALL TO "$BURST" IS MADE
951 ;
952 ; ERROR RETURN -- CC-C SET
953 ;
954 ; SUCCESS RETURN -- CC-C CLEAR
955 ;
956 ; STACK SUMMARY:
957 ;
958 ; STACK IS UNAFFECTED
959 ;
960 ; CALLER'S RESPONSIBILITIES:
961 ;
962 ; NONE
963 ;-
964
965 .MACRO BURST ARG
966 .IF NB,ARG
967 MOV #ARG,R0 ; ** BURST COUNT TO R0
968 .ENDC ; .IF NB,ARG
969 JSR PC,$BURST ; ** BURST THE MBOX CLOCK
970 .ENDM ; BURST
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 25
DMBMCP -- DTE-20 OPERATION MACROS
972 ;+
973 ; DTEBAS -- RETURN DTE-20 BASE ADDRESS TRANSLATION MACRO
974 ;
975 ; DTEBAS RETURNS THE THE BASE ADDRESS OF THE PRIVILEGED DTE-20 FROM
976 ; ".PRDTE" IN THE REGISTER SPECIFIED
977 ;-
978
979 .MACRO DTEBAS REG
980 .IF NB,REG
981 MOV .PRDTE,REG ; ** DTE-20 BASE ADDRESS TO REG
982 .IFF
983 MOV .PRDTE,R0 ; ** DTE-20 BASE ADDRESS TO R0
984 .ENDC ; .IF NB,REG
985 .ENDM ; DTEBAS
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 26
DMBMCP -- DTE-20 OPERATION MACROS
987 ;+
988 ; LODAR -- DIAGNOSTIC KL10 AR LOAD TRANSLATION MACRO
989 ;
990 ; LODAR TRANSLATES A DIAGNOSTIC EMT 102 INTO A CALL TO "$LDAR"
991 ;
992 ; SEQUENCE OF OPERATION:
993 ;
994 ; 1. R0 POINTS TO THE DATA TO BE LOADED INTO THE KL10 AR REGISTER
995 ; 2. THE CALL TO "$LDAR" IS MADE
996 ;
997 ; ERROR RETURN -- CC-C SET
998 ;
999 ; SUCCESS RETURN -- CC-C CLEAR
1000 ;
1001 ; STACK SUMMARY:
1002 ;
1003 ; STACK IS UNAFFECTED
1004 ;
1005 ; CALLER'S RESPONSIBILITIES:
1006 ;
1007 ; NONE
1008 ;-
1009
1010 .MACRO LODAR DATA
1011 .IF NB,DATA
1012 MOV #DATA,R0 ; ** DATA POINTER TO R0
1013 .ENDC ; .IF NB,DATA
1014 JSR PC,$LDAR ; ** LOAD THE KL10 AR REGISTER
1015 .ENDM ; LODAR
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 28
DMBMCP -- DTE-20 OPERATION MACROS
1018 ;+
1019 ; EXCT -- DIAGNOSTIC KL10 INSTRUCTION EXECUTE TRANSLATION MACRO
1020 ;
1021 ; EXCT TRANSLATES A DIAGNOSTIC EMT 101 INTO A CALL TO "$EXCT"
1022 ;
1023 ; SEQUENCE OF OPERATION:
1024 ;
1025 ; 1. POINTER TO KL10 INSTRUCTION IS LOADED INTO R0
1026 ; 2. CALL TO "$EXCT" IS MADE
1027 ;
1028 ; ERROR RETURN -- CC-C SET
1029 ;
1030 ; SUCCESS RETURN -- CC-C CLEAR
1031 ;
1032 ; STACK SUMMARY:
1033 ;
1034 ; STACK IS UNAFFECTED
1035 ;
1036 ; CALLER'S RESPONSIBILITIES:
1037 ;
1038 ; NONE
1039 ;-
1040
1041 .MACRO EXCT INST
1042 .IF NB,INST
1043 MOV #INST,R0 ; ** KL10 INSTRUCTION POINTER TO R0
1044 .ENDC ; .IF NB,INST
1045 JSR PC,$EXCT ; ** EXECUTE IT
1046 .ENDM ; $EXCT
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 29
DMBMCP -- DTE-20 OPERATION MACROS
1048 ;+
1049 ; SM -- DIAGNOSTIC START MICROCODE TRANSLATION MACRO
1050 ;
1051 ; SM TRANSLATES A DIAGNOSTIC EMT 100 INTO A "MASTER RESET/ START CLOCK" SEQUENCE
1052 ;
1053 ; SEQUENCE:
1054 ;
1055 ; 1. A KL10 MASTER RESET SEQUENCE IS EXECUTED
1056 ; 2. THE KL10 CLOCK IS STARTED
1057 ;
1058 ; ERROR RETURN -- CC-C SET
1059 ;
1060 ; SUCCESS RETURN -- CC-C CLEAR
1061 ;
1062 ; STACK SUMMARY:
1063 ;
1064 ; STACK IS UNAFFECTED
1065 ;
1066 ; CALLER'S RESPONSIBILITIES:
1067 ;
1068 ; NONE
1069 ;-
1070
1071 .MACRO SM
1072 JSR PC,$KLMR ; ** MASTER RESET THE KL10
1073 MOV #STRCLK,R0 ; ** START CLOCK FUNCTION CODE TO R0
1074 JSR PC,$DDFXC ; ** START THE KL10 CLOCK
1075 .ENDM ; SM
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 30
DMBMCP -- DTE-20 OPERATION MACROS
1077 ;+
1078 ; WWADR -- DIAGNOSTIC CRAM ADDRESS LOAD TRANSLATION MACRO
1079 ;
1080 ; WWADR TRANSLATES A DIAGNOSTIC EMT 075 INTO A CALL TO "$ACRAM"
1081 ;
1082 ; SEQUENCE OF OPERATION
1083 ;
1084 ; 1. CRAM ADDRESS IS LOADED INTO R0
1085 ; 2. CALL TO "$ACRAM" IS MADE
1086 ;
1087 ; ERROR RETURN -- CC-C SET
1088 ;
1089 ; SUCCESS RETURN -- CC-C CLEAR
1090 ;
1091 ; STACK SUMMARY:
1092 ;
1093 ; STACK IS UNAFFECTED
1094 ;
1095 ; CALLER'S RESPONSIBILITIES:
1096 ;
1097 ; NONE:
1098 ;-
1099
1100 .MACRO WWADR ADDR
1101 .IF NB,ADDR
1102 MOV #ADDR,R0 ; ** CRAM ADDRESS TO R0
1103 .ENDC ; .IF NB,ADDR
1104 MOV R0,-(SP) ; ** SAVE R0
1105 JSR PC,$KLMR ; ** RESET THE KL10
1106 MOV (SP)+,R0 ; ** RESTORE R0
1107 JSR PC,$ACRAM ; ** LOAD THE CRAM ADDRESS REGISTER
1108 .ENDM ; WWADR
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 31
DMBMCP -- DTE-20 OPERATION MACROS
1110 ;+
1111 ; MRESET -- DIAGNOSTIC KL10 MASTER RESET TRANSLATION MACRO
1112 ;
1113 ; MRESET TRANSLATES A DIAGNOSTIC EMT 076 INTO A CALL TO "$KLMR"
1114 ;
1115 ; SEQUENCE OF OPERATION:
1116 ;
1117 ; 1. THE CALL TO "$KLMR" IS EXECUTED
1118 ;
1119 ; ERROR RETURN -- CC-C SET
1120 ;
1121 ; SUCCESS RETURN -- CC-C CLEAR
1122 ;
1123 ; STACK SUMMARY:
1124 ;
1125 ; STACK IS UNAFFECTED
1126 ;
1127 ; CALLER'S RESPONSIBILITIES:
1128 ;
1129 ; NONE
1130 ;-
1131
1132 .MACRO MRESET
1133 JSR PC,$KLMR ; ** MASTER RESET THE KL10
1134 .ENDM ; MRESET
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 32
REGISTER SAVE/RESTORE TRANSLATION MACROS
1136 .SBTTL REGISTER SAVE/RESTORE TRANSLATION MACROS
1137
1138 ;+
1139 ; REGSAV -- R1 - R5 SAVE TRANSLATION MACRO
1140 ; REGRST -- R1 - R5 RESTORE TRANSLATION MACRO
1141 ;
1142 ; SEQUENCE OF OPERATION:
1143 ;
1144 ; 1. REGSAV -- R1 - R5 ARE SAVED ON THE STACK
1145 ; 2. REGRST -- R1 - R5 ARE RESTORED FROM THE STACK
1146 ;
1147 ; ALWAYS RETURNS SUCCESS
1148 ;
1149 ; STACK SUMMARY:
1150 ;
1151 ; SP+00 ==> SAVED R1
1152 ; SP+02 ==> SAVED R2
1153 ; SP+04 ==> SAVED R3
1154 ; SP+06 ==> SAVED R4
1155 ; SP+10 ==> SAVED R5
1156 ; SP+12 ==> SUBROUTINE RETURN PC
1157 ;
1158 ; CALLER'S RESPONSIBILITIES
1159 ;
1160 ; CALLS TO THESE ROUTINES MUST BE PARALLEL AND SYMMETRIC
1161 ; A ROUTINE WHICH CALLS REGSAV UPON ENTRY MAY RESTORE R0 - R5 AND EXIT
1162 ; TO ITS CALLER VIA A SIMPLE "RTS PC"
1163 ;-
1164
1165 .MACRO REGSAV
1166 JSR PC,SAV.5 ; ** SAVE R1 - R5 ON THE STACK
1167 .ENDM ; REGSAV
1168
1169 .MACRO REGRST
1170 JSR PC,RST.5 ; ** RESTORE R1 - R5 AND RETURN
1171 .ENDM ; REGRST
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 33
REGISTER SAVE/RESTORE TRANSLATION MACROS
1173 ;+
1174 ; VARIOUS PRINT MACROS
1175 ;
1176 ; PFORCE -- NOOP
1177 ; PNORML -- NOOP
1178 ; PNTBAK -- NOOP
1179 ;
1180 ; CHARACTERISTICS:
1181 ;
1182 ; OBVIOUS
1183 ;-
1184
1185 .MACRO PFORCE
1186 .ENDM ; PFORCE
1187
1188 .MACRO PNORML
1189 .ENDM ; PNORML
1190
1191 .MACRO PNTBAK
1192 .ENDM ; PNTBAK
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 34
REGISTER SAVE/RESTORE TRANSLATION MACROS
1194 ;+
1195 ; PNT36 -- 36-BIT KL10 WORD PRINT TRANSLATION MACRO
1196 ;
1197 ; PNT36 TRANSLATES A DIAGNOSTIC EMT 042 INTO A CALL TO "$WDD36"
1198 ;
1199 ; SEQUENCE OF OPERATION:
1200 ;
1201 ; 1. THE POINTER TO THE 36-BIT DATA IS LOADED INTO R0
1202 ; 2. THE CALL TO "$WDD36" IS MADE
1203 ;
1204 ; ALWAYS RETURNS SUCCESS
1205 ;
1206 ; STACK SUMMARY:
1207 ;
1208 ; STACK IS UNAFFECTED
1209 ;
1210 ; CALLER'S RESPONSIBILITIES:
1211 ;
1212 ; NONE
1213 ;-
1214
1215 .MACRO PNT36 ADDR
1216 .IF NB,ADDR
1217 MOV #ADDR,R0 ; ** ADDRESS OF 36-BIT KL10 NUMBER TO R0
1218 .ENDC ; .IF NB,ADDR
1219 JSR PC,$WDD36 ; ** CALL TO PRINT ROUTINE
1220 .ENDM ; PNT36
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 35
REGISTER SAVE/RESTORE TRANSLATION MACROS
1222 ;+
1223 ; PNTADR -- 22-BIT KL10 ADDRESS PRINT TRANSLATION MACRO
1224 ;
1225 ; PNTADR TRANSLATES A DIAGNOSTIC EMT 042 INTO A CALL TO "$WDD22"
1226 ;
1227 ; SEQUENCE OF OPERATION:
1228 ;
1229 ; 1. THE POINTER TO THE 22-BIT DATA IS LOADED INTO R0
1230 ; 2. THE CALL TO "$WDD22" IS MADE
1231 ;
1232 ; ALWAYS RETURNS SUCCESS
1233 ;
1234 ; STACK SUMMARY:
1235 ;
1236 ; STACK IS UNAFFECTED
1237 ;
1238 ; CALLER'S RESPONSIBILITIES:
1239 ;
1240 ; NONE
1241 ;-
1242
1243 .MACRO PNTADR ADDR
1244 .IF NB,ADDR
1245 MOV #ADDR,R0 ; ** ADDRESS OF 22-BIT KL10 ADDRESS TO R0
1246 .ENDC ; .IF NB,ADDR
1247 JSR PC,$WDD22 ; ** CALL TO PRINT ROUTINE
1248 .ENDM ; PNTADR
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 36
REGISTER SAVE/RESTORE TRANSLATION MACROS
1250 ;+
1251 ; PNTNBR -- NUMERIC PRINT TRANSLATION MACRO
1252 ;
1253 ; PNTNBR TRANSLATES A DIAGNOSTIC PRINT EMT INTO A CALL TO "$TDB2O"
1254 ;
1255 ; SEQUENCE OF OPERATION:
1256 ;
1257 ; "$TDB2O" IS CALLED
1258 ;
1259 ; ALWAYS RETURNS SUCCESS
1260 ;
1261 ; STACK SUMMARY:
1262 ;
1263 ; STACK IS UNAFFECTED
1264 ;
1265 ; CALLER'S RESPONSIBILITIES:
1266 ;
1267 ; NONE
1268 ;-
1269
1270 .MACRO PNTNBR
1271 MOV R0,-(SP) ; ** SAVE R0
1272 BIC #^C777,R0 ; ** MASK OFF UNWANTED BITS
1273 JSR PC,$TDB2O ; ** PRINT THE NUMBER
1274 MOV (SP)+,R0 ; ** RESTORE R0
1275 .ENDM ; PNTNBR
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 37
REGISTER SAVE/RESTORE TRANSLATION MACROS
1277 ;+
1278 ; PNT36B -- 36-BIT KL10 WORD PRINT TRANSLATION MACRO
1279 ;
1280 ; PNT36B TRANSLATES A DIAGNOSTIC EMT 134 INTO A CALL TO "$WDD36"
1281 ;
1282 ; SEQUENCE OF OPERATION:
1283 ;
1284 ; 1. THE POINTER TO THE 36-BIT DATA IS LOADED INTO R0
1285 ; 2. THE CALL TO "$WDD36" IS MADE
1286 ;
1287 ; ALWAYS RETURNS SUCCESS
1288 ;
1289 ; STACK SUMMARY:
1290 ;
1291 ; STACK IS UNAFFECTED
1292 ;
1293 ; CALLER'S RESPONSIBILITIES:
1294 ;
1295 ; NONE
1296 ;-
1297
1298 .MACRO PNT36B ADDR
1299 .IF NB,ADDR
1300 MOV #ADDR,R0 ; ** ADDRESS OF 36-BIT KL10 NUMBER TO R0
1301 .ENDC ; .IF NB,ADDR
1302 JSR PC,$WDD36 ; ** CALL TO PRINT ROUTINE
1303 .ENDM ; PNT36B
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 38
REGISTER SAVE/RESTORE TRANSLATION MACROS
1305 ;+ PNTOCT -- PRINT OCTAL NUMBER TRANSLATION MACRO
1306 ;
1307 ; PNTOCT TRANSLATES A DIAGNOSTIC EMT 035 INTO A CALL TO "$TDB2O"
1308 ;
1309 ; SEQUENCE OF OPERATION
1310 ;
1311 ; 1. THE NUMBER TO BE PRINTED IS LOADED INTO R0
1312 ; 2. THE CALL IS MADE TO "$TDB2O"
1313 ;
1314 ; ALWAYS RETURNS SUCCESS
1315 ;
1316 ; STACK SUMMARY:
1317 ;
1318 ; STACK IS UNAFFECTED
1319 ;
1320 ; CALLER'S RESPONSIBILITIES:
1321 ;
1322 ; NONE
1323 ;-
1324
1325 .MACRO PNTOCT NUMB
1326 .IF NB,NUMB
1327 .NTYPE $$T$$,NUMB
1328 .IF EQ,$$T$$&70
1329 MOV NUMB,R0 ; ** GET THE NUMBER INTO R0
1330 .IFF
1331 MOV #NUMB,R0 ; ** GET THE NUMBER INTO R0
1332 .ENDC ; .IF EQ,$$T$$&70
1333 .ENDC ; .IF NB,NUMB
1334 JSR PC,$TDB2O ; ** PRINT THE NUMBER
1335 .ENDM ; PNTOCT
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 39
REGISTER SAVE/RESTORE TRANSLATION MACROS
1337 ;+ PNTOCS -- PRINT OCTAL NUMBER TRANSLATION MACRO
1338 ;
1339 ; PNTOCS TRANSLATES A DIAGNOSTIC EMT 036 INTO A CALL TO "$TDB2O"
1340 ;
1341 ; SEQUENCE OF OPERATION
1342 ;
1343 ; 1. THE NUMBER TO BE PRINTED IS LOADED INTO R0
1344 ; 2. THE CALL IS MADE TO "$TDB2O"
1345 ;
1346 ; ALWAYS RETURNS SUCCESS
1347 ;
1348 ; STACK SUMMARY:
1349 ;
1350 ; STACK IS UNAFFECTED
1351 ;
1352 ; CALLER'S RESPONSIBILITIES:
1353 ;
1354 ; NONE
1355 ;-
1356
1357 .MACRO PNTOCS NUMB
1358 .IF NB,NUMB
1359 .NTYPE $$T$$,NUMB
1360 .IF EQ,$$T$$&70
1361 MOV NUMB,R0 ; ** GET THE NUMBER INTO R0
1362 .IFF
1363 MOV #NUMB,R0 ; ** GET THE NUMBER INTO R0
1364 .ENDC ; .IF EQ,$$T$$&70
1365 .ENDC ; .IF NB,NUMB
1366 JSR PC,$TDB2O ; ** PRINT THE NUMBER
1367 .ENDM ; PNTOCS
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 40
REGISTER SAVE/RESTORE TRANSLATION MACROS
1369 ;+ PNTDEC -- PRINT DECIMAL NUMBER TRANSLATION MACRO
1370 ;
1371 ; PNTDEC TRANSLATES A DIAGNOSTIC EMT 037 INTO A CALL TO "$TDB2I"
1372 ;
1373 ; SEQUENCE OF OPERATION
1374 ;
1375 ; 1. THE NUMBER TO BE PRINTED IS LOADED INTO R0
1376 ; 2. THE CALL IS MADE TO "$TDB2I"
1377 ;
1378 ; ALWAYS RETURNS SUCCESS
1379 ;
1380 ; STACK SUMMARY:
1381 ;
1382 ; STACK IS UNAFFECTED
1383 ;
1384 ; CALLER'S RESPONSIBILITIES:
1385 ;
1386 ; NONE
1387 ;-
1388
1389 .MACRO PNTDEC NUMB
1390 .IF NB,NUMB
1391 .NTYPE $$T$$,NUMB
1392 .IF EQ,$$T$$&70
1393 MOV NUMB,R0 ; ** GET THE NUMBER INTO R0
1394 .IFF
1395 MOV #NUMB,R0 ; ** GET THE NUMBER INTO R0
1396 .ENDC ; .IF EQ,$$T$$&70
1397 .ENDC ; .IF NB,NUMB
1398 JSR PC,$TDB2I ; ** PRINT THE NUMBER
1399 .ENDM ; PNTDEC
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 41
REGISTER SAVE/RESTORE TRANSLATION MACROS
1401 ;+
1402 ; PNTODT -- FORMATTED OCTAL PRINT TRANSLATION MACRO
1403 ;
1404 ; PNTODT TRANSLATES A DIAGNOSTIC EMT 047 INTO A CALL TO "$TDB2O"
1405 ;
1406 ; SEQUENCE OF OPERATION:
1407 ;
1408 ; 1. THE NUMBER IN R0 IS MASKED TO THE PROPER WIDTH
1409 ; 2. THE CALL TO "$TDB2O" IS MADE
1410 ;
1411 ; ALWAYS RETURNS SUCCESS
1412 ;
1413 ; STACK SUMMARY:
1414 ;
1415 ; STACK IS UNAFFECTED
1416 ;
1417 ; CALLER'S RESPONSIBILITIES:
1418 ;
1419 ; NONE
1420 ;-
1421
1422 .MACRO PNTODT ARG
1423 .IF NB,ARG
1424 MOV R0,-(SP) ; ** SAVE R0
1425 .IF EQ,ARG-1
1426 BIC #^C7,R0 ; ** MASK OUT UNWANTED BITS
1427 .ENDC ; .IF EQ, ARG-1
1428 .IF EQ,ARG-2
1429 BIC #^C77,R0 ; ** MASK OUT UNWANTED BITS
1430 .ENDC ; .IF EQ, ARG-2
1431 .IF EQ,ARG-3
1432 BIC #^C777,R0 ; ** MASK OUT UNWANTED BITS
1433 .ENDC ; .IF EQ, ARG-3
1434 .IF EQ,ARG-4
1435 BIC #^C7777,R0 ; ** MASK OUT UNWANTED BITS
1436 .ENDC ; .IF EQ, ARG-4
1437 .IF EQ,ARG-5
1438 BIC #^C77777,R0 ; ** MASK OUT UNWANTED BITS
1439 .ENDC ; .IF EQ, ARG-5
1440 .IFTF
1441 JSR PC,$TDB2O ; ** PRINT THE NUMBER
1442 .IFT
1443 MOV (SP)+,R0 ; ** RESTORE R0
1444 .ENDC ;.IF NB,ARG
1445 .ENDM ; PNTODT
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 42
REGISTER SAVE/RESTORE TRANSLATION MACROS
1447 ;+
1448 ; PMSG -- DIAGNOSTIC PRINT TRANSLATION MACRO
1449 ;
1450 ; PMSG TRANSLATES A DIAGNOSTIC PRINT CALL INTO A CALL TO "$TTDMS"
1451 ;
1452 ; SEQUENCE OF OPERATION:
1453 ;
1454 ; 1. A POINTER TO THE MESSAGE IS LOADED INTO R0
1455 ; 2. THE CALL TO "$TTDMS" IS MADE
1456 ;
1457 ; ALWAYS RETURNS SUCCESS
1458 ;
1459 ; STACK SUMMARY:
1460 ;
1461 ; STACK IS UNAFFECTED
1462 ;
1463 ; CALLER'S RESPONSIBILITIES
1464 ;
1465 ; NONE
1466 ;-
1467
1468 .MACRO PMSG MSG,?L1,?L2
1469 MOV #L1,R0 ; ** MESSAGE POINTER TO R0
1470 JSR PC,$TTDMS ; ** OUTPUT THE MESSAGE
1471 BR L2 ; ** BRANCH AROUND TEXT
1472 ;
1473 L1: .ASCIZ %MSG%
1474 .EVEN
1475 L2:
1476 .ENDM ; PMSG
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 43
REGISTER SAVE/RESTORE TRANSLATION MACROS
1478 ;+
1479 ; PNTAL -- DIAGNOSTIC PRINT ASCII LINE TRANSLATION MACRO
1480 ;
1481 ; PNTAL TRANSLATES A DIAGNOSTIC PRINT CALL INTO A CALL TO "$TTDMS"
1482 ;
1483 ; SEQUENCE OF OPERATION:
1484 ;
1485 ; 1. A POINTER TO THE MESSAGE IS LOADED INTO R0
1486 ; 2. THE CALL TO "$TTDMS" IS MADE
1487 ;
1488 ; ALWAYS RETURNS SUCCESS
1489 ;
1490 ; STACK SUMMARY:
1491 ;
1492 ; STACK IS UNAFFECTED
1493 ;
1494 ; CALLER'S RESPONSIBILITIES
1495 ;
1496 ; NONE
1497 ;-
1498
1499 .MACRO PNTAL
1500 JSR PC,$TTDMS ; ** OUTPUT THE MESSAGE
1501 .ENDM ; PNTAL
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 44
REGISTER SAVE/RESTORE TRANSLATION MACROS
1503 ;+
1504 ; $PMSG -- DIAGNOSTIC PRINT TRANSLATION MACRO
1505 ;
1506 ; $PMSG TRANSLATES A DIAGNOSTIC PRINT EMT INTO A CALL TO "$TTDMS"
1507 ;
1508 ; SEQUENCE OF OPERATION
1509 ;
1510 ; 1. MESSAGE POINTER IS LOADED INTO R0
1511 ; 2. CALL IS MADE TO "$TTDMS"
1512 ;
1513 ; ALWAYS RETURNS SUCCESS
1514 ;
1515 ; STACK SUMMARY:
1516 ;
1517 ; STACK IS UNAFFECTED
1518 ;-
1519
1520 .MACRO $PMSG ARG
1521 .IF NB,ARG
1522 MOV #ARG,R0 ; ** TEXT POINTER TO R0
1523 .ENDC ; .IF NB,ARG
1524 JSR PC,$TTDMS ; ** OUTPUT THE MESSAGE
1525 .ENDM ; $PMSG
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 45
REGISTER SAVE/RESTORE TRANSLATION MACROS
1527 ;+
1528 ; PSPACE ET. AL. -- VARIOUS PRINT MACROS
1529 ;
1530 ; PSPACE PRINTS A <SPACE>
1531 ; PTAB PRINTS A <TAB>
1532 ; PSLASH PRINTS A <SLASH>
1533 ; PBELL PRINTS A <BELL>
1534 ; PCRLF PRINTS A <CR><LF>
1535 ;
1536 ; SEQUENCE OF OPERATION:
1537 ;
1538 ; THE APPROPRIATE CALL IS MADE
1539 ;
1540 ; ALWAYS RETURNS SUCCESS
1541 ;
1542 ; STACK SUMMARY:
1543 ;
1544 ; STACK IS UNAFFECTED
1545 ;
1546 ; CALLER'S RESPONSIBILITIES:
1547 ;
1548 ; NONE
1549 ;-
1550
1551 .MACRO PSPACE
1552 JSR PC,$TTSPC ; ** PRINT A <SPACE>
1553 .ENDM ; PSPACE
1554
1555 .MACRO PSLASH
1556 JSR PC,$TTSLS ; ** PRINT A <SLASH>
1557 .ENDM ; PSLASH
1558
1559 .MACRO PBELL
1560 JSR PC,$TTBEL ; ** PRINT A <BELL>
1561 .ENDM ; PBELL
1562
1563 .MACRO PTAB
1564 JSR PC,$TTTAB ; ** PRINT A <TAB>
1565 .ENDM ; PTAB
1566
1567 .MACRO PCRLF
1568 JSR PC,$TCRLF ; ** PRINT A <CR><LF>
1569 .ENDM ; PCRLF
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 46
REGISTER SAVE/RESTORE TRANSLATION MACROS
1571 ;+
1572 ; TTIOCT -- DIAGNOSTIC OCTAL INPUT TRANSLATION MACRO
1573 ;
1574 ; TTIOCT TRANSLATES A DIAGNOSTIC OCTAL INPUT EMT INTO A CALL TO "$TDO2B"
1575 ;
1576 ; SEQUENCE OF OPERATION:
1577 ;
1578 ; THE CALL TO "$TDO2B" IS EXECUTED
1579 ;
1580 ; SUCCESS RETURN -- CC-C CLEAR
1581 ;
1582 ; ERROR RETURN -- CC-C SET
1583 ;
1584 ; NUMBER IN R0 IN EITHER CASE
1585 ;
1586 ; STACK SUMMARY:
1587 ;
1588 ; STACK IS UNAFFECTED
1589 ;
1590 ; CALLER'S RESPONSIBILITIES:
1591 ;
1592 ; NONE
1593 ;-
1594
1595 .MACRO TTIOCT
1596 JSR PC,$TDO2B ; ** READ OCTAL NUMBER
1597 .ENDM ; TTIOCT
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 47
REGISTER SAVE/RESTORE TRANSLATION MACROS
1599 ;+
1600 ; TTIDEC -- DIAGNOSTIC DECIMAL INPUT TRANSLATION MACRO
1601 ;
1602 ; TTIDEC TRANSLATES A DIAGNOSTIC DECIMAL INPUT EMT INTO A CALL TO "$TDI2B"
1603 ;
1604 ; SEQUENCE OF OPERATION:
1605 ;
1606 ; THE CALL TO "$TDI2B" IS EXECUTED
1607 ;
1608 ; SUCCESS RETURN -- CC-C CLEAR
1609 ;
1610 ; ERROR RETURN -- CC-C SET
1611 ;
1612 ; NUMBER IN R0 IN EITHER CASE
1613 ;
1614 ; STACK SUMMARY:
1615 ;
1616 ; STACK IS UNAFFECTED
1617 ;
1618 ; CALLER'S RESPONSIBILITIES:
1619 ;
1620 ; NONE
1621 ;-
1622
1623 .MACRO TTIDEC
1624 JSR PC,$TDI2B ; ** READ DECIMAL NUMBER
1625 .ENDM ; TTIDEC
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 48
REGISTER SAVE/RESTORE TRANSLATION MACROS
1627 ;+
1628 ; TTILIN -- DIAGNOSTIC TERMINAL INPUT TRANSLATION MACRO
1629 ;
1630 ; TTILIN TRANSLATES A DIAGNOSTIC TERMINAL INPUT EMT INTO A CALL TO "$TTRD"
1631 ;
1632 ; SEQUENCE OF OPERATION:
1633 ;
1634 ; THE CALL TO "$TTRD" IS EXECUTED
1635 ;
1636 ; SUCCESS RETURN -- INPUT STRING IN ".TTIBF"
1637 ;
1638 ; ESCAPES THROUGH "$ERROR" ON ERROR
1639 ;
1640 ; STACK SUMMARY:
1641 ;
1642 ; STACK IS UNAFFECTED
1643 ;
1644 ; CALLER'S RESPONSIBILITIES:
1645 ;
1646 ; NONE
1647 ;-
1648
1649 .MACRO TTILIN
1650 JSR PC,$TTRD ; ** READ TERMINAL INPUT
1651 .ENDM ; TTILIN
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 49
REGISTER SAVE/RESTORE TRANSLATION MACROS
1653 ;+
1654 ; TTILNW -- DIAGNOSTIC TERMINAL INPUT TRANSLATION MACRO
1655 ;
1656 ; TTILNW TRANSLATES A DIAGNOSTIC TERMINAL INPUT EMT INTO A CALL TO "$TTRD"
1657 ;
1658 ; SEQUENCE OF OPERATION:
1659 ;
1660 ; THE CALL TO "$TTRD" IS EXECUTED
1661 ;
1662 ; SUCCESS RETURN -- INPUT STRING IN ".TTIBF"
1663 ;
1664 ; ESCAPES THROUGH "$ERROR" ON ERROR
1665 ;
1666 ; STACK SUMMARY:
1667 ;
1668 ; STACK IS UNAFFECTED
1669 ;
1670 ; CALLER'S RESPONSIBILITIES:
1671 ;
1672 ; NONE
1673 ;-
1674
1675 .MACRO TTILNW
1676 JSR PC,$TTRD ; ** READ TERMINAL INPUT
1677 .ENDM ; TTILNW
KLINIT - KL CPU INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 50
REGISTER SAVE/RESTORE TRANSLATION MACROS
1679 ;+
1680 ; FATAL -- MEMORY BOOT ERROR CALL TRANSLATION MACRO
1681 ;
1682 ; FATAL EXECUTES A CALL TO "$FATAL" WHERE THE MEMORY BOOT IS ABORTED
1683 ; AFTER THE ERROR CODE IS PRINTED
1684 ;
1685 ; SEQUENCE OF OPERATION:
1686 ;
1687 ; THE CALL TO "$FATAL" IS EXECUTED
1688 ;
1689 ; NEVER RETURNS (GUARANTEED ESCAPE)
1690 ;
1691 ; STACK SUMMARY:
1692 ;
1693 ; POINTER TO ERROR TEXT IS ON TOP OF THE STACK
1694 ;
1695 ; CALLER'S RESPONSIBILITIES:
1696 ;
1697 ; NONE
1698 ;-
1699
1700 .MACRO FATAL TXT
1701 .IF NB, <TXT>
1702 ER$'TXT==.
1703 JSR PC,$FATAL ; ** FATAL "TXT" ERROR
1704 .ASCIZ %TXT%
1705 .EVEN
1706 .IFF
1707 .ERROR ; ** UNDEFINED ERROR TRAP!!
1708 .ENDC ; .IF NB, <TXT>
1709 .ENDM ; FATAL
KLIAC -- AC PROGRAM CONTROL MACRO M1110 12-OCT-79 14:10 PAGE 51
REGISTER SAVE/RESTORE TRANSLATION MACROS
1711 .TITLE KLIAC -- AC PROGRAM CONTROL
1712 000000 IDENT$ 5,3 ; ADP02
.IDENT /005030/
1713
1714 ;
1715 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
1716 ;
1717 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
1718 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
1719 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
1720 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
1721 ;
1722 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
1723 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
1724 ; EQUIPMENT CORPORATION.
1725 ;
1726 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
1727 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
1728 ;
1729 ; VERSION 05-03 ; ADP02
1730 ;
1731 ; ALAN D. PECKHAM 29-MAR-77
1732 ;
1733 ; MODIFIED BY:
1734 ;
1735 ; R. BELANGER 24-AUG-78 CLEAR ALL EIGHT (0 - 7) AC BLOCKS.
1736 ;
1737 ; FUNCTION: KL AC MANIPULATION.
1738 ;
1739 ; EQUATED SYMBOLS
1740 ;
1741 000003 DATAO = 3 ; KL I/O SUBFUNCTION CODE.
1742 000010 PAG = 10 ; KL DEVICE.
1743 ;
1744 ; LOCAL DATA
1745 ;
1746 000000 .PSECT DATA,D
1747 000000 DACAB: WD36$ 400000 000000 ; OBJECT FOR DATAO PAG TO SET AC BLOCK.
000000 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
000003 000 010 .BYTE BY$$3,BY$$4
1748 000005 DACBI: IO10$ DATAO PAG,,0 ; KL INSTRUCTION TO SET AC BLOCK.
000005 000 000 200 .BYTE BY$$0,BY$$1,BY$$2
000010 011 016 .BYTE BY$$3,BY$$4
1749 000012 DACAD: WD22$ 0 ; BUCKET FOR AC ADDRESSES.
000012 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
1750 000015 DACBF: WD36$ 0 0 ; GENERAL 36 BIT BUCKET.
000015 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
000020 000 000 .BYTE BY$$3,BY$$4
1751 .EVEN
1752 000000 .PSECT
KLIAC -- AC PROGRAM CONTROL MACRO M1110 12-OCT-79 14:10 PAGE 52
$LDNGO -- LOAD AC BLOCKS AND GO
1754 .SBTTL $LDNGO -- LOAD AC BLOCKS AND GO
1755 ;+
1756 ; LOAD THE SPECIFIED AC BLOCKS WITH INSTRUCTIONS AND DATA AND
1757 ; CONDITIONALLY START THE KL AT A GIVEN LOCATION. THE LOADING IS DRIVEN
1758 ; BY A LIST WHICH IS POINTED TO BY R0. THE ENTRIES ARE:
1759 ;
1760 ; CHOOSE AC BLOCK AND LOAD N ACS STARTING WITH M
1761 ;
1762 ; .BYTE ACBLK*10,M,N ; WHERE AND HOW MUCH
1763 ; .BLKB N*5 ; WORDS TO LOAD
1764 ;
1765 ; START KL AT AC M AND RETURN
1766 ;
1767 ; .BYTE ACBLK*10,M,-1 ; WHERE TO START
1768 ;
1769 ; RETURN WITHOUT STARTING KL
1770 ;
1771 ; .BYTE -1 ; END OF LOAD LIST
1772 ;
1773 ; A PREVIOUS CONTEXT AC BLOCK MAY BE SPECIFIED IN THE BOTTOM 3 BITS
1774 ; OF THE AC BLOCK BYTE. IF LEFT ZERO, THE PREVIOUS CONTEXT WILL BE
1775 ; AC BLOCK ZERO.
1776 ;
1777 ; INPUTS:
1778 ; R0 - POINTER TO AC LOAD LIST.
1779 ;
1780 ; OUTPUTS:
1781 ; CARRY IS SET IF ERROR OCCURRED DURING LOAD OR START.
1782 ;-
1783
1784 000000 004537 021764' $LDNGO::JSR R5,$RSAVE ; SAVE MY REGISTERS.
1785 000004 010005 MOV R0,R5 ; COPY LOAD LIST.
1786 000006 105137 000003' COMB DACAB+3 ; INVALIDATE THE CURRENT AC BLOCK. ; ADP02
1787 000012 112500 10$: MOVB (R5)+,R0 ; NEXT AC BLOCK NUMBER
1788 000014 100434 BMI 80$ ; STOP IF NEGATIVE.
1789 000016 123700 000003' CMPB DACAB+3,R0 ; IF THE SAME AS LAST TIME
1790 000022 001411 BEQ 30$ ; THEN DON'T CHANGE AC BLOCK
1791 000024 110037 000003' MOVB R0,DACAB+3 ; OTHERWISE GET BLOCK AND
1792 000030 012700 000005' MOV #DACBI,R0 ; EXECUTE DATAO PAG
1793 000034 012701 000000' MOV #DACAB,R1 ; WITH OUR DATA.
1794 000040 CALL $XCDT ; AVOID USING AN AC.
000040 004737 000206' JSR PC,$XCDT
1795 000044 103421 BCS 90$
1796 000046 012700 000012' 30$: MOV #DACAD,R0 ; GET PLACE FOR
1797 000052 112510 MOVB (R5)+,(R0) ; THE NEXT AC ADDRESS
1798 000054 112502 MOVB (R5)+,R2 ; AND GET NUMBER OF ACS.
1799 000056 100411 BMI 50$ ; IF NEG, START AT AC.
1800 000060 010501 40$: MOV R5,R1 ; GET ADDRESS OF DATA
1801 000062 CALL $DPOS ; AND STORE IT.
000062 004737 012336' JSR PC,$DPOS
1802 000066 103410 BCS 90$
1803 000070 105210 INCB (R0) ; INCREMENT ADDRESS
1804 000072 062705 000005 ADD #5,R5 ; AND LIST POINTER
1805 000076 077210 SOB R2,40$ ; AND GO BACK IF MORE.
1806 000100 000744 BR 10$ ; OTHERWISE GET NEXT DIRECTION.
1807 000102 50$: CALLR $STRKL ; START KL AT ADDRESS.
000102 000137 026006' JMP $STRKL
KLIAC -- AC PROGRAM CONTROL MACRO M1110 12-OCT-79 14:10 PAGE 52-1
$LDNGO -- LOAD AC BLOCKS AND GO
1808 000106 000241 80$: CLC ; END OF LOAD.
1809 000110 90$: RETURN
000110 000207 RTS PC
KLIAC -- AC PROGRAM CONTROL MACRO M1110 12-OCT-79 14:10 PAGE 53
$ZERAC -- ZERO AC SETS 0 TO 6
1811 .SBTTL $ZERAC -- ZERO AC SETS 0 TO 6
1812 ;+
1813 ; ZERO ALL ACS INCLUDING SET 7 WHICH BELONGS TO THE MICROCODE.
1814 ;
1815 ; NO INPUTS
1816 ;
1817 ; OUTPUTS:
1818 ; CARRY IS SET ON ERROR.
1819 ;-
1820
1821 000112 004537 021764' $ZERAC::JSR R5,$RSAVE ; SAVE HIS REGISTERS.
1822 000116 012703 000070 MOV #70,R3 ; ZERO AC SET 6 TO 0. ; ADP02
1823
1824 000122 110337 000003' 10$: MOVB R3,DACAB+3 ; NEXT AC BLOCK. ;**-1
1825 000126 012701 000000' MOV #DACAB,R1 ; GET DATA FOR
1826 000132 012700 000005' MOV #DACBI,R0 ; DATAO PAG TO
1827 000136 CALL $XCDT ; SET THE CURRENT AC SET.
000136 004737 000206' JSR PC,$XCDT
1828 000142 103420 BCS 90$
1829 000144 012702 000020 MOV #20,R2 ; ZERO 20 ACS.
1830 000150 012701 000000' MOV #.ZERO,R1 ; (DATA TO DEPOSIT)
1831 000154 012700 000012' MOV #DACAD,R0 ; GET POINTER TO ADDRESS
1832 000160 105010 CLRB (R0) ; AND START AT ZERO.
1833 000162 20$: CALL $DPOS ; CLEAR THE AC.
000162 004737 012336' JSR PC,$DPOS
1834 000166 103406 BCS 90$
1835 000170 105210 INCB (R0) ; GO ON
1836 000172 077205 SOB R2,20$ ; TO THE NEXT ONE.
1837 000174 162703 000010 SUB #10,R3 ; IF ANOTHER AC SET TO DO ; ADP01
1838 000200 002350 BGE 10$ ; THEN DO IT. ; ADP01
1839 000202 000241 CLC ; (MAKE SURE CARRY IS CLEAR) ; ADP01
1840 000204 90$: RETURN
000204 000207 RTS PC
KLIAC -- AC PROGRAM CONTROL MACRO M1110 12-OCT-79 14:10 PAGE 54
$XCDT -- INSTRUCTION EXECUTER
1842 .SBTTL $XCDT -- INSTRUCTION EXECUTER
1843 ;+
1844 ; EXECUTE AN INSTRUCTION AND SUBSTITUTE THE GIVEN DATA INTO THE AR
1845 ; AFTER THE AR FETCH. THIS IS DONE BY LOADING THE INSTRUCTION AND
1846 ; STEPPING THE CLOCK UNTIL "CON AR LOADED H" IS UP. THE DATA IS THEN
1847 ; WRITTEN INTO THE AR OVER THE PREVIOUS FETCHED DATA AND THE INSTRUCTION
1848 ; IS ALLOWED TO FINISH. NOTE THAT THIS ASSUMES THAT THE FETCH IS
1849 ; SUCCESSFUL.
1850 ;
1851 ; INPUTS:
1852 ; R0 - ADDRESS OF KL INSTRUCTION TO EXECUTE.
1853 ; R1 - ADDRESS OF 36 BIT DATA WORD TO SUBSTITUTE.
1854 ;
1855 ; OUTPUTS:
1856 ; CARRY IS SET IF ERROR OCCURS.
1857 ;-
1858
1859 000206 004537 021764' $XCDT:: JSR R5,$RSAVE ; SAVE THE REGISTERS AND
1860 000212 010103 MOV R1,R3 ; COPY THE POINTER TO THE DATA.
1861 000214 CALL $LDAR ; LOAD THE INSTRUCTION
000214 004737 026256' JSR PC,$LDAR
1862 000220 103436 BCS 90$ ; AND
1863 000222 012700 012000 MOV #.CONBT,R0 ; PUSH THE CONTINUE BUTTON.
1864 000226 CALL $DFXC
000226 004737 013222' JSR PC,$DFXC
1865 000232 103431 BCS 90$
1866 000234 012700 000022 MOV #18.,R0 ; GIVE THE CLOCK
1867 000240 CALL $BURST ; AN 18. TICK LEAD.
000240 004737 026672' JSR PC,$BURST
1868 000244 103424 BCS 90$
1869 000246 012702 000144 MOV #100.,R2 ; LIMIT THE CLOCK TO 100. TICKS
1870 000252 012701 000015' MOV #DACBF,R1 ; AND GET SCRATCH BUFFER.
1871 000256 012700 132000 20$: MOV #<132*1000>,R0 ; NOW READ
1872 000262 CALL $DFRD ; A DIAGNOSTIC REGISTER AND
000262 004737 012706' JSR PC,$DFRD
1873 000266 103413 BCS 90$
1874 000270 132761 000020 000001 BITB #20,1(R1) ; IF "CON AR LOADED H"
1875 000276 001010 BNE 30$ ; IS NOT UP,
1876 000300 012700 002000 MOV #.SSCLK,R0 ; STEP THE CLOCK
1877 000304 CALL $DFXC
000304 004737 013222' JSR PC,$DFXC
1878 000310 103402 BCS 90$
1879 000312 077217 SOB R2,20$ ; AND LOOK AGAIN.
1880 000314 000261 SEC ; THIS TOOK TOO LONG.
1881 000316 90$: RETURN
000316 000207 RTS PC
1882 000320 012700 004000 30$: MOV #.CECLK,R0 ; THE AR IS RIPE TO LOAD, SO
1883 000324 CALL $DFXC ; PHASE THE CLOCKS
000324 004737 013222' JSR PC,$DFXC
1884 000330 103772 BCS 90$
1885 000332 010301 MOV R3,R1 ; GET THE SUBSTITUTE WORD
1886 000334 012700 077000 MOV #.LDAR,R0 ; AND LOAD IT
1887 000340 CALL $DFWR ; INTO THE AR.
000340 004737 013020' JSR PC,$DFWR
1888 000344 103764 BCS 90$
1889 000346 012700 001000 MOV #.STRCL,R0 ; LET THE INSTRUCTION COMPLETE.
1890 000352 CALLR $DFXC
KLIAC -- AC PROGRAM CONTROL MACRO M1110 12-OCT-79 14:10 PAGE 54-1
$XCDT -- INSTRUCTION EXECUTER
000352 000137 013222' JMP $DFXC
KLICA -- LOAD CACHE REFILL RAM MACRO M1110 12-OCT-79 14:10 PAGE 55
$XCDT -- INSTRUCTION EXECUTER
1892 .TITLE KLICA -- LOAD CACHE REFILL RAM
1893 000356 IDENT$ 5,1
.IDENT /005010/
1894 ;
1895 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
1896 ;
1897 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
1898 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
1899 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
1900 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
1901 ;
1902 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
1903 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
1904 ; EQUIPMENT CORPORATION.
1905 ;
1906 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
1907 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
1908 ;
1909 ; VERSION 05-01
1910 ;
1911 ; ALAN D. PECKHAM 8-APR-77
1912 ;
1913 ; MODIFIED BY:
1914 ;
1915 ; FUNCTION: COMPUTE THE REFILL ALGORITHM FOR THE GIVEN CACHE CONFIGURATION
1916 ; AND WRITE IT TO THE CACHE REFILL RAM.
1917 ;
1919 ; EQUATED SYMBOLS
1920 ;
1921 000000 APR = 0 ; KL DEVICE.
1922 000002 BLKO = 2 ; KL I/O SUBFUNCTION CODE.
1923 000014 CCA = 14 ; KL DEVICE.
1924 000004 CONO = 4 ; KL I/O SUBFUNCTION CODE.
1925 000001 DATAI = 1 ; KL I/O SUBFUNCTION CODE.
1926 000540 HRR = 540 ; KL INSTRUCTION CODE.
1927 000254 JRST = 254 ; KL INSTRUCTION CODE.
1928 000322 JUMPE = 322 ; KL INSTRUCTION CODE.
1929 000010 PAG = 10 ; KL DEVICE.
1930 000400 SETZ = 400 ; KL INSTRUCTION CODE.
1931 ;
1932 ; LOCAL DATA
1933 ;
1934 000022 .PSECT DATA,D
1935 .ODD ; DCAWRF MUST BE ON EVEN BOUNDRY.
1936 000023 000 000 010 DCAPGM: .BYTE 0,0,10 ; LOAD AC0-AC7 OF AC SET 0.
1937 000026 WD36$ 0 0 ; AC0
000026 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
000031 000 000 .BYTE BY$$3,BY$$4
1938 000033 DCASIA: IO10$ DATAI CCA,,0 ; AC1 - A SWPIA INSTRUCTION.
000033 000 000 200 .BYTE BY$$0,BY$$1,BY$$2
000036 014 016 .BYTE BY$$3,BY$$4
1939 000040 DCARCA: IO10$ CONO PAG,,0 ; AC2 - RESET CACHE & PAGING STATUS.
000040 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
000043 012 016 .BYTE BY$$3,BY$$4
1940 000045 I10$ JUMPE 0,,3 ; AC3
000045 003 000 000 .BYTE BY$$0,BY$$1,BY$$2
000050 220 006 .BYTE BY$$3,BY$$4
KLICA -- LOAD CACHE REFILL RAM MACRO M1110 12-OCT-79 14:10 PAGE 55-1
$XCDT -- INSTRUCTION EXECUTER
1941 000052 I10$ HRR 6,,0 ; AC4
000052 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
000055 003 013 .BYTE BY$$3,BY$$4
1942 000057 I10$ SETZ 0,,0 ; AC5
000057 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
000062 000 010 .BYTE BY$$3,BY$$4
1943 000064 DCAWRF: IO10$ BLKO APR,,0 ; AC6 - WRFIL INSTRUCTION.
000064 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
000067 001 016 .BYTE BY$$3,BY$$4
1944 000071 I10$ JRST 0,,3 ; AC7
000071 003 000 000 .BYTE BY$$0,BY$$1,BY$$2
000074 140 005 .BYTE BY$$3,BY$$4
1945 000076 000 001 377 .BYTE 0,1,-1 ; START AT AC1 OF AC SET 0.
1946 000101 DCARFL: .BLKB 5 ; WORK TABLE.
1947 .EVEN
1948 000000 .PSECT TEXT,D
1949 000000 TCACEF: ERROR <CACHE ENABLE FAILED>
000000 077 040 103 .ASCIZ \? CACHE ENABLE FAILED\
000003 101 103 110
000006 105 040 105
000011 116 101 102
000014 114 105 040
000017 106 101 111
000022 114 105 104
000025 000
1950 000026 TCAACE: MESSAGE <ALL CACHES ENABLED>
000026 101 114 114 .ASCIZ \ALL CACHES ENABLED\
000031 040 103 101
000034 103 110 105
000037 123 040 105
000042 116 101 102
000045 114 105 104
000050 000
1951 000051 TCASCE: MESSAGE <CACHES X,X,X, ENABLED>
000051 103 101 103 .ASCIZ \CACHES X,X,X, ENABLED\
000054 110 105 123
000057 040 130 054
000062 130 054 130
000065 054 040 105
000070 116 101 102
000073 114 105 104
000076 000
1952 000077 TCAACD: MESSAGE <CACHES DISABLED>
000077 103 101 103 .ASCIZ \CACHES DISABLED\
000102 110 105 123
000105 040 104 111
000110 123 101 102
000113 114 105 104
000116 000
1953 000356 .PSECT
KLICA -- LOAD CACHE REFILL RAM MACRO M1110 12-OCT-79 14:10 PAGE 56
$SETCA -- CONFIGURE CACHE
1955 .SBTTL $SETCA -- CONFIGURE CACHE
1956 ;+
1957 ; INITIALIZE THE CACHE REFILL RAM IF CACHE IS TO BE TURNED ON AND
1958 ; REPORT THE CACHE STATUS.
1959 ;
1960 ; INPUTS:
1961 ; .NCACH - NUMBER OF CACHES TO BE USED.
1962 ; .CACHN - NUMBERS OF THE CACHES TO BE USED.
1963 ;
1964 ; OUTPUTS:
1965 ; CARRY IS SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
1966 ;-
1967
1968 000356 012700 000023' $SETCA::MOV #DCAPGM,R0 ; GET OUR KL PROGRAM
1969 000362 CALL $LDNGO ; LOAD AND START IT.
000362 004737 000000' JSR PC,$LDNGO
1970 000366 103564 BCS 200$
1971 000370 105737 000050' TSTB .NCACH ; IF NO CACHES WERE REQUESTED
1972 000374 003557 BLE 190$ ; THEN NO ACTION NECESSARY.
1973 000376 012701 000066' MOV #DCAWRF+2,R1 ; GET DATA AREA AND
1974 000402 042711 000003 BIC #3,(R1) ; CLEAR IT OUT.
1975 000406 005041 CLR -(R1)
1976 000410 005005 CLR R5 ; +++001 R5 >MUST< INITIALLY BE CLEAR!!!
1977 000412 113700 000051' MOVB .CACHN,R0 ; SET LRU IN CASE OF SINGLE CACHE.
1978 000416 006200 ASR R0 ; SHIFT LOW ORDER BIT
1979 000420 103002 BCC 20$ ; INTO KL INSTRUCTION -
1980 000422 052711 100000 BIS #100000,(R1) ; (KIND OF A HACK....)
1981 000426 050061 000002 20$: BIS R0,2(R1) ; INSTALL REST.
1982 ; INITIALIZE COUNTERS:
1983 000432 105003 CLRB R3 ; NEW CACHE NUMBER.
1984 000434 105004 30$: CLRB R4 ; MRU CACHE.
1985 000436 105005 40$: CLRB R5 ; LRU CACHE
1986 000440 122737 000001 000050' 50$: CMPB #1,.NCACH ; ONLY ONE CACHE ?
1987 000446 001504 BEQ 180$ ; YES, BYPASS THIS STUFF.
1988 000450 042721 100000 BIC #100000,(R1)+ ; CLEAR OUT DATA BITS.
1989 000454 042711 000003 BIC #000003,(R1)
1990 000460 012702 000101' MOV #DCARFL,R2 ; INITIALIZE TABLE.
1991 000464 110522 MOVB R5,(R2)+ ; LRU CACHE
1992 000466 005000 CLR R0 ; FIND LOW CACHE NUMBER
1993 000470 000401 BR 70$
1994 000472 005200 60$: INC R0
1995 000474 120005 70$: CMPB R0,R5
1996 000476 001775 BEQ 60$
1997 000500 120004 CMPB R0,R4
1998 000502 001773 BEQ 60$
1999 000504 012701 000003 MOV #3,R1 ; AND HIGH CACHE NUMBER
2000 000510 000401 BR 90$
2001 000512 005301 80$: DEC R1
2002 000514 120105 90$: CMPB R1,R5
2003 000516 001775 BEQ 80$
2004 000520 120104 CMPB R1,R4
2005 000522 001773 BEQ 80$
2006 000524 005705 TST R5 ; AND INSTALL IN TABLE
2007 000526 100003 BPL 100$ ; AS INTERMEDIATE CACHES.
2008 000530 110022 MOVB R0,(R2)+
2009 000532 110122 MOVB R1,(R2)+
2010 000534 000402 BR 110$
KLICA -- LOAD CACHE REFILL RAM MACRO M1110 12-OCT-79 14:10 PAGE 56-1
$SETCA -- CONFIGURE CACHE
2011 000536 110122 100$: MOVB R1,(R2)+
2012 000540 110022 MOVB R0,(R2)+
2013 000542 110422 110$: MOVB R4,(R2)+ ; MRU CACHE
2014 000544 110312 MOVB R3,(R2) ; NEW CACHE.
2015 000546 120342 120$: CMPB R3,-(R2) ; ADJUST LIST TO REFLECT
2016 000550 001376 BNE 120$ ; NEW CACHE IN USE.
2017 000552 022702 000101' CMP #DCARFL,R2
2018 000556 003402 BLE 130$
2019 000560 012702 000101' MOV #DCARFL,R2
2020 000564 116222 000001 130$: MOVB 1(R2),(R2)+
2021 000570 022702 000105' CMP #DCARFL+4,R2
2022 000574 003373 BGT 130$
2023 000576 012702 000101' MOV #DCARFL,R2 ; NOW, SCREEN OUT
2024 000602 012701 000051' 140$: MOV #.CACHN,R1 ; UNWANTED LRUS.
2025 000606 113700 000050' MOVB .NCACH,R0
2026 000612 122112 150$: CMPB (R1)+,(R2)
2027 000614 001403 BEQ 160$
2028 000616 077003 SOB R0,150$
2029 000620 005202 INC R2
2030 000622 000767 BR 140$
2031 000624 012701 000064' 160$: MOV #DCAWRF,R1
2032 000630 112200 MOVB (R2)+,R0 ; GET LRU AND
2033 000632 006200 ASR R0 ; SHIFT LOW ORDER BIT
2034 000634 103002 BCC 170$ ; INTO KL INSTRUCTION -
2035 000636 052711 100000 BIS #100000,(R1) ; (KIND OF A HACK....)
2036 000642 050061 000002 170$: BIS R0,2(R1) ; INSTALL REST OF LRU.
2037 000646 122212 CMPB (R2)+,(R2) ; CHECK ORDER AND
2038 000650 003003 BGT 180$
2039 000652 052761 000002 000002 BIS #000002,2(R1) ; AND INSTALL IT.
2040 000660 012700 000000' 180$: MOV #.ZERO,R0 ; GIVE THE DATA TO THE AC PROGRAM
2041 000664 CALL $DPOS ; TO STORE IN THE REFILL RAM.
000664 004737 012336' JSR PC,$DPOS
2042 000670 103423 BCS 200$
2043 000672 062711 000004 ADD #4,(R1) ; INCREMENT THE COUNTS
2044 000676 105205 INCB R5
2045 000700 122705 000003 CMPB #3,R5
2046 000704 002255 BGE 50$ ; TO LOOP.
2047 000706 105105 COMB R5
2048 000710 005105 COM R5
2049 000712 100651 BMI 40$
2050 000714 105204 INCB R4
2051 000716 122704 000003 CMPB #3,R4
2052 000722 002245 BGE 40$
2053 000724 105203 INCB R3
2054 000726 122703 000003 CMPB #3,R3
2055 000732 002240 BGE 30$
2056 000734 190$: CALLR LCARPT ; REPORT WHAT CACHES ENABLED.
000734 000137 000754' JMP LCARPT
2057 000740 200$: PRINT #TCACEF ; CACHE ENABLE FAILED.
000740 012700 000000' MOV #TCACEF,R0
000744 004737 025164' JSR PC,$TTMSG
2058 000750 000261 SEC
2059 000752 RETURN
000752 000207 RTS PC
KLICA -- LOAD CACHE REFILL RAM MACRO M1110 12-OCT-79 14:10 PAGE 57
$SETCA -- CONFIGURE CACHE
2061 ;+
2062 ; REPORT THE CACHE CONFIGURATION
2063 ;-
2064
2065 000754 012701 000077' LCARPT: MOV #TCAACD,R1 ; GET MESSAGE FOR NO CACHE
2066 000760 113702 000050' MOVB .NCACH,R2 ; AND IF NONE,
2067 000764 003433 BLE 80$ ; PRINT THE MESSAGE.
2068 000766 012701 000026' MOV #TCAACE,R1 ; USE ALL CACHE MESSAGE IF
2069 000772 022702 000004 CMP #4,R2 ; ALL CACHES ARE BEING USED.
2070 000776 003426 BLE 80$
2071 001000 012701 000051' MOV #TCASCE,R1 ; MUST BE A PARTIAL CONFIGURATION.
2072 001004 010105 MOV R1,R5
2073 001006 122725 000123 10$: CMPB #'S,(R5)+ ; LOOK FOR PLACE TO
2074 001012 001375 BNE 10$
2075 001014 122725 000040 CMPB #' ,(R5)+ ; INSERT CACHE NUMBERS.
2076 001020 001372 BNE 10$
2077 001022 012703 000051' MOV #.CACHN,R3
2078 001026 112315 20$: MOVB (R3)+,(R5) ; GET NEXT NUMBER
2079 001030 152725 000060 BISB #'0,(R5)+ ; AND MAKE PRINTABLE.
2080 001034 112725 000054 MOVB #',,(R5)+
2081 001040 077206 SOB R2,20$ ; DO FOR ALL NUMBERS.
2082 001042 111765 177777 30$: MOVB (PC),-1(R5) ; NOW CLEAN UP
2083 001046 122725 000040 CMPB #' ,(R5)+
2084 001052 001373 BNE 30$
2085 001054 80$: PRINT R1
001054 010100 MOV R1,R0
001056 004737 025164' JSR PC,$TTMSG
2086 001062 000241 CLC
2087 001064 90$: RETURN
001064 000207 RTS PC
2088
KLICB -- LOAD THE MICROCODE MACRO M1110 12-OCT-79 14:10 PAGE 58
$SETCA -- CONFIGURE CACHE
2091 .TITLE KLICB -- LOAD THE MICROCODE
2092 001066 IDENT$ 5,1,KLI$$F
.IDENT /B05010/
2093 ;
2094 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
2095 ;
2096 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
2097 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
2098 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
2099 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
2100 ;
2101 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
2102 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
2103 ; EQUIPMENT CORPORATION.
2104 ;
2105 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
2106 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
2107 ;
2108 ; VERSION 05-01
2109 ;
2110 ; ALAN D. PECKHAM 11-APR-77
2111 ;
2112 ; MODIFICATIONS:
2113 ;
2114 ; K. LEFEBVRE 13-MAR-79 EXPANDED CRAM/DRAM ERROR REPORT
2115 ; TCO 4.2209
2116 ;
2117 ; FUNCTION: THIS MODULE CONTAINS THE ROUTINES WHICH LOAD THE KL
2118 ; MICROCODE FROM THE FILE 'KL.MCB'.
2119 ;
2120 ; EQUATED SYMBOLS
2121 ;
2122 000000 APR = 0 ; KL DEVICE.
2123 000000 BLKI = 0 ; KL I/O SUBFUNCTION CODE.
2124 ;
2125 ; LOCAL DATA
2126 ;
2127 000106 .PSECT DATA,D
2128 000106 043240 000000 000000 DCBFNM: .RAD50 /KL MCB/ ; MICROCODE FILE NAME.
000114 050672
2129 000116 000000 .WORD 0 ; GET LATEST VERSION.
2130 000120 005 005 .BYTE 5,5
2131 000122 054523 000000 .WORD "SY,0
2132 000126 000000 DCBADR: .WORD 0 ; RAM ADDRESS FROM RECORD.
2133 000130 000000 000000 000000 DCBDAT: .WORD 0,0,0,0,0,0 ; RAM DATA WORK AREA.
000136 000000 000000 000000
2134 000144 000000 DCBCNT: .WORD 0 ; VERIFY DIFFERENCE COUNT.
2135 000146 000000 DCBFIX: .WORD 0 ; [4.2209] MICROCODE FIX FLAG
2136 000150 000000 000000 000000 DCBCBF: .WORD 0,0,0,0,0,0 ; HOLDING AREA FOR C-RAM WORD.
000156 000000 000000 000000
2137 000164 000000 000000 000000 DCBDBF: .WORD 0,0,0 ; D-RAM WORD HOLDING AREA.
2138 .EVEN ; DCBBF MUST BE ON A WORD BOUNDRY.
2139 000172 DCBBF: WD36$ 0 0 ; APRID RESULT.
000172 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
000175 000 000 .BYTE BY$$3,BY$$4
2140 000177 DCBA17: WD22$ 17 ; AC17 ADDRESS.
000177 017 000 000 .BYTE BY$$0,BY$$1,BY$$2
KLICB -- LOAD THE MICROCODE MACRO M1110 12-OCT-79 14:10 PAGE 58-1
$SETCA -- CONFIGURE CACHE
2141 000202 DCBAPR: IO10$ BLKI APR,,17 ; APRID INSTRUCTION.
000202 017 000 000 .BYTE BY$$0,BY$$1,BY$$2
000205 000 016 .BYTE BY$$3,BY$$4
2142 000207 113 114 111 TTTPR: .ASCIZ /KLI -- / ;[4.2209]
000212 040 055 055
000215 040 000
2143 .EVEN
2144 000117 .PSECT TEXT,D
2145 000117 TCBDCW: ERROR <C-RAM DIFFERS AT XXXXXX>
000117 077 040 103 .ASCIZ \? C-RAM DIFFERS AT XXXXXX\
000122 055 122 101
000125 115 040 104
000130 111 106 106
000133 105 122 123
000136 040 101 124
000141 040 130 130
000144 130 130 130
000147 130 000
2146 000151 TCBDDW: ERROR <D-RAM DIFFERS AT XXXXXX>
000151 077 040 104 .ASCIZ \? D-RAM DIFFERS AT XXXXXX\
000154 055 122 101
000157 115 040 104
000162 111 106 106
000165 105 122 123
000170 040 101 124
000173 040 130 130
000176 130 130 130
000201 130 000
2147 000203 TCBMLF: ERROR <MICROCODE LOAD FAILED>
000203 077 040 115 .ASCIZ \? MICROCODE LOAD FAILED\
000206 111 103 122
000211 117 103 117
000214 104 105 040
000217 114 117 101
000222 104 040 106
000225 101 111 114
000230 105 104 000
2148 000233 TCBMVF: ERROR <MICROCODE VERIFY FAILED>
000233 077 040 115 .ASCIZ \? MICROCODE VERIFY FAILED\
000236 111 103 122
000241 117 103 117
000244 104 105 040
000247 126 105 122
000252 111 106 131
000255 040 106 101
000260 111 114 105
000263 104 000
2149 000265 TCBFXF: ERROR <MICROCODE FIX FAILED> ; [4.2209]
000265 077 040 115 .ASCIZ \? MICROCODE FIX FAILED\
000270 111 103 122
000273 117 103 117
000276 104 105 040
000301 106 111 130
000304 040 106 101
000307 111 114 105
000312 104 000
2150 000314 TCBMVL: MESSAGE <MICROCODE VERSION XXX LOADED>
KLICB -- LOAD THE MICROCODE MACRO M1110 12-OCT-79 14:10 PAGE 58-2
$SETCA -- CONFIGURE CACHE
000314 115 111 103 .ASCIZ \MICROCODE VERSION XXX LOADED\
000317 122 117 103
000322 117 104 105
000325 040 126 105
000330 122 123 111
000333 117 116 040
000336 130 130 130
000341 040 114 117
000344 101 104 105
000347 104 000
2151 000351 TCBMVV: MESSAGE <MICROCODE VERSION XXX VERIFIED>
000351 115 111 103 .ASCIZ \MICROCODE VERSION XXX VERIFIED\
000354 122 117 103
000357 117 104 105
000362 040 126 105
000365 122 123 111
000370 117 116 040
000373 130 130 130
000376 040 126 105
000401 122 111 106
000404 111 105 104
000407 000
2152 000410 TCBBAD: MESSAGE <BAD > ; [4.2209]
000410 102 101 104 .ASCIZ \BAD \
000413 040 040 000
2153 000416 TCBGOD: MESSAGE <GOOD > ; [4.2209]
000416 107 117 117 .ASCIZ \GOOD \
000421 104 040 000
2154 000424 TCBXOR: MESSAGE <XOR > ; [4.2209]
000424 130 117 122 .ASCIZ \XOR \
000427 040 040 000
2155 001066 .PSECT
KLICB -- LOAD THE MICROCODE MACRO M1110 12-OCT-79 14:10 PAGE 59
$SETCA -- CONFIGURE CACHE
2157 ;+
2158 ; LOAD THE BINARY RAM FILE INTO THE KL OR USE THE FILE TO
2159 ; VERIFY THE RAM CODE.
2160 ; THE RAM BINARY FILE HAS THREE RECORD TYPES.
2161 ; *D-RAM RECORDS:
2162 ; .WORD 2+<6*N> ; BYTE COUNT RECORD LENGTH.
2163 ; .WORD ADR ; D-RAM ADDRESS (SHOULD BE EVEN).
2164 ; .BLKW 3*N ; D-RAM CODE WORDS.
2165 ; *C-RAM RECORDS:
2166 ; .WORD 2+<14*N> ; BYTE COUNT RECORD LENGTH.
2167 ; .WORD 100000+ADR ; C-RAM ADDRESS.
2168 ; .BLKW 6*N ; C-RAM CODE WORDS.
2169 ; *END OF FILE:
2170 ; .WORD 2 ; BYTE COUNT RECORD LENGTH.
2171 ; .WORD 100000!ADR ; C-RAM STARTING ADDRESS
2172 ; ; (NORMALLY ZERO).
2173 ;
2174 ; THE C-RAM RECORDS MUST BE SORTED IN ASCENDING ORDER BY ADDRESS
2175 ; SO THAT UNUSED WORDS MAY BE CLEARED WITHOUT HAVING TO CLEAR ALL
2176 ; THE C-RAM LOCATIONS.
2177 ;-
KLICB -- LOAD THE MICROCODE MACRO M1110 12-OCT-79 14:10 PAGE 60
$MCBLD -- LOAD THE RAMS
2179 .SBTTL $MCBLD -- LOAD THE RAMS
2180 ;+
2181 ; LOAD OR VERIFY THE C&D-RAMS AND REPORT THE VERSION.
2182 ;
2183 ; INPUTS:
2184 ; .DRSW - IF NON-ZERO, LOAD RAMS, OTHERWISE VERIFY.
2185 ;
2186 ; OUTPUTS:
2187 ; CARRY SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
2188 ;+
2189 ; GET THE FILE AND INITIALIZE THE KL FOR MICROCODE OPERATIONS.
2190 ;-
2191
2192 001066 012700 000106' $MCBLD::MOV #DCBFNM,R0 ; GET UCODE FILE NAME AND
2193 001072 012710 MOV (PC)+,(R0) ; ASSUME MODEL A MICROCODE
2197 001074 043241 .RAD50 /KLA/ ; FOR MODEL A CPU.
2199 001076 105737 000036' TSTB .EASW ; IF
2200 001102 003402 BLE 10$ ; MODEL B THEN
2201 001104 012710 MOV (PC)+,(R0) ; CHOOSE
2205 001106 043270 .RAD50 /KLX/ ; MODEL B MICROCODE
2207 001110 105737 000025' 10$: TSTB .UFNSW ; IF FILE NAME SPECIFIED
2208 001114 003402 BLE 20$ ; BY OPERATOR
2209 001116 012700 000442' MOV #.USRFN,R0 ; THEN USE HIS.
2210 001122 20$: CALL $LOOKUP ; AND OPEN IT.
001122 004737 007024' JSR PC,$LOOKUP
2211 001126 103411 BCS 40$
2212 001130 005037 000144' CLR DCBCNT ; INITIALIZE RAM DIFFERENCE COUNT.
2213 001134 012703 000130' MOV #DCBDAT,R3 ; DATA AREA AND
2214 001140 005002 CLR R2 ; NEXT C-RAM ADDRESS TO DEPOSIT.
2215 001142 CALL $KLMR ; RESET THE WORLD.
001142 004737 014350' JSR PC,$KLMR
2216 001146 103025 BCC LCBRC
2217 001150 30$: RETURN
001150 000207 RTS PC
2218
2219 001152 122737 000000G 000470' 40$: CMPB #IE.NSF,.SYSTA ; IF FILE NOT FOUND
2220 001160 001373 BNE 30$
2221 001162 CALL $IOERR ; DECLARE THE ERROR.
001162 004737 006610' JSR PC,$IOERR
2222 001166 000137 002312' JMP LCBFL ; REPORT OPERATION FAILED.
2223
2224 ;+
2225 ; READ 3 OR 6 WORDS FROM THE MICROCODE FILE.
2226 ;
2227 ; INPUTS:
2228 ; R3 - POINTER TO AREA TO RECIEVE DATA.
2229 ;
2230 ; OUTPUTS:
2231 ; CARRY SET IF ERROR. R0, R4 & R5 ARE DESTROYED.
2232 ;-
2233
2234 .ENABL LSB
2235 001172 012705 000003 LCB3W: MOV #3,R5 ; GET 3 WORDS.
2236 001176 000402 BR 10$
2237 001200 012705 000006 LCB6W: MOV #6,R5 ; GET 6 WORDS.
2238 001204 010304 10$: MOV R3,R4
2239 001206 20$: CALL $READW
KLICB -- LOAD THE MICROCODE MACRO M1110 12-OCT-79 14:10 PAGE 60-1
$MCBLD -- LOAD THE RAMS
001206 004737 007566' JSR PC,$READW
2240 001212 103402 BCS 30$
2241 001214 010024 MOV R0,(R4)+
2242 001216 077505 SOB R5,20$
2243 001220 30$: RETURN
001220 000207 RTS PC
2244 .DSABL LSB
KLICB -- LOAD THE MICROCODE MACRO M1110 12-OCT-79 14:10 PAGE 61
$MCBLD -- LOAD THE RAMS
2246 ;+
2247 ; IDENTIFY A RECORD AND DISPATCH ON RECORD TYPE.
2248 ; END-OF-FILE IS HANDLED HERE - THE C-RAM STARTING ADDRESS IS
2249 ; USED TO START THE MICROCODE, THE FILE IS CLOSED, AND WE GO
2250 ; TO IDENTIFY THE MICROCODE VERSION.
2251 ;
2252 ; NECESSARY EVILS:
2253 ; .SYIRC - THE NUMBER OF BYTES LEFT IN THE CURRENT RECORD.
2254 ;-
2255
2256 001222 LCBRC: CALL $READC ; GET ADDRESS.
001222 004737 007460' JSR PC,$READC
2257 001226 103433 BCS 10$
2258 001230 010037 000126' MOV R0,DCBADR
2259 001234 100402 BMI 5$ ; C-RAM RECORD OR END OF FILE
2260 001236 000137 001652' JMP LCBDRM ; D-RAM RECORD
2261 001242 042737 100000 000126' 5$: BIC #BIT15,DCBADR ; (REMOVE FLAG)
2262 001250 005737 000476' TST .SYIRC
2263 001254 003022 BGT LCBCRM ; C-RAM RECORD OR
2264 001256 013700 000126' MOV DCBADR,R0 ; C-RAM START ADDRESS.
2265 001262 005737 000144' TST DCBCNT ; IF VERIFY AND DIFFERENCE FOUND
2266 001266 001013 BNE 10$ ; SIGNAL ERROR.
2267 001270 CALL $ACRAM ; SET C-RAM STARTING ADDRESS
001270 004737 011430' JSR PC,$ACRAM
2268 001274 103410 BCS 10$ ; AND
2269 001276 012700 001000 MOV #.STRCL,R0
2270 001302 CALL $DFXC ; START THE CLOCK.
001302 004737 013222' JSR PC,$DFXC
2271 001306 CALL $CLOSE ; CLOSE THE FILE
001306 004737 006320' JSR PC,$CLOSE
2272 001312 000137 002344' JMP LCBVR ; IDENTIFY RAM VERSION.
2273 001316 000137 002312' 10$: JMP LCBFL ; OPERATION FAILED.
KLICB -- LOAD THE MICROCODE MACRO M1110 12-OCT-79 14:10 PAGE 62
$MCBLD -- LOAD THE RAMS
2275 ;+
2276 ; PROCESS C-RAM RECORD.
2277 ;
2278 ; NECESSARY EVILS:
2279 ; R3 - POINTS TO THE CURRENT C-RAM WORD FROM THE FILE.
2280 ; R2 - CONTAINS THE NEXT EXPECTED C-RAM ADDRESS TO BE
2281 ; WRITTEN.
2282 ; DCBADR - CONTAINS THE ADDRESS FOR THE C-RAM WORD READ
2283 ; FROM THE FILE.
2284 ; .DRSW - IF NON-ZERO, THEN VERIFY.
2285 ; .SYIRC - COUNT OF BYTES LEFT IN CURRENT RECORD.
2286 ;-
2287
2288 001322 005037 000146' LCBCRM: CLR DCBFIX ; [4.2209] CLEAR FIX FLAG
2289 001326 105737 000026' TSTB .DRSW ; TEST FUNCTION...
2290 001332 001013 BNE 20$ ; IF WE ARE LOADING,
2291 001334 020237 000126' 10$: CMP R2,DCBADR ; AND WORDS ARE BEING SKIPPED
2292 001340 001412 BEQ 30$
2293 001342 012701 000000' MOV #.ZERO,R1 ; THEN ZERO THE WORDS OUT.
2294 001346 010200 MOV R2,R0
2295 001350 CALL $WCRAM
001350 004737 010546' JSR PC,$WCRAM
2296 001354 103534 BCS 80$
2297 001356 005202 INC R2
2298 001360 000765 BR 10$
2299 001362 013702 000126' 20$: MOV DCBADR,R2
2300 001366 30$: CALL LCB6W ; GET THE C-RAM WORD AND
001366 004737 001200' JSR PC,LCB6W
2301 001372 103525 BCS 80$
2302 001374 010200 35$: MOV R2,R0 ; SET UP POINTER.
2303 001376 105737 000026' TSTB .DRSW ; IF WE VERIFY,
2304 001402 001414 BEQ 50$
2305 001404 012701 000150' MOV #DCBCBF,R1 ; GET HOLDING AREA,
2306 001410 CALL $RCRAM ; READ IT IN
001410 004737 011026' JSR PC,$RCRAM
2307 001414 103514 BCS 80$
2308 001416 012705 000006 MOV #6,R5 ; AND COMPARE 6 WORDS
2309 001422 010300 MOV R3,R0
2310 001424 022021 40$: CMP (R0)+,(R1)+
2311 001426 001023 BNE 70$
2312 001430 077503 SOB R5,40$
2313 001432 000404 BR 60$ ; OTHERWISE
2314 001434 010301 50$: MOV R3,R1 ; GET THE WORD ADDRESS
2315 001436 CALL $WCRAM ; AND WRITE INTO THE RAM.
001436 004737 010546' JSR PC,$WCRAM
2316 001442 103501 BCS 80$
2317 001444 005737 000146' 60$: TST DCBFIX ; [4.2209] FIXED FLAG SET?
2318 001450 001402 BEQ 65$ ; [4.2209] NO-- CONTINUE
2319 001452 005337 000144' DEC DCBCNT ; [4.2209] YES-- DECREMENT ERROR COUNT
2320 001456 005037 000146' 65$: CLR DCBFIX ; [4.2209] CLEAR FIX FLAG
2321 001462 005202 INC R2 ; BUMP C-RAM ADDRESS AND
2322 001464 005737 000476' TST .SYIRC ; IF MORE DATA, THEN
2323 001470 001336 BNE 30$ ; GET NEXT WORD OR
2324 001472 000137 001222' JMP LCBRC ; GET NEW RECORD.
2325 001476 005737 000146' 70$: TST DCBFIX ; [4.2209] FIXED FLAG SET?
2326 001502 001405 BEQ 72$ ; [4.2209] NO-- CONTINUE
2327 001504 012700 000265' MOV #TCBFXF,R0 ; [4.2209] YES-- TYPE MESSAGE
KLICB -- LOAD THE MICROCODE MACRO M1110 12-OCT-79 14:10 PAGE 62-1
$MCBLD -- LOAD THE RAMS
2328 001510 CALL $TTMSG ; [4.2209] TYPE IT
001510 004737 025164' JSR PC,$TTMSG
2329 001514 000760 BR 65$ ; [4.2209] TRY NEXT WORD
2330 001516 010200 72$: MOV R2,R0 ; ERROR - PUT ADDRESS
2331 001520 012701 000117' MOV #TCBDCW,R1 ; INTO ERROR MESSAGE
2332 001524 CALL LCBRME ; AND INFORM OPERATOR.
001524 004737 002172' JSR PC,LCBRME
2333 001530 103446 BCS 80$ ; FIVE UNFIXED ERRORS.
2334 001532 012701 000150' MOV #DCBCBF,R1 ; [4.2209] BAD BUFFER TO TYPE
2335 001536 012700 000410' MOV #TCBBAD,R0 ; [4.2209] HEADER TO TYPE
2336 001542 005004 CLR R4 ; [4.2209] CRAM TYPE OUT SWITCH
2337 001544 CALL LCBVFY ; [4.2209] TYPE BAD DATA
001544 004737 002246' JSR PC,LCBVFY
2338 001550 010301 MOV R3,R1 ; [4.2209] GOOD BUFFER TO TYPE
2339 001552 012700 000416' MOV #TCBGOD,R0 ; [4.2209] HEADER TO TYPE
2340 001556 CALL LCBVFY ; [4.2209] TYPE GOOD DATA
001556 004737 002246' JSR PC,LCBVFY
2341 001562 012700 000150' MOV #DCBCBF,R0 ; [4.2209] BAD DATA PTR
2342 001566 010301 MOV R3,R1 ; [4.2209] GOOD DATA PTR
2343 001570 012705 000006 MOV #6,R5 ; [4.2209] NUMBER OF WORDS
2344 001574 012104 75$: MOV (R1)+,R4 ; [4.2209] GET GOOD DATA
2345 001576 074420 XOR R4,(R0)+ ; [4.2209] GET DIFFERENCES
2346 001600 077503 SOB R5,75$ ; [4.2209] DONE?
2347 001602 012701 000150' MOV #DCBCBF,R1 ; [4.2209] YES-- XOR DATA TO TYPE
2348 001606 012700 000424' MOV #TCBXOR,R0 ; [4.2209] HEADER TO TYPE
2349 001612 005004 CLR R4 ; [4.2209] CRAM TYPE OUT SWITCH
2350 001614 CALL LCBVFY ; [4.2209] TYPE XOR DATA
001614 004737 002246' JSR PC,LCBVFY
2351 001620 105737 000026' TSTB .DRSW ; [4.2209] YES-- TRY TO FIX?
2352 001624 002307 BGE 60$ ; [4.2209] NO-- EXIT
2353 001626 010301 MOV R3,R1 ; [4.2209] YES-- SET UP GOOD DATA
2354 001630 010200 MOV R2,R0 ; [4.2209] ADDR TO WRITE
2355 001632 CALL $WCRAM ; [4.2209] WRITE DATA
001632 004737 010546' JSR PC,$WCRAM
2356 001636 103403 BCS 80$ ; [4.2209] WRITE FAILED
2357 001640 005237 000146' INC DCBFIX ; [4.2209] SET FIXED FLAG
2358 001644 000653 BR 35$ ; [4.2209] VERIFY FIX
2359 001646 000137 002312' 80$: JMP LCBFL ; OPERATION FAILED.
KLICB -- LOAD THE MICROCODE MACRO M1110 12-OCT-79 14:10 PAGE 63
$MCBLD -- LOAD THE RAMS
2361 ;+
2362 ; PROCESS D-RAM RECORD.
2363 ;
2364 ; NECESSARY EVILS:
2365 ; R3 - POINTS TO D-RAM WORD READ FROM FILE.
2366 ; DCBADR - ADDRESS FOR D-RAM WORD FROM FILE.
2367 ; .DRSW - IF NON-ZERO, THEN VERIFY.
2368 ;-
2369
2370 001652 005037 000146' LCBDRM: CLR DCBFIX ; [4.2209] CLEAR FIX FLAG
2371 001656 CALL LCB3W ; READ D-RAM WORD AND
001656 004737 001172' JSR PC,LCB3W
2372 001662 103541 BCS 40$
2373 001664 013700 000126' MOV DCBADR,R0 ; SET UP POINTERS.
2374 001670 105737 000026' TSTB .DRSW ; TEST FUNCTION...
2375 001674 001005 BNE 10$
2376 001676 010301 MOV R3,R1 ; GET THE WORD AND
2377 001700 CALL $WDRAM ; WRITE IT OUT.
001700 004737 011556' JSR PC,$WDRAM
2378 001704 103021 BCC 20$
2379 001706 000527 BR 40$
2380 001710 012701 000164' 10$: MOV #DCBDBF,R1 ; GET A HOLDING AREA
2381 001714 CALL $RDRAM ; AND READ IT IN
001714 004737 011736' JSR PC,$RDRAM
2382 001720 103522 BCS 40$
2383 001722 010300 MOV R3,R0
2384 001724 042711 000020 BIC #20,(R1) ; CLEAR PARITY BITS
2385 001730 022120 CMP (R1)+,(R0)+ ; AND COMPARE.
2386 001732 001025 BNE 30$
2387 001734 042711 000020 BIC #20,(R1)
2388 001740 022120 CMP (R1)+,(R0)+
2389 001742 001021 BNE 30$
2390 001744 021110 CMP (R1),(R0)
2391 001746 001017 BNE 30$
2392 001750 005737 000146' 20$: TST DCBFIX ; [4.2209] FIXED FLAG SET?
2393 001754 001402 BEQ 25$ ; [4.2209] NO-- CONTINUE
2394 001756 005337 000144' DEC DCBCNT ; [4.2209] YES-- DECREMENT ERROR COUNT
2395 001762 005037 000146' 25$: CLR DCBFIX ; [4.2209] CLEAR FIX FLAG
2396 001766 062737 000002 000126' ADD #2,DCBADR ; BUMP D-RAM ADDRESS.
2397 001774 005737 000476' TST .SYIRC ; END OF RECORD ?
2398 002000 001324 BNE LCBDRM ; NO, STILL GOING,
2399 002002 000137 001222' JMP LCBRC ; OTHERWISE GET NEW RECORD.
2400 002006 005737 000146' 30$: TST DCBFIX ; [4.2209] FIXED FLAG SET?
2401 002012 001405 BEQ 32$ ; [4.2209] NO-- CONTINUE
2402 002014 012700 000265' MOV #TCBFXF,R0 ; [4.2209] YES-- TYPE MESSAGE
2403 002020 CALL $TTMSG ; [4.2209] TYPE IT
002020 004737 025164' JSR PC,$TTMSG
2404 002024 000756 BR 25$ ; [4.2209] TRY NEXT WORD
2405 002026 013700 000126' 32$: MOV DCBADR,R0 ; ERROR - PUT ADDRESS
2406 002032 012701 000151' MOV #TCBDDW,R1 ; IN ERROR MESSAGE
2407 002036 CALL LCBRME ; AND INFORM OPERATOR.
002036 004737 002172' JSR PC,LCBRME
2408 002042 103451 BCS 40$ ; FIVE UNFIXED ERRORS
2409 002044 012704 000001 MOV #1,R4 ; [4.2209] DRAM TYPE OUT SWITCH
2410 002050 012701 000164' MOV #DCBDBF,R1 ; [4.2209] BAD BUFFER
2411 002054 012700 000410' MOV #TCBBAD,R0 ; [4.2209] HEADER
2412 002060 CALL LCBVFY ; [4.2209] TYPE GOOD DATA
KLICB -- LOAD THE MICROCODE MACRO M1110 12-OCT-79 14:10 PAGE 63-1
$MCBLD -- LOAD THE RAMS
002060 004737 002246' JSR PC,LCBVFY
2413 002064 010301 MOV R3,R1 ; [4.2209] GOOD BUFFER
2414 002066 012700 000416' MOV #TCBGOD,R0 ; [4.2209] HEADER
2415 002072 CALL LCBVFY ; [4.2209] TYPE GOOD DATA
002072 004737 002246' JSR PC,LCBVFY
2416 002076 012700 000164' MOV #DCBDBF,R0 ; [4.2209] BAD BUFFER
2417 002102 010301 MOV R3,R1 ; [4.2209] GOOD DATA
2418 002104 012705 000003 MOV #3,R5 ; [4.2209] NUMBER OF WORDS
2419 002110 012104 35$: MOV (R1)+,R4 ; [4.2209] GET GOOD DATA
2420 002112 074420 XOR R4,(R0)+ ; [4.2209] GET DIFFERENCES
2421 002114 077503 SOB R5,35$ ; [4.2209] DONE?
2422 002116 012701 000164' MOV #DCBDBF,R1 ; [4.2209] YES-- XOR BUFFER
2423 002122 012700 000424' MOV #TCBXOR,R0 ; [4.2209] HEADER
2424 002126 012704 000001 MOV #1,R4 ; [4.2209] DRAM TYPE OUT HEADER
2425 002132 CALL LCBVFY ; [4.2209] TYPE XOR DATA
002132 004737 002246' JSR PC,LCBVFY
2426 002136 105737 000026' TSTB .DRSW ; [4.2209] TRY TO FIX?
2427 002142 002302 BGE 20$ ; [4.2209] NO-- NEXT WORD
2428 002144 013700 000126' MOV DCBADR,R0 ; [4.2209] YES-- SET UP ADDRESS
2429 002150 010301 MOV R3,R1 ; [4.2209] SET UP DATA
2430 002152 CALL $WDRAM ; [4.2209] WRITE IT
002152 004737 011556' JSR PC,$WDRAM
2431 002156 103403 BCS 40$ ; [4.2209] WRITE FAILED
2432 002160 005237 000146' INC DCBFIX ; [4.2209] SET FIXED FLAG
2433 002164 000651 BR 10$ ; [4.2209] VERIFY FIX
2434 002166 000137 002312' 40$: JMP LCBFL ; OPERATION FAILED.
KLICB -- LOAD THE MICROCODE MACRO M1110 12-OCT-79 14:10 PAGE 64
$MCBLD -- LOAD THE RAMS
2436 ;+
2437 ; INSERT RAM ADDRESS IN ERROR MESSAGE AND PRINT IT. BUMP ERROR COUNT
2438 ; AND IF TOO HIGH, SO INDICATE.
2439 ;
2440 ; INPUTS:
2441 ; R1 - ADDRESS OF MESSAGE TO DISPLAY.
2442 ; R0 - RAM ADDRESS TO DISPLAY IN OCTAL AFTER "AT ".
2443 ;
2444 ; OUTPUT:
2445 ; CARRY SET IF TOO MANY ERRORS.
2446 ;-
2447
2448 002172 004537 021764' LCBRME: JSR R5,$RSAVE
2449 002176 010105 MOV R1,R5 ; GET MESSAGE ADDRESS
2450 002200 122725 000101 10$: CMPB #'A,(R5)+ ; AND LOOK FOR "AT"
2451 002204 001375 BNE 10$
2452 002206 122725 000124 CMPB #'T,(R5)+
2453 002212 001372 BNE 10$
2454 002214 005205 INC R5 ; PASS BY SPACE
2455 002216 CALL $TRB2O ; AND INSERT RAM ADDRESS.
002216 004737 024212' JSR PC,$TRB2O
2456 002222 105015 CLRB (R5) ; THIS IS THE END OF THE MESSAGE.
2457 002224 PRINT R1 ; TYPE OUT OFFENDING ADDRESS.
002224 010100 MOV R1,R0
002226 004737 025164' JSR PC,$TTMSG
2458 002232 005237 000144' INC DCBCNT ; ONE MORE DIFFERENCE.
2459 002236 022737 000005 000144' CMP #5,DCBCNT ; LAST STRAW ?
2460 002244 RETURN ; SETS CARRY IF MCBCNT>5.
002244 000207 RTS PC
2461
2462 ;+
2463 ; TYPE MESSAGE HEADER THEN A SPECIFIED NUMBER OF WORDS AS BINARY VALUES.
2464 ;
2465 ; INPUTS:
2466 ; R0- MESSAGE HEADER.
2467 ; R1- DATA BUFFER TO TYPE AS BINARY DIGITS.
2468 ; R4- CRAM/DRAM TYPE OUT SWITCH
2469 ;
2470 ; OUTPUTS:
2471 ; NONE- NO REGISTERS AFFECTED
2472 ;-
2473
2474 002246 LCBVFY: PUSH <R0> ; [4.2209] SAVE R0
002246 010046 MOV R0,-(SP)
2475 002250 012700 000207' MOV #TTTPR,R0 ; [4.2209] PREFIX HEADER
2476 002254 CALL $TTDMS ; [4.2209] TYPE PREFIX HEADER
002254 004737 025116' JSR PC,$TTDMS
2477 002260 POP <R0> ; [4.2209] RESTORE R0
002260 012600 MOV (SP)+,R0
2478 002262 CALL $TTDMS ; [4.2209] TYPE MESSAGE HEADER
002262 004737 025116' JSR PC,$TTDMS
2479 002266 005704 TST R4 ; [4.2209] TEST SWITCH
2480 002270 001403 BEQ 5$ ; [4.2209] CRAM
2481 002272 CALL $TRDRM ; [4.2209] TYPE DRAM
002272 004737 023370' JSR PC,$TRDRM
2482 002276 000402 BR 7$ ; [4.2209] CONTINUE
2483 002300 5$: CALL $TRCRM ; [4.2209] TYPE CRAM
KLICB -- LOAD THE MICROCODE MACRO M1110 12-OCT-79 14:10 PAGE 64-1
$MCBLD -- LOAD THE RAMS
002300 004737 023224' JSR PC,$TRCRM
2484 002304 7$: CALL $TCRLF ; [4.2209] TYPE CR-LF
002304 004737 025060' JSR PC,$TCRLF
2485 002310 RETURN ; [4.2209] DONE
002310 000207 RTS PC
2486
2487 ;+
2488 ; OPERATION FAILED - NOTIFY OPERATOR.
2489 ;-
2490
2491 002312 012700 000203' LCBFL: MOV #TCBMLF,R0 ; ASSUME LOAD
2492 002316 105737 000026' TSTB .DRSW ; AND IF VERIFY,
2493 002322 001402 BEQ 10$
2494 002324 012700 000233' MOV #TCBMVF,R0 ; GET VERIFY MESSAGE.
2495 002330 10$: PRINT
002330 004737 025164' JSR PC,$TTMSG
2496 002334 CALL $PURGE
002334 004737 007366' JSR PC,$PURGE
2497 002340 000261 SEC
2498 002342 RETURN
002342 000207 RTS PC
KLICB -- LOAD THE MICROCODE MACRO M1110 12-OCT-79 14:10 PAGE 65
$MCBLD -- LOAD THE RAMS
2500 ;+
2501 ; IDENTIFY THE MICROCODE VERSION NUMBER.
2502 ;-
2503
2504 002344 105737 000026' LCBVR: TSTB .DRSW ; GET MESSAGE:
2505 002350 001003 BNE 10$
2506 002352 012702 000314' MOV #TCBMVL,R2 ; MICROCODE LOADED OR
2507 002356 000402 BR 20$
2508 002360 012702 000351' 10$: MOV #TCBMVV,R2 ; MICROCODE VERIFIED.
2509 002364 010205 20$: MOV R2,R5 ; GET POSITION TO INSERT
2510 002366 122725 000117 30$: CMPB #'O,(R5)+ ; MICROCODE VERSION.
2511 002372 001375 BNE 30$
2512 002374 122725 000116 CMPB #'N,(R5)+
2513 002400 001372 BNE 30$
2514 002402 005205 INC R5
2515 002404 012700 000202' MOV #DCBAPR,R0
2516 002410 CALL $EXCT ; DO AN APRID
002410 004737 025716' JSR PC,$EXCT
2517 002414 103425 BCS 50$
2518 002416 012701 000172' MOV #DCBBF,R1 ; AND GET RESULT
2519 002422 012700 000177' MOV #DCBA17,R0 ; FROM AC17.
2520 002426 CALL $EXAM
002426 004737 012466' JSR PC,$EXAM
2521 002432 103416 BCS 50$
2522 002434 016100 000002 MOV 2(R1),R0 ; EXTRACT MICROCODE VERSION
2523 002440 SR R0,2 ; FROM BITS 9-17
002440 006200 ASR R0
002442 006200 ASR R0
2524 002444 042700 177000 BIC #^C777,R0 ; AND ONLY THESE BITS.
2525 002450 CALL $TRB2O
002450 004737 024212' JSR PC,$TRB2O
2526 002454 122715 000040 40$: CMPB #' ,(R5) ; ZAP OUT REST OF FIELD.
2527 002460 001410 BEQ 60$
2528 002462 112725 177777 MOVB #-1,(R5)+
2529 002466 000772 BR 40$
2530 002470 112715 000077 50$: MOVB #'?,(R5) ; VERSION UNKNOWN.
2531 002474 112515 MOVB (R5)+,(R5)
2532 002476 112525 MOVB (R5)+,(R5)+
2533 002500 005005 CLR R5 ; INDICATE LOAD WAS A FLOP.
2534 002502 60$: PRINT R2 ; PRINT THE MESSAGE.
002502 010200 MOV R2,R0
002504 004737 025164' JSR PC,$TTMSG
2535 002510 005705 TST R5 ; HOW DID IT TURN OUT ?
2536 002512 001001 BNE 70$
2537 002514 000261 SEC ; BADLY.....
2538 002516 70$: RETURN
002516 000207 RTS PC
KLICF -- CREATE NEW CONFIGURATI MACRO M1110 12-OCT-79 14:10 PAGE 66
$MCBLD -- LOAD THE RAMS
2540 .TITLE KLICF -- CREATE NEW CONFIGURATION IN FILE
2541 002520 IDENT$ 11,4
.IDENT /011040/
2542 ;
2543 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
2544 ;
2545 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
2546 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
2547 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
2548 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
2549 ;
2550 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
2551 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
2552 ; EQUIPMENT CORPORATION.
2553 ;
2554 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
2555 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
2556 ;
2557 ; VERSION 11-04
2558 ;
2559 ; ALAN D. PECKHAM 11-APR-77
2560 ;
2561 ; MODIFIED BY:
2562 ;
2563 ; R. BELANGER 02-MAR-79 ADD REVERSE MEMORY CONFIGURATION
2564 ; TCO 4.2204
2565 ; R. BELANGER 16-NOV-78 INTEGRATE TOPS-10 SMP FEATURES
2566 ; TCO 4.2093
2567 ; R. BELANGER 25-JUL-78 INTEGRATE MOS CONFIGURATOR
2568 ;
2569 ; FUNCTION: THIS MODULE WRITES OUT THE NEW CONFIGURATION TO
2570 ; KL.CFG IF THE CONFIGURATION HAS BEEN CHANGED.
KLICF -- CREATE NEW CONFIGURATI MACRO M1110 12-OCT-79 14:10 PAGE 67
$MCBLD -- LOAD THE RAMS
2572 ;
2573 ; EQUATED SYMBOLS
2574 ;
2575 000003 MXTYP = 3 ; LARGEST RECORD TYPE WE HANDLE.
2576 ;
2577 ; LOCAL DATA
2578 ;
2579 000220 .PSECT DATA,D
2580 000220 DCFCFN:
2581 000220 043240 000000 000000 .RAD50 /KL CFG/ ;CONFIGURATION FILE NAME.
000226 011667
2582 000230 000000 .WORD 0 ;CREATE NEXT VERSION.
2583 000232 005 005 .BYTE 5,5
2584 000234 054523 000000 .WORD "SY,0
2585 000240 DCFLFN:
2586 000240 043240 000000 000000 .RAD50 /KL CFG/ ;CONFIGURATION FILE NAME.
000246 011667
2587 000250 177777 .WORD -1 ;DELETE LOWEST VERSION.
2588 000252 005 005 .BYTE 5,5
2589 000254 054523 000000 .WORD "SY,0
2590 000260 DCFRJT:
2591 000260 002746' .WORD LCFREF ; 0 - EOF RECORD
2592 000262 002640' .WORD LCFRMM ; 1 - CONTROLLER RECORD
2594 000264 002730' .WORD LCFRCA ; 2 - CACHE RECORD
2598 000266 002720' .WORD LCFRBF ; 3 - BOOTSTRAP RECORD
2602 000432 .PSECT TEXT,D
2603 000432 TCFCFA:
2604 000432 MESSAGE <CONFIGURATION FILE WRITTEN> ;[TCO 4.2251]
000432 103 117 116 .ASCIZ \CONFIGURATION FILE WRITTEN\
000435 106 111 107
000440 125 122 101
000443 124 111 117
000446 116 040 106
000451 111 114 105
000454 040 127 122
000457 111 124 124
000462 105 116 000
2605 000465 TCFCFE:
2606 000465 ERROR <CONFIGURATION FILE NOT CHANGED>
000465 077 040 103 .ASCIZ \? CONFIGURATION FILE NOT CHANGED\
000470 117 116 106
000473 111 107 125
000476 122 101 124
000501 111 117 116
000504 040 106 111
000507 114 105 040
000512 116 117 124
000515 040 103 110
000520 101 116 107
000523 105 104 000
2607 002520 .PSECT
KLICF -- CREATE NEW CONFIGURATI MACRO M1110 12-OCT-79 14:10 PAGE 68
$FILE -- WRITE THE CONFIGURATION FILE
2609 .SBTTL $FILE -- WRITE THE CONFIGURATION FILE
2610
2611 ;+
2612 ; CONFIGURATION FILE FORMAT:
2613 ;
2614 ; GENERAL --
2615 ;
2616 ; RECORDS IN THE CONFIGURATION FILE HAVE THE FOLLOWING GENERAL FORMAT:
2617 ;
2618 ; +-----------+
2619 ; ! .WORD N !
2620 ; +-----------+
2621 ; ! RECORD ID !
2622 ; +-----------+
2623 ; ! .BLKB N-2 !
2624 ; +-----------+
2625 ;
2626 ; END-OF-FILE RECORD:
2627 ;
2628 ; THE END-OF FILE RECORD IS FIXED-LENGTH IN THE FOLLOWING FORMAT:
2629 ;
2630 ; +-----------+
2631 ; ! .WORD 2 !
2632 ; +-----------+
2633 ; ! .WORD 0 !
2634 ; +-----------+
2635 ;
2636 ; MEMORY CONTROLLER RECORD:
2637 ;
2638 ; A MEMORY CONTROLLER RECORD IS FIXED-LENGTH IN THE FOLLOWING FORMAT:
2639 ;
2640 ; +-----------+
2641 ; ! .WORD 6 !
2642 ; +-----------+
2643 ; ! .WORD 1 !
2644 ; +-----------+
2645 ; ! .BLKB 4 !
2646 ; +-----------+
2647 ;
2648 ; CACHE RECORD:
2649 ;
2650 ; A CACHE RECORD IS VARIABLE-LENGTH IN THE FOLLOWING FORMAT:
2651 ;
2652 ; +-----------+
2653 ; ! .WORD X ! (X = .NCACH + 3)
2654 ; +-----------+
2655 ; ! .WORD 2 !
2656 ; +-----------+
2657 ; ! .BLKB Y ! (Y = .NCACH)
2658 ; +-----------+
2659 ;
2660 ; BOOTSTRAP RECORD:
2661 ;
2662 ; THE BOOTSTRAP RECORD IS VARIABLE-LENGTH IN THE FOLLOWING FORMAT:
2663 ;
2664 ; +-----------+
2665 ; ! .WORD N ! (N >= 4)
KLICF -- CREATE NEW CONFIGURATI MACRO M1110 12-OCT-79 14:10 PAGE 68-1
$FILE -- WRITE THE CONFIGURATION FILE
2666 ; +-----------+
2667 ; ! .WORD 3 !
2668 ; +-----------+
2669 ; ! .BLKB 1 !
2670 ; +-----------+
2671 ; ! .BLKB 1 !
2672 ; +-----------+
2673 ; ! .BLKW 4 !
2674 ; +-----------+
2675 ;
2676 ; THE FIRST TWO BYTES IN THE RECORD ARE ".BTSW" AND ".UFNSW". IF
2677 ; THE USER SPECIFIED A FILENAME FOR THE BOOTSTRAP, THE FILENAME IS
2678 ; SAVED IN THE LAST FOUR WORDS OF THE BOOTSTRAP RECORD.
2679 ;
2680 ; A NON EXISTENT RECORD IN THE FILE IMPLIES THE DEFAULT, ALL, OR YES
2681 ; OPTION IS TO BE TAKEN
2682 ;-
KLICF -- CREATE NEW CONFIGURATI MACRO M1110 12-OCT-79 14:10 PAGE 69
$FILE -- WRITE THE CONFIGURATION FILE
2684 002520 $FILE::
2685 002520 105737 000041' TSTB .FILSW ; WRITE CONFIGURATION FILE??
2686 002524 100560 BMI LCFRTN ; NO -- JUST EXIT
2687 002526 105737 000042' TSTB .BTSW ; YES -- BOOTSTRAP MODIFIED??
2688 002532 001006 BNE 10$ ; YES -- WRITE THE FILE
2690 002534 105737 000027' TSTB .DCSW ; IF NO CACHE OR
2691 002540 001003 BNE 10$
2692 002542 105737 000030' TSTB .DMSW ; MEMORY MODIFICATION,
2696 002546 001547 BEQ LCFRTN ; LEAVE THE FILE ALONE.
2697 002550 10$:
2698 002550 005004 CLR R4 ; SET INPUT FILE SWITCH.
2699 002552 012700 000220' MOV #DCFCFN,R0 ; FIRST, FIND OLD FILE
2700 002556 CALL $LOOKUP
002556 004737 007024' JSR PC,$LOOKUP
2701 002562 103005 BCC 20$
2702 002564 122737 000000G 000470' CMPB #IE.NSF,.SYSTA ; IF NOT THERE
2703 002572 001140 BNE LCFERR
2704 002574 005304 DEC R4 ; SET INDICATOR.
2705 002576 20$:
2706 002576 012700 000220' MOV #DCFCFN,R0 ; OPEN 'KL.CFG'
2707 002602 CALL $ENTER ; FOR OUTPUT.
002602 004737 007176' JSR PC,$ENTER
2708 002606 103532 BCS LCFERR
2709 002610 005704 TST R4 ; IF NO INPUT FILE
2710 002612 002455 BLT LCFREF ; THEN DON'T READ IT.
2711 ;
2712 ; READ THE NEXT RECORD FROM THE FILE AND DISPATCH ON ITS RECORD TYPE
2713 ;
2714 002614 LCFNXT:
2715 002614 CALL $READC ; READ NEXT RECORD
002614 004737 007460' JSR PC,$READC
2716 002620 103523 BCS LCFPRG
2717 002622 010001 MOV R0,R1 ; AND SAVE ID.
2718 002624 022701 000003 CMP #MXTYP,R1 ; IS IT MY RECORD ?
2719 002630 002406 BLT LCFCPY ; NO, JUST TRANSFER.
2720 002632 006300 ASL R0
2721 002634 000170 000260' JMP @DCFRJT(R0) ; PROCESS THE RECORD.
2722 ;
2723 ;
2724 ; PROCESS MEMORY CONTROLLER RECORDS
2725 ;
2726 002640 LCFRMM:
2727 002640 105737 000030' TSTB .DMSW ; IF MEMORY CONFIGURATION IS CHANGED
2728 002644 001034 BNE LCFSKP ; THEN SKIP RECORD, OTHERWISE
2729 ;
2730 ; COPY A RECORD FROM THE INPUT FILE TO THE OUTPUT FILE
2731 ;
2732 002646 LCFCPY:
2733 002646 013700 000476' MOV .SYIRC,R0 ; TRANSFER RECORD TO OUTPUT FILE.
2734 002652 062700 000002 ADD #2,R0
2735 002656 CALL $WRITC ; (BYTE COUNT)
002656 004737 010066' JSR PC,$WRITC
2736 002662 103502 BCS LCFPRG
2737 002664 010100 MOV R1,R0
2738 002666 CALL $WRITW ; (ID #)
002666 004737 010200' JSR PC,$WRITW
2739 002672 103476 BCS LCFPRG
KLICF -- CREATE NEW CONFIGURATI MACRO M1110 12-OCT-79 14:10 PAGE 69-1
$FILE -- WRITE THE CONFIGURATION FILE
2740 002674 10$:
2741 002674 005737 000476' TST .SYIRC ; ANY MORE STUFF ?
2742 002700 003745 BLE LCFNXT ; NO, WE ARE FINISHED.
2743 002702 CALL $READB
002702 004737 007662' JSR PC,$READB
2744 002706 103470 BCS LCFPRG
2745 002710 CALL $WRITB
002710 004737 010274' JSR PC,$WRITB
2746 002714 103465 BCS LCFPRG
2747 002716 000766 BR 10$ ; LOOP UNTIL WE RUN OUT OF BYTES.
2748 ;
2749 ;
2750 ; PROCESS THE BOOTSTRAP RECORD
2751 ;
2752 002720 LCFRBF:
2753 002720 105737 000042' TSTB .BTSW ; BOOTSTRAP FLAG MODIFIED??
2754 002724 001750 BEQ LCFCPY ; NO -- COPY RECORD
2755 002726 000403 BR LCFSKP ; YES --SKIP RECORD
2756 ;
2758 ;
2759 ; PROCESS THE CACHE RECORD
2760 ;
2761 002730 LCFRCA:
2762 002730 105737 000027' TSTB .DCSW ; IF CACHE IS NOT CHANGED
2763 002734 001744 BEQ LCFCPY ; THEN COPY CACHE RECORD, OTHERWISE
2765 ;
2766 ; SKIP AN INPUT RECORD
2767 ;
2768 002736 LCFSKP:
2769 002736 CALL $READS ; SKIP THIS RECORD.
002736 004737 007516' JSR PC,$READS
2770 002742 103452 BCS LCFPRG
2771 002744 000723 BR LCFNXT ; GET A NEW RECORD.
2772 ;
2774 ;
2775 ; HERE ON END-OF-FILE RECORD
2776 ;
2777 002746 LCFREF:
2778 002746 105737 000027' TSTB .DCSW ; IF CACHE WAS CHANGED
2779 002752 001403 BEQ 10$
2780 002754 CALL LCFWCA ; THEN WRITE THE CACHE RECORD.
002754 004737 003354' JSR PC,LCFWCA
2781 002760 103443 BCS LCFPRG
2782 002762 10$:
2783 002762 105737 000030' TSTB .DMSW ; IF THE MEMORY CONFIGURATION
2788 002766 001403 BEQ 20$ ; WAS CHANGED, THEN
2789 002770 CALL LCFWMM ; WRITE THE CONTROLLER RECORDS.
002770 004737 003246' JSR PC,LCFWMM
2790 002774 103435 BCS LCFPRG
2791 002776 20$:
2792 002776 105737 000042' TSTB .BTSW ; BOOT FLAG CHANGED??
2793 003002 001403 BEQ 30$ ; NO -- GO ON
2794 003004 CALL LCFWBF ; YES -- WRITE BOOT RECORD
003004 004737 003110' JSR PC,LCFWBF
2795 003010 103427 BCS LCFPRG ;ERROF CC-C IS SET
2796 003012 30$:
2797 003012 CALL LCFWEF ; NOW WRITE END OF FILE.
KLICF -- CREATE NEW CONFIGURATI MACRO M1110 12-OCT-79 14:10 PAGE 69-2
$FILE -- WRITE THE CONFIGURATION FILE
003012 004737 003224' JSR PC,LCFWEF
2798 003016 103424 BCS LCFPRG
2799 003020 CALL $CLOSE ; CLOSE THE FILE AND
003020 004737 006320' JSR PC,$CLOSE
2800 003024 103421 BCS LCFPRG
2801 003026 005704 TST R4 ; DELETE THE OLD VERSION
2802 003030 002404 BLT 90$ ; IF THERE IS ONE.
2803 003032 012700 000240' MOV #DCFLFN,R0
2804 003036 CALL $DELETE
003036 004737 006456' JSR PC,$DELETE
2805 003042 90$:
2806 003042 PRINT #TCFCFA ; INFORM THE OPERATOR.
003042 012700 000432' MOV #TCFCFA,R0
003046 004737 025164' JSR PC,$TTMSG
2807 003052 105037 000042' CLRB .BTSW ; RESET THE BOOTSTRAP SWITCH
2809 003056 105037 000027' CLRB .DCSW
2811 003062 105037 000030' CLRB .DMSW ; FILE NOW CORRESPONDS
2812 ;
2813 ; NORMAL EXIT
2814 ;
2815 003066 LCFRTN:
2816 003066 RETURN ; TO NEW CONFIGURATION.
003066 000207 RTS PC
2817 ;
2818 ; ERROR EXIT
2819 ;
2820 003070 LCFPRG:
2821 003070 CALL $PURGE ; ERROR ! PURGE FILE
003070 004737 007366' JSR PC,$PURGE
2822 003074 LCFERR:
2823 003074 PRINT #TCFCFE ; TELL OPERATOR
003074 012700 000465' MOV #TCFCFE,R0
003100 004737 025164' JSR PC,$TTMSG
2824 003104 000261 SEC
2825 003106 RETURN ; AND GO AWAY.
003106 000207 RTS PC
KLICF -- CREATE NEW CONFIGURATI MACRO M1110 12-OCT-79 14:10 PAGE 70
$FILE -- WRITE BOOTSTRAP RECORD
2827 .SBTTL $FILE -- WRITE BOOTSTRAP RECORD
2828
2829 ;+
2830 ; ROUTINES TO WRITE THE INDIVIDUAL RECORDS
2831 ;-
2832
2833 ;
2834 ; WRITE THE BOOTSTRAP RECORD
2835 ;
2836
2837 003110 LCFWBF:
2838 003110 012700 000004 MOV #4,R0 ; WRITE BOOTSTRAP RECORD
2839 003114 105737 000025' TSTB .UFNSW ; DID HE SPECIFY A FILE-NAME??
2840 003120 001402 BEQ 10$ ; NO -- GO ON
2841 003122 062700 000010 ADD #10,R0 ; YES -- ALLOW FOR IT
2842 003126 10$:
2843 003126 CALL $WRITC ; WRITE THE RECORD HEADER
003126 004737 010066' JSR PC,$WRITC
2844 003132 103433 BCS 30$ ; ERROR IF CC-C IS SET
2845 003134 012700 000003 MOV #3,R0 ; RECORD ID
2846 003140 CALL $WRITW ; WRITE IT
003140 004737 010200' JSR PC,$WRITW
2847 003144 103426 BCS 30$ ; ERROR IF CC-C IS SET
2848 003146 113700 000042' MOVB .BTSW,R0 ; BOOTSTRAP SWITCH TO R0
2849 003152 CALL $WRITB ; WRITE IT
003152 004737 010274' JSR PC,$WRITB
2850 003156 103421 BCS 30$ ; ERROR IF CC-C IS SET
2851 003160 113700 000025' MOVB .UFNSW,R0 ; FILE-NAME SWITCH TO R0
2852 003164 CALL $WRITB ; WRITE IT
003164 004737 010274' JSR PC,$WRITB
2853 003170 103414 BCS 30$ ; ERROR IF CC-C IS SET
2854 003172 005737 001530' TST .SYORC ; ARE WE DONE??
2855 003176 001411 BEQ 30$ ; YES -- EXIT
2856 003200 012701 000004 MOV #4,R1 ; NO -- SET UP TO WRITE FILE-NAME
2857 003204 012702 000442' MOV #.USRFN,R2 ; POINT TO THE FILE-NAME
2858 003210 20$:
2859 003210 012200 MOV (R2)+,R0 ; GET ONE WORD AT A TIME
2860 003212 CALL $WRITW ; WRITE IT
003212 004737 010200' JSR PC,$WRITW
2861 003216 103401 BCS 30$ ; ERROR IF CC-C IS SET
2862 003220 077105 SOB R1,20$ ; DO ALL 4 ELEMENTS
2863 003222 30$:
2864 003222 RETURN ; EXIT
003222 000207 RTS PC
KLICF -- CREATE NEW CONFIGURATI MACRO M1110 12-OCT-79 14:10 PAGE 71
$FILE -- WRITE END-OF-FILE RECORD
2866 .SBTTL $FILE -- WRITE END-OF-FILE RECORD
2867
2868 ;
2869 ; WRITE END-OF-FILE RECORD
2870 ;
2871
2872 003224 LCFWEF:
2873 003224 012700 000002 MOV #2,R0 ; WRITE EOF RECORD.
2874 003230 CALL $WRITC
003230 004737 010066' JSR PC,$WRITC
2875 003234 103403 BCS 10$
2876 003236 005000 CLR R0
2877 003240 CALLR $WRITW
003240 000137 010200' JMP $WRITW
2878 ;
2879 003244 10$:
2880 003244 RETURN
003244 000207 RTS PC
KLICF -- CREATE NEW CONFIGURATI MACRO M1110 12-OCT-79 14:10 PAGE 72
$FILE -- WRITE MEMORY CONTROLLER RECORDS
2882 .SBTTL $FILE -- WRITE MEMORY CONTROLLER RECORDS
2883
2884 ;
2885 ; WRITE MEMORY CONTROLLER RECORD(S)
2886 ;
2887
2888 003246 LCFWMM:
2889 003246 005002 CLR R2 ; WRITE OUT MEMORY RECORDS.
2890 003250 10$:
2891 003250 105762 000056' TSTB .CTLTP(R2) ; CHECK IF CONTROLLER USED.
2892 003254 001432 BEQ 20$ ; NOT USED -- TRY FOR THE NEXT CONTROLLER
2893 003256 012700 000006 MOV #6,R0 ; OK - INCLUDE IN FILE.
2894 003262 CALL $WRITC ; (LENGTH)
003262 004737 010066' JSR PC,$WRITC
2895 003266 103431 BCS 30$
2896 003270 012700 000001 MOV #1,R0
2897 003274 CALL $WRITW ; (ID #)
003274 004737 010200' JSR PC,$WRITW
2898 003300 103424 BCS 30$
2899 003302 010200 MOV R2,R0
2900 003304 CALL $WRITB ; (CONTROLLER #)
003304 004737 010274' JSR PC,$WRITB
2901 003310 103420 BCS 30$
2902 003312 116200 000056' MOVB .CTLTP(R2),R0
2903 003316 CALL $WRITB ; (TYPE)
003316 004737 010274' JSR PC,$WRITB
2904 003322 103413 BCS 30$
2905 003324 006302 ASL R2 ; WORD INDEX
2906 003326 016200 000120' MOV .CFGTB(R2),R0
2907 003332 006202 ASR R2 ; BACK TO BYTE INDEX
2908 003334 CALL $WRITW ; (MODULES/BLOCKS/INTERLEAVE/BUS-MODE)
003334 004737 010200' JSR PC,$WRITW
2909 003340 103404 BCS 30$
2910 003342 20$:
2911 003342 005202 INC R2 ; CHECK ALL CONTROLLERS.
2912 003344 022702 000041 CMP #CTLS+1,R2 ; [TC0 4.2204] AND REVERSE CONFIGURATION FLAG
2913 003350 003337 BGT 10$
2914 003352 30$:
2915 003352 RETURN
003352 000207 RTS PC
KLICF -- CREATE NEW CONFIGURATI MACRO M1110 12-OCT-79 14:10 PAGE 73
$FILE -- WRITE CACHE RECORDS
2917 .SBTTL $FILE -- WRITE CACHE RECORDS
2918
2919
2920 ;
2921 ; WRITE CACHE RECORD(S)
2922 ;
2924
2925 003354 LCFWCA:
2926 003354 113700 000050' MOVB .NCACH,R0 ; WRITE OUT CACHE RECORD.
2927 003360 010001 MOV R0,R1
2928 003362 062700 000003 ADD #3,R0
2929 003366 CALL $WRITC ; (LENGTH)
003366 004737 010066' JSR PC,$WRITC
2930 003372 103422 BCS 20$
2931 003374 012700 000002 MOV #2,R0
2932 003400 CALL $WRITW ; (ID #)
003400 004737 010200' JSR PC,$WRITW
2933 003404 103415 BCS 20$
2934 003406 110100 MOVB R1,R0
2935 003410 CALL $WRITB ; (# CACHES)
003410 004737 010274' JSR PC,$WRITB
2936 003414 103411 BCS 20$
2937 003416 005701 TST R1
2938 003420 001407 BEQ 20$
2939 003422 012702 000051' MOV #.CACHN,R2
2940 003426 10$:
2941 003426 112200 MOVB (R2)+,R0
2942 003430 CALL $WRITB ; (CACHE #S)
003430 004737 010274' JSR PC,$WRITB
2943 003434 103401 BCS 20$
2944 003436 077105 SOB R1,10$
2945 003440 20$:
2946 003440 RETURN
003440 000207 RTS PC
KLICI -- INTERNAL AND MOS DIALO MACRO M1110 12-OCT-79 14:10 PAGE 74
$FILE -- WRITE CACHE RECORDS
2949 .TITLE KLICI -- INTERNAL AND MOS DIALOGUE
2950 003442 IDENT$ 10,0,KLI$$F
.IDENT /B10000/
2951 ;
2952 ; COPYRIGHT (C) 1975, 1978 BY
2953 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
2954 ;
2955 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
2956 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
2957 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
2958 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
2959 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
2960 ;
2961 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
2962 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
2963 ; CORPORATION.
2964 ;
2965 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
2966 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
2967 ;
2968 ;
2969 ; MODULE: INTERNAL AND MOS DIALOGUE
2970 ;
2971 ; VERSION: 10-00
2972 ;
2973 ; DATE: 25-JUL-78
2974 ;
2975 ; AUTHOR: R. BELANGER
2976 ;
2977 ; MODIFICATIONS:
2978 ;
2979 ; NO. DATE PROGRAMMER REASON
2980 ; --- ---- ---------- ------
2981 ;
2982 ; LOCAL DATA
2983 ;
2984
2985 000526 .PSECT TEXT,D
2986 000526 CFIMQ1:
2987 000526 MESSAGE <CONFIGURE INTERNAL CORE MEMORY [ALL,YES,NO]?>
000526 103 117 116 .ASCIZ \CONFIGURE INTERNAL CORE MEMORY [ALL,YES,NO]?\
000531 106 111 107
000534 125 122 105
000537 040 111 116
000542 124 105 122
000545 116 101 114
000550 040 103 117
000553 122 105 040
000556 115 105 115
000561 117 122 131
000564 040 133 101
000567 114 114 054
000572 131 105 123
000575 054 116 117
000600 135 077 000
2988 000603 CFMMQ1:
2989 000603 MESSAGE <CONFIGURE MOS MEMORY [ALL,YES,NO]?>
KLICI -- INTERNAL AND MOS DIALO MACRO M1110 12-OCT-79 14:10 PAGE 74-1
$FILE -- WRITE CACHE RECORDS
000603 103 117 116 .ASCIZ \CONFIGURE MOS MEMORY [ALL,YES,NO]?\
000606 106 111 107
000611 125 122 105
000614 040 115 117
000617 123 040 115
000622 105 115 117
000625 122 131 040
000630 133 101 114
000633 114 054 131
000636 105 123 054
000641 116 117 135
000644 077 000
2990 000646 CFIMQ2:
2991 000646 MESSAGE <KLI -- MODULES/BLOCKS WITHIN CONTROLLER _>
000646 113 114 111 .ASCIZ \KLI -- MODULES/BLOCKS WITHIN CONTROLLER _\
000651 040 055 055
000654 040 115 117
000657 104 125 114
000662 105 123 057
000665 102 114 117
000670 103 113 123
000673 040 127 111
000676 124 110 111
000701 116 040 103
000704 117 116 124
000707 122 117 114
000712 114 105 122
000715 040 137 000
2992 000720 CFIMQ3:
2993 000720 MESSAGE < [ALL,NONE,SPECIFY]?>
000720 040 133 101 .ASCIZ \ [ALL,NONE,SPECIFY]?\
000723 114 114 054
000726 116 117 116
000731 105 054 123
000734 120 105 103
000737 111 106 131
000742 135 077 000
2994 000745 CFIMQ4:
2995 000745 MESSAGE <INTERNAL CORE MEMORY INTERLEAVE UPPER LIMIT [4,2,1]?>
000745 111 116 124 .ASCIZ \INTERNAL CORE MEMORY INTERLEAVE UPPER LIMIT [4,2,1]?\
000750 105 122 116
000753 101 114 040
000756 103 117 122
000761 105 040 115
000764 105 115 117
000767 122 131 040
000772 111 116 124
000775 105 122 114
001000 105 101 126
001003 105 040 125
001006 120 120 105
001011 122 040 114
001014 111 115 111
001017 124 040 133
001022 064 054 062
001025 054 061 135
001030 077 000
KLICI -- INTERNAL AND MOS DIALO MACRO M1110 12-OCT-79 14:10 PAGE 74-2
$FILE -- WRITE CACHE RECORDS
2996 003442 .PSECT
KLICI -- INTERNAL AND MOS DIALO MACRO M1110 12-OCT-79 14:10 PAGE 75
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
2998 .SBTTL $CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
2999
3000 ;+
3001 ; $CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
3002 ;
3003 ; $CFIMD SETS UP THE INTERNAL MEMORY CONFIGURATION TABLES FROM THE DIALOGUE.
3004 ; THE MEMORY BOOT'S TABLES ARE SIMPLY CHECKED, AND NOT ALTERED
3005 ;
3006 ; $CFMMD -- SET UP MOS MEMORY CONFIGURATION TABLES
3007 ;
3008 ; $CFMMD SETS UP THE MOS MEMORY CONFIGURATION TABLES FROM THE DIALOGUE.
3009 ; THE MEMORY BOOT'S TABLES ARE SIMPLY CHECKED, AND NOT ALTERED
3010 ;-
3011
3012 003442 $CFMMD::
3013 003442 105737 000000G TSTB MF20 ; DO WE HAVE MOS MEMORY??
3014 003446 001410 BEQ 10$ ; NO -- JUST EXIT
3015 003450 012703 000013 MOV #13,R3 ; YES -- MAX LEGAL BLOCK NUMBER TO R3
3016 003454 012704 000010 MOV #10,R4 ; ITERATION COUNT TO R4
3017 003460 010402 MOV R4,R2 ; IS ALSO BASE CONTROLLER NUMBER
3018 003462 012700 000603' MOV #CFMMQ1,R0 ; MESSAGE POINTER TO R0
3019 003466 000421 BR CFGXMC ; GO TO COMMON CODE
3020 ;
3021 003470 10$:
3022 003470 CALLR $CFGXX ; EXIT TO CONFIGURE MEMORY
003470 000137 017330' JMP $CFGXX
3023 ;
3024
3025 .ENABL LSB
3026
3027 003474 $CFIMD::
3028 003474 105737 000000G TSTB MA20 ; DO WE HAVE INTERNAL MEMORY??
3029 003500 001005 BNE 5$ ; YES -- GO ON
3030 003502 105737 000000G TSTB MB20 ; NO -- HOW ABOUT MB20'S??
3031 003506 001002 BNE 5$ ; YES -- GO ON
3032 003510 CALLR $DLGXM ; NO -- TRY FOR EXTERNAL MEMORY
003510 000137 017446' JMP $DLGXM
3033 ;
3034 003514 5$:
3035 003514 012703 000003 MOV #3,R3 ; YES -- MAX LEGAL BLOCK NUMBER TO R3
3036 003520 012700 000526' MOV #CFIMQ1,R0 ; MESSAGE POINTER TO R0
3037 003524 005002 CLR R2 ; INIT COUNTER
3038 003526 012704 000004 MOV #4,R4 ; MAXIMUM OF FOUR INTERNAL CONTROLLERS
3039 ;
3040 ; ASK THE TOP-LEVEL QUESTION
3041 ;
3042 003532 CFGXMC:
3043 003532 10$:
3044 003532 105737 000030' TSTB .DMSW ; ARE WE IN DIALOG MODE??
3045 003536 002440 BLT 20$ ; NO -- TAKE DEFAULT PATH
3046 003540 CALL $TTMSG ; YES -- ASK THE FIRST QUESTION
003540 004737 025164' JSR PC,$TTMSG
3047 003544 CALL $TTRD ; READ THE RESPONSE
003544 004737 024642' JSR PC,$TTRD
3048 003550 012705 000270' MOV #.TTIBF,R5 ; POINT TO THE INPUT BUFFER
3049 003554 105715 TSTB (R5) ; DEFAULT??
3050 003556 001430 BEQ 20$ ; YES -- DO "ALL"
KLICI -- INTERNAL AND MOS DIALO MACRO M1110 12-OCT-79 14:10 PAGE 75-1
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
3051 003560 022715 046101 CMP #"AL,(R5) ; "ALL"??
3052 003564 001425 BEQ 20$ ; YES -- DO ALL
3053 003566 022715 047516 CMP #"NO,(R5) ; "NO"??
3054 003572 001424 BEQ 30$ ; YES -- DO NONE
3055 003574 022715 042531 CMP #"YE,(R5) ; "YES"??
3056 003600 001435 BEQ 50$ ; YES -- FIND OUT WHAT
3057 003602 022715 040502 CMP #"BA,(R5) ; "BACK"??
3058 003606 001007 BNE 15$ ; NO -- ERROR
3059 003610 022703 000003 CMP #3,R3 ; YES -- IS THIS INTERNAL MEMORY??
3060 003614 001002 BNE 14$ ; NO -- GO THOUGH VECTORS
3061 003616 CALLR $DLGMB ; YES -- BACK UP ONE
003616 000137 017456' JMP $DLGMB
3062 ;
3063 003622 14$:
3064 003622 CALLR $DLMB1 ; BACK UP THRU VECTORS
003622 000137 017462' JMP $DLMB1
3065 ;
3066 ;
3067 ; UNRECOGNIZED COMMAND
3068 ;
3069 003626 15$:
3070 003626 PRINT #COMCSE ; COMMAND SYNTAX ERROR
003626 012700 004561' MOV #COMCSE,R0
003632 004737 025164' JSR PC,$TTMSG
3071 003636 000531 BR 150$ ; TRY AGAIN
3072 ;
3073 ;
3074 ; ENTRY FOR "ALL" CONTROLLERS <DEFAULT PATH>
3075 ;
3076 003640 20$:
3077 003640 005001 CLR R1 ; SET R1 TO SAY "ALL"
3078 003642 000402 BR 40$ ; DO COMMON CODE
3079 ;
3080 ;
3081 ; ENTRY FOR "NO(NE)" CONTROLLERS
3082 ;
3083 003644 30$:
3084 003644 012701 100000 MOV #BIT15,R1 ; SET R1 TO SAY "NO(NE)"
3085 ;
3086 ; COMMON CODE FOR "ALL" OR "NO(NE)" CONTROLLERS
3087 ;
3088 ; WHAT'S WHERE:
3089 ;
3090 ; R0 -- CONTROLLER NUMBER PASSED TO CHECK ROUTINE
3091 ; R1 -- ALLOCATION FLAG
3092 ; 0 = ALL CONTROLLERS
3093 ; 100000 = NO CONTROLLERS
3094 ; R2 -- CONTROLLER NUMBER
3095 ; R3 -- MODULE/BLOCK NUMBER LIMIT
3096 ; R4 -- ITERATION COUNT
3097 ;
3098 003650 40$:
3099 003650 105762 000000G TSTB TYPNUM(R2) ; DOES THIS CONTROLLER EXIST??
3100 003654 001404 BEQ 45$ ; NO -- TRY FOR THE NEXT ONE
3101 003656 010200 MOV R2,R0 ; YES -- CONTROLLER NUMBER TO R0
3102 003660 006300 ASL R0 ; WORD INDEX
3103 003662 010160 000120' MOV R1,.CFGTB(R0) ; SET ALLOCATION OR DELETION REQUEST
KLICI -- INTERNAL AND MOS DIALO MACRO M1110 12-OCT-79 14:10 PAGE 75-2
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
3104 003666 45$:
3105 003666 105722 TSTB (R2)+ ; ADVANCE CONTROLLER INDEX
3106 003670 077411 SOB R4,40$ ; DO THIS FOR ALL
3107 003672 000501 BR 130$ ; AND EXIT
3108 ;
3109 ;
3110 ; ENTRY FOR "YES" (LONG DIALOGUE)
3111 ;
3112 003674 50$:
3113 003674 005001 CLR R1 ; INIT BIT-MASK
3114 003676 60$:
3115 003676 105762 000000G TSTB TYPNUM(R2) ; IS THIS CONTROLLER HERE??
3116 003702 001472 BEQ 120$ ; NO -- TRY THE NEXT ONE
3117 003704 012700 000646' MOV #CFIMQ2,R0 ; YES -- MESSAGE POINTER TO R0
3118 003710 CALL $TTDMS ; TYPE PREAMBLE
003710 004737 025116' JSR PC,$TTDMS
3119 003714 010200 MOV R2,R0 ; CONTROLLER NUMBER TO R0
3120 003716 CALL $TDB2O ; CONVERT TO OCTAL ASCII
003716 004737 024162' JSR PC,$TDB2O
3121 003722 012700 000720' MOV #CFIMQ3,R0 ; MESSAGE POINTER TO R0
3122 003726 CALL $TTDMS ; END THE QUESTION
003726 004737 025116' JSR PC,$TTDMS
3123 003732 CALL $TCRLF ; AND THE LINE
003732 004737 025060' JSR PC,$TCRLF
3124 003736 CALL $TTRD ; READ RESPONSE
003736 004737 024642' JSR PC,$TTRD
3125 003742 012705 000270' MOV #.TTIBF,R5 ; POINT TO INPUT BUFFER
3126 003746 105715 TSTB (R5) ; DEFAULT??
3127 003750 001412 BEQ 70$ ; YES -- DO "ALL"
3128 003752 022715 046101 CMP #"AL,(R5) ; "ALL"??
3129 003756 001407 BEQ 70$ ; YES -- DO IT
3130 003760 022715 047516 CMP #"NO,(R5) ; "NONE"??
3131 003764 001406 BEQ 80$ ; YES -- DO IT
3132 003766 022715 040502 CMP #"BA,(R5) ; "BACK"??
3133 003772 001006 BNE 90$ ; NO -- HOPE ITS NUMERIC...
3134 003774 000452 BR 150$ ; YES -- GO DO IT
3135 ;
3136 ;
3137 ; "ALL" MODULES/BLOCKS THIS CONTROLLER
3138 ;
3139 003776 70$:
3140 003776 005001 CLR R1 ; SET R1 TO "ALL"
3141 004000 000420 BR 100$ ; AND DO IT
3142 ;
3143 ;
3144 ; "NO(NE)" MODULES/BLOCKS THIS CONTROLLER
3145 ;
3146 004002 80$:
3147 004002 012701 100000 MOV #BIT15,R1 ; SET R1 TO "NONE"
3148 004006 000415 BR 100$
3149 ;
3150 ;
3151 ; HERE TO SPECIFY MODULES/BLOCKS WITHIN THIS CONTROLLER
3152 ;
3153 ; WHAT'S WHERE:
3154 ;
3155 ; R0 -- PASSED CONTROLLER NUMBER
KLICI -- INTERNAL AND MOS DIALO MACRO M1110 12-OCT-79 14:10 PAGE 75-3
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
3156 ; R1 -- ALLOCATION MASK
3157 ; R2 -- CONTROLLER NUMBER
3158 ; R3 -- MODULE/BLOCK NUMBER LIMIT
3159 ; R4 -- ITERATION COUNT
3160 ;
3161 004010 90$:
3162 004010 CALL $TRO2B ; CONVERT TO OCTAL NUMERIC
004010 004737 024274' JSR PC,$TRO2B
3163 004014 103435 BCS 140$ ; FIDDLE FINGERS!
3164 004016 020300 CMP R3,R0 ; IN RANGE??
3165 004020 002433 BLT 140$ ; NO -- COMPLAIN
3166 004022 006300 ASL R0 ; YES -- GET WORD INDEX
3167 004024 056001 000000G BIS BITTBL(R0),R1 ; LIGHT THE BIT
3168 004030 122725 000054 CMPB #',,(R5)+ ; CONTINUE??
3169 004034 001765 BEQ 90$ ; YES -- CONTINUE
3170 004036 105745 TSTB -(R5) ; NO -- TERMINATE OK??
3171 004040 001272 BNE 15$ ; NO -- COMPLAIN
3172 ;
3173 ; COMMON CODE FOR "ALL", "NO(NE)", OR SPECIFIC MODULES/BLOCKS THIS CONTROLLER
3174 ;
3175 004042 100$:
3176 004042 010200 MOV R2,R0 ; YES -- CONTROLLER NUMBER TO R0
3177 004044 022703 000003 CMP #3,R3 ; IS THIS INTERNAL MEMORY??
3178 004050 001004 BNE 110$ ; NO -- MOS MEMORY
3179 004052 CALL $CHKIM ; YES -- CHECK INTERNAL CONFIGURATION
004052 004737 004326' JSR PC,$CHKIM
3180 004056 103706 BCS 50$ ; OOPS!
3181 004060 000403 BR 120$ ; ALL OK -- GO ON
3182 ;
3183 004062 110$:
3184 004062 CALL $CHKMM ; CHECK MOS CONFIGURATION
004062 004737 004552' JSR PC,$CHKMM
3185 004066 103702 BCS 50$ ; BAD NEWS...
3186 004070 120$:
3187 004070 105722 TSTB (R2)+ ; ADVANCE CONTROLLER COUNTER
3188 004072 005304 DEC R4 ; DECREMENT ITERATION COUNT
3189 004074 001277 BNE 50$ ; LOOP THROUGH ALL CONTROLLERS
3190 004076 130$:
3191 004076 022703 000003 CMP #3,R3 ; DONE -- IS THIS INTERNAL MEMORY??
3192 004102 001420 BEQ CFIMIL ; YES -- GO GET INTERLEAVE FACTOR
3193 004104 CALLR $CFGXX ; NO -- GO CONFIGURE THE MEMORY
004104 000137 017330' JMP $CFGXX
3194 ;
3195 ;
3196 ; ERROR PROCESSING
3197 ;
3198 004110 140$:
3199 004110 PRINT #COMCSE ; ERROR MESSAGE
004110 012700 004561' MOV #COMCSE,R0
004114 004737 025164' JSR PC,$TTMSG
3200 004120 000666 BR 60$ ; TRY AGAIN
3201 ;
3202 004122 150$:
3203 004122 012700 000526' MOV #CFIMQ1,R0 ; YES -- ASSUME INTERNAL MEMORY
3204 004126 022703 000003 CMP #3,R3 ; IS IT REALLY??
3205 004132 001402 BEQ 160$ ; YES -- GO ON
3206 004134 012700 000603' MOV #CFMMQ1,R0 ; NO -- SET MOS MESSAGE
KLICI -- INTERNAL AND MOS DIALO MACRO M1110 12-OCT-79 14:10 PAGE 75-4
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
3207 004140 160$:
3208 004140 000137 003532' JMP 10$ ; AND BACK UP
3209 ;
3210 .DSABL LSB
3211 ;
3212 ; HERE TO GET INTERNAL CORE MEMORY INTERLEAVE FACTOR
3213 ;
3214 004144 CFIMIL:
3215 004144 105737 000030' TSTB .DMSW ; ARE WE IN DIALOG MODE??
3216 004150 002452 BLT 50$ ; NO -- TAKE DEFAULT PATH
3217 004152 012700 000120' MOV #.CFGTB,R0 ; YES -- POINT TO CONFIGURATION TABLE
3218 004156 012704 000004 MOV #4,R4 ; ITERATION COUNT TO R4
3219 004162 10$:
3220 004162 005720 TST (R0)+ ; IS THIS ONE CONFIGURABLE??
3221 004164 100002 BPL 20$ ; YES -- GO ON
3222 004166 077403 SOB R4,10$ ; NO -- TRY FOR THE NEXT ONE
3223 004170 000442 BR 50$ ; NO INTERNAL MEMORY -- EXIT
3224 ;
3225 004172 20$:
3226 004172 PRINT #CFIMQ4 ; ASK THE QUESTION
004172 012700 000745' MOV #CFIMQ4,R0
004176 004737 025164' JSR PC,$TTMSG
3227 004202 CALL $TTRD ; READ THE RESPONSE
004202 004737 024642' JSR PC,$TTRD
3228 004206 012705 000270' MOV #.TTIBF,R5 ; POINT TO INPUT BUFFER
3229 004212 005000 CLR R0 ; INIT DEFAULT
3230 004214 022715 040502 CMP #"BA,(R5) ; "BACK"??
3231 004220 001430 BEQ 60$ ; YES -- DO IT
3232 004222 105715 TSTB (R5) ; NO -- DEFAULT??
3233 004224 001413 BEQ 25$ ; YES -- SET IT
3234 004226 CALL $TRI2B ; NO -- CONVERT TO NUMERIC
004226 004737 023136' JSR PC,$TRI2B
3235 004232 103425 BCS 70$ ; OOPS!
3236 004234 005700 TST R0 ; DID HE TYPE ANYTHING??
3237 004236 001423 BEQ 70$ ; NO -- NOT ALLOWED
3238 004240 022700 000003 CMP #3,R0 ; YES -- DID HE SAY "3"??
3239 004244 001420 BEQ 70$ ; YES -- NOT ALLOWED
3240 004246 022700 000004 CMP #4,R0 ; NO -- IN RANGE??
3241 004252 002415 BLT 70$ ; NO -- COMPLAIN
3242 004254 25$:
3243 004254 012704 000004 MOV #4,R4 ; YES -- ITERATION COUNT TO R4
3244 004260 012701 000130' MOV #.CFGTB+8.,R1 ; POINT TO END OF INTERNAL CONTROLLERS+1
3245 004264 30$:
3246 004264 005741 TST -(R1) ; BACK UP OVER NEXT ENTRY
3247 004266 100402 BMI 40$ ; NOT THERE IF NEGATIVE
3248 004270 110061 000001 MOVB R0,1(R1) ; SET THE BUS-MODE IN HIGH BYTE
3249 004274 40$:
3250 004274 077405 SOB R4,30$ ; LOOP TILL DONE
3251 004276 50$:
3252 004276 CALLR $DLGXM ; DONE -- TRY EXTERNAL MEMORY
004276 000137 017446' JMP $DLGXM
3253 ;
3254 004302 60$:
3255 004302 CALLR $CFIMD ; BACK UP
004302 000137 003474' JMP $CFIMD
3256 ;
3257 004306 70$:
KLICI -- INTERNAL AND MOS DIALO MACRO M1110 12-OCT-79 14:10 PAGE 75-5
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
3258 004306 PRINT #COMCSE ; ERROR MESSAGE
004306 012700 004561' MOV #COMCSE,R0
004312 004737 025164' JSR PC,$TTMSG
3259 004316 000725 BR 20$ ; TRY AGAIN
3260 ;
KLICM -- CHECK INTERNAL MEMORY MACRO M1110 12-OCT-79 14:10 PAGE 76
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
3262 .TITLE KLICM -- CHECK INTERNAL MEMORY CONFIGURATION
3263 004320 IDENT$ 10,0,KLI$$F
.IDENT /B10000/
3264 ;
3265 ; COPYRIGHT (C) 1975, 1978 BY
3266 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
3267 ;
3268 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
3269 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
3270 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
3271 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
3272 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
3273 ;
3274 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
3275 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
3276 ; CORPORATION.
3277 ;
3278 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
3279 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
3280 ;
3281 ;
3282 ; MODULE: INTERNAL CONFIGURATION CHECK
3283 ;
3284 ; VERSION: 10-00
3285 ;
3286 ; DATE: 25-JUL-78
3287 ;
3288 ; AUTHOR: R. BELANGER
3289 ;
3290 ; MODIFICATIONS:
3291 ;
3292 ; NO. DATE PROGRAMMER REASON
3293 ; --- ---- ---------- ------
3294 ;
3295 ; LOCAL DATA
3296 ;
3297 000270 .PSECT DATA,D
3298 000270 SETIMF:
3299 000270 000 .BYTE 0
3300 000271 SETMMF:
3301 000271 000 .BYTE 0
3302 001032 .PSECT TEXT,D
3303 001032 CIMNXC:
3304 001032 ERROR <NONEXISTENT CONTROLLER>
001032 077 040 116 .ASCIZ \? NONEXISTENT CONTROLLER\
001035 117 116 105
001040 130 111 123
001043 124 105 116
001046 124 040 103
001051 117 116 124
001054 122 117 114
001057 114 105 122
001062 000
3305 001063 CIMNXM:
3306 001063 ERROR <NONEXISTENT MODULE/BLOCK>
001063 077 040 116 .ASCIZ \? NONEXISTENT MODULE/BLOCK\
001066 117 116 105
KLICM -- CHECK INTERNAL MEMORY MACRO M1110 12-OCT-79 14:10 PAGE 76-1
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
001071 130 111 123
001074 124 105 116
001077 124 040 115
001102 117 104 125
001105 114 105 057
001110 102 114 117
001113 103 113 000
3307 004320 .PSECT
KLICM -- CHECK INTERNAL MEMORY MACRO M1110 12-OCT-79 14:10 PAGE 77
$CHKIM -- CHECK INTERNAL MEMORY MASK WORD
3309 .SBTTL $CHKIM -- CHECK INTERNAL MEMORY MASK WORD
3310
3311 ;+
3312 ; $CHKIM -- CHECK INTERNAL MEMORY MASK WORD
3313 ;
3314 ; $CHKIM WILL VERIFY THAT THE MASK WORD FOR INTERNAL CORE MEMORY CONFIGURATION
3315 ; IS VALID IN THAT THE MODULE SPECIFIED DOES EXIST IN THE PHYSICAL RESOURCES.
3316 ;
3317 ; INPUT ARGUMENTS:
3318 ;
3319 ; R0 -- CONTROLLER NUMBER
3320 ; R1 -- MODULE SELECTION BIT-MASK
3321 ; CONTI(R0) -- BIT-MASK OF AVAILABLE MODULES
3322 ; TYPNUM(R0) -- CONTROLLER AVAILABILITY FLAG WORD
3323 ;
3324 ; OUTPUT ARGUMENTS:
3325 ;
3326 ; R0,R1 -- UNDEFINED
3327 ; .CFGTB+0(R0) -- EDITED MODULE SELECTION BIT-MASK
3328 ; CONTI(R0) -- EDITED MODULE SELECTION BIT-MASK
3329 ;
3330 ; SUCCESS RETURN:
3331 ;
3332 ; CC-C CLEAR
3333 ;
3334 ; ERROR RETURN:
3335 ;
3336 ; CC-C SET AND CONTI(R0) UNCHANGED.
3337 ;-
3338
3339 ;
3340 ; HERE TO ACTUALLY SET THE SPECIFIED CONFIGURATION
3341 ;
3342
3343 004320 $SETIM::
3344 004320 105237 000270' INCB SETIMF ; SAY "SET"
3345 004324 000402 BR CHKIMC ; DO COMMON CODE
3346 ;
3347 ;
3348 ; HERE TO SIMPLY CHECK THE DESIRED CONFIGURATION
3349 ;
3350
3351 004326 $CHKIM::
3352 004326 105037 000270' CLRB SETIMF ; SAY "CHECK"
3353 ;
3354 ; COMMON SET/CHECK CODE
3355 ;
3356 004332 CHKIMC:
3357 004332 PUSH R2 ; SAVE R2
004332 010246 MOV R2,-(SP)
3358 004334 PUSH R3 ; AND R3
004334 010346 MOV R3,-(SP)
3359 004336 005046 CLR -(SP) ; GET A BUFFER FOR BIT MASK
3360 004340 122760 000001 000000G CMPB #1,TYPNUM(R0) ; IS THIS AN MA20??
3361 004346 001411 BEQ 10$ ; YES -- GO ON
3362 004350 122760 000003 000000G CMPB #3,TYPNUM(R0) ; NO -- IS IT AN MB20??
3363 004356 001405 BEQ 10$ ; YES -- GO ON
KLICM -- CHECK INTERNAL MEMORY MACRO M1110 12-OCT-79 14:10 PAGE 77-1
$CHKIM -- CHECK INTERNAL MEMORY MASK WORD
3364 004360 PRINT #CIMNXC ; NO -- COMPLAIN
004360 012700 001032' MOV #CIMNXC,R0
004364 004737 025164' JSR PC,$TTMSG
3365 004370 000434 BR 50$ ; AND EXIT
3366 ;
3367 004372 10$:
3368 004372 005701 TST R1 ; DOES HE WANT ALL MODULES??
3369 004374 001442 BEQ 70$ ; YES -- GIVE IT TO HIM
3370 004376 100404 BMI 20$ ; NO -- DOES HE WANT SOME??
3371 004400 116016 000000G MOVB CONTI(R0),(SP) ; YES -- PHYSICAL BIT-MAP TO STACK
3372 004404 005002 CLR R2 ; INIT BIT-MASK INDEX
3373 004406 000410 BR 30$ ; CHECK WHAT HE WANTS
3374 ;
3375 ;
3376 ; WHAT'S WHERE:
3377 ;
3378 ; R0 -- CONTROLLER NUMBER
3379 ; R1 -- ALLOCATION BIT MASK
3380 ; .LT. 0 -- DELETE ENTIRE CONTROLLER
3381 ; .EQ. 0 -- ALLOCATE ENTIRE CONTROLLER
3382 ; .GT. 0 -- ALLOCATE SOME MUDULES IN CONTROLLER
3383 ; R2 -- BIT MASK INDEX
3384 ; R3 -- CURRENT BIT MASK
3385 ; (SP) -- BIT MASK TO/FROM MEMORY BOOT
3386 ;
3387 ; HERE TO DELETE AN ENTIRE CONTROLLER
3388 ;
3389 004410 20$:
3390 004410 012716 100000 MOV #BIT15,(SP) ; FLAG NONE FOR SAVE/RESTORE
3391 004414 105737 000270' TSTB SETIMF ; IS THIS A SET??
3392 004420 001430 BEQ 70$ ; NO -- JUST EXIT
3393 004422 105060 000000G CLRB TYPNUM(R0) ; YES -- CLEAR CONTROLLER FLAG
3394 004426 000425 BR 70$ ; AND EXIT
3395 ;
3396 ;
3397 ; HERE TO ALLOCATE MODULES WITHIN A CONTROLLER
3398 ;
3399 004430 30$:
3400 004430 016203 000000G MOV BITTBL(R2),R3 ; GET MASK FOR TARGET MODULE
3401 004434 030301 BIT R3,R1 ; DOES HE WANT THIS ONE??
3402 004436 001002 BNE 40$ ; YES -- GO ON
3403 004440 140316 BICB R3,(SP) ; NO -- GET RID OF IT
3404 004442 000411 BR 60$ ; AND GO ON
3405 ;
3406 004444 40$:
3407 004444 130316 BITB R3,(SP) ; WANTS THIS ONE -- IS IT THERE??
3408 004446 001007 BNE 60$ ; YES -- GO ON
3409 004450 PRINT #CIMNXM ; NO -- COMPLAIN
004450 012700 001063' MOV #CIMNXM,R0
004454 004737 025164' JSR PC,$TTMSG
3410 004460 005726 TST (SP)+ ; FLUSH STACK
3411 004462 50$:
3412 004462 000261 SEC ; SET ERROR FLAG
3413 004464 000424 BR 90$ ; AND EXIT
3414 ;
3415 004466 60$:
3416 004466 005722 TST (R2)+ ; POINT TO NEXT MASK BIT
KLICM -- CHECK INTERNAL MEMORY MACRO M1110 12-OCT-79 14:10 PAGE 77-2
$CHKIM -- CHECK INTERNAL MEMORY MASK WORD
3417 004470 022702 000010 CMP #10,R2 ; ARE WE DONE??
3418 004474 003355 BGT 30$ ; NO -- CONTINUE
3419 004476 005716 TST (SP) ; YES -- DID HE DELETE THEM ALL??
3420 004500 001743 BEQ 20$ ; YES -- DELETE THE CONTROLLER TOO
3421 004502 70$:
3422 004502 012602 MOV (SP)+,R2 ; NO -- EDITED MASK TO R2
3423 004504 001411 BEQ 80$ ; ZERO BIT MASK IS ONE FLAVOR OF ALL
3424 004506 120260 000000G CMPB R2,CONTI(R0) ; HAS ANYTHING CHANGED??
3425 004512 001406 BEQ 80$ ; NO -- GO ON
3426 004514 010201 MOV R2,R1 ; YES -- COPY WORD TO R1
3427 004516 105737 000270' TSTB SETIMF ; IS THIS A SET??
3428 004522 001402 BEQ 80$ ; NO -- GO ON
3429 004524 110260 000000G MOVB R2,CONTI(R0) ; YES -- EDITED MASK TO PHYSICAL TABLE
3430 004530 80$:
3431 004530 006300 ASL R0 ; WORD INDEX
3432 004532 010160 000120' MOV R1,.CFGTB(R0) ; SET WORD INTO CONFIGURATION TABLE
3433 004536 90$:
3434 004536 POP R3 ; RESTORE REGISTERS
004536 012603 MOV (SP)+,R3
3435 004540 POP R2 ; SO
004540 012602 MOV (SP)+,R2
3436 004542 RETURN ; TO CALLER
004542 000207 RTS PC
KLICM -- CHECK INTERNAL MEMORY MACRO M1110 12-OCT-79 14:10 PAGE 78
$CHKMM -- CHECK MOS MEMORY CONFIGURATION
3438 .SBTTL $CHKMM -- CHECK MOS MEMORY CONFIGURATION
3439
3440 ;
3441 ; HERE TO SET THE CONFIGURATION FOR AN MF20 CONTROLLER
3442 ;
3443 004544 $SETMM::
3444 004544 105237 000271' INCB SETMMF ; SAY "SET"
3445 004550 000402 BR CHKMMC ; DO COMMON CODE
3446 ;
3447 ;
3448 ; HERE TO CHECK THE CONFIGURATION FOR AN MF20 CONTROLLER
3449 ;
3450 004552 $CHKMM::
3451 004552 105037 000271' CLRB SETMMF ; SAY "CHECK"
3452 ;
3453 ; COMMON CHECK/SET CODE
3454 ;
3455 ; R0 -- CONTROLLER NUMBER
3456 ; R1 -- ALLOCATION MASK
3457 ;
3458 004556 CHKMMC:
3459 004556 PUSH R2 ; SAVE R2
004556 010246 MOV R2,-(SP)
3460 004560 PUSH R3 ; AND R3
004560 010346 MOV R3,-(SP)
3461 004562 PUSH R4 ; R4 TOO
004562 010446 MOV R4,-(SP)
3462 004564 122760 000005 000000G CMPB #5,TYPNUM(R0) ; IS THIS AN MF20??
3463 004572 001405 BEQ 10$ ; YES -- GO ON
3464 004574 PRINT #CIMNXC ; NO -- COMPLAIN
004574 012700 001032' MOV #CIMNXC,R0
004600 004737 025164' JSR PC,$TTMSG
3465 004604 000440 BR 40$ ; AND EXIT
3466 ;
3467 004606 10$:
3468 004606 005002 CLR R2 ; INIT BIT-MASK INDEX
3469 004610 005046 CLR -(SP) ; INIT BIT-MASK
3470 004612 010004 MOV R0,R4 ; COPY CONTROLLER NUMBER TO R4
3471 004614 CALL BAF0 ; FIND BASE OF THIS MF20 TABLE
004614 004737 000000G JSR PC,BAF0
3472 004620 005701 TST R1 ; WHAT DOES HE WANT??
3473 004622 001446 BEQ 80$ ; ALL
3474 004624 100015 BPL 30$ ; SOMETHING
3475 ;
3476 ; WHAT'S WHERE:
3477 ;
3478 ; R0 -- POINTS TO MF20 BLOCK TABLE
3479 ; R1 -- ALLOCATION MASK
3480 ; .LT. 0 -- DELETE ENTIRE CONTROLLER
3481 ; .EQ. 0 -- ALLOCATE ENTIRE CONTROLLER
3482 ; .GT. 0 -- DELETE SOME BLOCKS WITHIN CONTROLLER
3483 ; R2 -- BIT MASK INDEX
3484 ; R3 -- CURRENT BIT MASK
3485 ; R4 -- CONTROLLER NUMBER
3486 ; (SP) -- ACCUMULATED ALLOCATION MASK FOR RETURN
3487 ;
3488 ; HERE TO DELETE AN ENTIRE CONTROLLER
KLICM -- CHECK INTERNAL MEMORY MACRO M1110 12-OCT-79 14:10 PAGE 78-1
$CHKMM -- CHECK MOS MEMORY CONFIGURATION
3489 ;
3490 004626 20$:
3491 004626 012716 100000 MOV #BIT15,(SP) ; MARK DELETION DONE
3492 004632 105737 000271' TSTB SETMMF ; IS THIS A SET??
3493 004636 001440 BEQ 80$ ; NO -- JUST EXIT
3494 004640 25$:
3495 004640 105020 CLRB (R0)+ ; YES -- MARK THAT WE DON'T WANT THIS BLOCK
3496 004642 005202 INC R2 ; ADVANCE COUNTER
3497 004644 022702 000014 CMP #14,R2 ; ARE WE DONE??
3498 004650 003373 BGT 25$ ; NO -- CONTINUE DELETING
3499 004652 105064 000000G CLRB TYPNUM(R4) ; DONE -- DELETE THE CONTROLLER
3500 004656 000430 BR 80$ ; AND EXIT
3501 ;
3502 ;
3503 ; HERE TO ALLOCATE/DELETE BLOCKS TO/FROM A CONTROLLER
3504 ;
3505 004660 30$:
3506 004660 016203 000000G MOV BITTBL(R2),R3 ; GET MASK BIT INTO R3
3507 004664 030301 BIT R3,R1 ; DOES HE WANT THIS ONE??
3508 004666 001413 BEQ 60$ ; NO -- GO DELETE IT
3509 004670 105710 TSTB (R0) ; YES -- DOES IT EXIST??
3510 004672 001007 BNE 50$ ; YES -- ALLOCATE IT
3511 004674 PRINT #CIMNXM ; NO -- COMPLAIN
004674 012700 001063' MOV #CIMNXM,R0
004700 004737 025164' JSR PC,$TTMSG
3512 004704 005726 TST (SP)+ ; FLUSH STACK
3513 004706 40$:
3514 004706 000261 SEC ; SET ERROR FLAG
3515 004710 000416 BR 90$ ; AND EXIT
3516 ;
3517 004712 50$:
3518 004712 050316 BIS R3,(SP) ; MARK DESIRED BLOCK
3519 004714 000404 BR 70$ ; AND TRY FOR NEXT
3520 ;
3521 004716 60$:
3522 004716 105737 000271' TSTB SETMMF ; IS THIS A SET??
3523 004722 001401 BEQ 70$ ; NO -- GO ON
3524 004724 105010 CLRB (R0) ; YES -- DELETE BLOCK FROM PHYSICAL TABLE
3525 004726 70$:
3526 004726 005200 INC R0 ; STEP POINTER
3527 004730 005722 TST (R2)+ ; ADVANCE TO NEXT BLOCK
3528 004732 022702 000030 CMP #30,R2 ; DONE??
3529 004736 003350 BGT 30$ ; NO -- CONTINUE TESTING
3530 004740 80$:
3531 004740 006304 ASL R4 ; YES -- CONVERT TO WORD INDEX
3532 004742 012664 000120' MOV (SP)+,.CFGTB(R4) ; SET CONFIGURATION MASK IN TABLE
3533 004746 90$:
3534 004746 POP R4 ; RESTORE REGISTERS
004746 012604 MOV (SP)+,R4
3535 004750 POP R3
004750 012603 MOV (SP)+,R3
3536 004752 POP R2
004752 012602 MOV (SP)+,R2
3537 004754 RETURN ; TO CALLER
004754 000207 RTS PC
KLICO -- CONFIGURATION EDITOR MACRO M1110 12-OCT-79 14:10 PAGE 79
$CHKMM -- CHECK MOS MEMORY CONFIGURATION
3539 .TITLE KLICO -- CONFIGURATION EDITOR
3540 004756 IDENT$ 10,0,KLI$$F
.IDENT /B10000/
3541 ;
3542 ; COPYRIGHT (C) 1975, 1978 BY
3543 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
3544 ;
3545 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
3546 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
3547 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
3548 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
3549 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
3550 ;
3551 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
3552 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
3553 ; CORPORATION.
3554 ;
3555 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
3556 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
3557 ;
3558 ;
3559 ; MODULE: CONFIGURATION EDITOR
3560 ;
3561 ; VERSION: 10-00
3562 ;
3563 ; DATE: 25-JUL-78
3564 ;
3565 ; AUTHOR: R. BELANGER
3566 ;
3567 ; MODIFICATIONS:
3568 ;
3569 ; NO. DATE PROGRAMMER REASON
3570 ; --- ---- ---------- ------
3571 ;
3572 ;
3573 ;
3574 ; LOCAL DATA
3575 ;
3576 001116 .PSECT TEXT,D
3577 001116 CFGINM:
3578 001116 WARNING <INTERNAL CORE MEMORY RESOURCES DO NOT MATCH FILE>
001116 045 040 111 .ASCIZ \% INTERNAL CORE MEMORY RESOURCES DO NOT MATCH FILE\
001121 116 124 105
001124 122 116 101
001127 114 040 103
001132 117 122 105
001135 040 115 105
001140 115 117 122
001143 131 040 122
001146 105 123 117
001151 125 122 103
001154 105 123 040
001157 104 117 040
001162 116 117 124
001165 040 115 101
001170 124 103 110
001173 040 106 111
KLICO -- CONFIGURATION EDITOR MACRO M1110 12-OCT-79 14:10 PAGE 79-1
$CHKMM -- CHECK MOS MEMORY CONFIGURATION
001176 114 105 000
3579 001201 CFGXNM:
3580 001201 WARNING <EXTERNAL CORE MEMORY RESOURCES DO NOT MATCH FILE>
001201 045 040 105 .ASCIZ \% EXTERNAL CORE MEMORY RESOURCES DO NOT MATCH FILE\
001204 130 124 105
001207 122 116 101
001212 114 040 103
001215 117 122 105
001220 040 115 105
001223 115 117 122
001226 131 040 122
001231 105 123 117
001234 125 122 103
001237 105 123 040
001242 104 117 040
001245 116 117 124
001250 040 115 101
001253 124 103 110
001256 040 106 111
001261 114 105 000
3581 001264 CFGMNM:
3582 001264 WARNING <MOS MEMORY RESOURCES DO NOT MATCH FILE>
001264 045 040 115 .ASCIZ \% MOS MEMORY RESOURCES DO NOT MATCH FILE\
001267 117 123 040
001272 115 105 115
001275 117 122 131
001300 040 122 105
001303 123 117 125
001306 122 103 105
001311 123 040 104
001314 117 040 116
001317 117 124 040
001322 115 101 124
001325 103 110 040
001330 106 111 114
001333 105 000
3583 001335 CFGMAC:
3584 001335 WARNING <MOS MEMORY IS ALREADY CONFIGURED>
001335 045 040 115 .ASCIZ \% MOS MEMORY IS ALREADY CONFIGURED\
001340 117 123 040
001343 115 105 115
001346 117 122 131
001351 040 111 123
001354 040 101 114
001357 122 105 101
001362 104 131 040
001365 103 117 116
001370 106 111 107
001373 125 122 105
001376 104 000
3585 004756 .PSECT
KLICO -- CONFIGURATION EDITOR MACRO M1110 12-OCT-79 14:10 PAGE 80
$CONFG -- EDITOR DISPATCH
3587 .SBTTL $CONFG -- EDITOR DISPATCH
3588
3589 004756 $CONFG::
3590 004756 105037 000030' CLRB .DMSW ; RESET FLAG
3591 004762 105737 000000G TSTB MA20 ; DO WE HAVE INTERNAL MEMORY??
3592 004766 001003 BNE 10$ ; YES -- CONFIGURE IT
3593 004770 105737 000000G TSTB MB20 ; NO -- HOW ABOUT MB20'S
3594 004774 001403 BEQ 20$ ; NO -- GO ON
3595 004776 10$:
3596 004776 CALL CFGINT ; YES -- CONFIGURE IT
004776 004737 005066' JSR PC,CFGINT
3597 005002 103430 BCS 70$ ; ERROR IF CC-C SET
3598 005004 20$:
3599 005004 105737 000000G TSTB DMA20 ; DO WE HAVE EXTERNAL MEMORY??
3600 005010 001403 BEQ 30$ ; NO -- GO ON
3601 005012 CALL CFGEXT ; YES -- CONFIGURE IT
005012 004737 005340' JSR PC,CFGEXT
3602 005016 103422 BCS 70$ ; ERROR IF CC-C SET
3603 005020 30$:
3604 005020 105737 000000G TSTB MF20 ; DO WE HAVE MOS MEMORY??
3605 005024 001403 BEQ 40$ ; NO -- GO ON
3606 005026 CALL CFGMOS ; YES CONFIGURE IT
005026 004737 005476' JSR PC,CFGMOS
3607 005032 103414 BCS 70$ ; ERROR IF CC-C SET
3608 005034 40$:
3609 005034 113746 000030' MOVB .DMSW,-(SP) ; DONE -- SAVE FLAG
3610 005040 105037 000030' CLRB .DMSW ; INIT FOR RETURN
3611 005044 105737 000024' TSTB .DLGSW ; ARE WE BEING TOLD WHAT TO DO??
3612 005050 001402 BEQ 50$ ; YES -- SET FLAG TO WRITE FILE
3613 005052 105716 TSTB (SP) ; NO -- DID ANYTHING CHANGE??
3614 005054 001402 BEQ 60$ ; NO -- JUST EXIT
3615 005056 50$:
3616 005056 105237 000030' INCB .DMSW ; YES -- FLAG FILE WRITE
3617 005062 60$:
3618 005062 005726 TST (SP)+ ; CLEAR STACK
3619 005064 70$:
3620 005064 RETURN ; TO CALLER
005064 000207 RTS PC
KLICO -- CONFIGURATION EDITOR MACRO M1110 12-OCT-79 14:10 PAGE 81
CFGINT -- INTERNAL MEMORY CONFIGURATION EDITOR
3622 .SBTTL CFGINT -- INTERNAL MEMORY CONFIGURATION EDITOR
3623
3624 005066 CFGINT:
3625 005066 012704 000004 MOV #4,R4 ; INIT ITERATION COUNTER
3626 005072 005002 CLR R2 ; INIT CONTROLER NUMBER
3627 005074 005003 CLR R3 ; RESET ERROR FLAG
3628 005076 10$:
3629 005076 010200 MOV R2,R0 ; CONTROLLER NUMBER TO R0
3630 005100 006200 ASR R0 ; BYTE INDEX
3631 005102 016201 000120' MOV .CFGTB(R2),R1 ; EDITED CONFIGURATION MASK
3632 005106 100015 BPL 20$ ; WANTS IT CONFIGURED
3633 005110 105760 000000G TSTB TYPNUM(R0) ; THIS CONTROLLER EXIST??
3634 005114 001461 BEQ 60$ ; NO -- DON'T BOTHER DELETING
3635 005116 126060 000000G 000056' CMPB TYPNUM(R0),.CTLTP(R0) ; CONTROLLERS MATCH??
3636 005124 001402 BEQ 15$ ; YES -- GO ON
3637 005126 CALL 70$ ; NO -- WARN HIM
005126 004737 005276' JSR PC,70$
3638 005132 15$:
3639 005132 CALL $SETIM ; AND DELETE IT
005132 004737 004320' JSR PC,$SETIM
3640 005136 103477 BCS 90$ ; ERROR IF CC-C SET
3641 005140 000447 BR 60$ ; AND TRY FOR NEXT
3642 ;
3643 005142 20$:
3644 005142 105760 000000G TSTB TYPNUM(R0) ; DOES THIS CONTROLLER EXIST??
3645 005146 001006 BNE 30$ ; YES -- GO ON
3646 005150 012762 100000 000120' MOV #BIT15,.CFGTB(R2) ; NO -- (LOGICALLY) DELETE THE CONTROLLER
3647 005156 CALL 70$ ; WARN OPERATOR
005156 004737 005276' JSR PC,70$
3648 005162 000436 BR 60$ ; GO AROUND AGAIN
3649 ;
3650 005164 30$:
3651 005164 126060 000000G 000056' CMPB TYPNUM(R0),.CTLTP(R0) ; CONTROLLERS MATCH??
3652 005172 001403 BEQ 35$ ; YES -- GO ON
3653 005174 CALL 70$ ; NO -- WARN OPERATOR
005174 004737 005276' JSR PC,70$
3654 005200 105001 CLRB R1 ; SAY "ALL"
3655 005202 35$:
3656 005202 120160 000000G CMPB R1,CONTI(R0) ; ARE THESE THE SAME??
3657 005206 001414 BEQ 40$ ; YES -- GO ON
3658 005210 105701 TSTB R1 ; IS IT "ALL"??
3659 005212 001412 BEQ 40$ ; YES -- SAME DIFFERENCE
3660 005214 PUSH R1 ; SAVE R1
005214 010146 MOV R1,-(SP)
3661 005216 CALL $SETIM ; DELETE THE MODULES
005216 004737 004320' JSR PC,$SETIM
3662 005222 POP R1 ; RESTORE R1
005222 012601 MOV (SP)+,R1
3663 005224 103005 BCC 40$ ; ALL OK IF CC-C IS CLEAR
3664 005226 105060 000120' CLRB .CFGTB(R0) ; SET TO "ALL"
3665 005232 CALL 70$ ; WARN OPERATOR OR EXIT
005232 004737 005276' JSR PC,70$
3666 005236 000410 BR 60$ ; GO ON TO NEXT CONTROLLER
3667 ;
3668 005240 40$:
3669 005240 000301 SWAB R1 ; SWAP THE BYTES
3670 005242 042701 177774 BIC #^C3,R1 ; FLUSH JUNK
KLICO -- CONFIGURATION EDITOR MACRO M1110 12-OCT-79 14:10 PAGE 81-1
CFGINT -- INTERNAL MEMORY CONFIGURATION EDITOR
3671 005246 001002 BNE 50$ ; GO ON IF .NE.
3672 005250 012701 000003 MOV #3,R1 ; (0 V 4) => 3
3673 005254 50$:
3674 005254 110137 000000G MOVB R1,INTMOD ; SET THE INTERLEAVE MODE
3675 005260 60$:
3676 005260 005722 TST (R2)+ ; ADVANCE CONTROLLER INDEX
3677 005262 077473 SOB R4,10$ ; LOOP TILL DONE
3678 005264 105037 000000G CLRB MABRD ; DONE -- RESET FLAGS
3679 005270 105037 000000G CLRB RDDONE ; SO
3680 005274 RETURN ; TO CALLER
005274 000207 RTS PC
3681 005276 70$:
3682 005276 005703 TST R3 ; ALREADY PRINTED??
3683 005300 001006 BNE 80$ ; YES -- GO ON
3684 005302 PUSH R0 ; NO -- SAVE R0
005302 010046 MOV R0,-(SP)
3685 005304 PRINT #CFGINM ; TELL HIM
005304 012700 001116' MOV #CFGINM,R0
005310 004737 025164' JSR PC,$TTMSG
3686 005314 POP R0 ; RESTORE R0
005314 012600 MOV (SP)+,R0
3687 005316 80$:
3688 005316 005203 INC R3 ; FLAG PRINT
3689 005320 105237 000030' INCB .DMSW ; AND CONTROL
3690 005324 105737 000024' TSTB .DLGSW ; IS HE TALKING TO US??
3691 005330 001002 BNE 90$ ; NO -- GO ON
3692 005332 000137 021572' JMP $ERROR ; YES -- QUIT NOW
3693 ;
3694 005336 90$:
3695 005336 RETURN ; TO CALLER
005336 000207 RTS PC
KLICO -- CONFIGURATION EDITOR MACRO M1110 12-OCT-79 14:10 PAGE 82
CFGEXT -- EXTERNAL MEMORY CONFIGURATION EDITOR
3697 .SBTTL CFGEXT -- EXTERNAL MEMORY CONFIGURATION EDITOR
3698
3699 005340 CFGEXT:
3700 005340 012700 000004 MOV #4,R0 ; CONTROLLER NUMBER 4
3701 005344 013701 000130' MOV .CFGTB+10,R1 ; ALLOCATION DATA TO R1
3702 005350 100005 BPL 10$ ; HE WANTS IT
3703 005352 105737 000004G TSTB TYPNUM+4 ; IS IT THERE??
3704 005356 001446 BEQ 50$ ; NO -- SO DON'T BOTHER
3705 005360 CALLR INIDMA ; YES -- SO DELETE IT
005360 000137 000000G JMP INIDMA
3706 ;
3707 005364 10$:
3708 005364 105737 000004G TSTB TYPNUM+4 ; IS IT THERE??
3709 005370 001004 BNE 20$ ; YES -- ALLOCATE IT
3710 005372 012737 100000 000130' MOV #BIT15,.CFGTB+10 ; NO -- LOGICALLY DELETE IT
3711 005400 000414 BR 30$ ; PRINT THE MESSAGE AND EXIT
3712 ;
3713 005402 20$:
3714 005402 005737 000000G TST DMA2TS ; IS IT REALLY THERE??
3715 005406 003411 BLE 30$ ; NO -- COMPLAIN
3716 005410 110100 MOVB R1,R0 ; YES -- GET THE INTERLEAVE MODE INTO R0
3717 005412 001430 BEQ 50$ ; EXIT NOW IF OPTIMAL
3718 005414 042700 177774 BIC #^C3,R0 ; FLUSH JUNK
3719 005420 006300 ASL R0 ; WORD INDEX
3720 005422 036037 000222' 000000G BIT BMMSTB(R0),DMANXM ; IS IT OK??
3721 005430 001413 BEQ 40$ ; YES -- GO ON
3722 005432 30$:
3723 005432 PRINT #CFGXNM ; NO -- COMPLAIN
005432 012700 001201' MOV #CFGXNM,R0
005436 004737 025164' JSR PC,$TTMSG
3724 005442 105237 000030' INCB .DMSW ; FLAG CONTROL
3725 005446 105737 000024' TSTB .DLGSW ; IS SOMEONE TALKING TO US??
3726 005452 001010 BNE 50$ ; NO -- JUST EXIT
3727 005454 000137 021572' JMP $ERROR ; YES -- BAIL OUT NOW
3728 ;
3729 005460 40$:
3730 005460 005701 TST R1 ; IS MODE NOW ZERO??
3731 005462 001002 BNE 45$ ; NO -- GO ON
3732 005464 012701 000003 MOV #3,R1 ; YES -- MAKE IT 4-WAY
3733 005470 45$:
3734 005470 110137 000000G MOVB R1,DMABM ; SET THE BUS MODE
3735 005474 50$:
3736 005474 RETURN ; TO CALLER
005474 000207 RTS PC
KLICO -- CONFIGURATION EDITOR MACRO M1110 12-OCT-79 14:10 PAGE 83
CFGMOS -- MOS CONFIGURATION EDITOR
3738 .SBTTL CFGMOS -- MOS CONFIGURATION EDITOR
3739
3740 005476 CFGMOS:
3741 005476 012704 000010 MOV #10,R4 ; INIT ITERATION COUNTER
3742 005502 012702 000020 MOV #20,R2 ; ALSO BASE CONTROLLER NUMBER
3743 005506 005003 CLR R3 ; INIT FLAG
3744 005510 10$:
3745 005510 010200 MOV R2,R0 ; CONTROLER NUMBER TO R0
3746 005512 006200 ASR R0 ; REAL CONTROLLER NUMBER
3747 005514 122760 000002 000000G CMPB #2,CONTI(R0) ; WHAT STATE ARE WE IN??
3748 005522 003005 BGT 15$ ; OK TO CONFIGURE
3749 005524 PRINT #CFGMAC ; ALREADY CONFIGURED
005524 012700 001335' MOV #CFGMAC,R0
005530 004737 025164' JSR PC,$TTMSG
3750 005534 000441 BR 45$ ; NEXT...
3751 ;
3752 005536 15$:
3753 005536 016201 000120' MOV .CFGTB(R2),R1 ; CONFIGURATION MASK
3754 005542 002004 BGE 20$ ; WANTS IT IF .GE. 0
3755 005544 105760 000000G TSTB TYPNUM(R0) ; IS CONTROLLER THERE??
3756 005550 001022 BNE 35$ ; YES -- DELETE IT
3757 005552 000430 BR 40$ ; NO -- TRY FOR NEXT CONTROLLER
3758 ;
3759 005554 20$:
3760 005554 105760 000000G TSTB TYPNUM(R0) ; IS THE CONTROLLER THERE??
3761 005560 003006 BGT 30$ ; YES -- GO ON
3762 005562 012762 100000 000120' MOV #BIT15,.CFGTB(R2) ; NO -- (LOGICALLY) DELETE THE CONTROLLER
3763 005570 CALL 50$ ; WARN OPERATOR
005570 004737 005642' JSR PC,50$
3764 005574 000417 BR 40$ ; AND GO ON
3765 ;
3766 005576 30$:
3767 005576 CALL $MAPMM ; GET THE MOS MAP FOR THIS CONTROLLER
005576 004737 005700' JSR PC,$MAPMM
3768 005602 020100 CMP R1,R0 ; ARE THE MASKS THE SAME??
3769 005604 001413 BEQ 40$ ; YES -- DON'T DELETE MODULES
3770 005606 005701 TST R1 ; NO -- DID HE MEAN ALL??
3771 005610 001411 BEQ 40$ ; YES -- GO ON
3772 005612 010200 MOV R2,R0 ; NO -- GET CONTROLLER NUMBER
3773 005614 006200 ASR R0 ; RIGHT
3774 005616 35$:
3775 005616 CALL $SETMM ; AND SET IT
005616 004737 004544' JSR PC,$SETMM
3776 005622 103004 BCC 40$ ; ALL OK IF CC-C IS CLEAR
3777 005624 CALL 50$ ; WARN OPERATOR OR EXIT
005624 004737 005642' JSR PC,50$
3778 005630 005062 000120' CLR .CFGTB(R2) ; SET TABLE TO "ALL"
3779 005634 40$:
3780 005634 005722 TST (R2)+ ; NEXT CONTROLLER
3781 005636 077454 SOB R4,10$ ; LOOP TILL DONE
3782 005640 45$:
3783 005640 RETURN ; TO CALLER
005640 000207 RTS PC
3784 005642 50$:
3785 005642 005703 TST R3 ; ALREADY PRINTED??
3786 005644 001004 BNE 60$ ; YES -- GO ON
3787 005646 PRINT #CFGMNM ; NO PRINT IT
KLICO -- CONFIGURATION EDITOR MACRO M1110 12-OCT-79 14:10 PAGE 83-1
CFGMOS -- MOS CONFIGURATION EDITOR
005646 012700 001264' MOV #CFGMNM,R0
005652 004737 025164' JSR PC,$TTMSG
3788 005656 60$:
3789 005656 005203 INC R3 ; FLAG PRINT
3790 005660 105237 000030' INCB .DMSW ; HERE TOO
3791 005664 105737 000024' TSTB .DLGSW ; SOMEONE OUT THERE??
3792 005670 001401 BEQ 70$ ; YES
3793 005672 RETURN ; NO -- RETURN
005672 000207 RTS PC
3794 005674 70$:
3795 005674 000137 021572' JMP $ERROR ; BAIL OUT NOW...
3796 ;
KLICO -- CONFIGURATION EDITOR MACRO M1110 12-OCT-79 14:10 PAGE 84
$MAPMM -- MAP MOS CONTROLLER BLOCKS
3798 .SBTTL $MAPMM -- MAP MOS CONTROLLER BLOCKS
3799
3800 005700 $MAPMM::
3801 005700 PUSH R2 ; SAVE R2
005700 010246 MOV R2,-(SP)
3802 005702 PUSH R4 ; AND R4
005702 010446 MOV R4,-(SP)
3803 005704 005046 CLR -(SP) ; BUFFER
3804 005706 012704 000014 MOV #14,R4 ; ITERATION COUNTER
3805 005712 005002 CLR R2 ; INIT INDEX
3806 005714 CALL BAF0 ; FIND BASE ADDRESS THIS CONTROLLER
005714 004737 000000G JSR PC,BAF0
3807 005720 10$:
3808 005720 105720 TSTB (R0)+ ; IS THE BLOCK THERE??
3809 005722 001402 BEQ 20$ ; NO -- GO ON
3810 005724 056216 000000G BIS BITTBL(R2),(SP) ; YES -- LIGHT A BIT
3811 005730 20$:
3812 005730 005722 TST (R2)+ ; AND NEXT BIT
3813 005732 077406 SOB R4,10$ ; LOOP TILL DONE
3814 005734 POP R0 ; BIT MASK TO R0
005734 012600 MOV (SP)+,R0
3815 005736 POP R4 ; RESTORE R4
005736 012604 MOV (SP)+,R4
3816 005740 POP R2 ; RESTORE R2
005740 012602 MOV (SP)+,R2
3817 005742 RETURN ; TO CALLER
005742 000207 RTS PC
KLICS -- SWEEP CACHE MACRO M1110 12-OCT-79 14:10 PAGE 85
$MAPMM -- MAP MOS CONTROLLER BLOCKS
3819 .TITLE KLICS -- SWEEP CACHE
3820 005744 IDENT$ 5,1
.IDENT /005010/
3821 ;
3822 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
3823 ;
3824 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
3825 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
3826 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
3827 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
3828 ;
3829 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
3830 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
3831 ; EQUIPMENT CORPORATION.
3832 ;
3833 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
3834 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
3835 ;
3836 ; VERSION 05-01
3837 ;
3838 ; ALAN D. PECKHAM 8-APR-77
3839 ;
3840 ; MODIFIED BY:
3841 ;
3842 ; FUNCTION: SWEEP AND INVALIDATE THE KL CACHE.
3843 ;
3845 ; EQUATED SYMBOLS
3846 ;
3847 000014 CCA = 14 ; KL DEVICE.
3848 000004 CONO = 4 ; KL I/O SUBFUNCTION CODE.
3849 000001 DATAI = 1 ; KL I/O SUBFUNCTION CODE.
3850 000010 PAG = 10 ; KL DEVICE.
3851 ;
3852 ; LOCAL DATA
3853 ;
3854 000272 .PSECT DATA,D
3855 000272 DCSSIA: IO10$ DATAI CCA,,0 ; SWPIA INSTRUCTION.
000272 000 000 200 .BYTE BY$$0,BY$$1,BY$$2
000275 014 016 .BYTE BY$$3,BY$$4
3856 000277 DCSRCA: IO10$ CONO PAG,,0 ; RESET CACHE & PAGING STATUS.
000277 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
000302 012 016 .BYTE BY$$3,BY$$4
3857 .EVEN
3858 005744 .PSECT
KLICS -- SWEEP CACHE MACRO M1110 12-OCT-79 14:10 PAGE 86
$SWEEP -- SWEEP AND INVALIDATE THE CACHE
3860 .SBTTL $SWEEP -- SWEEP AND INVALIDATE THE CACHE
3861 ;+
3862 ; SWEEP THE CACHE OUT AND TURN IT OFF.
3863 ;
3864 ; INPUTS:
3865 ; .NCACH - NUMBER OF CACHES CONFIGURED.
3866 ; .CACHN - NUMBERS OF THE CACHES ENABLED.
3867 ;
3868 ; NO OUTPUTS
3869 ;-
3870
3871 005744 $SWEEP::
3872 005744 105737 000035' TSTB .CASW ; CHECK CACHE CONDITION AND
3873 005750 003415 BLE 90$ ; RETURN IF NO CACHE.
3874 005752 PUSH <R1,R0>
005752 010146 MOV R1,-(SP)
005754 010046 MOV R0,-(SP)
3875 005756 012700 000272' MOV #DCSSIA,R0 ; FIRST, INVALIDATE THE CACHE
3876 005762 CALL $EXCT ; WITH A SWPIA.
005762 004737 025716' JSR PC,$EXCT
3877 005766 103404 BCS 80$
3878 005770 012700 000277' MOV #DCSRCA,R0 ; THEN TURN OFF CACHE LOOK & LOAD
3879 005774 CALL $EXCT ; WITH A CONO PAG,,0.
005774 004737 025716' JSR PC,$EXCT
3880 006000 80$:
3881 006000 POP <R0,R1>
006000 012600 MOV (SP)+,R0
006002 012601 MOV (SP)+,R1
3882 006004 90$:
3883 006004 RETURN
006004 000207 RTS PC
3884
KLICX -- EXTERNAL MEMORY CONFIG MACRO M1110 12-OCT-79 14:10 PAGE 87
$SWEEP -- SWEEP AND INVALIDATE THE CACHE
3887 .TITLE KLICX -- EXTERNAL MEMORY CONFIGURATION DIALOG
3888 006006 IDENT$ 10,0,KLI$$F
.IDENT /B10000/
3889 ;
3890 ; COPYRIGHT (C) 1975, 1978 BY
3891 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
3892 ;
3893 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
3894 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
3895 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
3896 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
3897 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
3898 ;
3899 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
3900 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
3901 ; CORPORATION.
3902 ;
3903 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
3904 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
3905 ;
3906 ;
3907 ; MODULE: EXTERNAL MEMORY CONFIGURATION DIALOG
3908 ;
3909 ; VERSION: 10-00
3910 ;
3911 ; DATE: 25-JUL-78
3912 ;
3913 ; AUTHOR: R. BELANGER
3914 ;
3915 ; MODIFICATIONS:
3916 ;
3917 ; NO. DATE PROGRAMMER REASON
3918 ; --- ---- ---------- ------
3919 ;
3920 ; LOCAL DATA
3921 ;
3922 001400 .PSECT TEXT,D
3923 001400 CXMDOL:
3924 001400 WARNING <EXTERNAL CORE MEMORY IS OFF-LINE>
001400 045 040 105 .ASCIZ \% EXTERNAL CORE MEMORY IS OFF-LINE\
001403 130 124 105
001406 122 116 101
001411 114 040 103
001414 117 122 105
001417 040 115 105
001422 115 117 122
001425 131 040 111
001430 123 040 117
001433 106 106 055
001436 114 111 116
001441 105 000
3925 001443 CFXMQ1:
3926 001443 103 117 116 .ASCIZ /CONFIGURE EXTERNAL CORE MEMORY [YES,NO]?/
001446 106 111 107
001451 125 122 105
001454 040 105 130
001457 124 105 122
KLICX -- EXTERNAL MEMORY CONFIG MACRO M1110 12-OCT-79 14:10 PAGE 87-1
$SWEEP -- SWEEP AND INVALIDATE THE CACHE
001462 116 101 114
001465 040 103 117
001470 122 105 040
001473 115 105 115
001476 117 122 131
001501 040 133 131
001504 105 123 054
001507 116 117 135
001512 077 000
3927 001514 CFXMQ2:
3928 001514 105 130 124 .ASCIZ /EXTERNAL CORE MEMORY BUS-MODE [OPTIMAL,1,2,4]?/
001517 105 122 116
001522 101 114 040
001525 103 117 122
001530 105 040 115
001533 105 115 117
001536 122 131 040
001541 102 125 123
001544 055 115 117
001547 104 105 040
001552 133 117 120
001555 124 111 115
001560 101 114 054
001563 061 054 062
001566 054 064 135
001571 077 000
3929 001573 CXMIBM:
3930 001573 ERROR <ILLEGAL BUS-MODE>
001573 077 040 111 .ASCIZ \? ILLEGAL BUS-MODE\
001576 114 114 105
001601 107 101 114
001604 040 102 125
001607 123 055 115
001612 117 104 105
001615 000
3931 006006 .PSECT
KLICX -- EXTERNAL MEMORY CONFIG MACRO M1110 12-OCT-79 14:10 PAGE 88
$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG
3933 .SBTTL $CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG
3934
3935 006006 $CFXMD::
3936 006006 105737 000000G TSTB DMA20 ; DO WE HAVE EXTERNAL MEMORY??
3937 006012 001540 BEQ 100$ ; NO -- GO ON TO NEXT SECTION
3938 006014 005737 000000G TST DMA2TS ; YES -- IS IT ON-LINE??
3939 006020 003005 BGT 10$ ; YES -- GO ON
3940 006022 PRINT #CXMDOL ; NO -- SAY SO
006022 012700 001400' MOV #CXMDOL,R0
006026 004737 025164' JSR PC,$TTMSG
3941 006032 000530 BR 100$ ; AND EXIT
3942 ;
3943 006034 10$:
3944 006034 105737 000030' TSTB .DMSW ; ARE WE IN DIALOG MODE??
3945 006040 002435 BLT 40$ ; NO -- TAKE DEFAULT PATH
3946 006042 PRINT #CFXMQ1 ; YES -- ASK THE FIRST QUESTION
006042 012700 001443' MOV #CFXMQ1,R0
006046 004737 025164' JSR PC,$TTMSG
3947 006052 CALL $TTRD ; READ THE RESPONSE
006052 004737 024642' JSR PC,$TTRD
3948 006056 012705 000270' MOV #.TTIBF,R5 ; POINT TO INPUT BUFFER
3949 006062 105715 TSTB (R5) ; DEFAULT??
3950 006064 001423 BEQ 40$ ; YES -- DO IT
3951 006066 022715 042531 CMP #"YE,(R5) ; NO -- IS IT "YES"??
3952 006072 001420 BEQ 40$ ; YES -- DO IT
3953 006074 022715 047516 CMP #"NO,(R5) ; NO -- IS IT "NO"??
3954 006100 001412 BEQ 30$ ; YES -- DO IT
3955 006102 022715 040502 CMP #"BA,(R5) ; NO -- IS IT "BACK"??
3956 006106 001405 BEQ 20$ ; YES -- BACK UP ONE
3957 006110 PRINT #COMCSE ; NO -- ERROR
006110 012700 004561' MOV #COMCSE,R0
006114 004737 025164' JSR PC,$TTMSG
3958 006120 000745 BR 10$
3959 ;
3960 006122 20$:
3961 006122 CALLR $DLMB2 ; BACK UP TO PREVIOUS QUESTION
006122 000137 017470' JMP $DLMB2
3962 ;
3963 006126 30$:
3964 006126 012701 100000 MOV #BIT15,R1 ; MAKE R1 SAY "NO"
3965 006132 000401 BR 50$ ; DO COMMON CODE
3966 ;
3967 006134 40$:
3968 006134 005001 CLR R1 ; MAKE R1 SAY "YES" <DEFAULT PATH>
3969 006136 50$:
3970 006136 010137 000130' MOV R1,.CFGTB+10 ; SET IT IN CONFIGURATION TABLE
3971 006142 100464 BMI 100$ ; DONE IF DELETE...
3972 006144 60$:
3973 006144 105737 000030' TSTB .DMSW ; ARE WE IN DIALOG MODE??
3974 006150 002461 BLT 100$ ; NO -- JUST EXIT
3975 006152 PRINT #CFXMQ2 ; YES -- ASK THE SECOND QUESTION
006152 012700 001514' MOV #CFXMQ2,R0
006156 004737 025164' JSR PC,$TTMSG
3976 006162 CALL $TTRD ; READ THE RESPONSE
006162 004737 024642' JSR PC,$TTRD
3977 006166 005000 CLR R0 ; INIT DEFAULT BUS-MODE
3978 006170 012705 000270' MOV #.TTIBF,R5 ; POINT TO INPUT BUFFER
KLICX -- EXTERNAL MEMORY CONFIG MACRO M1110 12-OCT-79 14:10 PAGE 88-1
$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG
3979 006174 105715 TSTB (R5) ; DEFAULT??
3980 006176 001444 BEQ 90$ ; YES -- GO ON
3981 006200 022715 050117 CMP #"OP,(R5) ; NO -- "OPTIMAL"??
3982 006204 001441 BEQ 90$ ; YES -- GO ON
3983 006206 022715 040502 CMP #"BA,(R5) ; NO -- "BACK"??
3984 006212 001710 BEQ 10$ ; YES -- BACK UP ONE
3985 006214 CALL $TRI2B ; NO -- HAD BETTER BE NUMERIC
006214 004737 023136' JSR PC,$TRI2B
3986 006220 103426 BCS 80$ ; OOPS!
3987 006222 005700 TST R0 ; DID HE TYPE ZERO??
3988 006224 001424 BEQ 80$ ; YES -- NOT ALLOWED
3989 006226 022700 000004 CMP #4,R0 ; NO -- IN RANGE??
3990 006232 002421 BLT 80$ ; NO -- COMPLAIN
3991 006234 022700 000003 CMP #3,R0 ; YES -- IS IT "3"??
3992 006240 001416 BEQ 80$ ; YES -- NOT ALLOWED
3993 006242 70$:
3994 006242 010001 MOV R0,R1 ; NO -- ALL OK
3995 006244 042701 177774 BIC #^C3,R1 ; FLUSH JUNK
3996 006250 006301 ASL R1 ; WORD INDEX
3997 006252 016101 000222' MOV BMMSTB(R1),R1 ; BIT MASK TO R1
3998 006256 030137 000000G BIT R1,DMANXM ; IS THIS BUS-MODE LEGAL??
3999 006262 001412 BEQ 90$ ; YES -- GO ON
4000 006264 PRINT #CXMIBM ; NO -- COMPLAIN
006264 012700 001573' MOV #CXMIBM,R0
006270 004737 025164' JSR PC,$TTMSG
4001 006274 000723 BR 60$ ; AND TRY AGAIN
4002 ;
4003 006276 80$:
4004 006276 PRINT #COMCSE ; ERROR MESSAGE
006276 012700 004561' MOV #COMCSE,R0
006302 004737 025164' JSR PC,$TTMSG
4005 006306 000716 BR 60$ ; TRY AGAIN
4006 ;
4007 006310 90$:
4008 006310 010037 000130' MOV R0,.CFGTB+10
4009 006314 100$:
4010 006314 CALLR $DLGMF ; CONFIGURE MOS MEMORY
006314 000137 017452' JMP $DLGMF
4011 ;
KLIDC -- FILE CLOSE ROUTINE MACRO M1110 12-OCT-79 14:10 PAGE 89
$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG
4013 .TITLE KLIDC -- FILE CLOSE ROUTINE
4014 006320 IDENT$ 5,0
.IDENT /005000/
4015 ;
4016 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
4017 ;
4018 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
4019 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
4020 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
4021 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
4022 ;
4023 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
4024 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
4025 ; EQUIPMENT CORPORATION.
4026 ;
4027 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
4028 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
4029 ;
4030 ; VERSION 05-00
4031 ;
4032 ; ALAN D. PECKHAM 15-APR-77
4033 ;
4034 ; MODIFIED BY:
4035 ;
4036 ; FUNCTION: THIS ROUTINE CLOSES THE FILE CURRENTLY OPEN. IF IT IS
4037 ; AND OUTPUT FILE, THE LAST BLOCK IS WRITTEN OUT AND
4038 ; THE ATTRIBUTES ARE WRITTEN.
4039 ;
4040 ; LOCAL MACROS
4041 ;
4042 .MCALL QIOW$
4043 ;
4044 ; LOCAL DATA
4045 ;
4046 000304 .PSECT DATA,D
4047 000304 DDCDAI: QIOW$ IO.DAC,SYILUN,1,,.SYSTA
000304 003 006 .BYTE 3,$$$ARG
000306 000000G .WORD IO.DAC
000310 000004 .WORD SYILUN
000312 001 000 .BYTE 1,
000314 000470' .WORD .SYSTA
000316 000000 .WORD
4048 000320 DDCDAO: QIOW$ IO.DAC,SYOLUN,1,,.SYSTA,,<,DDCWAT>
000320 003 010 .BYTE 3,$$$ARG
000322 000000G .WORD IO.DAC
000324 000005 .WORD SYOLUN
000326 001 000 .BYTE 1,
000330 000470' .WORD .SYSTA
000332 000000 .WORD
000334 000000 .WORD
000336 000340' .WORD DDCWAT
4049 000340 004 016 DDCWAT: .BYTE 4,16 ; ATTRIBUTES INFO
4050 000342 002614' .WORD .SYATT
4051 000344 005 012 .BYTE 5,12 ; FILENAME INFO
4052 000346 001536' .WORD .SYOFN+00
4053 000350 001 002 .BYTE 1,2 ; AND OWNER'S UIC
4054 000352 001550' .WORD .SYOFN+12
KLIDC -- FILE CLOSE ROUTINE MACRO M1110 12-OCT-79 14:10 PAGE 89-1
$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG
4055 000354 000 000 .BYTE 0,0 ; END OF CONTROL WORDS.
4056 006320 .PSECT
KLIDC -- FILE CLOSE ROUTINE MACRO M1110 12-OCT-79 14:10 PAGE 90
$CLOSE -- CLOSE FILES AND WRITE ATTRIBUTES
4058 .SBTTL $CLOSE -- CLOSE FILES AND WRITE ATTRIBUTES
4059 ;+
4060 ; CLOSE THE INPUT AND OUTPUT FILES.
4061 ;
4062 ; NO INPUTS
4063 ;
4064 ; OUTPUTS:
4065 ; CARRY IS SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
4066 ; R0 IS DESTROYED IF ERROR.
4067 ;-
4068
4069 006320 105737 000474' $CLOSE::TSTB .SYISW ; IF INPUT FILE NOT OPEN
4070 006324 001411 BEQ 10$ ; LEAVE IT ALONE.
4071 006326 DIR$ #DDCDAI ; DE-ACCESS THE INPUT FILE.
006326 012746 000304' MOV #DDCDAI,-(SP)
006332 104375 EMT 375
4072 006334 103441 BCS 30$
4073 006336 105737 000470' TSTB .SYSTA
4074 006342 002436 BLT 30$
4075 006344 105037 000474' CLRB .SYISW ; INPUT FILE NOW CLOSED.
4076 006350 105737 000475' 10$: TSTB .SYOSW ; IF OUTPUT FILE NO OPEN
4077 006354 001430 BEQ 20$ ; LEAVE IT ALONE.
4078
4079 ; COLLECT OUT STATISTICS
4080
4081 006356 013737 001556' 002624' MOV .SYOVB,.SYATT+10 ; RECORD TOP
4082 006364 013737 001560' 002626' MOV .SYOVB+2,.SYATT+12 ; BLOCK USED AND
4083 006372 013737 001532' 002630' MOV .SYOBA,.SYATT+14 ; DISPLACEMENT TO
4084 006400 162737 001562' 002630' SUB #.SYOBF,.SYATT+14 ; NEXT AVAILABLE BYTE.
4085 006406 CALL $WRITS ; WRITE OUT REST OF
006406 004737 010130' JSR PC,$WRITS
4086 006412 103411 BCS 20$ ; THE CURRENT BLOCK.
4087 006414 DIR$ #DDCDAO ; DE-ACCESS THE OUTPUT FILE.
006414 012746 000320' MOV #DDCDAO,-(SP)
006420 104375 EMT 375
4088 006422 103411 BCS 40$
4089 006424 105737 000470' TSTB .SYSTA
4090 006430 002406 BLT 40$
4091 006432 105037 000475' CLRB .SYOSW ; OUTPUT FILE NOW CLOSED.
4092 006436 20$: RETURN
006436 000207 RTS PC
4093
4094 006440 012700 000504' 30$: MOV #.SYIFN,R0 ; CLOSE FAILED.
4095 006444 000402 BR 50$
4096 006446 012700 001536' 40$: MOV #.SYOFN,R0
4097 006452 50$: CALLR $IOERR
006452 000137 006610' JMP $IOERR
KLIDD -- DELETE A FILE MACRO M1110 12-OCT-79 14:10 PAGE 91
$CLOSE -- CLOSE FILES AND WRITE ATTRIBUTES
4099 .TITLE KLIDD -- DELETE A FILE
4100 006456 IDENT$ 5,0
.IDENT /005000/
4101 ;
4102 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
4103 ;
4104 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
4105 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
4106 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
4107 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
4108 ;
4109 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
4110 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
4111 ; EQUIPMENT CORPORATION.
4112 ;
4113 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
4114 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
4115 ;
4116 ; VERSION 05-00
4117 ;
4118 ; ALAN D. PECKHAM 15-APR-77
4119 ;
4120 ; MODIFIED BY:
4121 ;
4122 ; FUNCTION: THIS ROUTINE DELETES THE FILE SPECIFIED BY THE FILE NAME
4123 ; POINTED TO BY R0.
4124 ;
4125 ; LOCAL MACROS
4126 ;
4127 .MCALL QIOW$
4128 ;
4129 ; LOCAL DATA
4130 ;
4131 000356 .PSECT DATA,D
4132 000356 DDDFNA: QIOW$ IO.FNA,SYFLUN,1,,.SYSTA,,<,,,,,.SYFNB>
000356 003 014 .BYTE 3,$$$ARG
000360 000000G .WORD IO.FNA
000362 000006 .WORD SYFLUN
000364 001 000 .BYTE 1,
000366 000470' .WORD .SYSTA
000370 000000 .WORD
000372 000000 .WORD
000374 000000 .WORD
000376 000000 .WORD
000400 000000 .WORD
000402 000000 .WORD
000404 002562' .WORD .SYFNB
4133 000406 DDDDEL: QIOW$ IO.DEL,SYFLUN,1,,.SYSTA,,<.SYFID>
000406 003 007 .BYTE 3,$$$ARG
000410 000000G .WORD IO.DEL
000412 000006 .WORD SYFLUN
000414 001 000 .BYTE 1,
000416 000470' .WORD .SYSTA
000420 000000 .WORD
000422 002562' .WORD .SYFID
4134 000424 DDDRNA: QIOW$ IO.RNA,SYFLUN,1,,.SYSTA,,<,,,,,.SYFNB>
000424 003 014 .BYTE 3,$$$ARG
KLIDD -- DELETE A FILE MACRO M1110 12-OCT-79 14:10 PAGE 91-1
$CLOSE -- CLOSE FILES AND WRITE ATTRIBUTES
000426 000000G .WORD IO.RNA
000430 000006 .WORD SYFLUN
000432 001 000 .BYTE 1,
000434 000470' .WORD .SYSTA
000436 000000 .WORD
000440 000000 .WORD
000442 000000 .WORD
000444 000000 .WORD
000446 000000 .WORD
000450 000000 .WORD
000452 002562' .WORD .SYFNB
4135 006456 .PSECT
KLIDD -- DELETE A FILE MACRO M1110 12-OCT-79 14:10 PAGE 92
$CLOSE -- CLOSE FILES AND WRITE ATTRIBUTES
4137 ;+
4138 ; THIS PROGRAM USES THE RSX FILE PRIMITIVES TO DO ITS I/O
4139 ; IN ORDER TO AVOID THE INCLUSION OF THE FILES-11 PACKAGE WHICH IS
4140 ; SOME 2K IN SIZE, AND NOT OVERLAYABLE. THIS HAS A RISK IN THAT
4141 ; THE FILE PRIMITIVES ARE NOT DOCUMENTED, BUT THE INFORMATION IS
4142 ; AVAILABLE TO THOSE WHO WANT TO WADE THROUGH THE LISTINGS. THE
4143 ; FOLLOWING INFORMATION HOPEFULLY WILL BE OF AID TO THE READER
4144 ; OF THIS LISTING.
4145 ;
4146 ; FILES UNDER RSX ARE ACCESSED BY AN INTERNAL 'FILE ID' (FID) WHICH
4147 ; IS ASSOCIATED WITH THE USER'S FILE NAME THROUGH THE DIRECTORY.
4148 ; THUS, UNDER RSX, ACCESSING A FILE NAME IS SEPERATE FROM ACCESSING
4149 ; THE ACTUAL FILE. THE 3 PRIMITIVES IO.FNA, IO.RNA, IO.ENA ARE
4150 ; PROVIDED FOR FINDING, REMOVING, AND ENTERING A FILE NAME. THESE
4151 ; USE THE FILE NAME BLOCK (FNB) ONLY. IN ACCESSING THE DIRECTORY,
4152 ; THE FID OF THE DIRECTORY MUST BE FIRST FOUND WITHIN THE MASTER
4153 ; FILE DIRECTORY, WHICH HAS A FID OF -1,-1.
4154 ;
4155 ; ONCE THE DESIRED FID HAS BEEN FOUND, THE FILE CAN BE ACCESSED
4156 ; FOR THE TYPE OF I/O TO BE DONE: IO.ACR TO READ, IO.ACW TO
4157 ; READ/WRITE, IO.ACE TO READ/WRITE/EXTEND. THE FILE CAN THEN BE
4158 ; WORKED ON THROUGH IO.RVB AND IO.WVB (VIRTUAL BLOCKS START AT 1).
4159 ; WHEN FINISHED, THE USER SHOULD DO AN IO.DAC TO CLOSE THE FILE.
4160 ; THE PRIMITIVES IO.ACR,ACW,ACE USE THE FID AND ACCESS PARAMETERS,
4161 ; WHILE IO.DAC USES THE FID AND MAY SET THE FILE ATTRIBUTES IF
4162 ; ACCESS INCLUDES WRITING.
4163 ;
4164 ; FILES ARE MANIPULATED BY IO.CRE, IO.EXT, IO.DEL WHICH CREATE,
4165 ; EXTEND, OR DELETE A FILE. A DELETE WITH AN EXTEND PARAMETER WILL
4166 ; TRUNCATE A FILE.
4167 ;
4168 ; THE ATTRIBUTES MAY BE ACCESSED ON AN ACCESSED FILE THROUGH
4169 ; IO.RAT TO READ THE ATTRIBUTES AND IO.WAT TO WRITE.
4170 ;
4171 ; CARE MUST BE TAKEN NOT TO LOSE A FILE BY CREATING AND NOT HAVING
4172 ; IT IN SOME DIRECTORY.
4173 ;-
KLIDD -- DELETE A FILE MACRO M1110 12-OCT-79 14:10 PAGE 93
$CLOSE -- CLOSE FILES AND WRITE ATTRIBUTES
4175 ;+
4176 ; THE QIO PARAMETER BLOCK IS ORGANIZED AS FOLLOWS:
4177 ;
4178 ; .WORD 0 ;ADDRESS OF FID BLOCK.
4179 ; .WORD 0 ;ADDRESS OF ATTRIBUTE CONTROL LIST.
4180 ; .WORD 0,0 ;EXTEND PARAMETERS.
4181 ; .WORD 0 ;ACCESS PARAMETERS.
4182 ; .WORD 0 ;ADDRESS OF FILE NAME BLOCK.
4183 ;
4184 ; ANY UNUSED UNUSED PARAMETERS ARE TO BE ZERO.
4185 ;
4186 ; THE PARAMETERS THAT MAY BE USED FOR PRIMITIVES ARE:
4187 ;
4188 ; FUNC. FID ACL EXT ACC FNB
4189 ; IO.FNA - - - - M
4190 ; IO.RNA - - - - M
4191 ; IO.ENA - - - - M
4192 ; IO.ACR M OR - M -
4193 ; IO.ACW M OR - M -
4194 ; IO.ACE M OR - M -
4195 ; IO.DAC O OW - - -
4196 ; IO.EXT O - M - -
4197 ; IO.CRE M OW O - -
4198 ; IO.DEL O - OT - -
4199 ; IO.RAT O OR - - -
4200 ; IO.WAT O OW - - -
4201 ;
4202 ; M - MANDATORY O - OPTIONAL '-' - MUST BE ZERO
4203 ; R - READ ATTRIBUTES W - WRITE ATTRIBUTES T - TRUNCATE FILE
4204 ;-
KLIDD -- DELETE A FILE MACRO M1110 12-OCT-79 14:10 PAGE 94
$CLOSE -- CLOSE FILES AND WRITE ATTRIBUTES
4206 ;+
4207 ; THE FILE ID BLOCK IS A TWO WORD HOLDING AREA AND IS USUALLY
4208 ; THE FIRST TWO WORDS OF THE FNB, AS THAT IS WHERE THE FID IS
4209 ; RETURNED FROM A DIRECTORY OPERATION.
4210 ;
4211 ; THE FILE ATTRIBUTES ARE ACCESSED IN PIECES THROUGH A CONTROL
4212 ; LIST. ENTRIES IN THIS LIST ARE TWO WORDS LONG AND ARE TERMINATED
4213 ; BY A NULL BYTE:
4214 ; .BYTE 0 ;ATTRIBUTE # - POSITIVE TO WRITE ATTRIBUTE
4215 ; ; NEGATIVE TO READ ATTRIBUTE.
4216 ; .BYTE 0 ;LENGTH IN BYTES TO TRANSFER - IF ZERO
4217 ; ;THEN 1000 BYTES IS IMPLIED. THIS MUST
4218 ; ;BE <=MXLN (THE MAXIMUM LENGTH).
4219 ; .WORD 0 ;ADDRESS OF SENDING/RECIEVING AREA.
4220 ;
4221 ; ATTR# MXLN DESCRIPTION
4222 ; 1 5 OWNERS UIC (MAY INCL 2&3)
4223 ; 2 3 FILE PROTECTION (MAY INCL 3)
4224 ; 3 1 USER CONTROLLED FILE CHARACTERISTICS
4225 ; 4 40 USER FILE ATTRIBUTES
4226 ; 5 12 FILE NAME (MAY INCL 6&7)
4227 ; 6 4 FILE TYPE (MAY INCL 7)
4228 ; 7 2 FILE VERSION
4229 ; 10 7 EXPIRATION DATE
4230 ; 11 12 STATISTICS BLOCK (READ ONLY)
4231 ; 12 0 COMPLETE FILE HEADER (READ ONLY)
4232 ;
4233 ; THE USER FILE ATTRIBUTES ARE DESCRIBED IN THE RSX-11 I/O
4234 ; OPERATIONS MANUAL IN APPENDIX A AS THE FIRST 20 BYTES OF
4235 ; THE FDB. THE STATISTICS BLOCK IS DESCRIBED IN APPENDIX H.
4236 ; THE FULL HEADER BLOCK IS DESCRIBED IN APPENDIX F.
4237 ;
4238 ; THE EXTEND PARAMETER IS A TWO WORD INDICATOR OF THE SIZE OF THE
4239 ; EXTEND:
4240 ; .BYTE 0 ;EXTENSION SIZE HIGH
4241 ; .BYTE 400 ;EXTENSION PARAMETER ENABLE. IF 410
4242 ; ;THEN EXTEND BY SYSTEM DEFAULT.
4243 ; .WORD 0 ;EXTENSION SIZE LOW.
4244 ; THE EXTENSION HIGH & LOW COMBINED PROVIDE A 24 BIT NUMBER OF
4245 ; BLOCKS TO EXTEND THE FILE BY. IF USED IN IO.DEL, ALL 31 BITS
4246 ; EXCLUDING THE ENABLE BIT (SIGN BIT) PARTICIPATE IN A FILE SIZE
4247 ; TO TRUNCATE TO.
4248 ;
4249 ; THE ACCESS PARAMETER SPECIFIES THE FILE WINDOW SIZE:
4250 ; .BYTE 0 ;WINDOW SIZE (NORMALLY ZERO)
4251 ; .BYTE 400 ;ACCESS PARAMETER ENABLE.
4252 ;
4253 ; THE FILE NAME BLOCK IS DESCRIBED IN THE RSX-11 I/O OPERATIONS
4254 ; REFERENCE MANUAL APPENDIX B. THE LAST FOUR BYTES ARE NOT USED.
4255 ;-
KLIDD -- DELETE A FILE MACRO M1110 12-OCT-79 14:10 PAGE 95
$DELETE -- DELETE A FILE
4257 .SBTTL $DELETE -- DELETE A FILE
4258 ;+
4259 ; DELETE THE GIVEN FILE FROM THE SYSTEM DEVICE
4260 ;
4261 ; INPUTS:
4262 ; R0 - POINTER TO FILE NAME.
4263 ;
4264 ; OUTPUTS:
4265 ; CARRY IS SET IF DELETE FAILED AND MESSAGE IS TYPED.
4266 ; R0 IS DESTROYED IF ERROR OCCURS.
4267 ;-
4268
4269 006456 $DELETE::CALL $SETFN ; GET FILE NAME.
006456 004737 006546' JSR PC,$SETFN
4270 006462 DIR$ #DDDFNA ; FIND FILE IN DIRECTORY
006462 012746 000356' MOV #DDDFNA,-(SP)
006466 104375 EMT 375
4271 006470 103424 BCS 10$
4272 006472 105737 000470' TSTB .SYSTA
4273 006476 002421 BLT 10$
4274 006500 DIR$ #DDDDEL ; MARK IT FOR DELETION
006500 012746 000406' MOV #DDDDEL,-(SP)
006504 104375 EMT 375
4275 006506 103415 BCS 10$
4276 006510 105737 000470' TSTB .SYSTA
4277 006514 002412 BLT 10$
4278 006516 CALL $SETFN ; RESET FNB AND
006516 004737 006546' JSR PC,$SETFN
4279 006522 DIR$ #DDDRNA ; REMOVE NAME FROM DIRECTORY.
006522 012746 000424' MOV #DDDRNA,-(SP)
006526 104375 EMT 375
4280 006530 103404 BCS 10$
4281 006532 105737 000470' TSTB .SYSTA
4282 006536 002401 BLT 10$
4283 006540 RETURN
006540 000207 RTS PC
4284
4285 006542 10$: CALLR $IOERR ; DELETE FAILED.
006542 000137 006610' JMP $IOERR
KLIDD -- DELETE A FILE MACRO M1110 12-OCT-79 14:10 PAGE 96
$SETFN -- SET FILE NAME IN FILE NAME BLOCK
4287 .SBTTL $SETFN -- SET FILE NAME IN FILE NAME BLOCK
4288 ;+
4289 ; PUT FILE NAME IN FILE NAME BLOCK AND SET UP
4290 ; DPB TO FIND THE FILE. THE FILENAME IS POINTED TO BY R0.
4291 ;
4292 ; INPUTS:
4293 ; R0 - ADDRESS OF FILE NAME TO USE:
4294 ; .RAD50 /FILENAME / ;(THREE WORDS)
4295 ; .RAD50 /TYP/ ;(ONE WORD)
4296 ; .WORD VERSION
4297 ; .WORD UIC
4298 ; .ASCII /DEVICE/ ;(ONE WORD)
4299 ; .WORD UNIT
4300 ;
4301 ; OUTPUTS:
4302 ; .SYFNB - IS SET UP FOR USE WITH THE GIVEN FILE NAME.
4303 ;-
4304
4305 006546 $SETFN::PUSH <R1,R0>
006546 010146 MOV R1,-(SP)
006550 010046 MOV R0,-(SP)
4306 006552 012701 002562' MOV #.SYFNB,R1 ; GET FNB ADDRESS
4307 006556 005021 CLR (R1)+ ; AND CLEAR FID
4308 006560 005021 CLR (R1)+
4309 006562 005021 CLR (R1)+
4310 006564 012021 MOV (R0)+,(R1)+ ; MOVE IN FILENAME
4311 006566 012021 MOV (R0)+,(R1)+
4312 006570 012021 MOV (R0)+,(R1)+
4313 006572 012021 MOV (R0)+,(R1)+ ; FILE TYPE
4314 006574 011021 MOV (R0),(R1)+ ; VERSION
4315 006576 005021 CLR (R1)+ ; STATUS AND
4316 006600 005011 CLR (R1) ; NEXT POINTER.
4317 006602 POP <R0,R1>
006602 012600 MOV (SP)+,R0
006604 012601 MOV (SP)+,R1
4318 006606 RETURN
006606 000207 RTS PC
KLIDE -- PRINT I/O ERROR MESSAG MACRO M1110 12-OCT-79 14:10 PAGE 97
$SETFN -- SET FILE NAME IN FILE NAME BLOCK
4320 .TITLE KLIDE -- PRINT I/O ERROR MESSAGE
4321 006610 IDENT$ 5,1 ; ADP01
.IDENT /005010/
4322 ;
4323 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
4324 ;
4325 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
4326 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
4327 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
4328 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
4329 ;
4330 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
4331 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
4332 ; EQUIPMENT CORPORATION.
4333 ;
4334 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
4335 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
4336 ;
4337 ; VERSION 05-01 ; ADP01
4338 ;
4339 ; ALAN D. PECKHAM 15-APR-77
4340 ;
4341 ; MODIFIED BY:
4342 ;
4343 ; FUNCTION: THIS ROUTINE IS CALLED TO PRINT OUT THE ERROR CODE
4344 ; IN CASE OF I/O ERROR. IT ALSO PRINTS THE DEVICE AND
4345 ; FILE NAME ASSOCIATED TO THE ERROR.
4346 ;
4347 ; LOCAL DATA
4348 ;
4349 001616 .PSECT TEXT,D
4350 001616 TDEDR: ERROR <DIRECTIVE ERROR -XXX ON FILE 'XXX:XXXXXXXXX.XXX;XXXXXX'> ; ADP01
001616 077 040 104 .ASCIZ \? DIRECTIVE ERROR -XXX ON FILE 'XXX:XXXXXXXXX.XXX;XXXXXX'\
001621 111 122 105
001624 103 124 111
001627 126 105 040
001632 105 122 122
001635 117 122 040
001640 055 130 130
001643 130 040 117
001646 116 040 106
001651 111 114 105
001654 040 047 130
001657 130 130 072
001662 130 130 130
001665 130 130 130
001670 130 130 130
001673 056 130 130
001676 130 073 130
001701 130 130 130
001704 130 130 047
001707 000
4351 001710 TDEIO: ERROR <I/O ERROR -XXX ON FILE 'XXX:XXXXXXXXX.XXX;XXXXXX'> ; ADP01
001710 077 040 111 .ASCIZ \? I/O ERROR -XXX ON FILE 'XXX:XXXXXXXXX.XXX;XXXXXX'\
001713 057 117 040
001716 105 122 122
001721 117 122 040
KLIDE -- PRINT I/O ERROR MESSAG MACRO M1110 12-OCT-79 14:10 PAGE 97-1
$SETFN -- SET FILE NAME IN FILE NAME BLOCK
001724 055 130 130
001727 130 040 117
001732 116 040 106
001735 111 114 105
001740 040 047 130
001743 130 130 072
001746 130 130 130
001751 130 130 130
001754 130 130 130
001757 056 130 130
001762 130 073 130
001765 130 130 130
001770 130 130 047
001773 000
4352 001774 TDENSF: ERROR <FILE 'XXX:XXXXXXXXX.XXX;XXXXXX' NOT FOUND> ; ADP01
001774 077 040 106 .ASCIZ \? FILE 'XXX:XXXXXXXXX.XXX;XXXXXX' NOT FOUND\
001777 111 114 105
002002 040 047 130
002005 130 130 072
002010 130 130 130
002013 130 130 130
002016 130 130 130
002021 056 130 130
002024 130 073 130
002027 130 130 130
002032 130 130 047
002035 040 116 117
002040 124 040 106
002043 117 125 116
002046 104 000
4353 002050 TDEDFU: ERROR <DEVICE 'XXX:' FULL>
002050 077 040 104 .ASCIZ \? DEVICE 'XXX:' FULL\
002053 105 126 111
002056 103 105 040
002061 047 130 130
002064 130 072 047
002067 040 106 125
002072 114 114 000
4354 006610 .PSECT
KLIDE -- PRINT I/O ERROR MESSAG MACRO M1110 12-OCT-79 14:10 PAGE 98
$IOERR -- REPORT I/O ERROR
4356 .SBTTL $IOERR -- REPORT I/O ERROR
4357 ;+
4358 ; DISPLAY AN ERROR MESSAGE ACCORDING TO THE CODES FROM THE LAST
4359 ; I/O OPERATION AND RETURN WITH THE CARRY SET.
4360 ;
4361 ; INPUTS:
4362 ; $DSW - DIRECTIVE ERROR CODE OR SUCCESS CODE.
4363 ; .SYSTA - I/O OPERATION ERROR CODE.
4364 ;
4365 ; OUTPUT:
4366 ; THE CARRY IS SET.
4367 ;-
4368
4369 006610 004537 021764' $IOERR::JSR R5,$RSAVE
4370 006614 010002 MOV R0,R2 ; SAVE FILE NAME.
4371 006616 012701 001616' MOV #TDEDR,R1 ; DIRECTIVE ERROR
4372 006622 010105 MOV R1,R5
4373 006624 113700 000000G MOVB $DSW,R0
4374 006630 100421 BMI 10$ ; OR
4375 006632 113700 000470' MOVB .SYSTA,R0
4376 006636 012701 001774' MOV #TDENSF,R1 ; FILE NOT FOUND
4377 006642 010105 MOV R1,R5
4378 006644 122700 000000G CMPB #IE.NSF,R0
4379 006650 001425 BEQ 30$ ; OR
4380 006652 012701 002050' MOV #TDEDFU,R1 ; DEVICE FULL
4381 006656 010105 MOV R1,R5
4382 006660 122700 000000G CMPB #IE.DFU,R0
4383 006664 001433 BEQ 50$ ; OR
4384 006666 012701 001710' MOV #TDEIO,R1 ; OPERATION ERROR.
4385 006672 010105 MOV R1,R5
4386 006674 122725 000055 10$: CMPB #'-,(R5)+ ; FIND POSITION FOR
4387 006700 001375 BNE 10$ ; ERROR CODE
4388 006702 005400 NEG R0 ; AND
4389 006704 CALL $TRB2O ; INSERT IN OCTAL.
006704 004737 024212' JSR PC,$TRB2O
4390 006710 122715 000040 20$: CMPB #' ,(R5) ; ZAP REST OF FIELD.
4391 006714 001403 BEQ 30$
4392 006716 112725 177777 MOVB #-1,(R5)+
4393 006722 000772 BR 20$
4394 006724 122725 000047 30$: CMPB #'',(R5)+ ; NOW FIND
4395 006730 001375 BNE 30$ ; FILENAME POSITION,
4396 006732 010200 MOV R2,R0 ; GET FILENAME BLOCK, ; ADP01
4397 006734 CALL $TRB2F ; AND INSERT FILE NAME. ; ADP01
006734 004737 022556' JSR PC,$TRB2F
4398 006740 122725 000047 40$: CMPB #'',(R5)+ ; ZAP REST OF FIELD.
4399 006744 001410 BEQ 80$
4400 006746 111765 177777 MOVB (PC),-1(R5)
4401 006752 000772 BR 40$
4402 006754 122725 000047 50$: CMPB #'',(R5)+
4403 006760 001375 BNE 50$
4404 006762 CALL LDEIDV
006762 004737 007000' JSR PC,LDEIDV
4405 006766 80$: PRINT R1 ; DISPLAY MESSAGE
006766 010100 MOV R1,R0
006770 004737 025164' JSR PC,$TTMSG
4406 006774 000261 SEC ; AND RETURN WITH SHAME.
4407 006776 RETURN
KLIDE -- PRINT I/O ERROR MESSAG MACRO M1110 12-OCT-79 14:10 PAGE 98-1
$IOERR -- REPORT I/O ERROR
006776 000207 RTS PC
KLIDE -- PRINT I/O ERROR MESSAG MACRO M1110 12-OCT-79 14:10 PAGE 99
$IOERR -- REPORT I/O ERROR
4409 ;+
4410 ; INSERT DEVICE NAME AT AREA POINTED TO BY R5.
4411 ;
4412 ; INPUTS:
4413 ; R5 - POINTER TO BYTES TO RECIEVE STRING.
4414 ; R2 - POINTER TO FILE NAME.
4415 ;
4416 ; OUTPUTS:
4417 ; A 3 CHARACTER STRING IS INSERTED AND R5 IS ADVANCED BY 4 TO
4418 ; PASS BY THE ":".
4419 ;-
4420
4421 007000 116225 000014 LDEIDV: MOVB 14(R2),(R5)+ ; INSERT DEVICE NAME
4422 007004 116225 000015 MOVB 15(R2),(R5)+
4423 007010 116215 000016 MOVB 16(R2),(R5) ; DEVICE UNIT
4424 007014 152725 000060 BISB #'0,(R5)+
4425 007020 005205 INC R5
4426 007022 RETURN
007022 000207 RTS PC
KLIDL -- LOOKUP AN EXISTING FIL MACRO M1110 12-OCT-79 14:10 PAGE 100
$IOERR -- REPORT I/O ERROR
4428 .TITLE KLIDL -- LOOKUP AN EXISTING FILE FOR INPUT
4429 007024 IDENT$ 5,0
.IDENT /005000/
4430 ;
4431 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
4432 ;
4433 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
4434 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
4435 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
4436 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
4437 ;
4438 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
4439 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
4440 ; EQUIPMENT CORPORATION.
4441 ;
4442 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
4443 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
4444 ;
4445 ; VERSION 05-00
4446 ;
4447 ; ALAN D. PECKHAM 15-APR-77
4448 ;
4449 ; MODIFIED BY:
4450 ;
4451 ; FUNCTION: THIS ROUTINE FINDS THE FILE WITH THE NAME POINTED TO BY R0
4452 ; AND ACCESSES IT FOR READ.
4453 ;
4454 ; LOCAL MACROS
4455 ;
4456 .MCALL GLUN$,QIOW$
4457 ;
4458 ; LOCAL DATA
4459 ;
4460 000454 .PSECT DATA,D
4461 000454 DDLGLN: GLUN$ SYILUN,.SYIBF
000454 005 003 .BYTE 5,3
000456 000004 .WORD SYILUN
000460 000530' .WORD .SYIBF
4462 000462 DDLFNA: QIOW$ IO.FNA,SYFLUN,1,,.SYSTA,,<,,,,,.SYFNB>
000462 003 014 .BYTE 3,$$$ARG
000464 000000G .WORD IO.FNA
000466 000006 .WORD SYFLUN
000470 001 000 .BYTE 1,
000472 000470' .WORD .SYSTA
000474 000000 .WORD
000476 000000 .WORD
000500 000000 .WORD
000502 000000 .WORD
000504 000000 .WORD
000506 000000 .WORD
000510 002562' .WORD .SYFNB
4463 000512 DDLACR: QIOW$ IO.ACR,SYILUN,1,,.SYSTA,,<.SYFID,DDLRAT,,,BIT15>
000512 003 013 .BYTE 3,$$$ARG
000514 000000G .WORD IO.ACR
000516 000004 .WORD SYILUN
000520 001 000 .BYTE 1,
000522 000470' .WORD .SYSTA
KLIDL -- LOOKUP AN EXISTING FIL MACRO M1110 12-OCT-79 14:10 PAGE 100-1
$IOERR -- REPORT I/O ERROR
000524 000000 .WORD
000526 002562' .WORD .SYFID
000530 000570' .WORD DDLRAT
000532 000000 .WORD
000534 000000 .WORD
000536 100000 .WORD BIT15
4464 000540 DDLRNA: QIOW$ IO.RNA,SYFLUN,1,,,,<,,,,,.SYFNB>
000540 003 014 .BYTE 3,$$$ARG
000542 000000G .WORD IO.RNA
000544 000006 .WORD SYFLUN
000546 001 000 .BYTE 1,
000550 000000 .WORD
000552 000000 .WORD
000554 000000 .WORD
000556 000000 .WORD
000560 000000 .WORD
000562 000000 .WORD
000564 000000 .WORD
000566 002562' .WORD .SYFNB
4465 000570 373 012 DDLRAT: .BYTE -5,12 ; READ FILE NAME
4466 000572 000504' .WORD .SYIFN+00
4467 000574 377 002 .BYTE -1,2 ; READ OWNER'S UIC
4468 000576 000516' .WORD .SYIFN+12
4469 000600 000 000 .BYTE 0,0 ; END OF CONTROL LIST.
4470 007024 .PSECT
KLIDL -- LOOKUP AN EXISTING FIL MACRO M1110 12-OCT-79 14:10 PAGE 101
$LOOKUP -- LOOK UP AN EXISTING FILE
4472 .SBTTL $LOOKUP -- LOOK UP AN EXISTING FILE
4473 ;+
4474 ; FIND AN EXISTING FILE ON THE SYSTEM DEVICE AND OPEN IT FOR INPUT.
4475 ; IF THE FILE NAME IS IN THE DIRECTORY BUT THERE IS NO FILE, THE FILE
4476 ; NAME IS DELETED.
4477 ;
4478 ; INPUTS:
4479 ; R0 - POINTER TO FILE NAME.
4480 ;
4481 ; OUTPUTS:
4482 ; CARRY IS SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
4483 ;-
4484
4485 007024 $LOOKUP::CALL $SETFN ; TRANSFER FILE NAME AND
007024 004737 006546' JSR PC,$SETFN
4486 007030 DIR$ #DDLGLN ; GET DEVICE NAME
007030 012746 000454' MOV #DDLGLN,-(SP)
007034 104375 EMT 375
4487 007036 103455 BCS 30$ ; AND
4488 007040 013737 000530' 000520' MOV .SYIBF+0,.SYIFN+14 ; PUT IN OUR
4489 007046 113737 000532' 000522' MOVB .SYIBF+2,.SYIFN+16 ; FILENAME BLOCK.
4490 007054 DIR$ #DDLFNA ; FIND FILE IN DIRECTORY.
007054 012746 000462' MOV #DDLFNA,-(SP)
007060 104375 EMT 375
4491 007062 103443 BCS 30$
4492 007064 105737 000470' TSTB .SYSTA
4493 007070 002432 BLT 20$
4494 007072 DIR$ #DDLACR ; ACCESS FILE TO READ.
007072 012746 000512' MOV #DDLACR,-(SP)
007076 104375 EMT 375
4495 007100 103434 BCS 30$
4496 007102 105737 000470' TSTB .SYSTA
4497 007106 002412 BLT 10$ ; FILE CAN'T BE READ
4498 007110 105237 000474' INCB .SYISW ; INPUT FILE IS NOW OPEN.
4499 007114 005037 000526' CLR .SYIVB+2 ; NO BLOCK OR
4500 007120 005037 000524' CLR .SYIVB
4501 007124 005037 000476' CLR .SYIRC ; RECORD READ YET.
4502 007130 CALLR $READ ; READ FIRST BLOCK.
007130 000137 007736' JMP $READ
4503 007134 122737 000000G 000470' 10$: CMPB #IE.NSF,.SYSTA ; IF FILENAME EXISTS BUT
4504 007142 001013 BNE 30$ ; FILE DOESN'T, THEN
4505 007144 CALL $SETFN ; RESET FILE NAME BLOCK AND
007144 004737 006546' JSR PC,$SETFN
4506 007150 DIR$ #DDLRNA ; DELETE FILE NAME FROM DIRECTORY.
007150 012746 000540' MOV #DDLRNA,-(SP)
007154 104375 EMT 375
4507 007156 122737 000000G 000470' 20$: CMPB #IE.NSF,.SYSTA ; IF FILE NOT FOUND,
4508 007164 001002 BNE 30$ ; LEAVE ERROR REPORT
4509 007166 000261 SEC ; TO CALLER.
4510 007170 RETURN
007170 000207 RTS PC
4511
4512 007172 30$: CALLR $IOERR ; LOOKUP FAILED.
007172 000137 006610' JMP $IOERR
KLIDN -- ENTER A FILE FOR OUTPU MACRO M1110 12-OCT-79 14:10 PAGE 102
$LOOKUP -- LOOK UP AN EXISTING FILE
4514 .TITLE KLIDN -- ENTER A FILE FOR OUTPUT
4515 007176 IDENT$ 5,0
.IDENT /005000/
4516 ;
4517 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
4518 ;
4519 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
4520 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
4521 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
4522 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
4523 ;
4524 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
4525 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
4526 ; EQUIPMENT CORPORATION.
4527 ;
4528 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
4529 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
4530 ;
4531 ; VERSION 05-00
4532 ;
4533 ; ALAN D. PECKHAM 15-APR-77
4534 ;
4535 ; MODIFIED BY:
4536 ;
4537 ; FUNCTION: THIS ROUTINE CREATES A FILE AND ACCESSES IT FOR EXTENDING.
4538 ; THE FILE IS ALLOCATED 1 BLOCK INITIALLY.
4539 ;
4540 ; LOCAL MACROS
4541 ;
4542 .MCALL GLUN$,QIOW$
4543 ;
4544 ; LOCAL DATA
4545 ;
4546 000602 .PSECT DATA,D
4547 000602 DDNGLN: GLUN$ SYOLUN,.SYOBF
000602 005 003 .BYTE 5,3
000604 000005 .WORD SYOLUN
000606 001562' .WORD .SYOBF
4548 000610 DDNCRE: QIOW$ IO.CRE,SYFLUN,1,,.SYSTA,,<.SYFID,,BIT15,1>
000610 003 012 .BYTE 3,$$$ARG
000612 000000G .WORD IO.CRE
000614 000006 .WORD SYFLUN
000616 001 000 .BYTE 1,
000620 000470' .WORD .SYSTA
000622 000000 .WORD
000624 002562' .WORD .SYFID
000626 000000 .WORD
000630 100000 .WORD BIT15
000632 000001 .WORD 1
4549 000634 DDNENA: QIOW$ IO.ENA,SYFLUN,1,,.SYSTA,,<,,,,,.SYFNB>
000634 003 014 .BYTE 3,$$$ARG
000636 000000G .WORD IO.ENA
000640 000006 .WORD SYFLUN
000642 001 000 .BYTE 1,
000644 000470' .WORD .SYSTA
000646 000000 .WORD
000650 000000 .WORD
KLIDN -- ENTER A FILE FOR OUTPU MACRO M1110 12-OCT-79 14:10 PAGE 102-1
$LOOKUP -- LOOK UP AN EXISTING FILE
000652 000000 .WORD
000654 000000 .WORD
000656 000000 .WORD
000660 000000 .WORD
000662 002562' .WORD .SYFNB
4550 000664 DDNACE: QIOW$ IO.ACE,SYOLUN,1,,.SYSTA,,<.SYFID,DDNRAT,,,BIT15>
000664 003 013 .BYTE 3,$$$ARG
000666 000000G .WORD IO.ACE
000670 000005 .WORD SYOLUN
000672 001 000 .BYTE 1,
000674 000470' .WORD .SYSTA
000676 000000 .WORD
000700 002562' .WORD .SYFID
000702 000726' .WORD DDNRAT
000704 000000 .WORD
000706 000000 .WORD
000710 100000 .WORD BIT15
4551 000712 DDNDEL: QIOW$ IO.DEL,SYOLUN,1
000712 003 006 .BYTE 3,$$$ARG
000714 000000G .WORD IO.DEL
000716 000005 .WORD SYOLUN
000720 001 000 .BYTE 1,
000722 000000 .WORD
000724 000000 .WORD
4552 000726 373 012 DDNRAT: .BYTE -5,12 ; READ FILE NAME
4553 000730 001536' .WORD .SYOFN+00
4554 000732 377 002 .BYTE -1,2 ; AND OWNER'S UIC
4555 000734 001550' .WORD .SYOFN+12
4556 000736 000 000 .BYTE 0,0 ; END OF CONTROL LIST.
4557 007176 .PSECT
KLIDN -- ENTER A FILE FOR OUTPU MACRO M1110 12-OCT-79 14:10 PAGE 103
$ENTER -- ENTER A NEW FILE
4559 .SBTTL $ENTER -- ENTER A NEW FILE
4560 ;+
4561 ; ENTER A NEW FILE ONTO THE SYSTEM DEVICE AND OPEN IT FOR OUTPUT.
4562 ;
4563 ; INPUTS:
4564 ; R0 - POINTER TO FILE NAME.
4565 ;
4566 ; OUTPUTS:
4567 ; CARRY IS SET IF FILE WAS NOT CREATED AND MESSAGE IS DISPLAYED.
4568 ; R0 IS DESTROYED IF ERROR OCCURS.
4569 ;-
4570
4571 007176 $ENTER::CALL $SETFN ; TRANSFER FILE NAME.
007176 004737 006546' JSR PC,$SETFN
4572 007202 DIR$ #DDNGLN ; GET DEVICE NAME
007202 012746 000602' MOV #DDNGLN,-(SP)
007206 104375 EMT 375
4573 007210 103464 BCS 20$ ; AND
4574 007212 013737 001562' 001552' MOV .SYOBF+0,.SYOFN+14 ; INSERT IT INTO
4575 007220 113737 001564' 001554' MOVB .SYOBF+2,.SYOFN+16 ; OUR OWN FILENAME BLOCK.
4576 007226 DIR$ #DDNCRE ; CREATE NEW FILE AND ALLOCATE ONE BLOCK.
007226 012746 000610' MOV #DDNCRE,-(SP)
007232 104375 EMT 375
4577 007234 103452 BCS 20$ ; IF SUCCESSFUL
4578 007236 105737 000470' TSTB .SYSTA
4579 007242 002447 BLT 20$
4580 007244 DIR$ #DDNENA ; ENTER NAME IN DIRECTORY.
007244 012746 000634' MOV #DDNENA,-(SP)
007250 104375 EMT 375
4581 007252 103434 BCS 10$ ; IF DIRECTORY OPERATION FAILED
4582 007254 105737 000470' TSTB .SYSTA ; WE MUST
4583 007260 002431 BLT 10$ ; RELEASE THE FILE.
4584 007262 DIR$ #DDNACE ; ACCESS THE FILE FOR EXTEND.
007262 012746 000664' MOV #DDNACE,-(SP)
007266 104375 EMT 375
4585 007270 103434 BCS 20$
4586 007272 105737 000470' TSTB .SYSTA
4587 007276 002431 BLT 20$
4588 007300 105237 000475' INCB .SYOSW ; OUTPUT FILE IS NOW OPEN.
4589 007304 012737 000001 001560' MOV #1,.SYOVB+2 ; WORKING ON FIRST BLOCK.
4590 007312 005037 001556' CLR .SYOVB
4591 007316 012737 001562' 001532' MOV #.SYOBF,.SYOBA ; INITIALIZE BLOCK
4592 007324 012737 001000 001534' MOV #S.YOL,.SYOBC
4593 007332 005037 001530' CLR .SYORC ; AND RECORD COUNTS,
4594 007336 005037 002616' CLR .SYATT+2 ; PLUS LARGEST RECORD SIZE.
4595 007342 RETURN
007342 000207 RTS PC
4596
4597 007344 10$: PUSH $DSW
007344 013746 000000G MOV $DSW,-(SP)
4598 007350 DIR$ #DDNDEL ; DELETE FILE (NOT IN DIRECTORY).
007350 012746 000712' MOV #DDNDEL,-(SP)
007354 104375 EMT 375
4599 007356 POP $DSW
007356 012637 000000G MOV (SP)+,$DSW
4600 007362 20$: CALLR $IOERR ; ENTER FAILED.
007362 000137 006610' JMP $IOERR
KLIDP -- FILE PURGE ROUTINE MACRO M1110 12-OCT-79 14:10 PAGE 104
$ENTER -- ENTER A NEW FILE
4602 .TITLE KLIDP -- FILE PURGE ROUTINE
4603 007366 IDENT$ 5,0
.IDENT /005000/
4604 ;
4605 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
4606 ;
4607 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
4608 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
4609 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
4610 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
4611 ;
4612 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
4613 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
4614 ; EQUIPMENT CORPORATION.
4615 ;
4616 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
4617 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
4618 ;
4619 ; VERSION 05-00
4620 ;
4621 ; ALAN D. PECKHAM 15-APR-77
4622 ;
4623 ; MODIFIED BY:
4624 ;
4625 ; FUNCTION: THIS ROUTINE PURGES THE FILE CURRENTLY OPEN. THE
4626 ; OUTPUT FILE IS MARKED FOR DELETION AND ITS FILE NAME
4627 ; IS REMOVED FROM THE DIRECTORY.
4628 ;
4629 ; LOCAL MACROS
4630 ;
4631 .MCALL QIOW$
4632 ;
4633 ; LOCAL DATA
4634 ;
4635 000740 .PSECT DATA,D
4636 000740 DDPDAI: QIOW$ IO.DAC,SYILUN,1 ; DE-ACCESS INPUT FILE.
000740 003 006 .BYTE 3,$$$ARG
000742 000000G .WORD IO.DAC
000744 000004 .WORD SYILUN
000746 001 000 .BYTE 1,
000750 000000 .WORD
000752 000000 .WORD
4637 000754 DDPDEL: QIOW$ IO.DEL,SYOLUN,1 ; MARK OUTPUT FILE FOR DELETE.
000754 003 006 .BYTE 3,$$$ARG
000756 000000G .WORD IO.DEL
000760 000005 .WORD SYOLUN
000762 001 000 .BYTE 1,
000764 000000 .WORD
000766 000000 .WORD
4638 000770 DDPDAO: QIOW$ IO.DAC,SYOLUN,1 ; DE-ACCESS OUTPUT FILE.
000770 003 006 .BYTE 3,$$$ARG
000772 000000G .WORD IO.DAC
000774 000005 .WORD SYOLUN
000776 001 000 .BYTE 1,
001000 000000 .WORD
001002 000000 .WORD
4639 001004 DDPRNA: QIOW$ IO.RNA,SYFLUN,1,,,,<,,,,,.SYFNB>
KLIDP -- FILE PURGE ROUTINE MACRO M1110 12-OCT-79 14:10 PAGE 104-1
$ENTER -- ENTER A NEW FILE
001004 003 014 .BYTE 3,$$$ARG
001006 000000G .WORD IO.RNA
001010 000006 .WORD SYFLUN
001012 001 000 .BYTE 1,
001014 000000 .WORD
001016 000000 .WORD
001020 000000 .WORD
001022 000000 .WORD
001024 000000 .WORD
001026 000000 .WORD
001030 000000 .WORD
001032 002562' .WORD .SYFNB
4640 ; REMOVE OUTPUT FILENAME FROM DIRECTORY.
4641 007366 .PSECT
KLIDP -- FILE PURGE ROUTINE MACRO M1110 12-OCT-79 14:10 PAGE 105
$PURGE -- PURGE FILES CURRENTLY OPEN
4643 .SBTTL $PURGE -- PURGE FILES CURRENTLY OPEN
4644 ;+
4645 ; CLOSE THE INPUT FILE AND DELETE THE CURRENT OUTPUT FILE.
4646 ; ALL ERRORS ARE IGNORED AND THE LUNS ARE ASSUMED FREED.
4647 ;
4648 ; NO INPUTS OR OUTPUTS
4649 ;-
4650
4651 007366 105737 000474' $PURGE::TSTB .SYISW ; IF INPUT FILE NOT OPEN
4652 007372 001405 BEQ 10$ ; LEAVE IT ALONE.
4653 007374 DIR$ #DDPDAI ; DE-ACCESS THE INPUT FILE.
007374 012746 000740' MOV #DDPDAI,-(SP)
007400 104375 EMT 375
4654 007402 105037 000474' CLRB .SYISW ; INPUT FILE NOW CLOSED.
4655 007406 105737 000475' 10$: TSTB .SYOSW ; IF OUTPUT FILE NO OPEN
4656 007412 001421 BEQ 20$ ; LEAVE IT ALONE.
4657 007414 DIR$ #DDPDEL ; MARK FOR DELETION AND
007414 012746 000754' MOV #DDPDEL,-(SP)
007420 104375 EMT 375
4658 007422 DIR$ #DDPDAO ; DE-ACCESS THE OUTPUT FILE.
007422 012746 000770' MOV #DDPDAO,-(SP)
007426 104375 EMT 375
4659 007430 PUSH R0
007430 010046 MOV R0,-(SP)
4660 007432 012700 001536' MOV #.SYOFN,R0 ; GET THE FILE NAME
4661 007436 CALL $SETFN ; AND
007436 004737 006546' JSR PC,$SETFN
4662 007442 POP R0
007442 012600 MOV (SP)+,R0
4663 007444 DIR$ #DDPRNA ; REMOVE FROM THE DIRECTORY.
007444 012746 001004' MOV #DDPRNA,-(SP)
007450 104375 EMT 375
4664 007452 105037 000475' CLRB .SYOSW ; OUTPUT FILE NOW CLOSED.
4665 007456 20$: RETURN
007456 000207 RTS PC
KLIDR -- RECORD READ ROUTINES MACRO M1110 12-OCT-79 14:10 PAGE 106
$PURGE -- PURGE FILES CURRENTLY OPEN
4667 .TITLE KLIDR -- RECORD READ ROUTINES
4668 007460 IDENT$ 5,0
.IDENT /005000/
4669 ;
4670 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
4671 ;
4672 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
4673 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
4674 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
4675 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
4676 ;
4677 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
4678 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
4679 ; EQUIPMENT CORPORATION.
4680 ;
4681 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
4682 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
4683 ;
4684 ; VERSION 05-00
4685 ;
4686 ; ALAN D. PECKHAM 15-APR-77
4687 ;
4688 ; MODIFIED BY:
4689 ;
4690 ; FUNCTION: THIS MODULE CONTAINS ROUTINES WHICH FACILITATE THE
4691 ; READING OF RSX-BINARY RECORDS FROM THE CURRENTLY
4692 ; OPEN FILE.
4693 ;
4694 ; LOCAL MACROS
4695 ;
4696 .MCALL QIOW$S
4697 ;
4698 ; LOCAL DATA
4699 ;
4700 002075 .PSECT TEXT,D
4701 002075 TDRRDE:
4702 002075 ERROR <READ ERROR>
002075 077 040 122 .ASCIZ \? READ ERROR\
002100 105 101 104
002103 040 105 122
002106 122 117 122
002111 000
4703 002112 TDRRLE:
4704 002112 ERROR <INPUT RECORD LENGTH ERROR>
002112 077 040 111 .ASCIZ \? INPUT RECORD LENGTH ERROR\
002115 116 120 125
002120 124 040 122
002123 105 103 117
002126 122 104 040
002131 114 105 116
002134 107 124 110
002137 040 105 122
002142 122 117 122
002145 000
4705 007460 .PSECT
KLIDR -- RECORD READ ROUTINES MACRO M1110 12-OCT-79 14:10 PAGE 107
$READC -- START READING A RECORD
4707 .SBTTL $READC -- START READING A RECORD
4708 ;+
4709 ; READ THE RECORD TYPE FOR THE NEXT RECORD. IF THE PREVIOUS RECORD
4710 ; HAS NOT BEEN TOTALLY READ IN, SIGNAL ERROR. SAVE THE BYTE COUNT
4711 ; TO KEEP TRACK OF HOW MANY BYTES OF THE RECORD HAVE BEEN READ.
4712 ;
4713 ; NO INPUTS:
4714 ;
4715 ; OUTPUTS:
4716 ; R0 - TYPE CODE OF NEW RECORD.
4717 ; .SYIRC - COUNT OF BYTES REMAINING IN RECORD.
4718 ; CARRY IS SET IF LENGTH OR READ ERROR AND MESSAGE IS DISPLAYED.
4719 ;-
4720
4721 007460 $READC::
4722 007460 005737 000476' TST .SYIRC ; IF LAST RECORD IS NOT FINISHED,
4723 007464 001116 BNE LDRER ; THEN ERROR.
4724 007466 10$:
4725 007466 012737 000003 000476' MOV #3,.SYIRC ; SET UP DUMMY COUNT AND
4726 007474 CALL $READW ; READ IN BYTE COUNT FOR NEXT RECORD.
007474 004737 007566' JSR PC,$READW
4727 007500 103405 BCS 20$
4728 007502 010037 000476' MOV R0,.SYIRC ; STORE BYTE COUNT AND
4729 007506 001767 BEQ 10$ ; (NULL RECORD)
4730 007510 CALLR $READW ; READ IN NEXT WORD.
007510 000137 007566' JMP $READW
4731 ;
4732 007514 20$:
4733 007514 RETURN
007514 000207 RTS PC
KLIDR -- RECORD READ ROUTINES MACRO M1110 12-OCT-79 14:10 PAGE 108
$READS -- SKIP THE CURRENT RECORD
4735 .SBTTL $READS -- SKIP THE CURRENT RECORD
4736 ;+
4737 ; SKIP OVER THE REST OF THE CURRENT AND POSITION TO THE NEXT RECORD.
4738 ; IF NO RECORD IS BEING PROCESSED (RECORD COUNT=0), NO ACTION IS TAKEN.
4739 ;
4740 ; NO INPUTS
4741 ;
4742 ; OUTPUTS:
4743 ; CARRY IS SET IF ERROR DURING READ AND MESSAGE IS DISPLAYED.
4744 ;-
4745
4746 007516 $READS::
4747 007516 023737 000476' 000502' CMP .SYIRC,.SYIBC ; IF RECORD IS WITHIN BLOCK
4748 007524 003407 BLE 10$ ; THEN GO PAST IT,
4749 007526 163737 000502' 000476' SUB .SYIBC,.SYIRC ; OTHERWISE PASS PART OF THE RECORD,
4750 007534 CALL $READ ; GET NEXT BLOCK,
007534 004737 007736' JSR PC,$READ
4751 007540 103366 BCC $READS ; AND SEE IF RECORD IS DEPLETED.
4752 007542 RETURN
007542 000207 RTS PC
4753 007544 10$:
4754 007544 063737 000476' 000500' ADD .SYIRC,.SYIBA ; PUSH POINTERS PAST RECORD.
4755 007552 163737 000476' 000502' SUB .SYIRC,.SYIBC
4756 007560 005037 000476' CLR .SYIRC ; NO MORE RECORD !
4757 007564 RETURN
007564 000207 RTS PC
KLIDR -- RECORD READ ROUTINES MACRO M1110 12-OCT-79 14:10 PAGE 109
$READW -- READ A WORD
4759 .SBTTL $READW -- READ A WORD
4760 ;+
4761 ; READ THE NEXT WORD FROM THE CURRENT RECORD. IF CURRENTLY ON
4762 ; AN ODD BOUNDARY, SKIP OVER THE CURRENT BYTE TO MAKE IT EVEN.
4763 ;
4764 ; NO INPUTS
4765 ;
4766 ; OUTPUTS:
4767 ; R0 - THE WORD READ.
4768 ; CARRY IS SET ON RECORD OVERRUN OR READ ERROR AND MESSAGE IS DISPLAYED.
4769 ;-
4770
4771 007566 $READW::
4772 007566 032737 000001 000500' BIT #1,.SYIBA ; MAKE SURE WE ARE
4773 007574 001406 BEQ 10$ ; ON A WORD BOUNDARY.
4774 007576 005337 000476' DEC .SYIRC
4775 007602 005237 000500' INC .SYIBA
4776 007606 005337 000502' DEC .SYIBC
4777 007612 10$:
4778 007612 162737 000002 000476' SUB #2,.SYIRC ; UPDATE RECORD COUNT AND
4779 007620 002440 BLT LDRER ; IF IT BOTTOMS, ERROR.
4780 007622 005737 000502' TST .SYIBC ; IF WE ARE AT THE END
4781 007626 003003 BGT 20$ ; OF THE BUFFER
4782 007630 CALL $READ ; THEN READ ANOTHER ONE.
007630 004737 007736' JSR PC,$READ
4783 007634 103411 BCS 30$
4784 007636 20$:
4785 007636 017700 000500' MOV @.SYIBA,R0 ; PICK UP WORD
4786 007642 062737 000002 000500' ADD #2,.SYIBA ; BUMP ADDRESS
4787 007650 162737 000002 000502' SUB #2,.SYIBC ; AND BYTE COUNT.
4788 007656 000241 CLC
4789 007660 30$:
4790 007660 RETURN
007660 000207 RTS PC
KLIDR -- RECORD READ ROUTINES MACRO M1110 12-OCT-79 14:10 PAGE 110
$READB -- READ A BYTE
4792 .SBTTL $READB -- READ A BYTE
4793 ;+
4794 ; READ THE NEXT BYTE FROM THE CURRENT RECORD.
4795 ;
4796 ; NO INPUTS
4797 ;
4798 ; OUTPUTS:
4799 ; R0 - THE BYTE READ.
4800 ; CARRY IS SET ON RECORD OVERRUN OR READ ERROR AND A MESSAGE IS DISPLAYED.
4801 ;-
4802
4803 007662 $READB::
4804 007662 005337 000476' DEC .SYIRC ; UPDATE RECORD COUNT AND
4805 007666 002415 BLT LDRER ; IF IT BOTTOMS, ERROR.
4806 007670 005737 000502' TST .SYIBC ; IF WE ARE AT THE END
4807 007674 003003 BGT 10$ ; OF THE BUFFER
4808 007676 CALL $READ ; THEN READ ANOTHER ONE.
007676 004737 007736' JSR PC,$READ
4809 007702 103406 BCS 20$
4810 007704 10$:
4811 007704 117700 000500' MOVB @.SYIBA,R0 ; PICK UP BYTE
4812 007710 005237 000500' INC .SYIBA ; BUMP ADDRESS
4813 007714 005337 000502' DEC .SYIBC ; AND BYTE COUNT.
4814 007720 20$:
4815 007720 RETURN
007720 000207 RTS PC
4816
4817 007722 LDRER:
4818 007722 PRINT #TDRRLE ; RECORD OVERRUN OR UNDERRUN.
007722 012700 002112' MOV #TDRRLE,R0
007726 004737 025164' JSR PC,$TTMSG
4819 007732 000261 SEC
4820 007734 RETURN
007734 000207 RTS PC
KLIDR -- RECORD READ ROUTINES MACRO M1110 12-OCT-79 14:10 PAGE 111
$READ -- READ NEXT VIRTUAL BLOCK
4822 .SBTTL $READ -- READ NEXT VIRTUAL BLOCK
4823 ;+
4824 ; READ THE NEXT BLOCK FROM THE SYSTEM DEVICE AND RESET BUFFER PARAMETERS.
4825 ;
4826 ; NO INPUTS
4827 ;
4828 ; OUTPUTS:
4829 ; .SYIBA - POINTS TO THE BEGINING OF THE BUFFER READ.
4830 ; .SYIBC - COUNT OF BYTES READ.
4831 ; CARRY IS SET ON READ ERROR AND MESSAGE IS DISPLAYED.
4832 ;-
4833
4834 007736 $READ::
4835 007736 062737 000001 000526' ADD #1,.SYIVB+2 ; GET NEXT BLOCK.
4836 007744 005537 000524' ADC .SYIVB
4837
4838 ; READ VIRTUAL BLOCK
4839
4840 007750 QIOW$S #IO.RVB,#SYILUN,#1,,#.SYSTA,,<#.SYIBF,#S.YIL,,.SYIVB,.SYIVB+2>
007750 013746 000526' MOV .SYIVB+2,-(SP)
007754 013746 000524' MOV .SYIVB,-(SP)
007760 005046 CLR -(SP)
007762 012746 001000 MOV #S.YIL,-(SP)
007766 012746 000530' MOV #.SYIBF,-(SP)
007772 005046 CLR -(SP)
007774 012746 000470' MOV #.SYSTA,-(SP)
010000 005046 CLR -(SP)
010002 112716 000001 MOVB #1,(SP)
010006 012746 000004 MOV #SYILUN,-(SP)
010012 012746 000000G MOV #IO.RVB,-(SP)
010016 012746 MOV (PC)+,-(SP)
010020 003 013 .BYTE 3,$$$T1
010022 104375 EMT 375
4841 010024 103412 BCS 10$
4842 010026 105737 000470' TSTB .SYSTA
4843 010032 002407 BLT 10$ ; READ FAILED.
4844 010034 012737 000530' 000500' MOV #.SYIBF,.SYIBA ; SAVE BUFFER ADR
4845 010042 013737 000472' 000502' MOV .SYSTA+2,.SYIBC ; AND BYTE COUNT
4846 010050 RETURN
010050 000207 RTS PC
4847
4848 010052 10$:
4849 010052 PRINT #TDRRDE ; PRINT ERROR MESSAGE.
010052 012700 002075' MOV #TDRRDE,R0
010056 004737 025164' JSR PC,$TTMSG
4850 010062 000261 SEC
4851 010064 RETURN
010064 000207 RTS PC
KLIDW -- RECORD WRITE ROUTINES MACRO M1110 12-OCT-79 14:10 PAGE 112
$READ -- READ NEXT VIRTUAL BLOCK
4853 .TITLE KLIDW -- RECORD WRITE ROUTINES
4854 010066 IDENT$ 5,0
.IDENT /005000/
4855 ;
4856 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
4857 ;
4858 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
4859 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
4860 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
4861 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
4862 ;
4863 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
4864 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
4865 ; EQUIPMENT CORPORATION.
4866 ;
4867 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
4868 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
4869 ;
4870 ; VERSION 05-00
4871 ;
4872 ; ALAN D. PECKHAM 15-APR-77
4873 ;
4874 ; MODIFIED BY:
4875 ;
4876 ; FUNCTION: THIS MODULE CONTAINS ROUTINES WHICH FACILITATE THE
4877 ; WRITING OF RSX-BINARY RECORDS TO THE CURRENTLY
4878 ; OPEN FILE.
4879 ;
4880 ; LOCAL MACROS
4881 ;
4882 .MCALL QIOW$S
4883 ;
4884 ; LOCAL DATA
4885 ;
4886 002146 .PSECT TEXT,D
4887 002146 TDWWRE:
4888 002146 ERROR <WRITE ERROR>
002146 077 040 127 .ASCIZ \? WRITE ERROR\
002151 122 111 124
002154 105 040 105
002157 122 122 117
002162 122 000
4889 002164 TDWRLE:
4890 002164 ERROR <OUTPUT RECORD LENGTH ERROR>
002164 077 040 117 .ASCIZ \? OUTPUT RECORD LENGTH ERROR\
002167 125 124 120
002172 125 124 040
002175 122 105 103
002200 117 122 104
002203 040 114 105
002206 116 107 124
002211 110 040 105
002214 122 122 117
002217 122 000
4891 010066 .PSECT
KLIDW -- RECORD WRITE ROUTINES MACRO M1110 12-OCT-79 14:10 PAGE 113
$WRITC -- START WRITING A RECORD
4893 .SBTTL $WRITC -- START WRITING A RECORD
4894 ;+
4895 ; START WRITING A RECORD OF GIVEN LENGTH. IF PREVIOUS RECORD UNFINISHED
4896 ; THE SIGNAL ERROR.
4897 ;
4898 ; INPUTS:
4899 ; R0 - LENGTH OF RECORD TO BE WRITTEN.
4900 ;
4901 ; OUTPUTS:
4902 ; CARRY SET IF LAST RECORD UNFINISHED OR WRITE ERROR AND MESSAGE
4903 ; IS DISPLAYED.
4904 ;-
4905
4906 010066 $WRITC::
4907 010066 005737 001530' TST .SYORC ; IF LAST RECORD NOT FINISHED
4908 010072 001034 BNE LDWER ; SIGNAL ERROR.
4909 010074 020037 002616' CMP R0,.SYATT+2 ; CHECK IF LARGEST RECORD WRITTEN
4910 010100 101402 BLOS 10$ ; AND
4911 010102 010037 002616' MOV R0,.SYATT+2 ; RECORD IF LARGER.
4912 010106 10$:
4913 010106 012737 000003 001530' MOV #3,.SYORC ; SET UP DUMMY COUNT,
4914 010114 CALL $WRITW ; WRITE IN BYTE COUNT FOR NEXT RECORD,
010114 004737 010200' JSR PC,$WRITW
4915 010120 103402 BCS 20$
4916 010122 010037 001530' MOV R0,.SYORC ; AND SAVE FOR RECORD COUNT.
4917 010126 20$:
4918 010126 RETURN
010126 000207 RTS PC
KLIDW -- RECORD WRITE ROUTINES MACRO M1110 12-OCT-79 14:10 PAGE 114
$WRITS -- ZERO REMAINDER OF CURRENT BLOCK
4920 .SBTTL $WRITS -- ZERO REMAINDER OF CURRENT BLOCK
4921 ;+
4922 ; CLEAR OUT THE REST OF THE CURRENT BLOCK AND WRITE IT. THIS ROUTINE IS
4923 ; USED TO WRITE OUT THE LAST RECORD INTO THE OUTPUT FILE.
4924 ;
4925 ; NO INPUTS
4926 ;
4927 ; OUTPUTS:
4928 ; CARRY IS SET IF LAST RECORD IS UNFINISHED OR WRITE ERROR AND
4929 ; MESSAGE IS DISPLAYED.
4930 ;-
4931
4932 010130 $WRITS::
4933 010130 005737 001530' TST .SYORC ; IF RECORD NOT FINISHED
4934 010134 001013 BNE LDWER ; THEN THERE IS PROBLEM.
4935 010136 10$:
4936 010136 022737 000777 001534' CMP #S.YOL-1,.SYOBC ; ARE WE AT NEW PAGE ?
4937 010144 003406 BLE 20$ ; YES, QUIT (CARRY IS CLEAR)
4938 010146 005237 001530' INC .SYORC ; SET UP DUMMY COUNT
4939 010152 005000 CLR R0 ; AND WRITE A ZERO
4940 010154 CALL $WRITB
010154 004737 010274' JSR PC,$WRITB
4941 010160 103366 BCC 10$ ; AND CHECK AGAIN.
4942 010162 20$:
4943 010162 RETURN
010162 000207 RTS PC
4944
4945 010164 LDWER:
4946 010164 PRINT #TDWRLE ; RECORD OVERRUN OR UNDERRUN.
010164 012700 002164' MOV #TDWRLE,R0
010170 004737 025164' JSR PC,$TTMSG
4947 010174 000261 SEC
4948 010176 RETURN
010176 000207 RTS PC
KLIDW -- RECORD WRITE ROUTINES MACRO M1110 12-OCT-79 14:10 PAGE 115
$WRITW -- WRITE A WORD
4950 .SBTTL $WRITW -- WRITE A WORD
4951 ;+
4952 ; WRITE THE NEXT WORD INTO THE OUTPUT RECORD. IF ON AN ODD BOUNDRY
4953 ; THE SKIP A BYTE TO WRITE THE WORD ON AN EVEN WORD. SIGNAL ERROR
4954 ; IF RECORD OVERFLOW.
4955 ;
4956 ; INPUTS:
4957 ; R0 - THE WORD TO WRITE.
4958 ;
4959 ; OUTPUTS:
4960 ; CARRY IS SET IF WRITE ERROR AND MESSAGE IS DISPLAYED.
4961 ;-
4962
4963 010200 $WRITW::
4964 010200 032737 000001 001532' BIT #1,.SYOBA ; MAKE SURE WE ARE
4965 010206 001406 BEQ 10$ ; ON A WORD BOUNDRY.
4966 010210 005337 001530' DEC .SYORC
4967 010214 005237 001532' INC .SYOBA
4968 010220 005337 001534' DEC .SYOBC
4969 010224 10$:
4970 010224 162737 000002 001530' SUB #2,.SYORC ; UPDATE RECORD COUNT AND
4971 010232 002754 BLT LDWER ; IF IT BOTTOMS, ERROR.
4972 010234 005737 001534' TST .SYOBC ; IF WE ARE AT THE END
4973 010240 003003 BGT 20$ ; OF THE BUFFER
4974 010242 CALL $WRITE ; THEN WRITE IT.
010242 004737 010334' JSR PC,$WRITE
4975 010246 103411 BCS 30$
4976 010250 20$:
4977 010250 010077 001532' MOV R0,@.SYOBA ; STICK IN WORD
4978 010254 062737 000002 001532' ADD #2,.SYOBA ; BUMP ADDRESS
4979 010262 162737 000002 001534' SUB #2,.SYOBC ; AND BYTE COUNT.
4980 010270 000241 CLC
4981 010272 30$:
4982 010272 RETURN
010272 000207 RTS PC
KLIDW -- RECORD WRITE ROUTINES MACRO M1110 12-OCT-79 14:10 PAGE 116
$WRITB -- WRITE A BYTE
4984 .SBTTL $WRITB -- WRITE A BYTE
4985 ;+
4986 ; WRITE A BYTE INTO THE CURRENT RECORD. SIGNAL ERROR IF RECORD OVERFLOW.
4987 ;
4988 ; INPUTS:
4989 ; R0 - BYTE TO WRITE.
4990 ;
4991 ; OUTPUTS:
4992 ; CARRY IS SET IF RECORD OVERFLOW OR WRITE ERROR AND MESSAGE
4993 ; IS DISPLAYED.
4994 ;-
4995
4996 010274 $WRITB::
4997 010274 005337 001530' DEC .SYORC ; UPDATE RECORD COUNT AND
4998 010300 002731 BLT LDWER ; IF IT BOTTOMS, ERROR.
4999 010302 005737 001534' TST .SYOBC ; IF WE ARE AT THE END
5000 010306 003003 BGT 10$ ; OF THE BUFFER
5001 010310 CALL $WRITE ; THEN WRITE IT.
010310 004737 010334' JSR PC,$WRITE
5002 010314 103406 BCS 20$
5003 010316 10$:
5004 010316 110077 001532' MOVB R0,@.SYOBA ; STICK IN BYTE
5005 010322 005237 001532' INC .SYOBA ; BUMP ADDRESS
5006 010326 005337 001534' DEC .SYOBC ; AND BYTE COUNT.
5007 010332 20$:
5008 010332 RETURN
010332 000207 RTS PC
KLIDW -- RECORD WRITE ROUTINES MACRO M1110 12-OCT-79 14:10 PAGE 117
$WRITE -- WRITE NEXT VIRTUAL BLOCK
5010 .SBTTL $WRITE -- WRITE NEXT VIRTUAL BLOCK
5011 ;+
5012 ; WRITE THE NEXT BLOCK TO THE OUTPUT FILE. IF END-OF-FILE, THEN
5013 ; EXTEND THE FILE AND TRY TO WRITE THE BLOCK AGAIN.
5014 ;
5015 ; INPUTS:
5016 ; .SYOBF - BLOCK OF "S.YOL" BYTES TO WRITE.
5017 ;
5018 ; OUTPUTS:
5019 ; .SYOBA - ADDRESS OF NEW BUFFER TO FILL
5020 ; .SYOBC - SIZE OF BUFFER IN BYTES.
5021 ; CARRY IS SET ON WRITE OR EXTEND ERROR AND MESSAGE IS DISPLAYED.
5022 ;-
5023
5024 010334 $WRITE::
5025 010334 QIOW$S #IO.WVB,#SYOLUN,#1,,#.SYSTA,,<#.SYOBF,#S.YOL,,.SYOVB,.SYOVB+2>
010334 013746 001560' MOV .SYOVB+2,-(SP)
010340 013746 001556' MOV .SYOVB,-(SP)
010344 005046 CLR -(SP)
010346 012746 001000 MOV #S.YOL,-(SP)
010352 012746 001562' MOV #.SYOBF,-(SP)
010356 005046 CLR -(SP)
010360 012746 000470' MOV #.SYSTA,-(SP)
010364 005046 CLR -(SP)
010366 112716 000001 MOVB #1,(SP)
010372 012746 000005 MOV #SYOLUN,-(SP)
010376 012746 000000G MOV #IO.WVB,-(SP)
010402 012746 MOV (PC)+,-(SP)
010404 003 013 .BYTE 3,$$$T1
010406 104375 EMT 375
5026 010410 103427 BCS 20$
5027 010412 105737 000470' TSTB .SYSTA
5028 010416 002414 BLT 10$ ; WRITE FAILED.
5029 010420 062737 000001 001560' ADD #1,.SYOVB+2 ; SET UP FOR NEXT BLOCK.
5030 010426 005537 001556' ADC .SYOVB ; (CARRY SHOULD BE CLEAR)
5031 010432 012737 001562' 001532' MOV #.SYOBF,.SYOBA ; RESET BUFFER ADDRESS
5032 010440 012737 001000 001534' MOV #S.YOL,.SYOBC ; AND BYTE COUNT.
5033 010446 RETURN
010446 000207 RTS PC
5034 010450 10$:
5035 010450 122737 000000G 000470' CMPB #IE.EOF,.SYSTA ; IS THE FILE TOO SMALL ?
5036 010456 001004 BNE 20$ ; NO, THIS IS TRULY AN ERROR.
5037 010460 CALL $EXTEND ; OTHERWISE EXTEND THE FILE
010460 004737 010504' JSR PC,$EXTEND
5038 010464 103323 BCC $WRITE ; AND WRITE THE BLOCK AGAIN.
5039 010466 RETURN
010466 000207 RTS PC
5040 010470 20$:
5041 010470 PRINT #TDWWRE ; PRINT IT.
010470 012700 002146' MOV #TDWWRE,R0
010474 004737 025164' JSR PC,$TTMSG
5042 010500 000261 SEC
5043 010502 RETURN
010502 000207 RTS PC
KLIDX -- EXTEND AN OUTPUT FILE MACRO M1110 12-OCT-79 14:10 PAGE 118
$WRITE -- WRITE NEXT VIRTUAL BLOCK
5045 .TITLE KLIDX -- EXTEND AN OUTPUT FILE BY ONE BLOCK
5046 010504 IDENT$ 5,0
.IDENT /005000/
5047 ;
5048 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
5049 ;
5050 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
5051 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
5052 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
5053 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
5054 ;
5055 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
5056 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
5057 ; EQUIPMENT CORPORATION.
5058 ;
5059 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
5060 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
5061 ;
5062 ; VERSION 05-00
5063 ;
5064 ; ALAN D. PECKHAM 15-APR-77
5065 ;
5066 ; MODIFIED BY:
5067 ;
5068 ; FUNCTION: THIS ROUTINE EXTENDS THE ALLOCATION OF THE CURRENTLY OPEN
5069 ; FILE BY ONE BLOCK.
5070 ;
5071 ; LOCAL MACROS
5072 ;
5073 .MCALL QIOW$
5074 ;
5075 ; LOCAL DATA
5076 ;
5077 001034 .PSECT DATA,D
5078 001034 DDXEXT: QIOW$ IO.EXT,SYOLUN,1,,.SYSTA,,<,,BIT15,1>
001034 003 012 .BYTE 3,$$$ARG
001036 000000G .WORD IO.EXT
001040 000005 .WORD SYOLUN
001042 001 000 .BYTE 1,
001044 000470' .WORD .SYSTA
001046 000000 .WORD
001050 000000 .WORD
001052 000000 .WORD
001054 100000 .WORD BIT15
001056 000001 .WORD 1
5079 010504 .PSECT
KLIDX -- EXTEND AN OUTPUT FILE MACRO M1110 12-OCT-79 14:10 PAGE 119
$EXTEND -- EXTEND OUTPUT FILE BY ONE BLOCK
5081 .SBTTL $EXTEND -- EXTEND OUTPUT FILE BY ONE BLOCK
5082 ;+
5083 ; EXTEND THE OUTPUT FILE BY ONE BLOCK.
5084 ;
5085 ; NO INPUTS
5086 ;
5087 ; OUTPUTS:
5088 ; CARRY SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
5089 ;-
5090
5091 010504 $EXTEND::DIR$ #DDXEXT ; EXTEND THE FILE.
010504 012746 001034' MOV #DDXEXT,-(SP)
010510 104375 EMT 375
5092 010512 103411 BCS 10$
5093 010514 105737 000470' TSTB .SYSTA
5094 010520 002406 BLT 10$
5095 010522 062737 000001 002622' ADD #1,.SYATT+6 ; ONE MORE BLOCK ALLOCATED.
5096 010530 005537 002620' ADC .SYATT+4 ; (CARRY SHOULD BE CLEAR)
5097 010534 RETURN
010534 000207 RTS PC
5098
5099 010536 012700 001536' 10$: MOV #.SYOFN,R0 ; EXTEND FAILED.
5100 010542 CALLR $IOERR
010542 000137 006610' JMP $IOERR
KLIFC -- C-RAM READ/WRITE MACRO M1110 12-OCT-79 14:10 PAGE 120
$EXTEND -- EXTEND OUTPUT FILE BY ONE BLOCK
5102 .TITLE KLIFC -- C-RAM READ/WRITE
5103 010546 IDENT$ 5,0
.IDENT /005000/
5104 ;
5105 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
5106 ;
5107 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
5108 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
5109 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
5110 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
5111 ;
5112 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
5113 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
5114 ; EQUIPMENT CORPORATION.
5115 ;
5116 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
5117 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
5118 ;
5119 ; VERSION 05-00
5120 ;
5121 ; ALAN D. PECKHAM 11-APR-77
5122 ;
5123 ; MODIFIED BY:
5124 ;
5125 ; FUNCTION: THIS MODULE CONTAINS THE ROUTINES TO WORK ON THE C-RAMS.
5126 ; THE C-RAM DATA IS WORKED WITH IN 6-WORD COMPRESSED FORMAT, AS
5127 ; SPECIFIED IN THE KLDCP DOCUMENTATION.
5128 ;
5129 ; LOCAL DATA
5130 ;
5131 001060 .PSECT DATA,D
5132 001060 147000 DFCRFL: .WORD .RCRM1 ; READ C-RAM BITS 0-19
5133 001062 146000 .WORD .RCRM2 ; READ C-RAM BITS 20-39
5134 001064 145000 .WORD .RCRM3 ; READ C-RAM BITS 40-59
5135 001066 144000 .WORD .RCRM4 ; READ C-RAM BITS 60-79
5136 001070 057000 DFCWFL: .WORD .LCRM1 ; C-RAM WRITE FUNCTION LIST.
5137 001072 056000 .WORD .LCRM2
5138 001074 055000 .WORD .LCRM3
5139 001076 054000 .WORD .LCRM4
5140 .EVEN ; DFCBF MUST BE ON A WORD BOUNDRY.
5141 001100 DFCBF: WD36$ 0 0 ; DATA BUFFER.
001100 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
001103 000 000 .BYTE BY$$3,BY$$4
5142 001105 000 DFCFL2: .BYTE 0
5143 001106 000 DFCFL3: .BYTE 0
5144 001107 DFCABF: WD36$ 0 0 ; WORK AREA.
001107 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
001112 000 000 .BYTE BY$$3,BY$$4
5145 .EVEN
5146 010546 .PSECT
KLIFC -- C-RAM READ/WRITE MACRO M1110 12-OCT-79 14:10 PAGE 121
$WCRAM -- WRITE C-RAM WORD
5148 .SBTTL $WCRAM -- WRITE C-RAM WORD
5149 ;+
5150 ; WRITE COMPRESSED C-RAM WORD POINTED TO BY R1 TO C-RAM LOCATION
5151 ; ADDRESSED BY R0.
5152 ;
5153 ; INPUTS:
5154 ; R1 - POINTER TO 6 WORDS OF DATA TO WRITE.
5155 ; R0 - C-RAM ADDRESS TO WRITE TO.
5156 ;
5157 ; OUTPUT:
5158 ; CARRY IS SET IF ERROR OCCURS.
5159 ;-
5160
5161 010546 004537 021764' $WCRAM::JSR R5,$RSAVE
5162 010552 TRACK CW
010552 004037 010564' JSR R0,64$
010556 053503 .WORD "CW
010560 000000 .WORD
010562 000000 .WORD
010564 004737 022032' 64$: JSR PC,$TRACK
010570 012600 MOV (SP)+,R0
5163 010572 010102 MOV R1,R2 ; GET DATA ADDRESS
5164 010574 CALL $ACRAM ; WRITE C-RAM ADDRESS
010574 004737 011430' JSR PC,$ACRAM
5165 010600 103511 BCS 70$ ; RAM ERROR
5166 010602 012704 000006 MOV #6,R4 ; 4 LOOPS PER C-RAM WORD
5167 010606 005003 CLR R3 ; CLEAR BOUNDRY FLAG
5168 010610 012701 001100' 10$: MOV #DFCBF,R1 ; SET UP WORK AREA
5169 010614 112221 MOVB (R2)+,(R1)+ ; REAL DATA TO WORK AREA
5170 010616 112221 MOVB (R2)+,(R1)+
5171 010620 111221 MOVB @R2,(R1)+
5172 010622 005703 TST R3 ; SEE IF BITS ON WORD BOUNDARY
5173 010624 001411 BEQ 30$ ; YES
5174 010626 005202 INC R2 ; INCREASE DTA ADR PTR
5175 010630 012705 000004 MOV #4,R5 ; # OF SHIFTS REQUIRED
5176 010634 012701 001103' 20$: MOV #DFCBF+3,R1 ; POINT TO TOP OF WORK AREA
5177 010640 106041 RORB -(R1) ; RIGHT SHIFT ONE BYTE
5178 010642 106041 RORB -(R1)
5179 010644 106041 RORB -(R1)
5180 010646 077506 SOB R5,20$ ; LOOP BACK IF NOT DONE
5181 010650 005103 30$: COM R3 ; CHANGE BOUNDARY FLAG
5182 010652 042737 177760 001102' BIC #177760,DFCBF+2 ; ONLY FOUR BITS COUNT
5183 010660 013700 001100' MOV DFCBF,R0 ; GET UNPACED DATA
5184 010664 113737 001102' 001103' MOVB DFCBF+2,DFCBF+3 ; PUT C-RAM 0-3 BITS INTO CORRECT CORE
5185 010672 005001 CLR R1 ; INIT R1
5186 010674 000261 SEC ; C-BIT IS SET AS A FLAG
5187 010676 012705 000005 40$: MOV #5,R5 ; 4 SHIFTS BETWEEN BALNKS
5188 010702 006001 50$: ROR R1 ; NEW DATA LEFT END OF DESTINATION
5189 010704 103406 BCS 60$ ; IF FLAG FALLS OUT, DONE
5190 010706 006000 ROR R0 ; ROTATE SOURCE BITS RIGHT
5191 010710 077504 SOB R5,50$ ; SHIFT 4 TIMES?
5192 010712 006100 ROL R0 ; REPAIR ANY DAMAGE
5193 010714 000241 CLC ; CLEAR C-BIT AS FLAG
5194 010716 006001 ROR R1 ; AND ROLL ZEROES
5195 010720 000766 BR 40$ ; CONTINUE
5196 010722 000241 60$: CLC ; CLEAR C-BIT AS FLAG
5197 010724 006100 ROL R0 ; BITS 4-7
KLIFC -- C-RAM READ/WRITE MACRO M1110 12-OCT-79 14:10 PAGE 121-1
$WCRAM -- WRITE C-RAM WORD
5198 010726 006100 ROL R0 ; MUST BE CORRECTED
5199 010730 010137 001100' MOV R1,DFCBF ; BITS 8-19 INTO CORE
5200 010734 110037 001102' MOVB R0,DFCBF+2 ; BITS 4-7 INTO CORE
5201 010740 016400 001070' MOV DFCWFL(R4),R0 ; GET WRITE FUNCTION LIST
5202 010744 012701 001100' MOV #DFCBF,R1 ; ADDRESS OF DATA
5203 010750 CALL $DFWR ; WRITE TO C-RAM
010750 004737 013020' JSR PC,$DFWR
5204 010754 103423 BCS 70$ ; TIME OUT ERROR
5205 010756 162704 000002 SUB #2,R4 ; ENTIRE RAM WORD DONE?
5206 010762 002312 BGE 10$ ; NOT YET
5207 010764 111237 001104' MOVB @R2,DFCBF+4 ; GET DATA FOR DEPOSIT
5208 010770 106237 001104' ASRB DFCBF+4 ; SHIFT DATA
5209 010774 106037 001103' RORB DFCBF+3 ; TO EBUS BITS
5210 011000 106237 001104' ASRB DFCBF+4
5211 011004 106037 001103' RORB DFCBF+3
5212 011010 012701 001100' MOV #DFCBF,R1 ; DATA ADDRESS IN R1
5213 011014 012700 053000 MOV #.LCRM5,R0 ; DISP 00-04
5214 011020 CALLR $DFWR
011020 000137 013020' JMP $DFWR
5215 011024 70$: RETURN
011024 000207 RTS PC
KLIFC -- C-RAM READ/WRITE MACRO M1110 12-OCT-79 14:10 PAGE 122
$RCRAM -- READ C-RAM WORD
5217 .SBTTL $RCRAM -- READ C-RAM WORD
5218 ;+
5219 ; READ C-RAM WORD ADDRESSED BY R0 AND COMPRESS IT INTO AREA POINTED
5220 ; TO BY R1.
5221 ;
5222 ; INPUTS:
5223 ; R1 - 6 WORD BUFFER TO RECIEVE COMPRESSED C-RAM WORD.
5224 ; R0 - C-RAM ADDRESS OF WORD TO READ.
5225 ;
5226 ; OUTPUT:
5227 ; CARRY SET IF ERROR OCCURS.
5228 ;-
5229
5230 011026 004537 021764' $RCRAM::JSR R5,$RSAVE
5231 011032 TRACK CR
011032 004037 011044' JSR R0,64$
011036 051103 .WORD "CR
011040 000000 .WORD
011042 000000 .WORD
011044 004737 022032' 64$: JSR PC,$TRACK
011050 012600 MOV (SP)+,R0
5232 011052 CALL $ACRAM ; SET EBOX TO C-RAM ADDRESS ZERO.
011052 004737 011430' JSR PC,$ACRAM
5233 011056 103421 BCS 30$ ; ERROR
5234 011060 012700 003000 MOV #.SECLK,R0 ; SINGLE STEP EBUS CLOCK
5235 011064 CALL $DFXC
011064 004737 013222' JSR PC,$DFXC
5236 011070 103414 BCS 30$ ; ERROR
5237 011072 016603 000004 10$: MOV 4(SP),R3 ; GET BUF ADR FOR C-RAM CONTENTS
5238 011076 062703 000012 ADD #12,R3 ; POINT TO END.
5239 011102 012704 001060' MOV #DFCRFL,R4
5240 011106 012400 20$: MOV (R4)+,R0 ; DIAG FUNCTIONS
5241 011110 012701 001100' MOV #DFCBF,R1 ; DATA HOLDING AREA
5242 011114 CALL $DFRD ; READ DATA
011114 004737 012706' JSR PC,$DFRD
5243 011120 103002 BCC 40$ ; OK
5244 011122 000137 011426' 30$: JMP 140$ ; READ ERORR
5245 011126 013701 001100' 40$: MOV DFCBF,R1 ; GET STRETCHED BITS 8-19
5246 011132 013702 001102' MOV DFCBF+2,R2 ; GET STRETCHED BITS 0-7
5247 011136 005000 CLR R0 ; USE R0 AS WORK REG
5248 011140 000261 SEC ; SET C-BIT AS DONE BIT
5249 011142 006000 ROR R0 ; AND ROLL IT INTO R0
5250 011144 012705 000004 50$: MOV #4,R5 ; FOUR BITS PER GROUP
5251 011150 005305 60$: DEC R5 ; DONE A GROUP?
5252 011152 002405 BLT 70$ ; NO
5253 011154 006202 ASR R2 ; ROTATE SOURCE BITS RIGHT 1 PLACE
5254 011156 006001 ROR R1 ; ALL 20 OF THEM
5255 011160 006000 ROR R0 ; BEGIN WITH 1ST FLAG INTO R0
5256 011162 103406 BCS 80$ ; IF C-BIT DETECTED, DONE
5257 011164 000771 BR 60$
5258 011166 006202 70$: ASR R2 ; HERE TO SHIFT AWAY
5259 011170 006001 ROR R1 ; THE PAIR
5260 011172 006202 ASR R2 ; OF BLANKS HIDDEN
5261 011174 006001 ROR R1 ; AMIDST THE REAL DATA
5262 011176 000762 BR 50$ ; AND CONTINUE
5263 011200 006201 80$: ASR R1 ; MAKE LAST BLANKS TO GO AWAY
5264 011202 006201 ASR R1
KLIFC -- C-RAM READ/WRITE MACRO M1110 12-OCT-79 14:10 PAGE 122-1
$RCRAM -- READ C-RAM WORD
5265 011204 010037 001100' MOV R0,DFCBF
5266 011210 010137 001102' MOV R1,DFCBF+2 ; STORE RESULTS IN CORE
5267 011214 012700 001103' MOV #DFCBF+3,R0 ; ADDRESS OF DATA JUST READ
5268 011220 114043 MOVB -(R0),-(R3) ; BITS 16-19 TO BUFFER
5269 011222 105737 001105' TSTB DFCFL2 ; CHECK IF BOUNDARY IS RIGHT
5270 011226 001005 BNE 100$ ; YES, GO FIX BOUNDARY
5271 011230 114043 90$: MOVB -(R0),-(R3) ; BITS 20-27 TO WORK AREA
5272 011232 114043 MOVB -(R0),-(R3) ; BITS 28-35 TO WORK AREA
5273 011234 105137 001105' COMB DFCFL2 ; CHANGE SIGNAL
5274 011240 000722 BR 20$ ; GET MORE DATA
5275 011242 106313 100$: ASLB @R3 ; FIX A HALF-BYTE
5276 011244 106313 ASLB @R3
5277 011246 106313 ASLB @R3
5278 011250 106313 ASLB @R3
5279 011252 012705 000004 MOV #4,R5
5280 011256 010302 110$: MOV R3,R2 ; ADDR OF DATA TO R2
5281 011260 106122 ROLB (R2)+ ; SHIFT INCLUDING C-BIT
5282 011262 106122 ROLB (R2)+
5283 011264 106122 ROLB (R2)+
5284 011266 106122 ROLB (R2)+
5285 011270 077506 SOB R5,110$ ; ASSEMBLED COMPLETE HALF-BYTE
5286 011272 105723 TSTB (R3)+ ; FIX HOLDING AREA ADR
5287 011274 105737 001106' TSTB DFCFL3 ; CHECK SIGNAL
5288 011300 001003 BNE 120$ ; DONE IF MINUS
5289 011302 105137 001106' COMB DFCFL3
5290 011306 000750 BR 90$ ; CONTINUE
5291 011310 113743 001101' 120$: MOVB DFCBF+1,-(R3) ; ENDING UP
5292 011314 113743 001100' MOVB DFCBF,-(R3) ; C-RAM BITS 0-15 TO BUFFER
5293 011320 105037 001106' CLRB DFCFL3 ; RESET DFCFL3 TO ZERO
5294 011324 105037 001105' CLRB DFCFL2 ; SAME TO DFCFL2
5295 011330 012700 141000 MOV #.RCSPF,R0 ; READ SPEC FIELD FUNC
5296 011334 012701 001100' MOV #DFCBF,R1
5297 011340 CALL $DFRD ; READ DATA
011340 004737 012706' JSR PC,$DFRD
5298 011344 103430 BCS 140$
5299 011346 016100 000004 MOV 4(R1),R0 ; GET DISP 00-02 - DEXWD1
5300 011352 016101 000002 MOV 2(R1),R1 ; GET DISP 03-04 - DEXWD2
5301 011356 006101 ROL R1
5302 011360 006100 ROL R0
5303 011362 006101 ROL R1
5304 011364 006100 ROL R0 ; JUSTIFY IN R0
5305 011366 042700 177700 BIC #^C77,R0 ; CLEAR TRASH
5306 011372 105737 000036' TSTB .EASW ; AND IF MODEL A CPU,
5307 011376 003002 BGT 130$
5308 011400 042700 177740 BIC #^C37,R0 ; CLEAR MORE TRASH.
5309 011404 016601 000004 130$: MOV 4(SP),R1 ; GET RECIEVING ADDRESS BACK.
5310 011410 110061 000012 MOVB R0,12(R1) ; SAVE IN BUFFER
5311 011414 042721 052525 BIC #052525,(R1)+ ; CLEAR PARITY BITS
5312 011420 042711 000005 BIC #000005,(R1)
5313 011424 000241 CLC
5314 011426 140$: RETURN
011426 000207 RTS PC
KLIFC -- C-RAM READ/WRITE MACRO M1110 12-OCT-79 14:10 PAGE 123
$ACRAM -- ADDRESS C-RAM WORD
5316 .SBTTL $ACRAM -- ADDRESS C-RAM WORD
5317 ;+
5318 ; SET THE M-BOX TO THE C-RAM ADDRESS SPECIFIED BY R0.
5319 ;
5320 ; INPUT:
5321 ; R0 - ADDRESS OF C-RAM WORD TO ACCESS.
5322 ;
5323 ; OUTPUT:
5324 ; CARRY SET IF ERROR OCCURS.
5325 ;-
5326
5327 011430 $ACRAM::PUSH <R1,R0>
011430 010146 MOV R1,-(SP)
011432 010046 MOV R0,-(SP)
5328 011434 TRACK CA
011434 004037 011446' JSR R0,64$
011440 040503 .WORD "CA
011442 000000 .WORD
011444 000000 .WORD
011446 004737 022032' 64$: JSR PC,$TRACK
011452 012600 MOV (SP)+,R0
5329 011454 CALL $KLSR ; DO A SOFT RESET
011454 004737 014622' JSR PC,$KLSR
5330 011460 103423 BCS 9$ ; ERROR
5331 011462 012701 001107' MOV #DFCABF,R1
5332 011466 CALL LFCSAB ; LOAD EBUS BITS 00-05
011466 004737 011536' JSR PC,LFCSAB
5333 011472 012700 052000 MOV #.LCRDL,R0 ; CRAM DIAG ADR 00-04
5334 011476 CALL $DFWR ; DO A WRITE
011476 004737 013020' JSR PC,$DFWR
5335 011502 011600 MOV (SP),R0 ; RESTORE C-RAM ADR
5336 011504 103411 BCS 9$ ; ERROR
5337 011506 000300 SWAB R0 ; GET BITS 00-04
5338 011510 006200 ASR R0 ; TO LOW-ORDER BITS OF R0
5339 011512 006200 ASR R0
5340 011514 CALL LFCSAB ; LOAD EBUS BITS 00-05
011514 004737 011536' JSR PC,LFCSAB
5341 011520 012700 051000 MOV #.LCRDR,R0 ; CRAM DIAG ADR 05-10
5342 011524 CALL $DFWR ; DO ANOTHER WRITE
011524 004737 013020' JSR PC,$DFWR
5343 011530 9$: POP <R0,R1>
011530 012600 MOV (SP)+,R0
011532 012601 MOV (SP)+,R1
5344 011534 RETURN
011534 000207 RTS PC
5345
5346 011536 042700 000077 LFCSAB: BIC #77,R0 ; DEAL ONLY WITH 6 BITS
5347 011542 110037 001112' MOVB R0,DFCABF+3 ; TO EBUS BITS 4 & 5
5348 011546 000300 SWAB R0
5349 011550 110037 001113' MOVB R0,DFCABF+4 ; TO EBUS BITS 0,1,2, AND 3
5350 011554 RETURN
011554 000207 RTS PC
KLIFD -- D-RAM READ/WRITE MACRO M1110 12-OCT-79 14:10 PAGE 124
$ACRAM -- ADDRESS C-RAM WORD
5352 .TITLE KLIFD -- D-RAM READ/WRITE
5353 011556 IDENT$ 5,0
.IDENT /005000/
5354 ;
5355 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
5356 ;
5357 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
5358 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
5359 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
5360 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
5361 ;
5362 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
5363 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
5364 ; EQUIPMENT CORPORATION.
5365 ;
5366 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
5367 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
5368 ;
5369 ; VERSION 05-00
5370 ;
5371 ; ALAN D. PECKHAM 11-APR-77
5372 ;
5373 ; MODIFIED BY:
5374 ;
5375 ; FUNCTION: THIS MODULE CONTAINS THE ROUTINES TO WORK WITH THE D-RAMS.
5376 ; THE D-RAM DATA IS PASSED IN THE 3-WORD COMPRESSED FORMAT SPECIFIED
5377 ; IN THE DOCUMENTATION FOR KLDCP.
5378 ;
5379 ; LOCAL DATA
5380 ;
5381 001114 .PSECT DATA,D
5382 .EVEN ; DFDDBF MUST BE ON AN EVEN BOUNDRY.
5383 001114 DFDDBF: WD36$ 0 0 ; DATA WORK AREA.
001114 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
001117 000 000 .BYTE BY$$3,BY$$4
5384 001121 DFDABF: WD36$ 0 0 ; ADDRESS WORK AREA.
001121 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
001124 000 000 .BYTE BY$$3,BY$$4
5385 .EVEN
5386 011556 .PSECT
KLIFD -- D-RAM READ/WRITE MACRO M1110 12-OCT-79 14:10 PAGE 125
$WDRAM -- WRITE D-RAM WORD
5388 .SBTTL $WDRAM -- WRITE D-RAM WORD
5389 ;+
5390 ; WRITE THE COMPRESSED D-RAM WORD POINTED TO BY R1 INTO THE D-RAM ADDRESS
5391 ; POINTED TO BY R0.
5392 ;
5393 ; INPUTS:
5394 ; R1 - POINTER TO COMPRESSED D-RAM DATA WORD
5395 ; R0 - D-RAM ADDRESS TO WRITE DATA INTO.
5396 ;
5397 ; OUTPUTS:
5398 ; CARRY IS SET IF ERROR OCCURS.
5399 ;-
5400
5401 011556 004537 021764' $WDRAM::JSR R5,$RSAVE
5402 011562 TRACK DW
011562 004037 011574' JSR R0,64$
011566 053504 .WORD "DW
011570 000000 .WORD
011572 000000 .WORD
011574 004737 022032' 64$: JSR PC,$TRACK
011600 012600 MOV (SP)+,R0
5403 011602 006000 ROR R0 ; CHECK IF EVEN OR ODD
5404 011604 103423 BCS 10$ ; C-BIT NOT SET MEANS EVEN
5405 011606 006100 ROL R0 ; RESTORE ADR
5406 011610 010104 MOV R1,R4 ; SAVE DATA POINTER
5407 011612 CALL $ADRAM ; WRITE D-RAM ADDRESS
011612 004737 012146' JSR PC,$ADRAM
5408 011616 103416 BCS 10$ ; ERROR
5409 011620 012401 MOV (R4)+,R1
5410 011622 CALL 30$ ; WRITE EVEN DATA
011622 004737 011670' JSR PC,30$
5411 011626 103412 BCS 10$
5412 011630 012401 MOV (R4)+,R1 ; MORE DATA TO R1
5413 011632 CALL 20$ ; WRITE ODD DATA
011632 004737 011656' JSR PC,20$
5414 011636 103406 BCS 10$
5415 011640 011401 MOV (R4),R1
5416 ;
5417 ; COMMON PART OF LOADING OF THE D-RAM
5418 ;
5419 011642 012700 062000 MOV #.LDRM3,R0 ; COMMON J01-04
5420 011646 006301 ASL R1
5421 011650 006301 ASL R1 ; JUSTIFY DATA FOR EBUS
5422 011652 000423 BR LFDWFN
5423 011654 10$: RETURN
011654 000207 RTS PC
5424 011656 012703 061000 20$: MOV #.LDRM2,R3 ; DRAM FUNC FOR J-FIELD A & B
5425 011662 012700 064000 MOV #.LDRJD,R0 ; J-FIELD ODD
5426 011666 000404 BR 40$
5427 011670 012703 060000 30$: MOV #.LDRM1,R3 ; DRAM FUNC FOR J-FILED
5428 011674 012700 063000 MOV #.LDRJV,R0 ; J-FILED EVEN
5429 011700 006301 40$: ASL R1 ; JUSTIFY J-FIELD DATA
5430 011702 006301 ASL R1
5431 011704 PUSH R1
011704 010146 MOV R1,-(SP)
5432 011706 CALL LFDWFN ; WRITE J-DATA
011706 004737 011722' JSR PC,LFDWFN
KLIFD -- D-RAM READ/WRITE MACRO M1110 12-OCT-79 14:10 PAGE 125-1
$WDRAM -- WRITE D-RAM WORD
5433 011712 POP R1
011712 012601 MOV (SP)+,R1
5434 011714 103757 BCS 10$ ; ERROR
5435 011716 000301 SWAB R1 ; GOT A & B
5436 011720 010300 MOV R3,R0 ; GOT CORRECT DIAG FUNC & WRITE
5437 011722 110137 001116' LFDWFN: MOVB R1,DFDDBF+2 ; R1 HAS THE DATA
5438 011726 012701 001114' MOV #DFDDBF,R1 ; DATA ADR
5439 011732 CALLR $DFWR ; WRITE IT
011732 000137 013020' JMP $DFWR
KLIFD -- D-RAM READ/WRITE MACRO M1110 12-OCT-79 14:10 PAGE 126
$RDRAM -- READ D-RAM WORD
5441 .SBTTL $RDRAM -- READ D-RAM WORD
5442 ;+
5443 ; READ THE D-RAM WORD ADDRESSED BY R0 INTO THE DATA BUFFER POINTED TO
5444 ; BY R1. THE DATA IS COMPRESSED DURING THE READ.
5445 ;
5446 ; INPUTS:
5447 ; R1 - POINTER TO BUFFER TO RECIEVE D-RAM WORD.
5448 ; R0 - D-RAM ADDRESS TO READ DATA FROM.
5449 ;
5450 ; OUTPUTS:
5451 ; CARRY IS SET IF ERROR OCCURS.
5452 ;-
5453
5454 011736 004537 021764' $RDRAM::JSR R5,$RSAVE
5455 011742 TRACK DR
011742 004037 011754' JSR R0,64$
011746 051104 .WORD "DR
011750 000000 .WORD
011752 000000 .WORD
011754 004737 022032' 64$: JSR PC,$TRACK
011760 012600 MOV (SP)+,R0
5456 011762 010104 MOV R1,R4 ; SAVE RECIEVING ADDRESS.
5457 011764 010103 MOV R1,R3
5458 011766 005002 CLR R2 ; CLEAR LOOP SWITCH.
5459 011770 10$: CALL $ADRAM ; WRITE D-RAM ADR
011770 004737 012146' JSR PC,$ADRAM
5460 011774 103463 BCS 30$
5461 011776 012700 015000 MOV #.DRLTC,R0 ; UNLATCH THE DRAM REG
5462 012002 CALL $DFXC
012002 004737 013222' JSR PC,$DFXC
5463 012006 103456 BCS 30$
5464 012010 012701 001114' MOV #DFDDBF,R1
5465 012014 012700 135000 MOV #.RDJ71,R0 ; FUNC TO READ J07-10
5466 012020 CALL $DFRD ; READ DATA
012020 004737 012706' JSR PC,$DFRD
5467 012024 103447 BCS 30$ ; TIMEOUT ERROR
5468 012026 016100 000002 MOV 2(R1),R0 ; GET DATA J07-10 - DEXWD2
5469 012032 006200 ASR R0
5470 012034 006200 ASR R0 ; RIGHT JUSTIFIED J-DATA
5471 012036 042700 177700 BIC #^C77,R0 ; CLEAR TRASH
5472 012042 110023 MOVB R0,(R3)+ ; SAVE IT IN CORE
5473 012044 012700 133000 MOV #.RDMAB,R0 ; FUNC TO READ A & B FIELD
5474 012050 CALL $DFRD ; READ DATA
012050 004737 012706' JSR PC,$DFRD
5475 012054 103433 BCS 30$
5476 012056 016100 000002 MOV 2(R1),R0 ; GET A & B DATA - DEXWD2
5477 012062 006200 ASR R0
5478 012064 006200 ASR R0 ; RIGHT JUSTIFIED DATA
5479 012066 042700 177700 BIC #^C77,R0 ; CLEAR EXTRA
5480 012072 110023 MOVB R0,(R3)+ ; SAVE IT IN CORE
5481 012074 005102 COM R2 ; IS THIS THE SECOND TIME ?
5482 012076 001404 BEQ 20$ ; GET OUT IF YES
5483 012100 016600 000002 MOV 2(SP),R0 ; GET DRAM ADR
5484 012104 005200 INC R0 ; GET ODD HALF OF EVEN/ODD PAIR
5485 012106 000730 BR 10$ ; LOOP AGAIN
5486 012110 012700 134000 20$: MOV #.RDJ14,R0 ; FUNC TO READ J01-04
5487 012114 CALL $DFRD ; READ DATA
KLIFD -- D-RAM READ/WRITE MACRO M1110 12-OCT-79 14:10 PAGE 126-1
$RDRAM -- READ D-RAM WORD
012114 004737 012706' JSR PC,$DFRD
5488 012120 103411 BCS 30$
5489 012122 016100 000002 MOV 2(R1),R0 ; GET J01-04 DATA - DEXWD2
5490 012126 006200 ASR R0
5491 012130 006200 ASR R0 ; RIGHT JUSTIFIED DATA
5492 012132 042700 177760 BIC #^C17,R0 ; CLEAR EXTRA
5493 012136 110064 000004 MOVB R0,4(R4) ; BIT SET TO CORE
5494 012142 000241 CLC
5495 012144 30$: RETURN
012144 000207 RTS PC
KLIFD -- D-RAM READ/WRITE MACRO M1110 12-OCT-79 14:10 PAGE 127
$ADRAM -- ADDRESS D-RAM WORD
5497 .SBTTL $ADRAM -- ADDRESS D-RAM WORD
5498 ;+
5499 ; SET E-BOX TO SPECIFIED D-RAM ADDRESS FOR WRITTING OR READING.
5500 ;
5501 ; INPUT:
5502 ; R0 - ADDRESS TO ACCESS.
5503 ;
5504 ; OUTPUT:
5505 ; CARRY IS SET IF ERROR OCCURS.
5506 ;-
5507
5508 012146 004537 021764' $ADRAM::JSR R5,$RSAVE
5509 012152 TRACK DA
012152 004037 012164' JSR R0,64$
012156 040504 .WORD "DA
012160 000000 .WORD
012162 000000 .WORD
012164 004737 022032' 64$: JSR PC,$TRACK
012170 012600 MOV (SP)+,R0
5510 012172 012704 001123' MOV #DFDABF+2,R4
5511 012176 012703 001121' MOV #DFDABF,R3 ;GET ADR OF EBUS DATA
5512 012202 010002 MOV R0,R2 ;DRAM ADR IN R2
5513 012204 005100 COM R0 ;READY TO TEST ADR BITS 0-2
5514 012206 032700 000700 BIT #700,R0 ;TESTING!
5515 012212 001410 BEQ 10$ ;BR IF ADR IS 7XX
5516 012214 006302 ASL R2
5517 012216 006302 ASL R2
5518 012220 006302 ASL R2 ;LEFT SHIFT 3 POSITIONS
5519 012222 105024 CLRB (R4)+ ;INCREMENT TO DFDABF+3
5520 012224 110224 MOVB R2,(R4)+ ;MOVE ADR BITS 4-8 TO EBUS DATA
5521 012226 000302 SWAB R2
5522 012230 110214 MOVB R2,@R4 ;MOVE ADR BITS 0-3 TO EBUS DATA
5523 012232 000413 BR 40$
5524 012234 006002 10$: ROR R2 ;BIT1 TO C-BIT
5525 012236 103402 BCS 20$ ;C BIT SET MEANS IR BIT 12 MUST BE 1
5526 012240 105024 CLRB (R4)+ ;NO C-BIT MEANS IR BIT 12 MUST BE 0
5527 012242 000402 BR 30$ ;MOVE ADR TO EBUS DATA
5528 012244 112724 000200 20$: MOVB #200,(R4)+ ;SET IR BIT 12=1
5529 012250 042702 000340 30$: BIC #340,R2
5530 012254 110224 MOVB R2,(R4)+ ;MOVE D-RAM ADR TO EBUS BIT POSITION 7-11
5531 012256 112714 000016 MOVB #16,@R4 ;SET THE 7 FROM 7XX IN EBUS DATA
5532 012262 40$: CALL $KLSR ;DO A SOFT RESET
012262 004737 014622' JSR PC,$KLSR
5533 012266 103413 BCS 50$
5534 012270 012701 001121' MOV #DFDABF,R1 ;EBUS DATA ADR
5535 012274 012700 077000 MOV #.LDAR,R0 ;LOAD THE AR FROM EBUS 0-35
5536 012300 CALL $DFWR ;DO THE ACTUAL WRITE
012300 004737 013020' JSR PC,$DFWR
5537 012304 103404 BCS 50$
5538 012306 012700 014000 MOV #.IRLTC,R0 ;UNLATCH IR AND LOAD IT FROM AD
5539 012312 CALLR $DFXC ;EXECUTE IT
012312 000137 013222' JMP $DFXC
5540 012316 50$: RETURN
012316 000207 RTS PC
KLIFE -- DEPOSIT/EXAMINE KL MEM MACRO M1110 12-OCT-79 14:10 PAGE 128
$ADRAM -- ADDRESS D-RAM WORD
5542 .TITLE KLIFE -- DEPOSIT/EXAMINE KL MEMORY
5543 012320 IDENT$ 5,1
.IDENT /005010/
5544 ;
5545 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
5546 ;
5547 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
5548 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
5549 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
5550 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
5551 ;
5552 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
5553 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
5554 ; EQUIPMENT CORPORATION.
5555 ;
5556 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
5557 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
5558 ;
5559 ; VERSION 05-01
5560 ;
5561 ; ALAN D. PECKHAM 29-MAR-77
5562 ;
5563 ; MODIFIED BY:
5564 ;
5565 ; R. BELANGER 24-AUG-78 FIX CROCK IN ".DESW" MAINTENANCE
5566 ;
5567 ; FUNCTION: ROUTINES TO ACCESS KL MEMORY.
5568 ;
5569 ; LOCAL MACROS
5570 ;
5571 .MCALL PREX$,PRDP$
5572 ;
5573 ; LOCAL DATA
5574 ;
5575 001126 .PSECT DATA,D
5576 001126 DFEDPB: PRDP$ 0,DFEAD,DFEBF,ED.PHY ; DPB FOR PRIVLEDGED DEPOSIT.
001126 011 005 .BYTE DR.DTE,5
001130 016 200 .BYTE DF.PDP,ED.PHY
001132 001152' .WORD DFEAD
001134 001156' .WORD DFEBF
001136 000000 .WORD 0
5577 001140 DFEEXB: PREX$ 0,DFEAD,DFEBF,ED.PHY ; DPB FOR PRIVLEDGED EXAMINE.
001140 011 005 .BYTE DR.DTE,5
001142 015 200 .BYTE DF.PEX,ED.PHY
001144 001152' .WORD DFEAD
001146 001156' .WORD DFEBF
001150 000000 .WORD 0
5578 001152 DFEAD: WD22$ 0 ; ADDRESS OF MEMORY ACCESS.
001152 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
5579 .EVEN
5580 001156 DFEBF: WD36$ 0 0 ; DATA TO WRITE OR READ.
001156 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
001161 000 000 .BYTE BY$$3,BY$$4
5581 .EVEN
5582 002221 .PSECT TEXT,D
5583 002221 TFEDFL: ERROR <DEPOSIT FAILED>
002221 077 040 104 .ASCIZ \? DEPOSIT FAILED\
KLIFE -- DEPOSIT/EXAMINE KL MEM MACRO M1110 12-OCT-79 14:10 PAGE 128-1
$ADRAM -- ADDRESS D-RAM WORD
002224 105 120 117
002227 123 111 124
002232 040 106 101
002235 111 114 105
002240 104 000
5584 002242 TFEEFL: ERROR <EXAMINE FAILED>
002242 077 040 105 .ASCIZ \? EXAMINE FAILED\
002245 130 101 115
002250 111 116 105
002253 040 106 101
002256 111 114 105
002261 104 000
5585 012320 .PSECT
KLIFE -- DEPOSIT/EXAMINE KL MEM MACRO M1110 12-OCT-79 14:10 PAGE 129
$DPOS -- DEPOSIT KL MEMORY ROUTINE
5587 .SBTTL $DPOS -- DEPOSIT KL MEMORY ROUTINE
5588 ;+
5589 ; DEPOSIT GIVEN WORD INTO PHYSICAL CORE.
5590 ;
5591 ; INPUTS:
5592 ; R1 - ADDRESS OF 36 BIT DATA WORD.
5593 ; R0 - 22 BIT KL ADDRESS.
5594 ;
5595 ; OUTPUTS:
5596 ; CARRY IS SET ON ERROR AND MESSAGE IS DISPLAYED.
5597 ;-
5598
5599 012320 $DPOST::
5600 012320 005046 CLR -(SP) ; SET UP THE ADDRESS
5601 012322 PUSH R0 ; SO
012322 010046 MOV R0,-(SP)
5602 012324 010600 MOV SP,R0 ; POINT TO ADDRESS
5603 012326 CALL $DPOS ; DO THE DEPOSIT
012326 004737 012336' JSR PC,$DPOS
5604 012332 032626 BIT (SP)+,(SP)+ ; CLEAR STACK
5605 012334 RETURN ; TO CALLER
012334 000207 RTS PC
5606
5607 012336 $DPOS::
5608 012336 004537 021764' JSR R5,$RSAVE
5609 012342 CALL LFEMVA ; SET UP PROPER BOUNDARY
012342 004737 012572' JSR PC,LFEMVA
5610 012346 CALL LFECKN ; MAKE SURE THE CLOCK IS ON.
012346 004737 012616' JSR PC,LFECKN
5611 012352 103431 BCS 90$
5612 012354 012704 001156' MOV #DFEBF,R4 ; SET UP TEMPORARY WORK AREA
5613 012360 012703 000005 MOV #5,R3 ; AREA COUNT
5614 012364 112124 10$: MOVB (R1)+,(R4)+ ; MOVE IN -11 DATA
5615 012366 077302 SOB R3,10$ ; CONTINUE MOVE
5616 012370 142744 177760 BICB #^C17,-(R4) ; CLEAR HIGH BYTE
5617 012374 TRACK DP,DFEAD,DFEBF
012374 004037 012406' JSR R0,64$
012400 050104 .WORD "DP
012402 001152' .WORD DFEAD
012404 001156' .WORD DFEBF
012406 004737 022032' 64$: JSR PC,$TRACK
012412 012600 MOV (SP)+,R0
5618 012414 DIR$ #DFEDPB ; DO DEPOSIT TO KL
012414 012746 001126' MOV #DFEDPB,-(SP)
012420 104375 EMT 375
5619 012422 103005 BCC 90$
5620 012424 PRINT #TFEDFL ; INFORM OF ERROR.
012424 012700 002221' MOV #TFEDFL,R0
012430 004737 025164' JSR PC,$TTMSG
5621 012434 000261 SEC
5622 012436 90$: RETURN
012436 000207 RTS PC
KLIFE -- DEPOSIT/EXAMINE KL MEM MACRO M1110 12-OCT-79 14:10 PAGE 130
$EXAM -- EXAMINE KL MEMORY ROUTINE
5624 .SBTTL $EXAM -- EXAMINE KL MEMORY ROUTINE
5625 ;+
5626 ; EXAMINE GIVEN WORD FROM KL PHYSICAL CORE.
5627 ;
5628 ; INPUTS:
5629 ; R1 - ADDRESS OF BUFFER TO RECIEVE DATA.
5630 ; R0 - 22 BIT KL ADDRESS.
5631 ;
5632 ; OUTPUTS:
5633 ; CARRY IS SET ON ERROR AND MESSAGE IS DISPLAYED.
5634 ;-
5635
5636 .ENABL LSB
5637
5638 012440 $EXAMT::
5639 012440 005046 CLR -(SP) ; SET UP THE ADDRESS
5640 012442 PUSH R0 ; SO
012442 010046 MOV R0,-(SP)
5641 012444 010600 MOV SP,R0 ; POINT TO ADDRESS
5642 012446 CALL $EXAM ; DO THE EXAMINE
012446 004737 012466' JSR PC,$EXAM
5643 012452 032626 BIT (SP)+,(SP)+ ; CLEAR THE STACK
5644 012454 000402 BR 10$ ; OUT THRU COMMON EXIT
5645 ;
5646 012456 $EXAMD::
5647 012456 CALL $EXAM ; DO THE EXAMINE
012456 004737 012466' JSR PC,$EXAM
5648 012462 10$:
5649 012462 010100 MOV R1,R0 ; DATA PONTER TO R0
5650 012464 RETURN ; TO CALLER
012464 000207 RTS PC
5651
5652 .DSABL LSB
5653
5654 012466 $EXAM::
5655 012466 004537 021764' JSR R5,$RSAVE
5656 012472 CALL LFEMVA
012472 004737 012572' JSR PC,LFEMVA
5657 012476 CALL LFECKN ; MAKE SURE THE CLOCK IS ON.
012476 004737 012616' JSR PC,LFECKN
5658 012502 103425 BCS 90$
5659 012504 DIR$ #DFEEXB ; DO KL EXAMINE
012504 012746 001140' MOV #DFEEXB,-(SP)
012510 104375 EMT 375
5660 012512 TRACK EX,DFEAD,DFEBF
012512 004037 012524' JSR R0,64$
012516 054105 .WORD "EX
012520 001152' .WORD DFEAD
012522 001156' .WORD DFEBF
012524 004737 022032' 64$: JSR PC,$TRACK
012530 012600 MOV (SP)+,R0
5661 012532 103411 BCS 90$
5662 012534 012702 000005 MOV #5,R2
5663 012540 012700 001156' MOV #DFEBF,R0
5664 012544 112021 10$: MOVB (R0)+,(R1)+
5665 012546 077202 SOB R2,10$
5666 012550 142741 177760 BICB #^C17,-(R1)
KLIFE -- DEPOSIT/EXAMINE KL MEM MACRO M1110 12-OCT-79 14:10 PAGE 130-1
$EXAM -- EXAMINE KL MEMORY ROUTINE
5667 012554 RETURN
012554 000207 RTS PC
5668 012556 90$: PRINT #TFEEFL ; INFORM OPERATOR OF ERROR.
012556 012700 002242' MOV #TFEEFL,R0
012562 004737 025164' JSR PC,$TTMSG
5669 012566 000261 SEC
5670 012570 RETURN
012570 000207 RTS PC
KLIFE -- DEPOSIT/EXAMINE KL MEM MACRO M1110 12-OCT-79 14:10 PAGE 131
$EXAM -- EXAMINE KL MEMORY ROUTINE
5672 ;+
5673 ; GET 22-BIT ADDRESS AND PLACE IN WORD-ALIGNED HOLDING AREA.
5674 ;-
5675
5676 012572 012705 001152' LFEMVA: MOV #DFEAD,R5
5677 012576 112025 MOVB (R0)+,(R5)+ ; CLAIM THE CALLER'S
5678 012600 112025 MOVB (R0)+,(R5)+ ; KL ADDRESS
5679 012602 111015 MOVB (R0),(R5) ; FOR OUR OWN.
5680 012604 042715 177700 BIC #^C77,(R5) ; 22 BITS PLEASE.
5681 012610 012700 001152' MOV #DFEAD,R0
5682 012614 RETURN
012614 000207 RTS PC
5683
5684 ;+
5685 ; MAKE SURE THE CLOCK IS ON
5686 ;-
5687
5688 012616 105737 000034' LFECKN: TSTB .DESW ; IF OUR SWITCH IS >0,
5689 012622 003026 BGT 90$ ; THEN MICROCODE IS USEABLE.
5690 012624 CALL $KLMR ; OTHERWISE RESET
012624 004737 014350' JSR PC,$KLMR
5691 012630 103423 BCS 90$
5692 012632 012700 001000 MOV #.STRCL,R0 ; AND START CLOCK.
5693 012636 CALL $DFXC
012636 004737 013222' JSR PC,$DFXC
5694 012642 103416 BCS 90$
5695 012644 012702 001750 MOV #1000.,R2 ; WAIT FOR HALT LOOP
5696 012650 10$: CALL $DTRW1 ; BY READING DTE REG #1
012650 004737 021674' JSR PC,$DTRW1
5697 012654 103411 BCS 90$ ; AND
5698 012656 032700 001000 BIT #DS06,R0 ; CHECKING HALT BIT.
5699 012662 001003 BNE 20$
5700 012664 077207 SOB R2,10$ ; IF TAKES TOO LONG
5701 012666 000261 SEC ; THEN WE ARE IN TROUBLE.
5702 012670 RETURN
012670 000207 RTS PC
5703 012672 112737 000001 000034' 20$: MOVB #1,.DESW ; OTHERWISE INDICATE
5704 012700 90$: RETURN ; OKAY TO USE.
012700 000207 RTS PC
KLIFR -- PERFORM DIAGNOSTIC FUN MACRO M1110 12-OCT-79 14:10 PAGE 132
$EXAM -- EXAMINE KL MEMORY ROUTINE
5706 .TITLE KLIFR -- PERFORM DIAGNOSTIC FUNCTION READ
5707 012702 IDENT$ 5,0
.IDENT /005000/
5708 ;
5709 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
5710 ;
5711 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
5712 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
5713 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
5714 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
5715 ;
5716 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
5717 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
5718 ; EQUIPMENT CORPORATION.
5719 ;
5720 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
5721 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
5722 ;
5723 ; VERSION 05-00
5724 ;
5725 ; ALAN D. PECKHAM 29-MAR-77
5726 ;
5727 ; MODIFIED BY:
5728 ;
5729 ; FUNCTION: DO A FUNCTION READ TO THE DTE20.
5730 ;
5731 ; LOCAL MACROS
5732 ;
5733 .MCALL KLDR$
5734 ;
5735 ; LOCAL DATA
5736 ;
5737 001164 .PSECT DATA,D
5738 001164 DFRRDB: KLDR$ 0,.DFBLK,.DREG,0 ; DPB FOR FUNCTION READ.
001164 002411 .WORD 400*5.+DR.DTE
001166 012 000 .BYTE DF.KLR,0/400
001170 000242' .WORD .DFBLK
001172 000256' .WORD .DREG
001174 000000 .WORD 0
5739 .EVEN
5740 002263 .PSECT TEXT,D
5741 002263 TFREMS: ERROR <DF READ FAILED> ; READ FAILED ERROR MESSAGE.
002263 077 040 104 .ASCIZ \? DF READ FAILED\
002266 106 040 122
002271 105 101 104
002274 040 106 101
002277 111 114 105
002302 104 000
5742 012702 .PSECT
KLIFR -- PERFORM DIAGNOSTIC FUN MACRO M1110 12-OCT-79 14:10 PAGE 133
$DFRD -- DIAGNOSTIC READ FUNCTION
5744 .SBTTL $DFRD -- DIAGNOSTIC READ FUNCTION
5745 ;+
5746 ; PERFORM A DIAGNOSTIC READ FUNCTION.
5747 ;
5748 ; INPUTS:
5749 ; R1 - ADDRESS OF 36 BIT BUFFER TO RECIEVE DATA FROM READ.
5750 ; R0 - FUNCTION CODE OF READ TO PERFORM.
5751 ;
5752 ; OUTPUTS:
5753 ; (R1) - DATA READ FROM DIAGNOSTIC IS SUCCESSFUL.
5754 ; CARRY IS SET IF ERROR, AND ERROR MESSAGE IS DISPLAYED.
5755 ;-
5756
5757 012702 $DDFRD::
5758 012702 000300 SWAB R0 ; POSITION READ CODE
5759 012704 006300 ASL R0 ; SO
5760 012706 $DFRD::
5761 012706 PUSH <R1,R0>
012706 010146 MOV R1,-(SP)
012710 010046 MOV R0,-(SP)
5762 012712 000300 SWAB R0 ; GET FUNCTION CODE TO LOW BYTE
5763 012714 110037 001167' MOVB R0,DFRRDB+3 ; STORE FUNCTION CODE
5764 012720 DIR$ #DFRRDB
012720 012746 001164' MOV #DFRRDB,-(SP)
012724 104375 EMT 375
5765 012726 TRACK FR,DFRRDB+3,.DFRBK
012726 004037 012740' JSR R0,64$
012732 051106 .WORD "FR
012734 001167' .WORD DFRRDB+3
012736 000250' .WORD .DFRBK
012740 004737 022032' 64$: JSR PC,$TRACK
012744 012600 MOV (SP)+,R0
5766 012746 103412 BCS 10$
5767 012750 012700 000250' MOV #.DFRBK,R0
5768 012754 005701 TST R1 ; TEST R1
5769 012756 001413 BEQ 90$ ; BYPASS LOADING
5770 012760 112021 MOVB (R0)+,(R1)+ ; REMOVE DATA FROM DEXWD3
5771 012762 112021 MOVB (R0)+,(R1)+
5772 012764 112021 MOVB (R0)+,(R1)+ ; FROM DEXWD2
5773 012766 112021 MOVB (R0)+,(R1)+
5774 012770 111011 MOVB (R0),(R1) ; FROM DEXWD1
5775 012772 000405 BR 90$
5776 012774 10$: PRINT #TFREMS ; INDICATE FUNC READ FAILED
012774 012700 002263' MOV #TFREMS,R0
013000 004737 025164' JSR PC,$TTMSG
5777 013004 000261 SEC
5778 013006 90$: POP <R0,R1>
013006 012600 MOV (SP)+,R0
013010 012601 MOV (SP)+,R1
5779 013012 RETURN
013012 000207 RTS PC
KLIFW -- PERFORM DIAGNOSTIC FUN MACRO M1110 12-OCT-79 14:10 PAGE 134
$DFRD -- DIAGNOSTIC READ FUNCTION
5781 .TITLE KLIFW -- PERFORM DIAGNOSTIC FUNCTION WRITE
5782 013014 IDENT$ 5,0
.IDENT /005000/
5783 ;
5784 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
5785 ;
5786 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
5787 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
5788 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
5789 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
5790 ;
5791 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
5792 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
5793 ; EQUIPMENT CORPORATION.
5794 ;
5795 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
5796 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
5797 ;
5798 ; VERSION 05-00
5799 ;
5800 ; ALAN D. PECKHAM 29-MAR-77
5801 ;
5802 ; MODIFIED BY:
5803 ;
5804 ; FUNCTION: DO A FUNCTION WRITE TO THE DTE20.
5805 ;
5806 ; LOCAL MACROS
5807 ;
5808 .MCALL KLDW$,PREX$
5809 ;
5810 ; LOCAL DATA
5811 ;
5812 001176 .PSECT DATA,D
5813 001176 DFWWDB: KLDW$ 0,.DFBLK,.DREG,0 ; DPB FOR FUNCTION WRITE.
001176 002411 .WORD 400*5.+DR.DTE
001200 013 000 .BYTE DF.KLW,0/400
001202 000242' .WORD .DFBLK
001204 000256' .WORD .DREG
001206 000000 .WORD 0
5814 001210 DFWEDB: PREX$ 0,.ZERO,DFWBF,ED.PHY ; PRIVLEDGED EXAMINE DPB.
001210 011 005 .BYTE DR.DTE,5
001212 015 200 .BYTE DF.PEX,ED.PHY
001214 000000' .WORD .ZERO
001216 001222' .WORD DFWBF
001220 000000 .WORD 0
5815 001222 DFWBF: WD36$ 0 0 ; EXAMINE SCRATCH BUFFER.
001222 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
001225 000 000 .BYTE BY$$3,BY$$4
5816 .EVEN
5817 002304 .PSECT TEXT,D
5818 002304 TFWEMS: ERROR <DF WRITE FAILED>
002304 077 040 104 .ASCIZ \? DF WRITE FAILED\
002307 106 040 127
002312 122 111 124
002315 105 040 106
002320 101 111 114
002323 105 104 000
KLIFW -- PERFORM DIAGNOSTIC FUN MACRO M1110 12-OCT-79 14:10 PAGE 134-1
$DFRD -- DIAGNOSTIC READ FUNCTION
5819 013014 .PSECT
KLIFW -- PERFORM DIAGNOSTIC FUN MACRO M1110 12-OCT-79 14:10 PAGE 135
$DFWR -- DIAGNOSTIC WRITE FUNCTION
5821 .SBTTL $DFWR -- DIAGNOSTIC WRITE FUNCTION
5822 ;+
5823 ; PERFORM DIAGNOSTIC WRITE FUNCTION.
5824 ;
5825 ; INPUTS:
5826 ; R1 - ADDRESS OF 36 BIT WORD TO WRITE.
5827 ; R0 - FUNCTION CODE OF WRITE TO PERFORM.
5828 ;
5829 ; OUTPUTS:
5830 ; CARRY IS SET IF ERROR, AND ERROR MESSAGE IS DISPLAYED.
5831 ;-
5832
5833 013014 $DDFWR::
5834 013014 000300 SWAB R0 ; POSITION WRITE CODE
5835 013016 006300 ASL R0 ; SO
5836 013020 $DFWR::
5837 013020 PUSH <R1,R0>
013020 010146 MOV R1,-(SP)
013022 010046 MOV R0,-(SP)
5838 013024 CALL LFWCKF ; TURN OFF CLOCK
013024 004737 013140' JSR PC,LFWCKF
5839 013030 103440 BCS 90$
5840 013032 000300 SWAB R0 ; GET FUNCTION CODE TO LOW BYTE
5841 013034 110037 001201' MOVB R0,DFWWDB+3 ; SET THE FUNCTION CODE IN DPB
5842 013040 012700 000242' MOV #.DFWBK,R0 ; POINT TO TOP OF 3 WORDS FOR WRITE
5843 013044 005701 TST R1 ; TEST R1
5844 013046 001405 BEQ 10$ ; BYPASS LOADING
5845 013050 112120 MOVB (R1)+,(R0)+ ; FILL IN DATA IN DEXWD3
5846 013052 112120 MOVB (R1)+,(R0)+
5847 013054 112120 MOVB (R1)+,(R0)+ ; IN DEXWD2
5848 013056 112120 MOVB (R1)+,(R0)+
5849 013060 111110 MOVB (R1),(R0) ; IN DEXWD1
5850 013062 042760 177760 000004 10$: BIC #^C17,4(R0) ; JUST SAVE BITS 0-3 IN DEXWD1
5851 013070 DIR$ #DFWWDB ; DO THE FUNCTION WRITE
013070 012746 001176' MOV #DFWWDB,-(SP)
013074 104375 EMT 375
5852 013076 TRACK FW,DFWWDB+3,.DFWBK
013076 004037 013110' JSR R0,64$
013102 053506 .WORD "FW
013104 001201' .WORD DFWWDB+3
013106 000242' .WORD .DFWBK
013110 004737 022032' 64$: JSR PC,$TRACK
013114 012600 MOV (SP)+,R0
5853 013116 103005 BCC 90$ ; WRITE OKAY
5854 013120 20$: PRINT #TFWEMS
013120 012700 002304' MOV #TFWEMS,R0
013124 004737 025164' JSR PC,$TTMSG
5855 013130 000261 SEC
5856 013132 90$: POP <R0,R1>
013132 012600 MOV (SP)+,R0
013134 012601 MOV (SP)+,R1
5857 013136 RETURN ; ERROR
013136 000207 RTS PC
KLIFW -- PERFORM DIAGNOSTIC FUN MACRO M1110 12-OCT-79 14:10 PAGE 136
$DFWR -- DIAGNOSTIC WRITE FUNCTION
5859 ;+
5860 ; MAKE SURE THE KL CLOCK IS OFF FOR FUNCTION WRITE.
5861 ;
5862 ; NO INPUTS OR OUTPUTS.
5863 ;-
5864
5865 013140 105037 000034' LFWCKF: CLRB .DESW ; DEP/EXAM MUST START FRESH.
5866 013144 105737 000033' TSTB .CKSW ; TEST THE CLOCK CONDITION:
5867 013150 100421 BMI 90$ ; OFF IS OKAY.
5868 013152 003012 BGT 10$ ; ON - TURN IT OFF.
5869 013154 DIR$ #DFWEDB ; OTHERWISE DETERMINATE...
013154 012746 001210' MOV #DFWEDB,-(SP)
013160 104375 EMT 375
5870 013162 103006 BCC 10$ ; CLOCK IS ON ! STOP IT.
5871 013164 022737 000000G 000000G CMP #IE.EBX,$DSW ; EBOX STOPPED ?
5872 013172 001410 BEQ 90$ ; YES, WE ARE OKAY.
5873 013174 CALLR $KLMR ; SOME HORRIBLE STATE...
013174 000137 014350' JMP $KLMR
5874 013200 10$: PUSH R0 ; CLOCK IS ON -
013200 010046 MOV R0,-(SP)
5875 013202 012700 000000 MOV #.STPCL,R0 ; TURN IT OFF
5876 013206 CALL $DFXC
013206 004737 013222' JSR PC,$DFXC
5877 013212 POP R0
013212 012600 MOV (SP)+,R0
5878 013214 90$: RETURN
013214 000207 RTS PC
KLIFX -- PERFORM DIAGNOSTIC FUN MACRO M1110 12-OCT-79 14:10 PAGE 137
$DFWR -- DIAGNOSTIC WRITE FUNCTION
5880 .TITLE KLIFX -- PERFORM DIAGNOSTIC FUNCTION EXECUTE
5881 013216 IDENT$ 5,1
.IDENT /005010/
5882 ;
5883 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
5884 ;
5885 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
5886 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
5887 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
5888 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
5889 ;
5890 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
5891 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
5892 ; EQUIPMENT CORPORATION.
5893 ;
5894 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
5895 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
5896 ;
5897 ; VERSION 05-01
5898 ;
5899 ; ALAN D. PECKHAM 29-MAR-77
5900 ;
5901 ; MODIFIED BY:
5902 ;
5903 ; R. BELANGER 24-AUG-77 FIX CROCK IN ".DESW" MAINTENANCE
5904 ;
5905 ; FUNCTION: DO A FUNCTION WRITE TO THE DTE20.
5906 ;
5907 ; LOCAL MACROS
5908 ;
5909 .MCALL KLDX$
5910 ;
5911 ; LOCAL VARIABLES
5912 ;
5913 001230 .PSECT DATA,D
5914 001230 DFXXDB: KLDX$ 0,.DFBLK,.DREG,0 ; DPB FOR FUNCTION EXECUTE.
001230 002411 .WORD 400*5.+DR.DTE
001232 014 000 .BYTE DF.KLX,0/400
001234 000242' .WORD .DFBLK
001236 000256' .WORD .DREG
001240 000000 .WORD 0
5915 .EVEN
5916 002326 .PSECT TEXT,D
5917 002326 TFXEMS: ERROR <DF EXECUTE FAILED>
002326 077 040 104 .ASCIZ \? DF EXECUTE FAILED\
002331 106 040 105
002334 130 105 103
002337 125 124 105
002342 040 106 101
002345 111 114 105
002350 104 000
5918 013216 .PSECT
KLIFX -- PERFORM DIAGNOSTIC FUN MACRO M1110 12-OCT-79 14:10 PAGE 138
$DFXC -- DIAGNOSTIC EXECUTE FUNCTION
5920 .SBTTL $DFXC -- DIAGNOSTIC EXECUTE FUNCTION
5921 ;+
5922 ; PERFORM A DIAGNOSTIC EXECUTE FUNCTION.
5923 ;
5924 ; INPUTS:
5925 ; R0 - EXECUTE FUNCTION CODE.
5926 ;
5927 ; OUTPUTS:
5928 ; CARRY IS SET IF OPERATION FAILS.
5929 ;-
5930
5931 013216 $DDFXC::
5932 013216 000300 SWAB R0 ; POSITION EXECUTE CODE
5933 013220 006300 ASL R0 ; SO
5934 013222 $DFXC::
5935 013222 PUSH <R1,R0>
013222 010146 MOV R1,-(SP)
013224 010046 MOV R0,-(SP)
5936 013226 022700 001000 CMP #.STRCL,R0 ; START CLOCK ?
5937 013232 001411 BEQ 10$
5938 013234 022700 007000 CMP #.SETMR,R0 ; DOES IT STOP CLOCK ?
5939 013240 002414 BLT 20$
5940 013242 112737 177777 000033' MOVB #-1,.CKSW ; INDICATE CLOCK STOPPED.
5941 013250 105037 000034' CLRB .DESW ; DEP/EXAM MUST START FRESH.
5942 013254 000406 BR 20$
5943 013256 112737 000001 000033' 10$: MOVB #+1,.CKSW ; INDICATE CLOCK STARTED.
5944 013264 112737 000001 000034' MOVB #1,.DESW
5945 013272 000300 20$: SWAB R0 ; GET FUNCTION CODE TO LOW BYTE
5946 013274 110037 001233' MOVB R0,DFXXDB+3 ; SET FUNCTION CODE IN DPB
5947 013300 TRACK FX,DFXXDB+3
013300 004037 013312' JSR R0,64$
013304 054106 .WORD "FX
013306 001233' .WORD DFXXDB+3
013310 000000 .WORD
013312 004737 022032' 64$: JSR PC,$TRACK
013316 012600 MOV (SP)+,R0
5948 013320 DIR$ #DFXXDB
013320 012746 001230' MOV #DFXXDB,-(SP)
013324 104375 EMT 375
5949 013326 103007 BCC 30$
5950 013330 105037 000033' CLRB .CKSW ; CLOCK STATUS INDETERMINATE.
5951 013334 PRINT #TFXEMS ; INDICATE FUNC EX FAILED
013334 012700 002326' MOV #TFXEMS,R0
013340 004737 025164' JSR PC,$TTMSG
5952 013344 000261 SEC
5953 013346 30$: POP <R0,R1>
013346 012600 MOV (SP)+,R0
013350 012601 MOV (SP)+,R1
5954 013352 RETURN
013352 000207 RTS PC
KLIGC -- SET CACHE CONFIGURATIO MACRO M1110 12-OCT-79 14:10 PAGE 139
$DFXC -- DIAGNOSTIC EXECUTE FUNCTION
5956 .TITLE KLIGC -- SET CACHE CONFIGURATION TABLES
5957 013354 IDENT$ 5,0
.IDENT /005000/
5958 ;
5959 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
5960 ;
5961 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
5962 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
5963 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
5964 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
5965 ;
5966 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
5967 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
5968 ; EQUIPMENT CORPORATION.
5969 ;
5970 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
5971 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
5972 ;
5973 ; VERSION 05-00
5974 ;
5975 ; ALAN D. PECKHAM 12-APR-77
5976 ;
5977 ; MODIFIED BY:
5978 ;
5979 ; FUNCTION: THIS MODULE SETS UP THE CACHE CONFIGURATION TABLES
5980 ; EITHER FROM THE CONFIGURATION FILE OR FOR ALL CACHES.
5981 ;
5983 ; LOCAL DATA
5984 ;
5985 001242 .PSECT DATA,D
5986 001242 043240 000000 000000 DGCFNM: .RAD50 /KL CFG/ ; CONFIGURATION FILE NAME.
001250 011667
5987 001252 000000 .WORD 0 ; GET LATEST VERSION.
5988 001254 005 005 .BYTE 5,5
5989 001256 054523 000000 .WORD "SY,0
5990 002352 .PSECT TEXT,D
5991 002352 TGCNFL: WARNING <NO FILE - ALL CACHE BEING CONFIGURED>
002352 045 040 116 .ASCIZ \% NO FILE - ALL CACHE BEING CONFIGURED\
002355 117 040 106
002360 111 114 105
002363 040 055 040
002366 101 114 114
002371 040 103 101
002374 103 110 105
002377 040 102 105
002402 111 116 107
002405 040 103 117
002410 116 106 111
002413 107 125 122
002416 105 104 000
5992 013354 .PSECT
KLIGC -- SET CACHE CONFIGURATIO MACRO M1110 12-OCT-79 14:10 PAGE 140
$GETCA -- SET CACHE CONFIGURATION TABLES
5994 .SBTTL $GETCA -- SET CACHE CONFIGURATION TABLES
5995 ;+
5996 ; GET CACHES TO BE ENABLED FROM FILE OR SET TO CONFIGURE ALL CACHE.
5997 ;
5998 ; INPUTS:
5999 ; .DCSW - IF NON-NEGATIVE THEN USE LAST CONFIGURATION, OTHERWISE
6000 ; SET FOR ALL CACHE.
6001 ;
6002 ; OUTPUTS:
6003 ; .NCACH - NUMBER OF CACHES TO USE.
6004 ; .CACHN - NUMBERS OF THE CACHES TO BE USED.
6005 ;-
6006
6007 013354 105737 000027' $GETCA::TSTB .DCSW ; IF LAST CONFIGURATION INDICATED
6008 013360 002417 BLT 20$
6009 013362 012700 001242' MOV #DGCFNM,R0 ; THEN FIND CONFIGURATION FILE.
6010 013366 CALL $LOOKUP
013366 004737 007024' JSR PC,$LOOKUP
6011 013372 103030 BCC 50$
6012 013374 122737 000000G 000470' CMPB #IE.NSF,.SYSTA ; IF NO FILE
6013 013402 001060 BNE 90$
6014 013404 PRINT #TGCNFL ; (NO FILE, OPERATOR !)
013404 012700 002352' MOV #TGCNFL,R0
013410 004737 025164' JSR PC,$TTMSG
6015 013414 105237 000027' 10$: INCB .DCSW ; THEN CONFIGURE ALL 4.
6016 013420 012701 000051' 20$: MOV #.CACHN,R1 ; FIX TABLES
6017 013424 005004 CLR R4
6018 013426 110421 30$: MOVB R4,(R1)+
6019 013430 005204 INC R4
6020 013432 022704 000004 CMP #4,R4 ; FOR FOUR CACHES.
6021 013436 001373 BNE 30$
6022 013440 110437 000050' MOVB R4,.NCACH
6023 013444 RETURN
013444 000207 RTS PC
6024 013446 40$: CALL $READS
013446 004737 007516' JSR PC,$READS
6025 013452 103434 BCS 90$
6026 013454 50$: CALL $READC ; GET A RECORD
013454 004737 007460' JSR PC,$READC
6027 013460 103431 BCS 90$
6028 013462 022700 000002 CMP #2,R0 ; IF IT IS THE CACHE RECORD,
6029 013466 001405 BEQ 60$ ; THEN PROCESS IT.
6030 013470 005700 TST R0 ; IF NOT END-OF-FILE
6031 013472 001365 BNE 40$ ; THEN GET NEW RECORD.
6032 013474 CALL $CLOSE ; OTHERWISE CLOSE FILE
013474 004737 006320' JSR PC,$CLOSE
6033 013500 000745 BR 10$ ; AND USE ALL CACHES.
6034 013502 60$: CALL $READB ; PICK UP
013502 004737 007662' JSR PC,$READB
6035 013506 103416 BCS 90$
6036 013510 110004 MOVB R0,R4 ; NUMBER OF CACHES
6037 013512 001410 BEQ 80$
6038 013514 010002 MOV R0,R2 ; AND
6039 013516 012701 000051' MOV #.CACHN,R1
6040 013522 70$: CALL $READB
013522 004737 007662' JSR PC,$READB
6041 013526 103406 BCS 90$
KLIGC -- SET CACHE CONFIGURATIO MACRO M1110 12-OCT-79 14:10 PAGE 140-1
$GETCA -- SET CACHE CONFIGURATION TABLES
6042 013530 110021 MOVB R0,(R1)+ ; AND CACHE NUMBERS.
6043 013532 077205 SOB R2,70$
6044 013534 110437 000050' 80$: MOVB R4,.NCACH ; SET THE NUMBER OF CACHES
6045 013540 CALLR $CLOSE ; AND ALL FINISHED.
013540 000137 006320' JMP $CLOSE
6046 013544 90$: CALL $PURGE ; ERROR EXIT.
013544 004737 007366' JSR PC,$PURGE
6047 013550 000261 SEC
6048 013552 RETURN
013552 000207 RTS PC
KLIGM -- SET UP MEMORY CONFIGUR MACRO M1110 12-OCT-79 14:10 PAGE 141
$GETCA -- SET CACHE CONFIGURATION TABLES
6051 .TITLE KLIGM -- SET UP MEMORY CONFIGURATION TABLES
6052 013554 IDENT$ 11,04,KLI$$F
.IDENT /B11040/
6053 ;
6054 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
6055 ;
6056 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
6057 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
6058 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
6059 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
6060 ;
6061 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
6062 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
6063 ; EQUIPMENT CORPORATION.
6064 ;
6065 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
6066 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
6067 ;
6068 ; VERSION 11-04
6069 ;
6070 ; ALAN D. PECKHAM 12-APR-77
6071 ;
6072 ; MODIFIED BY:
6073 ;
6074 ; R. BELANGER 02-MAR-79 ADD REVERSE MEMORY CONFIGURATION
6075 ; TCO 4.2204
6076 ; R. BELANGER 25-JUL-78 INTEGRATE MOS CONFIGURATOR
6077 ;
6078 ; FUNCTION: THIS MODULE SETS UP THE MEMORY CONFIGURATION TABLES TO REFLECT
6079 ; THE LAST MEMORY CONFIGURATION OR TO USE ALL MEMORY AVAILABLE.
KLIGM -- SET UP MEMORY CONFIGUR MACRO M1110 12-OCT-79 14:10 PAGE 142
$GETCA -- SET CACHE CONFIGURATION TABLES
6081 ;
6082 ; LOCAL DATA
6083 ;
6084 001262 .PSECT DATA,D
6085 001262 DGMFNM:
6086 001262 043240 000000 000000 .RAD50 /KL CFG/ ; CONFIGURATION FILE NAME.
001270 011667
6087 001272 000000 .WORD 0 ; GET LATEST VERSION.
6088 001274 005 005 .BYTE 5,5
6089 001276 054523 000000 .WORD "SY,0
6090 002421 .PSECT TEXT,D
6091 002421 TGMNFL:
6092 002421 WARNING <NO FILE - ALL MEMORY BEING CONFIGURED>
002421 045 040 116 .ASCIZ \% NO FILE - ALL MEMORY BEING CONFIGURED\
002424 117 040 106
002427 111 114 105
002432 040 055 040
002435 101 114 114
002440 040 115 105
002443 115 117 122
002446 131 040 102
002451 105 111 116
002454 107 040 103
002457 117 116 106
002462 111 107 125
002465 122 105 104
002470 000
6093 013554 .PSECT
KLIGM -- SET UP MEMORY CONFIGUR MACRO M1110 12-OCT-79 14:10 PAGE 143
$GETMM -- SET UP MEMORY CONFIGURATION TABLES
6095 .SBTTL $GETMM -- SET UP MEMORY CONFIGURATION TABLES
6096 ;+
6097 ; GET THE LAST CONFIGURATION FROM THE CONFIGURATION FILE. IF THERE IS NO
6098 ; FILE, THEN CONFIGURE FOR ALL MEMORY.
6099 ;
6100 ; OUTPUTS:
6101 ; .DMSW - MADE NEGATIVE IF ALL MEMORY IS TO BE CONFIGURED (NO FILE).
6102 ; .CTLTP - TABLE OF DESIRED CONTROLLERS
6103 ; .CFGTB - TABLE OF CONFIGURATION MASKS
6104 ; .CFMRV - FORWARD/REVERSE CONFIGURATION INDICATOR
6105 ;-
6106
6107 013554 $GETMM::
6108 013554 105037 000040' CLRB .MFCT ; INIT COUNTER TO ZERO
6109 013560 012701 000040 MOV #CTLS,R1 ; INIT COUNTER
6110 013564 012700 000120' MOV #.CFGTB,R0 ; TABLE POINTER TO R0
6111 013570 112761 177777 000056' MOVB #-1,.CTLTP(R1) ; [TCO 4.2204] INIT ".CFMRV" CONTROLLER TYPE TO -1
6112 013576 10$:
6113 013576 012720 100000 MOV #BIT15,(R0)+ ; INVALIDATE THE CONFIGURATION TABLE
6114 013602 105061 000055' CLRB .CTLTP-1(R1) ; AND THE CONTROLLER TABLE
6115 013606 077105 SOB R1,10$ ; LOOP TILL DONE
6116 013610 005010 CLR (R0) ; [TCO 4.2204] INIT TO FORWARD CONFIGURATION
6117 013612 012700 001262' MOV #DGMFNM,R0 ; LOOK FOR CONFIGURATION FILE
6118 013616 CALL $LOOKUP
013616 004737 007024' JSR PC,$LOOKUP
6119 013622 103016 BCC 50$
6120 013624 122737 000000G 000470' CMPB #IE.NSF,.SYSTA ; IF NO FILE
6121 013632 001070 BNE 90$ ; OTHER ERROR -- FATAL
6122 013634 PRINT #TGMNFL ; (NO FILE, OPERATOR !)
013634 012700 002421' MOV #TGMNFL,R0
013640 004737 025164' JSR PC,$TTMSG
6123 013644 20$:
6124 013644 105337 000030' DECB .DMSW ; THEN USE ALL MEMORY.
6125 013650 30$:
6126 013650 RETURN ; TO CALLER
013650 000207 RTS PC
6127 ;
6128 ; HERE TO SKIP PRECEEDING NON-CONTROLLER RECORDS
6129 ;
6130 013652 40$:
6131 013652 CALL $READS
013652 004737 007516' JSR PC,$READS
6132 013656 103456 BCS 90$
6133 013660 50$:
6134 013660 CALL $READC ; GET A RECORD.
013660 004737 007460' JSR PC,$READC
6135 013664 103453 BCS 90$
6136 013666 022700 000001 CMP #1,R0 ; IF IT A CONTROLLER RECORD
6137 013672 001404 BEQ 60$ ; THEN PROCESS, OTHERWISE
6138 013674 002766 BLT 40$ ; IF NOT END OF FILE, GET ANOTHER.
6139 013676 CALL $CLOSE ; IF NO CONTROLLER RECORDS
013676 004737 006320' JSR PC,$CLOSE
6140 013702 000760 BR 20$ ; THEN USE ALL MEMORY.
6141 ;
6142 ;
6143 ; HERE TO READ AND PROCESS A CONTROLLER RECORD
6144 ;
KLIGM -- SET UP MEMORY CONFIGUR MACRO M1110 12-OCT-79 14:10 PAGE 143-1
$GETMM -- SET UP MEMORY CONFIGURATION TABLES
6145 013704 60$:
6146 013704 CALL $READB ; GET A CONTROLLER INDEX
013704 004737 007662' JSR PC,$READB
6147 013710 103441 BCS 90$
6148 013712 010001 MOV R0,R1 ; COPY TO R1
6149 013714 CALL $READB ; GET CONTROLLER TYPE.
013714 004737 007662' JSR PC,$READB
6150 013720 103435 BCS 90$
6151 013722 110061 000056' MOVB R0,.CTLTP(R1) ; SET IN TABLE
6152 013726 CALL $READW ; GET CONFIGURATION MASK
013726 004737 007566' JSR PC,$READW
6153 013732 103430 BCS 90$
6154 013734 006301 ASL R1 ; WORD INDEX
6155 013736 010061 000120' MOV R0,.CFGTB(R1) ; SET THAT IN THE TABLE
6156 013742 002413 BLT 80$ ; GO ON IF NOT DESIRED
6157 013744 006201 ASR R1 ; BACK TO BYTE INDEX
6158 013746 122761 000005 000056' CMPB #5,.CTLTP(R1) ; IS THIS ONE AN MF20??
6159 013754 001006 BNE 80$ ; NO -- GO ON
6160 013756 105237 000040' INCB .MFCT ; YES -- MARK THAT WE EXPECT AT LEAST THIS ONE
6161 013762 000403 BR 80$ ; AND TRY FOR NEXT RECORD
6162 ;
6163 ;
6164 ; HERE TO SKIP TRAILING NON-CONTROLLER RECORDS
6165 ;
6166 013764 70$:
6167 013764 CALL $READS ; BYPASS RECORD.
013764 004737 007516' JSR PC,$READS
6168 013770 103411 BCS 90$
6169 013772 80$:
6170 013772 CALL $READC ; GET ANOTHER RECORD
013772 004737 007460' JSR PC,$READC
6171 013776 103406 BCS 90$ ; AND
6172 014000 022700 000001 CMP #1,R0 ; IF A CONTROLLER RECORD
6173 014004 001737 BEQ 60$ ; THEN PROCESS, OTHERWISE
6174 014006 002766 BLT 70$ ; REJECT RECORDS UNTIL EOF.
6175 014010 CALLR $CLOSE ; CLOSE FILE AND RETURN.
014010 000137 006320' JMP $CLOSE
6176 ;
6177 014014 90$:
6178 014014 CALL $PURGE
014014 004737 007366' JSR PC,$PURGE
6179 014020 000261 SEC ; SO RETURN WITH ERROR.
6180 014022 RETURN
014022 000207 RTS PC
KLIGT -- READ MF20 TIMING FILE MACRO M1110 12-OCT-79 14:10 PAGE 144
$GETMM -- SET UP MEMORY CONFIGURATION TABLES
6182 .TITLE KLIGT -- READ MF20 TIMING FILE DATA
6183 014024 IDENT$ 10,0,KLI$$F
.IDENT /B10000/
6184 ;
6185 ; COPYRIGHT (C) 1975, 1978 BY
6186 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
6187 ;
6188 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
6189 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
6190 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
6191 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
6192 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
6193 ;
6194 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
6195 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
6196 ; CORPORATION.
6197 ;
6198 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
6199 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
6200 ;
6201 ;
6202 ; MODULE: MF20 TIMING FILE INPUT
6203 ;
6204 ; VERSION: 10-00
6205 ;
6206 ; DATE: 22-MAY-78
6207 ;
6208 ; AUTHOR: R. BELANGER
6209 ;
6210 ; MODIFICATIONS:
6211 ;
6212 ; NO. DATE PROGRAMMER REASON
6213 ; --- ---- ---------- ------
6214
6215 002471 .PSECT TEXT,D
6216 002471 TGTCKE:
6217 002471 ERROR <MF20 TIMING FILE CHECKSUM ERROR>
002471 077 040 115 .ASCIZ \? MF20 TIMING FILE CHECKSUM ERROR\
002474 106 062 060
002477 040 124 111
002502 115 111 116
002505 107 040 106
002510 111 114 105
002513 040 103 110
002516 105 103 113
002521 123 125 115
002524 040 105 122
002527 122 117 122
002532 000
6218 002533 TGTNFL:
6219 002533 ERROR <NO MF20 TIMING FILE>
002533 077 040 116 .ASCIZ \? NO MF20 TIMING FILE\
002536 117 040 115
002541 106 062 060
002544 040 124 111
002547 115 111 116
002552 107 040 106
KLIGT -- READ MF20 TIMING FILE MACRO M1110 12-OCT-79 14:10 PAGE 144-1
$GETMM -- SET UP MEMORY CONFIGURATION TABLES
002555 111 114 105
002560 000
6220 002561 TGTIFF:
6221 002561 ERROR <ILLEGAL MF20 TIMING FILE FORMAT>
002561 077 040 111 .ASCIZ \? ILLEGAL MF20 TIMING FILE FORMAT\
002564 114 114 105
002567 107 101 114
002572 040 115 106
002575 062 060 040
002600 124 111 115
002603 111 116 107
002606 040 106 111
002611 114 105 040
002614 106 117 122
002617 115 101 124
002622 000
6222 002623 TGTRFE:
6223 002623 ERROR <MF20 TIMING FILE READ ERROR>
002623 077 040 115 .ASCIZ \? MF20 TIMING FILE READ ERROR\
002626 106 062 060
002631 040 124 111
002634 115 111 116
002637 107 040 106
002642 111 114 105
002645 040 122 105
002650 101 104 040
002653 105 122 122
002656 117 122 000
6224 014024 .PSECT
KLIGT -- READ MF20 TIMING FILE MACRO M1110 12-OCT-79 14:10 PAGE 145
$GETTF -- READ MF20 TIMING FILE DATA
6226 .SBTTL $GETTF -- READ MF20 TIMING FILE DATA
6227
6228 ;+
6229 ; $GETTF -- SUBROUTINE TO READ AND DEASCIIZE AN MF20 TIMING RAM DATA FILE
6230 ;
6231 ; INPUTS:
6232 ;
6233 ; R0 -- POINTS TO CALLER'S BUFFER
6234 ; TMFLNM -- TIMING FILE FILENAME
6235 ;
6236 ; OUTPUTS:
6237 ;
6238 ; R0 - R5 UNCHANGED
6239 ; DATA IS IN CALLER'S BUFFER
6240 ; CC-C SET ON ERROR; CLEAR ON SUCCESS
6241 ;-
6242
6243 014024 $GETTF::
6244 014024 RDATIM::
6245 014024 CALL R5,$RSAVE ; SAVE REGISTERS
014024 004537 021764' JSR R5,$RSAVE
6246 014030 012705 000000G MOV #TMFLNM,R5 ; POINT TO THE ASCII FILENAME
6247 014034 010004 MOV R0,R4 ; DESTINATION POINTER TO R4
6248 014036 012700 000442' MOV #.USRFN,R0 ; POINT TO USER FILENAME BLOCK
6249 014042 PUSH R0 ; SAVE R0 FOR LATER
014042 010046 MOV R0,-(SP)
6250 014044 CALL $TRF2B ; LOAD THE FILENAME BLOCK
014044 004737 022660' JSR PC,$TRF2B
6251 014050 POP R0 ; RESTORE FILNAME BLOCK POINTER
014050 012600 MOV (SP)+,R0
6252 014052 CALL $LOOKUP ; LOOKUP THE FILE
014052 004737 007024' JSR PC,$LOOKUP
6253 014056 103013 BCC 20$ ; FOUND THE FILE OK
6254 014060 022737 000000G 000470' CMP #IE.NSF,.SYSTA ; DOES THE FILE EXIST??
6255 014066 001005 BNE 10$ ; YES -- CALL ERROR ROUTINE
6256 014070 PRINT #TGTNFL ; NO -- SAY SO AND QUIT
014070 012700 002533' MOV #TGTNFL,R0
014074 004737 025164' JSR PC,$TTMSG
6257 014100 000467 BR RTFXIT ; EXIT
6258 ;
6259 014102 10$:
6260 014102 CALLR $IOERR ; REPORT THE ERROR AND QUIT
014102 000137 006610' JMP $IOERR
6261 ;
6262 ;
6263 ; MAIN CONVERSION LOOP
6264 ;
6265 ; THIS LOOP CONVERTS THE DATA IN AN ASCIIZED "A11" FORMAT FILE TO BINARY.
6266 ;
6267 ; RECORDS WHICH BEGIN WITH A SEMI-COLON (COMMENT) ARE SIMPLY SKIPPED OVER
6268 ;
6269 ; RECORDS WHICH BEGIN WITH AN "E<SPACE>" ARE CONVERTED TO BINARY AND RETURNED TO
6270 ; THE CALLER
6271 ;
6272 ; ANY OTHER FORMAT CONSTITUTES A FATAL ERROR
6273 ;
6274 ; REGISTER SUMMARY:
KLIGT -- READ MF20 TIMING FILE MACRO M1110 12-OCT-79 14:10 PAGE 145-1
$GETTF -- READ MF20 TIMING FILE DATA
6275 ;
6276 ; R0 -- LAST CHARACTER READ FROM FILE
6277 ; R1 -- LAST WORD CONVERTED FROM FILE
6278 ; R2 -- RECORD WORD COUNT
6279 ; R4 -- TRANSFER POINTER
6280 ; R5 -- CHECKSUM
6281 ;
6282 014106 20$:
6283 014106 CALL $READC ; READ THE RECORD BYTE COUNT
014106 004737 007460' JSR PC,$READC
6284 ; AND RETURN FIRST WORD IN R0
6285 014112 103454 BCS RTFERR ; ERROR IF CC-C SET
6286 014114 122700 000073 CMPB #';,R0 ; IS IT A COMMENT LINE??
6287 014120 001410 BEQ 40$ ; YES -- GO EAT IT UP
6288 014122 022700 020105 CMP #"E ,R0 ; NO -- IS IT A DATA LINE??
6289 014126 001411 BEQ 50$ ; YES -- GO CONVERT IT
6290 014130 30$:
6291 014130 PRINT #TGTIFF ; NO -- COMPLAIN
014130 012700 002561' MOV #TGTIFF,R0
014134 004737 025164' JSR PC,$TTMSG
6292 014140 000445 BR RTFERX ; AND EXIT
6293 ;
6294 ;
6295 ; HERE TO READ AND DISCARD A COMMENT LINE
6296 ;
6297 014142 40$:
6298 014142 CALL $READS ; SKIP OVER THIS RECORD
014142 004737 007516' JSR PC,$READS
6299 014146 103436 BCS RTFERR ; ERROR IF CC-C IS SET
6300 014150 000756 BR 20$ ; GO START THE NEXT RECORD
6301 ;
6302 ;
6303 ; HERE TO READ AND CONVERT A DATA LINE
6304 ;
6305 014152 50$:
6306 014152 005005 CLR R5 ; RESET THE CHECKSUM
6307 ;
6308 ; READ THE RECORD DATA WORD COUNT
6309 ; IF .EQ. 0, THEN WE ARE AT THE LOGICAL END-OF-FILE
6310 ;
6311 014154 CALL CNVWRD ; CONVERT THE WORD COUNT
014154 004737 014272' JSR PC,CNVWRD
6312 014160 103437 BCS RTFXIT ; ERROR IF CC-C IS SET
6313 014162 010102 MOV R1,R2 ; WORD COUNT TO R2
6314 014164 001425 BEQ 70$ ; LOGICAL END-OF-FILE IF .EQ. 0
6315 ;
6316 ; CONVERT AND DISCARD THE ADDRESS POINTER (FIXED-ADDRESS FILES ONLY)
6317 ;
6318 014166 CALL CNVWRD ; GET OVER THE ADDRESS WORD
014166 004737 014272' JSR PC,CNVWRD
6319 014172 103432 BCS RTFXIT ; ERROR IF CC-C IS SET
6320 ;
6321 ; THIS LOOP CONVERTS ALL WORDS IN ONE RECORD
6322 ;
6323 014174 60$:
6324 014174 CALL CNVWRD ; CONVERT THE DATA
014174 004737 014272' JSR PC,CNVWRD
KLIGT -- READ MF20 TIMING FILE MACRO M1110 12-OCT-79 14:10 PAGE 145-2
$GETTF -- READ MF20 TIMING FILE DATA
6325 014200 103427 BCS RTFXIT ; ERROR IF CC-C IS SET
6326 014202 122700 000054 CMPB #',,R0 ; DELIMITER OK??
6327 014206 001350 BNE 30$ ; NO -- COMPLAIN AND DIE
6328 014210 010124 MOV R1,(R4)+ ; YES -- RETURN CONVERTED WORD TO CALLER
6329 014212 077210 SOB R2,60$ ; GET ALL WORDS FROM THIS RECORD
6330 ;
6331 ; NOW VERIFY CHECKSUM
6332 ;
6333 014214 CALL CNVCHK ; READ THE CHECKSUM
014214 004737 014264' JSR PC,CNVCHK
6334 014220 103417 BCS RTFXIT ; ERROR IF CC-C IS SET
6335 014222 005705 TST R5 ; IS THE CHECKSUM OK??
6336 014224 001730 BEQ 20$ ; YES -- GO ON TO THE NEXT RECORD
6337 014226 PRINT #TGTCKE ; NO -- COMPLAIN
014226 012700 002471' MOV #TGTCKE,R0
014232 004737 025164' JSR PC,$TTMSG
6338 014236 000406 BR RTFERX ; AND EXIT
6339 ;
6340 ;
6341 ; HERE TO CLOSE THE FILE AND RETURN SUCCESS
6342 ;
6343 014240 70$:
6344 014240 CALLR $CLOSE ; CLOSE THE FILE AND EXIT
014240 000137 006320' JMP $CLOSE
6345 ;
KLIGT -- READ MF20 TIMING FILE MACRO M1110 12-OCT-79 14:10 PAGE 146
$GETTF -- READ MF20 TIMING FILE DATA
6347 ;
6348 ; READ ERROR ROUTINE
6349 ;
6350 014244 RTFERR:
6351 014244 PRINT #TGTRFE ; ERROR MESSAGE
014244 012700 002623' MOV #TGTRFE,R0
014250 004737 025164' JSR PC,$TTMSG
6352 ;
6353 ; CLOSE FILE FOR ERROR RETURN
6354 ;
6355 014254 RTFERX:
6356 014254 CALL $CLOSE ; CLOSE THE FILE
014254 004737 006320' JSR PC,$CLOSE
6357 014260 RTFXIT:
6358 014260 000261 SEC ; SET THE ERROR FLAG
6359 014262 RETURN ; TO CALLER
014262 000207 RTS PC
6360 ;
6361 ; MAIN CONVERSION SUBROUTINE
6362 ;
6363 ; UP TO THREE BYTES ARE READ FROM THE FILE AND CONVERTED TO BINARY
6364 ; THE RECORD CHECKSUM IS ALSO ACCUMULATED BY THIS ROUTINE
6365 ;
6366 ; INPUTS:
6367 ;
6368 ; NONE
6369 ;
6370 ; OUTPUTS:
6371 ;
6372 ; R0 -- LAST CHARACTER FROM FILE
6373 ; R1 -- CONVERTED WORD
6374 ; R5 -- UPDATED CHECKSUM
6375 ;
6376 .ENABL LSB
6377 014264 CNVCHK:
6378 014264 013703 000476' MOV .SYIRC,R3 ; SYNCHRONIZE THE BYTE COUNTS
6379 014270 000402 BR 10$ ; COMPUTE THE FINAL CHECKSUM
6380 ;
6381 014272 CNVWRD:
6382 014272 012703 000004 MOV #4,R3 ; MAXIMUM FIELD WIDTH IS 4 BYTES
6383 014276 10$:
6384 014276 005001 CLR R1 ; INIT RETURNED WORD
6385 014300 20$:
6386 014300 CALL $READB ; READ A BYTE FROM THE FILE
014300 004737 007662' JSR PC,$READB
6387 014304 103757 BCS RTFERR ; ERROR IF CC-C IS SET
6388 014306 122700 000054 CMPB #',,R0 ; NO -- END-OF-FIELD??
6389 014312 001413 BEQ 30$ ; YES -- EXIT
6390 014314 PUSH R0 ; NO -- CONVERT IT
014314 010046 MOV R0,-(SP)
6391 014316 042716 177700 BIC #^C77,(SP) ; SO
6392 014322 006301 ASL R1 ; POSITION PREVIOUS BYTE
6393 014324 006301 ASL R1 ; SO
6394 014326 006301 ASL R1 ; ...
6395 014330 006301 ASL R1 ; ...
6396 014332 006301 ASL R1 ; ...
6397 014334 006301 ASL R1 ; DONE
KLIGT -- READ MF20 TIMING FILE MACRO M1110 12-OCT-79 14:10 PAGE 146-1
$GETTF -- READ MF20 TIMING FILE DATA
6398 014336 052601 BIS (SP)+,R1 ; SET THE NEW BYTE IN THE WORD
6399 014340 077321 SOB R3,20$ ; AND TRY AGAIN
6400 014342 30$:
6401 014342 060105 ADD R1,R5 ; UPDATE CHECKSUM
6402 014344 000241 CLC ; INSURE CC-C IS CLEAR
6403 014346 RETURN ; TO CALLER
014346 000207 RTS PC
6404
6405 .DSABL LSB
KLIMR -- KL RESET ROUTINES MACRO M1110 12-OCT-79 14:10 PAGE 147
$GETTF -- READ MF20 TIMING FILE DATA
6407 .TITLE KLIMR -- KL RESET ROUTINES
6408 014350 IDENT$ 5,0
.IDENT /005000/
6409 ;
6410 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
6411 ;
6412 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
6413 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
6414 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
6415 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
6416 ;
6417 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
6418 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
6419 ; EQUIPMENT CORPORATION.
6420 ;
6421 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
6422 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
6423 ;
6424 ; VERSION 05-00
6425 ;
6426 ; ALAN D. PECKHAM 29-MAR-77
6427 ;
6428 ; MODIFIED BY:
6429 ;
6430 ; FUNCTION: THIS MODULE CONTAINS THE ROUTINES TO DO A FULL MASTER RESET
6431 ; AND A PARTIAL RESET FOR RAM ADDRESS CLEARING.
6432 ;
KLIMR -- KL RESET ROUTINES MACRO M1110 12-OCT-79 14:10 PAGE 148
$GETTF -- READ MF20 TIMING FILE DATA
6434 ;
6435 ; LOCAL DATA
6436 ;
6437 001302 .PSECT DATA,D
6438 001302 035000 001432' .WORD 72*400,DMRKW2 ; SELECT KW20/22 FOR MOS SYSTEMS
6439 001306 022000 000000' DMRMRT: .WORD .LDSEL/2,.ZERO ; CLOCK LOAD FUNC #44
6440 001312 100000 .WORD .STPCL/2+BIT15 ; STOP THE CLOCK
6441 001314 103400 .WORD .SETMR/2+BIT15 ; SET RESET
6442 001316 023000 000000' .WORD .LDCK1/2,.ZERO ; LOAD CLK PARITY CHECK & FS CHECK
6443 001322 023400 000000' .WORD .LDCK2/2,.ZERO ; LOAD CLK MBOX CYCLE DISABLES,
6444 ; PARITY CHECK, ERROR STOP ENABLE
6445 001326 021000 000000' .WORD .LDBRR/2,.ZERO ; LOAD BURST COUNTER (8,4,2,1)
6446 001332 021400 000000' .WORD .LDBRL/2,.ZERO ; LOAD BURST COUNTER (128,64,32,16)
6447 001336 022400 000000' .WORD .LDDIS/2,.ZERO ; LOAD EBOX CLOCK DISABLE
6448 001342 100400 .WORD .STRCL/2+BIT15 ; START THE CLOCK
6449 001344 034000 000000' .WORD .INICL/2,.ZERO ; INIT CHANNELS
6450 001350 021000 000000' .WORD .LDBRR/2,.ZERO ; LOAD BURST COUNTER (8,4,2,1)
6451 001354 000000 .WORD 0
6452 001356 102000 .WORD .CECLK/2+BIT15 ; CONDITIONAL SINGLE STEP
6453 001360 103000 .WORD .CLRMR/2+BIT15 ; CLEAR RESET
6454 001362 033400 000000' .WORD .EIOJA/2,.ZERO ; ENABLE KL STL DECODING OF CODES & AC'S
6455 001366 037000 000000' .WORD .MEMRS/2,.ZERO ; SET KL10 MEM RESET FLOP
6456 001372 034400 001400' .WORD .WRMBX/2,DMRMMR ; WRITE M-BOX
6457 001376 000000 .WORD 0
6458 001400 DMRMMR: WD36$ 0 12 ; FOR MEMORY RESET
001400 012 000 000 .BYTE BY$$0,BY$$1,BY$$2
001403 000 000 .BYTE BY$$3,BY$$4
6459 .EVEN
6460
6461 001406 007000 DMRSRT: .WORD .SETMR ; SET RESET.
6462 001410 001000 .WORD .STRCL ; START THE CLOCK.
6463 001412 000000 .WORD .STPCL ; STOP THE CLOCK.
6464 001414 004000 .WORD .CECLK ; CONDITIONAL SINGLE STEP.
6465 001416 006000 .WORD .CLRMR ; CLEAR RESET.
6466 000005 DMRSRL = .-DMRSRT/2 ; LENGTH OF TABLE.
6467 001420 DMRBF: WD36$ 0 0 ; GENERAL BIT BUCKET.
001420 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
001423 000 000 .BYTE BY$$3,BY$$4
6468 001425 DMRMOS: WD36$ 0 10 ; CLOCK PARAMETERS FOR MOS
001425 010 000 000 .BYTE BY$$0,BY$$1,BY$$2
001430 000 000 .BYTE BY$$3,BY$$4
6469 001432 DMRKW2: WD36$ 0 3 ; KW-20/22 SELECT CODE
001432 003 000 000 .BYTE BY$$0,BY$$1,BY$$2
001435 000 000 .BYTE BY$$3,BY$$4
6470 .EVEN
6471 002661 .PSECT TEXT,D
6472 002661 TMRMFL: ERROR <MASTER RESET FAILED>
002661 077 040 115 .ASCIZ \? MASTER RESET FAILED\
002664 101 123 124
002667 105 122 040
002672 122 105 123
002675 105 124 040
002700 106 101 111
002703 114 105 104
002706 000
6473 014350 .PSECT
KLIMR -- KL RESET ROUTINES MACRO M1110 12-OCT-79 14:10 PAGE 149
$KLMR -- DO A MASTER RESET ON THE KL
6475 .SBTTL $KLMR -- DO A MASTER RESET ON THE KL
6476 ;+
6477 ; RESET THE KL PROCESSOR.
6478 ;
6479 ; NO INPUTS
6480 ;
6481 ; OUTPUTS:
6482 ; THE CARRY IS SET ON ANY ERROR AND AN ERROR MESSAGE IS DISPLAYED.
6483 ;-
6484
6485 014350 004537 021764' $KLMR:: JSR R5,$RSAVE
6486 014354 TRACK MR
014354 004037 014366' JSR R0,64$
014360 051115 .WORD "MR
014362 000000 .WORD
014364 000000 .WORD
014366 004737 022032' 64$: JSR PC,$TRACK
014372 012600 MOV (SP)+,R0
6487 014374 012700 010000 MOV #.CLRUN,R0
6488 014400 CALL $DFXC ; CLEAR RUN
014400 004737 013222' JSR PC,$DFXC
6489 014404 103452 BCS 80$ ; TIMEOUT ERROR
6490 014406 012737 000100 000266' MOV #DRESET,.DTEDT ; RESET BIT TO .DTEDT
6491 014414 CALL $DTRW2 ; WRITE DTE-20 DIAG 2
014414 004737 021702' JSR PC,$DTRW2
6492 014420 103444 BCS 80$ ; ERROR
6493 014422 012737 053101 000266' MOV #DON10C!ERR10C!INT11C!PERCLR!DON11C!ERR11C,.DTEDT
6494 ; CLEAR DTE-20 STATUS
6495 014430 CALL $DTRWS ; WRITE IT
014430 004737 021712' JSR PC,$DTRWS
6496 014434 103436 BCS 80$
6497 014436 012703 001306' MOV #DMRMRT,R3 ; SET UP TABLE AND
6498 014442 105737 000037' TSTB .MFSW ; SEE IF A MOS SYSTEM
6499 014446 003401 BLE 5$ ; NO -- GO ON
6500 014450 024343 CMP -(R3),-(R3) ; YES -- BE SURE TO SELECT KW20/22
6501 014452 5$:
6502 014452 CALL LMRDFN ; DO FIRST SET OF FUNCTIONS.
014452 004737 014546' JSR PC,LMRDFN
6503 014456 103425 BCS 80$
6504 014460 012702 000003 MOV #3,R2 ; SET UP MAX LOOP COUNT
6505 014464 012701 001420' MOV #DMRBF,R1 ; AND DIAGNOSTIC READ BUFFER.
6506 014470 012700 162000 10$: MOV #<162*1000>,R0 ; LOOK
6507 014474 CALL $DFRD ; FOR
014474 004737 012706' JSR PC,$DFRD
6508 014500 103414 BCS 80$
6509 014502 132711 000010 BITB #10,(R1) ; "A CHANGE COMING A L"
6510 014506 001406 BEQ 20$
6511 014510 012700 002000 MOV #.SSCLK,R0 ; SINGLE STEP THE MBOX
6512 014514 CALL $DFXC
014514 004737 013222' JSR PC,$DFXC
6513 014520 103404 BCS 80$
6514 014522 077216 SOB R2,10$ ; ONLY 3 TIMES MAX.
6515 014524 20$: CALL LMRDFN ; NOW FINISH THE JOB.
014524 004737 014546' JSR PC,LMRDFN
6516 014530 103005 BCC 90$
6517 014532 80$: PRINT #TMRMFL ; PRINT ERROR IF NEED BE.
014532 012700 002661' MOV #TMRMFL,R0
KLIMR -- KL RESET ROUTINES MACRO M1110 12-OCT-79 14:10 PAGE 149-1
$KLMR -- DO A MASTER RESET ON THE KL
014536 004737 025164' JSR PC,$TTMSG
6518 014542 000261 SEC
6519 014544 90$: RETURN
014544 000207 RTS PC
6520
6521 014546 012300 LMRDFN: MOV (R3)+,R0 ; FUNCTION TO BE PERFORMED
6522 014550 006300 10$: ASL R0 ; GET ITS TYPE
6523 014552 103004 BCC 20$ ; A WRITE OR
6524 014554 CALL $DFXC ; EXECUTE FUNCTION.
014554 004737 013222' JSR PC,$DFXC
6525 014560 103015 BCC 30$ ; SUCCESS
6526 014562 000416 BR 40$ ; OR FAILURE.
6527 014564 012301 20$: MOV (R3)+,R1
6528 014566 022700 044000 CMP #.LDSEL,R0 ; SET CLOCK PARAMETERS??
6529 014572 001005 BNE 25$ ; NO -- GO ON
6530 014574 105737 000037' TSTB .MFSW ; YES -- MOS IN SYSTEM??
6531 014600 003402 BLE 25$ ; NO -- GO ON
6532 014602 012701 001425' MOV #DMRMOS,R1 ; YES -- POINT TO MOS DEFAULT
6533 014606 25$:
6534 014606 CALL $DFWR
014606 004737 013020' JSR PC,$DFWR
6535 014612 103402 BCS 40$
6536 014614 012300 30$: MOV (R3)+,R0 ; IF MORE FUNCTIONS
6537 014616 001354 BNE 10$ ; THEN CONTINUE.
6538 014620 40$: RETURN
014620 000207 RTS PC
6539
6540 .SBTTL $KLSR -- SOFT RESET FOR RAM LOADERS
6541
6542 014622 $KLSR:: PUSH <R2,R1,R0>
014622 010246 MOV R2,-(SP)
014624 010146 MOV R1,-(SP)
014626 010046 MOV R0,-(SP)
6543 014630 TRACK SR
014630 004037 014642' JSR R0,64$
014634 051123 .WORD "SR
014636 000000 .WORD
014640 000000 .WORD
014642 004737 022032' 64$: JSR PC,$TRACK
014646 012600 MOV (SP)+,R0
6544 014650 012702 000005 MOV #DMRSRL,R2
6545 014654 012701 001406' MOV #DMRSRT,R1
6546 014660 012100 1$: MOV (R1)+,R0
6547 014662 CALL $DFXC
014662 004737 013222' JSR PC,$DFXC
6548 014666 103401 BCS 9$
6549 014670 077205 SOB R2,1$
6550 014672 9$: POP <R0,R1,R2>
014672 012600 MOV (SP)+,R0
014674 012601 MOV (SP)+,R1
014676 012602 MOV (SP)+,R2
6551 014700 RETURN
014700 000207 RTS PC
KLINI -- PROGRAM INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 150
$KLSR -- SOFT RESET FOR RAM LOADERS
6553 .TITLE KLINI -- PROGRAM INITIALIZATION
6554 014702 IDENT$ 12,06,KLI$$F
.IDENT /B12060/
6555 ;
6556 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
6557 ;
6558 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
6559 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
6560 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
6561 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
6562 ;
6563 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
6564 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
6565 ; EQUIPMENT CORPORATION.
6566 ;
6567 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
6568 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
6569 ;
6570 ; VERSION 12-06
6571 ;
6572 ; ALAN D. PECKHAM 14-APR-77
6573 ;
6574 ; MODIFIED BY:
6575 ;
6576 ; R. BELANGER 16-JUL-79 ADD HARDWARE ENVIRONMENT REPORTING
6577 ; TCO 4.2333
6578 ; R.BELANGER 06-DEC-78 MODIFY KEEP-ALIVE-CEASE HANDLING
6579 ; TCO 4.2107
6580 ;
6581 ; FUNCTION: THIS MODULE ASSIGNS NEEDED I/O DEVICES, LOCATES THE SYSTEM
6582 ; DIRECTORY, AND SETS DATA TO INDICATE INTERNAL
6583 ; REQUESTS AND KL CONDITIONS.
6584 ;
6585 ; LOCAL MACROS
6586 ;
6587 .MCALL ALUN$,QIOW$S,EXIT$S,CLEF$S
6588 .MACRO KLIVR$ KEY,FRM,VER,EDT,NUM
6589 .IF B,NUM
6590 .IF NB,FRM
6591 KLIVR$ \KEY,\FRM,\VER,\EDT,0
6592 .IFF
6593 KLIVR$ \KEY,200,\VER,\EDT,0
6594 .ENDC
6595 .MEXIT
6596 .IFF
6597 .IF GE,VER-10
6598 .IF GE,EDT-10
6599 MESSAGE <VERSION \<KEY><FRM>\'VER'-'EDT'\<200>\ RUNNING>
6600 .IFF
6601 MESSAGE <VERSION \<KEY><FRM>\'VER'-0'EDT'\<200>\ RUNNING>
6602 .ENDC
6603 .IFF
6604 .IF GE,EDT-10
6605 MESSAGE <VERSION \<KEY><FRM>\0'VER'-'EDT'\<200>\ RUNNING>
6606 .IFF
6607 MESSAGE <VERSION \<KEY><FRM>\0'VER'-0'EDT'\<200>\ RUNNING>
6608 .ENDC
KLINI -- PROGRAM INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 150-1
$KLSR -- SOFT RESET FOR RAM LOADERS
6609 .ENDC
6610 .ENDC
6611 .ENDM KLIVR$
6612 ;
6613 ; LOCAL DATA
6614 ;
6615 001440 .PSECT DATA,D
6616 001440 DNITTI:
6617 001440 ALUN$ TTILUN,TT,0
001440 007 004 .BYTE 7,4
001442 000001 .WORD TTILUN
001444 124 .ASCII /T/
001445 124 .ASCII /T/
001446 000000 .WORD 0
6618 001450 DNITTO:
6619 001450 ALUN$ TTOLUN,TT,0
001450 007 004 .BYTE 7,4
001452 000002 .WORD TTOLUN
001454 124 .ASCII /T/
001455 124 .ASCII /T/
001456 000000 .WORD 0
6621 001460 DNILPO:
6622 001460 ALUN$ TTOLUN,TT,0
001460 007 004 .BYTE 7,4
001462 000002 .WORD TTOLUN
001464 124 .ASCII /T/
001465 124 .ASCII /T/
001466 000000 .WORD 0
6624 001470 DNISYI:
6625 001470 ALUN$ SYILUN,SY,0
001470 007 004 .BYTE 7,4
001472 000004 .WORD SYILUN
001474 123 .ASCII /S/
001475 131 .ASCII /Y/
001476 000000 .WORD 0
6626 001500 DNISYO:
6627 001500 ALUN$ SYOLUN,SY,0
001500 007 004 .BYTE 7,4
001502 000005 .WORD SYOLUN
001504 123 .ASCII /S/
001505 131 .ASCII /Y/
001506 000000 .WORD 0
6628 001510 DNISYF:
6629 001510 ALUN$ SYFLUN,SY,0
001510 007 004 .BYTE 7,4
001512 000006 .WORD SYFLUN
001514 123 .ASCII /S/
001515 131 .ASCII /Y/
001516 000000 .WORD 0
6630 002707 .PSECT TEXT,D
6631 002707 TNINDV:
6632 002707 ERROR <CANNOT GET DEVICES>
002707 077 040 103 .ASCIZ \? CANNOT GET DEVICES\
002712 101 116 116
002715 117 124 040
002720 107 105 124
002723 040 104 105
KLINI -- PROGRAM INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 150-2
$KLSR -- SOFT RESET FOR RAM LOADERS
002726 126 111 103
002731 105 123 000
6633 002734 TNIN55:
6634 002734 ERROR <CANNOT FIND [5,5] DIRECTORY>
002734 077 040 103 .ASCIZ \? CANNOT FIND [5,5] DIRECTORY\
002737 101 116 116
002742 117 124 040
002745 106 111 116
002750 104 040 133
002753 065 054 065
002756 135 040 104
002761 111 122 105
002764 103 124 117
002767 122 131 000
6635 002772 TNIPRI:
6636 002772 ERROR <CANNOT RUN KLINIT WHILE KL IS IN PRIMARY PROTOCOL>
002772 077 040 103 .ASCIZ \? CANNOT RUN KLINIT WHILE KL IS IN PRIMARY PROTOCOL\
002775 101 116 116
003000 117 124 040
003003 122 125 116
003006 040 113 114
003011 111 116 111
003014 124 040 127
003017 110 111 114
003022 105 040 113
003025 114 040 111
003030 123 040 111
003033 116 040 120
003036 122 111 115
003041 101 122 131
003044 040 120 122
003047 117 124 117
003052 103 117 114
003055 000
6637 003056 TNIVER:
6638 003056 KLIVR$ KLI$$K,KLI$$F,KLI$$V,KLI$$E
003056 126 105 122 .ASCIZ \VERSION \<126><102>\12-12\<200>\ RUNNING\
003061 123 111 117
003064 116 040 126
003067 102 061 062
003072 055 061 062
003075 200 040 122
003100 125 116 116
003103 111 116 107
003106 000
6639 014702 .PSECT
KLINI -- PROGRAM INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 151
$INIT -- PROGRAM INITIALIZATION
6641 .SBTTL $INIT -- PROGRAM INITIALIZATION
6642 ;+
6643 ; GET KL FUNCTION WORD
6644 ;-
6645
6646 014702 $INIT::
6647 014702 105037 000024' CLRB .DLGSW ; CLEAR DIALOG SWITCH.
6648 014706 013737 000000G 000044' MOV .KLIWD,.KLISV ; SAVE .KLIWD
6649 014714 001003 BNE 10$
6650 014716 005037 000000G CLR .DATE3 ; CLEAR .DATE3 IF .KLIWD=0
6651 014722 000404 BR 20$
6652 ;
6653 014724 10$:
6654 014724 005037 000000G CLR .KLIWD ; CLEAR .KLIWD TO AVOID DOING THIS AGAIN
6655 014730 105337 000024' DECB .DLGSW ; AND INDICATE INTERNAL PATH TO BE TAKEN.
6656
6657 ;+
6658 ; ASSIGN LOGICAL UNIT NUMBERS (LUN) TO DEVICES
6659 ;-
6660
6661 014734 20$:
6662 014734 DIR$ #DNITTI ; SET TTILUN AS TT0:
014734 012746 001440' MOV #DNITTI,-(SP)
014740 104375 EMT 375
6663 014742 103430 BCS 30$
6664 014744 DIR$ #DNITTO ; SET TTOLUN AS TT0:
014744 012746 001450' MOV #DNITTO,-(SP)
014750 104375 EMT 375
6665 014752 103424 BCS 30$
6667 014754 DIR$ #DNILPO ; SET LPOLUN AS LP0:
014754 012746 001460' MOV #DNILPO,-(SP)
014760 104375 EMT 375
6668 014762 103420 BCS 30$
6670 014764 032737 000000G 000044' BIT #KL.KAC,.KLISV ; [TCO 4.2107] KEEP-ALIVE ERROR??
6671 014772 001130 BNE 80$ ; [TCO 4.2107] YES -- DON'T NEED SY:
6672 014774 DIR$ #DNISYI ; SET SYILUN AS SY0:
014774 012746 001470' MOV #DNISYI,-(SP)
015000 104375 EMT 375
6673 015002 103410 BCS 30$
6674 015004 DIR$ #DNISYO ; SET SYOLUN AS SY0:
015004 012746 001500' MOV #DNISYO,-(SP)
015010 104375 EMT 375
6675 015012 103404 BCS 30$
6676 015014 DIR$ #DNISYF ; SET SYFLUN AS SY0:
015014 012746 001510' MOV #DNISYF,-(SP)
015020 104375 EMT 375
6677 015022 103007 BCC 40$
6678 015024 30$:
6679 015024 PRINT #TNINDV ; CAN'T GET DEVICES
015024 012700 002707' MOV #TNINDV,R0
015030 004737 025164' JSR PC,$TTMSG
6680 015034 EXIT$S ; WE'RE THROUGH.
015034 012746 MOV (PC)+,-(SP)
015036 063 001 .BYTE 51.,1
015040 104375 EMT 375
6681 ;+
6682 ; FIND DIRECTORY FILE FROM MASTER FILE DIRECTORY
KLINI -- PROGRAM INITIALIZATION MACRO M1110 12-OCT-79 14:10 PAGE 151-1
$INIT -- PROGRAM INITIALIZATION
6683 ;-
6684 015042 40$:
6685 015042 QIOW$S #IO.FNA,#SYILUN,#1,,#.SYSTA,,<,,,,,#.SYFNB>
015042 012746 002562' MOV #.SYFNB,-(SP)
015046 005046 CLR -(SP)
015050 005046 CLR -(SP)
015052 005046 CLR -(SP)
015054 005046 CLR -(SP)
015056 005046 CLR -(SP)
015060 005046 CLR -(SP)
015062 012746 000470' MOV #.SYSTA,-(SP)
015066 005046 CLR -(SP)
015070 112716 000001 MOVB #1,(SP)
015074 012746 000004 MOV #SYILUN,-(SP)
015100 012746 000000G MOV #IO.FNA,-(SP)
015104 012746 MOV (PC)+,-(SP)
015106 003 014 .BYTE 3,$$$T1
015110 104375 EMT 375
6686 015112 103403 BCS 50$
6687 015114 105737 000470' TSTB .SYSTA
6688 015120 002007 BGE 60$
6689 015122 50$:
6690 015122 PRINT #TNIN55 ; NO DIRECTORY...
015122 012700 002734' MOV #TNIN55,R0
015126 004737 025164' JSR PC,$TTMSG
6691 015132 EXIT$S
015132 012746 MOV (PC)+,-(SP)
015134 063 001 .BYTE 51.,1
015136 104375 EMT 375
6692 015140 60$:
6693 015140 013737 002562' 002606' MOV .SYFNB+0,.SYFNB+24 ; MOVE UP DIRECTORY FID.
6694 015146 013737 002564' 002610' MOV .SYFNB+2,.SYFNB+26
6695 015154 013737 002566' 002612' MOV .SYFNB+4,.SYFNB+30
6696 ;+
6697 ; MAKE SURE SECONDARY PROTOCOL IS RUNNING
6698 ;-
6699 015162 105737 000024' TSTB .DLGSW ; IF NOT INTERNAL REQUEST
6700 015166 002416 BLT 70$
6701 015170 032737 000000G 000002G BIT #EF.PR1,.COMEF+2 ; CHECK CURRENT PROTOCOL.
6702 015176 001412 BEQ 70$ ; IF PRIMARY,
6703 015200 032737 000006 000000G BIT #6,.FEMOD ; AND CONSOLE IS IN
6704 015206 001006 BNE 70$ ; OPERATOR MODE, THEN
6705 015210 PRINT #TNIPRI ; REPRIMAND OPERATOR
015210 012700 002772' MOV #TNIPRI,R0
015214 004737 025164' JSR PC,$TTMSG
6706 015220 000137 021602' JMP $EXIT ; AND DIE.
6707 ;
6708 015224 70$:
6709 015224 052737 000000G 000002G BIS #EF.CRI,.COMEF+2 ; DECLARE COMM REGION INVALID
6710 015232 013737 000000G 000046' MOV .CPUSN,.SNSAV ; [TCO 4.2333] SAVE OLD SERIAL NUMBER
6711 015240 005037 000000G CLR .CPUSN ; [TCO 4.2333] ALLOW ENVRIONMENT READ
6712 015244 PRINT #TNIVER ; HELLO, OPERATOR !
015244 012700 003056' MOV #TNIVER,R0
015250 004737 025164' JSR PC,$TTMSG
6713 015254 80$: ; [TCO 4.2107]
6714 015254 RETURN
015254 000207 RTS PC
KLIPC -- KL PC READ FUNCTION MO MACRO M1110 12-OCT-79 14:10 PAGE 152
$INIT -- PROGRAM INITIALIZATION
6716 .TITLE KLIPC -- KL PC READ FUNCTION MODULE 7603.30
6717
6718 .IDENT "001010"
6719
6720 ; COPYRIGHT 1976, DIGITAL EQUIPMENT CORP., MARLBORO, MASSACHUSETTS 01752.
6721 ;
6722 ; THE MATERIAL INCLUDED IN THIS FUNCTIONAL SPECIFICATION, INCLUDING BUT
6723 ; NOT LIMITED TO, INSTRUCTION TIMES AND OPERATING SPEEDS IS FOR
6724 ; INFORMATION PURPOSES ONLY. ALL SUCH MATERIAL IS SUBJECT TO CHANGE
6725 ; WITHOUT NOTICE. CONSEQUENTLY DEC MAKES NO CLAIM AND SHALL NOT BE LIABLE
6726 ; FOR ITS ACCURACY.
6727 ;
6728 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS SOFTWARE
6729 ; ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
6730 ;
6731 ;
6732 ; MODULE: KL VMA BOARD READ FUNCTION
6733 ;
6734 ; VERSION: 01-01
6735 ;
6736 ; AUTHOR: R. BELANGER
6737 ;
6738 ; DATE: 7603.30
6739 ;
6740 ; THIS MODULE CONTAINS:
6741 ;
6742 ; 1) KL PC READ CODE
6743 ;
6744 ; LOCAL DATA
6745 ;
6746 003107 .PSECT TEXT,D
6747 003107 PCERRM:
6748 003107 ERROR <READ PC FAILED>
003107 077 040 122 .ASCIZ \? READ PC FAILED\
003112 105 101 104
003115 040 120 103
003120 040 106 101
003123 111 114 105
003126 104 000
6749 015256 .PSECT
KLIPC -- KL PC READ FUNCTION MO MACRO M1110 12-OCT-79 14:10 PAGE 153
$DFPC -- KL PC READ SUBROUTINE 7510.21
6751 .SBTTL $DFPC -- KL PC READ SUBROUTINE 7510.21
6752
6753 ;+
6754 ; $DFPC -- SUBROUTINE TO READ THE KL PROGRAM COUNTER REGISTER
6755 ;
6756 ; THESE SUBROUTINES READ AND ASSEMBLE THE DESIRED VMA BOARD REGISTER
6757 ; INTO A THREE WORD BLOCK POINTED TO BY R0 IN THE CALL.
6758 ;
6759 ; INPUT ARGUMENTS:
6760 ;
6761 ; R0 POINTS TO A THREE WORD BUFFER FOR THE SPECIFIED REGISTER
6762 ;
6763 ; OUTPUT ARGUMENTS:
6764 ;
6765 ; R0 POINTS TO A THREE WORD BUFFER FOR THE SPECIFIED REGISTER
6766 ;
6767 ; ERROR CODES RETURNED:
6768 ;
6769 ; CC-C SET ON ERROR.
6770 ;-
6771
6772 015256 $DFPC::
6773 015256 CALL R5,$RSAVE ; SAVE R5 - R1 ON THE STACK
015256 004537 021764' JSR R5,$RSAVE
6774 015262 012705 177776 MOV #-2,R5 ; BASE SHIFT COUNT TO R5
6775 015266 012704 000004 MOV #^D4,R4 ; ITERATION COUNT TO R4
6776 015272 010003 MOV R0,R3 ; USER BUFFER ADDRESS TO R3
6777 015274 012702 000150 MOV #150,R2 ; FUNCTION READ BASE TO R2
6778 015300 PUSH #135673 ; MASK WORD TO TOP OF THE STACK
015300 012746 135673 MOV #135673,-(SP)
6779 015304 005020 CLR (R0)+ ; .CLEAR CALLER'S AREA
6780 015306 005020 CLR (R0)+ ; .SO
6781 015310 005010 CLR (R0) ; .
6782 015312 10$:
6783 015312 010200 MOV R2,R0 ; .SET THE FUNCTION READ NUMBER
6784 015314 006300 ASL R0 ; .TIMES 2
6785 015316 000300 SWAB R0 ; .IN THE HIGH BYTE
6786 015320 005001 CLR R1 ; .CLEAR R1
6787 015322 CALL $DFRD ; .READ IT
015322 004737 012706' JSR PC,$DFRD
6788 015326 103423 BCS 30$ ; .EXIT IF ERROR
6789 015330 012700 000250' MOV #.DFRBK,R0 ; .BUFFER POINTER TO R0
6790 015334 041620 BIC (SP),(R0)+ ; .SP POINTS TO BIT MASK
6791 015336 041610 BIC (SP),(R0) ; .R0 POINTS TO READ BLOCK
6792 015340 005740 TST -(R0) ; .BACK THE POINTER UP
6793 015342 010501 MOV R5,R1 ; .SHIFT COUNT TO R1
6794 015344 CALL .TPSHI ; .SHIFT THE BITS INTO POSITION
015344 004737 015412' JSR PC,.TPSHI
6795 015350 052023 BIS (R0)+,(R3)+ ; .SET THE BITS IN THE USER BUFFER
6796 015352 051013 BIS (R0),(R3) ; .SO
6797 015354 005743 TST -(R3) ; .BACK CALLER'S POINTER UP
6798 015356 122225 CMPB (R2)+,(R5)+ ; .INCREMENT READ NUMBER AND SHIFT COUNT
6799 015360 077424 SOB R4,10$ ; .DO THIS FOUR TIMES
6800 015362 042763 177600 000002 BIC #177600,2(R3) ; .GET RID OF BITS HIGHER THAN 13
6801 015370 000241 CLC ; .CLEAR CC-C
6802 015372 20$:
6803 015372 005226 INC (SP)+ ; CLEAR THE STACK
KLIPC -- KL PC READ FUNCTION MO MACRO M1110 12-OCT-79 14:10 PAGE 153-1
$DFPC -- KL PC READ SUBROUTINE 7510.21
6804 015374 RETURN ; RETURN TO CALLER
015374 000207 RTS PC
6805 015376 30$:
6806 015376 PRINT #PCERRM ; TELL OPERATOR ABOUT ERROR
015376 012700 003107' MOV #PCERRM,R0
015402 004737 025164' JSR PC,$TTMSG
6807 015406 000261 SEC ; SET ERROR FLAG
6808 015410 000770 BR 20$ ; AND EXIT
6809 ;
KLIPC -- KL PC READ FUNCTION MO MACRO M1110 12-OCT-79 14:10 PAGE 154
$DFPC -- KL PC READ SUBROUTINE 7510.21
6811 015412 .TPSHI::
6812 015412 PUSH R1 ; SAVE R1 FROM DESTRUCTION
015412 010146 MOV R1,-(SP)
6813 015414 001416 BEQ 30$ ; .ON ZERO DO NOTHING
6814 015416 003002 BGT 10$ ; .REALLY MEANS LEFT
6815 015420 005401 NEG R1 ; .MEANS RIGHT, SO NEGATE
6816 015422 000406 BR 20$ ; .AND GO RIGHT
6817 ;
6818 015424 10$:
6819 015424 006320 ASL (R0)+ ; .CLEAR CC-C AND SHIFT
6820 015426 006120 ROL (R0)+ ; .USE CC-C AND SHIFT
6821 015430 006110 ROL (R0) ; .
6822 015432 024040 CMP -(R0),-(R0) ; .POINT BACK TO BEGINNING
6823 015434 077105 SOB R1,10$ ; .AND LOOP 'TILL DONE
6824 015436 000405 BR 30$ ; .DONE -- EXIT
6825 ;
6826 015440 20$: ; .HERE TO SHIFT RIGHT
6827 015440 022020 CMP (R0)+,(R0)+ ; .FIX POINTER TO POINT TO HIGH PART
6828 015442 006210 ASR (R0) ; .SHIFT HIGH PART
6829 015444 006040 ROR -(R0) ; .THEN MIDDLE PART
6830 015446 006040 ROR -(R0) ; .THEN LOW PART
6831 015450 077105 SOB R1,20$ ; .UNTIL DONE
6832 015452 30$:
6833 015452 POP R1 ; .RESTORE R1
015452 012601 MOV (SP)+,R1
6834 015454 RETURN ; AND RETURN TO CALLER
015454 000207 RTS PC
KLIQB -- ASK BOOT LOAD QUESTION MACRO M1110 12-OCT-79 14:10 PAGE 155
$DFPC -- KL PC READ SUBROUTINE 7510.21
6836 .TITLE KLIQB -- ASK BOOT LOAD QUESTIONS
6837 015456 IDENT$ 11,1 ; ADP01
.IDENT /011010/
6838 ;
6839 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
6840 ;
6841 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
6842 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
6843 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
6844 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
6845 ;
6846 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
6847 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
6848 ; EQUIPMENT CORPORATION.
6849 ;
6850 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
6851 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
6852 ;
6853 ; VERSION 05-01 ; ADP01
6854 ;
6855 ; ALAN D. PECKHAM 12-APR-77
6856 ;
6857 ; MODIFIED BY:
6858 ;
6859 ; FUNCTION: THIS MODULE DETERMINES WHETHER THE BOOT IS TO BE LOADED
6860 ; AND WHAT BOOT IS TO BE USED.
6861 ;
6862 ; LOCAL DATA
6863 ;
6864 003130 .PSECT TEXT,D
6865 003130 TQBOOT:
6866 003130 MESSAGE <LOAD KL BOOTSTRAP [FILE,YES,NO,FILENAME]?>
003130 114 117 101 .ASCIZ \LOAD KL BOOTSTRAP [FILE,YES,NO,FILENAME]?\
003133 104 040 113
003136 114 040 102
003141 117 117 124
003144 123 124 122
003147 101 120 040
003152 133 106 111
003155 114 105 054
003160 131 105 123
003163 054 116 117
003166 054 106 111
003171 114 105 116
003174 101 115 105
003177 135 077 000
6867 003202 TQBWCF:
6868 003202 MESSAGE <WRITE CONFIGURATION FILE [YES,NO]?>
003202 127 122 111 .ASCIZ \WRITE CONFIGURATION FILE [YES,NO]?\
003205 124 105 040
003210 103 117 116
003213 106 111 107
003216 125 122 101
003221 124 111 117
003224 116 040 106
003227 111 114 105
003232 040 133 131
KLIQB -- ASK BOOT LOAD QUESTION MACRO M1110 12-OCT-79 14:10 PAGE 155-1
$DFPC -- KL PC READ SUBROUTINE 7510.21
003235 105 123 054
003240 116 117 135
003243 077 000
6869 003245 TQBNFL:
6870 003245 WARNING <NO FILE - LOADING BOOTSTRAP>
003245 045 040 116 .ASCIZ \% NO FILE - LOADING BOOTSTRAP\
003250 117 040 106
003253 111 114 105
003256 040 055 040
003261 114 117 101
003264 104 111 116
003267 107 040 102
003272 117 117 124
003275 123 124 122
003300 101 120 000
6871 001520 .PSECT DATA,D
6872 001520 DQBFNM:
6873 001520 043240 000000 000000 .RAD50 /KL CFG/ ; CONFIGURATION FILE NAME
001526 011667
6874 001530 000000 .WORD 0
6875 001532 005 005 .BYTE 5,5
6876 001534 054523 000000 .WORD "SY,0
6877 015456 .PSECT
KLIQB -- ASK BOOT LOAD QUESTION MACRO M1110 12-OCT-79 14:10 PAGE 156
$DLGBT -- ASK IF LOADING BOOT IS REQUIRED
6879 .SBTTL $DLGBT -- ASK IF LOADING BOOT IS REQUIRED
6880
6881 ;+
6882 ; $DLGBT -- ASK WHETHER OR NOT TO LOAD THE KL BOOTSTRAP
6883 ;
6884 ; INPUTS:
6885 ;
6886 ; NONE
6887 ;
6888 ; OUTPUTS:
6889 ;
6890 ; NONE
6891 ;-
6892
6893 015456 $DLGBT::
6894 015456 105037 000042' CLRB .BTSW ; RESET BOOT SWITCH
6895 015462 105037 000031' CLRB .DBSW ; RESET FILE SOURCE
6896 015466 105037 000025' CLRB .UFNSW ; AND FILENAME SWITCH.
6897 015472 105737 000024' TSTB .DLGSW ; TEST DIALOG CONTROL SWITCH.
6898 015476 001030 BNE 20$ ; LOAD DEFAULT BOOTSTRAP.
6899 015500 10$:
6900 015500 PRINT #TQBOOT ; ASK QUESTION
015500 012700 003130' MOV #TQBOOT,R0
015504 004737 025164' JSR PC,$TTMSG
6901 015510 CALL $TTRD ; READ ANSWER
015510 004737 024642' JSR PC,$TTRD
6902 015514 012705 000270' MOV #.TTIBF,R5
6903 015520 105715 TSTB (R5) ; CR ?
6904 015522 001416 BEQ 20$ ; READ BOOTSTRAP SPECIFICATION FROM FILE
6905 015524 022715 044506 CMP #"FI,(R5) ; [FILE]?
6906 015530 001413 BEQ 20$ ; READ BOOTSTRAP SPECIFICATION FROM FILE
6907 015532 022715 042531 CMP #"YE,(R5) ; [YES] ?
6908 015536 001433 BEQ 50$ ; LOAD DEFAULT BOOTSTRAP
6909 015540 022715 047516 CMP #"NO,(R5) ; [NO] ?
6910 015544 001411 BEQ 30$ ; ASK NEXT QUESTION.
6911 015546 022715 040502 CMP #"BA,(R5) ; [BACKUP] ?
6912 015552 001011 BNE 40$ ; NO, MUST BE FILENAME...
6913 015554 000137 021446' JMP $DLGMV ; ASK TO CONFIGURE MEMORY.
6914 ;
6915 015560 20$:
6916 015560 CALL LQBRBF ; SEE IF WE SHOULD LOAD THE BOOT
015560 004737 016000' JSR PC,LQBRBF
6917 015564 103430 BCS 80$ ; ERROR IF CC-C IS SET
6918 015566 000421 BR 60$ ; AND EXIT
6919 ;
6920 015570 30$:
6921 015570 105337 000042' DECB .BTSW ; RESPONSE IS "NO"
6922 015574 000416 BR 60$ ; ASK NEXT QUESTION.
6923 ;
6924 015576 40$:
6925 015576 012700 000442' MOV #.USRFN,R0 ; GET FILENAME BLOCK, ; ADP01
6926 015602 012701 MOV (PC)+,R1
6927 015604 021402 .RAD50 /EXB/ ; SET DEFAULT EXTENSION,
6928 015606 010160 000006 MOV R1,6(R0)
6929 015612 CALL $TRF2B ; AND GET FILE NAME.
015612 004737 022660' JSR PC,$TRF2B
6930 015616 105715 TSTB (R5) ; IF NOT PROPERLY TERMINATED
KLIQB -- ASK BOOT LOAD QUESTION MACRO M1110 12-OCT-79 14:10 PAGE 156-1
$DLGBT -- ASK IF LOADING BOOT IS REQUIRED
6931 015620 001005 BNE 70$ ; THEN INFORM THE OPERATOR.
6932 015622 105237 000025' INCB .UFNSW ; INDICATE FILE SPECIFIED
6933 015626 50$:
6934 015626 105237 000042' INCB .BTSW ; SET RESPONSE TO "YES"
6935 015632 60$:
6936 015632 000407 BR $DLWCF ; ASK NEXT QUESTION
6937 ;
6938 015634 70$:
6939 015634 PRINT #COMCSE ; ALL THUMBS...
015634 012700 004561' MOV #COMCSE,R0
015640 004737 025164' JSR PC,$TTMSG
6940 015644 000715 BR 10$
6941 ;
6942 015646 80$:
6943 015646 000137 021572' JMP $ERROR ; ERROR EXIT
6944 ;
KLIQB -- ASK BOOT LOAD QUESTION MACRO M1110 12-OCT-79 14:10 PAGE 157
$DLWCF -- ASK IF CONFIGURATION FILE IS TO BE WRITTEN
6946 .SBTTL $DLWCF -- ASK IF CONFIGURATION FILE IS TO BE WRITTEN
6947
6948 ;+
6949 ; $DLWCF -- ASK IF CONFIGURATION FILE IS THE BE WRITTEN
6950 ;
6951 ; INPUTS:
6952 ;
6953 ; NONE
6954 ;
6955 ; OUTPUTS:
6956 ;
6957 ; FILE WRITE SWITCH, ".FILSW", IS SET UP
6958 ;-
6959
6960 015652 $DLWCF::
6961 015652 105037 000041' CLRB .FILSW ; RESET FILE SWITCH
6962 015656 105737 000024' TSTB .DLGSW ; ARE WE IN DIALOG MODE??
6963 015662 001035 BNE 40$ ; NO -- JUST EXIT
6964 015664 10$:
6965 015664 PRINT #TQBWCF ; ASK THE QUESTION
015664 012700 003202' MOV #TQBWCF,R0
015670 004737 025164' JSR PC,$TTMSG
6966 015674 CALL $TTRD ; READ THE RESPONSE
015674 004737 024642' JSR PC,$TTRD
6967 015700 012705 000270' MOV #.TTIBF,R5 ; POINT TO INPUT BUFFER
6968 015704 105715 TSTB (R5) ; DEFAULT??
6969 015706 001416 BEQ 20$ ; YES -- GO ON
6970 015710 022715 042531 CMP #"YE,(R5) ; NO -- IS IT "YES"??
6971 015714 001413 BEQ 20$ ; YES -- GO ON
6972 015716 022715 047516 CMP #"NO,(R5) ; NO -- IS IT "NO"??
6973 015722 001413 BEQ 30$ ; YES -- GO ON
6974 015724 022715 040502 CMP #"BA,(R5) ; NO -- IS IT "BACK"??
6975 015730 001652 BEQ $DLGBT ; YES -- SO BACK UP
6976 015732 PRINT #COMCSE ; BLEW IT..
015732 012700 004561' MOV #COMCSE,R0
015736 004737 025164' JSR PC,$TTMSG
6977 015742 000750 BR 10$ ; TRY ONCE MORE
6978 ;
6979 015744 20$:
6980 015744 105237 000041' INCB .FILSW ; SAY WRITE THE FILE
6981 015750 000402 BR 40$ ; AND GO ON
6982 ;
6983 015752 30$:
6984 015752 105337 000041' DECB .FILSW ; SAY DON'T WRITE THE FILE
6985 015756 40$:
6986 015756 105737 000042' TSTB .BTSW ; EXAMINE BOOT SWITCH
6987 015762 100004 BPL 50$ ; SAID LOAD IT
6988 015764 CALL $TENS1 ; [TCO 4.2275] FINISH KL INIT
015764 004737 022254' JSR PC,$TENS1
6989 015770 000137 016534' JMP $DLGEX ; SAID DON'T LOAD IT
6990 ;
6991 015774 50$:
6992 015774 000137 021500' JMP $CFGBT ; LOAD THE BOOT
6993 ;
KLIQB -- ASK BOOT LOAD QUESTION MACRO M1110 12-OCT-79 14:10 PAGE 158
LQBRBF -- LOCAL SUBROUTINE TO READ SAVED BOOT FLAG
6995 .SBTTL LQBRBF -- LOCAL SUBROUTINE TO READ SAVED BOOT FLAG
6996
6997 016000 LQBRBF:
6998 016000 012700 001520' MOV #DQBFNM,R0 ; POINT TO THE FILENAME
6999 016004 CALL $LOOKUP ; LOOK IT UP
016004 004737 007024' JSR PC,$LOOKUP
7000 016010 103022 BCC 30$ ; ALL OK IF CC-C IS CLEAR
7001 016012 122737 000000G 000470' CMPB #IE.NSF,.SYSTA ; NON-EXISTENT FILE??
7002 016020 001061 BNE 70$ ; NO -- BIG TROUBLE
7003 016022 105737 000024' TSTB .DLGSW ; ARE WE IN DIALOG MODE??
7004 016026 100004 BPL 10$ ; YES -- GO ON
7005 016030 032737 000000G 000044' BIT #KL.LVB,.KLISV ; NO -- DOES HE WANT THE BOOT LOADED??
7006 016036 001457 BEQ 90$ ; NO -- JUST EXIT
7007 016040 10$:
7008 016040 PRINT #TQBNFL ; YES -- WARN OPERATOR
016040 012700 003245' MOV #TQBNFL,R0
016044 004737 025164' JSR PC,$TTMSG
7009 016050 20$:
7010 016050 105237 000042' INCB .BTSW ; INDICATE TO LOAD THE BOOTSTRAP
7011 016054 000450 BR 90$ ; AND EXIT
7012 ;
7013 016056 30$:
7014 016056 CALL $READC ; GET A RECORD FROM THE FILE
016056 004737 007460' JSR PC,$READC
7015 016062 103442 BCS 80$ ; ERROR IF CC-C IS SET
7016 016064 022700 000003 CMP #3,R0 ; ONE WE'RE LOOKING FOR??
7017 016070 001411 BEQ 50$ ; YES -- READ THE DATA
7018 016072 005700 TST R0 ; NO -- END-OF-FILE??
7019 016074 001003 BNE 40$ ; NO -- SKIP THIS RECORD
7020 016076 CALL $CLOSE ; YES -- CLOSE THE FILE
016076 004737 006320' JSR PC,$CLOSE
7021 016102 000762 BR 20$ ; AND SAY LOAD THE BOOTSTRAP
7022 ;
7023 016104 40$:
7024 016104 CALL $READS ; SKIP THIS RECORD
016104 004737 007516' JSR PC,$READS
7025 016110 103427 BCS 80$ ; ERROR IF CC-C IS SET
7026 016112 000761 BR 30$ ; OK -- LOOK AT NEXT RECORD
7027 ;
7028 016114 50$:
7029 016114 CALL $READB ; READ THE BYTE INTO R0
016114 004737 007662' JSR PC,$READB
7030 016120 103423 BCS 80$ ; ERROR IF CC-C IS SET
7031 016122 110037 000042' MOVB R0,.BTSW ; SAVE THE BOOT SWITCH
7032 016126 CALL $READB ; READ THE FILE-NAME SWITCH
016126 004737 007662' JSR PC,$READB
7033 016132 103416 BCS 80$ ; ERROR IF CC-C IS SET
7034 016134 110037 000025' MOVB R0,.UFNSW ; SET THE FILENAME SWITCH
7035 016140 001411 BEQ 70$ ; EXIT IF NONE
7036 016142 012701 000004 MOV #4,R1 ; SET UP TO READ FILENAME
7037 016146 012702 000442' MOV #.USRFN,R2 ; POINT TO FILENAME BLOCK
7038 016152 60$:
7039 016152 CALL $READW ; READ A WORD OF THE FILENAME
016152 004737 007566' JSR PC,$READW
7040 016156 103404 BCS 80$ ; ERROR IF CC-C IS SET
7041 016160 010022 MOV R0,(R2)+ ; LOAD IT INTO THE FILE-NAME BLOCK
7042 016162 077105 SOB R1,60$ ; UNTIL DONE
KLIQB -- ASK BOOT LOAD QUESTION MACRO M1110 12-OCT-79 14:10 PAGE 158-1
LQBRBF -- LOCAL SUBROUTINE TO READ SAVED BOOT FLAG
7043 016164 70$:
7044 016164 CALLR $CLOSE ; CLOSE THE FILE AND EXIT
016164 000137 006320' JMP $CLOSE
7045 ;
7046 016170 80$:
7047 016170 CALL $PURGE ; ERROR -- PURGE FILE
016170 004737 007366' JSR PC,$PURGE
7048 016174 000261 SEC ; SET ERROR FLAG
7049 016176 90$:
7050 016176 RETURN ; TO CALLER
016176 000207 RTS PC
KLIQC -- ASK CACHE QUESTIONS MACRO M1110 12-OCT-79 14:10 PAGE 159
LQBRBF -- LOCAL SUBROUTINE TO READ SAVED BOOT FLAG
7052 .TITLE KLIQC -- ASK CACHE QUESTIONS
7053 016200 IDENT$ 5,0
.IDENT /005000/
7054 ;
7055 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
7056 ;
7057 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
7058 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
7059 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
7060 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
7061 ;
7062 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
7063 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
7064 ; EQUIPMENT CORPORATION.
7065 ;
7066 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
7067 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
7068 ;
7069 ; VERSION 05-00
7070 ;
7071 ; ALAN D. PECKHAM 14-APR-77
7072 ;
7073 ; MODIFIED BY:
7074 ;
7075 ; FUNCTION: IF THERE IS CACHE, THIS MODULE DETERMINES HOW IT IS TO BE
7076 ; LOADED AND WHETHER IT IS TO BE ENABLED.
7077 ;
7079 ; LOCAL DATA
7080 ;
7081 003303 .PSECT TEXT,D
7082 003303 TQCACH: MESSAGE <RECONFIGURE CACHE [FILE,ALL,YES,NO]?>
003303 122 105 103 .ASCIZ \RECONFIGURE CACHE [FILE,ALL,YES,NO]?\
003306 117 116 106
003311 111 107 125
003314 122 105 040
003317 103 101 103
003322 110 105 040
003325 133 106 111
003330 114 105 054
003333 101 114 114
003336 054 131 105
003341 123 054 116
003344 117 135 077
003347 000
7083 003350 TQCCEN: MESSAGE <ENABLE WHICH CACHES [ALL,NONE,0-3]?>
003350 105 116 101 .ASCIZ \ENABLE WHICH CACHES [ALL,NONE,0-3]?\
003353 102 114 105
003356 040 127 110
003361 111 103 110
003364 040 103 101
003367 103 110 105
003372 123 040 133
003375 101 114 114
003400 054 116 117
003403 116 105 054
003406 060 055 063
003411 135 077 000
KLIQC -- ASK CACHE QUESTIONS MACRO M1110 12-OCT-79 14:10 PAGE 159-1
LQBRBF -- LOCAL SUBROUTINE TO READ SAVED BOOT FLAG
7084 016200 .PSECT
KLIQC -- ASK CACHE QUESTIONS MACRO M1110 12-OCT-79 14:10 PAGE 160
$DLGCA -- ASK IF CACHE IS TO BE CONFIGURED
7086 .SBTTL $DLGCA -- ASK IF CACHE IS TO BE CONFIGURED
7087
7088 016200 105737 000035' $DLGCA::TSTB .CASW ; IF THERE IS NO CACHE
7089 016204 002452 BLT 40$ ; THEN GO ON TO NEXT QUESTION.
7090 016206 105037 000027' CLRB .DCSW ; RESET CACHE CONTROL SWITCH.
7091 016212 105737 000024' TSTB .DLGSW ; DEFAULT PATH TO BE TAKEN ?
7092 016216 003055 BGT 70$ ; YES, RECONFIGURE CACHE.
7093 016220 002440 BLT 30$ ; INTERNAL PATH TO BE TAKEN.
7094 016222 10$: PRINT #TQCACH ; ASK IF CACHE IS TO BE CONFIGURED
016222 012700 003303' MOV #TQCACH,R0
016226 004737 025164' JSR PC,$TTMSG
7095 016232 CALL $TTRD ; AND READ ANSWER.
016232 004737 024642' JSR PC,$TTRD
7096 016236 012705 000270' MOV #.TTIBF,R5
7097 016242 105715 TSTB (R5) ; CR ?
7098 016244 001442 BEQ 70$ ; GIVE HIM LAST CONFIGURATION.
7099 016246 022715 044506 CMP #"FI,(R5) ; [FILE] ?
7100 016252 001437 BEQ 70$ ; GIVE HIM LAST CONFIGURATION.
7101 016254 022715 046101 CMP #"AL,(R5) ; [ALL] ?
7102 016260 001432 BEQ 60$ ; GIVE HIM ALL CACHE.
7103 016262 022715 042531 CMP #"YE,(R5) ; [YES] ?
7104 016266 001433 BEQ LQCCM ; GO ON TO NEXT QUESTION.
7105 016270 022715 047516 CMP #"NO,(R5) ; [NO] ?
7106 016274 001416 BEQ 40$ ; IGNORE CACHE.
7107 016276 022715 040502 CMP #"BA,(R5) ; [BACKUP] ?
7108 016302 001405 BEQ 20$ ; GO TO RAM QUESTION.
7109 016304 PRINT #COMCSE ; MUST BE SOME MISTAKE...
016304 012700 004561' MOV #COMCSE,R0
016310 004737 025164' JSR PC,$TTMSG
7110 016314 000742 BR 10$ ; ASK QUESTION AGAIN.
7111 016316 000137 017506' 20$: JMP $DLGRM ; BACK UP TO RAM QUESTION.
7112 016322 032737 000000G 000044' 30$: BIT #KL.LCA,.KLISV ; INTERNAL REQUEST MADE ?
7113 016330 001002 BNE 50$ ; YES, RECONFIGURE CACHE.
7114 016332 000137 016654' 40$: JMP $DLGMM ; BYPASS CACHE CONFIGURATION.
7115 016336 032737 000000G 000044' 50$: BIT #KL.CFL,.KLISV ; IF NOT TO GET FROM FILE
7116 016344 001402 BEQ 70$ ; THEN
7117 016346 105337 000027' 60$: DECB .DCSW ; INDICATE TO USE ALL CACHES AND
7118 016352 000137 021424' 70$: JMP $CFGCA ; GO TO CONFIGURE CACHE.
KLIQC -- ASK CACHE QUESTIONS MACRO M1110 12-OCT-79 14:10 PAGE 161
LQCCM -- ASK WHICH CACHES TO CONFIGURE
7120 .SBTTL LQCCM -- ASK WHICH CACHES TO CONFIGURE
7121
7122 016356 LQCCM: PRINT #TQCCEN ;ASK WHICH CACHES HE WANTS
016356 012700 003350' MOV #TQCCEN,R0
016362 004737 025164' JSR PC,$TTMSG
7123 016366 CALL $TTRD ;AND GET HIS ANSWER.
016366 004737 024642' JSR PC,$TTRD
7124 016372 012705 000270' MOV #.TTIBF,R5
7125 016376 005004 CLR R4 ;INITIALIZE CACHE COUNTER.
7126 016400 105715 TSTB (R5) ; CR ?
7127 016402 001443 BEQ 7$ ;GIVE HIM ALL CACHES.
7128 016404 022715 046101 CMP #"AL,(R5) ; [ALL] ?
7129 016410 001440 BEQ 7$ ;GIVE HIM ALL CACHES.
7130 016412 022715 047516 CMP #"NO,(R5) ; [NONE] ?
7131 016416 001427 BEQ 6$ ;DON'T TOUCH THE CACHE.
7132 016420 022715 040502 CMP #"BA,(R5) ; [BACKUP] ?
7133 016424 001665 BEQ $DLGCA ;ASK LAST QUESTION.
7134 016426 3$: CALL $TRI2B ;GET A NUMBER -
016426 004737 023136' JSR PC,$TRI2B
7135 016432 103433 BCS 9$ ;IS IT
7136 016434 022700 000004 CMP #4,R0 ;WITHIN RANGE ?
7137 016440 003430 BLE 9$
7138 016442 012701 000051' MOV #.CACHN,R1 ;YES, CHECK MODULE TABLE
7139 016446 110403 MOVB R4,R3 ;TO SEE IF GIVEN BEFORE.
7140 016450 001403 BEQ 5$ ;OKAY - EMPTY TABLE.
7141 016452 120021 4$: CMPB R0,(R1)+
7142 016454 001422 BEQ 9$
7143 016456 077303 SOB R3,4$
7144 016460 105204 5$: INCB R4 ;ONE MORE MODULE -
7145 016462 110011 MOVB R0,(R1) ;PUT IN TABLE.
7146 016464 122725 000054 CMPB #',,(R5)+ ;LEGAL SEPERATOR ?
7147 016470 001756 BEQ 3$ ;YES, GET ANOTHER NUMBER.
7148 016472 105745 TSTB -(R5) ;END OF LINE ?
7149 016474 001012 BNE 9$ ;NO, ASK QUESTION AGAIN.
7150 016476 110437 000050' 6$: MOVB R4,.NCACH ;SET NUMBER OF CACHES,
7151 016502 105237 000027' INCB .DCSW ;INDICATE CONFIGURATION SET AND
7152 016506 000137 021424' JMP $CFGCA ;GO TO CONFIGURE CACHE.
7153 016512 105337 000027' 7$: DECB .DCSW ;INDICATE TO USE ALL CACHES AND
7154 016516 000137 021424' JMP $CFGCA ;GO TO CONFIGURE CACHE.
7155 016522 9$: PRINT #COMCSE ;MUST HAVE MIS-TYPED...
016522 012700 004561' MOV #COMCSE,R0
016526 004737 025164' JSR PC,$TTMSG
7156 016532 000711 BR LQCCM ;ASK QUESTION AGAIN.
KLIQE -- ASK EXIT QUESTIONS MACRO M1110 12-OCT-79 14:10 PAGE 162
LQCCM -- ASK WHICH CACHES TO CONFIGURE
7159 .TITLE KLIQE -- ASK EXIT QUESTIONS
7160 016534 IDENT$ 11,0,KLI$$F
.IDENT /B11000/
7161 ;
7162 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
7163 ;
7164 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
7165 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
7166 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
7167 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
7168 ;
7169 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
7170 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
7171 ; EQUIPMENT CORPORATION.
7172 ;
7173 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
7174 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
7175 ;
7176 ; VERSION 11-00
7177 ;
7178 ; ALAN D. PECKHAM 12-APR-77
7179 ;
7180 ; MODIFIED BY:
7181 ;
7182 ; FUNCTION: THIS MODULE ALLOWS THE OPERATOR TO RESTART THE DIALOG
7183 ; OR EXIT FROM KLINIT. IT ALSO DISPATHES INTERNAL REQUESTS FOR
7184 ; SPECIAL KL RESTARTS SUCH AS POWER FAIL.
7185 ;
7186 ; LOCAL DATA
7187 ;
7188 003414 .PSECT TEXT,D
7189 003414 TQEXIT:
7190 003414 MESSAGE <EXIT [YES,RESTART]?>
003414 105 130 111 .ASCIZ \EXIT [YES,RESTART]?\
003417 124 040 133
003422 131 105 123
003425 054 122 105
003430 123 124 101
003433 122 124 135
003436 077 000
7191 016534 .PSECT
KLIQE -- ASK EXIT QUESTIONS MACRO M1110 12-OCT-79 14:10 PAGE 163
$DLGEX -- ASK WHERE TO EXIT
7193 .SBTTL $DLGEX -- ASK WHERE TO EXIT
7194
7195 016534 $DLGEX::
7196 016534 105737 000024' TSTB .DLGSW ; TEST DIALOG CONTROL SWITCH.
7197 016540 003041 BGT 50$ ; NORMAL EXIT.
7198 016542 002434 BLT 40$ ; TAKE INTERNAL PATH.
7199 016544 10$:
7200 016544 PRINT #TQEXIT ; ASK QUESTION
016544 012700 003414' MOV #TQEXIT,R0
016550 004737 025164' JSR PC,$TTMSG
7201 016554 CALL $TTRD ; READ ANSWER
016554 004737 024642' JSR PC,$TTRD
7202 016560 012705 000270' MOV #.TTIBF,R5
7203 016564 105715 TSTB (R5) ; CR ?
7204 016566 001426 BEQ 50$ ; NORMAL EXIT.
7205 016570 022715 042531 CMP #"YE,(R5) ; [YES] ?
7206 016574 001423 BEQ 50$ ; NORMAL EXIT.
7207 016576 022715 042522 CMP #"RE,(R5) ; [RESTART] ?
7208 016602 001412 BEQ 30$ ; GO TO FIRST QUESTION.
7209 016604 022715 040502 CMP #"BA,(R5) ; [BACK] ?
7210 016610 001405 BEQ 20$ ; ASK PREVIOUS QUESTION.
7211 016612 PRINT #COMCSE ; FUMBLE FINGERS...
016612 012700 004561' MOV #COMCSE,R0
016616 004737 025164' JSR PC,$TTMSG
7212 016622 000750 BR 10$ ; ASK QUESTION AGAIN.
7213 ;
7214 016624 20$:
7215 016624 000137 015652' JMP $DLWCF ; ASK TO WRITE CONFIGURATION FILE.
7216 ;
7217 016630 30$:
7218 016630 000137 017774' JMP $DLGEN ; ASK IF DIALOG NECESSARY.
7219 ;
7220 016634 40$:
7221 016634 032737 000000G 000044' BIT #KL.SPF,.KLISV ; INTERNAL REQUEST ?
7222 016642 001002 BNE 60$ ; START KL ON POWER FAIL.
7227 016644 50$:
7228 016644 000137 021602' JMP $EXIT ; NORMAL EXIT FROM KLINIT
7229 ;
7230 016650 60$:
7231 016650 000137 021132' JMP $POWER ; START KL ON POWER FAIL.
7232 ;
KLIQM -- ASK MEMORY QUESTIONS MACRO M1110 12-OCT-79 14:10 PAGE 164
$DLGEX -- ASK WHERE TO EXIT
7239 .TITLE KLIQM -- ASK MEMORY QUESTIONS
7240 016654 IDENT$ 12,04,KLI$$F
.IDENT /B12040/
7241 ;
7242 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
7243 ;
7244 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
7245 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
7246 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
7247 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
7248 ;
7249 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
7250 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
7251 ; EQUIPMENT CORPORATION.
7252 ;
7253 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
7254 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
7255 ;
7256 ; VERSION 12-04
7257 ;
7258 ; ALAN D. PECKHAM 12-APR-77
7259 ;
7260 ; MODIFIED BY:
7261 ;
7262 ; R BELANGER 11-JUL-79 ADD FORCE RECONFIGURATION OPTION AND
7263 ; FORCE RECONFIGURATION ON MF-20
7264 ; POWER FAIL.
7265 ; TCO 4.2322
7266 ;
7267 ; R. BELANGER 02-MAR-79 ADD REVERSE MEMORY CONFIGURATION OPTION
7268 ; TCO 4.2204
7269 ; R. BELANGER 25-JUL-78 INTEGRATE WITH MOS CONFIGURATOR
7270 ;
7271 ; FUNCTION: IF REQUESTED, THIS MODULE GETS ALL INFORMATION NECESSARY TO
7272 ; CONFIGURE THE KL MEMORY.
KLIQM -- ASK MEMORY QUESTIONS MACRO M1110 12-OCT-79 14:10 PAGE 165
$DLGEX -- ASK WHERE TO EXIT
7274 ;
7275 ; LOCAL DATA
7276 ;
7277 003440 .PSECT TEXT,D
7278 003440 TQMCF0:
7279 003440 MESSAGE <CONFIGURE KL MEMORY [FILE,ALL,REVERSE,YES,NO]?>
003440 103 117 116 .ASCIZ \CONFIGURE KL MEMORY [FILE,ALL,REVERSE,YES,NO]?\
003443 106 111 107
003446 125 122 105
003451 040 113 114
003454 040 115 105
003457 115 117 122
003462 131 040 133
003465 106 111 114
003470 105 054 101
003473 114 114 054
003476 122 105 126
003501 105 122 123
003504 105 054 131
003507 105 123 054
003512 116 117 135
003515 077 000
7280 003517 TQMCF1:
7281 003517 MESSAGE <CONFIGURE KL MEMORY [FILE,ALL,REVERSE,FORCE,YES,NO]?>
003517 103 117 116 .ASCIZ \CONFIGURE KL MEMORY [FILE,ALL,REVERSE,FORCE,YES,NO]?\
003522 106 111 107
003525 125 122 105
003530 040 113 114
003533 040 115 105
003536 115 117 122
003541 131 040 133
003544 106 111 114
003547 105 054 101
003552 114 114 054
003555 122 105 126
003560 105 122 123
003563 105 054 106
003566 117 122 103
003571 105 054 131
003574 105 123 054
003577 116 117 135
003602 077 000
7282 003604 TQMNM0:
7283 003604 ERROR <NO MEMORY AT LOCATION ZERO>
003604 077 040 116 .ASCIZ \? NO MEMORY AT LOCATION ZERO\
003607 117 040 115
003612 105 115 117
003615 122 131 040
003620 101 124 040
003623 114 117 103
003626 101 124 111
003631 117 116 040
003634 132 105 122
003637 117 000
7284 003641 TQMPCA:
7285 003641 WARNING <PHYSICAL MEMORY CONFIGURATION ALTERED - DUMP OR RESTART SUPPRESSED>
003641 045 040 120 .ASCIZ \% PHYSICAL MEMORY CONFIGURATION ALTERED - DUMP OR RESTART SUPPRESSED\
KLIQM -- ASK MEMORY QUESTIONS MACRO M1110 12-OCT-79 14:10 PAGE 165-1
$DLGEX -- ASK WHERE TO EXIT
003644 110 131 123
003647 111 103 101
003652 114 040 115
003655 105 115 117
003660 122 131 040
003663 103 117 116
003666 106 111 107
003671 125 122 101
003674 124 111 117
003677 116 040 101
003702 114 124 105
003705 122 105 104
003710 040 055 040
003713 104 125 115
003716 120 040 117
003721 122 040 122
003724 105 123 124
003727 101 122 124
003732 040 123 125
003735 120 120 122
003740 105 123 123
003743 105 104 000
7286 016654 .PSECT
KLIQM -- ASK MEMORY QUESTIONS MACRO M1110 12-OCT-79 14:10 PAGE 166
$DLGMM -- ASK WHETHER TO CONFIGURE THE KL MEMORY
7288 .SBTTL $DLGMM -- ASK WHETHER TO CONFIGURE THE KL MEMORY
7289
7290 016654 $DLGMM::
7291 016654 105037 000030' CLRB .DMSW ; CLEAR MEMORY CONTROL.
7292 016660 005037 000220' CLR .CFMRV ; [TCO 4.2204] ASSUME NORMAL CONFIGURATION
7293 016664 CALL MBINI ; INIT THE MEMORY BOOT
016664 004737 000000G JSR PC,MBINI
7294 016670 032737 000000G 000044' BIT #KL.SPF,.KLISV ; POWER-FAIL RECOVERY??
7295 016676 001403 BEQ 5$ ; NO -- GO ON
7296 016700 112737 177777 000000G MOVB #-1,KEEPBB ; [TCO 4.2322] YES -- KEEP BAD MF20 BLOCKS
7297 016706 5$:
7298 016706 105737 000024' TSTB .DLGSW ; TEST CONFIGURATION SWITCH.
7299 016712 003110 BGT 90$ ; USE LAST CONFIGURATION.
7300 016714 002460 BLT 40$ ; TAKE INTERNAL PATH.
7301 016716 10$:
7302 016716 012700 003440' MOV #TQMCF0,R0 ; [TCO 4.2322] ASSUME NO MF-20'S
7303 016722 105737 000037' TSTB .MFSW ; [TCO 4.2322] ARE THERE ANY MF-20'S??
7304 016726 003402 BLE 15$ ; [TCO 4.2322] NO -- GO ON
7305 016730 012700 003517' MOV #TQMCF1,R0 ; [TCO 4.2322] YES -- SELECT PROPER MESSAGE
7306 016734 15$: ; [TCO 4.2322]
7307 016734 CALL $TTMSG ; [TCO 4.2322] ASK THE QUESTION
016734 004737 025164' JSR PC,$TTMSG
7308 016740 CALL $TTRD ; READ ANSWER.
016740 004737 024642' JSR PC,$TTRD
7309 016744 012705 000270' MOV #.TTIBF,R5
7310 016750 105715 TSTB (R5) ; CR ?
7311 016752 001470 BEQ 90$ ; USE LAST CONFIGURATION.
7312 016754 022715 044506 CMP #"FI,(R5) ; [FILE] ?
7313 016760 001465 BEQ 90$ ; USE LAST CONFIGURATION.
7314 016762 022715 046101 CMP #"AL,(R5) ; [ALL] ?
7315 016766 001460 BEQ 80$ ; CONFIGURE ALL MEMORY.
7316 016770 022715 042522 CMP #"RE,(R5) ; [TCO 4.2204] [REVERSE] ?
7317 016774 001443 BEQ 55$ ; [TCO 4.2204] YES -- DO IT
7318 016776 022715 047506 CMP #"FO,(R5) ; [TCO 4.2322] [FORCE] ?
7319 017002 001432 BEQ 45$ ; [TCO 4.2322] YES -- DO IT
7320 017004 022715 042531 CMP #"YE,(R5) ; [YES] ?
7321 017010 001437 BEQ 60$ ; GO ON TO NEXT QUESTION.
7322 017012 022715 047516 CMP #"NO,(R5) ; [NO] ?
7323 017016 001430 BEQ 50$ ; SKIP MEMORY CONFIGURATION.
7324 017020 022715 040502 CMP #"BA,(R5) ; [BACKUP] ?
7325 017024 001405 BEQ 20$ ; ASK PREVIOUS QUESTION.
7326 017026 PRINT #COMCSE ; UNCOORDINATED FINGERS...
017026 012700 004561' MOV #COMCSE,R0
017032 004737 025164' JSR PC,$TTMSG
7327 017036 000727 BR 10$ ; ASK QUESTION AGAIN.
7328 ;
7330 017040 20$:
7331 017040 105737 000035' TSTB .CASW ; IS CACHE AVAILABLE ?
7332 017044 002402 BLT 30$ ; NO, GO TO RAM QUESTION.
7333 017046 000137 021420' JMP $DLGCV ; YES, ASK ABOUT CACHE.
7334 ;
7335 017052 30$:
7336 017052 000137 021460' JMP $DLGRV ; NO, GO TO RAM QUESTION.
7337 ;
7343 017056 40$:
7344 017056 032737 000000G 000044' BIT #KL.CFM,.KLISV ; INTERNAL SPECIFIC REQUEST MADE ?
7345 017064 001015 BNE 70$ ; YES -- ANALYZE FURTHER...
KLIQM -- ASK MEMORY QUESTIONS MACRO M1110 12-OCT-79 14:10 PAGE 166-1
$DLGMM -- ASK WHETHER TO CONFIGURE THE KL MEMORY
7346 017066 000422 BR 90$ ; NO -- MAKE SURE CONFIGURATION STILL EXISTS
7347 ;
7348 017070 45$: ; [TCO 4.2322]
7349 017070 112737 177777 000000G MOVB #-1,DBEFRC ; [TCO 4.2322] FORCE THE DBE SCAN
7350 017076 000404 BR 60$ ; [TCO 4.2322] AND GO ON
7351 ;
7352 017100 50$:
7353 017100 000137 021454' JMP $DLGBV ; ASK TO LOAD BOOT.
7354 ;
7355 017104 55$: ; [TCO 4.2204]
7356 017104 005337 000220' DEC .CFMRV ; [TCO 4.2204] SET REVERSE CONFIGURATION
7357 017110 60$:
7358 017110 113737 000220' 000000G MOVB .CFMRV,CONFGR ; [TCO 4.2204] TELL THE MEMORY BOOT FORWARD OR REVERSE
7359 017116 000407 BR $DSPPT ; DISPLAY THE PHYSICAL CONFIGURATION.
7360 ;
7361 017120 70$:
7362 017120 032737 000000G 000044' BIT #KL.CFL,.KLISV ; IF NOT TO GET FROM FILE,
7363 017126 001402 BEQ 90$ ; THEN
7364 017130 80$:
7365 017130 105337 000030' DECB .DMSW ; INDICATE TO USE ALL AND
7366 017134 90$:
7367 017134 000410 BR $CFGMM ; GO TO CONFIGURE MEMORY.
7368 ;
KLIQM -- ASK MEMORY QUESTIONS MACRO M1110 12-OCT-79 14:10 PAGE 167
$DLGMM -- ASK WHETHER TO CONFIGURE THE KL MEMORY
7370 ;
7371 ; HERE FOR LONG MEMORY CONFIGURATION DIALOG
7372 ;
7373 017136 $DSPPT::
7374 017136 112737 177777 000000G MOVB #-1,FMRECN ; [TCO 4.2322] FORCE RECONFIGURATION
7375 017144 CALL RESDET ; GET PHYSICAL CONFIGURATION AND
017144 004737 000000G JSR PC,RESDET
7376 017150 CALL REPCON ; DISPLAY THE MEMORY LAYOUT.
017150 004737 000000G JSR PC,REPCON
7377 017154 000520 BR $DLGCT ; ENTER CONTROLLER DIALOG.
7378 ;
7379 ;
7380 ; HERE FOR:
7381 ;
7382 ; "FILE" IF .DMSW .EQ. 0
7383 ; "ALL" IF .DMSW .LT. 0
7384 ;
7385 017156 $CFGMM::
7386 017156 105737 000030' TSTB .DMSW ; ARE WE IN DIALOG MODE??
7387 017162 001006 BNE 10$ ; YES -- GO ON
7388 017164 CALL $GETMM ; NO -- READ THE FILE
017164 004737 013554' JSR PC,$GETMM
7389 017170 103510 BCS ERRORX ; GIVE UP IF ERROR
7390 017172 105737 000030' TSTB .DMSW ; USE ALL??
7391 017176 001403 BEQ 20$ ; NO -- GO ON
7392 017200 10$:
7393 017200 112737 177777 000000G MOVB #-1,FMRECN ; [TCO 4.2322] YES -- FORCE RECONFIGURATION
7394 017206 20$:
7395 017206 113737 000220' 000000G MOVB .CFMRV,CONFGR ; [TCO 4.2204] SET FORWARD/REVERSE CONFIGURATION
7396 017214 CALL RESDET ; GET PHYSICAL CONFIGURATION
017214 004737 000000G JSR PC,RESDET
7397 017220 105737 000024' TSTB .DLGSW ; ARE WE ON INTERNAL PATH??
7398 017224 002036 BGE 40$ ; NO -- GO ON
7399 017226 105737 000000G TSTB MF20 ; YES -- DO WE HAVE MOS MEMORY??
7400 017232 001433 BEQ 40$ ; NO -- GO ON
7401 017234 105737 000040' TSTB .MFCT ; YES -- DO WE EXPECT ANY??
7402 017240 001430 BEQ 40$ ; NO -- GO ON
7403 017242 105737 000000G TSTB CCFAIL ; YES -- DID THE MF20'S EVAPORATE??
7404 017246 001003 BNE 30$ ; YES -- SET UP TO RELOAD THE KL
7405 017250 005737 000000G TST XCONMP ; NO -- DO WE HAVE ANY STATE 2 CONTROLLERS??
7406 017254 001022 BNE 40$ ; YES -- GO ON
7407 017256 30$:
7408 017256 042737 000000C 000044' BIC #KL.SPF!KL.VBD,.KLISV ; NO -- DON'T RESTART OR DUMP THE KL
7409 017264 052737 000000C 000044' BIS #KL.VBN!KL.LVB,.KLISV ; JUST LOAD AND START IT INSTEAD
7410 017272 PRINT #TQMPCA ; WARN SOMEONE ABOUT IT
017272 012700 003641' MOV #TQMPCA,R0
017276 004737 025164' JSR PC,$TTMSG
7411 017302 105737 000000G TSTB CCFAIL ; [TCO 4.2322] DO WE NEED A DBE SCAN??
7412 017306 001405 BEQ 40$ ; [TCO 4.2322] NO -- GO ON
7413 017310 112737 177777 000000G MOVB #-1,DBEFRC ; [TCO 4.2322] YES -- SET THE FLAG
7414 017316 CALL RESDET ; [TCO 4.2322] AND DO IT
017316 004737 000000G JSR PC,RESDET
7415 017322 40$:
7416 017322 105737 000030' TSTB .DMSW ; IS THIS A FILE READ??
7417 017326 001033 BNE $DLGCT ; NO -- DO DEFAULT DIALOG
7418 017330 $CFGXX::
7419 017330 CALL $CONFG ; YES -- EDIT THE TABLES
KLIQM -- ASK MEMORY QUESTIONS MACRO M1110 12-OCT-79 14:10 PAGE 167-1
$DLGMM -- ASK WHETHER TO CONFIGURE THE KL MEMORY
017330 004737 004756' JSR PC,$CONFG
7420 017334 103424 BCS 20$ ; ERROR IF CC-C IS SET
7421 017336 CALL RESDET ; ONE MORE TIME
017336 004737 000000G JSR PC,RESDET
7422 017342 CALL FITMEM ; SET UP LOGICAL TABLE
017342 004737 000000G JSR PC,FITMEM
7423 017346 CALL REPFIT ; REPORT LOGICAL CONFIGURATION
017346 004737 000000G JSR PC,REPFIT
7424 017352 005737 000000G TST GAPCNT ; DO WE HAVE ANY GAPS??
7425 017356 001410 BEQ 10$ ; NO -- GO ON
7426 017360 005737 000000G TST GAPTAB+0 ; YES -- IS THERE A GAP AT 0??
7427 017364 001005 BNE 10$ ; NO -- GO ON
7428 017366 PRINT #TQMNM0 ; YES -- COMPLAIN
017366 012700 003604' MOV #TQMNM0,R0
017372 004737 025164' JSR PC,$TTMSG
7429 017376 000405 BR ERRORX ; AND EXIT
7430 ;
7431 017400 10$:
7432 017400 CALL CONFIG ; SET REQUESTED CONFIGURATION
017400 004737 000000G JSR PC,CONFIG
7433 017404 000241 CLC ; INSURE CC-C IS CLEAR
7434 017406 20$:
7435 017406 CALLR $DLGMX ; RETURN TO ROOT
017406 000137 021452' JMP $DLGMX
7436 ;
7437 017412 ERRORX:
7438 017412 000137 021572' JMP $ERROR ; ERROR EXIT
7439 ;
KLIQM -- ASK MEMORY QUESTIONS MACRO M1110 12-OCT-79 14:10 PAGE 168
$DLGCT -- ASK FOR MEMORY CONTROLLER NUMBER
7441 .SBTTL $DLGCT -- ASK FOR MEMORY CONTROLLER NUMBER
7442
7443 017416 $DLGCT::
7444 017416 012700 000040 MOV #CTLS,R0 ; MAX CONTROLLER NUMBER
7445 017422 012701 000120' MOV #.CFGTB,R1 ; POINT TO CONFIGURATION TABLE
7446 017426 10$:
7447 017426 116060 177777G 000055' MOVB TYPNUM-1(R0),.CTLTP-1(R0) ; SET UP OUR CONTROLLER TABLE
7448 017434 012721 100000 MOV #BIT15,(R1)+ ; INVALIDATE OUR CONFIGURATION TABLE
7449 017440 077006 SOB R0,10$ ; LOOP TILL DONE
7450 ;
7451 ; CONFIGURATION DIALOG VECTORS
7452 ;
7453 017442 $DLGIM::
7454 017442 CALLR $CFIMD ; INTERNAL MEMORY DIALOG
017442 000137 003474' JMP $CFIMD
7455 ;
7456 017446 $DLGXM::
7457 017446 CALLR $CFXMD ; EXTERNAL MEMORY DIALOG
017446 000137 006006' JMP $CFXMD
7458 ;
7459 017452 $DLGMF::
7460 017452 CALLR $CFMMD ; MOS MEMORY DIALOG
017452 000137 003442' JMP $CFMMD
7461 ;
7462 017456 $DLGMB::
7463 017456 CALLR $DLGMM ; BACK UP
017456 000137 016654' JMP $DLGMM
7464 ;
7465 ;
7466 ; DECIDE WHERE TO GO ON "BACKUP"
7467 ;
7468 017462 $DLMB1:: ; HERE FROM MOS MEMORY DIALOG
7469 017462 105737 000000G TSTB DMA20 ; DO WE HAVE EXTERNAL MEMORY??
7470 017466 001367 BNE $DLGXM ; YES -- GO TO IT
7471 017470 $DLMB2:: ; HERE FROM EXTERNAL MEMORY DIALOG
7472 017470 105737 000000G TSTB MA20 ; DO WE HAVE MA20'S??
7473 017474 001362 BNE $DLGIM ; YES -- GO TO IT
7474 017476 105737 000000G TSTB MB20 ; DO WE HAVE MB20'S??
7475 017502 001357 BNE $DLGIM ; YES -- GO TO IT
7476 017504 000764 BR $DLGMB ; NO -- GO ALL THE WAY TO THE TOP
7477 ;
KLIQR -- ASK RAM QUESTIONS MACRO M1110 12-OCT-79 14:10 PAGE 169
$DLGCT -- ASK FOR MEMORY CONTROLLER NUMBER
7479 .TITLE KLIQR -- ASK RAM QUESTIONS
7480 017506 IDENT$ 5,2 ; ADP01
.IDENT /005020/
7481 ;
7482 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
7483 ;
7484 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
7485 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
7486 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
7487 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
7488 ;
7489 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
7490 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
7491 ; EQUIPMENT CORPORATION.
7492 ;
7493 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
7494 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
7495 ;
7496 ; VERSION 05-02 ; ADP01
7497 ;
7498 ; ALAN D. PECKHAM 14-APR-77
7499 ;
7500 ; MODIFIED BY:
7501 ;
7502 ; K. LEFEBVRE 13-MAR-79 ADD EXPANDED CRAM/DRAM ERROR REPORT
7503 ; TCO 4.2209
7504 ;
7505 ; FUNCTION: THIS MODULE DETERMINES THE OPERATIONS TO PERFORM ON THE KL
7506 ; MICROCODE RAMS.
7507 ;
7508 ; LOCAL DATA
7509 ;
7510 003746 .PSECT TEXT,D
7511 003746 TQRLMC: MESSAGE <RELOAD MICROCODE [YES,VERIFY,FIX,NO]?>
003746 122 105 114 .ASCIZ \RELOAD MICROCODE [YES,VERIFY,FIX,NO]?\
003751 117 101 104
003754 040 115 111
003757 103 122 117
003762 103 117 104
003765 105 040 133
003770 131 105 123
003773 054 126 105
003776 122 111 106
004001 131 054 106
004004 111 130 054
004007 116 117 135
004012 077 000
7512 017506 .PSECT
KLIQR -- ASK RAM QUESTIONS MACRO M1110 12-OCT-79 14:10 PAGE 170
$DLGRM -- ASK IF RELOAD MICROCODE IS REQUIRED
7514 .SBTTL $DLGRM -- ASK IF RELOAD MICROCODE IS REQUIRED
7515
7516 017506 105037 000026' $DLGRM::CLRB .DRSW ; RESET CONTROL AND
7517 017512 105037 000025' CLRB .UFNSW ; FILENAME SWITCH.
7518 017516 105737 000024' TSTB .DLGSW ; TEST DIALOG SWITCH.
7519 017522 003110 BGT 90$ ; TAKE DIALOG DEFAULT PATH.
7520 017524 002441 BLT 30$ ; TAKE INTERNAL PATH.
7521 017526 005002 10$: CLR R2 ; USE AS VERIFY SWITCH.
7522 017530 PRINT #TQRLMC ; ASK QUESTION
017530 012700 003746' MOV #TQRLMC,R0
017534 004737 025164' JSR PC,$TTMSG
7523 017540 CALL $TTRD ; READ ANSWER
017540 004737 024642' JSR PC,$TTRD
7524 017544 012705 000270' MOV #.TTIBF,R5
7525 017550 105715 TSTB (R5) ; CR ?
7526 017552 001474 BEQ 90$ ; YES, TREAT AS [YES]
7527 017554 022715 042531 CMP #"YE,(R5) ; [YES] ?
7528 017560 001443 BEQ 60$ ; LOAD THE RAMS.
7529 017562 022715 042526 CMP #"VE,(R5) ; [VERIFY] ?
7530 017566 001437 BEQ 50$ ; VERIFY THE RAMS.
7531 017570 022715 044506 CMP #"FI,(R5) ; [TCO 4.2209] [FIX] ?
7532 017574 001430 BEQ 35$ ; [TCO 4.2209] VERIFY AND FIX THE RAMS.
7533 017576 022715 047516 CMP #"NO,(R5) ; [NO] ?
7534 017602 001427 BEQ 40$ ; GO ON TO NEXT QUESTION.
7535 017604 022715 040502 CMP #"BA,(R5) ; [BACKUP] ?
7536 017610 001005 BNE 20$ ; GO TO DIALOG QUESTION.
7537 017612 80$: PRINT #COMCSE ; MUST BE SOME MISTAKE...
017612 012700 004561' MOV #COMCSE,R0
017616 004737 025164' JSR PC,$TTMSG
7538 017622 000741 BR 10$ ; ASK QUESTION AGAIN.
7539 017624 000137 017774' 20$: JMP $DLGEN ; ASK IF DIALOG NECESSARY.
7540 017630 005002 30$: CLR R2 ; [TCO 4.2209] CLEAR FIX FLAG
7541 017632 032737 000000G 000044' BIT #KL.LRM,.KLISV ; LOAD RAMS ?
7542 017640 001410 BEQ 40$ ; [TCO 4.2209] NO-- NEXT QUESTION
7543 017642 032737 000000C 000044' BIT #KL.SPF!KL.DEF,.KLISV ; [TCO 4.2209] YES-- POWER FAIL?
7544 017650 001033 BNE 70$ ; [TCO 4.2209] YES-- NO VERIFY
7545 017652 105302 DECB R2 ; [TCO 4.2209] YES-- VERIFY AND FIX THE RAMS.
7546 017654 000431 BR 70$ ; [TCO 4.2209] CONTINUE.
7547 017656 105302 35$: DECB R2 ; [TCO 4.2209] SET FLAG TO FIX RAMS.
7548 017660 000403 BR 60$ ; [TCO 4.2209] CONTINUE.
7550 017662 000137 016200' 40$: JMP $DLGCA ; CHECK FOR CACHE.
7554 017666 105202 50$: INCB R2 ; INDICATE VERIFICATION NECESSARY
7555 017670 60$: CALL LQRBPS ; CHECK FOR OPERAND
017670 004737 017750' JSR PC,LQRBPS
7556 017674 001421 BEQ 70$ ; NO OPERAND IS OKAY. ; ADP01
7557 017676 032737 000006 000000G BIT #6,.FEMOD ; IF IN OPERATOR MODE, THEN
7558 017704 001742 BEQ 80$ ; OPERAND IS FORBIDDEN.
7559 017706 012700 000442' MOV #.USRFN,R0 ; GET USER FILENAME BLOCK
7560 017712 012701 MOV (PC)+,R1
7561 017714 050672 .RAD50 /MCB/ ; SET DEFAULT FILE TYPE
7562 017716 010160 000006 MOV R1,6(R0)
7563 017722 CALL $TRF2B ; AND GET FILE NAME.
017722 004737 022660' JSR PC,$TRF2B
7564 017726 103731 BCS 80$
7565 017730 105715 TSTB (R5) ; CHECK FOR PROPER TERMINATION.
7566 017732 001327 BNE 80$
7567 017734 105237 000025' INCB .UFNSW ; FILE NAME HAS BEEN SPECIFIED.
KLIQR -- ASK RAM QUESTIONS MACRO M1110 12-OCT-79 14:10 PAGE 170-1
$DLGRM -- ASK IF RELOAD MICROCODE IS REQUIRED
7568 017740 110237 000026' 70$: MOVB R2,.DRSW ; INSERT VERIFY SWITCH.
7569 017744 000137 021412' 90$: JMP $CFGRM ; AND GO PROCESS MICROCODE.
7570
7571 ;+
7572 ; BYPASS CHARACTERS TO END OF LINE OR PAST CONTIGUOUS SET OF SPACES.
7573 ;-
7574
7575 017750 105715 LQRBPS: TSTB (R5) ; IF END OF LINE
7576 017752 001407 BEQ 90$ ; THEN QUIT
7577 017754 122725 000040 CMPB #' ,(R5)+ ; OTHERWISE LOOK
7578 017760 001373 BNE LQRBPS ; FOR A SPACE.
7579 017762 122725 000040 10$: CMPB #' ,(R5)+ ; THEN BYPASS
7580 017766 001775 BEQ 10$ ; ANY MORE THAT FOLLOW.
7581 017770 105745 TSTB -(R5) ; TEST FOR END OF LINE.
7582 017772 90$: RETURN
017772 000207 RTS PC
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1110 12-OCT-79 14:10 PAGE 171
$DLGRM -- ASK IF RELOAD MICROCODE IS REQUIRED
7584 .TITLE KLIQS -- DIALOG ENTRANCE QUESTION
7585 017774 IDENT$ 12,07
.IDENT /012070/
7586
7587 ;
7588 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
7589 ;
7590 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
7591 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
7592 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
7593 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
7594 ;
7595 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
7596 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
7597 ; EQUIPMENT CORPORATION.
7598 ;
7599 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
7600 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
7601 ;
7602 ; VERSION 12-07
7603 ;
7604 ; ALAN D. PECKHAM 14-APR-77
7605 ;
7606 ; MODIFIED BY:
7607 ;
7608 ; R. BELANGER 16-JUL-79 ADD KL10 HARDWARE ENVIRONMENTAL REPORTING
7609 ; TCO 4.2333
7610 ;
7611 ; R. BELANGER -- SET MF20 FLAG ON DETECTION OF MOS MASTER OSCILLATOR
7612 ;
7613 ; FUNCTION: THIS DIALOG QUESTION DETERMINES IF THE OPERATOR
7614 ; WANTS TO GO THROUGH THE DIALOG QUESTIONS OR FOLLOW
7615 ; THE DEFAULT PATH BY ASSUMING THE DEFAULT ANSWER TO
7616 ; ALL QUESTIONS.
7617 ;
7618 ; LOCAL VARIABLES
7619 ;
7620 001540 .PSECT DATA,D
7621 001540 DQSCBF:
7622 001540 000000 000000 000000 .WORD 0,0,0,0,0,0 ;HOLDING AREA FOR C-RAM WORD ZERO.
001546 000000 000000 000000
7623 001554 DQSCF3:
7624 001554 000000 000460 000000 .WORD 0,460,0,0,0,0 ;C-RAM WORD WITH COND FIELD = 3.
001562 000000 000000 000000
7625 001570 DQSAPR:
7626 001570 WD36$ 0 0 ;HOLDING AREA FOR RH(APRID)
001570 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
001573 000 000 .BYTE BY$$3,BY$$4
7627 .EVEN
7628 001576 DQSHWT:
7629 001576 000000 .WORD 0
7630 001600 004156' .WORD TQSMMO
7631 001602 004206' .WORD TQSEXT
7632 001604 004234' .WORD TQSCHN
7633 001606 004260' .WORD TQSCAC
7634 001610 000000 .WORD 0
7635 004014 .PSECT TEXT,D
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1110 12-OCT-79 14:10 PAGE 171-1
$DLGRM -- ASK IF RELOAD MICROCODE IS REQUIRED
7636 004014 TQSDLG:
7637 004014 MESSAGE <ENTER DIALOG [NO,YES,EXIT,BOOT]?>
004014 105 116 124 .ASCIZ \ENTER DIALOG [NO,YES,EXIT,BOOT]?\
004017 105 122 040
004022 104 111 101
004025 114 117 107
004030 040 133 116
004033 117 054 131
004036 105 123 054
004041 105 130 111
004044 124 054 102
004047 117 117 124
004052 135 077 000
7638 004055 TQSKSN:
7639 004055 MESSAGE <KLI -- KL10 S/N: _>
004055 113 114 111 .ASCIZ \KLI -- KL10 S/N: _\
004060 040 055 055
004063 040 113 114
004066 061 060 040
004071 123 057 116
004074 072 040 137
004077 000
7640 004100 TQSMDL:
7641 004100 MESSAGE <., MODEL _>
004100 056 054 040 .ASCIZ \., MODEL _\
004103 115 117 104
004106 105 114 040
004111 137 000
7642 004113 TQSHRZ:
7643 004113 040 110 105 .ASCIZ / HERTZ\/
004116 122 124 132
004121 134 000
7644 004123 TQSHWP:
7645 004123 MESSAGE <KL10 HARDWARE ENVIRONMENT:>
004123 113 114 061 .ASCIZ \KL10 HARDWARE ENVIRONMENT:\
004126 060 040 110
004131 101 122 104
004134 127 101 122
004137 105 040 105
004142 116 126 111
004145 122 117 116
004150 115 105 116
004153 124 072 000
7646 004156 TQSMMO:
7647 004156 011 115 117 .ASCIZ / MOS MASTER OSCILLATOR\/
004161 123 040 115
004164 101 123 124
004167 105 122 040
004172 117 123 103
004175 111 114 114
004200 101 124 117
004203 122 134 000
7648 004206 TQSEXT:
7649 004206 011 105 130 .ASCIZ / EXTENDED ADDRESSING\/
004211 124 105 116
004214 104 105 104
004217 040 101 104
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1110 12-OCT-79 14:10 PAGE 171-2
$DLGRM -- ASK IF RELOAD MICROCODE IS REQUIRED
004222 104 122 105
004225 123 123 111
004230 116 107 134
004233 000
7650 004234 TQSCHN:
7651 004234 011 111 116 .ASCIZ / INTERNAL CHANNELS\/
004237 124 105 122
004242 116 101 114
004245 040 103 110
004250 101 116 116
004253 105 114 123
004256 134 000
7652 004260 TQSCAC:
7653 004260 011 103 101 .ASCIZ / CACHE\/
004263 103 110 105
004266 134 000
7654 004270 TQSCDH:
7655 004270 ERROR <CAN'T DETERMINE KL10 HARDWARE ENVIRONMENT>
004270 077 040 103 .ASCIZ \? CAN'T DETERMINE KL10 HARDWARE ENVIRONMENT\
004273 101 116 047
004276 124 040 104
004301 105 124 105
004304 122 115 111
004307 116 105 040
004312 113 114 061
004315 060 040 110
004320 101 122 104
004323 127 101 122
004326 105 040 105
004331 116 126 111
004334 122 117 116
004337 115 105 116
004342 124 000
7656 004344 TQSWRN:
7657 004344 WARNING <PROCEED AT YOUR OWN RISK>
004344 045 040 120 .ASCIZ \% PROCEED AT YOUR OWN RISK\
004347 122 117 103
004352 105 105 104
004355 040 101 124
004360 040 131 117
004363 125 122 040
004366 117 127 116
004371 040 122 111
004374 123 113 000
7658 004377 TQSABO:
7659 004377 WARNING <AUTOMATIC RELOAD ABORTED>
004377 045 040 101 .ASCIZ \% AUTOMATIC RELOAD ABORTED\
004402 125 124 117
004405 115 101 124
004410 111 103 040
004413 122 105 114
004416 117 101 104
004421 040 101 102
004424 117 122 124
004427 105 104 000
7660 004432 TQSMMA:
7661 004432 ERROR <CAN'T SUPPORT MOS MEMORY ON A MODEL "A" CPU>
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1110 12-OCT-79 14:10 PAGE 171-3
$DLGRM -- ASK IF RELOAD MICROCODE IS REQUIRED
004432 077 040 103 .ASCIZ \? CAN'T SUPPORT MOS MEMORY ON A MODEL "A" CPU\
004435 101 116 047
004440 124 040 123
004443 125 120 120
004446 117 122 124
004451 040 115 117
004454 123 040 115
004457 105 115 117
004462 122 131 040
004465 117 116 040
004470 101 040 115
004473 117 104 105
004476 114 040 042
004501 101 042 040
004504 103 120 125
004507 000
7662 017774 .PSECT
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1110 12-OCT-79 14:10 PAGE 172
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
7664 .SBTTL $DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
7665
7666 017774 $DLGEN::
7667 017774 105037 000041' CLRB .FILSW ; SAY WRITE CONFIGURATION FILE
7668 020000 105737 000024' TSTB .DLGSW ; TEST DIALOG CONTROL SWITCH.
7669 020004 002437 BLT 40$ ; TAKE INTERNAL PATH.
7670 020006 105037 000024' CLRB .DLGSW ; RESET CONTROL SWITCH.
7671 ;
7672 ; ENTER DIALOGUE
7673 ;
7674 020012 10$:
7675 020012 PRINT #TQSDLG ; ASK QUESTION.
020012 012700 004014' MOV #TQSDLG,R0
020016 004737 025164' JSR PC,$TTMSG
7676 020022 CALL $TTRD ; READ ANSWER
020022 004737 024642' JSR PC,$TTRD
7677 020026 012705 000270' MOV #.TTIBF,R5
7678 020032 105715 TSTB (R5) ; CR ?
7679 020034 001421 BEQ 30$ ; YES, TREAT AS DEFAULT
7680 020036 022715 047516 CMP #"NO,(R5) ; [NO] ?
7681 020042 001416 BEQ 30$ ; TAKE DEFAULT DIALOG PATH.
7682 020044 022715 042531 CMP #"YE,(R5) ; [YES] ?
7683 020050 001415 BEQ 40$ ; ASK NEXT QUESTION.
7684 020052 022715 054105 CMP #"EX,(R5) ; [EXIT] ?
7685 020056 001477 BEQ 120$ ; EXIT FROM KLINIT.
7686 020060 022715 047502 CMP #"BO,(R5) ; [BOOT] ?
7687 020064 001423 BEQ 60$ ; LOAD AND START BOOT.
7688 ;
7689 ; COMMAND SYNTAX ERROR
7690 ;
7691 020066 20$:
7692 020066 PRINT #COMCSE ; SOME MISTAKE....
020066 012700 004561' MOV #COMCSE,R0
020072 004737 025164' JSR PC,$TTMSG
7693 020076 000745 BR 10$ ; ASK QUESTION AGAIN.
7694 ;
7695 ;
7696 ; "NO" RESPONSE
7697 ;
7698 020100 30$:
7699 020100 105237 000024' INCB .DLGSW ; INDICATE DEFAULT PATH
7700 ;
7701 ; "YES" RESPONSE OR INTERNAL PATH
7702 ;
7703 020104 40$:
7704 020104 CALL LQSHWE ; [TCO 4.2333] READ AND DESCRIBE OUR HARDWARE
020104 004737 020314' JSR PC,LQSHWE
7705 020110 103007 BCC 50$ ; [TCO 4.2333] ALL OK IF CC-C IS CLEAR
7706 020112 105737 000024' TSTB .DLGSW ; [TCO 4.2333] ARE WE ON INTERNAL PATH??
7707 020116 002453 BLT 110$ ; [TCO 4.2333] YES -- ABORT AUTOMATIC RELOAD
7708 020120 PRINT #TQSWRN ; [TCO 4.2333] NO -- WARN OPERATOR
020120 012700 004344' MOV #TQSWRN,R0
020124 004737 025164' JSR PC,$TTMSG
7709 020130 50$:
7710 020130 000137 017506' JMP $DLGRM ; AND START DIALOGUE
7711 ;
7712 ;
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1110 12-OCT-79 14:10 PAGE 172-1
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
7713 ; "BOOT" RESPONSE
7714 ;
7715 020134 60$:
7716 020134 105037 000031' CLRB .DBSW
7717 020140 105337 000041' DECB .FILSW ; DISABLE CONFIGURATION FILE WRITE
7718 020144 105037 000025' CLRB .UFNSW ; USE DEFAULT FILE
7719 020150 CALL LQSBPS ; IF OPERAND FOLLOWS
020150 004737 020270' JSR PC,LQSBPS
7720 020154 001415 BEQ 70$ ; THEN
7721 020156 012700 000442' MOV #.USRFN,R0 ; GET FILENAME BLOCK
7722 020162 012701 MOV (PC)+,R1
7723 020164 021402 .RAD50 /EXB/ ; SET DEFAULT EXTENSION
7724 020166 010160 000006 MOV R1,6(R0)
7725 020172 CALL $TRF2B ; AND PARSE OUT FILE NAME.
020172 004737 022660' JSR PC,$TRF2B
7726 020176 103733 BCS 20$
7727 020200 105715 TSTB (R5) ; IF NOT TERMINATED PROPERLY
7728 020202 001331 BNE 20$ ; TELL HIM SO.
7729 020204 105237 000025' INCB .UFNSW ; INDICATED FILE NAME SPECIFIED.
7730 020210 70$:
7731 020210 CALL LQSHDW ; [TCO 4.2333] READ THE HARDWARE OPTIONS
020210 004737 020624' JSR PC,LQSHDW
7732 020214 103003 BCC 80$ ; [TCO 4.2333] ALL OK IF CC-C IS CLEAR
7733 020216 CALL LQSCHE ; [TCO 4.2333] TELL HIM WE GOT AN ERROR
020216 004737 020604' JSR PC,LQSCHE
7734 020222 000403 BR 90$ ; [TCO 4.2333] AND GO ON
7735 ;
7736 020224 80$:
7737 020224 CALL LQSCHO ; [TCO 4.2333] MAKE SURE THAT WE ARE OK
020224 004737 020560' JSR PC,LQSCHO
7738 020230 103004 BCC 100$ ; [TCO 4.2333] ALL OK IF CC-C IS CLEAR
7739 020232 90$:
7740 020232 PRINT #TQSWRN ; [TCO 4.2333] WARN HIM
020232 012700 004344' MOV #TQSWRN,R0
020236 004737 025164' JSR PC,$TTMSG
7741 020242 100$:
7742 020242 000137 021500' JMP $CFGBT ; AND GO LOAD BOOT.
7743 ;
7744 ;
7745 ; HERE TO ABORT AN AUTOMATIC RELOAD
7746 ;
7747 020246 110$:
7748 020246 PRINT #TQSABO ; [TCO 4.2333] SAY THAT WE ARE ABORTING
020246 012700 004377' MOV #TQSABO,R0
020252 004737 025164' JSR PC,$TTMSG
7749 ;
7750 ; "EXIT" RESPONSE
7751 ;
7752 020256 120$:
7753 020256 013737 000046' 000000G MOV .SNSAV,.CPUSN ; [TCO 4.2333] RESTORE SERIAL NUMBER
7754 020264 000137 021602' JMP $EXIT ; EXIT FROM KLINIT.
7755 ;
7756
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1110 12-OCT-79 14:10 PAGE 173
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
7758 ;+
7759 ; BYPASS CHARACTERS TO END OF LINE OR PAST CONTIGUOUS SET OF SPACES.
7760 ;-
7761
7762 020270 LQSBPS:
7763 020270 105715 TSTB (R5) ; IF END OF LINE
7764 020272 001407 BEQ 20$ ; THEN QUIT
7765 020274 122725 000040 CMPB #' ,(R5)+ ; OTHERWISE LOOK
7766 020300 001373 BNE LQSBPS ; FOR A SPACE.
7767 020302 10$:
7768 020302 122725 000040 CMPB #' ,(R5)+ ; THEN BYPASS
7769 020306 001775 BEQ 10$ ; ANY MORE THAT FOLLOW.
7770 020310 105745 TSTB -(R5) ; TEST FOR END OF LINE.
7771 020312 20$:
7772 020312 RETURN
020312 000207 RTS PC
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1110 12-OCT-79 14:10 PAGE 174
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
7774 ;+
7775 ; THIS SUBROUTINE DISPLAYS THE HARDWARE ENVIRONMENT OF THE KL10, AND DOES
7776 ; CHECKS FOR CONFLICTING OPTIONS.
7777 ;-
7778
7779 .ENABL LSB
7780
7781 020314 LQSHWE:
7782 020314 005737 000000G TST .CPUSN ; [TCO 4.2333] HAVE WE BEEN HERE BEFORE??
7783 020320 003140 BGT 60$ ; [TCO 4.2333] YES -- JUST EXIT
7784 020322 100530 BMI LQSCHE ; [TCO 4.2333] YES -- FAILED BEFORE, GRIPE AND EXIT
7785 020324 CALL LQSHDW ; [TCO 4.2333] NO -- READ THE HARDWARE OPTIONS
020324 004737 020624' JSR PC,LQSHDW
7786 020330 103525 BCS LQSCHE ; [TCO 4.2333] ERROR IF CC-C IS SET
7787 020332 105737 000024' TSTB .DLGSW ; [TCO 4.2333] ARE WE ON INTERNAL PATH??
7788 020336 002003 BGE 10$ ; [TCO 4.2333] NO -- GO ON
7789 020340 005737 000000G TST .DATE3 ; [TCO 4.2333] YES -- IS THIS A RELOAD??
7790 020344 001105 BNE LQSCHO ; [TCO 4.2333] YES -- JUST CHECK OPTIONS
7791 020346 10$:
7792 020346 012700 004055' MOV #TQSKSN,R0 ; [TCO 4.2333] NO -- SERIAL NUMBER PREAMBLE TO R0
7793 020352 CALL $TTDMS ; [TCO 4.2333] PRINT IT
020352 004737 025116' JSR PC,$TTDMS
7794 020356 013700 000000G MOV .CPUSN,R0 ; [TCO 4.2333] AND THE SERIAL NUMBER
7795 020362 CALL $TDB2I ; [TCO 4.2333] PRINT THAT
020362 004737 022776' JSR PC,$TDB2I
7796 020366 012700 004100' MOV #TQSMDL,R0 ; [TCO 4.2333] MODEL TYPE PREAMBLE
7797 020372 CALL $TTDMS ; [TCO 4.2333] PRINT THAT
020372 004737 025116' JSR PC,$TTDMS
7798 020376 012746 000102 MOV #'B,-(SP) ; [TCO 4.2333] ASSUME MODEL "B"
7799 020402 010600 MOV SP,R0 ; [TCO 4.2333] POINT TO BUFFER ON STACK
7800 020404 012701 000001 MOV #1,R1 ; [TCO 4.2333] LENGTH OF 1 CHARACTER
7801 020410 105737 000036' TSTB .EASW ; [TCO 4.2333] IS IT A MODEL "B"??
7802 020414 100001 BPL 20$ ; [TCO 4.2333] YES -- GO ON
7803 020416 005316 DEC (SP) ; [TCO 4.2333] NO -- MAKE IT AN "A"
7804 020420 20$:
7805 020420 CALL $TTWR ; [TCO 4.2333] AND PRINT IT
020420 004737 025244' JSR PC,$TTWR
7806 020424 012716 000054 MOV #',,(SP) ; [TCO 4.2333] SET UP <COMMA>
7807 020430 CALL $TTWR ; [TCO 4.2333] AND PRINT IT
020430 004737 025244' JSR PC,$TTWR
7808 020434 005726 TST (SP)+ ; [TCO 4.2333] CLEAR STACK
7809 020436 CALL $TTSPC ; [TCO 4.2333] PRINT A <SPACE>
020436 004737 025030' JSR PC,$TTSPC
7810 020442 012700 000074 MOV #^D60,R0 ; [TCO 4.2333] ASSUME A 60 HERTZ MACHINE
7811 020446 032737 000000G 000000G BIT #H.KPWR,.HRDWR ; [TCO 4.2333] IS IT A 60 HERTZ MACHINE??
7812 020454 001402 BEQ 30$ ; [TCO 4.2333] YES -- GO ON
7813 020456 012700 000062 MOV #^D50,R0 ; [TCO 4.2333] NO -- MAKE IT 50 HERTZ
7814 020462 30$:
7815 020462 CALL $TDB2I ; [TCO 4.2333] PRINT WHATEVER
020462 004737 022776' JSR PC,$TDB2I
7816 020466 012700 004113' MOV #TQSHRZ,R0 ; [TCO 4.2333] POSTAMBLE POINTER TO R0
7817 020472 CALL $TTDMS ; [TCO 4.2333] AND PRINT IT
020472 004737 025116' JSR PC,$TTDMS
7818 020476 PRINT #TQSHWP ; [TCO 4.2333] PRINT THE HEADER
020476 012700 004123' MOV #TQSHWP,R0
020502 004737 025164' JSR PC,$TTMSG
7819 020506 012701 000001 MOV #BIT0,R1 ; [TCO 4.2333] BIT MASK TO R1
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1110 12-OCT-79 14:10 PAGE 174-1
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
7820 020512 012702 001576' MOV #DQSHWT,R2 ; [TCO 4.2333] TABLE POINTER TO R2
7821 020516 013703 000000G MOV .HRDWR,R3 ; [TCO 4.2333] OPTION BITS TO R3
7822 020522 042703 000000C BIC #H.KUDF!H.KPWR,R3 ; [TCO 4.2333] MINUS A COUPLE
7823 020526 012704 000006 MOV #6,R4 ; [TCO 4.2333] ITERATION COUNT TO R4
7824 020532 40$:
7825 020532 030103 BIT R1,R3 ; [TCO 4.2333] IS THE OPTION PRESENT??
7826 020534 001404 BEQ 50$ ; [TCO 4.2333] NO -- TRY NET OPTION
7827 020536 011200 MOV (R2),R0 ; [TCO 4.2333] YES -- DO WE CARE ABOUT IT AT THIS POINT??
7828 020540 001402 BEQ 50$ ; [TCO 4.2333] NO -- GO ON
7829 020542 CALL $TTDMS ; [TCO 4.2333] YES -- PRINT IT
020542 004737 025116' JSR PC,$TTDMS
7830 020546 50$:
7831 020546 005722 TST (R2)+ ; [TCO 4.2333] ADVANCE MESSAGE POINTER
7832 020550 006301 ASL R1 ; [TCO 4.2333] ADVANCE BIT MASK
7833 020552 077411 SOB R4,40$ ; [TCO 4.2333] AND CONTINUE
7834 020554 CALL $TCRLF ; [TCO 4.2333] END THE DISPLAY
020554 004737 025060' JSR PC,$TCRLF
7835 ;
7836 ; HERE TO CHECK FOR CONFLICTING OPTIONS
7837 ; (MODEL "A" CPU AND MOS MASTER OSCILATOR)
7838 ;
7839 020560 LQSCHO:
7840 020560 105737 000036' TSTB .EASW ; [TCO 4.2333] IS THIS A MODEL "A" CPU??
7841 020564 100016 BPL 60$ ; [TCO 4.2333] NO -- GO ON
7842 020566 105737 000037' TSTB .MFSW ; [TCO 4.2333] YES -- IS MOS MEMORY PRESENT??
7843 020572 100413 BMI 60$ ; [TCO 4.2333] NO -- GO ON (FIX TEST POLARITY)
7844 020574 PRINT #TQSMMA ; [TCO 4.2333] YES -- COMPLAIN
020574 012700 004432' MOV #TQSMMA,R0
020600 004737 025164' JSR PC,$TTMSG
7845 ;
7846 ; HERE TO FLAG AND REPORT HARDWARE OPTION ERRORS
7847 ;
7848 020604 LQSCHE:
7849 020604 PRINT #TQSCDH ; [TCO 4.2333] CAN'T DETERMINE HARDWARE OPTIONS
020604 012700 004270' MOV #TQSCDH,R0
020610 004737 025164' JSR PC,$TTMSG
7850 020614 005337 000000G DEC .CPUSN ; [TCO 4.2333] FLAG THIS FACT
7851 020620 000261 SEC ; [TCO 4.2333] SET ERROR RETURN
7852 020622 60$:
7853 020622 RETURN ; [TCO 4.2333] TO CALLER
020622 000207 RTS PC
7854
7855 .DSABL LSB
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1110 12-OCT-79 14:10 PAGE 175
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
7857 ;+
7858 ; THIS SUBROUTINE CLEARS PROTOCOL, HALTS THE KL, AND DETERMINES THE
7859 ; HARDWARE FEATURES OF THE KL FOR LATER REFERENCE.
7860 ;-
7861
7862 020624 LQSHDW:
7863 020624 012737 000401 000000G MOV #401,.NOERR ; TELL RSX-20F NOT TO INTERRUPT
7864 020632 CALL ..DTSP ; AND TURN OFF PROTOCOLS.
020632 004737 000000G JSR PC,..DTSP
7865 020636 012700 010000 MOV #.CLRUN,R0 ; HALT THE KL IF RUNNING
7866 020642 CALL $DFXC
020642 004737 013222' JSR PC,$DFXC
7867 020646 103466 BCS 40$ ; [TCO 4.2333]
7868 020650 012700 001570' MOV #DQSAPR,R0 ; GET HARDWARE OPTIONS BY
7869 020654 CALL LQSHWO ; OBTAINING RH(APRID)
020654 004737 021026' JSR PC,LQSHWO
7870 020660 103461 BCS 40$ ; [TCO 4.2333]
7871 020662 113746 001572' MOVB DQSAPR+2,-(SP) ; [TCO 4.2333] GET HIGH PART OF HARDWARE OPTIONS
7872 020666 042716 177774 BIC #^C3,(SP) ; [TCO 4.2333] GET RID OF JUNK
7873 020672 SL (SP),4 ; [TCO 4.2333] POSITION IT
020672 006316 ASL (SP)
020674 006316 ASL (SP)
020676 006316 ASL (SP)
020700 006316 ASL (SP)
7874 020702 113746 001571' MOVB DQSAPR+1,-(SP) ; [TCO 4.2333] NOW FOR THE LOW PART
7875 020706 042716 177417 BIC #^C360,(SP) ; [TCO 4.2333] FLUSH JUNK
7876 020712 SR (SP),4 ; [TCO 4.2333] AND POSITION THAT
020712 006216 ASR (SP)
020714 006216 ASR (SP)
020716 006216 ASR (SP)
020720 006216 ASR (SP)
7877 020722 052616 BIS (SP)+,(SP) ; [TCO 4.2333] MERGE THE HARDWARE OPTIONS
7878 020724 013746 001570' MOV DQSAPR,-(SP) ; [TCO 4.2333] NOW GET THE SERIAL NUMBER
7879 020730 042716 170000 BIC #^C7777,(SP) ; [TCO 4.2333] WITHOUT THE HANGERS-ON
7880 020734 012700 000000G MOV #.CPUSN,R0 ; [TCO 4.2333] POINT TO THE SERIAL NUMBER
7881 020740 012620 MOV (SP)+,(R0)+ ; [TCO 4.2333] SET THE SERIAL NUMBER
7882 020742 012610 MOV (SP)+,(R0) ; [TCO 4.2333] AND ITS HARDWARE OPTIONS
7883 020744 105337 000035' DECB .CASW ; ASSUME NO CACHE
7884 020750 132710 000000G BITB #H.KCAC,(R0) ; [TCO 4.2333] AND IF THERE IS
7885 020754 001402 BEQ 10$
7886 020756 105437 000035' NEGB .CASW ; THEN RECORD IT.
7887 020762 10$:
7888 020762 105337 000037' DECB .MFSW ; ASSUME NO MOS MEMORY
7889 020766 132710 000000G BITB #H.KMOS,(R0) ; [TCO 4.2333] CHECK MOS MASTER OSCILLATOR
7890 020772 001404 BEQ 20$ ; NOT PRESENT -- GO ON
7891 020774 105437 000037' NEGB .MFSW ; MOS IS IN SYSTEM
7892 021000 CALL $KLMR ; DO ANOTHER RESET TO SETUP CLOCKS
021000 004737 014350' JSR PC,$KLMR
7893 021004 20$:
7894 021004 105337 000036' DECB .EASW ; ASSUME A MODEL A CPU
7895 021010 132710 000000G BITB #H.KEXT,(R0) ; [TCO 4.2333] AND IF MODEL B
7896 021014 001402 BEQ 30$ ; THEN
7897 021016 105437 000036' NEGB .EASW ; THERE IS EXTENDED ADDRESSING.
7898 021022 30$:
7899 021022 000241 CLC ; [TCO 4.2333] INSURE SUCCESS RETURN
7900 021024 40$:
7901 021024 RETURN
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1110 12-OCT-79 14:10 PAGE 175-1
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
021024 000207 RTS PC
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1110 12-OCT-79 14:10 PAGE 176
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
7903 ;+
7904 ; SPECIAL ROUTINE TO GET LOWER HARDWARE HALF OF APRID WITHOUT
7905 ; DESTROYING REGISTERS. THIS ROUTINE IS HAIRY BECAUSE IT MODIFIES
7906 ; C-RAM LOCATION ZERO FOR A SHORT TIME AND THEN RESTORES IT TO ITS
7907 ; ORIGINAL CONTENTS.
7908 ;
7909 ; INPUTS:
7910 ; R0 - ADDRESS OF 36 BIT BUFFER.
7911 ;
7912 ; OUTPUT:
7913 ; (R0) - RECIEVES RH(APRID) WORD.
7914 ; CARRY IS SET IF ERROR OCCURS.
7915 ;-
7916
7917 021026 LQSHWO:
7918 021026 010002 MOV R0,R2
7919 021030 CALL $KLMR ; CLEAR THE WORLD.
021030 004737 014350' JSR PC,$KLMR
7920 021034 103435 BCS 20$
7921 021036 012701 001540' MOV #DQSCBF,R1 ; HOLDING AREA FOR CONTENTS OF C-RAM 0
7922 021042 005000 CLR R0 ; READ C-RAM LOCATION ZERO.
7923 021044 CALL $RCRAM
021044 004737 011026' JSR PC,$RCRAM
7924 021050 103427 BCS 20$
7925 021052 012701 001554' MOV #DQSCF3,R1 ; NOW WRITE WORD WITH COND FIELD = 3
7926 021056 CALL $WCRAM
021056 004737 010546' JSR PC,$WCRAM
7927 021062 103415 BCS 10$
7928 021064 012700 003000 MOV #.SECLK,R0 ; STEP THE EBOX TWICE.
7929 021070 CALL $DFXC
021070 004737 013222' JSR PC,$DFXC
7930 021074 103410 BCS 10$
7931 021076 CALL $DFXC
021076 004737 013222' JSR PC,$DFXC
7932 021102 103405 BCS 10$
7933 021104 010201 MOV R2,R1 ; NOW READ THE AR.
7934 021106 012700 120000 MOV #<120*1000>,R0
7935 021112 CALL $DFRD
021112 004737 012706' JSR PC,$DFRD
7936 021116 10$:
7937 021116 012701 001540' MOV #DQSCBF,R1 ; RESTORE C-RAM LOCATION ZERO.
7938 021122 005000 CLR R0
7939 021124 CALLR $WCRAM
021124 000137 010546' JMP $WCRAM
7940 021130 20$:
7941 021130 RETURN
021130 000207 RTS PC
7942 .TITLE KLIRS -- SPECIAL KL RESTARTS
7943 021132 IDENT$ 5,0,KLI$$F
.IDENT /B05000/
7944 ;
7945 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
7946 ;
7947 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
7948 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
7949 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
7950 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
KLIRS -- SPECIAL KL RESTARTS MACRO M1110 12-OCT-79 14:10 PAGE 176-1
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
7951 ;
7952 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
7953 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
7954 ; EQUIPMENT CORPORATION.
7955 ;
7956 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
7957 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
7958 ;
7959 ; VERSION 05-00
7960 ;
7961 ; ALAN D. PECKHAM 7-APR-77
7962 ;
7963 ; MODIFICATIONS:
7964 ;
7965 ; NO. DATE PROGRAMMER REASON
7966 ; --- ---- ---------- ------
7967 ;
7968 ; FUNCTION: THIS MODULE CONTAINS THE ROUTINES FOR SPECIAL KL RESTARTS:
7969 ; POWER FAIL RESTART AT 70.
7973 ;
7974 ; EQUATED SYMBOLS
7975 ;
7976 000004 CONO = 4 ; KL I/O SUB-FUNCTION CODE.
7977 000010 PAG = 10 ; KL DEVICE.
7978 ;
7979 ; LOCAL MACROS
7980 ;
7981 .MCALL MRKT$S,WTSE$S,WSIG$S
7982 ;
7983 ; LOCAL DATA
7984 ;
7985 001612 .PSECT DATA,D
7987 001612 DRSCEN: IO10$ CONO PAG,,600000 ; ENABLE CACHE
001612 000 000 003 .BYTE BY$$0,BY$$1,BY$$2
001615 012 016 .BYTE BY$$3,BY$$4
7989 001617 DRSPLD: WD36$ 0 3 ; LOAD AR/ARX WITH
001617 003 000 000 .BYTE BY$$0,BY$$1,BY$$2
001622 000 000 .BYTE BY$$3,BY$$4
7990 001624 DRSPEN: WD36$ 0 16 ; C-RAM, D-RAM, AND FS PARITIES
001624 016 000 000 .BYTE BY$$0,BY$$1,BY$$2
001627 000 000 .BYTE BY$$3,BY$$4
7991 001631 DRSPFR: WD22$ 70 ; KL POWER FAIL RESTART ADDRESS.
001631 070 000 000 .BYTE BY$$0,BY$$1,BY$$2
7995 .EVEN
7996 004510 .PSECT TEXT,D
7997 004510 TRSPRF: ERROR <POWER-FAIL RESTART FAILED>
004510 077 040 120 .ASCIZ \? POWER-FAIL RESTART FAILED\
004513 117 127 105
004516 122 055 106
004521 101 111 114
004524 040 122 105
004527 123 124 101
004532 122 124 040
004535 106 101 111
004540 114 105 104
004543 000
8004 004544 TRSRSM: MESSAGE <KL RESTARTED>
KLIRS -- SPECIAL KL RESTARTS MACRO M1110 12-OCT-79 14:10 PAGE 176-2
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
004544 113 114 040 .ASCIZ \KL RESTARTED\
004547 122 105 123
004552 124 101 122
004555 124 105 104
004560 000
8005 021132 .PSECT
KLIRS -- SPECIAL KL RESTARTS MACRO M1110 12-OCT-79 14:10 PAGE 177
$POWER -- POWER FAILURE RESTART
8007 .SBTTL $POWER -- POWER FAILURE RESTART
8008 ;+
8009 ; UPDATE THE CONFIGURATION FILE, INITIALIZE THE KL FOR EXECUTION,
8010 ; AND START THE KL CPU AT 70 FOR POWER FAIL RESTART.
8011 ;
8012 ; NO INPUTS OR OUTPUTS
8013 ;
8014 ; EXIT IS EITHER TO $EXIT IS SUCCESSFUL OR $ERROR IF RESTART FAILED.
8015 ;-
8016
8017 021132 $POWER::CALL $FILE ; WRITE CONFIGURATION FILE FIRST.
021132 004737 002520' JSR PC,$FILE
8018 021136 103427 BCS 80$
8019 021140 CALL $ZERAC ; CLEAR THE ACS.
021140 004737 000112' JSR PC,$ZERAC
8020 021144 CALL LRSTKL ; ENABLE KL FOR NORMAL OPERATION
021144 004737 021222' JSR PC,LRSTKL
8021 021150 012700 001631' MOV #DRSPFR,R0 ; START KL AT 70.
8022 021154 CALL $STRKL
021154 004737 026006' JSR PC,$STRKL
8023 021160 103412 BCS 70$
8024 021162 005037 000000G CLR .NOERR ; ALLOW KL ERROR INTERCEPTION
8025 021166 PRINT #TRSRSM ; EVERYTHING OKAY.
021166 012700 004544' MOV #TRSRSM,R0
021172 004737 025164' JSR PC,$TTMSG
8026 021176 CALL ..DTP2 ; START SECONDARY PROTOCOL.
021176 004737 000000G JSR PC,..DTP2
8027 021202 000137 021602' JMP $EXIT ; JUST EXIT FROM KLINIT
8028 021206 70$: PRINT #TRSPRF ; INDICATE POWER FAILURE RESTART FAILED
021206 012700 004510' MOV #TRSPRF,R0
021212 004737 025164' JSR PC,$TTMSG
8029 021216 000137 021572' 80$: JMP $ERROR ; CONFIGURATION WAS NOT SAVED.
KLIRS -- SPECIAL KL RESTARTS MACRO M1110 12-OCT-79 14:10 PAGE 179
$POWER -- POWER FAILURE RESTART
8088 ;+
8089 ; RESET THE KL CPU, ENABLE THE PARITY STOPS, AND TURN ON CACHE IF NECESSARY.
8090 ;
8091 ; NO INPUTS
8092 ;
8093 ; OUTPUTS:
8094 ; CARRY SET IF ERROR OCCURRS.
8095 ;-
8096
8097 021222 LRSTKL: CALL $KLMR ; FORCE E-BOX INTO OBEDIENCE
021222 004737 014350' JSR PC,$KLMR
8099 021226 103433 BCS 90$
8100 021230 105737 000035' TSTB .CASW ; IF CACHE IS THERE
8101 021234 003410 BLE 10$
8102 021236 105737 000050' TSTB .NCACH ; AND IS TO BE USED
8103 021242 003405 BLE 10$
8104 021244 012700 001612' MOV #DRSCEN,R0 ; THEN
8105 021250 CALL $EXCT ; TURN IT ON
021250 004737 025716' JSR PC,$EXCT
8107 021254 103420 BCS 90$
8108 021256 012701 001617' 10$: MOV #DRSPLD,R1 ; DO STUFF TO
8109 021262 012700 047000 MOV #.LDCK2,R0
8110 021266 CALL $DFWR
021266 004737 013020' JSR PC,$DFWR
8111 021272 012701 001624' MOV #DRSPEN,R1 ; SET THE PARITIES
8112 021276 012700 046000 MOV #.LDCK1,R0
8113 021302 CALL $DFWR
021302 004737 013020' JSR PC,$DFWR
8114 021306 012700 001000 MOV #.STRCL,R0 ; START THE CLOCK
8115 021312 CALLR $DFXC
021312 000137 013222' JMP $DFXC
8116 021316 90$: RETURN
021316 000207 RTS PC
KLIRT -- ROOT SECTION MACRO M1110 12-OCT-79 14:10 PAGE 180
$POWER -- POWER FAILURE RESTART
8118 .TITLE KLIRT -- ROOT SECTION
8119 021320 IDENT$ KLI$$V,KLI$$E,KLI$$F
.IDENT /B12120/
8120 ;
8121 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
8122 ;
8123 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
8124 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
8125 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
8126 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
8127 ;
8128 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
8129 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
8130 ; EQUIPMENT CORPORATION.
8131 ;
8132 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
8133 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
8134 ;
8135 ; VERSION 12-05
8136 ;
8137 ; ALAN D. PECKHAM 15-APR-77
8138 ;
8139 ; MODIFIED BY:
8140 ;
8141 ; R. BELANGER 16-JUL-79 ADD KL10 ENVIRONMENTAL REPORTING
8142 ; TCO 4.2333
8143 ; R. BELANGER 02-MAR-79 ADD REVERSE MEMORY CONFIGURATION
8144 ; TCO 4.2204
8145 ; R. BELANGER 06-DEC-78 ADD NEW KEEP-ALIVE ERROR PROCESSING
8146 ; TCO 4.2107
8147 ;
8148 ; R. BELANGER 25-JUL-78 INTEGRATE WITH MOS CONFIGURATOR
8149 ;
8150 ; FUNCTION: THE ROOT SECTION CONTAINS ALL THE GLOBAL DATA ITEMS
8151 ; AND THE MAIN-LINE OVERLAY CONTROL CODE.
KLIRT -- ROOT SECTION MACRO M1110 12-OCT-79 14:10 PAGE 181
$POWER -- POWER FAILURE RESTART
8153 ;
8154 ; EQUATED SYMBOLS
8155 ;
8156 000015 CR = 15 ; CARRIAGE RETURN CHARACTER.
8157 000012 LF = 12 ; LINE FEED CHARACTER.
8158 000040 SPC = 40 ; SPACE CHARACTER.
8159 000011 TAB = 11 ; TAB CHARACTER.
8160 ;
8161 000256 XCT = 256 ; [TCO 4.2107] KL10 "XCT" OPCODE
8162 ;
8163 ; LOCAL MACROS
8164 ;
8165 .MCALL QIOW$,EXIT$S
8166 ;
8167 ; LOCAL DATA
8168 ;
8169 001634 .PSECT DATA,D
8170 001634 DRTX71:
8171 001634 I10$ XCT 0,,71 ; [TCO 4.2107] KL10 "XCT 71"
001634 071 000 000 .BYTE BY$$0,BY$$1,BY$$2
001637 160 005 .BYTE BY$$3,BY$$4
8172 .EVEN
8174 001642 DRTWLB:
8175 001642 QIOW$ IO.WLB,LPOLUN,1,,DRTSTA,,<DRTBUF,0,0>
001642 003 011 .BYTE 3,$$$ARG
001644 000000G .WORD IO.WLB
001646 000003 .WORD LPOLUN
001650 001 000 .BYTE 1,
001652 001664' .WORD DRTSTA
001654 000000 .WORD
001656 001670' .WORD DRTBUF
001660 000000 .WORD 0
001662 000000 .WORD 0
8176 001664 DRTSTA:
8177 001664 000000 000000 .WORD 0,0 ; I/O STATUS.
8178 001670 DRTBUF:
8179 001670 .BLKB 72. ; TRACK OUTPUT BUFFER.
8180 002000 DRTBF:
8181 002000 WD36$ 0 0 ; BIT BUCKET.
002000 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
002003 000 000 .BYTE BY$$3,BY$$4
8182 .EVEN
8184 004561 .PSECT TEXT,D
8185 004561 COMCSE::
8186 004561 MESSAGE <COMMAND SYNTAX ERROR>
004561 103 117 115 .ASCIZ \COMMAND SYNTAX ERROR\
004564 115 101 116
004567 104 040 123
004572 131 116 124
004575 101 130 040
004600 105 122 122
004603 117 122 000
8187 004606 TRTMMF:
8188 004606 ERROR <MEMORY CONFIGURATION FAILED>
004606 077 040 115 .ASCIZ \? MEMORY CONFIGURATION FAILED\
004611 105 115 117
004614 122 131 040
KLIRT -- ROOT SECTION MACRO M1110 12-OCT-79 14:10 PAGE 181-1
$POWER -- POWER FAILURE RESTART
004617 103 117 116
004622 106 111 107
004625 125 122 101
004630 124 111 117
004633 116 040 106
004636 101 111 114
004641 105 104 000
8189 004644 TRTBTF:
8190 004644 ERROR <BOOTSTRAP LOAD FAILED>
004644 077 040 102 .ASCIZ \? BOOTSTRAP LOAD FAILED\
004647 117 117 124
004652 123 124 122
004655 101 120 040
004660 114 117 101
004663 104 040 106
004666 101 111 114
004671 105 104 000
8191 004674 TRTFME:
8192 004674 ERROR <FATAL MEMORY CONFIGURATION ERROR - CODE "_>
004674 077 040 106 .ASCIZ \? FATAL MEMORY CONFIGURATION ERROR - CODE "_\
004677 101 124 101
004702 114 040 115
004705 105 115 117
004710 122 131 040
004713 103 117 116
004716 106 111 107
004721 125 122 101
004724 124 111 117
004727 116 040 105
004732 122 122 117
004735 122 040 055
004740 040 103 117
004743 104 105 040
004746 042 137 000
8193 004751 TRTEND:
8194 004751 042 000 .ASCIZ /"/
8195 021320 .PSECT
KLIRT -- ROOT SECTION MACRO M1110 12-OCT-79 14:10 PAGE 182
GLOBAL DATA STORAGE
8197 .SBTTL GLOBAL DATA STORAGE
8198 000000 .PSECT GLBL,D,GBL
8199
8200 ;+
8201 ; WORK AND STORAGE AREA
8202 ;-
8203
8204 000000 .ZERO::
8205 000000 000000 000000 000000 .WORD 0,0,0 ; SOURCE OF 36-BIT ZERO
8206 000006 000000 000000 000000 .WORD 0,0,0 ; PLUS EXTRAS FOR C-RAM ZERO.
8207 000014 .WORK::
8208 000014 000000 000000 000000 .WORD 0,0,0 ; COMMON WORK AREA
8209
8210 ;+
8211 ; INFORMATION AND CONTROL SWITCHES.
8212 ;-
8213
8214 000022 .SPSAV::
8215 000022 000000 .WORD 0 ; SAVE STACK POINTER HERE
8216 000024 .DLGSW::
8217 000024 000 .BYTE 0 ; DIALOG CONTROL SWITCH.
8218 000025 .UFNSW::
8219 000025 000 .BYTE 0 ; USER FILE SPECIFIED.
8220 000026 .DRSW::
8221 000026 000 .BYTE 0 ; RAM DIALOG CONTROL.
8223 000027 .DCSW::
8224 000027 000 .BYTE 0 ; CACHE DIALOG CONTROL.
8226 000030 .DMSW::
8227 000030 000 .BYTE 0 ; MEMORY DIALOG CONTROL.
8228 000031 .DBSW::
8229 000031 000 .BYTE 0 ; BOOT DIALOG CONTROL.
8231 000032 .TRKSW::
8232 000032 000 .BYTE 0 ; TRACK CONTROL SWITCH.
8234 000033 .CKSW::
8235 000033 000 .BYTE 0 ; CLOCK RUNNING FLAG.
8236 000034 .DESW::
8237 000034 000 .BYTE 0 ; CLOCK RUNNING FOR EXAMINE/DEPOSIT.
8239 000035 .CASW::
8240 000035 000 .BYTE 0 ; CACHE INDICATOR.
8242 000036 .EASW::
8243 000036 000 .BYTE 0 ; EXTENDED ADDRESSING INDICATOR.
8244 000037 .MFSW::
8245 000037 000 .BYTE 0 ; MOS MEMORY INDICATOR
8246 000040 .MFCT::
8247 000040 000 .BYTE 0 ; COUNT OF MF20'S EXPECTED FROM FILE
8248 000041 .FILSW::
8249 000041 000 .BYTE 0 ; WRITE CONFIG FILE SWITCH
8250 000042 .BTSW::
8251 000042 000 .BYTE 0 ; LOAD BOOT SWITCH
8252 .EVEN
8253
8254 ;+
8255 ; .KLIWD DEFINITIONS:
8256 ;
8257 ; KL.KAC KEEP-ALIVE-CEASED ERROR
8258 ; KL.LRM LOAD RAMS
8260 ; KL.LCA CONFIGURE CACHE
KLIRT -- ROOT SECTION MACRO M1110 12-OCT-79 14:10 PAGE 182-1
GLOBAL DATA STORAGE
8262 ; KL.CFM CONFIGURE MEMORY
8263 ; KL.LVB LOAD BOOT
8264 ; KL.SPF RESTART FOR KL POWER FAIL
8268 ; KL.CFL CONFIGURE ALL
8269 ; INSTEAD OF FROM CONFIGURATION FILE
8270 ; KL.VBN BOOT - NO PROMPT
8271 ; KL.VBD BOOT - DUMP MONITOR
8272 ;
8273 ; ALL BITS ZERO IMPLIES TO ENTER DIALOG
8274 ;-
8275
8276 000044 .KLISV::
8277 000044 000000 .WORD 0 ; =.KLIWD
8278 000046 .SNSAV::
8279 000046 000000 .WORD 0 ; [TCO 4.2333] = .CPUSN
KLIRT -- ROOT SECTION MACRO M1110 12-OCT-79 14:10 PAGE 183
GLOBAL DATA STORAGE
8282 ;+
8283 ; CACHE TABLES
8284 ;-
8285
8286 000050 .NCACH::
8287 000050 377 .BYTE -1 ; NUMBER OF CACHES TO USE.
8288 000051 .CACHN::
8289 000051 .BLKB 4 ; CACHE MODULES TO USE.
8290 .EVEN
8291
8293
8294 ;+
8295 ; CONTROLLER TABLES.
8296 ; THESE TABLES ARE USED AS FOLLOWS:
8297 ; .CTLTP - THIS TABLE CONTAINS THE MEMORY TYPE FOR EACH CONTROLLER.
8298 ; .CFGTB - THIS TABLE CONTAINS THE CONFIGURATION MASK WORDS
8299 ; <0 -- NOT TO BE USED
8300 ; =0 -- DEFAULT (ALL BLOCKS OR MODULES TO BE USED)
8301 ; >0 -- USE BLOCKS OR MODULES SPECIFIED IN BIT-MASK
8302 ;
8303 ; A PSEUDO-CONTROLLER IS DEFINED FOR THE FORWARD/REVERSE CONFIGURATION FLAG.
8304 ; THIS PSEUDO-CONTROLLER ALWAYS OCCUPIES THE "CTLS+1"TH POSITION IN THE TABLES,
8305 ; AND ITS CONTROLLER TYPE IS -1, SO THAT IT MAY BE SAVED AND RESTORED FORM THE
8306 ; CONFIGURATION FILE.
8307 ;-
8308
8309 000056 .CTLTP::
8310 000056 .BLKB CTLS ; CONTROLLER TYPE FOR EACH ADDRESS.
8311 000116 001 .BYTE 1 ; [TCO 4.2204] PSEUDO-CONTROLLER FOR FWD/REV CONFIGURATION FLAG
8312 .EVEN
8313 000120 .CFGTB::
8314 000120 .BLKW CTLS ; ALLOCATION BIT-MASK FOR EACH CONTROLLER
8315 000220 .CFMRV::
8316 000220 000000 .WORD 0 ; [TCO 4.2204] FORWARD/REVERSE CONFIGURATION FLAG
8317
8318 000222 BMMSTB:: ; BUS-MODE MASKS
8319 000222 007400 .WORD 7400
8320 000224 000360 .WORD 360
8321 000226 000017 .WORD 17
KLIRT -- ROOT SECTION MACRO M1110 12-OCT-79 14:10 PAGE 184
GLOBAL DATA STORAGE
8323 ;+
8324 ; DPB FOR READ/WRITE DTE20 REGS
8325 ;-
8326
8327 000230 .KLREG::
8328 000230 002411 .WORD 2411
8329 000232 017 000 .BYTE 17,0
8330 000234 000266' .WORD .DTEDT
8331 000236 000256' .WORD .DREG
8332 000240 000000 .WORD 0
8333
8334 000242 .DFBLK:: ; EBSIN
8335 000242 .DFWBK::
8336 000242 000000 000000 000000 .WORD 0,0,0 ; 3 WORDS TO BE WRITTEN TO EBUS
8337 000250 .DFRBK::
8338 000250 000000 000000 000000 .WORD 0,0,0 ; 3 WORDS TO BE READ FROM EBUS
8339 000256 .DREG::
8340 000256 .DFRG1::
8341 000256 000000 .WORD 0 ; DTE20 DIAG
8342 000260 .DFRG2::
8343 000260 000000 .WORD 0 ; DTE20 DIAG2
8344 000262 .DFSTA::
8345 000262 000000 .WORD 0 ; DTE20 STATUS WORD
8346 000264 .DFRG3::
8347 000264 000000 .WORD 0 ; DTE20 DIAG3
8348
8349 000266 .DTEDT::
8350 000266 000000 .WORD 0 ; DTE TRANSFER AREA
8351
8352 ;+
8353 ; TTY BUFFERS
8354 ;-
8355
8356 000040 T.TIL == 32. ; (MAXIMUM IS 80. CHARACTERS)
8357 000270 .TTIBF::
8358 000270 .BLKB T.TIL ; CTY INPUT BUFFER.
8359 000111 T.TOL == 73.
8360 000330 .TTOBF::
8361 000330 .BLKB T.TOL ; CTY OUTPUT BUFFER.
8362 .EVEN
8363
8364 ;+
8365 ; MISC.
8366 ;-
8367
8368 000442 .USRFN::
8369 000442 000000 000000 000000 .WORD 0,0,0,0 ; FILE NAME ENTERED BY OPERATOR
000450 000000
8370 000452 000000 .WORD 0 ; VERSION NUMBER (LAST VERSION).
8371 000454 005 005 .BYTE 5,5 ; DIRECTORY UIC.
8372 000456 054523 000000 .WORD "SY,0 ; DEVICE AND UNIT NUMBER.
8373 000462 .BTADR::
8374 000462 000000 000000 000000 .WORD 0,0,0 ; KL BOOT ADDRESS.
KLIRT -- ROOT SECTION MACRO M1110 12-OCT-79 14:10 PAGE 185
GLOBAL DATA STORAGE
8376 ;+
8377 ; SYSTEM DEVICE WORK AREAS
8378 ;-
8379
8380 000470 .SYSTA::
8381 000470 000000 000000 .WORD 0,0 ; OPERATION STATUS.
8382 000474 .SYISW::
8383 000474 000 .BYTE 0 ; INPUT FILE OPEN SWITCH.
8384 000475 .SYOSW::
8385 000475 000 .BYTE 0 ; OUTPUT FILE OPEN SWITCH.
8386
8387 001000 S.YIL == 1000
8388 000476 .SYIRC::
8389 000476 000000 .WORD 0 ; RECORD COUNT.
8390 000500 .SYIBA::
8391 000500 000530' .WORD .SYIBF ; BUFFER POSITION.
8392 000502 .SYIBC::
8393 000502 001000 .WORD S.YIL ; BYTES LEFT IN BUFFER.
8394 000504 .SYIFN::
8395 000504 000000 000000 000000 .WORD 0,0,0,0,0 ; INPUT FILE NAME.
000512 000000 000000
8396 000516 005 005 .BYTE 5,5
8397 000520 054523 000000 .WORD "SY,0
8398 000524 .SYIVB::
8399 000524 000000 000000 .WORD 0,0 ; CURRENT INPUT BLOCK NUMBER.
8400 000530 .SYIBF::
8401 000530 .BLKW S.YIL/2 ; SYSTEM DEVICE INPUT BUFFER.
8402
8403 001000 S.YOL == 1000
8404 001530 .SYORC::
8405 001530 000000 .WORD 0 ; RECORD COUNT.
8406 001532 .SYOBA::
8407 001532 000530' .WORD .SYIBF ; BUFFER POSITION.
8408 001534 .SYOBC::
8409 001534 001000 .WORD S.YIL ; BYTES LEFT IN BUFFER.
8410 001536 .SYOFN::
8411 001536 000000 000000 000000 .WORD 0,0,0,0,0 ; OUTPUT FILE NAME.
001544 000000 000000
8412 001550 005 005 .BYTE 5,5
8413 001552 054523 000000 .WORD "SY,0
8414 001556 .SYOVB::
8415 001556 000000 000000 .WORD 0,0 ; CURRENT OUTPUT BLOCK NUMBER.
8416 001562 .SYOBF::
8417 001562 .BLKW S.YOL/2 ; SYSTEM DEVICE OUTPUT BUFFER.
8418
8419 ;+
8420 ; FILE NAME BLOCK (SET UP TO GET DIRECTORY)
8421 ;-
8422
8423 002562 .SYFNB::
8424 002562 000000 000000 000000 .WORD 0,0,0 ; N.FID
8425 002570 140123 140123 000000 .RAD50 /005005 / ; N.FNAM
8426 002576 015172 .RAD50 /DIR/ ; N.FTYP
8427 002600 000000 .WORD 0 ; N.FVER
8428 002602 000000 .WORD 0 ; N.STAT
8429 002604 000000 .WORD 0 ; N.NEXT
8430 002606 177777 177777 .WORD -1,-1 ; DIRECTORY FID.
KLIRT -- ROOT SECTION MACRO M1110 12-OCT-79 14:10 PAGE 185-1
GLOBAL DATA STORAGE
8431 002612 005 005 .BYTE 5,5 ; OWNER
8432 002562' .SYFID == .SYFNB ; FILE ID IS IN FIRST TWO WORDS OF FNB
8433 002570' .SYFNM == .SYFNB+6 ; FILENAME.
8434
8435 ;+
8436 ; THESE ARE THE USER FILE ATTRIBUTES FOR THE CURRENTLY
8437 ; OPEN OUTPUT FILE.
8438 ;-
8439
8440 002614 .SYATT::
8441 002614 002 .BYTE 2 ; VARIABLE LENGTH RECORDS.
8442 002615 000 .BYTE 0 ; NO RECORD ATTRIBUTES.
8443 002616 000000 .WORD 0 ; LARGEST RECORD IN FILE.
8444 002620 000000 000000 .WORD 0,0 ; HIGHEST VIRTUAL BLOCK ALLOCATED.
8445 002624 000000 000000 .WORD 0,0 ; HIGHEST VIRTUAL BLOCK USED.
8446 002630 000000 .WORD 0 ; TO NEXT FREE BYTE IN LAST BLOCK.
8447
8448 .EVEN
KLIRT -- ROOT SECTION MACRO M1110 12-OCT-79 14:10 PAGE 186
$START -- MAIN PROGRAM FLOW CONTROL
8450 .SBTTL $START -- MAIN PROGRAM FLOW CONTROL
8451 021320 .PSECT
8452
8453 021320 $START::
8454 021320 010637 000022' MOV SP,.SPSAV ; SAVE THE STACK POINTER
8455 021324 CALL $INIT ; DO INITIALIZATION
021324 004737 014702' JSR PC,$INIT
8456 021330 032737 000000G 000044' BIT #KL.KAC,.KLISV ; [TCO 4.2107] KEEP-ALIVE RETRY??
8457 021336 001423 BEQ 20$ ; [TCO 4.2107] NO -- GO ON
8458 021340 105237 000000G INCB .NOERR ; [TCO 4.2107] YES -- DON'T WANT SPURIOUS CRASHES
8459 021344 012700 001634' MOV #DRTX71,R0 ; [TCO 4.2107] POINT TO KL INSTRUCTION
8460 021350 CALL $EXCT ; [TCO 4.2107] EXECUTE IT
021350 004737 025716' JSR PC,$EXCT
8461 021354 103411 BCS 10$ ; [TCO 4.2107] ERROR IF CC-C IS SET
8462 021356 012700 011000 MOV #.SETRN,R0 ; [TCO 4.2107] SET THE RUN FLOP
8463 021362 CALL $DFXC ; [TCO 4.2107] SO
021362 004737 013222' JSR PC,$DFXC
8464 021366 103404 BCS 10$ ; [TCO 4.2107] ERROR IF CC-C IS SET
8465 021370 012700 012000 MOV #.CONBT,R0 ; [TCO 4.2107] SET THE CONTINUE BUTTON
8466 021374 CALL $DFXC ; [TCO 4.2107] SO
021374 004737 013222' JSR PC,$DFXC
8467 021400 10$:
8468 021400 105337 000000G DECB .NOERR ; [TCO 4.2107] RESET ERROR INTERLOCK
8469 021404 000501 BR $EXIT1 ; [TCO 4.2107] AND EXIT
8470 ;
8471 021406 20$: ; [TCO 4.2107]
8472 021406 000137 017774' JMP $DLGEN ; ENTER DIALOG
8473 ;
8474 021412 $CFGRM::
8475 021412 CALL $MCBLD ; LOAD RAMS
021412 004737 001066' JSR PC,$MCBLD
8476 021416 103465 BCS $ERROR
8478 021420 $DLGCV::
8479 021420 000137 016200' JMP $DLGCA ; ENTER CACHE DIALOG.
8480 ;
8481
8482 .ENABL LSB
8483
8484 021424 $CFGCA::
8485 021424 105737 000027' TSTB .DCSW ; IF CONFIGURATION INFO
8486 021430 003003 BGT 10$ ; NOT SET UP, THEN
8487 021432 CALL $GETCA ; GET IT.
021432 004737 013354' JSR PC,$GETCA
8488 021436 103455 BCS $ERROR
8489 021440 10$:
8490 021440 CALL $SETCA ; CONFIGURE THE CACHE.
021440 004737 000356' JSR PC,$SETCA
8491 021444 103452 BCS $ERROR
8493 021446 $DLGMV::
8494 021446 000137 016654' JMP $DLGMM ; ENTER MEMORY DIALOG.
8495 ;
8496 021452 $DLGMX::
8497 021452 103404 BCS 20$
8498 021454 $DLGBV::
8499 021454 000137 015456' JMP $DLGBT ; ENTER BOOT DIALOG.
8500 ;
8501 021460 $DLGRV::
KLIRT -- ROOT SECTION MACRO M1110 12-OCT-79 14:10 PAGE 186-1
$START -- MAIN PROGRAM FLOW CONTROL
8502 021460 000137 017506' JMP $DLGRM ; ENTER RAM DIALOG
8503 ;
8504 021464 20$:
8505 021464 PRINT #TRTMMF ; MEMORY CONFIGURATION FAILED
021464 012700 004606' MOV #TRTMMF,R0
021470 004737 025164' JSR PC,$TTMSG
8506 021474 000137 021572' JMP $ERROR
8507 ;
8508
8509 .DSABL LSB
8510
8511 021500 $CFGBT::
8512 021500 105737 000035' TSTB .CASW ; IF NO CACHE, THEN
8513 021504 002414 BLT 10$ ; LOAD THE BOOT.
8514 021506 105737 000050' TSTB .NCACH ; OTHERWISE CHECK IF
8515 021512 002011 BGE 10$ ; CACHE HAS BEEN CONFIGURED
8516 021514 CALL $GETCA ; IF NOT, GET LAST CONFIGURATION
021514 004737 013354' JSR PC,$GETCA
8517 021520 103424 BCS $ERROR ; AND
8518 021522 105737 000050' TSTB .NCACH ; IF WE HAVE TO SET IT
8519 021526 001403 BEQ 10$
8520 021530 CALL $SETCA ; THEN DO SO.
021530 004737 000356' JSR PC,$SETCA
8521 021534 103416 BCS $ERROR
8522 021536 10$:
8523 021536 CALL $EXBLD ; LOAD & START BOOT.
021536 004737 025264' JSR PC,$EXBLD
8524 021542 103405 BCS 20$
8525 021544 105737 000024' TSTB .DLGSW ; INTERNAL PATH ?
8526 021550 002014 BGE $EXIT
8527 021552 000137 016534' JMP $DLGEX ; YES, TEST FOR RESTART.
8528 ;
8529 021556 20$:
8530 021556 CALL $PURGE ; PURGE BOOT FILE
021556 004737 007366' JSR PC,$PURGE
8531 021562 PRINT #TRTBTF
021562 012700 004644' MOV #TRTBTF,R0
021566 004737 025164' JSR PC,$TTMSG
8532
8533 021572 $ERROR::
8534 021572 105037 000024' CLRB .DLGSW ; ALLOW DIALOG
8535 021576 000137 017774' JMP $DLGEN ; AND ENTER IT.
8536 ;
8537 021602 $EXIT::
8538 021602 CALL $FILE ; CHANGE CONFIGURATION FILE AND
021602 004737 002520' JSR PC,$FILE
8539 021606 103771 BCS $ERROR
8540 021610 $EXIT1:: ; [TCO 4.2107]
8541 021610 EXIT$S ; EXIT FROM KLINIT
021610 012746 MOV (PC)+,-(SP)
021612 063 001 .BYTE 51.,1
021614 104375 EMT 375
8542 ;
8543 021616 $FATAL::
8544 021616 012700 004674' MOV #TRTFME,R0 ; MESSAGE POINTER TO R0
8545 021622 CALL $TTDMS ; PRINT THE MESSAGE
021622 004737 025116' JSR PC,$TTDMS
KLIRT -- ROOT SECTION MACRO M1110 12-OCT-79 14:10 PAGE 186-2
$START -- MAIN PROGRAM FLOW CONTROL
8546 021626 012600 MOV (SP)+,R0 ; POINTER TO ERROR CODE TEXT
8547 021630 012701 000003 MOV #3,R1 ; THREE CHARACTERS
8548 021634 CALL $TTWR ; WRITE THAT
021634 004737 025244' JSR PC,$TTWR
8549 021640 012700 004751' MOV #TRTEND,R0 ; POINTER TO END
8550 021644 012701 000001 MOV #1,R1 ; LENGTH OF ONE
8551 021650 CALL $TTWR ; WRITE THE CHARACTER
021650 004737 025244' JSR PC,$TTWR
8552 021654 CALL $TCRLF ; AND END THE LINE
021654 004737 025060' JSR PC,$TCRLF
8553 021660 013706 000022' MOV .SPSAV,SP ; RESET THE STACK POINTER
8554 021664 105037 000024' CLRB .DLGSW ; RESET DIALOG SWITCH
8555 021670 000137 016654' JMP $DLGMM ; ENTER MEMORY BOOT DILAOG
8556 ;
KLIRT -- ROOT SECTION MACRO M1110 12-OCT-79 14:10 PAGE 187
$DTRXX -- DTE20 REGISTER READ/WRITE SUBROUTINES
8558 .SBTTL $DTRXX -- DTE20 REGISTER READ/WRITE SUBROUTINES
8559 ;+
8560 ; THESE ROUTINES WILL READ OR WRITE A DTE-20 REGISTER ACCORDING TO
8561 ; WHICH ROUTINE IS CALLED.
8562 ;
8563 ; DTRWD1 -- READ OR WRITE DTE-20 DIAG WORD 1
8564 ; DTRWD2 -- READ OR WRITE DTE-20 DIAG WORD 2
8565 ; DTRWST -- READ OR WRITE DTE-20 STATUS
8566 ; DTRWD3 -- READ OR WRITE DTE-20 DIAG WORD 3
8567 ;
8568 ; IF LOCATION "DTETMP" IS .NE. 0, IT IS TAKEN A A POINTER TO THE
8569 ; DATA TO BE WRITTEN INTO THE REGISTER. IF "DTETMP" IS .EQ. 0, THEN
8570 ; A READ OF THE REGISTER IS PERFORMED. ON EITHER A READ OR A WRITE
8571 ; THE RESULT OF THE OPERATION IS RETURNED IN R0 AND IS SAVED IN
8572 ; LOCATION "DREG", AND LOCATION "DTETMP" IS CLEARED.
8573 ;-
8574
8575 021674 $DTRW1::
8576 021674 105037 000233' CLRB .KLREG+3 ; DIAG 1 OFFSET = 0
8577 021700 000413 BR DRTDTE ; DO COMMON CODE
8578 ;
8579 021702 $DTRW2::
8580 021702 112737 000002 000233' MOVB #2,.KLREG+3 ; DIAG 2 OFFSET = 2
8581 021710 000407 BR DRTDTE ; DO COMMON CODE
8582 ;
8583 021712 $DTRWS::
8584 021712 112737 000004 000233' MOVB #4,.KLREG+3 ; STATUS OFFSET = 4
8585 021720 000403 BR DRTDTE ; DO COMMON CODE
8586 ;
8587 021722 $DTRW3::
8588 021722 112737 000006 000233' MOVB #6,.KLREG+3 ; DIAG 3 OFFSET = 6
8589 021730 DRTDTE:
8590 021730 012737 000266' 000234' MOV #.DTEDT,.KLREG+4 ; SET THE BUFFER POINTER FOR WRITE DATA
8591 021736 005037 000256' CLR .DREG ; CLEAR RETURN DATA BUFFER
8592 021742 DIR$ #.KLREG ; DO THE READ OR WRITE
021742 012746 000230' MOV #.KLREG,-(SP)
021746 104375 EMT 375
8593 021750 103404 BCS 10$
8594 021752 005037 000266' CLR .DTEDT ; RESET THE DATA POINTER TO 0 (READ)
8595 021756 013700 000256' MOV .DREG,R0 ; COPY THE REGISTER TO R0
8596 021762 10$:
8597 021762 RETURN
021762 000207 RTS PC
KLIRT -- ROOT SECTION MACRO M1110 12-OCT-79 14:10 PAGE 188
$RSAVE -- SAVE REGISTERS FOR ROUTINES
8599 .SBTTL $RSAVE -- SAVE REGISTERS FOR ROUTINES
8600 ;+
8601 ; THIS ROUTINE SAVES ALL REGISTERS ON THE STACK AND PUSHES
8602 ; A RETURN ROUTINE ADDRESS ALSO, SO THAT WHEN THE USER RETURNS
8603 ; THE REGISTERS ARE AUTOMATICALLY RESTORED. THE RETURNED
8604 ; REGISTERS CAN BE MODIFIED: 2(SP)=R0, 4(SP)=R1, ETC.
8605 ;-
8606
8607 021764 $RSAVE::
8608 021764 PUSH <R4,R3,R2,R1,R0>
021764 010446 MOV R4,-(SP)
021766 010346 MOV R3,-(SP)
021770 010246 MOV R2,-(SP)
021772 010146 MOV R1,-(SP)
021774 010046 MOV R0,-(SP)
8609 021776 004715 JSR PC,(R5)
8610 022000 POP <R0,R1,R2,R3,R4,R5>
022000 012600 MOV (SP)+,R0
022002 012601 MOV (SP)+,R1
022004 012602 MOV (SP)+,R2
022006 012603 MOV (SP)+,R3
022010 012604 MOV (SP)+,R4
022012 012605 MOV (SP)+,R5
8611 022014 000207 RTS PC
8612
8613 .SBTTL $ASCII -- TRANSFER ASCII STRING
8614 ;+
8615 ; SET AN ASCII STRING INTO AN OUTPUT BUFFER POINTED TO BY R5.
8616 ; THE INPUT STRING IS POINTED TO BY R0 AND MUST BE TERMINATED
8617 ; BY A NULL BYTE. ON EXIT, R0 POINTS PAST THE NULL BYTE, AND
8618 ; R5 POINTS PAST THE INSERTED STRING (NULL BYTE IS NOT INSERTED).
8619 ; EMBEDDED NEGATIVE BYTES ARE NOT COPIED.
8620 ;-
8621
8622 .ENABL LSB
8623 022016 10$:
8624 022016 005305 DEC R5
8625 022020 $ASCIZ::
8626 022020 112025 MOVB (R0)+,(R5)+
8627 022022 003376 BGT $ASCIZ
8628 022024 002774 BLT 10$
8629 022026 005305 DEC R5
8630 022030 000207 RTS PC
8631 .DSABL LSB
KLIRT -- ROOT SECTION MACRO M1110 12-OCT-79 14:10 PAGE 189
$TRACK -- SPECIAL TRACK ROUTINE
8634 .SBTTL $TRACK -- SPECIAL TRACK ROUTINE
8635 ;+
8636 ; THIS ROUTINE IS CALLED TO PROVIDE A VISUAL TRACE OF KLINIT'S
8637 ; ACTION. IT REPORTS WITH A 2-CHARACTER IDENTIFICATION, A FUNCTION
8638 ; CODE/OR ADDRESS, AND A SECONDARY ADDRESS (36-BIT ADDRESSES).
8639 ; AN ARGUEMENT BLOCK IS PASSED IN R0:
8640 ; .WORD "FN ;2-CHAR IDENTIFICATION
8641 ; .WORD ADR1 ;ADDR OF FIRST 36-BIT OR FNC CODE
8642 ; .WORD ADR2 ;ADDR OF SECOND 36-BIT
8643 ; ADR1 AND ADR2 MAY BE ZERO, IN WHICH CASE THE ARGS ARE NOT PRINTED.
8644 ;-
8645
8646 022032 $TRACK::
8647 022032 004537 021764' JSR R5,$RSAVE
8648 022036 006046 ROR -(SP) ; SAVE THE CARRY.
8649 022040 105737 000032' TSTB .TRKSW ; IF TRACK IS OFF,
8650 022044 001476 BEQ 70$ ; IGNORE REQUEST.
8651 022046 012705 001670' MOV #DRTBUF,R5 ; SET UP OUT BUF ADDRESS
8652 022052 010004 MOV R0,R4 ; AND ARG POINTER.
8653 022054 112725 000011 MOVB #TAB,(R5)+
8654 022060 112425 MOVB (R4)+,(R5)+ ; GET IDENT.
8655 022062 112425 MOVB (R4)+,(R5)+
8656 022064 112725 000040 MOVB #SPC,(R5)+
8657 022070 122737 000106 001671' CMPB #'F,DRTBUF+1 ; IS IT A DIAG FUNCTION ?
8658 022076 001006 BNE 10$
8659 022100 005000 CLR R0
8660 022102 153400 BISB @(R4)+,R0 ; YES, GET NUMBER
8661 022104 006200 ASR R0
8662 022106 CALL $TRB2O ; AND PRINT IT.
022106 004737 024212' JSR PC,$TRB2O
8663 022112 000416 BR 30$
8664 ;
8665 022114 10$:
8666 022114 012401 MOV (R4)+,R1 ; FIRST ADDRESS ?
8667 022116 001414 BEQ 30$ ; NO, SKIP IT.
8668 022120 012702 002000' MOV #DRTBF,R2
8669 022124 012703 000005 MOV #5,R3 ; TRANSFER 5 BYTES
8670 022130 010200 MOV R2,R0 ; TO WORK AREA
8671 022132 20$:
8672 022132 112122 MOVB (R1)+,(R2)+
8673 022134 077302 SOB R3,20$
8674 022136 042762 177760 177777 BIC #^C17,-1(R2) ; TRIM TO 36 BITS,
8675 022144 CALL $WRD22 ; AND PRINT.
022144 004737 023666' JSR PC,$WRD22
8676 022150 30$:
8677 022150 011401 MOV (R4),R1 ; SECOND WORD ?
8678 022152 001420 BEQ 60$ ; NO, IGNORE IT.
8679 022154 012702 002000' MOV #DRTBF,R2
8680 022160 012703 000005 MOV #5,R3 ; SAME AS BEFORE...
8681 022164 010200 MOV R2,R0
8682 022166 40$:
8683 022166 112122 MOVB (R1)+,(R2)+
8684 022170 077302 SOB R3,40$
8685 022172 042762 177760 177777 BIC #^C17,-1(R2)
8686 022200 005744 TST -(R4)
8687 022202 001402 BEQ 50$
8688 022204 112725 000057 MOVB #'/,(R5)+ ; EXCEPT FOR SEPERATOR.
KLIRT -- ROOT SECTION MACRO M1110 12-OCT-79 14:10 PAGE 189-1
$TRACK -- SPECIAL TRACK ROUTINE
8689 022210 50$:
8690 022210 CALL $WRD36
022210 004737 024000' JSR PC,$WRD36
8691 022214 60$:
8692 022214 112725 000015 MOVB #CR,(R5)+ ; TERMINATE LINE
8693 022220 112725 000012 MOVB #LF,(R5)+ ; AND
8694 022224 162705 001670' SUB #DRTBUF,R5 ; (LENGTH OF LINE)
8695 022230 010537 001660' MOV R5,DRTWLB+Q.IOPL+2 ; PUT IN DPB
8696 022234 DIR$ #DRTWLB ; AND SEND IT.
022234 012746 001642' MOV #DRTWLB,-(SP)
022240 104375 EMT 375
8697 022242 70$:
8698 022242 006126 ROL (SP)+ ; RESTORE THE CARRY.
8699 022244 RETURN
022244 000207 RTS PC
KLIST -- START THE KL BOOT MACRO M1110 12-OCT-79 14:10 PAGE 190
$TRACK -- SPECIAL TRACK ROUTINE
8702 .TITLE KLIST -- START THE KL BOOT
8703 022246 IDENT$ 5,0
.IDENT /005000/
8704 ;
8705 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
8706 ;
8707 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
8708 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
8709 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
8710 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
8711 ;
8712 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
8713 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
8714 ; EQUIPMENT CORPORATION.
8715 ;
8716 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
8717 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
8718 ;
8719 ; VERSION 05-00
8720 ;
8721 ; ALAN D. PECKHAM 7-APR-77
8722 ;
8723 ; MODIFIED BY:
8724 ;
8725 ; FUNCTION: THIS ROUTINE CLEANS UP THE CPU AND STARTS UP THE BOOT
8726 ; WITH SPECIFIED FUNCTIONS IN AC0.
8727 ;
8728 ; EQUATED SYMBOLS
8729 ;
8730 000020 AAX = BIT4 ; AR/ARX PARITY ENABLE BIT.
8731 000000 APR = 0 ; KL DEVICE.
8732 000004 CONO = 4 ; KL I/O SUB-FUNCTION CODE.
8733 000004 CM = BIT2 ; CRAM PARITY ENABLE BIT.
8734 000003 DATAO = 3 ; KL I/O SUB-FUNCTION CODE.
8735 000002 DM = BIT1 ; DRAM PARITY ENABLE BIT.
8736 000010 FM = BIT3 ; FM PARITY ENABLE BIT.
8737 000001 FS = BIT0 ; FS PARITY ENABLE BIT.
8738 000010 PAG = 10 ; KL DEVICE.
8739 000004 PI = 4 ; KL DEVICE.
8740 ;
8741 ; LOCAL DATA
8742 ;
8743
8744 002006 .PSECT DATA,D
8745
8746 002006 DSTRT:
8747 002006 IO10$ CONO APR,,267760 ;RESET APR
002006 360 157 001 .BYTE BY$$0,BY$$1,BY$$2
002011 002 016 .BYTE BY$$3,BY$$4
8748 002013 IO10$ CONO PI,,10000 ;RESET PI SYSTEM
002013 000 020 000 .BYTE BY$$0,BY$$1,BY$$2
002016 006 016 .BYTE BY$$3,BY$$4
8749 002020 IO10$ CONO PAG,,0 ;PAGING SYSTEM CLEAR
002020 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
002023 012 016 .BYTE BY$$3,BY$$4
8750 002025 IO10$ DATAO PAG,,0 ;USER BASE CLEAR
002025 000 000 200 .BYTE BY$$0,BY$$1,BY$$2
KLIST -- START THE KL BOOT MACRO M1110 12-OCT-79 14:10 PAGE 190-1
$TRACK -- SPECIAL TRACK ROUTINE
002030 011 016 .BYTE BY$$3,BY$$4
8751 000004 DSTRTL=.-DSTRT/I.10L
8753 002032 DSTCEN:
8754 002032 IO10$ CONO PAG,,600000
002032 000 000 003 .BYTE BY$$0,BY$$1,BY$$2
002035 012 016 .BYTE BY$$3,BY$$4
8756 002037 DST1B0:
8757 002037 WD36$ 400000 0 ;1B0
002037 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
002042 000 010 .BYTE BY$$3,BY$$4
8758 002044 DST1B1:
8759 002044 WD36$ 200000 0 ;1B1
002044 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
002047 000 004 .BYTE BY$$3,BY$$4
8760 002051 DST3B1:
8761 002051 WD36$ 600000 0 ;3B1
002051 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
002054 000 014 .BYTE BY$$3,BY$$4
8762 .EVEN ; DSTBF NUST START ON EVEN BOUNDRY.
8763 002056 DSTBF:
8764 002056 WD36$ 0 0 ; GENERAL BIT BUCKET.
002056 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
002061 000 000 .BYTE BY$$3,BY$$4
8765 .EVEN
8766
8767 004753 .PSECT TEXT,D
8768
8769 004753 TSTBSM:
8770 004753 MESSAGE <BOOTSTRAP LOADED AND STARTED>
004753 102 117 117 .ASCIZ \BOOTSTRAP LOADED AND STARTED\
004756 124 123 124
004761 122 101 120
004764 040 114 117
004767 101 104 105
004772 104 040 101
004775 116 104 040
005000 123 124 101
005003 122 124 105
005006 104 000
8771
8772 022246 .PSECT
KLIST -- START THE KL BOOT MACRO M1110 12-OCT-79 14:10 PAGE 191
$TENST -- START KL BOOT
8774 .SBTTL $TENST -- START KL BOOT
8775 ;+
8776 ; UPDATE THE CONFIGURATION FILE AND START UP THE KL BOOTSTRAP.
8777 ; TRANSFER DUMP AND PROMPT BITS FROM .KLIWD TO AC0 FOR KL BOOT.
8778 ; 1B0 INDICATES NO PROMPTING
8779 ; 1B1 INDICATES TO DUMP KL
8780 ; BEGIN EXECUTION AT START+1 TO INFORM THE BOOT THAT THESE
8781 ; SWITCHES ARE SET.
8782 ;
8783 ; INPUTS:
8784 ; .BTADR - THE BOOT STARTING ADDRESS.
8785 ;
8786 ; NO OUTPUTS
8787 ; THE RETURN IS TO $ERROR IF UNSUCCESSFUL.
8788 ;-
8789
8790 .ENABL LSB
8791
8792 022246 $TENST::
8793 022246 CALL $FILE ; CHANGE CONFIGURATION FILE FIRST.
022246 004737 002520' JSR PC,$FILE
8794 022252 103536 BCS 80$
8795 022254 $TENS1::
8796 022254 CALL $ZERAC ; CLEAR THE AC'S.
022254 004737 000112' JSR PC,$ZERAC
8797 022260 103532 BCS 90$
8798 022262 012701 000004 MOV #DSTRTL,R1
8799 022266 012700 002006' MOV #DSTRT,R0
8800 022272 10$:
8801 022272 CALL $EXCT ; RESET APR,PI,CLEAR PAGING,USER BASE
022272 004737 025716' JSR PC,$EXCT
8802 022276 103523 BCS 90$
8803 022300 062700 000005 ADD #I.10L,R0
8804 022304 077106 SOB R1,10$
8806 022306 105737 000035' TSTB .CASW ; IF CACHE IS THERE
8807 022312 003406 BLE 20$
8808 022314 105737 000050' TSTB .NCACH ; AND IS TO BE USED
8809 022320 003403 BLE 20$
8810 022322 CALL $EXCT ; THEN TURN IT ON.
022322 004737 025716' JSR PC,$EXCT
8811 022326 103507 BCS 90$
8813 022330 20$:
8814 022330 105737 000042' TSTB .BTSW ; [TCO 4.2275]BOOT KL?
8815 022334 100433 BMI 70$ ; [TCO 4.2275] NO
8816 022336 013700 000044' MOV .KLISV,R0 ; .KLIWD INTO R0.
8817 022342 032700 000000G BIT #KL.VBN,R0 ; TEST .KLIWD BITS
8818 022346 001411 BEQ 40$ ; AND PICK APPROPRIATE
8819 022350 032700 000000G BIT #KL.VBD,R0 ; WORD TO INSERT
8820 022354 001003 BNE 30$ ; IN AC0.
8821 022356 012701 002037' MOV #DST1B0,R1
8822 022362 000413 BR 60$
8823 ;
8824 022364 30$:
8825 022364 012701 002051' MOV #DST3B1,R1
8826 022370 000410 BR 60$
8827 ;
8828 022372 40$:
KLIST -- START THE KL BOOT MACRO M1110 12-OCT-79 14:10 PAGE 191-1
$TENST -- START KL BOOT
8829 022372 032700 000000G BIT #KL.VBD,R0
8830 022376 001003 BNE 50$
8831 022400 012701 000000' MOV #.ZERO,R1
8832 022404 000402 BR 60$
8833 ;
8834 022406 50$:
8835 022406 012701 002044' MOV #DST1B1,R1
8836 022412 60$:
8837 022412 012700 000000' MOV #.ZERO,R0
8838 022416 CALL $DPOS ; PUT IT IN.
022416 004737 012336' JSR PC,$DPOS
8839 022422 103451 BCS 90$
8840 022424 70$:
8841 022424 012701 002056' MOV #DSTBF,R1
8842 022430 012711 000003 MOV #3,(R1) ; CHECK AR/ARX PARITY AND CAUSE
8843 022434 012700 047000 MOV #.LDCK2,R0 ; PAGE FAIL UCODE TRAP IF ERROR
8844 022440 CALL $DFWR ; BIT34 IN .LDCK2
022440 004737 013020' JSR PC,$DFWR
8845 022444 103440 BCS 90$
8846 022446 012711 000016 MOV #FM!CM!DM,(R1) ; ENABLE CRAM,DRAM,FS,AR/ARX PARITY
8847 022452 012700 046000 MOV #.LDCK1,R0
8848 022456 CALL $DFWR ; LOAD CONDITION ENABLE REG
022456 004737 013020' JSR PC,$DFWR
8849 022462 103431 BCS 90$
8850 022464 012700 001000 MOV #.STRCL,R0 ; [TCO 4.2275] START CLOCKS
8851 022470 CALL $DFXC ; [TCO 4.2275]
022470 004737 013222' JSR PC,$DFXC
8852 022474 103424 BCS 90$ ; [TCO 4.2275] ERROR IF CC-C IS SET
8853 022476 105737 000042' TSTB .BTSW ; [TCO 4.2275] BOOT KL ?
8854 022502 100421 BMI 90$ ; [TCO 4.2275] NO -- JUST EXIT
8855 022504 012700 000462' MOV #.BTADR,R0 ; GET BOOT ADDRESS AND
8856 022510 062710 000001 ADD #1,(R0) ; INCREMENT.
8857 022514 005560 000002 ADC 2(R0)
8858 022520 CALL $STRKL
022520 004737 026006' JSR PC,$STRKL
8859 022524 103410 BCS 90$ ; IF SUCCESSFUL,
8860 022526 005037 000000G CLR .NOERR ; ALLOW ERRORS AND
8861 022532 PRINT #TSTBSM ; ANNOUNCE THE GOOD NEWS
022532 012700 004753' MOV #TSTBSM,R0
022536 004737 025164' JSR PC,$TTMSG
8862 022542 CALL ..DTP2 ; START SECONDARY PROTOCOL
022542 004737 000000G JSR PC,..DTP2
8863 022546 90$:
8864 022546 RETURN
022546 000207 RTS PC
8865 022550 80$:
8866 022550 005726 TST (SP)+ ; CONFIGURATION WAS NOT SAVED.
8867 022552 000137 021572' JMP $ERROR
8868 ;
8869
8870 .DSABL LSB
KLITF -- ASCII FILE-NAME TRANSL MACRO M1110 12-OCT-79 14:10 PAGE 192
$TENST -- START KL BOOT
8872 .TITLE KLITF -- ASCII FILE-NAME TRANSLATION
8873 022556 IDENT$ 5,0
.IDENT /005000/
8874 ;
8875 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
8876 ;
8877 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
8878 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
8879 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
8880 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
8881 ;
8882 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
8883 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
8884 ; EQUIPMENT CORPORATION.
8885 ;
8886 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
8887 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
8888 ;
8889 ; VERSION 05-00
8890 ;
8891 ; ALAN D. PECKHAM 27-APR-77
8892 ;
8893 ; MODIFIED BY:
8894 ;
8895 ; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED IN THE TRANSLATION
8896 ; OF FILE-NAMES TO/FROM A BINARY FILENAME BLOCK.
8897 ;
8898 022556 .PSECT
KLITF -- ASCII FILE-NAME TRANSL MACRO M1110 12-OCT-79 14:10 PAGE 193
$TRB2F -- TRANSLATE BINARY TO ASCII FILENAME
8900 .SBTTL $TRB2F -- TRANSLATE BINARY TO ASCII FILENAME
8901 ;+
8902 ; THIS ROUTINE TRANSLATES A FILENAME FROM A FILENAME BLOCK
8903 ; POINTED TO BY R0 INTO AN ASCII STRING AND PUTS THIS STRING INTO
8904 ; THE AREA POINTED TO BY R5. THE PATTERN FOR THE STRING IS:
8905 ; "DDD:FFFFFFFFF.TTT;VVVVV"
8906 ;
8907 ; INPUTS:
8908 ; R5 - POINTER TO AREA TO RECIEVE ASCII CHARACTERS.
8909 ; R0 - POINTER TO FILENAME BLOCK.
8910 ;
8911 ; OUTPUTS:
8912 ; THE ASCII STRING IS PLACED IN THE BYTES POINTED TO BY R5 AND
8913 ; R5 IS UPDATED TO POINT AT THE BYTE FOLLOWING THE INSERTED
8914 ; STRING. R0 IS DESTROYED.
8915 ;-
8916
8917 022556 $TRB2F::PUSH R2 ; SAVE R2 AND
022556 010246 MOV R2,-(SP)
8918 022560 010002 MOV R0,R2 ; POINT IT TO THE BLOCK.
8919 022562 116225 000014 MOVB 14(R2),(R5)+ ; INSERT THE DEVICE
8920 022566 116225 000015 MOVB 15(R2),(R5)+
8921 022572 116215 000016 MOVB 16(R2),(R5) ; AND THE UNIT NUMBER.
8922 022576 152725 000060 BISB #'0,(R5)+ ; MAKE ASCII.
8923 022602 112725 000072 MOVB #':,(R5)+ ; INSERT SEPERATOR.
8924 022606 012200 MOV (R2)+,R0 ; NOW INSERT FILE-NAME.
8925 022610 CALL $TRB2R
022610 004737 024456' JSR PC,$TRB2R
8926 022614 012200 MOV (R2)+,R0
8927 022616 CALL $TRB2R
022616 004737 024456' JSR PC,$TRB2R
8928 022622 012200 MOV (R2)+,R0
8929 022624 CALL $TRB2R
022624 004737 024456' JSR PC,$TRB2R
8930 022630 112725 000056 MOVB #'.,(R5)+ ; INSERT SEPERATOR AND
8931 022634 012200 MOV (R2)+,R0 ; THE FILE TYPE.
8932 022636 CALL $TRB2R
022636 004737 024456' JSR PC,$TRB2R
8933 022642 112725 000073 MOVB #';,(R5)+ ; NOW FOR THE
8934 022646 011200 MOV (R2),R0 ; VERSION NUMBER.
8935 022650 CALL $TRB2O
022650 004737 024212' JSR PC,$TRB2O
8936 022654 POP R2
022654 012602 MOV (SP)+,R2
8937 022656 RETURN
022656 000207 RTS PC
KLITF -- ASCII FILE-NAME TRANSL MACRO M1110 12-OCT-79 14:10 PAGE 194
$TRF2B -- TRANSLATE ASCII FILE-NAME TO BINARY
8939 .SBTTL $TRF2B -- TRANSLATE ASCII FILE-NAME TO BINARY
8940 ;+
8941 ; THIS ROUTINE TRANSLATES AN ASCII FILE-NAME POINTED TO BY R5
8942 ; INTO A FILENAME BLOCK POINTED TO BY R0.
8943 ;
8944 ; INPUTS:
8945 ; R5 - POINTER TO ASCII STRING TO EXTRACT FILE-NAME FROM.
8946 ; R0 - POINTER TO BLOCK TO INSERT FILENAME DATA INTO.
8947 ;
8948 ; OUTPUTS:
8949 ; (R0) - FILENAME, FILETYPE, VERSION, UIC=[5,5], AND DEVICE=SY0:.
8950 ; R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS USED
8951 ; IN THE TRANSLATION. THE CARRY IS SET ON VERSION OVERFLOW.
8952 ;-
8953
8954 022660 $TRF2B::PUSH R2 ; SAVE R2 AND
022660 010246 MOV R2,-(SP)
8955 022662 010002 MOV R0,R2 ; POINT IT TO THE BLOCK.
8956 022664 012762 054523 000014 MOV #"SY,14(R2) ; SET DEVICE,
8957 022672 105062 000016 CLRB 16(R2) ; UNIT, AND
8958 022676 012762 002405 000012 MOV #2405,12(R2) ; DIRECTORY UIC.
8959 022704 CALL $TRR2B ; GET FILE NAME.
022704 004737 024350' JSR PC,$TRR2B
8960 022710 010022 MOV R0,(R2)+
8961 022712 CALL $TRR2B
022712 004737 024350' JSR PC,$TRR2B
8962 022716 010022 MOV R0,(R2)+
8963 022720 CALL $TRR2B
022720 004737 024350' JSR PC,$TRR2B
8964 022724 010022 MOV R0,(R2)+
8965 022726 122725 000056 CMPB #'.,(R5)+ ; IS THERE A FILE TYPE ?
8966 022732 001403 BEQ 10$
8967 022734 005305 DEC R5 ; NO FILE TYPE,
8968 022736 005722 TST (R2)+ ; LEAVE ALONE.
8969 022740 000403 BR 20$
8970 022742 10$: CALL $TRR2B ; GET FILE TYPE.
022742 004737 024350' JSR PC,$TRR2B
8971 022746 010022 MOV R0,(R2)+
8972 022750 122725 000073 20$: CMPB #';,(R5)+ ; IS THERE A VERSION NUMBER ?
8973 022754 001403 BEQ 30$
8974 022756 005305 DEC R5 ; NO VERSION,
8975 022760 005012 CLR (R2) ; SET FOR CURRENT ONE.
8976 022762 000403 BR 40$
8977 022764 30$: CALL $TRO2B ; GET VERSION NUMBER.
022764 004737 024274' JSR PC,$TRO2B
8978 022770 010012 MOV R0,(R2)
8979 022772 40$: POP R2
022772 012602 MOV (SP)+,R2
8980 022774 RETURN
022774 000207 RTS PC
KLITI -- ASCII-DECIMAL TRANSLAT MACRO M1110 12-OCT-79 14:10 PAGE 195
$TRF2B -- TRANSLATE ASCII FILE-NAME TO BINARY
8982 .TITLE KLITI -- ASCII-DECIMAL TRANSLATION
8983 022776 IDENT$ 5,0
.IDENT /005000/
8984 ;
8985 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
8986 ;
8987 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
8988 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
8989 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
8990 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
8991 ;
8992 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
8993 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
8994 ; EQUIPMENT CORPORATION.
8995 ;
8996 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
8997 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
8998 ;
8999 ; VERSION 05-00
9000 ;
9001 ; ALAN D. PECKHAM 30-MAR-77
9002 ;
9003 ; MODIFIED BY:
9004 ;
9005 ; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED IN THE TRANSLATION
9006 ; TO/FROM THE ASCII REPRESENTATION OF INTEGERS.
9007 ;
9008 022776 .PSECT
KLITI -- ASCII-DECIMAL TRANSLAT MACRO M1110 12-OCT-79 14:10 PAGE 196
$TRB2I -- TRANSLATE BINARY WORD TO INTEGER ASCII
9010 .SBTTL $TRB2I -- TRANSLATE BINARY WORD TO INTEGER ASCII
9011 ;+
9012 ; THIS ROUTINE TRANSLATES A BINARY NUMBER IN R0 INTO AN ASCII
9013 ; STRING AND PUTS THIS STRING INTO THE AREA POINTED TO BY R5.
9014 ; THE NUMBER IS CONSIDERED UNSIGNED, AND THE RESULTING STRING
9015 ; IS VARIABLE IN LENGTH WITH A MAXIMUM OF 5 CHARACTERS.
9016 ;
9017 ; INPUTS:
9018 ; R5 - POINTER TO AREA TO RECIEVE ASCII CHARACTERS.
9019 ; R0 - BINARY NUMBER TO CONVERT.
9020 ;
9021 ; OUTPUTS:
9022 ; THE ASCII STRING IS PLACED IN THE BYTES POINTED TO BY R5 AND
9023 ; R5 IS UPDATED TO POINT AT THE BYTE FOLLOWING THE INSERTED
9024 ; STRING. R0 IS DESTROYED.
9025 ;-
9026
9027 022776 $TDB2I::
9028 022776 PUSH <R4,R5> ; SAVE R4 AND R5
022776 010446 MOV R4,-(SP)
023000 010546 MOV R5,-(SP)
9029 023002 012705 000330' MOV #.TTOBF,R5 ; POINT TO OUTPUT BUFFER
9030 023006 010504 MOV R5,R4 ; COPY TO R4
9031 023010 CALL $TRB2I ; CONVERT TO ASCII STRING
023010 004737 023020' JSR PC,$TRB2I
9032 023014 CALLR $TDB2C ; FINISH UP IN COMMON CODE
023014 000137 024200' JMP $TDB2C
9033 ;
9034
9035 023020 $TRB2I::
9036 023020 004237 023036' JSR R2,10$ ; SAVE R2 AND POINT TO POWER TABLE.
9037 023024 023420 001750 000144 .WORD 10000.,1000.,100.,10.,1.
023032 000012 000001
9038 023036 004337 023072' 10$: JSR R3,50$ ; THE SAVE R3 AND SET TO
9039
9040 023042 022200 CMP (R2)+,R0 ; SIGNIFICANCE CHECKER.
9041 023044 101011 BHI 40$ ; IGNORES LEADING ZEROES.
9042 023046 005742 TST -(R2) ; WHOOPS ! THIS ONE IS GOOD,
9043 023050 010703 20$: MOV PC,R3 ; DIGITS ARE NOW TO BE PRINTED.
9044
9045 023052 112715 000060 MOVB #'0,(R5) ; SET TO ZERO
9046 023056 105215 30$: INCB (R5) ; AND GO UP
9047 023060 161200 SUB (R2),R0
9048 023062 100375 BPL 30$ ; UNTIL TOO FAR,
9049 023064 062200 ADD (R2)+,R0 ; THEN BACK UP.
9050 023066 105325 DECB (R5)+
9051 023070 000207 40$: RTS PC
9052
9053 023072 004713 50$: JSR PC,(R3) ; MAIN PROCESSOR -
9054 023074 004713 JSR PC,(R3) ; ALLOW FOR FOUR INSIGNIFICANT DIGITS,
9055 023076 004713 JSR PC,(R3)
9056 023100 004713 JSR PC,(R3)
9057 023102 004737 023050' JSR PC,20$ ; AND THEN FORCE SIGNIFICANCE.
9058 023106 POP <R3,R2> ; RESTORE REGISTERS
023106 012603 MOV (SP)+,R3
023110 012602 MOV (SP)+,R2
9059 023112 RETURN ; AND .....
KLITI -- ASCII-DECIMAL TRANSLAT MACRO M1110 12-OCT-79 14:10 PAGE 196-1
$TRB2I -- TRANSLATE BINARY WORD TO INTEGER ASCII
023112 000207 RTS PC
KLITI -- ASCII-DECIMAL TRANSLAT MACRO M1110 12-OCT-79 14:10 PAGE 197
$TRI2B -- TRANSLATE ASCII INTEGER TO BINARY WORD
9061 .SBTTL $TRI2B -- TRANSLATE ASCII INTEGER TO BINARY WORD
9062 ;+
9063 ; THIS ROUTINE TRANSLATES AN ASCII INTEGER NUMBER POINTED
9064 ; TO BY R5 INTO ITS BINARY EQUIVALENT IN R0. R5 IS INCRMENTED
9065 ; PAST THE NUMBER, AND CARRY IS RETURNED ON OVERFLOW.
9066 ;
9067 ; INPUTS:
9068 ; R5 - POINTER TO ASCII STRING TO EXTRACT INTEGER FROM.
9069 ;
9070 ; OUTPUTS:
9071 ; R0 - BINARY NUMBER EXTRACTED.
9072 ; R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS USED
9073 ; IN THE TRANSLATION. THE CARRY IS SET ON SIGNED OVERFLOW.
9074 ;-
9075
9076 023114 $TDI2B::
9077 023114 PUSH R5 ; SAVE R5
023114 010546 MOV R5,-(SP)
9078 023116 012705 000270' MOV #.TTIBF,R5 ; INPUT BUFFER POINTER TO R5
9079 023122 CALL $TTRD ; PROMT AND READ NUMBER
023122 004737 024642' JSR PC,$TTRD
9080 023126 CALL $TRB2I ; CONVERT TO DECIMAL NUMBER
023126 004737 023020' JSR PC,$TRB2I
9081 023132 POP R5 ; RESTORE R5
023132 012605 MOV (SP)+,R5
9082 023134 RETURN ; RETURN
023134 000207 RTS PC
9083
9084 023136 $TRI2B::
9085 023136 PUSH R1
023136 010146 MOV R1,-(SP)
9086 023140 005000 CLR R0
9087 023142 112501 10$: MOVB (R5)+,R1
9088 023144 162701 000060 SUB #'0,R1
9089 023150 100420 BMI 30$
9090 023152 022701 000011 CMP #9.,R1
9091 023156 103415 BLO 30$
9092 023160 022700 006314 CMP #<77777/10.>,R0
9093 023164 103413 BLO 40$
9094 023166 101003 BHI 20$
9095 023170 022701 000007 CMP #<77777-<77777/10.*10.>>,R1
9096 023174 103407 BLO 40$
9097 023176 006300 20$: ASL R0
9098 023200 060001 ADD R0,R1
9099 023202 006300 ASL R0
9100 023204 006300 ASL R0
9101 023206 060100 ADD R1,R0
9102 023210 000754 BR 10$
9103 023212 005727 30$: TST (PC)+
9104 023214 000261 40$: SEC
9105 023216 005305 DEC R5
9106 023220 POP R1
023220 012601 MOV (SP)+,R1
9107 023222 RETURN
023222 000207 RTS PC
KLITM -- CRAM/DRAM TRANSLATION MACRO M1110 12-OCT-79 14:10 PAGE 198
$TRI2B -- TRANSLATE ASCII INTEGER TO BINARY WORD
9109 .TITLE KLITM -- CRAM/DRAM TRANSLATION
9110 023224 IDENT$ 1,0
.IDENT /001000/
9111 ;
9112 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
9113 ;
9114 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
9115 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
9116 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
9117 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
9118 ;
9119 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
9120 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
9121 ; EQUIPMENT CORPORATION.
9122 ;
9123 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
9124 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
9125 ;
9126 ; VERSION 01-00
9127 ;
9128 ; KEVIN T. LEFEBVRE 3-APR-79
9129 ;
9130 ; MODIFIED BY:
9131 ;
9132 ;
9133 ; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED IN THE TRANSLATION
9134 ; OF THE CRAM/DRAM FILE TO OCTAL TYPE-OUT. IT WAS WRITTEN FOR TCO
9135 ; 4.2209.
9136 ;
9137 ;
9138 ; LOCAL DATA
9139 ;
9140 002064 .PSECT DATA,D
9141 002064 000000 JCOMM: .WORD 0
9142 002066 000000 SWITCH: .WORD 0
9143 002070 002114' HDTAB: .WORD TTJ
9144 002072 002110' .WORD TTP
9145 002074 002104' .WORD TTB
9146 002076 002100' .WORD TTA
9147 002100 040 101 072 TTA: .ASCIZ / A:/
002103 000
9148 002104 040 102 072 TTB: .ASCIZ / B:/
002107 000
9149 002110 040 120 072 TTP: .ASCIZ / P:/
002113 000
9150 002114 040 112 072 TTJ: .ASCIZ / J:/
002117 000
9151 .EVEN
9152 023224 .PSECT
KLITM -- CRAM/DRAM TRANSLATION MACRO M1110 12-OCT-79 14:10 PAGE 199
$TRCRM -- TRANSLATE CRAM FILE ENTRY TO ASCII OCTAL
9154 .SBTTL $TRCRM -- TRANSLATE CRAM FILE ENTRY TO ASCII OCTAL
9155 ;+
9156 ; TRANSLATE THE BINARY WORDS IN BUFFER POINTED TO BY R1 INTO OCTAL
9157 ; DIGITS AND TYPE THEM IN CRAM FORMAT.
9158 ;
9159 ; FILE FORMAT: CRAM BIT LOCATIONS
9160 ;
9161 ; BIT BIT
9162 ; 16 0
9163 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
9164 ; !64! !66! !68! !70! !72! !74! !76! !78! ! WORD 1
9165 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
9166 ; !48!49!50!51!52!53!54!55!56!57!58!59!60! !62! ! WORD 2
9167 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
9168 ; !32!33!34!35!36!37!38!39!40!41!42!43!44!45!46!47! WORD 3
9169 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
9170 ; !16!17!18!19!20!21!22!23!24!25!26!27!28!29!30!31! WORD 4
9171 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
9172 ; ! 0! 1! 2! 3! 4! 5! 6! 7! 8! 9!10!11!12!13!14!15! WORD 5
9173 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
9174 ; ! ! ! ! ! ! ! ! ! ! !80!81!82!83!84!85! WORD 6
9175 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
9176 ;
9177 ; THIS ROUTINE WAS ADDED FOR THE EXPANDED CRAM/DRAM ERROR REPORT
9178 ; TCO 4.2209
9179 ;
9180 ; INPUTS:
9181 ; R1 -DATA BUFFER
9182 ;
9183 ; OUTPUTS:
9184 ; NONE
9185 ;-
9186
9187 023224 $TRCRM::
9188 023224 CALL R5,$RSAVE ; SAVE REGISTERS
023224 004537 021764' JSR R5,$RSAVE
9189 023230 010105 MOV R1,R5 ;BUFFER PTR
9190 023232 062705 000010 ADD #10,R5 ;POINT TO CRAM 0-15
9191 023236 012703 000005 MOV #5,R3 ;WORD COUNTER
9192 023242 011502 10$: MOV (R5),R2 ;GET VALUE
9193 023244 012701 000330' MOV #.TTOBF,R1 ;OUTPUT PTR
9194 023250 012704 000001 MOV #1,R4 ;BITS TO SHIFT
9195 023254 CALL TROCT ;GET OCTAL DIGIT
023254 004737 023606' JSR PC,TROCT
9196 023260 012700 000005 MOV #5,R0 ;NO. OCTAL DIGITS
9197 023264 012704 000003 MOV #3,R4 ;BITS PER DIGIT
9198 023270 20$: CALL TROCT ;GET DIGIT
023270 004737 023606' JSR PC,TROCT
9199 023274 077003 SOB R0,20$ ;DONE?
9200 023276 112721 000040 MOVB #' ,(R1)+ ;YES-- END WITH SPACE
9201 023302 012700 000330' MOV #.TTOBF,R0 ;OUTPUT PTR
9202 023306 012701 000007 MOV #7,R1 ;NO. OF CHARACTERS TO TYPE
9203 023312 CALL $TTWR ;TYPE THEM
023312 004737 025244' JSR PC,$TTWR
9204 023316 005745 TST -(R5) ;NEXT VALUE
9205 023320 077330 SOB R3,10$ ;DONE?
9206 023322 016502 000014 MOV 14(R5),R2 ;YES-- GET SPEC VALUE
KLITM -- CRAM/DRAM TRANSLATION MACRO M1110 12-OCT-79 14:10 PAGE 199-1
$TRCRM -- TRANSLATE CRAM FILE ENTRY TO ASCII OCTAL
9207 023326 012700 000012 MOV #10.,R0 ;LEFT JUSTIFY IT
9208 023332 006302 30$: ASL R2 ;SHIFT IT
9209 023334 077002 SOB R0,30$ ;DONE?
9210 023336 012701 000330' MOV #.TTOBF,R1 ;YES-- OUTPUT BUFFER
9211 023342 CALL TROCT ;FIRST DIGIT
023342 004737 023606' JSR PC,TROCT
9212 023346 CALL TROCT ;SECOND DIGIT
023346 004737 023606' JSR PC,TROCT
9213 023352 012700 000330' MOV #.TTOBF,R0 ;OUTPUT BUFFER
9214 023356 012701 000002 MOV #2,R1 ;NO. OF DIGITS
9215 023362 CALL $TTWR ;TYPE THEM
023362 004737 025244' JSR PC,$TTWR
9216 023366 RETURN
023366 000207 RTS PC
KLITM -- CRAM/DRAM TRANSLATION MACRO M1110 12-OCT-79 14:10 PAGE 200
$TRDRM -- TRANSLATE DRAM FILE ENTRY TO ASCII OCTAL
9218 .SBTTL $TRDRM -- TRANSLATE DRAM FILE ENTRY TO ASCII OCTAL
9219 ;+
9220 ; TRANSLATE THE BINARY WORDS IN THE BUFFER POINTED TO BY R1 INTO OCTAL
9221 ; DIGITS AND TYPE THEM IN DRAM FORMAT WITH THE EVEN ADDRESS FIRST.
9222 ;
9223 ; FILE FORMAT: DRAM BIT LOCATIONS
9224 ;
9225 ; BIT BIT
9226 ; 16 0
9227 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
9228 ; ! ! !A1!A2!A3!B1!B2!B3! ! !PE!PC!J7!J8!J9!J0! EVEN ADDRESS
9229 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
9230 ; ! ! !A1!A2!A3!B1!B2!B3! ! !PO!PC!J7!J8!J9!J0! ODD ADDRESS
9231 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
9232 ; ! ! ! ! ! ! ! ! ! ! ! ! !J1!J2!J3!J4! COMMON J
9233 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
9234 ;
9235 ; NOTE: J0=J10 (BIT 10 OF J FIELD)
9236 ;
9237 ; THIS ROUTINE WAS ADDED FOR THE EXPANDED CRAM/DRAM ERROR REPORT
9238 ; TCO 4.2209
9239 ;
9240 ; INPUTS:
9241 ; R1- DATA BUFFER
9242 ;
9243 ; OUTPUTS:
9244 ; NONE
9245 ;-
9246
9247 023370 $TRDRM::
9248 023370 CALL R5,$RSAVE ;SAVE REGISTERS
023370 004537 021764' JSR R5,$RSAVE
9249 023374 010105 MOV R1,R5 ;DATA BUFFER POINTER
9250 023376 016100 000004 MOV 4(R1),R0 ;J COMMON VALUE
9251 023402 012702 000006 MOV #6,R2 ;PUT IN CORRECT POSITION
9252 023406 006300 10$: ASL R0 ;SHIFT IT
9253 023410 077202 SOB R2,10$ ;DONE?
9254 023412 010037 002064' MOV R0,JCOMM ;YES-- SAVE IT
9255 023416 005037 002066' CLR SWITCH ;ODD/EVEN ADDRESS SWITCH
9256 023422 012703 000006 20$: MOV #6,R3 ;FIELD COUNTER
9257 023426 012704 000003 MOV #3,R4 ;BIT SHIFT COUNTER
9258 023432 011502 MOV (R5),R2 ;VALUE
9259 023434 042702 000020 BIC #20,R2 ;CLEAR COMPUTED PARITY
9260 023440 006302 ASL R2 ;LEFT JUSTIFY
9261 023442 006302 ASL R2 ;LEFT JUSTIFY
9262 023444 016300 002070' 30$: MOV HDTAB(R3),R0 ;HEADER ADDRESS
9263 023450 CALL $TTDMS ;TYPE HEADER
023450 004737 025116' JSR PC,$TTDMS
9264 023454 005703 TST R3 ;LAST HEADER?
9265 023456 001414 BEQ 40$ ;YES-- TYPE J FIELD
9266 023460 012701 000330' MOV #.TTOBF,R1 ;NO-- OUTPUT PTR
9267 023464 CALL TROCT ;CONVERT FIELD TO ASCII OCTAL
023464 004737 023606' JSR PC,TROCT
9268 023470 012700 000330' MOV #.TTOBF,R0 ;OUTPUT PTR
9269 023474 012701 000001 MOV #1,R1 ;FIELD SIZE
9270 023500 CALL $TTWR ;TYPE FIELD VALUE
023500 004737 025244' JSR PC,$TTWR
KLITM -- CRAM/DRAM TRANSLATION MACRO M1110 12-OCT-79 14:10 PAGE 200-1
$TRDRM -- TRANSLATE DRAM FILE ENTRY TO ASCII OCTAL
9271 023504 005743 TST -(R3) ;SUBTRACT 2 FROM HEADER POINTER
9272 023506 000756 BR 30$ ;NEXT HEADER
9273 023510 013702 002064' 40$: MOV JCOMM,R2 ;GET J COMMON VALUE
9274 023514 011500 MOV (R5),R0 ;GET J VALUE FOR ADDRESS
9275 023516 042700 177760 BIC #177760,R0 ;CLEAR JUNK
9276 023522 050002 BIS R0,R2 ;GET J FIELD VALUE
9277 023524 012700 000004 MOV #4,R0 ;SHIFT COUNT
9278 023530 006302 50$: ASL R2 ;LEFT JUSTIFY
9279 023532 077002 SOB R0,50$ ;DONE?
9280 023534 012700 000004 MOV #4,R0 ;YES-- J FIELD SIZE
9281 023540 012701 000330' MOV #.TTOBF,R1 ;OUTPUT PTR
9282 023544 60$: CALL TROCT ;GET DIGIT
023544 004737 023606' JSR PC,TROCT
9283 023550 077003 SOB R0,60$ ;DONE?
9284 023552 012700 000330' MOV #.TTOBF,R0 ;YES-- OUTPUT PTR
9285 023556 012701 000004 MOV #4,R1 ;J FIELD SIZE
9286 023562 CALL $TTWR ;TYPE FIELD
023562 004737 025244' JSR PC,$TTWR
9287 023566 005737 002066' TST SWITCH ;DONE?
9288 023572 001004 BNE 70$ ;YES-- EXIT
9289 023574 005237 002066' INC SWITCH ;FLIP SWITCH
9290 023600 005725 TST (R5)+ ;POINT TO NEXT VALUE
9291 023602 000707 BR 20$ ;TYPE OUT ODD ADDRESS FIELDS
9292 023604 70$: RETURN
023604 000207 RTS PC
KLITM -- CRAM/DRAM TRANSLATION MACRO M1110 12-OCT-79 14:10 PAGE 201
TROCT -- TRANSLATE OCTAL VALUE TO ASCII DIGITS
9294 .SBTTL TROCT -- TRANSLATE OCTAL VALUE TO ASCII DIGITS
9295 ;+
9296 ; SHIFT OUT 1 OCTAL DIGIT FROM A LEFT JUSTIFIED VALUE, MAKE ASCII
9297 ; AND STORE IN BUFFER.
9298 ;
9299 ; INPUT:
9300 ; R2- VALUE
9301 ; R4- NO. OF BITS IN OCTAL DIGIT
9302 ; R1- BUFFER PTR
9303 ;
9304 ; OUTPUT:
9305 ; R1- UPDATED
9306 ;-
9307
9308 023606 TROCT: PUSH <R3,R4> ;SAVE R3,R4
023606 010346 MOV R3,-(SP)
023610 010446 MOV R4,-(SP)
9309 023612 005003 CLR R3 ;TEMP
9310 023614 006102 10$: ROL R2 ;SHIFT OUT BIT
9311 023616 006103 ROL R3 ;SHIFT IN BIT
9312 023620 077403 SOB R4,10$ ;DONE?
9313 023622 062703 000060 ADD #'0,R3 ;YES-- MAKE ASCII
9314 023626 110321 MOVB R3,(R1)+ ;STORE IN BUFFER
9315 023630 POP <R4,R3> ;RESTORE R3,R4
023630 012604 MOV (SP)+,R4
023632 012603 MOV (SP)+,R3
9316 023634 RETURN
023634 000207 RTS PC
KLITN -- ASCII-KL WORD TRANSLAT MACRO M1110 12-OCT-79 14:10 PAGE 202
TROCT -- TRANSLATE OCTAL VALUE TO ASCII DIGITS
9318 .TITLE KLITN -- ASCII-KL WORD TRANSLATION
9319 023636 IDENT$ 5,0
.IDENT /005000/
9320 ;
9321 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
9322 ;
9323 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
9324 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
9325 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
9326 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
9327 ;
9328 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
9329 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
9330 ; EQUIPMENT CORPORATION.
9331 ;
9332 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
9333 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
9334 ;
9335 ; VERSION 05-00
9336 ;
9337 ; ALAN D. PECKHAM 30-MAR-77
9338 ;
9339 ; MODIFIED BY:
9340 ;
9341 ; FUNCTION: THIS MODULE PROVIDES ROUTINES TO DISPLAY KL ADDRESSES
9342 ; AND WORDS.
9343 ;
9344 ; LOCAL DATA
9345 ;
9346 002120 .PSECT DATA,D
9347 002120 000000 000000 000000 DTNXP: .WORD 0,0,0 ; WORK AREA TO EXPAND 16K BANK NUMBER.
9348 002126 000000 000000 000000 DTNRB: .WORD 0,0,0 ; WORK AREA FOR ROLLING BITS AROUND.
9349 023636 .PSECT
KLITN -- ASCII-KL WORD TRANSLAT MACRO M1110 12-OCT-79 14:10 PAGE 203
$TENAD -- DISPLAY KL ADDRESS/16K
9351 .SBTTL $TENAD -- DISPLAY KL ADDRESS/16K
9352 ;+
9353 ; INSERT THE 22 BIT ASCII REPRESENTATION OF THE ADDRESS/16K CONTAINED
9354 ; IN R0. THE PATTERN IS "XXXXXXXX" WHERE X IS AN OCTAL DIGIT.
9355 ;
9356 ; INPUTS:
9357 ; R5 - POINTER TO WHERE TO INSERT THE ASCII STRING.
9358 ; R0 - NUMBER OF 16K MEMORY BANK.
9359 ;
9360 ; OUTPUTS:
9361 ; R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE INSERTED
9362 ; CHARACTERS.
9363 ;-
9364
KLITN -- ASCII-KL WORD TRANSLAT MACRO M1110 12-OCT-79 14:10 PAGE 205
$WRD22 -- DISPLAY 22 BIT KL WORD
9433 .SBTTL $WRD22 -- DISPLAY 22 BIT KL WORD
9434 ;+
9435 ; PATTERN: "XXXXXXXX"
9436 ;-
9437
9438 023636 $WDD22::
9439 023636 PUSH <R5,R4> ; SAVE R5 AND R4
023636 010546 MOV R5,-(SP)
023640 010446 MOV R4,-(SP)
9440 023642 012705 000330' MOV #.TTOBF,R5 ; OUTPUT BUFFER POINTER TO R5
9441 023646 010504 MOV R5,R4 ; COPY TO R4
9442 023650 CALL $WRD22 ; CONVERT THE NUMBER
023650 004737 023666' JSR PC,$WRD22
9443 023654 CALL $TTDWR ; OUTPUT THE NUMBER
023654 004737 025230' JSR PC,$TTDWR
9444 023660 POP <R4,R5> ; RESTORE REGISTERS
023660 012604 MOV (SP)+,R4
023662 012605 MOV (SP)+,R5
9445 023664 RETURN ; AND EXIT
023664 000207 RTS PC
9446
9447 023666 $WRD22::
9448 023666 PUSH <R2,R1,R0>
023666 010246 MOV R2,-(SP)
023670 010146 MOV R1,-(SP)
023672 010046 MOV R0,-(SP)
9449 023674 CALL LTNMV
023674 004737 024106' JSR PC,LTNMV
9450 023700 012702 000010 MOV #8.,R2
9451 023704 012700 000003 MOV #3,R0
9452 023710 042761 177700 000002 BIC #^C77,2(R1)
9453 023716 10$: CALL LTNROL
023716 004737 024132' JSR PC,LTNROL
9454 023722 116100 000003 MOVB 3(R1),R0
9455 023726 CALL LTNCHR
023726 004737 024146' JSR PC,LTNCHR
9456 023732 012700 000003 MOV #3,R0
9457 023736 077211 SOB R2,10$
9458 023740 POP <R0,R1,R2>
023740 012600 MOV (SP)+,R0
023742 012601 MOV (SP)+,R1
023744 012602 MOV (SP)+,R2
9459 023746 RETURN
023746 000207 RTS PC
KLITN -- ASCII-KL WORD TRANSLAT MACRO M1110 12-OCT-79 14:10 PAGE 206
$WRD36 -- DISPLAY 36 BIT KL WORD
9461 .SBTTL $WRD36 -- DISPLAY 36 BIT KL WORD
9462 ;+
9463 ; PATTERN: "XXXXXX XXXXXX"
9464 ;-
9465
9466 023750 $WDD36::
9467 023750 PUSH <R5,R4> ; SAVE R5 AND R4
023750 010546 MOV R5,-(SP)
023752 010446 MOV R4,-(SP)
9468 023754 012705 000330' MOV #.TTOBF,R5 ; OUTPUT BUFFER POINTER TO R5
9469 023760 010504 MOV R5,R4 ; COPY TO R4
9470 023762 CALL $WRD36 ; CONVERT THE NUMBER
023762 004737 024000' JSR PC,$WRD36
9471 023766 CALL $TTDWR ; OUTPUT THE NUMBER
023766 004737 025230' JSR PC,$TTDWR
9472 023772 POP <R4,R5> ; RESTORE REGISTERS
023772 012604 MOV (SP)+,R4
023774 012605 MOV (SP)+,R5
9473 023776 RETURN ; AND EXIT
023776 000207 RTS PC
9474
9475 024000 $WRD36::
9476 024000 PUSH <R2,R1,R0>
024000 010246 MOV R2,-(SP)
024002 010146 MOV R1,-(SP)
024004 010046 MOV R0,-(SP)
9477 024006 CALL LTNMV
024006 004737 024106' JSR PC,LTNMV
9478 024012 012702 000006 MOV #6,R2
9479 024016 012700 000007 MOV #7,R0
9480 024022 10$: CALL LTNROL
024022 004737 024132' JSR PC,LTNROL
9481 024026 116100 000005 MOVB 5(R1),R0
9482 024032 CALL LTNCHR
024032 004737 024146' JSR PC,LTNCHR
9483 024036 012700 000003 MOV #3,R0
9484 024042 077211 SOB R2,10$
9485 024044 112725 000040 MOVB #' ,(R5)+
9486 024050 012702 000006 MOV #6,R2
9487 024054 20$: CALL LTNROL
024054 004737 024132' JSR PC,LTNROL
9488 024060 116100 000005 MOVB 5(R1),R0
9489 024064 CALL LTNCHR
024064 004737 024146' JSR PC,LTNCHR
9490 024070 012700 000003 MOV #3,R0
9491 024074 077211 SOB R2,20$
9492 024076 POP <R0,R1,R2>
024076 012600 MOV (SP)+,R0
024100 012601 MOV (SP)+,R1
024102 012602 MOV (SP)+,R2
9493 024104 RETURN
024104 000207 RTS PC
KLITN -- ASCII-KL WORD TRANSLAT MACRO M1110 12-OCT-79 14:10 PAGE 207
$WRD36 -- DISPLAY 36 BIT KL WORD
9495 ;+
9496 ; INSERT 36 BIT WORD INTO WORD-ALIGNED WORK AREA.
9497 ;
9498 ; INPUTS:
9499 ; R0 - POINTER TO 36 BIT WORD TO COPY.
9500 ;
9501 ; OUTPUTS:
9502 ; R1 - POINTER TO COPY OF 36 BIT WORD POINTED TO BY R0.
9503 ; R0 AND R2 ARE DESTROYED.
9504 ;-
9505
9506 024106 012702 000006 LTNMV: MOV #6,R2 ; MOVE 6 BYTES
9507 024112 012701 002126' MOV #DTNRB,R1
9508 024116 112021 10$: MOVB (R0)+,(R1)+ ; MOVE DATA TO BE CONVERTED
9509 024120 077202 SOB R2,10$
9510 024122 042741 177760 BIC #^C17,-(R1) ; ONLY 36 BITS PLEASE
9511 024126 024141 CMP -(R1),-(R1)
9512 024130 RETURN
024130 000207 RTS PC
9513
9514 ;+
9515 ; SHIFT 3 WORDS AT R1 TO THE LEFT BY THE NUMBER OF BITS SPECIFED.
9516 ;
9517 ; INPUTS:
9518 ; R1 - POINTER TO THE THREE WORDS TO SHIFT.
9519 ; R0 - NUMBER OF TIMES TO SHIFT. MUST BE >0.
9520 ;
9521 ; OUTPUTS:
9522 ; R0 IS DESTROYED.
9523 ;-
9524
9525 024132 006321 LTNROL: ASL (R1)+
9526 024134 006121 ROL (R1)+
9527 024136 006111 ROL (R1)
9528 024140 024141 CMP -(R1),-(R1)
9529 024142 077005 SOB R0,LTNROL
9530 024144 RETURN
024144 000207 RTS PC
9531
9532 ;+
9533 ; INSERT 3 LEAST SIGNIFICANT BITS FROM R0 AS ASCII CHARACTER TO BYTE
9534 ; POINTED TO BY R5 AND INCREMENT R5.
9535 ;
9536 ; INPUTS:
9537 ; R5 - POINTER TO BYTE TO RECIEVE DIGIT.
9538 ; R0 - NUMBER TO PICK BOTTOM OCTAL DIGIT FROM.
9539 ;
9540 ; OUTPUTS:
9541 ; R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE INSERTED
9542 ; CHARACTER. R0 IS DESTROYED.
9543 ;-
9544
9545 024146 042700 177770 LTNCHR: BIC #^C7,R0
9546 024152 062700 000060 ADD #'0,R0
9547 024156 110025 MOVB R0,(R5)+
9548 024160 RETURN
024160 000207 RTS PC
KLITO -- ASCII-OCTAL/BINARY TRA MACRO M1110 12-OCT-79 14:10 PAGE 208
$WRD36 -- DISPLAY 36 BIT KL WORD
9550 .TITLE KLITO -- ASCII-OCTAL/BINARY TRANSLATION
9551 024162 IDENT$ 5,2 ; ADP01
.IDENT /005020/
9552 ;
9553 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
9554 ;
9555 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
9556 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
9557 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
9558 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
9559 ;
9560 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
9561 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
9562 ; EQUIPMENT CORPORATION.
9563 ;
9564 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
9565 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
9566 ;
9567 ; VERSION 05-02 ; ADP01
9568 ;
9569 ; ALAN D. PECKHAM 30-MAR-77
9570 ;
9571 ; MODIFIED BY:
9572 ;
9573 ;
9574 ; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED IN THE TRANSLATION
9575 ; TO/FROM THE ASCII REPRESENTATION OF OCTAL NUMBERS.
9576 ;
9577 ;
KLITO -- ASCII-OCTAL/BINARY TRA MACRO M1110 12-OCT-79 14:10 PAGE 209
$TRB2O -- TRANSLATE BINARY WORD AS OCTAL ASCII
9579 .SBTTL $TRB2O -- TRANSLATE BINARY WORD AS OCTAL ASCII
9580 ;+
9581 ; TRANSLATE THE UNSIGNED BINARY NUMBER IN R0 INTO AND ASCII STRING
9582 ; AND PUT IT INTO THE AREA POINTED TO BY R5. THE STRING IS VARIBLE
9583 ; IN LENGTH WITH LEADING ZERO SUPPRESSION AND A MAXIMUM LENGTH OF
9584 ; 6. R5 IS INCREMENTED PAST THE INSERTED STRING.
9585 ;
9586 ; INPUTS:
9587 ; R5 - POINTER TO AREA TO RECIEVE ASCII CHARACTERS.
9588 ; R0 - BINARY NUMBER TO CONVERT.
9589 ;
9590 ; OUTPUTS:
9591 ; THE ASCII STRING IS PLACED IN THE BYTES POINTED TO BY R5 AND
9592 ; R5 IS UPDATED TO POINT AT THE BYTE FOLLOWING THE INSERTED
9593 ; STRING. R0 IS DESTROYED.
9594 ;-
9595
9596 024162 $TDB2O::
9597 024162 PUSH <R4,R5> ; SAVE R4 AND R5
024162 010446 MOV R4,-(SP)
024164 010546 MOV R5,-(SP)
9598 024166 012705 000330' MOV #.TTOBF,R5 ; POINT TO OUTPUT BUFFER
9599 024172 010504 MOV R5,R4 ; COPY TO R4
9600 024174 CALL $TRB2O ; CONVERT TO ASCII STRING
024174 004737 024212' JSR PC,$TRB2O
9601 024200 $TDB2C::
9602 024200 CALL $TTDWR ; OUTPUT THE LINE
024200 004737 025230' JSR PC,$TTDWR
9603 024204 POP <R5,R4> ; RESTORE REGISTERS
024204 012605 MOV (SP)+,R5
024206 012604 MOV (SP)+,R4
9604 024210 RETURN ; AND EXIT
024210 000207 RTS PC
9605
9606 024212 $TRB2O::
9607 024212 PUSH <R2,R1> ; SAVE REGISTERS AND
024212 010246 MOV R2,-(SP)
024214 010146 MOV R1,-(SP)
9608 024216 012702 024240' MOV #20$,R2 ; SET SIGNIFICANCE CHECKER.
9609 024222 012701 002200 MOV #2200,R1 ; GET INITIAL BIT.
9610 024226 10$:
9611 024226 006100 ROL R0
9612 024230 106101 ROLB R1 ; ROLL BITS IN.
9613 024232 103375 BCC 10$ ; ANY MORE ?
9614 024234 001003 BNE 30$ ; NON-ZERO BYTE IS SIGNIFICANT.
9615 024236 000112 JMP (R2) ; HAVE WE MET SIGNIFICANCE ?
9616 ;
9617 024240 20$:
9618 024240 005701 TST R1 ; NO - LAST DIGIT ?
9619 024242 100004 BPL 40$ ; NO- IGNORE.
9620 024244 30$:
9621 024244 010702 MOV PC,R2 ; SIGNIFICANCE HAS BEEN REACHED.
9622 024246 152701 000060 BISB #'0,R1 ; MAKE IT A DIGIT
9623 024252 110125 MOVB R1,(R5)+ ; AND INSERT.
9624 024254 40$:
9625 024254 105001 CLRB R1 ; CLEAR OLD DIGIT
9626 024256 152701 000020 BISB #20,R1 ; AND SET 3-BIT INDICATOR.
KLITO -- ASCII-OCTAL/BINARY TRA MACRO M1110 12-OCT-79 14:10 PAGE 209-1
$TRB2O -- TRANSLATE BINARY WORD AS OCTAL ASCII
9627 024262 006301 ASL R1 ; FINISHED WITH WORD ?
9628 024264 103360 BCC 10$ ; NO - CONTINUE, OTHERWISE
9629 024266 POP <R1,R2>
024266 012601 MOV (SP)+,R1
024270 012602 MOV (SP)+,R2
9630 024272 RETURN ; WE ARE FINISHED.
024272 000207 RTS PC
KLITO -- ASCII-OCTAL/BINARY TRA MACRO M1110 12-OCT-79 14:10 PAGE 210
$TRO2B -- TRANSLATE ASCII OCTAL NUMBER TO BINARY WORD
9632 .SBTTL $TRO2B -- TRANSLATE ASCII OCTAL NUMBER TO BINARY WORD
9633 ;+
9634 ; THIS ROUTINE TRANSLATES AN ASCII OCTAL NUMBER POINTED
9635 ; TO BY R5 INTO ITS BINARY EQUIVALENT IN R0. R5 IS INCRMENTED
9636 ; PAST THE NUMBER, AND CARRY IS RETURNED ON OVERFLOW.
9637 ;
9638 ; INPUTS:
9639 ; R5 - POINTER TO ASCII STRING TO EXTRACT OCTAL NUMBER FROM.
9640 ;
9641 ; OUTPUTS:
9642 ; R0 - BINARY NUMBER EXTRACTED.
9643 ; R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS USED
9644 ; IN THE TRANSLATION. THE CARRY IS SET ON OVERFLOW.
9645 ;-
9646
9656
9657 024274 $TRO2B::
9658 024274 PUSH R2
024274 010246 MOV R2,-(SP)
9659 024276 005000 CLR R0 ; INITIALIZE RESULT.
9660 024300 112502 10$: MOVB (R5)+,R2 ; GET NEXT CHARACTER ; ADP01
9661 024302 162702 000060 SUB #'0,R2 ; AND MAKE BINARY
9662 024306 100413 BMI 20$ ; WHILE CHECKING
9663 024310 022702 000007 CMP #7,R2 ; IF OCTAL NUMERIC.
9664 024314 103410 BLO 20$ ; WE ARE FINISHED IF NOT.
9665 024316 032700 160000 BIT #160000,R0 ; IF RESULT WILL OVERFLOW
9666 024322 001006 BNE 30$ ; THEN SIGNAL ERROR
9667 024324 006300 ASL R0 ; OTHERWISE
9668 024326 006300 ASL R0 ; MULTIPLY BY 8
9669 024330 006300 ASL R0 ; AND
9670 024332 060200 ADD R2,R0 ; ADD NEW DIGIT.
9671 024334 000761 BR 10$ ; GO BACK FOR MORE.
9672 024336 005727 20$: TST (PC)+ ; PROPER EXIT - CLEAR CARRY.
9673 024340 000261 30$: SEC ; OVERFLOW - SET CARRY.
9674 024342 005305 DEC R5 ; BACK UP OVER ; ADP01
9675 024344 POP R2 ; LAST CHARACTER CHECKED
024344 012602 MOV (SP)+,R2
9676 024346 RETURN ; AND EXIT.
024346 000207 RTS PC
KLITO -- ASCII-OCTAL/BINARY TRA MACRO M1110 12-OCT-79 14:10 PAGE 211
$TRO2B -- TRANSLATE ASCII OCTAL NUMBER TO BINARY WORD
9678
9679 .TITLE KLITR -- ASCII-RAD50 CONVERSION
9680 024350 IDENT$ 5,0
.IDENT /005000/
9681 ;
9682 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
9683 ;
9684 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
9685 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
9686 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
9687 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
9688 ;
9689 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
9690 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
9691 ; EQUIPMENT CORPORATION.
9692 ;
9693 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
9694 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
9695 ;
9696 ; VERSION 05-00
9697 ;
9698 ; ALAN D. PECKHAM 30-MAR-77
9699 ;
9700 ; MODIFIED BY:
9701 ;
9702 ; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED WITH TRANSLATION
9703 ; OF RAD50 WORDS TO/FROM ASCII STRINGS.
9704 ;
9705 024350 .PSECT
KLITR -- ASCII-RAD50 CONVERSION MACRO M1110 12-OCT-79 14:10 PAGE 212
$TRR2B -- TRANSLATE ASCII TO RAD50 WORD
9707 .SBTTL $TRR2B -- TRANSLATE ASCII TO RAD50 WORD
9708 ;+
9709 ; TRANSLATE 3 OR LESS CHARACTERS POINTED TO BY R5 INTO A RAD50 WORD
9710 ; AND PLACE IT IN R0. IF A CHARACTER IS ENCOUNTERED DURING TRANSLATION
9711 ; WHICH IS NOT ALPHANUMERIC, SPACES ARE SUBSTITUTED FOR THE REMAINING
9712 ; CHARACTERS OF THE THREE. R5 IS INCREMENTED PAST ANY CHARACTERS
9713 ; WHICH WERE ACCEPTED.
9714 ; **NOTE** THIS ROUTINE ONLY TRANSLATES ALPHANUMERIC CHARACTERS, NOT
9715 ; THE FULL RAD50 CHARACTER SET.
9716 ;
9717 ; INPUTS:
9718 ; R5 - POINTER TO CHARACTERS TO BE USED IN TRANSLATION.
9719 ;
9720 ; OUTPUTS:
9721 ; R0 - RAD50 WORD CONTAINING CHARACTERS TRANSLATED.
9722 ; R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS
9723 ; INSERTED INTO THE RAD50 WORD.
9724 ;-
9725
9726 024350 $TRR2B::PUSH <R2,R1> ; SAVE REGISTERS AND
024350 010246 MOV R2,-(SP)
024352 010146 MOV R1,-(SP)
9727 024354 005000 CLR R0 ; INITIALIZE RETURN VALUE.
9728 024356 012702 000003 MOV #3.,R2 ; GET 3 CHARACTERS.
9729 024362 112501 10$: MOVB (R5)+,R1 ; PICK UP THE NEXT
9730 024364 162701 000100 SUB #100,R1 ; AND CHECK FOR ALPHAMERIC.
9731 024370 003404 BLE 20$
9732 024372 022701 000032 CMP #32,R1 ; WITHIN A-Z ?
9733 024376 002014 BGE 50$ ; YES, STICK IT IN.
9734 024400 000406 BR 30$
9735 024402 062701 000020 20$: ADD #<100-60>,R1 ; CHECK FOR NUMERIC.
9736 024406 002403 BLT 30$
9737 024410 022701 000011 CMP #9.,R1 ; WITHIN 0-9 ?
9738 024414 002003 BGE 40$
9739 024416 005305 30$: DEC R5 ; INVALID CHARACTER, IGNORE.
9740 024420 012701 177742 MOV #-36,R1 ; INSERT A NULL.
9741 024424 062701 000036 40$: ADD #36,R1 ; INCREASE FOR NUMERIC.
9742 024430 006300 50$: ASL R0 ; MULTIPLY BY 50
9743 024432 006300 ASL R0
9744 024434 006300 ASL R0
9745 024436 060001 ADD R0,R1 ; WHILE ADDING IN
9746 024440 006300 ASL R0
9747 024442 006300 ASL R0
9748 024444 060100 ADD R1,R0 ; THE NEW CHARACTER.
9749 024446 077233 SOB R2,10$ ; DO FOR 3 CHARACTERS
9750 024450 POP <R1,R2> ; AND...
024450 012601 MOV (SP)+,R1
024452 012602 MOV (SP)+,R2
9751 024454 RETURN
024454 000207 RTS PC
KLITR -- ASCII-RAD50 CONVERSION MACRO M1110 12-OCT-79 14:10 PAGE 213
$TRB2R -- TRANSLATE RAD50 WORD TO ASCII
9753 .SBTTL $TRB2R -- TRANSLATE RAD50 WORD TO ASCII
9754 ;+
9755 ; TRANSLATE THE RAD50 WORD IN R0 TO AN ASCIZ STRING AND INSERT THE
9756 ; STRING AT THE AREA POINTED TO BY R5. INCREMENT R5 TO POINT PAST
9757 ; THE INSERTED STRING. THE INVALID RAD50 CODE IS REPRESENTED BY
9758 ; THE UNDERLINE CHARACTER. THE BLANK CHARACTER IS NOT INSERTED.
9759 ;
9760 ; INPUTS:
9761 ; R5 - POINTER TO BYTES TO RECIEVE ASCII STRING.
9762 ; R0 - RAD50 WORD FROM WHICH TO EXTRACT THE CHARACTERS.
9763 ;
9764 ; OUTPUTS:
9765 ; R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS
9766 ; INSERTED.
9767 ;-
9768
9769 024456 $TRB2R::PUSH <R2,R1,R0>
024456 010246 MOV R2,-(SP)
024460 010146 MOV R1,-(SP)
024462 010046 MOV R0,-(SP)
9770 024464 012702 000002 MOV #2.,R2 ; I DON'T UNDERSTAND THIS ROUTINE.
9771 024470 10$: PUSH R0 ; BUT IT DEFINITELY WORKS.
024470 010046 MOV R0,-(SP)
9772 024472 005000 CLR R0
9773 024474 011601 20$: MOV (SP),R1
9774 024476 152701 000002 BISB #2,R1
9775 024502 010146 MOV R1,-(SP)
9776 024504 006016 ROR (SP)
9777 024506 006216 ASR (SP)
9778 024510 162601 SUB (SP)+,R1
9779 024512 042701 000037 BIC #37,R1
9780 024516 160116 SUB R1,(SP)
9781 024520 006001 ROR R1
9782 024522 006001 ROR R1
9783 024524 160116 SUB R1,(SP)
9784 024526 060100 ADD R1,R0
9785 024530 021627 000047 CMP (SP),#47
9786 024534 101357 BHI 20$ ; NOTE: CARRY IS CLEAR ON BRANCH.
9787 024536 006200 ASR R0
9788 024540 006200 ASR R0
9789 024542 006200 ASR R0
9790 024544 077227 SOB R2,10$
9791 024546 012702 000003 MOV #3.,R2
9792 024552 022700 000047 CMP #47,R0
9793 024556 103405 BLO 40$
9794 024560 105700 TSTB R0
9795 024562 001422 30$: BEQ 90$
9796 024564 122700 000035 CMPB #35,R0
9797 024570 001002 BNE 50$
9798 024572 012700 000115 40$: MOV #115,R0
9799 024576 122700 000033 50$: CMPB #33,R0
9800 024602 001403 BEQ 60$
9801 024604 103404 BLO 70$
9802 024606 062700 000040 ADD #40,R0
9803 024612 062700 000016 60$: ADD #16,R0
9804 024616 062700 000011 70$: ADD #11,R0
9805 024622 062700 000011 80$: ADD #11,R0
KLITR -- ASCII-RAD50 CONVERSION MACRO M1110 12-OCT-79 14:10 PAGE 213-1
$TRB2R -- TRANSLATE RAD50 WORD TO ASCII
9806 024626 110025 MOVB R0,(R5)+
9807 024630 90$: POP R0
024630 012600 MOV (SP)+,R0
9808 024632 077225 SOB R2,30$
9809 024634 POP <R1,R2>
024634 012601 MOV (SP)+,R1
024636 012602 MOV (SP)+,R2
9810 024640 RETURN
024640 000207 RTS PC
KLITT -- TTY I/O FUNCTIONS MACRO M1110 12-OCT-79 14:10 PAGE 214
$TRB2R -- TRANSLATE RAD50 WORD TO ASCII
9812 .TITLE KLITT -- TTY I/O FUNCTIONS
9813 024642 IDENT$ 5,1
.IDENT /005010/
9814 ;
9815 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
9816 ;
9817 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
9818 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
9819 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
9820 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
9821 ;
9822 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
9823 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
9824 ; EQUIPMENT CORPORATION.
9825 ;
9826 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
9827 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
9828 ;
9829 ; VERSION 05-00
9830 ;
9831 ; ALAN D. PECKHAM 15-APR-77
9832 ;
9833 ; MODIFIED BY:
9834 ;
9835 ; FUNCTION: ALL ROUTINES ACCESS THE CONSOLE THROUGH THIS MODULE
9836 ; TO PROVIDE A UNIFORM INTERFACE TO THE OPERATOR.
9837 ;
9838 ; EQUATED SYMBOLS
9839 ;
9840 000015 CR = 15 ; CARRIAGE RETURN CHARACTER.
9841 000012 LF = 12 ; LINE FEED CHARACTER.
9842 ;
9843 ; LOCAL MACROS
9844 ;
9845 .MCALL QIOW$,WTSE$S,EXIT$S
9846 ;
9847 ; LOCAL DATA
9848 ;
9849 002134 .PSECT DATA,D
9850 002134 DTTRLB: QIOW$ IO.RLB,TTILUN,1,,DTTSTA,,<.TTIBF,T.TIL>
002134 003 010 .BYTE 3,$$$ARG
002136 000000G .WORD IO.RLB
002140 000001 .WORD TTILUN
002142 001 000 .BYTE 1,
002144 002176' .WORD DTTSTA
002146 000000 .WORD
002150 000270' .WORD .TTIBF
002152 000040 .WORD T.TIL
9851 002154 DTTWLB: QIOW$ IO.WLB,TTOLUN,1,,DTTSTA,,<0,0,0>
002154 003 011 .BYTE 3,$$$ARG
002156 000000G .WORD IO.WLB
002160 000002 .WORD TTOLUN
002162 001 000 .BYTE 1,
002164 002176' .WORD DTTSTA
002166 000000 .WORD
002170 000000 .WORD 0
002172 000000 .WORD 0
KLITT -- TTY I/O FUNCTIONS MACRO M1110 12-OCT-79 14:10 PAGE 214-1
$TRB2R -- TRANSLATE RAD50 WORD TO ASCII
002174 000000 .WORD 0
9852 002176 000000 000000 DTTSTA: .WORD 0,0
9853 005010 .PSECT TEXT,D
9854 005010 040 TTSPC: .ASCII / /
9855 005011 011 TTTAB: .ASCII / /
9856 005012 057 TTSLS: .ASCII %/%
9857 005013 007 TTBEL: .BYTE 7
9858 005014 015 012 TTTNLN: .ASCII <CR><LF>
9859 005016 113 114 111 TTTPRP: .ASCII /KLI>/
005021 076
9860 005022 113 114 111 TTTPRE: .ASCIZ /KLI -- /
005025 040 055 055
005030 040 000
9861 .EVEN
9862 024642 .PSECT
KLITT -- TTY I/O FUNCTIONS MACRO M1110 12-OCT-79 14:10 PAGE 215
$TTRD -- READ A LINE FROM THE CONSOLE TTY
9864 .SBTTL $TTRD -- READ A LINE FROM THE CONSOLE TTY
9865 ;+
9866 ; READ A LINE INTO ".TTIBF". IF ESCAPE IS RECIEVED THE TREAT AS ERROR
9867 ; TO RESTART DIALOG. IF OTHER THAN <CR> TERMINATES THE LINE, THEN
9868 ; DO A FAST EXIT.
9870 ; IF 'T+' OR 'T-' IS RECIEVED THEN TURN ON OR OFF TRACKING RESPECTIVELY.
9872 ;
9873 ; NO INPUTS
9874 ;
9875 ; OUTPUTS:
9876 ; .TTIBF - CONTAINS THE CHARACTERS READ IN TERMINATED BY A ZERO BYTE.
9877 ;-
9878
9879 024642 004537 021764' $TTRD:: JSR R5,$RSAVE
9880 024646 012737 005016' 002170' 10$: MOV #TTTPRP,DTTWLB+Q.IOPL+0 ; PROMPT WITH KLI>
9881 024654 012737 000004 002172' MOV #4,DTTWLB+Q.IOPL+2
9882 024662 DIR$ #DTTWLB
024662 012746 002154' MOV #DTTWLB,-(SP)
024666 104375 EMT 375
9883 024670 DIR$ #DTTRLB ; PERFORM GIVEN FUNCTION
024670 012746 002134' MOV #DTTRLB,-(SP)
024674 104375 EMT 375
9884 024676 013701 002200' MOV DTTSTA+2,R1 ; SAVE LINE LENGTH
9885 024702 013700 002176' MOV DTTSTA,R0 ; AND STATUS.
9886 024706 100003 BPL 20$
9887 024710 122700 000000G CMPB #IE.EOF,R0 ; IF CONTROL-Z
9888 024714 001411 BEQ 30$ ; CRLF IS AUTOMATIC, OTHERWISE
9889 024716 012737 005014' 002170' 20$: MOV #TTTNLN,DTTWLB+Q.IOPL+0 ; PRINT A CRLF
9890 024724 112737 000002 002172' MOVB #2,DTTWLB+Q.IOPL+2
9891 024732 DIR$ #DTTWLB
024732 012746 002154' MOV #DTTWLB,-(SP)
024736 104375 EMT 375
9892 024740 022700 000000G 30$: CMP #IS.ESC,R0 ; DID HE TYPE AN ESCAPE ?
9893 024744 001424 BEQ 60$ ; RESTART DIALOG.
9894 024746 022700 000000G CMP #IS.CR,R0 ; DID HE END WITH A CR ?
9895 024752 001023 BNE 70$ ; NO, EXIT.
9896 024754 105061 000270' CLRB .TTIBF(R1) ; WITH A NULL BYTE.
9898 024760 022737 026524 000270' CMP #"T-,.TTIBF ; TURN OFF TRACK ?
9899 024766 001410 BEQ 50$ ; YES, GO DO IT.
9900 024770 022737 025524 000270' CMP #"T+,.TTIBF ; TURN ON TRACK ?
9901 024776 001401 BEQ 40$ ; YES, GO DO IT.
9903 025000 RETURN
025000 000207 RTS PC
9905 025002 105237 000032' 40$: INCB .TRKSW ; TURN ON TRACK AND
9906 025006 000717 BR 10$ ; GET ANOTHER LINE.
9907 025010 105037 000032' 50$: CLRB .TRKSW ; TURN OFF TRACK AND
9908 025014 000714 BR 10$ ; GET ANOTHER LINE.
9910 025016 000137 021572' 60$: JMP $ERROR ; AND RESTART DIALOG.
9911 025022 70$: EXIT$S ; WE WANT OUT !
025022 012746 MOV (PC)+,-(SP)
025024 063 001 .BYTE 51.,1
025026 104375 EMT 375
KLITT -- TTY I/O FUNCTIONS MACRO M1110 12-OCT-79 14:10 PAGE 216
$TTRD -- READ A LINE FROM THE CONSOLE TTY
9913 .ENABL LSB
9914
9915 025030 $TTSPC::
9916 025030 PUSH R0 ; SAVE R0
025030 010046 MOV R0,-(SP)
9917 025032 012700 005010' MOV #TTSPC,R0 ; <SPACE> TO R0
9918 025036 000417 BR 10$ ; PRINT AND RETURN
9919 ;
9920 025040 $TTBEL::
9921 025040 PUSH R0 ; SAVE R0
025040 010046 MOV R0,-(SP)
9922 025042 012700 005013' MOV #TTBEL,R0 ; <BELL> TO R0
9923 025046 000413 BR 10$ ; PRINT AND RETURN
9924 ;
9932 025050 $TTTAB::
9933 025050 PUSH R0 ; SAVE R0
025050 010046 MOV R0,-(SP)
9934 025052 012700 005011' MOV #TTTAB,R0 ; <TAB> TO R0
9935 025056 000407 BR 10$ ; PRINT AND RETURN
9936 ;
9937 025060 $TCRLF::
9938 025060 PUSH <R0,R1> ; SAVE R0 AND R1
025060 010046 MOV R0,-(SP)
025062 010146 MOV R1,-(SP)
9939 025064 012700 005014' MOV #TTTNLN,R0 ; <CR><LF> TO R0
9940 025070 012701 000002 MOV #2,R1 ; LENGTH TO R1
9941 025074 000403 BR 20$ ; PRINT AND RETURN
9942 ;
9943 025076 10$:
9944 025076 PUSH R1 ; SAVE R1
025076 010146 MOV R1,-(SP)
9945 025100 012701 000001 MOV #1,R1 ; LENGTH TO R1
9946 025104 20$:
9947 025104 CALL $TTWR ; PRINT THE CHARACTER(S)
025104 004737 025244' JSR PC,$TTWR
9948 025110 POP <R1,R0> ; RESTORE REGISTERS
025110 012601 MOV (SP)+,R1
025112 012600 MOV (SP)+,R0
9949 025114 RETURN ; EXIT
025114 000207 RTS PC
9950
9951 .DSABL LSB
KLITT -- TTY I/O FUNCTIONS MACRO M1110 12-OCT-79 14:10 PAGE 217
$TTMSG -- WRITE A MESSAGE TO THE CONSOLE TTY
9953 .SBTTL $TTMSG -- WRITE A MESSAGE TO THE CONSOLE TTY
9954 ;+
9955 ; COPY A MESSAGE INTO THE OUTPUT BUFFER WITH THE 'KLI -- ' PREFIX
9956 ; AND WRITE IT TO THE CONSOLE.
9957 ;
9958 ; "$TTDMS" WILL STRIP THE DIAGNOSTIC CARRIAGE CONTROL CHARACTERS FROM
9959 ; A TEXT STRING IN ORDER TO TRANSLATE THE MESSAGE.
9960 ;
9961 ;
9962 ; INPUTS:
9963 ; R0 - ADDRESS OF ASCIZ MESSAGE.
9964 ;
9965 ; NO OUTPUTS
9966 ;-
9967
9968 025116 $TTDMS::
9969 025116 CALL R5,$RSAVE ; SAVE THE REGISTERS
025116 004537 021764' JSR R5,$RSAVE
9970 025122 012705 000330' MOV #.TTOBF,R5 ; OUTPUT BUFFER POINTER TO R5
9971 025126 010504 MOV R5,R4 ; COPY TO R4
9972 025130 10$:
9973 025130 112001 MOVB (R0)+,R1 ; GET A BYTE FOM THE INPUT STRING
9974 025132 001436 BEQ $TTDWR ; DONE IF <NULL>
9975 025134 122701 000137 CMPB #'_,R1 ; IS IT AN <UNDERSCORE>??
9976 025140 001773 BEQ 10$ ; YES -- THROW IT AWAY
9977 025142 122701 000134 CMPB #'\,R1 ; NO -- IS IS A <BACKSLASH>??
9978 025146 001004 BNE 20$ ; NO -- GO ON
9979 025150 112725 000015 MOVB #15,(R5)+ ; YES -- SUBSTITUTE A <CR>
9980 025154 012701 000012 MOV #12,R1 ; AND A <LF> FOR IT
9981 025160 20$:
9982 025160 110125 MOVB R1,(R5)+ ; LOAD THIS CHARACTER
9983 025162 000762 BR 10$ ; AND GET THE NEXT
9984 ;
9985 025164 $TTMSG::
9986 025164 004537 021764' JSR R5,$RSAVE ;THIS ROUTINE IS SPECIAL
9987 025170 005002 CLR R2 ; MARK NORMAL CALL
9988 025172 012705 000330' MOV #.TTOBF,R5 ;FOR THE MESSAGE MACROS.
9989 025176 010504 MOV R5,R4
9990 025200 010003 MOV R0,R3 ;(SAVE MESSAGE ADDRESS)
9991 025202 012700 005022' MOV #TTTPRE,R0 ;INSERT KLI IDENTIFIER
9992 025206 CALL $ASCIZ ; 'KLI -- '
025206 004737 022020' JSR PC,$ASCIZ
9993 025212 010300 MOV R3,R0 ;AND THEN MESSAGE.
9994 025214 CALL $ASCIZ
025214 004737 022020' JSR PC,$ASCIZ
9995 025220 112725 000015 MOVB #CR,(R5)+ ;FOLLOW BY CRLF.
9996 025224 112725 000012 MOVB #LF,(R5)+
9997 025230 $TTDWR::
9998 025230 160405 SUB R4,R5 ;COMPUTE LENGTH
9999 025232 010437 002170' MOV R4,DTTWLB+Q.IOPL+0 ;AND PRINT.
10000 025236 010537 002172' MOV R5,DTTWLB+Q.IOPL+2
10001 025242 000404 BR LTTDIR ;DO THE WRITE.
10002 ;
KLITT -- TTY I/O FUNCTIONS MACRO M1110 12-OCT-79 14:10 PAGE 218
$TTWR -- WRITE A LINE TO THE CONSOLE TTY
10004 .SBTTL $TTWR -- WRITE A LINE TO THE CONSOLE TTY
10005 ;+
10006 ; WRITE OUT AN ASCII STRING TO THE CONSOLE.
10007 ;
10008 ; INPUTS:
10009 ; R1 - LENGTH OF STRING.
10010 ; R0 - ADDRESS OF STRING.
10011 ;
10012 ; NO OUTPUTS
10013 ;-
10014
10015 025244 010037 002170' $TTWR:: MOV R0,DTTWLB+Q.IOPL+0 ;INSERT MESSAGE ADDRESS,
10016 025250 010137 002172' MOV R1,DTTWLB+Q.IOPL+2 ;LENGTH,
10017 025254 LTTDIR: DIR$ #DTTWLB ;AND PRINT.
025254 012746 002154' MOV #DTTWLB,-(SP)
025260 104375 EMT 375
10018 025262 RETURN
025262 000207 RTS PC
KLIXB -- LOAD THE KL BOOT MACRO M1110 12-OCT-79 14:10 PAGE 219
$TTWR -- WRITE A LINE TO THE CONSOLE TTY
10020 .TITLE KLIXB -- LOAD THE KL BOOT
10021 025264 IDENT$ 11,1 ; ADP01
.IDENT /011010/
10022 ;
10023 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
10024 ;
10025 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
10026 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
10027 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
10028 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
10029 ;
10030 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
10031 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
10032 ; EQUIPMENT CORPORATION.
10033 ;
10034 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
10035 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
10036 ;
10037 ; VERSION 11-01 ; ADP01
10038 ;
10039 ; ALAN D. PECKHAM 8-APR-77
10040 ;
10041 ; MODIFIED BY:
10042 ;
10043 ; FUNCTION: THIS MODULE CONTAINS THE ROUTINES WHICH LOAD THE KL BOOT
10044 ; FROM THE FILE 'BOOT.EXB' OR AN OPERATOR SPECIFIED FILE.
10045 ;
10046 ; EQUATED SYMBOLS
10047 ;
10048 000000 APR = 0 ; KL DEVICE.
10049 000004 CONO = 4 ; KL I/O SUBFUNCTION CODE.
10050 001000 PAGE = 1000 ; PAGE SIZE (POWER OF 2).
10051 000777 PGBTS = PAGE-1 ; PAGE BITS USED IN MASK.
10052 ;
10053 ; LOCAL DATA
10054 ;
10055 002202 .PSECT DATA,D
10056 002202 DXBFNM:
10057 002202 007347 076400 000000 .RAD50 /BOOT EXB/ ; BOOT DEFAULT FILE NAME.
002210 021402
10058 002212 000000 .WORD 0 ; GET LATEST VERSION.
10059 002214 005 005 .BYTE 5,5
10060 002216 054523 000000 .WORD "SY,0
10061 002222 DXBADR:
10062 002222 000000 000000 .WORD 0,0 ; CURRENT DEPOSIT ADDRESS.
10063 002226 DXBDAT:
10064 002226 000000 000000 000000 .WORD 0,0,0 ; DATA WORD TO DEPOSIT.
10065 002234 DXBCNM:
10066 002234 IO10$ CONO APR,,22000 ; TO CLEAR THE NXM BIT.
002234 000 044 000 .BYTE BY$$0,BY$$1,BY$$2
002237 002 016 .BYTE BY$$3,BY$$4
10067 .EVEN
10068 005032 .PSECT TEXT,D
10069 005032 TXBIMM:
10070 005032 ERROR <INSUFFICIENT MEMORY FOR BOOTSTRAP>
005032 077 040 111 .ASCIZ \? INSUFFICIENT MEMORY FOR BOOTSTRAP\
005035 116 123 125
KLIXB -- LOAD THE KL BOOT MACRO M1110 12-OCT-79 14:10 PAGE 219-1
$TTWR -- WRITE A LINE TO THE CONSOLE TTY
005040 106 106 111
005043 103 111 105
005046 116 124 040
005051 115 105 115
005054 117 122 131
005057 040 106 117
005062 122 040 102
005065 117 117 124
005070 123 124 122
005073 101 120 000
10071 025264 .PSECT
KLIXB -- LOAD THE KL BOOT MACRO M1110 12-OCT-79 14:10 PAGE 220
$EXBLD -- LOAD THE BOOT
10073 .SBTTL $EXBLD -- LOAD THE BOOT
10074 ;+
10075 ; PROCESS THE KL BOOTSTRAP FILE (.EXB)
10076 ; THIS ROUTINE READS IN A FILE OF BINARY RECORDS.
10077 ; *DATA RECORDS:
10078 ; .WORD 4+<5*N> ; BYTE COUNT.
10079 ; .BLKW 2 ; KL ADDRESS.
10080 ; .BLKB 5*N ; KL WORDS.
10081 ; THE KL WORDS WHICH ARE PLACED IN THE FIRST 36 BITS OF 5 -11 BYTES
10082 ; ARE STORED SEQUENTIALLY STARTING AT THE GIVEN ADDRESS.
10083 ; *END OF FILE:
10084 ; .WORD 4 ; BYTE COUNT.
10085 ; .BLKW 2 ; KL ADDRESS.
10086 ; THE ADDRESS IS THE START ADDRESS OF THE BOOTSTRAP PROGRAM.
10087 ; THE DATA RECORDS ARE ASSUMED TO BE SORTED BY ADDRESS,
10088 ; SO THAT PAGE CLEARING IS DONE PROPERLY.
10089 ;
10090 ; THE PAGE CLEARING FEATURE REQUIRES THAT ANY PAGES WHICH RECIEVE
10091 ; DATA SHOULD BE CLEARED BEFORE ANY DATA IS STORED. THE PRESENT
10092 ; ALGORITHM AVOIDS WRITING TWICE TO ANY LOCATION (CLEAR & DEPOSIT).
10093 ; A POINTER IS KEPT OF WHERE THE NEXT KL WORD WOULD BE DEPOSITED,
10094 ; AND IS USED TO DETECT GAPS IN DATA/INSTRUCTION STORAGE SO THAT
10095 ; INTERVENING WORDS MAY BE CLEARED.
10096 ;
10097 ; A CHECK IS ALSO MADE TO SEE IF ANY OF THE BOOT IS LOADED INTO
10098 ; NON-EXISTANT MEMORY BY TURNING OFF THE NXM INDICTOR BEFORE THE
10099 ; LOAD AND TESTING IT AFTER THE LOAD TO SEE IF A NXM OCCURRED.
10100 ;
10101 ; INPUTS:
10102 ; .DBSW - IF <>0 THEN USE USER FILE NAME.
10103 ; .DBFNM - POINTER TO 5 WORD USER FILE NAME.
10104 ;
10105 ; OUTPUTS:
10106 ; CARRY IS SET IF ERROR OCCURS, OTHERWISE BOOT IS STARTED AND
10107 ; RETURN IS TO "$EXIT".
10108 ;-
10109
10110 025264 $EXBLD::
10111 025264 105737 000024' TSTB .DLGSW ; ARE WE IN DIALOG MODE??
10112 025270 100004 BPL 10$ ; YES -- GO ON
10113 025272 032737 000000G 000044' BIT #KL.LVB,.KLISV ; NO -- MUST BOOT BE LOADED??
10114 025300 001430 BEQ 30$ ; NO -- JUST EXIT
10115 025302 10$:
10117 025302 CALL $SWEEP ; CLEAR CACHE.
025302 004737 005744' JSR PC,$SWEEP
10118 025306 103425 BCS 30$
10119 025310 012700 002202' MOV #DXBFNM,R0 ; FILE NAME: BOOT.EXB
10123 025314 105737 000025' TSTB .UFNSW ; OR
10124 025320 003402 BLE 20$
10125 025322 012700 000442' MOV #.USRFN,R0 ; USER FILE NAME. ; ADP01
10126 025326 20$:
10127 025326 CALL $LOOKUP ; FIND THE FILE.
025326 004737 007024' JSR PC,$LOOKUP
10128 025332 103414 BCS 40$
10129 025334 012703 002226' MOV #DXBDAT,R3 ; INITIALIZE DATA WORD POINTER
10130 025340 012702 002224' MOV #DXBADR+2,R2 ; AND NEXT WORD POINTER.
10131 025344 005012 CLR (R2) ; SET TO ZERO.
KLIXB -- LOAD THE KL BOOT MACRO M1110 12-OCT-79 14:10 PAGE 220-1
$EXBLD -- LOAD THE BOOT
10132 025346 005042 CLR -(R2)
10133 025350 012700 002234' MOV #DXBCNM,R0 ; NOW TURN OFF THE NXM BIT BY
10134 025354 CALL $EXCT ; DOING A CONO APR,,22000.
025354 004737 025716' JSR PC,$EXCT
10135 025360 103020 BCC LXBRC
10136 025362 30$:
10137 025362 RETURN
025362 000207 RTS PC
10138 025364 40$:
10139 025364 122737 000000G 000470' CMPB #IE.NSF,.SYSTA ; IF FILE NOT FOUND
10140 025372 001373 BNE 30$
10141 025374 CALLR $IOERR ; DECLARE THE ERROR.
025374 000137 006610' JMP $IOERR
10142
10143 ;+
10144 ; READ 5 BYTES INTO THE AREA POINTED TO BY R3.
10145 ; R5, R4 AND R0 GET DESTROYED.
10146 ;-
10147
10148 025400 LXB5B:
10149 025400 012705 000005 MOV #5,R5
10150 025404 010304 MOV R3,R4
10151 025406 10$:
10152 025406 CALL $READB ; READ A BYTE AND
025406 004737 007662' JSR PC,$READB
10153 025412 103402 BCS 20$
10154 025414 110024 MOVB R0,(R4)+ ; STICK IN ASSEMBLED WORD.
10155 025416 077505 SOB R5,10$
10156 025420 20$:
10157 025420 RETURN
025420 000207 RTS PC
KLIXB -- LOAD THE KL BOOT MACRO M1110 12-OCT-79 14:10 PAGE 221
$EXBLD -- LOAD THE BOOT
10159 ;+
10160 ; READ RECORD FROM FILE.
10161 ;-
10162
10163 025422 LXBRC: CALL $READC ; GET ADDRESS.
025422 004737 007460' JSR PC,$READC
10164 025426 103532 BCS 90$
10165 025430 010037 000462' MOV R0,.BTADR
10166 025434 CALL $READW
025434 004737 007566' JSR PC,$READW
10167 025440 103525 BCS 90$
10168 025442 010037 000464' MOV R0,.BTADR+2
10169 025446 005737 000476' TST .SYIRC ; IF MORE BYTES IN RECORD
10170 025452 003070 BGT 60$ ; GO TO LOAD DATA INTO KL.
10171
10172 ;+
10173 ; END OF FILE REACHED. CLEAR THE REST OF THE PAGE,
10174 ; DE-ACCESS THE FILE, AND START THE BOOT.
10175 ;-
10176
10177 025454 032712 000777 10$: BIT #PGBTS,(R2) ; MUST CLEAR REST OF PAGE.
10178 025460 001413 BEQ 20$
10179 025462 012701 000000' MOV #.ZERO,R1 ; IF NOT AT BOUNDRY
10180 025466 010200 MOV R2,R0
10181 025470 CALL $DPOS ; CLEAR WORD,
025470 004737 012336' JSR PC,$DPOS
10182 025474 103507 BCS 90$
10183 025476 062712 000001 ADD #1,(R2) ; BUMP POINTER,
10184 025502 005562 000002 ADC 2(R2)
10185 025506 000762 BR 10$ ; AND GO FOR MORE.
10186 025510 010301 20$: MOV R3,R1
10187 025512 012700 110000 MOV #<110*1000>,R0 ; GET 'APR NXM ER IN'
10188 025516 CALL $DFRD
025516 004737 012706' JSR PC,$DFRD
10189 025522 103474 BCS 90$
10190 025524 132761 000020 000003 BITB #20,3(R1) ; TO TEST FOR NXM.
10191 025532 001004 BNE 30$
10192 025534 CALL $CLOSE ; CLOSE BOOT FILE.
025534 004737 006320' JSR PC,$CLOSE
10193 025540 000137 022246' JMP $TENST ; GO TO START THE BOOT.
10194 025544 30$: PRINT #TXBIMM ; BOOT LOADED IN NONEXISTANT MEMORY !
025544 012700 005032' MOV #TXBIMM,R0
025550 004737 025164' JSR PC,$TTMSG
10195 025554 000261 SEC
10196 025556 RETURN
025556 000207 RTS PC
KLIXB -- LOAD THE KL BOOT MACRO M1110 12-OCT-79 14:10 PAGE 222
$EXBLD -- LOAD THE BOOT
10198 ;+
10199 ; PROCESS DATA RECORD.
10200 ;-
10201
10202 025560 032712 000777 40$: BIT #PGBTS,(R2) ; IF ON A NEW PAGE
10203 025564 001011 BNE 50$
10204 025566 013722 000462' MOV .BTADR,(R2)+ ; PUT US ON THE PAGE
10205 025572 013712 000464' MOV .BTADR+2,(R2) ; OF THE TARGET ADDRESS
10206 025576 042742 000777 BIC #PGBTS,-(R2) ; AT THE TOP.
10207 025602 023712 000462' CMP .BTADR,(R2)
10208 025606 001421 BEQ 70$
10209 025610 012701 000000' 50$: MOV #.ZERO,R1 ; STORE A ZERO
10210 025614 010200 MOV R2,R0
10211 025616 CALL $DPOS
025616 004737 012336' JSR PC,$DPOS
10212 025622 103434 BCS 90$
10213 025624 062712 000001 ADD #1,(R2) ; AND BUMP ADDRESS.
10214 025630 005562 000002 ADC 2(R2)
10215 025634 023712 000462' 60$: CMP .BTADR,(R2) ; WE MUST CLEAR
10216 025640 001347 BNE 40$ ; UP TO THE
10217 025642 023762 000464' 000002 CMP .BTADR+2,2(R2) ; RECORD ADDRESS.
10218 025650 001343 BNE 40$
10219 025652 70$: CALL LXB5B
025652 004737 025400' JSR PC,LXB5B
10220 025656 103416 BCS 90$
10221 025660 010301 MOV R3,R1
10222 025662 010200 MOV R2,R0
10223 025664 CALL $DPOS ; STICK IT IN
025664 004737 012336' JSR PC,$DPOS
10224 025670 103411 BCS 90$
10225 025672 062712 000001 ADD #1,(R2) ; BUMP ADDRESS AND
10226 025676 005562 000002 ADC 2(R2)
10227 025702 005737 000476' TST .SYIRC
10228 025706 001361 BNE 70$
10229 025710 000137 025422' JMP LXBRC ; GO TO PICK UP NEW RECORD.
10230 025714 90$: RETURN
025714 000207 RTS PC
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1110 12-OCT-79 14:10 PAGE 223
$EXBLD -- LOAD THE BOOT
10232 .TITLE KLIXC -- KL INSTRUCTION EXECUTION
10233 025716 IDENT$ 5,0
.IDENT /005000/
10234 ;
10235 ; COPYRIGHT (C) 1977, DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
10236 ;
10237 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
10238 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
10239 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
10240 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
10241 ;
10242 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
10243 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
10244 ; EQUIPMENT CORPORATION.
10245 ;
10246 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
10247 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
10248 ;
10249 ; VERSION 05-00
10250 ;
10251 ; ALAN D. PECKHAM 30-MAR-77
10252 ;
10253 ; MODIFIED BY:
10254 ;
10255 ; R. BELANGER 06-DEC-78 NEW KEEP-ALIVE ERROR PROCESSING
10256 ; TCO 4.2107
10257 ;
10258 ; FUNCTION: THIS MODULE CONTAINS ROUTINES TO ALLOW EXECUTION OF
10259 ; SINGLE KL INSTRUCTIONS OR THE STARTING OF KL PROGRAMS.
10260 ;
10261 ; LOCAL DATA
10262 ;
10263 002242 .PSECT DATA,D
10264 002242 DXCAD:
10265 002242 WD36$ 0 0 ; START ADDRESS BUFFER.
002242 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
002245 000 000 .BYTE BY$$3,BY$$4
10266 002247 DXCBF:
10267 002247 WD36$ 0 0 ; GENERAL BIT BUCKET.
002247 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
002252 000 000 .BYTE BY$$3,BY$$4
10268 002254 DXCBRC:
10269 002254 WD36$ 0 0 ; BURST COUNT BUFFER.
002254 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
002257 000 000 .BYTE BY$$3,BY$$4
10270 .EVEN
10271 005076 .PSECT TEXT,D
10272 005076 TXCHLE:
10273 005076 ERROR <CANNOT FIND HALT LOOP>
005076 077 040 103 .ASCIZ \? CANNOT FIND HALT LOOP\
005101 101 116 116
005104 117 124 040
005107 106 111 116
005112 104 040 110
005115 101 114 124
005120 040 114 117
005123 117 120 000
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1110 12-OCT-79 14:10 PAGE 223-1
$EXBLD -- LOAD THE BOOT
10274 005126 TXCSFL:
10275 005126 ERROR <CANNOT START KL>
005126 077 040 103 .ASCIZ \? CANNOT START KL\
005131 101 116 116
005134 117 124 040
005137 123 124 101
005142 122 124 040
005145 113 114 000
10276 025716 .PSECT
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1110 12-OCT-79 14:10 PAGE 224
$EXCT -- EXECUTE KL INSTRUCTION
10278 .SBTTL $EXCT -- EXECUTE KL INSTRUCTION
10279 ;+
10280 ; EXECUTE A SINGLE KL INSTRUCTION BY GETTING THE KL INTO THE
10281 ; HALT LOOP, LOADING THE AR WITH THE INSTRUCTION, PUSHING THE
10282 ; CONTINUE BUTTON, AND STARTING UP THE CLOCK. THE ROUTINE
10283 ; COMPLETES WHEN THE MICROCODE REACHES THE HALT LOOP AGAIN.
10284 ;
10285 ; INPUTS:
10286 ; R0 - POINTER TO INSTRUCTION TO EXECUTE.
10287 ;
10288 ; OUTPUTS:
10289 ; CARRY IS SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
10290 ;-
10291
10292 025716 $EXCT::
10293 025716 004537 021764' JSR R5,$RSAVE
10294 025722 TRACK XC
025722 004037 025734' JSR R0,64$
025726 041530 .WORD "XC
025730 000000 .WORD
025732 000000 .WORD
025734 004737 022032' 64$: JSR PC,$TRACK
025740 012600 MOV (SP)+,R0
10295 025742 CALL $LDAR ; LOAD THE AR WITH THE INSTRUCTION.
025742 004737 026256' JSR PC,$LDAR
10296 025746 103416 BCS 90$
10297 025750 012700 012000 MOV #.CONBT,R0 ; PUSH THE CONTINUE BUTTON
10298 025754 CALL $DFXC
025754 004737 013222' JSR PC,$DFXC
10299 025760 103411 BCS 90$
10300 025762 012700 001000 MOV #.STRCL,R0 ; AND START THE CLOCK
10301 025766 CALL $DFXC
025766 004737 013222' JSR PC,$DFXC
10302 025772 103404 BCS 90$
10303 025774 012703 001750 MOV #1000.,R3
10304 026000 CALLR $WTKL ; WAIT FOR THE HALT LOOP.
026000 000137 026176' JMP $WTKL
10305 ;
10306 026004 90$:
10307 026004 RETURN
026004 000207 RTS PC
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1110 12-OCT-79 14:10 PAGE 225
$STRKL -- START THE KL PROCESSOR
10309 .SBTTL $STRKL -- START THE KL PROCESSOR
10310 ;+
10311 ; START THE KL AT THE 22 BIT ADDRESS POINTED TO BY R0.
10312 ; THIS IS DONE BY LOADING THE AR WITH THE ADDRESS, PUSHING
10313 ; THE RUN AND CONTINUE BUTTONS, AND STARTING THE CLOCK.
10314 ; WE STEP THE MICROCODE OUT OF THE HALT LOOP TO MAKE SURE IT
10315 ; IS RUNNING BEFORE WE LEAVE.
10316 ;
10317 ; INPUTS:
10318 ; R0 - POINTER TO 22 BIT KL ADDRESS.
10319 ;
10320 ; OUTPUTS:
10321 ; CARRY IS SET ON ERROR AND A MESSAGE IS DISPLAYED.
10322 ;-
10323
10324 026006 $STRKL::
10325 026006 004537 021764' JSR R5,$RSAVE
10326 026012 TRACK ST
026012 004037 026024' JSR R0,64$
026016 052123 .WORD "ST
026020 000000 .WORD
026022 000000 .WORD
026024 004737 022032' 64$: JSR PC,$TRACK
026030 012600 MOV (SP)+,R0
10327 026032 012701 002242' MOV #DXCAD,R1 ; POINT TO A SCRATCH AREA
10328 026036 112021 MOVB (R0)+,(R1)+ ; LOAD THE ADDRESS
10329 026040 112021 MOVB (R0)+,(R1)+
10330 026042 111011 MOVB (R0),(R1) ; AS A PC WORD
10331 026044 142711 177700 BICB #^C77,(R1) ; ONLY 22 BITS PLEASE
10332 026050 012700 002242' MOV #DXCAD,R0 ; GET OUR ADDRESS
10333 026054 CALL $LDAR ; AND LOAD IT INTO THE AR.
026054 004737 026256' JSR PC,$LDAR
10334 026060 103440 BCS 80$
10335 026062 012700 011000 MOV #.SETRN,R0 ; SET THE RUN FLOP
10336 026066 CALL $DFXC
026066 004737 013222' JSR PC,$DFXC
10337 026072 103433 BCS 80$
10338 026074 012700 012000 MOV #.CONBT,R0 ; SET THE CONTINUE BUTTON
10339 026100 CALL $DFXC
026100 004737 013222' JSR PC,$DFXC
10340 026104 103426 BCS 80$
10341 026106 012701 001750 MOV #1000.,R1 ; LOOP COUNT TO R1
10342 026112 10$:
10343 026112 012700 002000 MOV #.SSCLK,R0 ; SINGLE STEP THE M-BOX CLOCK
10344 026116 CALL $DFXC
026116 004737 013222' JSR PC,$DFXC
10345 026122 103417 BCS 80$
10346 026124 CALL $DTRW1 ; READ DIAG WORD 1
026124 004737 021674' JSR PC,$DTRW1
10347 026130 103414 BCS 80$
10348 026132 032700 001000 BIT #DS06,R0 ; STILL IN THE HALT LOOP?
10349 026136 001402 BEQ 20$ ; NO -- GO ON
10350 026140 077114 SOB R1,10$ ; YES -- TRY AGAIN
10351 026142 000407 BR 80$ ; TIMED OUT -- COMPLAIN
10352 ;
10353 026144 20$:
10354 026144 032700 002000 BIT #DS05,R0 ; OUT OF HALT LOOP -- IS RUN ON?
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1110 12-OCT-79 14:10 PAGE 225-1
$STRKL -- START THE KL PROCESSOR
10355 026150 001404 BEQ 80$ ; NO -- COMPLAIN
10356 026152 012700 001000 MOV #.STRCL,R0 ; YES -- START THE CLOCK
10357 026156 CALLR $DFXC ; AND EXIT.
026156 000137 013222' JMP $DFXC
10358 ;
10359 026162 80$:
10360 026162 PRINT #TXCSFL ; NO -- PRINT ERROR MESSAGE
026162 012700 005126' MOV #TXCSFL,R0
026166 004737 025164' JSR PC,$TTMSG
10361 026172 000261 SEC
10362 026174 90$:
10363 026174 RETURN ; AND EXIT
026174 000207 RTS PC
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1110 12-OCT-79 14:10 PAGE 226
$WTKL -- WAIT FOR KL PROGRAM TO HALT
10365 .SBTTL $WTKL -- WAIT FOR KL PROGRAM TO HALT
10366 ;+
10367 ; WAIT FOR THE KL TO REENTER THE HALT LOOP.
10368 ;
10369 ; INPUTS:
10370 ; R0 - A TIMEOUT VALUE.
10371 ;
10372 ; OUTPUTS:
10373 ; CARRY IS SET IF THE KL DOES NOT ENTER THE HALT LOOP
10374 ; BEFORE THE -11 HAS CHECKED THE DTE20 THE NUMBER OF TIMES
10375 ; SPECIFIED IN R0.
10376 ;-
10377
10378 026176 $WTKL::
10379 026176 TRACK WT
026176 004037 026210' JSR R0,64$
026202 052127 .WORD "WT
026204 000000 .WORD
026206 000000 .WORD
026210 004737 022032' 64$: JSR PC,$TRACK
026214 012600 MOV (SP)+,R0
10380 026216 PUSH <R2,R1,R0>
026216 010246 MOV R2,-(SP)
026220 010146 MOV R1,-(SP)
026222 010046 MOV R0,-(SP)
10381 026224 010002 MOV R0,R2
10382 026226 10$:
10383 026226 CALL $DTRW1 ; READ DTE DIAG 1
026226 004737 021674' JSR PC,$DTRW1
10384 026232 103404 BCS 80$
10385 026234 032700 001000 BIT #DS06,R0 ; ARE WE AT THE HALT LOOP ?
10386 026240 001002 BNE 90$ ; YES, RETURN.
10387 026242 077207 SOB R2,10$ ; NO, TRY AGAIN
10388 026244 80$:
10389 026244 000261 SEC ; OR GIVE UP.
10390 026246 90$:
10391 026246 POP <R0,R1,R2>
026246 012600 MOV (SP)+,R0
026250 012601 MOV (SP)+,R1
026252 012602 MOV (SP)+,R2
10392 026254 RETURN
026254 000207 RTS PC
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1110 12-OCT-79 14:10 PAGE 227
$LDAR -- LOAD THE AR REGISTER
10394 .SBTTL $LDAR -- LOAD THE AR REGISTER
10395 ;+
10396 ; PUT THE MICROCODE INTO THE HALT LOOP, STOP IT, PHASE THE CLOCKS,
10397 ; AND LOAD THE AR REGISTER WITH AN INSTRUCTION OR STARTING ADDRESS.
10398 ;
10399 ; INPUTS:
10400 ; R0 - ADDRESS OF 36 BIT WORD TO LOAD INTO THE AR.
10401 ;
10402 ; OUTPUTS:
10403 ; CARRY IS SET IF ERROR OCCURS.
10404 ;-
10405
10406 026256 $LDAR::
10407 026256 004537 021764' JSR R5,$RSAVE ; SAVE THE REGISTERS.
10408 026262 CALL STPKL ; STOP THE MICROCODE.
026262 004737 026312' JSR PC,STPKL
10409 026266 103410 BCS 90$
10410 026270 CALL $MBPHS ; PHASE THE CLOCKS FOR THE LOAD.
026270 004737 026524' JSR PC,$MBPHS
10411 026274 103405 BCS 90$
10412 026276 010001 MOV R0,R1 ; GET DATA
10413 026300 012700 077000 MOV #.LDAR,R0 ; AND
10414 026304 CALLR $DFWR ; STORE IN THE AR.
026304 000137 013020' JMP $DFWR
10415 ;
10416 026310 90$:
10417 026310 RETURN
026310 000207 RTS PC
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1110 12-OCT-79 14:10 PAGE 228
STPKL -- HALT THE KL CPU
10419 .SBTTL STPKL -- HALT THE KL CPU
10420 ;+
10421 ; GET THE KL INTO THE HALT LOOP. THIS IS DONE MERCIFULLY IN CASE
10422 ; IT IS RUNNING.
10423 ;
10424 ; NO INPUTS.
10425 ;
10426 ; OUTPUTS:
10427 ; CARRY IS SET IF UNABLE TO COMPLY, AND ERROR MESSAGE
10428 ; IS DISPLAYED.
10429 ;-
10430
10431 026312 STPKL:
10432 026312 TRACK HA
026312 004037 026324' JSR R0,64$
026316 040510 .WORD "HA
026320 000000 .WORD
026322 000000 .WORD
026324 004737 022032' 64$: JSR PC,$TRACK
026330 012600 MOV (SP)+,R0
10433 026332 PUSH <R0,R1> ; SAVE R0 AND R1
026332 010046 MOV R0,-(SP)
026334 010146 MOV R1,-(SP)
10434 026336 012700 010000 MOV #.CLRUN,R0 ; CLEAR RUN
10435 026342 CALL $DFXC ; CLEAR RUN
026342 004737 013222' JSR PC,$DFXC
10436 026346 103455 BCS 90$
10437 026350 012700 000024 MOV #20.,R0 ; SET A WAIT VALUE
10438 026354 CALL $WTKL ; AND SEE IF WE FALL
026354 004737 026176' JSR PC,$WTKL
10439 026360 103037 BCC 20$ ; INTO THE HALT LOOP.
10440 026362 012701 000024 MOV #^D20,R1 ; LOOP COUNT TO R4
10441 026366 10$:
10442 026366 012700 000310 MOV #^D200,R0 ; BURST COUNT TO R0
10443 026372 CALL $BURST ; BURST THE CLOCK
026372 004737 026672' JSR PC,$BURST
10444 026376 103441 BCS 90$
10445 026400 CALL $DTRW1 ; READ DTE-20 DIAG 1
026400 004737 021674' JSR PC,$DTRW1
10446 026404 103436 BCS 90$
10447 026406 032700 001000 BIT #DS06,R0 ; ARE WE IN THE HALT LOOP NOW?
10448 026412 001022 BNE 20$ ; YES -- GO ON
10449 026414 077114 SOB R1,10$ ; NO -- TRY AGAIN
10450 026416 032737 000000G 000044' BIT #KL.KAC,.KLISV ; [TCO 4.2107] KEEP-ALIVE RETRY??
10451 026424 001031 BNE 80$ ; [TCO 4.2107] YES -- COMPLANI AND EXIT
10452 026426 CALL $KLMR ; NO -- KL IS IN TROUBLE - RESET
026426 004737 014350' JSR PC,$KLMR
10453 026432 103423 BCS 90$
10454 026434 012700 001000 MOV #.STRCL,R0 ; BY RESTARTING MICROCODE.
10455 026440 CALL $DFXC
026440 004737 013222' JSR PC,$DFXC
10456 026444 103416 BCS 90$
10457 026446 012700 001750 MOV #1000.,R0 ; WAIT FOR IT TO ENTER HALT LOOP
10458 026452 CALL $WTKL ; AND IF THIS FAILS,
026452 004737 026176' JSR PC,$WTKL
10459 026456 103414 BCS 80$ ; THEN DIE A MISERABLE DEATH.
10460 026460 20$:
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1110 12-OCT-79 14:10 PAGE 228-1
STPKL -- HALT THE KL CPU
10461 026460 012700 000000 MOV #.STPCL,R0 ; STOP THE CLOCK
10462 026464 CALL $DFXC
026464 004737 013222' JSR PC,$DFXC
10463 026470 103404 BCS 90$
10464 026472 012700 004000 MOV #.CECLK,R0 ; MAKES EBOX CLOCK FALSE
10465 026476 CALL $DFXC
026476 004737 013222' JSR PC,$DFXC
10466 026502 90$:
10467 026502 POP <R1,R0> ; RESTORE REGISTERS
026502 012601 MOV (SP)+,R1
026504 012600 MOV (SP)+,R0
10468 026506 RETURN ; TO CALLER
026506 000207 RTS PC
10469
10470 026510 80$:
10471 026510 PRINT #TXCHLE ; CANNOT FIND HALT LOOP !
026510 012700 005076' MOV #TXCHLE,R0
026514 004737 025164' JSR PC,$TTMSG
10472 026520 000261 SEC
10473 026522 000767 BR 90$
10474 ;
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1110 12-OCT-79 14:10 PAGE 229
$MBPHS -- PHASE THE KL CLOCKS
10476 .SBTTL $MBPHS -- PHASE THE KL CLOCKS
10477 ;+
10478 ; PHASE THE CLOCKS TO LOAD THE AR
10479 ; $MBPHS WAITS FOR THREE TEST POINTS TO MATCH UP AND
10480 ; THEN SETS UP FOR A CHANGE COMING A L. THIS MAKES
10481 ; THE AR LOA FUNCTION STRICTLY REPEATABLE.
10482 ;
10483 ; NO INPUTS
10484 ;
10485 ; OUTPUTS:
10486 ; CARRY IS SET IF ERROR OCCURS.
10487 ;-
10488
10489 026524 $MBPHS::
10490 026524 004537 021764' JSR R5,$RSAVE ; SAVE THE REGISTERS.
10491 026530 012702 000030 MOV #24.,R2 ; DO THIS A MAXIMUM OF 24 TIMES.
10492 026534 012701 002247' MOV #DXCBF,R1 ; SET UP A READ BUFFER.
10493 026540 10$:
10494 026540 012700 102000 MOV #<102*1000>,R0 ; READ 102
10495 026544 CALL $DFRD
026544 004737 012706' JSR PC,$DFRD
10496 026550 103432 BCS 80$
10497 026552 132711 000004 BITB #4,(R1) ; CHECK "CLK SYNCH H"
10498 026556 001421 BEQ 20$ ; MUST BE HIGH
10499 026560 012700 144000 MOV #<144*1000>,R0 ; READ 144
10500 026564 CALL $DFRD
026564 004737 012706' JSR PC,$DFRD
10501 026570 103422 BCS 80$
10502 026572 132761 000100 000003 BITB #100,3(R1) ; CHECK "CR ADR 10"
10503 026600 001010 BNE 20$ ; MUST BE EVEN
10504 026602 012700 164000 MOV #<164*1000>,R0 ; READ 164
10505 026606 CALL $DFRD
026606 004737 012706' JSR PC,$DFRD
10506 026612 103411 BCS 80$
10507 026614 132711 000040 BITB #40,(R1) ; CHECK "PHASE CHANGE COMING L"
10508 026620 001410 BEQ 30$ ; MUST BE LOW
10509 026622 20$:
10510 026622 012700 002000 MOV #.SSCLK,R0 ; STEP THE MBOX CLOCK.
10511 026626 CALL $DFXC
026626 004737 013222' JSR PC,$DFXC
10512 026632 103401 BCS 80$
10513 026634 077237 SOB R2,10$ ; AVOID TRYING AD INFINITUM.
10514 026636 80$:
10515 026636 000261 SEC ; ERROR....
10516 026640 90$:
10517 026640 RETURN
026640 000207 RTS PC
10518 026642 30$:
10519 026642 012700 162000 MOV #<162*1000>,R0 ; READ 162
10520 026646 CALL $DFRD
026646 004737 012706' JSR PC,$DFRD
10521 026652 103771 BCS 80$
10522 026654 132711 000010 BITB #10,(R1) ; CHECK "A CHANGE COMING A L"
10523 026660 001767 BEQ 90$ ; IF HIGH, THEN
10524 026662 012700 000012 MOV #10.,R0 ; WE MUST CLOCK THE MBOX
10525 026666 CALLR $BURST ; 10. TIMES.
026666 000137 026672' JMP $BURST
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1110 12-OCT-79 14:10 PAGE 229-1
$MBPHS -- PHASE THE KL CLOCKS
10526 ;
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1110 12-OCT-79 14:10 PAGE 230
$BURST -- BURST THE M-BOX CLOCK
10528 .SBTTL $BURST -- BURST THE M-BOX CLOCK
10529 ;+
10530 ; STEP THE M-BOX A GIVEN NUMBER OF TICKS USING THE BURST
10531 ; DIAGNOSTIC INSTRUCTION.
10532 ;
10533 ; INPUTS:
10534 ; R0 - NUMBER OF STEPS TO BURST.
10535 ;
10536 ; OUTPUTS:
10537 ; CARRY IS SET IF OPERATION WAS UNSUCCESSFUL.
10538 ;-
10539
10540 026672 004537 021764' $BURST:: JSR R5,$RSAVE
10541 026676 010002 MOV R0,R2 ; SAVE BURST COUNT.
10542 026700 012700 000000 MOV #.STPCL,R0 ; STOP CLOCK FOR SAFETY.
10543 026704 CALL $DFXC
026704 004737 013222' JSR PC,$DFXC
10544 026710 103464 BCS 90$
10545 026712 012701 002254' MOV #DXCBRC,R1
10546 026716 012711 000017 MOV #17,(R1)
10547 026722 162702 000377 SUB #255.,R2 ; MORE THAN 255 BURSTS ?
10548 026726 002422 BLT 20$
10549 026730 10$:
10550 026730 012700 042000 MOV #.LDBRR,R0 ; YES, DO A BURST
10551 026734 CALL $DFWR
026734 004737 013020' JSR PC,$DFWR
10552 026740 103450 BCS 90$
10553 026742 012700 043000 MOV #.LDBRL,R0 ; WITH 255, AND
10554 026746 CALL $DFWR
026746 004737 013020' JSR PC,$DFWR
10555 026752 103443 BCS 90$
10556 026754 012700 005000 MOV #.BRCLK,R0
10557 026760 CALL $DFXC
026760 004737 013222' JSR PC,$DFXC
10558 026764 103436 BCS 90$
10559 026766 162702 000377 SUB #255.,R2 ; COUNT DOWN UNTIL
10560 026772 002356 BGE 10$ ; LESS THAN 255.
10561 026774 20$:
10562 026774 062702 000377 ADD #255.,R2 ; ANY LEFT TO DO ?
10563 027000 001430 BEQ 90$
10564 027002 110211 MOVB R2,(R1) ; YES, DO LAST BURST.
10565 027004 142711 177760 BICB #^C17,(R1)
10566 027010 012700 042000 MOV #.LDBRR,R0
10567 027014 CALL $DFWR
027014 004737 013020' JSR PC,$DFWR
10568 027020 103420 BCS 90$
10569 027022 SR R2,4
027022 006202 ASR R2
027024 006202 ASR R2
027026 006202 ASR R2
027030 006202 ASR R2
10570 027032 110211 MOVB R2,(R1)
10571 027034 142711 177760 BICB #^C17,(R1)
10572 027040 012700 043000 MOV #.LDBRL,R0
10573 027044 CALL $DFWR
027044 004737 013020' JSR PC,$DFWR
10574 027050 103404 BCS 90$
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1110 12-OCT-79 14:10 PAGE 230-1
$BURST -- BURST THE M-BOX CLOCK
10575 027052 012700 005000 MOV #.BRCLK,R0
10576 027056 CALLR $DFXC
027056 000137 013222' JMP $DFXC
10577 ;
10578 027062 90$:
10579 027062 RETURN
027062 000207 RTS PC
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1110 12-OCT-79 14:10 PAGE 231
$BURST -- BURST THE M-BOX CLOCK
10581
10582 021320' .END $START
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1110 12-OCT-79 14:10 PAGE 231-1
SYMBOL TABLE
AAX = 000020 CIMNXM 001063R 003 DDLRAT 000570R 002 DLYCNT= 174400 DTNRB 002126R 002
APR = 000000 CLRMR = 000006 DDLRNA 000540R 002 DM = 000002 DTNXP 002120R 002
A.LULU= 000002 CM = 000004 DDNACE 000664R 002 DMABM = ****** GX DTTRLB 002134R 002
A.LUNA= 000004 CNUPE = 000002 DDNCRE 000610R 002 DMANXM= ****** GX DTTSTA 002176R 002
A.LUNU= 000006 CNVCHK 014264R DDNDEL 000712R 002 DMA2TS= ****** GX DTTWLB 002154R 002
BAF0 = ****** GX CNVWRD 014272R DDNENA 000634R 002 DMA20 = ****** GX DUPE = 000020
BITTBL= ****** GX COMCSE 004561RG 003 DDNGLN 000602R 002 DMRBF 001420R 002 DURE = 000004
BIT0 = 000001 CONBUT= 000012 DDNRAT 000726R 002 DMRKW2 001432R 002 DXBADR 002222R 002
BIT1 = 000002 CONFGR= ****** GX DDPDAI 000740R 002 DMRMMR 001400R 002 DXBCNM 002234R 002
BIT10 = 002000 CONFIG= ****** GX DDPDAO 000770R 002 DMRMOS 001425R 002 DXBDAT 002226R 002
BIT11 = 004000 CONO = 000004 DDPDEL 000754R 002 DMRMRT 001306R 002 DXBFNM 002202R 002
BIT12 = 010000 CONTI = ****** GX DDPRNA 001004R 002 DMRSRL= 000005 DXCAD 002242R 002
BIT13 = 020000 CR = 000015 DDXEXT 001034R 002 DMRSRT 001406R 002 DXCBF 002247R 002
BIT14 = 040000 CS.EXP= 177670 DEP = 010000 DNILPO 001460R 002 DXCBRC 002254R 002
BIT15 = 100000 CTLS = 000040 DEX = 000400 DNISYF 001510R 002 DXWRD1= 002000
BIT2 = 000004 CXMDOL 001400R 003 DEXDON= 000004 DNISYI 001470R 002 D$$H11= 000010
BIT3 = 000010 CXMIBM 001573R 003 DEXWD1= 174406 DNISYO 001500R 002 D1011 = 000040
BIT4 = 000020 CYCLS = 000002 DEXWD2= 174404 DNITTI 001440R 002 EBSEL = 000100
BIT5 = 000040 C.ACHE= 000000 DEXWD3= 174402 DNITTO 001450R 002 EBUSPC= 000020
BIT6 = 000100 DACAB 000000R 002 DFCABF 001107R 002 DON10C= 040000 EBUSPS= 000004
BIT7 = 000200 DACAD 000012R 002 DFCBF 001100R 002 DON10S= 100000 EDONES= 040000
BIT8 = 000400 DACBF 000015R 002 DFCFL2 001105R 002 DON11C= 000100 ED.PHY= 000200
BIT9 = 001000 DACBI 000005R 002 DFCFL3 001106R 002 DON11S= 000200 EF.CRI= ****** GX
BLKI = 000000 DATAI = 000001 DFCRFL 001060R 002 DPS4 = 040000 EF.PR1= ****** GX
BLKO = 000002 DATAO = 000003 DFCWFL 001070R 002 DQBFNM 001520R 002 EPTR = 000000
BMMSTB 000222RG 004 DATE = 000004 DFDABF 001121R 002 DQSAPR 001570R 002 ERRORX 017412R
BPARER= 000020 DBEFRC= ****** GX DFDDBF 001114R 002 DQSCBF 001540R 002 ERR10C= 010000
BRCLK = 000005 DCAPGM 000023R 002 DFEAD 001152R 002 DQSCF3 001554R 002 ERR10S= 020000
BY$$0 = 000000 DCARCA 000040R 002 DFEBF 001156R 002 DQSHWT 001576R 002 ERR11C= 000001
BY$$1 = 000000 DCARFL 000101R 002 DFEDPB 001126R 002 DRESET= 000100 ERR11S= 000002
BY$$2 = 000000 DCASIA 000033R 002 DFEEXB 001140R 002 DRSCEN 001612R 002 FITMEM= ****** GX
BY$$3 = 000000 DCAWRF 000064R 002 DFRRDB 001164R 002 DRSPEN 001624R 002 FM = 000010
BY$$4 = 000000 DCBADR 000126R 002 DFUNC = 000200 DRSPFR 001631R 002 FMRECN= ****** GX
CCA = 000014 DCBAPR 000202R 002 DFWBF 001222R 002 DRSPLD 001617R 002 FORPRO= 000020
CCFAIL= ****** GX DCBA17 000177R 002 DFWEDB 001210R 002 DRTBF 002000R 002 FS = 000001
CDD = 000020 DCBBF 000172R 002 DFWWDB 001176R 002 DRTBUF 001670R 002 F.TRCK= 000000
CECLK = 000004 DCBCBF 000150R 002 DFXXDB 001230R 002 DRTDTE 021730R GAPCNT= ****** GX
CFGEXT 005340R DCBCNT 000144R 002 DF.DMG= 000004 DRTSTA 001664R 002 GAPTAB= ****** GX
CFGINM 001116R 003 DCBDAT 000130R 002 DF.DMN= 000007 DRTWLB 001642R 002 G.LUBA= 000004
CFGINT 005066R DCBDBF 000164R 002 DF.DOR= 000001 DRTX71 001634R 002 G.LUCW= 000004
CFGMAC 001335R 003 DCBFIX 000146R 002 DF.EHG= 000010 DR.DTE= 000011 G.LUFB= 000003
CFGMNM 001264R 003 DCBFNM 000106R 002 DF.EHM= 000011 DSEND = 000004 G.LULU= 000002
CFGMOS 005476R DCFCFN 000220R 002 DF.EMG= 000005 DSTBF 002056R 002 G.LUNA= 000000
CFGXMC 003532R DCFLFN 000240R 002 DF.EMN= 000006 DSTCEN 002032R 002 G.LUNU= 000002
CFGXNM 001201R 003 DCFRJT 000260R 002 DF.KLR= 000012 DSTRT 002006R 002 HDTAB 002070R 002
CFIMIL 004144R DCOMST= 000001 DF.KLW= 000013 DSTRTL= 000004 HIBYTE= 177400
CFIMQ1 000526R 003 DCSRCA 000277R 002 DF.KLX= 000014 DST1B0 002037R 002 HRR = 000540
CFIMQ2 000646R 003 DCSSIA 000272R 002 DF.OFF= 000002 DST1B1 002044R 002 H.KCAC= ****** GX
CFIMQ3 000720R 003 DDCDAI 000304R 002 DF.ON = 000003 DST3B1 002051R 002 H.KEXT= ****** GX
CFIMQ4 000745R 003 DDCDAO 000320R 002 DF.PDP= 000016 DS04 = 004000 H.KMOS= ****** GX
CFMMQ1 000603R 003 DDCWAT 000340R 002 DF.PEX= 000015 DS05 = 002000 H.KPWR= ****** GX
CFXMQ1 001443R 003 DDDDEL 000406R 002 DGCFNM 001242R 002 DS06 = 001000 H.KUDF= ****** GX
CFXMQ2 001514R 003 DDDFNA 000356R 002 DGMFNM 001262R 002 DTECMD= 000451 IE.DFU= ****** GX
CHKIMC 004332R DDDRNA 000424R 002 DIAG1 = 174430 DTEFLG= 000444 IE.EBX= ****** GX
CHKMMC 004556R DDLACR 000512R 002 DIAG2 = 174432 DTEF11= 000450 IE.EOF= ****** GX
CHNPNT= 000001 DDLFNA 000462R 002 DIAG3 = 174436 DTEMTD= 000455 IE.NSF= ****** GX
CIMNXC 001032R 003 DDLGLN 000454R 002 DIKL10= 000010 DTEMTI= 000456 IFLOP = 100000
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1110 12-OCT-79 14:10 PAGE 231-2
SYMBOL TABLE
INIDMA= ****** GX LCFRBF 002720R PIDENT= 000000 STAT = 174434 TOBM = 000004
INTMOD= ****** GX LCFRCA 002730R PRI7 = 000340 STATUS= 000022 TOD = 000003
INTROF= 000010 LCFREF 002746R PROPNT= 000021 STPCLK= 000000 TOIP = 000002
INTRON= 000040 LCFRMM 002640R PRTOFF= 004000 STPKL 026312R TOIT = 000001
INTSON= 000001 LCFRTN 003066R PR0 = 000000 STRCLK= 000001 TO10 = 000200
INT10S= 000400 LCFSKP 002736R PR1 = 000040 SWITCH 002066R 002 TO10AD= 174420
INT11C= 002000 LCFWBF 003110R PR2 = 000100 SWR = 177570 TO10BC= 174414
INT11S= 004000 LCFWCA 003354R PR3 = 000140 SWSLLT= 100000 TO10BM= 000001
IO.ACE= ****** GX LCFWEF 003224R PR4 = 000200 SYFLUN= 000006 TO10DB= 000400
IO.ACR= ****** GX LCFWMM 003246R PR5 = 000240 SYILUN= 000004 TO10DN= 100000
IO.CRE= ****** GX LCTL = 000037 PR6 = 000300 SYOLUN= 000005 TO10DT= 174424
IO.DAC= ****** GX LDAR = 000077 PR7 = 000340 S.YIL = 001000 G TO10ER= 020000
IO.DEL= ****** GX LDEIDV 007000R PS = 177776 S.YOL = 001000 G TO11 = 000100
IO.ENA= ****** GX LDRER 007722R PSWW1 = 000005 TAB = 000011 TO11AD= 174422
IO.EXT= ****** GX LDWER 010164R PSWW10= 000014 TCAACD 000077R 003 TO11BC= 174416
IO.FNA= ****** GX LF = 000012 PSWW11= 000015 TCAACE 000026R 003 TO11BM= 020000
IO.RLB= ****** GX LFCSAB 011536R PSWW12= 000016 TCACEF 000000R 003 TO11DB= 004000
IO.RNA= ****** GX LFDWFN 011722R PSWW13= 000017 TCASCE 000051R 003 TO11DN= 000200
IO.RVB= ****** GX LFECKN 012616R PSWW2 = 000006 TCBBAD 000410R 003 TO11DT= 174426
IO.WLB= ****** GX LFEMVA 012572R PSWW3 = 000007 TCBDCW 000117R 003 TO11ER= 000002
IO.WVB= ****** GX LFWCKF 013140R PSWW4 = 000010 TCBDDW 000151R 003 TQBNFL 003245R 003
IS.CR = ****** GX LMRDFN 014546R PSWW5 = 000011 TCBFXF 000265R 003 TQBOOT 003130R 003
IS.ESC= ****** GX LOAD11= 000004 PSWW6 = 000012 TCBGOD 000416R 003 TQBWCF 003202R 003
I.10L = 000005 LPOLUN= 000003 PSWW7 = 000013 TCBMLF 000203R 003 TQCACH 003303R 003
JCOMM 002064R 002 LQBRBF 016000R PULSE = 000020 TCBMVF 000233R 003 TQCCEN 003350R 003
JRST = 000254 LQCCM 016356R QSIZE = 000023 TCBMVL 000314R 003 TQEXIT 003414R 003
JUMPE = 000322 LQRBPS 017750R Q.IOAE= 000012 TCBMVV 000351R 003 TQMCF0 003440R 003
KEEPBB= ****** GX LQSBPS 020270R Q.IOEF= 000006 TCBXOR 000424R 003 TQMCF1 003517R 003
KLI$$E= 000012 LQSCHE 020604R Q.IOFN= 000002 TCFCFA 000432R 003 TQMNM0 003604R 003
KLI$$F= 000102 LQSCHO 020560R Q.IOLU= 000004 TCFCFE 000465R 003 TQMPCA 003641R 003
KLI$$K= 000126 LQSHDW 020624R Q.IOPL= 000014 TDEDFU 002050R 003 TQRLMC 003746R 003
KLI$$V= 000012 LQSHWE 020314R Q.IOPR= 000007 TDEDR 001616R 003 TQSABO 004377R 003
KLPWRF= 000010 LQSHWO 021026R Q.IOSB= 000010 TDEIO 001710R 003 TQSCAC 004260R 003
KL.CFL= ****** GX LRSTKL 021222R RAMIS0= 010000 TDENSF 001774R 003 TQSCDH 004270R 003
KL.CFM= ****** GX LTNCHR 024146R RDATIM 014024RG TDRRDE 002075R 003 TQSCHN 004234R 003
KL.DEF= ****** GX LTNMV 024106R RDDONE= ****** GX TDRRLE 002112R 003 TQSDLG 004014R 003
KL.KAC= ****** GX LTNROL 024132R REPCON= ****** GX TDWRLE 002164R 003 TQSEXT 004206R 003
KL.LCA= ****** GX LTTDIR 025254R REPFIT= ****** GX TDWWRE 002146R 003 TQSHRZ 004113R 003
KL.LRM= ****** GX LXBRC 025422R RESDET= ****** GX TENAD1= 174410 TQSHWP 004123R 003
KL.LVB= ****** GX LXB5B 025400R RFMAD0= 100000 TENAD2= 174412 TQSKSN 004055R 003
KL.SPF= ****** GX L$$P20= 000002 RFMAD1= 040000 TFEDFL 002221R 003 TQSMDL 004100R 003
KL.VBD= ****** GX MABRD = ****** GX RFMAD2= 020000 TFEEFL 002242R 003 TQSMMA 004432R 003
KL.VBN= ****** GX MA20 = ****** GX RFMAD3= 010000 TFREMS 002263R 003 TQSMMO 004156R 003
LCARPT 000754R MBINI = ****** GX RM = 000010 TFWEMS 002304R 003 TQSWRN 004344R 003
LCBCRM 001322R MB20 = ****** GX RTFERR 014244R TFXEMS 002326R 003 TROCT 023606R
LCBDRM 001652R MF20 = ****** GX RTFERX 014254R TGCNFL 002352R 003 TRSPRF 004510R 003
LCBFL 002312R MPE11 = 001000 RTFXIT 014260R TGMNFL 002421R 003 TRSRSM 004544R 003
LCBRC 001222R MXTYP = 000003 R$$11D= 000001 TGTCKE 002471R 003 TRTBTF 004644R 003
LCBRME 002172R NULSTP= 000040 SCD = 000040 TGTIFF 002561R 003 TRTEND 004751R 003
LCBVFY 002246R NUPE = 000002 SECLK = 000003 TGTNFL 002533R 003 TRTFME 004674R 003
LCBVR 002344R PAG = 000010 SETIMF 000270R 002 TGTRFE 002623R 003 TRTMMF 004606R 003
LCB3W 001172R PAGE = 001000 SETMMF 000271R 002 TMFLNM= ****** GX TSTBSM 004753R 003
LCB6W 001200R PCERRM 003107R 003 SETMR = 000007 TMRMFL 002661R 003 TTA 002100R 002
LCFCPY 002646R PERCLR= 001000 SETRUN= 000011 TNINDV 002707R 003 TTB 002104R 002
LCFERR 003074R PGBTS = 000777 SETZ = 000400 TNIN55 002734R 003 TTBEL 005013R 003
LCFNXT 002614R PHYS = 100000 SPC = 000040 TNIPRI 002772R 003 TTILUN= 000001
LCFPRG 003070R PI = 000004 SSCLK = 000002 TNIVER 003056R 003 TTJ 002114R 002
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1110 12-OCT-79 14:10 PAGE 231-3
SYMBOL TABLE
TTOLUN= 000002 $DLGCT 017416RG $RDRAM 011736RG $ZERAC 000112RG .LCRM2= 056000
TTP 002110R 002 $DLGCV 021420RG $READ 007736RG $$ = 000037 .LCRM3= 055000
TTSLS 005012R 003 $DLGEN 017774RG $READB 007662RG $$APRI= 000000 .LCRM4= 054000
TTSPC 005010R 003 $DLGEX 016534RG $READC 007460RG $$RDER= 000004 .LCRM5= 053000
TTTAB 005011R 003 $DLGIM 017442RG $READS 007516RG $$SBDI= 000004 .LDAR = 077000
TTTNLN 005014R 003 $DLGMB 017456RG $READW 007566RG $$$ARG= 000011 .LDBRL= 043000
TTTPR 000207R 002 $DLGMF 017452RG $RP04 = 000001 $$$OST= 000014 .LDBRR= 042000
TTTPRE 005022R 003 $DLGMM 016654RG $RSAVE 021764RG $$$T1 = 000014 .LDCK1= 046000
TTTPRP 005016R 003 $DLGMV 021446RG $RX11 = 000001 .BRCLK= 005000 .LDCK2= 047000
TXBIMM 005032R 003 $DLGMX 021452RG $SBDIA= 000002 .BTADR 000462RG 004 .LDDIS= 045000
TXCHLE 005076R 003 $DLGRM 017506RG $SETCA 000356RG .BTSW 000042RG 004 .LDRJD= 064000
TXCSFL 005126R 003 $DLGRV 021460RG $SETFN 006546RG .CACHN 000051RG 004 .LDRJV= 063000
TYPNUM= ****** GX $DLGXM 017446RG $SETIM 004320RG .CASW 000035RG 004 .LDRM1= 060000
T.TIL = 000040 G $DLMB1 017462RG $SETMM 004544RG .CECLK= 004000 .LDRM2= 061000
T.TOL = 000111 G $DLMB2 017470RG $START 021320RG .CFGTB 000120RG 004 .LDRM3= 062000
UNASG1= 000032 $DLWCF 015652RG $STRKL 026006RG .CFMRV 000220RG 004 .LDSEL= 044000
UNASG2= 000033 $DPOS 012336RG $SWEEP 005744RG .CKSW 000033RG 004 .MEMRS= 076000
UNASG3= 000034 $DPOST 012320RG $TCRLF 025060RG .CLRMR= 006000 .MFCT 000040RG 004
UNASG4= 000035 $DSPPT 017136RG $TDB2C 024200RG .CLRUN= 010000 .MFSW 000037RG 004
UNASG5= 000036 $DSW = ****** GX $TDB2I 022776RG .COMEF= ****** GX .NCACH 000050RG 004
UNASG6= 000037 $DTE = 000001 $TDB2O 024162RG .CONBT= 012000 .NOERR= ****** GX
WEP = 000010 $DTRWS 021712RG $TDI2B 023114RG .CPUSN= ****** GX .PCAB1= 150000
W.10L = 000005 $DTRW1 021674RG $TENST 022246RG .CSHRG= 164000 .PCAB2= 151000
XCONMP= ****** GX $DTRW2 021702RG $TENS1 022254RG .CTLTP 000056RG 004 .PCAB3= 152000
XCT = 000256 $DTRW3 021722RG $TOP20= 000001 .DATE3= ****** GX .PCAB4= 153000
ZSTOP = 040000 $ENTER 007176RG $TRACK 022032RG .DBSW 000031RG 004 .RCRM1= 147000
$ACRAM 011430RG $ERROR 021572RG $TRB2F 022556RG .DCSW 000027RG 004 .RCRM2= 146000
$ADRAM 012146RG $EXAM 012466RG $TRB2I 023020RG .DESW 000034RG 004 .RCRM3= 145000
$APRID= 000000 $EXAMD 012456RG $TRB2O 024212RG .DFBLK 000242RG 004 .RCRM4= 144000
$ASCIZ 022020RG $EXAMT 012440RG $TRB2R 024456RG .DFRBK 000250RG 004 .RCSPF= 141000
$BURST 026672RG $EXBLD 025264RG $TRCRM 023224RG .DFRG1 000256RG 004 .RDJ14= 134000
$CD11 = 000001 $EXCT 025716RG $TRDRM 023370RG .DFRG2 000260RG 004 .RDJ71= 135000
$CFGBT 021500RG $EXIT 021602RG $TRF2B 022660RG .DFRG3 000264RG 004 .RDMAB= 133000
$CFGCA 021424RG $EXIT1 021610RG $TRI2B 023136RG .DFSTA 000262RG 004 .SECLK= 003000
$CFGMM 017156RG $EXTEN 010504RG $TRO2B 024274RG .DFWBK 000242RG 004 .SETMR= 007000
$CFGRM 021412RG $FATAL 021616RG $TRR2B 024350RG .DLGSW 000024RG 004 .SETRN= 011000
$CFGXX 017330RG $FE = 000001 $TTBEL 025040RG .DMSW 000030RG 004 .SNSAV 000046RG 004
$CFIMD 003474RG $FILE 002520RG $TTDMS 025116RG .DREG 000256RG 004 .SPSAV 000022RG 004
$CFMMD 003442RG $F11 = 000001 $TTDWR 025230RG .DRLTC= 015000 .SSCLK= 002000
$CFXMD 006006RG $GETCA 013354RG $TTMSG 025164RG .DRSW 000026RG 004 .STPCL= 000000
$CHKIM 004326RG $GETMM 013554RG $TTRD 024642RG .DSACF= 066000 .STRCL= 001000
$CHKMM 004552RG $GETTF 014024RG $TTSPC 025030RG .DSIOJ= 065000 .SYATT 002614RG 004
$CLOSE 006320RG $INIT 014702RG $TTTAB 025050RG .DTEDT 000266RG 004 .SYFID= 002562RG 004
$CONFG 004756RG $IOERR 006610RG $TTWR 025244RG .EASW 000036RG 004 .SYFNB 002562RG 004
$DBDTE= 000001 $KLMR 014350RG $WCRAM 010546RG .EIOJA= 067000 .SYFNM= 002570RG 004
$DDFRD 012702RG $KLSR 014622RG $WDD22 023636RG .FEMOD= ****** GX .SYIBA 000500RG 004
$DDFWR 013014RG $LDAR 026256RG $WDD36 023750RG .FILSW 000041RG 004 .SYIBC 000502RG 004
$DDFXC 013216RG $LDNGO 000000RG $WDRAM 011556RG .GFNR = 102000 .SYIBF 000530RG 004
$DELET 006456RG $LOOKU 007024RG $WRD22 023666RG .HRDWR= ****** GX .SYIFN 000504RG 004
$DFPC 015256RG $LP20 = 000001 $WRD36 024000RG .INICL= 070000 .SYIRC 000476RG 004
$DFRD 012706RG $MAPMM 005700RG $WRITB 010274RG .IRLTC= 014000 .SYISW 000474RG 004
$DFWR 013020RG $MBPHS 026524RG $WRITC 010066RG .KLISV 000044RG 004 .SYIVB 000524RG 004
$DFXC 013222RG $MCBLD 001066RG $WRITE 010334RG .KLIWD= ****** GX .SYOBA 001532RG 004
$DH11 = 000001 $POWER 021132RG $WRITS 010130RG .KLREG 000230RG 004 .SYOBC 001534RG 004
$DLGBT 015456RG $PURGE 007366RG $WRITW 010200RG .LCRDL= 052000 .SYOBF 001562RG 004
$DLGBV 021454RG $RCRAM 011026RG $WTKL 026176RG .LCRDR= 051000 .SYOFN 001536RG 004
$DLGCA 016200RG $RDERA= 000000 $XCDT 000206RG .LCRM1= 057000 .SYORC 001530RG 004
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1110 12-OCT-79 14:10 PAGE 231-4
SYMBOL TABLE
.SYOSW 000475RG 004 .TPSHI 015412RG .TTOBF 000330RG 004 .WORK 000014RG 004 ..DTP2= ****** GX
.SYOVB 001556RG 004 .TRKSW 000032RG 004 .UFNSW 000025RG 004 .WRMBX= 071000 ..DTSP= ****** GX
.SYSTA 000470RG 004 .TTIBF 000270RG 004 .USRFN 000442RG 004 .ZERO 000000RG 004
. ABS. 000000 000
027064 001
DATA 002262 002
TEXT 005150 003
GLBL 002632 004
ERRORS DETECTED: 0
VIRTUAL MEMORY USED: 17396 WORDS ( 68 PAGES)
DYNAMIC MEMORY: 18820 WORDS ( 72 PAGES)
ELAPSED TIME: 00:09:19
,[50,20]KLIMON/CR/-SP=[50,30]KLIMON.TMP
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 1
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
AAX = 000020 #190-8730
APR = 000000 11-539 #55-1921 55-1943 55-1943 #58-2122 58-2141 58-2141 #190-8731 190-8747
190-8747 #219-10048 219-10066 219-10066
A.LULU = 000002 #150-6617 #150-6619 #150-6622 #150-6625 #150-6627 #150-6629
A.LUNA = 000004 #150-6617 #150-6619 #150-6622 #150-6625 #150-6627 #150-6629
A.LUNU = 000006 #150-6617 #150-6619 #150-6622 #150-6625 #150-6627 #150-6629
BAF0 = ****** GX 78-3471 78-3471 84-3806 84-3806
BITTBL = ****** GX 75-3167 77-3400 78-3506 84-3810
BIT0 = 000001 #4-176 #8-445 174-7819 190-8737
BIT1 = 000002 #4-176 #8-445 190-8735
BIT10 = 002000 #4-176 #8-445
BIT11 = 004000 #4-176 #8-445
BIT12 = 010000 #4-176 #8-445
BIT13 = 020000 #4-176 #8-445
BIT14 = 040000 #4-176 #8-445
BIT15 = 100000 #4-176 #8-445 61-2261 75-3084 75-3147 77-3390 78-3491 81-3646 82-3710
83-3762 88-3964 100-4463 102-4548 102-4550 118-5078 143-6113 148-6440 148-6441
148-6448 148-6452 148-6453 168-7448
BIT2 = 000004 #4-176 #8-445 190-8733
BIT3 = 000010 #4-176 #8-445 190-8736
BIT4 = 000020 #4-176 #8-445 190-8730
BIT5 = 000040 #4-176 #8-445
BIT6 = 000100 #4-176 #8-445
BIT7 = 000200 #4-176 #8-445
BIT8 = 000400 #4-176 #8-445
BIT9 = 001000 #4-176 #8-445
BLKI = 000000 11-538 11-540 #58-2123 58-2141 58-2141
BLKO = 000002 11-536 #55-1922 55-1943 55-1943
BMMSTB 000222 RG 82-3720 88-3997 #183-8318
BPARER = 000020 #4-176 #8-445
BRCLK = 000005 #11-531
BY$$0 = 000000 #51-1747 51-1747 51-1747 #51-1747 51-1747 51-1747 #51-1747 51-1747 51-1747
#51-1747 51-1747 51-1747 #51-1747 51-1747 51-1747 #51-1747 51-1747 51-1747
#51-1747 51-1747 #51-1748 51-1748 51-1748 #51-1748 51-1748 #51-1749 51-1749
51-1749 #51-1749 51-1749 #51-1750 51-1750 51-1750 #51-1750 51-1750 #55-1937
55-1937 55-1937 #55-1937 55-1937 #55-1938 55-1938 55-1938 #55-1938 55-1938
#55-1939 55-1939 55-1939 #55-1939 55-1939 #55-1940 55-1940 55-1940 #55-1940
55-1940 #55-1941 55-1941 55-1941 #55-1941 55-1941 #55-1942 55-1942 55-1942
#55-1942 55-1942 #55-1943 55-1943 55-1943 #55-1943 55-1943 #55-1944 55-1944
55-1944 #55-1944 55-1944 #58-2139 58-2139 58-2139 #58-2139 58-2139 #58-2140
58-2140 58-2140 #58-2140 58-2140 58-2140 #58-2140 58-2140 #58-2141 58-2141
58-2141 #58-2141 58-2141 58-2141 #58-2141 58-2141 #85-3855 85-3855 85-3855
#85-3855 85-3855 #85-3856 85-3856 85-3856 #85-3856 85-3856 #120-5141 120-5141
120-5141 #120-5141 120-5141 #120-5144 120-5144 120-5144 #120-5144 120-5144 #124-5383
124-5383 124-5383 #124-5383 124-5383 #124-5384 124-5384 124-5384 #124-5384 124-5384
#128-5578 128-5578 128-5578 #128-5578 128-5578 #128-5580 128-5580 128-5580 #128-5580
128-5580 #134-5815 134-5815 134-5815 #134-5815 134-5815 #148-6458 148-6458 148-6458
#148-6458 148-6458 148-6458 #148-6458 148-6458 #148-6467 148-6467 148-6467 #148-6467
148-6467 #148-6468 148-6468 148-6468 #148-6468 148-6468 148-6468 #148-6468 148-6468
#148-6469 148-6469 148-6469 #148-6469 148-6469 #171-7626 171-7626 171-7626 #171-7626
171-7626 #176-7987 176-7987 176-7987 #176-7987 176-7987 176-7987 #176-7987 176-7987
176-7987 #176-7987 176-7987 176-7987 #176-7987 176-7987 176-7987 #176-7987 176-7987
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 2
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
176-7987 #176-7987 176-7987 #176-7989 176-7989 176-7989 #176-7989 176-7989 #176-7990
176-7990 176-7990 #176-7990 176-7990 176-7990 #176-7990 176-7990 #176-7991 176-7991
176-7991 #176-7991 176-7991 176-7991 #176-7991 176-7991 #181-8171 181-8171 181-8171
#181-8171 181-8171 181-8171 #181-8171 181-8171 #181-8181 181-8181 181-8181 #181-8181
181-8181 #190-8747 190-8747 190-8747 #190-8747 190-8747 190-8747 #190-8747 190-8747
190-8747 #190-8747 190-8747 190-8747 #190-8747 190-8747 190-8747 #190-8747 190-8747
190-8747 #190-8747 190-8747 #190-8748 190-8748 190-8748 #190-8748 190-8748 190-8748
#190-8748 190-8748 190-8748 #190-8748 190-8748 190-8748 #190-8748 190-8748 190-8748
#190-8748 190-8748 #190-8749 190-8749 190-8749 #190-8749 190-8749 #190-8750 190-8750
190-8750 #190-8750 190-8750 #190-8754 190-8754 190-8754 #190-8754 190-8754 190-8754
#190-8754 190-8754 190-8754 #190-8754 190-8754 190-8754 #190-8754 190-8754 190-8754
#190-8754 190-8754 190-8754 #190-8754 190-8754 #190-8757 190-8757 190-8757 #190-8757
190-8757 #190-8759 190-8759 190-8759 #190-8759 190-8759 #190-8761 190-8761 190-8761
#190-8761 190-8761 #190-8764 190-8764 190-8764 #190-8764 190-8764 #219-10066 219-10066
219-10066 #219-10066 219-10066 219-10066 #219-10066 219-10066 219-10066 #219-10066 219-10066
219-10066 #219-10066 219-10066 219-10066 #219-10066 219-10066 #223-10265 223-10265 223-10265
#223-10265 223-10265 #223-10267 223-10267 223-10267 #223-10267 223-10267 #223-10269 223-10269
223-10269 #223-10269 223-10269
BY$$1 = 000000 #51-1747 51-1747 51-1747 #51-1747 51-1747 51-1747 #51-1747 51-1747 51-1747
#51-1747 51-1747 51-1747 #51-1747 51-1747 51-1747 #51-1747 51-1747 51-1747
#51-1747 51-1747 #51-1748 51-1748 51-1748 #51-1748 51-1748 #51-1749 51-1749
51-1749 #51-1749 51-1749 #51-1750 51-1750 51-1750 #51-1750 51-1750 #55-1937
55-1937 55-1937 #55-1937 55-1937 #55-1938 55-1938 55-1938 #55-1938 55-1938
#55-1939 55-1939 55-1939 #55-1939 55-1939 #55-1940 55-1940 55-1940 #55-1940
55-1940 #55-1941 55-1941 55-1941 #55-1941 55-1941 #55-1942 55-1942 55-1942
#55-1942 55-1942 #55-1943 55-1943 55-1943 #55-1943 55-1943 #55-1944 55-1944
55-1944 #55-1944 55-1944 #58-2139 58-2139 58-2139 #58-2139 58-2139 #58-2140
58-2140 58-2140 #58-2140 58-2140 58-2140 #58-2140 58-2140 #58-2141 58-2141
58-2141 #58-2141 58-2141 58-2141 #58-2141 58-2141 #85-3855 85-3855 85-3855
#85-3855 85-3855 #85-3856 85-3856 85-3856 #85-3856 85-3856 #120-5141 120-5141
120-5141 #120-5141 120-5141 #120-5144 120-5144 120-5144 #120-5144 120-5144 #124-5383
124-5383 124-5383 #124-5383 124-5383 #124-5384 124-5384 124-5384 #124-5384 124-5384
#128-5578 128-5578 128-5578 #128-5578 128-5578 #128-5580 128-5580 128-5580 #128-5580
128-5580 #134-5815 134-5815 134-5815 #134-5815 134-5815 #148-6458 148-6458 148-6458
#148-6458 148-6458 148-6458 #148-6458 148-6458 #148-6467 148-6467 148-6467 #148-6467
148-6467 #148-6468 148-6468 148-6468 #148-6468 148-6468 148-6468 #148-6468 148-6468
#148-6469 148-6469 148-6469 #148-6469 148-6469 #171-7626 171-7626 171-7626 #171-7626
171-7626 #176-7987 176-7987 176-7987 #176-7987 176-7987 176-7987 #176-7987 176-7987
176-7987 #176-7987 176-7987 176-7987 #176-7987 176-7987 176-7987 #176-7987 176-7987
176-7987 #176-7987 176-7987 #176-7989 176-7989 176-7989 #176-7989 176-7989 #176-7990
176-7990 176-7990 #176-7990 176-7990 176-7990 #176-7990 176-7990 #176-7991 176-7991
176-7991 #176-7991 176-7991 176-7991 #176-7991 176-7991 #181-8171 181-8171 181-8171
#181-8171 181-8171 181-8171 #181-8171 181-8171 #181-8181 181-8181 181-8181 #181-8181
181-8181 #190-8747 190-8747 190-8747 #190-8747 190-8747 190-8747 #190-8747 190-8747
190-8747 #190-8747 190-8747 190-8747 #190-8747 190-8747 190-8747 #190-8747 190-8747
190-8747 #190-8747 190-8747 #190-8748 190-8748 190-8748 #190-8748 190-8748 190-8748
#190-8748 190-8748 190-8748 #190-8748 190-8748 190-8748 #190-8748 190-8748 190-8748
#190-8748 190-8748 #190-8749 190-8749 190-8749 #190-8749 190-8749 #190-8750 190-8750
190-8750 #190-8750 190-8750 #190-8754 190-8754 190-8754 #190-8754 190-8754 190-8754
#190-8754 190-8754 190-8754 #190-8754 190-8754 190-8754 #190-8754 190-8754 190-8754
#190-8754 190-8754 190-8754 #190-8754 190-8754 #190-8757 190-8757 190-8757 #190-8757
190-8757 #190-8759 190-8759 190-8759 #190-8759 190-8759 #190-8761 190-8761 190-8761
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 3
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
#190-8761 190-8761 #190-8764 190-8764 190-8764 #190-8764 190-8764 #219-10066 219-10066
219-10066 #219-10066 219-10066 219-10066 #219-10066 219-10066 219-10066 #219-10066 219-10066
219-10066 #219-10066 219-10066 219-10066 #219-10066 219-10066 #223-10265 223-10265 223-10265
#223-10265 223-10265 #223-10267 223-10267 223-10267 #223-10267 223-10267 #223-10269 223-10269
223-10269 #223-10269 223-10269
BY$$2 = 000000 #51-1747 51-1747 51-1747 #51-1747 51-1747 51-1747 #51-1747 51-1747 51-1747
#51-1747 51-1747 51-1747 #51-1747 51-1747 51-1747 #51-1747 51-1747 51-1747
#51-1747 51-1747 #51-1747 51-1747 #51-1747 51-1747 #51-1747 51-1747 #51-1747
51-1747 #51-1747 51-1747 #51-1747 51-1747 #51-1748 51-1748 #51-1748 51-1748
#51-1748 51-1748 #51-1749 51-1749 #51-1749 51-1749 #51-1750 51-1750 51-1750
#51-1750 51-1750 #51-1750 51-1750 #55-1937 55-1937 55-1937 #55-1937 55-1937
#55-1937 55-1937 #55-1938 55-1938 #55-1938 55-1938 #55-1938 55-1938 #55-1939
55-1939 #55-1939 55-1939 #55-1939 55-1939 #55-1940 55-1940 #55-1940 55-1940
#55-1940 55-1940 #55-1941 55-1941 #55-1941 55-1941 #55-1941 55-1941 #55-1942
55-1942 #55-1942 55-1942 #55-1942 55-1942 #55-1943 55-1943 #55-1943 55-1943
#55-1943 55-1943 #55-1944 55-1944 #55-1944 55-1944 #55-1944 55-1944 #58-2139
58-2139 58-2139 #58-2139 58-2139 #58-2139 58-2139 #58-2140 58-2140 #58-2140
58-2140 #58-2140 58-2140 #58-2141 58-2141 #58-2141 58-2141 #58-2141 58-2141
#58-2141 58-2141 #85-3855 85-3855 #85-3855 85-3855 #85-3855 85-3855 #85-3856
85-3856 #85-3856 85-3856 #85-3856 85-3856 #120-5141 120-5141 120-5141 #120-5141
120-5141 #120-5141 120-5141 #120-5144 120-5144 120-5144 #120-5144 120-5144 #120-5144
120-5144 #124-5383 124-5383 124-5383 #124-5383 124-5383 #124-5383 124-5383 #124-5384
124-5384 124-5384 #124-5384 124-5384 #124-5384 124-5384 #128-5578 128-5578 #128-5578
128-5578 #128-5580 128-5580 128-5580 #128-5580 128-5580 #128-5580 128-5580 #134-5815
134-5815 134-5815 #134-5815 134-5815 #134-5815 134-5815 #148-6458 148-6458 148-6458
#148-6458 148-6458 #148-6458 148-6458 #148-6458 148-6458 #148-6467 148-6467 148-6467
#148-6467 148-6467 #148-6467 148-6467 #148-6468 148-6468 148-6468 #148-6468 148-6468
#148-6468 148-6468 #148-6468 148-6468 #148-6469 148-6469 148-6469 #148-6469 148-6469
#148-6469 148-6469 #171-7626 171-7626 171-7626 #171-7626 171-7626 #171-7626 171-7626
#176-7987 176-7987 #176-7987 176-7987 #176-7987 176-7987 #176-7987 176-7987 #176-7987
176-7987 #176-7987 176-7987 #176-7987 176-7987 #176-7987 176-7987 #176-7989 176-7989
176-7989 #176-7989 176-7989 #176-7989 176-7989 #176-7990 176-7990 176-7990 #176-7990
176-7990 #176-7990 176-7990 #176-7990 176-7990 #176-7991 176-7991 #176-7991 176-7991
#176-7991 176-7991 #181-8171 181-8171 #181-8171 181-8171 #181-8171 181-8171 #181-8171
181-8171 #181-8181 181-8181 181-8181 #181-8181 181-8181 #181-8181 181-8181 #190-8747
190-8747 #190-8747 190-8747 #190-8747 190-8747 #190-8747 190-8747 #190-8747 190-8747
#190-8747 190-8747 #190-8747 190-8747 #190-8747 190-8747 #190-8748 190-8748 #190-8748
190-8748 #190-8748 190-8748 #190-8748 190-8748 #190-8748 190-8748 #190-8748 190-8748
#190-8748 190-8748 #190-8749 190-8749 #190-8749 190-8749 #190-8749 190-8749 #190-8750
190-8750 #190-8750 190-8750 #190-8750 190-8750 #190-8754 190-8754 #190-8754 190-8754
#190-8754 190-8754 #190-8754 190-8754 #190-8754 190-8754 #190-8754 190-8754 #190-8754
190-8754 #190-8754 190-8754 #190-8757 190-8757 190-8757 #190-8757 190-8757 190-8757
#190-8757 190-8757 190-8757 #190-8757 190-8757 190-8757 #190-8757 190-8757 190-8757
#190-8757 190-8757 190-8757 #190-8757 190-8757 #190-8757 190-8757 #190-8759 190-8759
190-8759 #190-8759 190-8759 190-8759 #190-8759 190-8759 190-8759 #190-8759 190-8759
190-8759 #190-8759 190-8759 190-8759 #190-8759 190-8759 190-8759 #190-8759 190-8759
#190-8759 190-8759 #190-8761 190-8761 190-8761 #190-8761 190-8761 190-8761 #190-8761
190-8761 190-8761 #190-8761 190-8761 190-8761 #190-8761 190-8761 190-8761 #190-8761
190-8761 190-8761 #190-8761 190-8761 #190-8761 190-8761 #190-8764 190-8764 190-8764
#190-8764 190-8764 #190-8764 190-8764 #219-10066 219-10066 #219-10066 219-10066 #219-10066
219-10066 #219-10066 219-10066 #219-10066 219-10066 #219-10066 219-10066 #219-10066 219-10066
#223-10265 223-10265 223-10265 #223-10265 223-10265 #223-10265 223-10265 #223-10267 223-10267
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 4
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
223-10267 #223-10267 223-10267 #223-10267 223-10267 #223-10269 223-10269 223-10269 #223-10269
223-10269 #223-10269 223-10269
BY$$3 = 000000 #51-1747 51-1747 51-1747 #51-1747 51-1747 51-1747 #51-1747 51-1747 51-1747
#51-1747 51-1747 51-1747 #51-1747 51-1747 51-1747 #51-1747 51-1747 51-1747
#51-1747 51-1747 #51-1748 51-1748 #51-1750 51-1750 51-1750 #51-1750 51-1750
#55-1937 55-1937 55-1937 #55-1937 55-1937 #55-1938 55-1938 #55-1939 55-1939
#55-1940 55-1940 #55-1941 55-1941 #55-1942 55-1942 #55-1943 55-1943 #55-1944
55-1944 #58-2139 58-2139 58-2139 #58-2139 58-2139 #58-2141 58-2141 #85-3855
85-3855 #85-3856 85-3856 #120-5141 120-5141 120-5141 #120-5141 120-5141 #120-5144
120-5144 120-5144 #120-5144 120-5144 #124-5383 124-5383 124-5383 #124-5383 124-5383
#124-5384 124-5384 124-5384 #124-5384 124-5384 #128-5580 128-5580 128-5580 #128-5580
128-5580 #134-5815 134-5815 134-5815 #134-5815 134-5815 #148-6458 148-6458 148-6458
#148-6458 148-6458 #148-6467 148-6467 148-6467 #148-6467 148-6467 #148-6468 148-6468
148-6468 #148-6468 148-6468 #148-6469 148-6469 148-6469 #148-6469 148-6469 #171-7626
171-7626 171-7626 #171-7626 171-7626 #176-7987 176-7987 #176-7989 176-7989 176-7989
#176-7989 176-7989 #176-7990 176-7990 176-7990 #176-7990 176-7990 #181-8171 181-8171
#181-8181 181-8181 181-8181 #181-8181 181-8181 #190-8747 190-8747 #190-8748 190-8748
#190-8749 190-8749 #190-8750 190-8750 #190-8754 190-8754 #190-8757 190-8757 190-8757
#190-8757 190-8757 190-8757 #190-8757 190-8757 190-8757 #190-8757 190-8757 190-8757
#190-8757 190-8757 190-8757 #190-8757 190-8757 190-8757 #190-8757 190-8757 #190-8759
190-8759 190-8759 #190-8759 190-8759 190-8759 #190-8759 190-8759 190-8759 #190-8759
190-8759 190-8759 #190-8759 190-8759 190-8759 #190-8759 190-8759 190-8759 #190-8759
190-8759 #190-8761 190-8761 190-8761 #190-8761 190-8761 190-8761 #190-8761 190-8761
190-8761 #190-8761 190-8761 190-8761 #190-8761 190-8761 190-8761 #190-8761 190-8761
190-8761 #190-8761 190-8761 #190-8764 190-8764 190-8764 #190-8764 190-8764 #219-10066
219-10066 #223-10265 223-10265 223-10265 #223-10265 223-10265 #223-10267 223-10267 223-10267
#223-10267 223-10267 #223-10269 223-10269 223-10269 #223-10269 223-10269
BY$$4 = 000000 #51-1747 51-1747 #51-1747 51-1747 #51-1747 51-1747 #51-1747 51-1747 #51-1747
51-1747 #51-1747 51-1747 #51-1747 51-1747 #51-1748 51-1748 #51-1750 51-1750
#51-1750 51-1750 #55-1937 55-1937 #55-1937 55-1937 #55-1938 55-1938 #55-1939
55-1939 #55-1940 55-1940 #55-1941 55-1941 #55-1942 55-1942 #55-1943 55-1943
#55-1944 55-1944 #58-2139 58-2139 #58-2139 58-2139 #58-2141 58-2141 #85-3855
85-3855 #85-3856 85-3856 #120-5141 120-5141 #120-5141 120-5141 #120-5144 120-5144
#120-5144 120-5144 #124-5383 124-5383 #124-5383 124-5383 #124-5384 124-5384 #124-5384
124-5384 #128-5580 128-5580 #128-5580 128-5580 #134-5815 134-5815 #134-5815 134-5815
#148-6458 148-6458 #148-6458 148-6458 #148-6467 148-6467 #148-6467 148-6467 #148-6468
148-6468 #148-6468 148-6468 #148-6469 148-6469 #148-6469 148-6469 #171-7626 171-7626
#171-7626 171-7626 #176-7987 176-7987 #176-7989 176-7989 #176-7989 176-7989 #176-7990
176-7990 #176-7990 176-7990 #181-8171 181-8171 #181-8181 181-8181 #181-8181 181-8181
#190-8747 190-8747 #190-8748 190-8748 #190-8749 190-8749 #190-8750 190-8750 #190-8754
190-8754 #190-8757 190-8757 #190-8757 190-8757 #190-8757 190-8757 #190-8757 190-8757
#190-8757 190-8757 #190-8757 190-8757 #190-8757 190-8757 #190-8759 190-8759 #190-8759
190-8759 #190-8759 190-8759 #190-8759 190-8759 #190-8759 190-8759 #190-8759 190-8759
#190-8759 190-8759 #190-8761 190-8761 #190-8761 190-8761 #190-8761 190-8761 #190-8761
190-8761 #190-8761 190-8761 #190-8761 190-8761 #190-8761 190-8761 #190-8764 190-8764
#190-8764 190-8764 #219-10066 219-10066 #223-10265 223-10265 #223-10265 223-10265 #223-10267
223-10267 #223-10267 223-10267 #223-10269 223-10269 #223-10269 223-10269
CCA = 000014 #55-1923 55-1938 55-1938 #85-3847 85-3855 85-3855
CCFAIL = ****** GX 167-7403 167-7411
CDD = 000020 #4-176 #8-445
CECLK = 000004 #11-528
CFGEXT 005340 R 80-3601 80-3601 #82-3699
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 5
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
CFGINM 001116 R #79-3577 81-3685
CFGINT 005066 R 80-3596 80-3596 #81-3624
CFGMAC 001335 R #79-3583 83-3749
CFGMNM 001264 R #79-3581 83-3787
CFGMOS 005476 R 80-3606 80-3606 #83-3740
CFGXMC 003532 R 75-3019 #75-3042
CFGXNM 001201 R #79-3579 82-3723
CFIMIL 004144 R 75-3192 #75-3214
CFIMQ1 000526 R #74-2986 75-3036 75-3203
CFIMQ2 000646 R #74-2990 75-3117
CFIMQ3 000720 R #74-2992 75-3121
CFIMQ4 000745 R #74-2994 75-3226
CFMMQ1 000603 R #74-2988 75-3018 75-3206
CFXMQ1 001443 R #87-3925 88-3946
CFXMQ2 001514 R #87-3927 88-3975
CHKIMC 004332 R 77-3345 #77-3356
CHKMMC 004556 R 78-3445 #78-3458
CHNPNT = 000001 #4-176 #8-445
CIMNXC 001032 R #76-3303 77-3364 78-3464
CIMNXM 001063 R #76-3305 77-3409 78-3511
CLRMR = 000006 #11-529
CM = 000004 #190-8733 191-8846
CNUPE = 000002 #4-176 #8-445
CNVCHK 014264 R 145-6333 145-6333 #146-6377
CNVWRD 014272 R 145-6311 145-6311 145-6318 145-6318 145-6324 145-6324 #146-6381
COMCSE 004561 RG 75-3070 75-3199 75-3258 88-3957 88-4004 156-6939 157-6976 160-7109 161-7155
163-7211 166-7326 170-7537 172-7692 #181-8185
CONBUT = 000012 #11-533
CONFGR = ****** GX *166-7358 *167-7395
CONFIG = ****** GX 167-7432 167-7432
CONO = 000004 #55-1924 55-1939 55-1939 #85-3848 85-3856 85-3856 #176-7976 176-7987 176-7987
#190-8732 190-8747 190-8747 190-8748 190-8748 190-8749 190-8749 190-8754 190-8754
#219-10049 219-10066 219-10066
CONTI = ****** GX 77-3371 77-3424 *77-3429 81-3656 83-3747
CR = 000015 #181-8156 189-8692 #214-9840 214-9858 217-9995
CS.EXP = 177670 #4-176 #8-445
CTLS = 000040 #8-408 8-409 72-2912 143-6109 168-7444 183-8310 183-8314
CXMDOL 001400 R #87-3923 88-3940
CXMIBM 001573 R #87-3929 88-4000
CYCLS = 000002 #4-176 #8-445
C.ACHE = 000000 #3-168 55-1918 67-2593 69-2689 69-2757 69-2773 69-2808 73-2923 85-3844
139-5982 159-7078 166-7329 170-7549 176-7986 179-8098 182-8222 182-8238 182-8259
183-8281 186-8477 190-8752 191-8805 220-10116
DACAB 000000 R #51-1747 *52-1786 52-1789 *52-1791 52-1793 *53-1824 53-1825
DACAD 000012 R #51-1749 52-1796 53-1831
DACBF 000015 R #51-1750 54-1870
DACBI 000005 R #51-1748 52-1792 53-1826
DATAI = 000001 #55-1925 55-1938 55-1938 #85-3849 85-3855 85-3855
DATAO = 000003 #51-1741 51-1748 51-1748 #190-8734 190-8750 190-8750
DATE = 000004 #4-176 #8-445
DBEFRC = ****** GX *166-7349 *167-7413
DCAPGM 000023 R #55-1936 56-1968
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 6
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
DCARCA 000040 R #55-1939
DCARFL 000101 R #55-1946 56-1990 56-2017 56-2019 56-2021 56-2023
DCASIA 000033 R #55-1938
DCAWRF 000064 R #55-1943 56-1973 56-2031
DCBADR 000126 R #58-2132 *61-2258 *61-2261 61-2264 62-2291 62-2299 63-2373 *63-2396 63-2405
63-2428
DCBAPR 000202 R #58-2141 65-2515
DCBA17 000177 R #58-2140 65-2519
DCBBF 000172 R #58-2139 65-2518
DCBCBF 000150 R #58-2136 62-2305 62-2334 62-2341 62-2347
DCBCNT 000144 R #58-2134 *60-2212 61-2265 *62-2319 *63-2394 *64-2458 64-2459
DCBDAT 000130 R #58-2133 60-2213
DCBDBF 000164 R #58-2137 63-2380 63-2410 63-2416 63-2422
DCBFIX 000146 R #58-2135 *62-2288 62-2317 *62-2320 62-2325 *62-2357 *63-2370 63-2392 *63-2395
63-2400 *63-2432
DCBFNM 000106 R #58-2128 60-2192
DCFCFN 000220 R #67-2580 69-2699 69-2706
DCFLFN 000240 R #67-2585 69-2803
DCFRJT 000260 R #67-2590 67-2599 69-2721
DCOMST = 000001 #4-176 #8-445
DCSRCA 000277 R #85-3856 86-3878
DCSSIA 000272 R #85-3855 86-3875
DDCDAI 000304 R #89-4047 90-4071
DDCDAO 000320 R #89-4048 90-4087
DDCWAT 000340 R 89-4048 #89-4049
DDDDEL 000406 R #91-4133 95-4274
DDDFNA 000356 R #91-4132 95-4270
DDDRNA 000424 R #91-4134 95-4279
DDLACR 000512 R #100-4463 101-4494
DDLFNA 000462 R #100-4462 101-4490
DDLGLN 000454 R #100-4461 101-4486
DDLRAT 000570 R 100-4463 #100-4465
DDLRNA 000540 R #100-4464 101-4506
DDNACE 000664 R #102-4550 103-4584
DDNCRE 000610 R #102-4548 103-4576
DDNDEL 000712 R #102-4551 103-4598
DDNENA 000634 R #102-4549 103-4580
DDNGLN 000602 R #102-4547 103-4572
DDNRAT 000726 R 102-4550 #102-4552
DDPDAI 000740 R #104-4636 105-4653
DDPDAO 000770 R #104-4638 105-4658
DDPDEL 000754 R #104-4637 105-4657
DDPRNA 001004 R #104-4639 105-4663
DDXEXT 001034 R #118-5078 119-5091
DEP = 010000 #4-176 #8-445
DEX = 000400 #4-176 #8-445
DEXDON = 000004 #4-176 #8-445
DEXWD1 = 174406 #4-176 #8-445
DEXWD2 = 174404 #4-176 #8-445
DEXWD3 = 174402 #4-176 #8-445
DFCABF 001107 R #120-5144 123-5331 *123-5347 *123-5349
DFCBF 001100 R #120-5141 121-5168 121-5176 *121-5182 121-5183 121-5184 *121-5184 *121-5199 *121-5200
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 7
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
121-5202 *121-5207 *121-5208 *121-5209 *121-5210 *121-5211 121-5212 122-5241 122-5245
122-5246 *122-5265 *122-5266 122-5267 122-5291 122-5292 122-5296
DFCFL2 001105 R #120-5142 122-5269 *122-5273 *122-5294
DFCFL3 001106 R #120-5143 122-5287 *122-5289 *122-5293
DFCRFL 001060 R #120-5132 122-5239
DFCWFL 001070 R #120-5136 121-5201
DFDABF 001121 R #124-5384 127-5510 127-5511 127-5534
DFDDBF 001114 R #124-5383 *125-5437 125-5438 126-5464
DFEAD 001152 R 128-5576 128-5577 #128-5578 129-5617 130-5660 131-5676 131-5681
DFEBF 001156 R 128-5576 128-5577 #128-5580 129-5612 129-5617 130-5660 130-5663
DFEDPB 001126 R #128-5576 129-5618
DFEEXB 001140 R #128-5577 130-5659
DFRRDB 001164 R #132-5738 *133-5763 133-5764 133-5765
DFUNC = 000200 #4-176 #8-445
DFWBF 001222 R 134-5814 #134-5815
DFWEDB 001210 R #134-5814 136-5869
DFWWDB 001176 R #134-5813 *135-5841 135-5851 135-5852
DFXXDB 001230 R #137-5914 *138-5946 138-5947 138-5948
DF.DMG = 000004 #4-176 #8-445
DF.DMN = 000007 #4-176 #8-445
DF.DOR = 000001 #4-176 #8-445
DF.EHG = 000010 #4-176 #8-445
DF.EHM = 000011 #4-176 #8-445
DF.EMG = 000005 #4-176 #8-445
DF.EMN = 000006 #4-176 #8-445
DF.KLR = 000012 #4-176 #8-445 132-5738
DF.KLW = 000013 #4-176 #8-445 134-5813
DF.KLX = 000014 #4-176 #8-445 137-5914
DF.OFF = 000002 #4-176 #8-445
DF.ON = 000003 #4-176 #8-445
DF.PDP = 000016 #4-176 #8-445 128-5576
DF.PEX = 000015 #4-176 #8-445 128-5577 134-5814
DGCFNM 001242 R #139-5986 140-6009
DGMFNM 001262 R #142-6085 143-6117
DIAG1 = 174430 #4-176 #8-445
DIAG2 = 174432 #4-176 #8-445
DIAG3 = 174436 #4-176 #8-445
DIKL10 = 000010 #4-176 #8-445
DLYCNT = 174400 #4-176 #8-445
DM = 000002 #190-8735 191-8846
DMABM = ****** GX *82-3734
DMANXM = ****** GX 82-3720 88-3998
DMA2TS = ****** GX 82-3714 88-3938
DMA20 = ****** GX 80-3599 88-3936 168-7469
DMRBF 001420 R #148-6467 149-6505
DMRKW2 001432 R 148-6438 #148-6469
DMRMMR 001400 R 148-6456 #148-6458
DMRMOS 001425 R #148-6468 149-6532
DMRMRT 001306 R #148-6439 149-6497
DMRSRL = 000005 #148-6466 149-6544
DMRSRT 001406 R #148-6461 148-6466 149-6545
DNILPO 001460 R #150-6621 151-6667
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 8
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
DNISYF 001510 R #150-6628 151-6676
DNISYI 001470 R #150-6624 151-6672
DNISYO 001500 R #150-6626 151-6674
DNITTI 001440 R #150-6616 151-6662
DNITTO 001450 R #150-6618 151-6664
DON10C = 040000 #4-176 #8-445 149-6493
DON10S = 100000 #4-176 #8-445
DON11C = 000100 #4-176 #8-445 149-6493
DON11S = 000200 #4-176 #8-445
DPS4 = 040000 #4-176 #8-445
DQBFNM 001520 R #155-6872 158-6998
DQSAPR 001570 R #171-7625 175-7868 175-7871 175-7874 175-7878
DQSCBF 001540 R #171-7621 176-7921 176-7937
DQSCF3 001554 R #171-7623 176-7925
DQSHWT 001576 R #171-7628 174-7820
DRESET = 000100 #4-176 #8-445 149-6490
DRSCEN 001612 R #176-7987 179-8104
DRSPEN 001624 R #176-7990 179-8111
DRSPFR 001631 R #176-7991 177-8021
DRSPLD 001617 R #176-7989 179-8108
DRTBF 002000 R #181-8180 189-8668 189-8679
DRTBUF 001670 R 181-8175 #181-8178 189-8651 189-8657 189-8694
DRTDTE 021730 R 187-8577 187-8581 187-8585 #187-8589
DRTSTA 001664 R 181-8175 #181-8176
DRTWLB 001642 R #181-8174 *189-8695 189-8696
DRTX71 001634 R #181-8170 186-8459
DR.DTE = 000011 #4-176 #8-445 128-5576 128-5577 132-5738 134-5813 134-5814 137-5914
DSEND = 000004 #4-176 #8-445
DSTBF 002056 R #190-8763 191-8841
DSTCEN 002032 R #190-8753
DSTRT 002006 R #190-8746 190-8751 191-8799
DSTRTL = 000004 #190-8751 191-8798
DST1B0 002037 R #190-8756 191-8821
DST1B1 002044 R #190-8758 191-8835
DST3B1 002051 R #190-8760 191-8825
DS04 = 004000 #4-176 #8-445
DS05 = 002000 #4-176 #8-445 225-10354
DS06 = 001000 #4-176 #8-445 131-5698 225-10348 226-10385 228-10447
DTECMD = 000451 #4-176 #8-445
DTEFLG = 000444 #4-176 #8-445
DTEF11 = 000450 #4-176 #8-445
DTEMTD = 000455 #4-176 #8-445
DTEMTI = 000456 #4-176 #8-445
DTNRB 002126 R #202-9348 207-9507
DTNXP 002120 R #202-9347
DTTRLB 002134 R #214-9850 215-9883
DTTSTA 002176 R 214-9850 214-9851 #214-9852 215-9884 215-9885
DTTWLB 002154 R #214-9851 *215-9880 *215-9881 215-9882 *215-9889 *215-9890 215-9891 *217-9999 *217-10000
*218-10015 *218-10016 218-10017
DUPE = 000020 #4-176 #8-445
DURE = 000004 #4-176 #8-445
DXBADR 002222 R #219-10061 220-10130
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 9
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
DXBCNM 002234 R #219-10065 220-10133
DXBDAT 002226 R #219-10063 220-10129
DXBFNM 002202 R #219-10056 220-10119
DXCAD 002242 R #223-10264 225-10327 225-10332
DXCBF 002247 R #223-10266 229-10492
DXCBRC 002254 R #223-10268 230-10545
DXWRD1 = 002000 #4-176 #8-445
D$$H11 = 000010 #1-45
D1011 = 000040 #4-176 #8-445
EBSEL = 000100 #4-176 #8-445
EBUSPC = 000020 #4-176 #8-445
EBUSPS = 000004 #4-176 #8-445
EDONES = 040000 #4-176 #8-445
ED.PHY = 000200 #8-401 128-5576 128-5577 134-5814
EF.CRI = ****** GX 151-6709
EF.PR1 = ****** GX 151-6701
EPTR = 000000 #4-176 #8-445
ERRORX 017412 R 167-7389 167-7429 #167-7437
ERR10C = 010000 #4-176 #8-445 149-6493
ERR10S = 020000 #4-176 #8-445
ERR11C = 000001 #4-176 #8-445 149-6493
ERR11S = 000002 #4-176 #8-445
FITMEM = ****** GX 167-7422 167-7422
FM = 000010 #190-8736 191-8846
FMRECN = ****** GX *167-7374 *167-7393
FORPRO = 000020 #4-176 #8-445
FS = 000001 #190-8737
F.TRCK = 000000 #3-170 121-5162 122-5231 123-5328 125-5402 126-5455 127-5509 129-5617 130-5660
133-5765 135-5852 138-5947 149-6486 149-6543 150-6620 151-6666 181-8173 182-8230
188-8632 215-9869 215-9897 224-10294 225-10326 226-10379 228-10432
GAPCNT = ****** GX 167-7424
GAPTAB = ****** GX 167-7426
G.LUBA = 000004 #100-4461 #102-4547
G.LULU = 000002 #100-4461 #102-4547
G.LUNA = 000000 100-4461 102-4547
HDTAB 002070 R #198-9143 200-9262
HIBYTE = 177400 #4-176 #8-445
HRR = 000540 #55-1926 55-1941 55-1941
H.KCAC = ****** GX 175-7884
H.KEXT = ****** GX 175-7895
H.KMOS = ****** GX 175-7889
H.KPWR = ****** GX 174-7811 174-7822
H.KUDF = ****** GX 174-7822
IE.DFU = ****** GX 98-4382
IE.EBX = ****** GX 136-5871
IE.EOF = ****** GX 117-5035 215-9887
IE.NSF = ****** GX 60-2219 69-2702 98-4378 101-4503 101-4507 140-6012 143-6120 145-6254 158-7001
220-10139
IFLOP = 100000 #4-176 #8-445
INIDMA = ****** GX 82-3705
INTMOD = ****** GX *81-3674
INTROF = 000010 #4-176 #8-445
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 10
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
INTRON = 000040 #4-176 #8-445
INTSON = 000001 #4-176 #8-445
INT10S = 000400 #4-176 #8-445
INT11C = 002000 #4-176 #8-445 149-6493
INT11S = 004000 #4-176 #8-445
IO.ACE = ****** GX 102-4550
IO.ACR = ****** GX 100-4463
IO.CRE = ****** GX 102-4548
IO.DAC = ****** GX 89-4047 89-4048 104-4636 104-4638
IO.DEL = ****** GX 91-4133 102-4551 104-4637
IO.ENA = ****** GX 102-4549
IO.EXT = ****** GX 118-5078
IO.FNA = ****** GX 91-4132 100-4462 151-6685
IO.RLB = ****** GX 214-9850
IO.RNA = ****** GX 91-4134 100-4464 104-4639
IO.RVB = ****** GX 111-4840
IO.WLB = ****** GX 181-8175 214-9851
IO.WVB = ****** GX 117-5025
IS.CR = ****** GX 215-9894
IS.ESC = ****** GX 215-9892
I.10L = 000005 #6-296 190-8751 191-8803
JCOMM 002064 R #198-9141 *200-9254 200-9273
JRST = 000254 #55-1927 55-1944 55-1944
JUMPE = 000322 #55-1928 55-1940 55-1940
KEEPBB = ****** GX *166-7296
KLI$$E = 000012 #2-135 150-6638 180-8119
KLI$$F = 000102 #3-165 58-2092 58-2092 74-2950 74-2950 76-3263 76-3263 79-3540 79-3540
87-3888 87-3888 141-6052 141-6052 144-6183 144-6183 150-6554 150-6554 150-6638
162-7160 162-7160 164-7240 164-7240 176-7943 176-7943 180-8119 180-8119
KLI$$K = 000126 #2-139 150-6638
KLI$$V = 000012 #2-134 150-6638 180-8119
KLPWRF = 000010 #4-176 #8-445
KL.CFL = ****** GX 160-7115 166-7362
KL.CFM = ****** GX 166-7344
KL.DEF = ****** GX 170-7543
KL.KAC = ****** GX 151-6670 186-8456 228-10450
KL.LCA = ****** GX 160-7112
KL.LRM = ****** GX 170-7541
KL.LVB = ****** GX 158-7005 167-7409 220-10113
KL.SPF = ****** GX 163-7221 166-7294 167-7408 170-7543
KL.VBD = ****** GX 167-7408 191-8819 191-8829
KL.VBN = ****** GX 167-7409 191-8817
LCARPT 000754 R 56-2056 #57-2065
LCBCRM 001322 R 61-2263 #62-2288
LCBDRM 001652 R 61-2260 #63-2370 63-2398
LCBFL 002312 R 60-2222 61-2273 62-2359 63-2434 #64-2491
LCBRC 001222 R 60-2216 #61-2256 62-2324 63-2399
LCBRME 002172 R 62-2332 62-2332 63-2407 63-2407 #64-2448
LCBVFY 002246 R 62-2337 62-2337 62-2340 62-2340 62-2350 62-2350 63-2412 63-2412 63-2415
63-2415 63-2425 63-2425 #64-2474
LCBVR 002344 R 61-2272 #65-2504
LCB3W 001172 R #60-2235 63-2371 63-2371
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 11
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
LCB6W 001200 R #60-2237 62-2300 62-2300
LCFCPY 002646 R 69-2719 #69-2732 69-2754 69-2763
LCFERR 003074 R 69-2703 69-2708 #69-2822
LCFNXT 002614 R #69-2714 69-2742 69-2771
LCFPRG 003070 R 69-2716 69-2736 69-2739 69-2744 69-2746 69-2770 69-2781 69-2790 69-2795
69-2798 69-2800 #69-2820
LCFRBF 002720 R 67-2598 #69-2752
LCFRCA 002730 R 67-2594 #69-2761
LCFREF 002746 R 67-2591 69-2710 #69-2777
LCFRMM 002640 R 67-2592 #69-2726
LCFRTN 003066 R 69-2686 69-2696 #69-2815
LCFSKP 002736 R 69-2728 69-2755 #69-2768
LCFWBF 003110 R 69-2794 69-2794 #70-2837
LCFWCA 003354 R 69-2780 69-2780 #73-2925
LCFWEF 003224 R 69-2797 69-2797 #71-2872
LCFWMM 003246 R 69-2789 69-2789 #72-2888
LCTL = 000037 #8-409
LDAR = 000077 #11-534
LDEIDV 007000 R 98-4404 98-4404 #99-4421
LDRER 007722 R 107-4723 109-4779 110-4805 #110-4817
LDWER 010164 R 113-4908 114-4934 #114-4945 115-4971 116-4998
LF = 000012 #181-8157 189-8693 #214-9841 214-9858 217-9996
LFCSAB 011536 R 123-5332 123-5332 123-5340 123-5340 #123-5346
LFDWFN 011722 R 125-5422 125-5432 125-5432 #125-5437
LFECKN 012616 R 129-5610 129-5610 130-5657 130-5657 #131-5688
LFEMVA 012572 R 129-5609 129-5609 130-5656 130-5656 #131-5676
LFWCKF 013140 R 135-5838 135-5838 #136-5865
LMRDFN 014546 R 149-6502 149-6502 149-6515 149-6515 #149-6521
LOAD11 = 000004 #4-176 #8-445
LPOLUN = 000003 #8-404 181-8175
LQBRBF 016000 R 156-6916 156-6916 #158-6997
LQCCM 016356 R 160-7104 #161-7122 161-7156
LQRBPS 017750 R 170-7555 170-7555 #170-7575 170-7578
LQSBPS 020270 R 172-7719 172-7719 #173-7762 173-7766
LQSCHE 020604 R 172-7733 172-7733 174-7784 174-7786 #174-7848
LQSCHO 020560 R 172-7737 172-7737 174-7790 #174-7839
LQSHDW 020624 R 172-7731 172-7731 174-7785 174-7785 #175-7862
LQSHWE 020314 R 172-7704 172-7704 #174-7781
LQSHWO 021026 R 175-7869 175-7869 #176-7917
LRSTKL 021222 R 177-8020 177-8020 #179-8097
LTNCHR 024146 R 205-9455 205-9455 206-9482 206-9482 206-9489 206-9489 #207-9545
LTNMV 024106 R 205-9449 205-9449 206-9477 206-9477 #207-9506
LTNROL 024132 R 205-9453 205-9453 206-9480 206-9480 206-9487 206-9487 #207-9525 207-9529
LTTDIR 025254 R 217-10001 #218-10017
LXBRC 025422 R 220-10135 #221-10163 222-10229
LXB5B 025400 R #220-10148 222-10219 222-10219
L$$P20 = 000002 #1-39
MABRD = ****** GX *81-3678
MA20 = ****** GX 75-3028 80-3591 168-7472
MBINI = ****** GX 166-7293 166-7293
MB20 = ****** GX 75-3030 80-3593 168-7474
MF20 = ****** GX 75-3013 80-3604 167-7399
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 12
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
MPE11 = 001000 #4-176 #8-445
MXTYP = 000003 #67-2575 67-2599 69-2718
NULSTP = 000040 #4-176 #8-445
NUPE = 000002 #4-176 #8-445
PAG = 000010 #51-1742 51-1748 51-1748 #55-1929 55-1939 55-1939 #85-3850 85-3856 85-3856
#176-7977 176-7987 176-7987 #190-8738 190-8749 190-8749 190-8750 190-8750 190-8754
190-8754
PAGE = 001000 #219-10050 219-10051
PCERRM 003107 R #152-6747 153-6806
PERCLR = 001000 #4-176 #8-445 149-6493
PGBTS = 000777 #219-10051 221-10177 222-10202 222-10206
PHYS = 100000 #4-176 #8-445
PI = 000004 11-537 11-541 #190-8739 190-8748 190-8748
PIDENT = 000000 #4-176 #8-445
PRI7 = 000340 #4-176 #8-445
PROPNT = 000021 #4-176 #8-445
PRTOFF = 004000 #4-176 #8-445
PR0 = 000000 #4-176 #8-445
PR1 = 000040 #4-176 #8-445
PR2 = 000100 #4-176 #8-445
PR3 = 000140 #4-176 #8-445
PR4 = 000200 #4-176 #8-445
PR5 = 000240 #4-176 #8-445
PR6 = 000300 #4-176 #8-445
PR7 = 000340 #4-176 #8-445
PS = 177776 #4-176 #8-445
PSWW1 = 000005 #4-176 #8-445
PSWW10 = 000014 #4-176 #8-445
PSWW11 = 000015 #4-176 #8-445
PSWW12 = 000016 #4-176 #8-445
PSWW13 = 000017 #4-176 #8-445
PSWW2 = 000006 #4-176 #8-445
PSWW3 = 000007 #4-176 #8-445
PSWW4 = 000010 #4-176 #8-445
PSWW5 = 000011 #4-176 #8-445
PSWW6 = 000012 #4-176 #8-445
PSWW7 = 000013 #4-176 #8-445
PULSE = 000020 #4-176 #8-445
QSIZE = 000023 #4-176 #8-445
Q.IOAE = 000012 #89-4047 #89-4048 #91-4132 #91-4133 #91-4134 #100-4462 #100-4463 #100-4464 #102-4548
#102-4549 #102-4550 #102-4551 #104-4636 #104-4637 #104-4638 #104-4639 #118-5078 #181-8175
#214-9850 #214-9851
Q.IOEF = 000006 #89-4047 #89-4048 #91-4132 #91-4133 #91-4134 #100-4462 #100-4463 #100-4464 #102-4548
#102-4549 #102-4550 #102-4551 #104-4636 #104-4637 #104-4638 #104-4639 #118-5078 #181-8175
#214-9850 #214-9851
Q.IOFN = 000002 #89-4047 #89-4048 #91-4132 #91-4133 #91-4134 #100-4462 #100-4463 #100-4464 #102-4548
#102-4549 #102-4550 #102-4551 #104-4636 #104-4637 #104-4638 #104-4639 #118-5078 #181-8175
#214-9850 #214-9851
Q.IOLU = 000004 #89-4047 #89-4048 #91-4132 #91-4133 #91-4134 #100-4462 #100-4463 #100-4464 #102-4548
#102-4549 #102-4550 #102-4551 #104-4636 #104-4637 #104-4638 #104-4639 #118-5078 #181-8175
#214-9850 #214-9851
Q.IOPL = 000014 #89-4047 #89-4048 #91-4132 #91-4133 #91-4134 #100-4462 #100-4463 #100-4464 #102-4548
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 13
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
#102-4549 #102-4550 #102-4551 #104-4636 #104-4637 #104-4638 #104-4639 #118-5078 #181-8175
*189-8695 #214-9850 #214-9851 *215-9880 *215-9881 *215-9889 *215-9890 *217-9999 *217-10000
*218-10015 *218-10016
Q.IOPR = 000007 #89-4047 #89-4048 #91-4132 #91-4133 #91-4134 #100-4462 #100-4463 #100-4464 #102-4548
#102-4549 #102-4550 #102-4551 #104-4636 #104-4637 #104-4638 #104-4639 #118-5078 #181-8175
#214-9850 #214-9851
Q.IOSB = 000010 #89-4047 #89-4048 #91-4132 #91-4133 #91-4134 #100-4462 #100-4463 #100-4464 #102-4548
#102-4549 #102-4550 #102-4551 #104-4636 #104-4637 #104-4638 #104-4639 #118-5078 #181-8175
#214-9850 #214-9851
RAMIS0 = 010000 #4-176 #8-445
RDATIM 014024 RG #145-6244
RDDONE = ****** GX *81-3679
REPCON = ****** GX 167-7376 167-7376
REPFIT = ****** GX 167-7423 167-7423
RESDET = ****** GX 167-7375 167-7375 167-7396 167-7396 167-7414 167-7414 167-7421 167-7421
RFMAD0 = 100000 #4-176 #8-445
RFMAD1 = 040000 #4-176 #8-445
RFMAD2 = 020000 #4-176 #8-445
RFMAD3 = 010000 #4-176 #8-445
RM = 000010 #4-176 #8-445
RTFERR 014244 R 145-6285 145-6299 #146-6350 146-6387
RTFERX 014254 R 145-6292 145-6338 #146-6355
RTFXIT 014260 R 145-6257 145-6312 145-6319 145-6325 145-6334 #146-6357
R$$11D = 000001 #1-48
SCD = 000040 #4-176 #8-445
SECLK = 000003 #11-527
SETIMF 000270 R #76-3298 *77-3344 *77-3352 77-3391 77-3427
SETMMF 000271 R #76-3300 *78-3444 *78-3451 78-3492 78-3522
SETMR = 000007 #11-530
SETRUN = 000011 #11-532
SETZ = 000400 #55-1930 55-1942 55-1942
SPC = 000040 #181-8158 189-8656
SSCLK = 000002 #11-526
STAT = 174434 #4-176 #8-445
STATUS = 000022 #4-176 #8-445
STPCLK = 000000 #11-524
STPKL 026312 R 227-10408 227-10408 #228-10431
STRCLK = 000001 #11-525
SWITCH 002066 R #198-9142 *200-9255 200-9287 *200-9289
SWR = 177570 #4-176 #8-445
SWSLLT = 100000 #4-176 #8-445
SYFLUN = 000006 #8-407 91-4132 91-4133 91-4134 100-4462 100-4464 102-4548 102-4549 104-4639
150-6629
SYILUN = 000004 #8-405 89-4047 100-4461 100-4463 104-4636 111-4840 150-6625 151-6685
SYOLUN = 000005 #8-406 89-4048 102-4547 102-4550 102-4551 104-4637 104-4638 117-5025 118-5078
150-6627
S.YIL = 001000 G 111-4840 #185-8387 185-8393 185-8401 185-8409
S.YOL = 001000 G 103-4592 114-4936 117-5025 117-5032 #185-8403 185-8417
TAB = 000011 #181-8159 189-8653
TCAACD 000077 R #55-1952 57-2065
TCAACE 000026 R #55-1950 57-2068
TCACEF 000000 R #55-1949 56-2057
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 14
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
TCASCE 000051 R #55-1951 57-2071
TCBBAD 000410 R #58-2152 62-2335 63-2411
TCBDCW 000117 R #58-2145 62-2331
TCBDDW 000151 R #58-2146 63-2406
TCBFXF 000265 R #58-2149 62-2327 63-2402
TCBGOD 000416 R #58-2153 62-2339 63-2414
TCBMLF 000203 R #58-2147 64-2491
TCBMVF 000233 R #58-2148 64-2494
TCBMVL 000314 R #58-2150 65-2506
TCBMVV 000351 R #58-2151 65-2508
TCBXOR 000424 R #58-2154 62-2348 63-2423
TCFCFA 000432 R #67-2603 69-2806
TCFCFE 000465 R #67-2605 69-2823
TDEDFU 002050 R #97-4353 98-4380
TDEDR 001616 R #97-4350 98-4371
TDEIO 001710 R #97-4351 98-4384
TDENSF 001774 R #97-4352 98-4376
TDRRDE 002075 R #106-4701 111-4849
TDRRLE 002112 R #106-4703 110-4818
TDWRLE 002164 R #112-4889 114-4946
TDWWRE 002146 R #112-4887 117-5041
TENAD1 = 174410 #4-176 #8-445
TENAD2 = 174412 #4-176 #8-445
TFEDFL 002221 R #128-5583 129-5620
TFEEFL 002242 R #128-5584 130-5668
TFREMS 002263 R #132-5741 133-5776
TFWEMS 002304 R #134-5818 135-5854
TFXEMS 002326 R #137-5917 138-5951
TGCNFL 002352 R #139-5991 140-6014
TGMNFL 002421 R #142-6091 143-6122
TGTCKE 002471 R #144-6216 145-6337
TGTIFF 002561 R #144-6220 145-6291
TGTNFL 002533 R #144-6218 145-6256
TGTRFE 002623 R #144-6222 146-6351
TMFLNM = ****** GX 145-6246
TMRMFL 002661 R #148-6472 149-6517
TNINDV 002707 R #150-6631 151-6679
TNIN55 002734 R #150-6633 151-6690
TNIPRI 002772 R #150-6635 151-6705
TNIVER 003056 R #150-6637 151-6712
TOBM = 000004 #4-176 #8-445
TOD = 000003 #4-176 #8-445
TOIP = 000002 #4-176 #8-445
TOIT = 000001 #4-176 #8-445
TO10 = 000200 #4-176 #8-445
TO10AD = 174420 #4-176 #8-445
TO10BC = 174414 #4-176 #8-445
TO10BM = 000001 #4-176 #8-445
TO10DB = 000400 #4-176 #8-445
TO10DN = 100000 #4-176 #8-445
TO10DT = 174424 #4-176 #8-445
TO10ER = 020000 #4-176 #8-445
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 15
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
TO11 = 000100 #4-176 #8-445
TO11AD = 174422 #4-176 #8-445
TO11BC = 174416 #4-176 #8-445
TO11BM = 020000 #4-176 #8-445
TO11DB = 004000 #4-176 #8-445
TO11DN = 000200 #4-176 #8-445
TO11DT = 174426 #4-176 #8-445
TO11ER = 000002 #4-176 #8-445
TQBNFL 003245 R #155-6869 158-7008
TQBOOT 003130 R #155-6865 156-6900
TQBWCF 003202 R #155-6867 157-6965
TQCACH 003303 R #159-7082 160-7094
TQCCEN 003350 R #159-7083 161-7122
TQEXIT 003414 R #162-7189 163-7200
TQMCF0 003440 R #165-7278 166-7302
TQMCF1 003517 R #165-7280 166-7305
TQMNM0 003604 R #165-7282 167-7428
TQMPCA 003641 R #165-7284 167-7410
TQRLMC 003746 R #169-7511 170-7522
TQSABO 004377 R #171-7658 172-7748
TQSCAC 004260 R 171-7633 #171-7652
TQSCDH 004270 R #171-7654 174-7849
TQSCHN 004234 R 171-7632 #171-7650
TQSDLG 004014 R #171-7636 172-7675
TQSEXT 004206 R 171-7631 #171-7648
TQSHRZ 004113 R #171-7642 174-7816
TQSHWP 004123 R #171-7644 174-7818
TQSKSN 004055 R #171-7638 174-7792
TQSMDL 004100 R #171-7640 174-7796
TQSMMA 004432 R #171-7660 174-7844
TQSMMO 004156 R 171-7630 #171-7646
TQSWRN 004344 R #171-7656 172-7708 172-7740
TROCT 023606 R 199-9195 199-9195 199-9198 199-9198 199-9211 199-9211 199-9212 199-9212 200-9267
200-9267 200-9282 200-9282 #201-9308
TRSPRF 004510 R #176-7997 177-8028
TRSRSM 004544 R #176-8004 177-8025
TRTBTF 004644 R #181-8189 186-8531
TRTEND 004751 R #181-8193 186-8549
TRTFME 004674 R #181-8191 186-8544
TRTMMF 004606 R #181-8187 186-8505
TSTBSM 004753 R #190-8769 191-8861
TTA 002100 R 198-9146 #198-9147
TTB 002104 R 198-9145 #198-9148
TTBEL 005013 R #214-9857 216-9922
TTILUN = 000001 #8-402 150-6617 214-9850
TTJ 002114 R 198-9143 #198-9150
TTOLUN = 000002 #8-403 150-6619 150-6622 214-9851
TTP 002110 R 198-9144 #198-9149
TTSLS 005012 R #214-9856
TTSPC 005010 R #214-9854 216-9917
TTTAB 005011 R #214-9855 216-9934
TTTNLN 005014 R #214-9858 215-9889 216-9939
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 16
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
TTTPR 000207 R #58-2142 64-2475
TTTPRE 005022 R #214-9860 217-9991
TTTPRP 005016 R #214-9859 215-9880
TXBIMM 005032 R #219-10069 221-10194
TXCHLE 005076 R #223-10272 228-10471
TXCSFL 005126 R #223-10274 225-10360
TYPNUM = ****** GX 75-3099 75-3115 77-3360 77-3362 *77-3393 78-3462 *78-3499 81-3633 81-3635
81-3644 81-3651 82-3703 82-3708 83-3755 83-3760 168-7447
T.TIL = 000040 G #184-8356 184-8358 214-9850
T.TOL = 000111 G #184-8359 184-8361
UNASG1 = 000032 #4-176 #8-445
UNASG2 = 000033 #4-176 #8-445
UNASG3 = 000034 #4-176 #8-445
UNASG4 = 000035 #4-176 #8-445
UNASG5 = 000036 #4-176 #8-445
UNASG6 = 000037 #4-176 #8-445
WEP = 000010 #4-176 #8-445
W.10L = 000005 #6-297
XCONMP = ****** GX 167-7405
XCT = 000256 #181-8161 181-8171 181-8171
ZSTOP = 040000 #4-176 #8-445
$ACRAM 011430 RG 61-2267 61-2267 121-5164 121-5164 122-5232 122-5232 #123-5327
$ADRAM 012146 RG 125-5407 125-5407 126-5459 126-5459 #127-5508
$APRID = 000000 #11-538
$ASCIZ 022020 RG #188-8625 188-8627 217-9992 217-9992 217-9994 217-9994
$BURST 026672 RG 54-1867 54-1867 228-10443 228-10443 229-10525 #230-10540
$CD11 = 000001 #1-40
$CFGBT 021500 RG 157-6992 172-7742 #186-8511
$CFGCA 021424 RG 160-7118 161-7152 161-7154 #186-8484
$CFGMM 017156 RG 166-7367 #167-7385
$CFGRM 021412 RG 170-7569 #186-8474
$CFGXX 017330 RG 75-3022 75-3193 #167-7418
$CFIMD 003474 RG #75-3027 75-3255 168-7454
$CFMMD 003442 RG #75-3012 168-7460
$CFXMD 006006 RG #88-3935 168-7457
$CHKIM 004326 RG 75-3179 75-3179 #77-3351
$CHKMM 004552 RG 75-3184 75-3184 #78-3450
$CLOSE 006320 RG 61-2271 61-2271 69-2799 69-2799 #90-4069 140-6032 140-6032 140-6045 143-6139
143-6139 143-6175 145-6344 146-6356 146-6356 158-7020 158-7020 158-7044 221-10192
221-10192
$CONFG 004756 RG #80-3589 167-7419 167-7419
$DBDTE = 000001 #1-46
$DDFRD 012702 RG #133-5757
$DDFWR 013014 RG #135-5833
$DDFXC 013216 RG #138-5931
$DELET 006456 RG 69-2804 69-2804 #95-4269
$DFPC 015256 RG #153-6772
$DFRD 012706 RG 54-1872 54-1872 122-5242 122-5242 122-5297 122-5297 126-5466 126-5466 126-5474
126-5474 126-5487 126-5487 #133-5760 149-6507 149-6507 153-6787 153-6787 176-7935
176-7935 221-10188 221-10188 229-10495 229-10495 229-10500 229-10500 229-10505 229-10505
229-10520 229-10520
$DFWR 013020 RG 54-1887 54-1887 121-5203 121-5203 121-5214 123-5334 123-5334 123-5342 123-5342
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 17
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
125-5439 127-5536 127-5536 #135-5836 149-6534 149-6534 179-8110 179-8110 179-8113
179-8113 191-8844 191-8844 191-8848 191-8848 227-10414 230-10551 230-10551 230-10554
230-10554 230-10567 230-10567 230-10573 230-10573
$DFXC 013222 RG 54-1864 54-1864 54-1877 54-1877 54-1883 54-1883 54-1890 61-2270 61-2270
122-5235 122-5235 126-5462 126-5462 127-5539 131-5693 131-5693 136-5876 136-5876
#138-5934 149-6488 149-6488 149-6512 149-6512 149-6524 149-6524 149-6547 149-6547
175-7866 175-7866 176-7929 176-7929 176-7931 176-7931 179-8115 186-8463 186-8463
186-8466 186-8466 191-8851 191-8851 224-10298 224-10298 224-10301 224-10301 225-10336
225-10336 225-10339 225-10339 225-10344 225-10344 225-10357 228-10435 228-10435 228-10455
228-10455 228-10462 228-10462 228-10465 228-10465 229-10511 229-10511 230-10543 230-10543
230-10557 230-10557 230-10576
$DH11 = 000001 #1-44
$DLGBT 015456 RG #156-6893 157-6975 186-8499
$DLGBV 021454 RG 166-7353 #186-8498
$DLGCA 016200 RG #160-7088 161-7133 170-7550 186-8479
$DLGCT 017416 RG 167-7377 167-7417 #168-7443
$DLGCV 021420 RG 166-7333 #186-8478
$DLGEN 017774 RG 163-7218 170-7539 #172-7666 186-8472 186-8535
$DLGEX 016534 RG 157-6989 #163-7195 186-8527
$DLGIM 017442 RG #168-7453 168-7473 168-7475
$DLGMB 017456 RG 75-3061 #168-7462 168-7476
$DLGMF 017452 RG 88-4010 #168-7459
$DLGMM 016654 RG 160-7114 #166-7290 168-7463 186-8494 186-8555
$DLGMV 021446 RG 156-6913 #186-8493
$DLGMX 021452 RG 167-7435 #186-8496
$DLGRM 017506 RG 160-7111 #170-7516 172-7710 186-8502
$DLGRV 021460 RG 166-7336 #186-8501
$DLGXM 017446 RG 75-3032 75-3252 #168-7456 168-7470
$DLMB1 017462 RG 75-3064 #168-7468
$DLMB2 017470 RG 88-3961 #168-7471
$DLWCF 015652 RG 156-6936 #157-6960 163-7215
$DPOS 012336 RG 52-1801 52-1801 53-1833 53-1833 56-2041 56-2041 129-5603 129-5603 #129-5607
191-8838 191-8838 221-10181 221-10181 222-10211 222-10211 222-10223 222-10223
$DPOST 012320 RG #129-5599
$DSPPT 017136 RG 166-7359 #167-7373
$DSW = ****** GX 98-4373 103-4597 *103-4599 136-5871
$DTE = 000001 #1-47
$DTRWS 021712 RG 149-6495 149-6495 #187-8583
$DTRW1 021674 RG 131-5696 131-5696 #187-8575 225-10346 225-10346 226-10383 226-10383 228-10445 228-10445
$DTRW2 021702 RG 149-6491 149-6491 #187-8579
$DTRW3 021722 RG #187-8587
$ENTER 007176 RG 69-2707 69-2707 #103-4571
$ERROR 021572 RG 81-3692 82-3727 83-3795 156-6943 167-7438 177-8029 186-8476 186-8488 186-8491
186-8506 186-8517 186-8521 #186-8533 186-8539 191-8867 215-9910
$EXAM 012466 RG 65-2520 65-2520 130-5642 130-5642 130-5647 130-5647 #130-5654
$EXAMD 012456 RG #130-5646
$EXAMT 012440 RG #130-5638
$EXBLD 025264 RG 186-8523 186-8523 #220-10110
$EXCT 025716 RG 65-2516 65-2516 86-3876 86-3876 86-3879 86-3879 179-8105 179-8105 186-8460
186-8460 191-8801 191-8801 191-8810 191-8810 220-10134 220-10134 #224-10292
$EXIT 021602 RG 151-6706 163-7228 172-7754 177-8027 186-8526 #186-8537
$EXIT1 021610 RG 186-8469 #186-8540
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 18
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
$EXTEN 010504 RG 117-5037 117-5037 #119-5091
$FATAL 021616 RG #186-8543
$FE = 000001 #1-42
$FILE 002520 RG #69-2684 177-8017 177-8017 186-8538 186-8538 191-8793 191-8793
$F11 = 000001 #1-43
$GETCA 013354 RG #140-6007 186-8487 186-8487 186-8516 186-8516
$GETMM 013554 RG #143-6107 167-7388 167-7388
$GETTF 014024 RG #145-6243
$INIT 014702 RG #151-6646 186-8455 186-8455
$IOERR 006610 RG 60-2221 60-2221 90-4097 95-4285 #98-4369 101-4512 103-4600 119-5100 145-6260
220-10141
$KLMR 014350 RG 60-2215 60-2215 131-5690 131-5690 136-5873 #149-6485 175-7892 175-7892 176-7919
176-7919 179-8097 179-8097 228-10452 228-10452
$KLSR 014622 RG 123-5329 123-5329 127-5532 127-5532 #149-6542
$LDAR 026256 RG 54-1861 54-1861 224-10295 224-10295 225-10333 225-10333 #227-10406
$LDNGO 000000 RG #52-1784 56-1969 56-1969
$LOOKU 007024 RG 60-2210 60-2210 69-2700 69-2700 #101-4485 140-6010 140-6010 143-6118 143-6118
145-6252 145-6252 158-6999 158-6999 220-10127 220-10127
$LP20 = 000001 #1-38
$MAPMM 005700 RG 83-3767 83-3767 #84-3800
$MBPHS 026524 RG 227-10410 227-10410 #229-10489
$MCBLD 001066 RG #60-2192 186-8475 186-8475
$POWER 021132 RG 163-7231 #177-8017
$PURGE 007366 RG 64-2496 64-2496 69-2821 69-2821 #105-4651 140-6046 140-6046 143-6178 143-6178
158-7047 158-7047 186-8530 186-8530
$RCRAM 011026 RG 62-2306 62-2306 #122-5230 176-7923 176-7923
$RDERA = 000000 #11-540
$RDRAM 011736 RG 63-2381 63-2381 #126-5454
$READ 007736 RG 101-4502 108-4750 108-4750 109-4782 109-4782 110-4808 110-4808 #111-4834
$READB 007662 RG 69-2743 69-2743 #110-4803 140-6034 140-6034 140-6040 140-6040 143-6146 143-6146
143-6149 143-6149 146-6386 146-6386 158-7029 158-7029 158-7032 158-7032 220-10152
220-10152
$READC 007460 RG 61-2256 61-2256 69-2715 69-2715 #107-4721 140-6026 140-6026 143-6134 143-6134
143-6170 143-6170 145-6283 145-6283 158-7014 158-7014 221-10163 221-10163
$READS 007516 RG 69-2769 69-2769 #108-4746 108-4751 140-6024 140-6024 143-6131 143-6131 143-6167
143-6167 145-6298 145-6298 158-7024 158-7024
$READW 007566 RG 60-2239 60-2239 107-4726 107-4726 107-4730 #109-4771 143-6152 143-6152 158-7039
158-7039 221-10166 221-10166
$RP04 = 000001 #1-41
$RSAVE 021764 RG 52-1784 53-1821 54-1859 64-2448 98-4369 121-5161 122-5230 125-5401 126-5454
127-5508 129-5608 130-5655 145-6245 149-6485 153-6773 #188-8607 189-8647 199-9188
200-9248 215-9879 217-9969 217-9986 224-10293 225-10325 227-10407 229-10490 230-10540
$RX11 = 000001 #1-63
$SBDIA = 000002 #11-536
$SETCA 000356 RG #56-1968 186-8490 186-8490 186-8520 186-8520
$SETFN 006546 RG 95-4269 95-4269 95-4278 95-4278 #96-4305 101-4485 101-4485 101-4505 101-4505
103-4571 103-4571 105-4661 105-4661
$SETIM 004320 RG #77-3343 81-3639 81-3639 81-3661 81-3661
$SETMM 004544 RG #78-3443 83-3775 83-3775
$START 021320 RG #186-8453 231-10582
$STRKL 026006 RG 52-1807 177-8022 177-8022 191-8858 191-8858 #225-10324
$SWEEP 005744 RG #86-3871 220-10117 220-10117
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 19
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
$TCRLF 025060 RG 64-2484 64-2484 75-3123 75-3123 174-7834 174-7834 186-8552 186-8552 #216-9937
$TDB2C 024200 RG 196-9032 #209-9601
$TDB2I 022776 RG 174-7795 174-7795 174-7815 174-7815 #196-9027
$TDB2O 024162 RG 75-3120 75-3120 #209-9596
$TDI2B 023114 RG #197-9076
$TENST 022246 RG #191-8792 221-10193
$TENS1 022254 RG 157-6988 157-6988 #191-8795
$TOP10 = ****** 1-54 3-156 3-160 60-2194 60-2202 163-7223 163-7233 176-7970 176-7992
176-7998 177-8030 182-8265
$TOP20 = 000001 #1-36 1-62 3-156 3-164
$TRACK 022032 RG 121-5162 122-5231 123-5328 125-5402 126-5455 127-5509 129-5617 130-5660 133-5765
135-5852 138-5947 149-6486 149-6543 #189-8646 224-10294 225-10326 226-10379 228-10432
$TRB2F 022556 RG 98-4397 98-4397 #193-8917
$TRB2I 023020 RG 196-9031 196-9031 #196-9035 197-9080 197-9080
$TRB2O 024212 RG 64-2455 64-2455 65-2525 65-2525 98-4389 98-4389 189-8662 189-8662 193-8935
193-8935 209-9600 209-9600 #209-9606
$TRB2R 024456 RG 193-8925 193-8925 193-8927 193-8927 193-8929 193-8929 193-8932 193-8932 #213-9769
$TRCRM 023224 RG 64-2483 64-2483 #199-9187
$TRDRM 023370 RG 64-2481 64-2481 #200-9247
$TRF2B 022660 RG 145-6250 145-6250 156-6929 156-6929 170-7563 170-7563 172-7725 172-7725 #194-8954
$TRI2B 023136 RG 75-3234 75-3234 88-3985 88-3985 161-7134 161-7134 #197-9084
$TRO2B 024274 RG 75-3162 75-3162 194-8977 194-8977 #210-9657
$TRR2B 024350 RG 194-8959 194-8959 194-8961 194-8961 194-8963 194-8963 194-8970 194-8970 #212-9726
$TTBEL 025040 RG #216-9920
$TTDMS 025116 RG 64-2476 64-2476 64-2478 64-2478 75-3118 75-3118 75-3122 75-3122 174-7793
174-7793 174-7797 174-7797 174-7817 174-7817 174-7829 174-7829 186-8545 186-8545
200-9263 200-9263 #217-9968
$TTDWR 025230 RG 205-9443 205-9443 206-9471 206-9471 209-9602 209-9602 217-9974 #217-9997
$TTMSG 025164 RG 56-2057 57-2085 62-2328 62-2328 63-2403 63-2403 64-2457 64-2495 65-2534
69-2806 69-2823 75-3046 75-3046 75-3070 75-3199 75-3226 75-3258 77-3364
77-3409 78-3464 78-3511 81-3685 82-3723 83-3749 83-3787 88-3940 88-3946
88-3957 88-3975 88-4000 88-4004 98-4405 110-4818 111-4849 114-4946 117-5041
129-5620 130-5668 133-5776 135-5854 138-5951 140-6014 143-6122 145-6256 145-6291
145-6337 146-6351 149-6517 151-6679 151-6690 151-6705 151-6712 153-6806 156-6900
156-6939 157-6965 157-6976 158-7008 160-7094 160-7109 161-7122 161-7155 163-7200
163-7211 166-7307 166-7307 166-7326 167-7410 167-7428 170-7522 170-7537 172-7675
172-7692 172-7708 172-7740 172-7748 174-7818 174-7844 174-7849 177-8025 177-8028
186-8505 186-8531 191-8861 #217-9985 221-10194 225-10360 228-10471
$TTRD 024642 RG 75-3047 75-3047 75-3124 75-3124 75-3227 75-3227 88-3947 88-3947 88-3976
88-3976 156-6901 156-6901 157-6966 157-6966 160-7095 160-7095 161-7123 161-7123
163-7201 163-7201 166-7308 166-7308 170-7523 170-7523 172-7676 172-7676 197-9079
197-9079 #215-9879
$TTSPC 025030 RG 174-7809 174-7809 #216-9915
$TTTAB 025050 RG #216-9932
$TTWR 025244 RG 174-7805 174-7805 174-7807 174-7807 186-8548 186-8548 186-8551 186-8551 199-9203
199-9203 199-9215 199-9215 200-9270 200-9270 200-9286 200-9286 216-9947 216-9947
#218-10015
$T1091 = ****** 1-50
$WCRAM 010546 RG 62-2295 62-2295 62-2315 62-2315 62-2355 62-2355 #121-5161 176-7926 176-7926
176-7939
$WDD22 023636 RG #205-9438
$WDD36 023750 RG #206-9466
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 20
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
$WDRAM 011556 RG 63-2377 63-2377 63-2430 63-2430 #125-5401
$WRD22 023666 RG 189-8675 189-8675 205-9442 205-9442 #205-9447
$WRD36 024000 RG 189-8690 189-8690 206-9470 206-9470 #206-9475
$WRITB 010274 RG 69-2745 69-2745 70-2849 70-2849 70-2852 70-2852 72-2900 72-2900 72-2903
72-2903 73-2935 73-2935 73-2942 73-2942 114-4940 114-4940 #116-4996
$WRITC 010066 RG 69-2735 69-2735 70-2843 70-2843 71-2874 71-2874 72-2894 72-2894 73-2929
73-2929 #113-4906
$WRITE 010334 RG 115-4974 115-4974 116-5001 116-5001 #117-5024 117-5038
$WRITS 010130 RG 90-4085 90-4085 #114-4932
$WRITW 010200 RG 69-2738 69-2738 70-2846 70-2846 70-2860 70-2860 71-2877 72-2897 72-2897
72-2908 72-2908 73-2932 73-2932 113-4914 113-4914 #115-4963
$WTKL 026176 RG 224-10304 #226-10378 228-10438 228-10438 228-10458 228-10458
$XCDT 000206 RG 52-1794 52-1794 53-1827 53-1827 #54-1859
$ZERAC 000112 RG #53-1821 177-8019 177-8019 191-8796 191-8796
$$ = 000037 #52-1794 52-1794 #52-1801 52-1801 #53-1827 53-1827 #53-1833 53-1833 #54-1861
54-1861 #54-1864 54-1864 #54-1867 54-1867 #54-1872 54-1872 #54-1877 54-1877
#54-1883 54-1883 #54-1887 54-1887 #56-1969 56-1969 #56-2041 56-2041 #60-2210
60-2210 #60-2215 60-2215 #60-2221 60-2221 #60-2239 60-2239 #61-2256 61-2256
#61-2267 61-2267 #61-2270 61-2270 #61-2271 61-2271 #62-2295 62-2295 #62-2300
62-2300 #62-2306 62-2306 #62-2315 62-2315 #62-2328 62-2328 #62-2332 62-2332
#62-2337 62-2337 #62-2340 62-2340 #62-2350 62-2350 #62-2355 62-2355 #63-2371
63-2371 #63-2377 63-2377 #63-2381 63-2381 #63-2403 63-2403 #63-2407 63-2407
#63-2412 63-2412 #63-2415 63-2415 #63-2425 63-2425 #63-2430 63-2430 #64-2455
64-2455 #64-2476 64-2476 #64-2478 64-2478 #64-2481 64-2481 #64-2483 64-2483
#64-2484 64-2484 #64-2496 64-2496 #65-2516 65-2516 #65-2520 65-2520 #65-2525
65-2525 #69-2700 69-2700 #69-2707 69-2707 #69-2715 69-2715 #69-2735 69-2735
#69-2738 69-2738 #69-2743 69-2743 #69-2745 69-2745 #69-2769 69-2769 #69-2780
69-2780 #69-2789 69-2789 #69-2794 69-2794 #69-2797 69-2797 #69-2799 69-2799
#69-2804 69-2804 #69-2821 69-2821 #70-2843 70-2843 #70-2846 70-2846 #70-2849
70-2849 #70-2852 70-2852 #70-2860 70-2860 #71-2874 71-2874 #72-2894 72-2894
#72-2897 72-2897 #72-2900 72-2900 #72-2903 72-2903 #72-2908 72-2908 #73-2929
73-2929 #73-2932 73-2932 #73-2935 73-2935 #73-2942 73-2942 #75-3046 75-3046
#75-3047 75-3047 #75-3118 75-3118 #75-3120 75-3120 #75-3122 75-3122 #75-3123
75-3123 #75-3124 75-3124 #75-3162 75-3162 #75-3179 75-3179 #75-3184 75-3184
#75-3227 75-3227 #75-3234 75-3234 #78-3471 78-3471 #80-3596 80-3596 #80-3601
80-3601 #80-3606 80-3606 #81-3637 81-3637 #81-3639 81-3639 #81-3647 81-3647
#81-3653 81-3653 #81-3661 81-3661 #81-3665 81-3665 #83-3763 83-3763 #83-3767
83-3767 #83-3775 83-3775 #83-3777 83-3777 #84-3806 84-3806 #86-3876 86-3876
#86-3879 86-3879 #88-3947 88-3947 #88-3976 88-3976 #88-3985 88-3985 #90-4085
90-4085 #95-4269 95-4269 #95-4278 95-4278 #98-4389 98-4389 #98-4397 98-4397
#98-4404 98-4404 #101-4485 101-4485 #101-4505 101-4505 #103-4571 103-4571 #105-4661
105-4661 #107-4726 107-4726 #108-4750 108-4750 #109-4782 109-4782 #110-4808 110-4808
#113-4914 113-4914 #114-4940 114-4940 #115-4974 115-4974 #116-5001 116-5001 #117-5037
117-5037 #121-5164 121-5164 #121-5203 121-5203 #122-5232 122-5232 #122-5235 122-5235
#122-5242 122-5242 #122-5297 122-5297 #123-5329 123-5329 #123-5332 123-5332 #123-5334
123-5334 #123-5340 123-5340 #123-5342 123-5342 #125-5407 125-5407 #125-5410 125-5410
#125-5413 125-5413 #125-5432 125-5432 #126-5459 126-5459 #126-5462 126-5462 #126-5466
126-5466 #126-5474 126-5474 #126-5487 126-5487 #127-5532 127-5532 #127-5536 127-5536
#129-5603 129-5603 #129-5609 129-5609 #129-5610 129-5610 #130-5642 130-5642 #130-5647
130-5647 #130-5656 130-5656 #130-5657 130-5657 #131-5690 131-5690 #131-5693 131-5693
#131-5696 131-5696 #135-5838 135-5838 #136-5876 136-5876 #140-6010 140-6010 #140-6024
140-6024 #140-6026 140-6026 #140-6032 140-6032 #140-6034 140-6034 #140-6040 140-6040
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 21
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
#140-6046 140-6046 #143-6118 143-6118 #143-6131 143-6131 #143-6134 143-6134 #143-6139
143-6139 #143-6146 143-6146 #143-6149 143-6149 #143-6152 143-6152 #143-6167 143-6167
#143-6170 143-6170 #143-6178 143-6178 #145-6245 145-6245 #145-6250 145-6250 #145-6252
145-6252 #145-6283 145-6283 #145-6298 145-6298 #145-6311 145-6311 #145-6318 145-6318
#145-6324 145-6324 #145-6333 145-6333 #146-6356 146-6356 #146-6386 146-6386 #149-6488
149-6488 #149-6491 149-6491 #149-6495 149-6495 #149-6502 149-6502 #149-6507 149-6507
#149-6512 149-6512 #149-6515 149-6515 #149-6524 149-6524 #149-6534 149-6534 #149-6547
149-6547 #153-6773 153-6773 #153-6787 153-6787 #153-6794 153-6794 #156-6901 156-6901
#156-6916 156-6916 #156-6929 156-6929 #157-6966 157-6966 #157-6988 157-6988 #158-6999
158-6999 #158-7014 158-7014 #158-7020 158-7020 #158-7024 158-7024 #158-7029 158-7029
#158-7032 158-7032 #158-7039 158-7039 #158-7047 158-7047 #160-7095 160-7095 #161-7123
161-7123 #161-7134 161-7134 #163-7201 163-7201 #166-7293 166-7293 #166-7307 166-7307
#166-7308 166-7308 #167-7375 167-7375 #167-7376 167-7376 #167-7388 167-7388 #167-7396
167-7396 #167-7414 167-7414 #167-7419 167-7419 #167-7421 167-7421 #167-7422 167-7422
#167-7423 167-7423 #167-7432 167-7432 #170-7523 170-7523 #170-7555 170-7555 #170-7563
170-7563 #172-7676 172-7676 #172-7704 172-7704 #172-7719 172-7719 #172-7725 172-7725
#172-7731 172-7731 #172-7733 172-7733 #172-7737 172-7737 #174-7785 174-7785 #174-7793
174-7793 #174-7795 174-7795 #174-7797 174-7797 #174-7805 174-7805 #174-7807 174-7807
#174-7809 174-7809 #174-7815 174-7815 #174-7817 174-7817 #174-7829 174-7829 #174-7834
174-7834 #175-7864 175-7864 #175-7866 175-7866 #175-7869 175-7869 #175-7892 175-7892
#176-7919 176-7919 #176-7923 176-7923 #176-7926 176-7926 #176-7929 176-7929 #176-7931
176-7931 #176-7935 176-7935 #177-8017 177-8017 #177-8019 177-8019 #177-8020 177-8020
#177-8022 177-8022 #177-8026 177-8026 #179-8097 179-8097 #179-8105 179-8105 #179-8110
179-8110 #179-8113 179-8113 #186-8455 186-8455 #186-8460 186-8460 #186-8463 186-8463
#186-8466 186-8466 #186-8475 186-8475 #186-8487 186-8487 #186-8490 186-8490 #186-8516
186-8516 #186-8520 186-8520 #186-8523 186-8523 #186-8530 186-8530 #186-8538 186-8538
#186-8545 186-8545 #186-8548 186-8548 #186-8551 186-8551 #186-8552 186-8552 #189-8662
189-8662 #189-8675 189-8675 #189-8690 189-8690 #191-8793 191-8793 #191-8796 191-8796
#191-8801 191-8801 #191-8810 191-8810 #191-8838 191-8838 #191-8844 191-8844 #191-8848
191-8848 #191-8851 191-8851 #191-8858 191-8858 #191-8862 191-8862 #193-8925 193-8925
#193-8927 193-8927 #193-8929 193-8929 #193-8932 193-8932 #193-8935 193-8935 #194-8959
194-8959 #194-8961 194-8961 #194-8963 194-8963 #194-8970 194-8970 #194-8977 194-8977
#196-9031 196-9031 #197-9079 197-9079 #197-9080 197-9080 #199-9188 199-9188 #199-9195
199-9195 #199-9198 199-9198 #199-9203 199-9203 #199-9211 199-9211 #199-9212 199-9212
#199-9215 199-9215 #200-9248 200-9248 #200-9263 200-9263 #200-9267 200-9267 #200-9270
200-9270 #200-9282 200-9282 #200-9286 200-9286 #205-9442 205-9442 #205-9443 205-9443
#205-9449 205-9449 #205-9453 205-9453 #205-9455 205-9455 #206-9470 206-9470 #206-9471
206-9471 #206-9477 206-9477 #206-9480 206-9480 #206-9482 206-9482 #206-9487 206-9487
#206-9489 206-9489 #209-9600 209-9600 #209-9602 209-9602 #216-9947 216-9947 #217-9969
217-9969 #217-9992 217-9992 #217-9994 217-9994 #220-10117 220-10117 #220-10127 220-10127
#220-10134 220-10134 #220-10152 220-10152 #221-10163 221-10163 #221-10166 221-10166 #221-10181
221-10181 #221-10188 221-10188 #221-10192 221-10192 #222-10211 222-10211 #222-10219 222-10219
#222-10223 222-10223 #224-10295 224-10295 #224-10298 224-10298 #224-10301 224-10301 #225-10333
225-10333 #225-10336 225-10336 #225-10339 225-10339 #225-10344 225-10344 #225-10346 225-10346
#226-10383 226-10383 #227-10408 227-10408 #227-10410 227-10410 #228-10435 228-10435 #228-10438
228-10438 #228-10443 228-10443 #228-10445 228-10445 #228-10452 228-10452 #228-10455 228-10455
#228-10458 228-10458 #228-10462 228-10462 #228-10465 228-10465 #229-10495 229-10495 #229-10500
229-10500 #229-10505 229-10505 #229-10511 229-10511 #229-10520 229-10520 #230-10543 230-10543
#230-10551 230-10551 #230-10554 230-10554 #230-10557 230-10557 #230-10567 230-10567 #230-10573
230-10573
$$APRI = 000000 #11-539
$$RDER = 000004 #11-541
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 22
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
$$SBDI = 000004 #11-537
$$$ARG = 000011 #89-4047 89-4047 #89-4048 89-4048 #89-4048 89-4048 #89-4048 89-4048 #91-4132
91-4132 #91-4132 91-4132 #91-4132 91-4132 #91-4132 91-4132 #91-4132 91-4132
#91-4132 91-4132 #91-4132 91-4132 #91-4133 91-4133 #91-4133 91-4133 #91-4134
91-4134 #91-4134 91-4134 #91-4134 91-4134 #91-4134 91-4134 #91-4134 91-4134
#91-4134 91-4134 #91-4134 91-4134 #100-4462 100-4462 #100-4462 100-4462 #100-4462
100-4462 #100-4462 100-4462 #100-4462 100-4462 #100-4462 100-4462 #100-4462 100-4462
#100-4463 100-4463 #100-4463 100-4463 #100-4463 100-4463 #100-4463 100-4463 #100-4463
100-4463 #100-4463 100-4463 #100-4464 100-4464 #100-4464 100-4464 #100-4464 100-4464
#100-4464 100-4464 #100-4464 100-4464 #100-4464 100-4464 #100-4464 100-4464 #102-4548
102-4548 #102-4548 102-4548 #102-4548 102-4548 #102-4548 102-4548 #102-4548 102-4548
#102-4549 102-4549 #102-4549 102-4549 #102-4549 102-4549 #102-4549 102-4549 #102-4549
102-4549 #102-4549 102-4549 #102-4549 102-4549 #102-4550 102-4550 #102-4550 102-4550
#102-4550 102-4550 #102-4550 102-4550 #102-4550 102-4550 #102-4550 102-4550 #102-4551
102-4551 #104-4636 104-4636 #104-4637 104-4637 #104-4638 104-4638 #104-4639 104-4639
#104-4639 104-4639 #104-4639 104-4639 #104-4639 104-4639 #104-4639 104-4639 #104-4639
104-4639 #104-4639 104-4639 #111-4840 111-4840 111-4840 111-4840 111-4840 111-4840
111-4840 111-4840 111-4840 111-4840 111-4840 111-4840 #117-5025 117-5025 117-5025
117-5025 117-5025 117-5025 117-5025 117-5025 117-5025 117-5025 117-5025 117-5025
#118-5078 118-5078 #118-5078 118-5078 #118-5078 118-5078 #118-5078 118-5078 #118-5078
118-5078 #150-6617 150-6617 #150-6617 150-6617 #150-6617 150-6617 #150-6619 150-6619
#150-6619 150-6619 #150-6619 150-6619 #150-6622 150-6622 #150-6622 150-6622 #150-6622
150-6622 #150-6625 150-6625 #150-6625 150-6625 #150-6625 150-6625 #150-6627 150-6627
#150-6627 150-6627 #150-6627 150-6627 #150-6629 150-6629 #150-6629 150-6629 #150-6629
150-6629 #151-6685 151-6685 151-6685 151-6685 151-6685 151-6685 151-6685 151-6685
151-6685 151-6685 151-6685 151-6685 #181-8175 181-8175 #181-8175 181-8175 #181-8175
181-8175 #181-8175 181-8175 #214-9850 214-9850 #214-9850 214-9850 #214-9850 214-9850
#214-9851 214-9851 #214-9851 214-9851 #214-9851 214-9851 #214-9851 214-9851
$$$GLB = ****** 89-4047 89-4047 89-4047 89-4047 89-4047 89-4047 89-4047 89-4047 89-4048
89-4048 89-4048 89-4048 89-4048 89-4048 89-4048 89-4048 91-4132 91-4132
91-4132 91-4132 91-4132 91-4132 91-4132 91-4132 91-4133 91-4133 91-4133
91-4133 91-4133 91-4133 91-4133 91-4133 91-4134 91-4134 91-4134 91-4134
91-4134 91-4134 91-4134 91-4134 100-4461 100-4461 100-4461 100-4462 100-4462
100-4462 100-4462 100-4462 100-4462 100-4462 100-4462 100-4463 100-4463 100-4463
100-4463 100-4463 100-4463 100-4463 100-4463 100-4464 100-4464 100-4464 100-4464
100-4464 100-4464 100-4464 100-4464 102-4547 102-4547 102-4547 102-4548 102-4548
102-4548 102-4548 102-4548 102-4548 102-4548 102-4548 102-4549 102-4549 102-4549
102-4549 102-4549 102-4549 102-4549 102-4549 102-4550 102-4550 102-4550 102-4550
102-4550 102-4550 102-4550 102-4550 102-4551 102-4551 102-4551 102-4551 102-4551
102-4551 102-4551 102-4551 104-4636 104-4636 104-4636 104-4636 104-4636 104-4636
104-4636 104-4636 104-4637 104-4637 104-4637 104-4637 104-4637 104-4637 104-4637
104-4637 104-4638 104-4638 104-4638 104-4638 104-4638 104-4638 104-4638 104-4638
104-4639 104-4639 104-4639 104-4639 104-4639 104-4639 104-4639 104-4639 118-5078
118-5078 118-5078 118-5078 118-5078 118-5078 118-5078 118-5078 150-6617 150-6617
150-6617 150-6617 150-6619 150-6619 150-6619 150-6619 150-6622 150-6622 150-6622
150-6622 150-6625 150-6625 150-6625 150-6625 150-6627 150-6627 150-6627 150-6627
150-6629 150-6629 150-6629 150-6629 181-8175 181-8175 181-8175 181-8175 181-8175
181-8175 181-8175 181-8175 214-9850 214-9850 214-9850 214-9850 214-9850 214-9850
214-9850 214-9850 214-9851 214-9851 214-9851 214-9851 214-9851 214-9851 214-9851
214-9851
$$$OST = 000014 #89-4047 89-4047 89-4047 #89-4047 89-4047 89-4047 #89-4047 89-4047 89-4047
#89-4047 89-4047 89-4047 #89-4047 89-4047 89-4047 #89-4047 89-4047 89-4047
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 23
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
#89-4047 89-4047 #89-4048 89-4048 89-4048 #89-4048 89-4048 89-4048 #89-4048
89-4048 89-4048 #89-4048 89-4048 89-4048 #89-4048 89-4048 89-4048 #89-4048
89-4048 89-4048 #89-4048 89-4048 #91-4132 91-4132 91-4132 #91-4132 91-4132
91-4132 #91-4132 91-4132 91-4132 #91-4132 91-4132 91-4132 #91-4132 91-4132
91-4132 #91-4132 91-4132 91-4132 #91-4132 91-4132 #91-4133 91-4133 91-4133
#91-4133 91-4133 91-4133 #91-4133 91-4133 91-4133 #91-4133 91-4133 91-4133
#91-4133 91-4133 91-4133 #91-4133 91-4133 91-4133 #91-4133 91-4133 #91-4134
91-4134 91-4134 #91-4134 91-4134 91-4134 #91-4134 91-4134 91-4134 #91-4134
91-4134 91-4134 #91-4134 91-4134 91-4134 #91-4134 91-4134 91-4134 #91-4134
91-4134 #100-4461 100-4461 100-4461 #100-4461 100-4461 100-4461 #100-4461 #100-4462
100-4462 100-4462 #100-4462 100-4462 100-4462 #100-4462 100-4462 100-4462 #100-4462
100-4462 100-4462 #100-4462 100-4462 100-4462 #100-4462 100-4462 100-4462 #100-4462
100-4462 #100-4463 100-4463 100-4463 #100-4463 100-4463 100-4463 #100-4463 100-4463
100-4463 #100-4463 100-4463 100-4463 #100-4463 100-4463 100-4463 #100-4463 100-4463
100-4463 #100-4463 100-4463 #100-4464 100-4464 100-4464 #100-4464 100-4464 100-4464
#100-4464 100-4464 100-4464 #100-4464 100-4464 100-4464 #100-4464 100-4464 100-4464
#100-4464 100-4464 100-4464 #100-4464 100-4464 #102-4547 102-4547 102-4547 #102-4547
102-4547 102-4547 #102-4547 #102-4548 102-4548 102-4548 #102-4548 102-4548 102-4548
#102-4548 102-4548 102-4548 #102-4548 102-4548 102-4548 #102-4548 102-4548 102-4548
#102-4548 102-4548 102-4548 #102-4548 102-4548 #102-4549 102-4549 102-4549 #102-4549
102-4549 102-4549 #102-4549 102-4549 102-4549 #102-4549 102-4549 102-4549 #102-4549
102-4549 102-4549 #102-4549 102-4549 102-4549 #102-4549 102-4549 #102-4550 102-4550
102-4550 #102-4550 102-4550 102-4550 #102-4550 102-4550 102-4550 #102-4550 102-4550
102-4550 #102-4550 102-4550 102-4550 #102-4550 102-4550 102-4550 #102-4550 102-4550
#102-4551 102-4551 102-4551 #102-4551 102-4551 102-4551 #102-4551 102-4551 102-4551
#102-4551 102-4551 102-4551 #102-4551 102-4551 102-4551 #102-4551 102-4551 102-4551
#102-4551 102-4551 #104-4636 104-4636 104-4636 #104-4636 104-4636 104-4636 #104-4636
104-4636 104-4636 #104-4636 104-4636 104-4636 #104-4636 104-4636 104-4636 #104-4636
104-4636 104-4636 #104-4636 104-4636 #104-4637 104-4637 104-4637 #104-4637 104-4637
104-4637 #104-4637 104-4637 104-4637 #104-4637 104-4637 104-4637 #104-4637 104-4637
104-4637 #104-4637 104-4637 104-4637 #104-4637 104-4637 #104-4638 104-4638 104-4638
#104-4638 104-4638 104-4638 #104-4638 104-4638 104-4638 #104-4638 104-4638 104-4638
#104-4638 104-4638 104-4638 #104-4638 104-4638 104-4638 #104-4638 104-4638 #104-4639
104-4639 104-4639 #104-4639 104-4639 104-4639 #104-4639 104-4639 104-4639 #104-4639
104-4639 104-4639 #104-4639 104-4639 104-4639 #104-4639 104-4639 104-4639 #104-4639
104-4639 #118-5078 118-5078 118-5078 #118-5078 118-5078 118-5078 #118-5078 118-5078
118-5078 #118-5078 118-5078 118-5078 #118-5078 118-5078 118-5078 #118-5078 118-5078
118-5078 #118-5078 118-5078 #150-6617 150-6617 150-6617 #150-6617 150-6617 150-6617
#150-6617 150-6617 150-6617 #150-6617 #150-6619 150-6619 150-6619 #150-6619 150-6619
150-6619 #150-6619 150-6619 150-6619 #150-6619 #150-6622 150-6622 150-6622 #150-6622
150-6622 150-6622 #150-6622 150-6622 150-6622 #150-6622 #150-6625 150-6625 150-6625
#150-6625 150-6625 150-6625 #150-6625 150-6625 150-6625 #150-6625 #150-6627 150-6627
150-6627 #150-6627 150-6627 150-6627 #150-6627 150-6627 150-6627 #150-6627 #150-6629
150-6629 150-6629 #150-6629 150-6629 150-6629 #150-6629 150-6629 150-6629 #150-6629
#181-8175 181-8175 181-8175 #181-8175 181-8175 181-8175 #181-8175 181-8175 181-8175
#181-8175 181-8175 181-8175 #181-8175 181-8175 181-8175 #181-8175 181-8175 181-8175
#181-8175 181-8175 #214-9850 214-9850 214-9850 #214-9850 214-9850 214-9850 #214-9850
214-9850 214-9850 #214-9850 214-9850 214-9850 #214-9850 214-9850 214-9850 #214-9850
214-9850 214-9850 #214-9850 214-9850 #214-9851 214-9851 214-9851 #214-9851 214-9851
214-9851 #214-9851 214-9851 214-9851 #214-9851 214-9851 214-9851 #214-9851 214-9851
214-9851 #214-9851 214-9851 214-9851 #214-9851 214-9851
$$$T1 = 000014 #111-4840 111-4840 #117-5025 117-5025 #150-6617 150-6617 150-6617 #150-6617 150-6617
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 24
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
150-6617 #150-6617 150-6617 150-6617 #150-6619 150-6619 150-6619 #150-6619 150-6619
150-6619 #150-6619 150-6619 150-6619 #150-6622 150-6622 150-6622 #150-6622 150-6622
150-6622 #150-6622 150-6622 150-6622 #150-6625 150-6625 150-6625 #150-6625 150-6625
150-6625 #150-6625 150-6625 150-6625 #150-6627 150-6627 150-6627 #150-6627 150-6627
150-6627 #150-6627 150-6627 150-6627 #150-6629 150-6629 150-6629 #150-6629 150-6629
150-6629 #150-6629 150-6629 150-6629 #151-6685 151-6685
.BRCLK = 005000 #4-176 #8-445 230-10556 230-10575
.BTADR 000462 RG #184-8373 191-8855 *221-10165 *221-10168 222-10204 222-10205 222-10207 222-10215 222-10217
.BTSW 000042 RG 69-2687 69-2753 69-2792 *69-2807 70-2848 *156-6894 *156-6921 *156-6934 157-6986
*158-7010 *158-7031 #182-8250 191-8814 191-8853
.CACHN 000051 RG 56-1977 56-2024 57-2077 73-2939 140-6016 140-6039 161-7138 #183-8288
.CASW 000035 RG 86-3872 160-7088 166-7331 *175-7883 *175-7886 179-8100 #182-8239 186-8512 191-8806
.CECLK = 004000 #4-176 #8-445 54-1882 148-6452 148-6464 228-10464
.CFGTB 000120 RG 72-2906 *75-3103 75-3217 75-3244 *77-3432 *78-3532 81-3631 *81-3646 *81-3664
82-3701 *82-3710 83-3753 *83-3762 *83-3778 *88-3970 *88-4008 143-6110 *143-6155
168-7445 #183-8313
.CFMRV 000220 RG *166-7292 *166-7356 166-7358 167-7395 #183-8315
.CKSW 000033 RG 136-5866 *138-5940 *138-5943 *138-5950 #182-8234
.CLRMR = 006000 #4-176 #8-445 148-6453 148-6465
.CLRUN = 010000 #4-176 #8-445 149-6487 175-7865 228-10434
.COMEF = ****** GX 151-6701 *151-6709
.CONBT = 012000 #4-176 #8-445 54-1863 186-8465 224-10297 225-10338
.CPUSN = ****** GX 151-6710 *151-6711 *172-7753 174-7782 174-7794 *174-7850 175-7880
.CSHRG = 164000 #4-176 #8-445
.CTLTP 000056 RG 72-2891 72-2902 81-3635 81-3651 *143-6111 *143-6114 *143-6151 143-6158 *168-7447
#183-8309
.DATE3 = ****** GX *151-6650 174-7789
.DBSW 000031 RG *156-6895 *172-7716 #182-8228
.DCSW 000027 RG 69-2690 69-2762 69-2778 *69-2809 140-6007 *140-6015 *160-7090 *160-7117 *161-7151
*161-7153 #182-8223 186-8485
.DESW 000034 RG 131-5688 *131-5703 *136-5865 *138-5941 *138-5944 #182-8236
.DFBLK 000242 RG 132-5738 134-5813 137-5914 #184-8334
.DFRBK 000250 RG 133-5765 133-5767 153-6789 #184-8337
.DFRG1 000256 RG #184-8340
.DFRG2 000260 RG #184-8342
.DFRG3 000264 RG #184-8346
.DFSTA 000262 RG #184-8344
.DFWBK 000242 RG 135-5842 135-5852 #184-8335
.DLGSW 000024 RG 80-3611 81-3690 82-3725 83-3791 *151-6647 *151-6655 151-6699 156-6897 157-6962
158-7003 160-7091 163-7196 166-7298 167-7397 170-7518 172-7668 *172-7670 *172-7699
172-7706 174-7787 #182-8216 186-8525 *186-8534 *186-8554 220-10111
.DMSW 000030 RG 69-2692 69-2727 69-2783 *69-2811 75-3044 75-3215 *80-3590 80-3609 *80-3610
*80-3616 *81-3689 *82-3724 *83-3790 88-3944 88-3973 *143-6124 *166-7291 *166-7365
167-7386 167-7390 167-7416 #182-8226
.DREG 000256 RG 132-5738 134-5813 137-5914 184-8331 #184-8339 *187-8591 187-8595
.DRLTC = 015000 #4-176 #8-445 126-5461
.DRSW 000026 RG 62-2289 62-2303 62-2351 63-2374 63-2426 64-2492 65-2504 *170-7516 *170-7568
#182-8220
.DSACF = 066000 #4-176 #8-445
.DSIOJ = 065000 #4-176 #8-445
.DTEDT 000266 RG *149-6490 *149-6493 184-8330 #184-8349 187-8590 *187-8594
.EASW 000036 RG 60-2199 122-5306 174-7801 174-7840 *175-7894 *175-7897 #182-8242
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 25
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
.EIOJA = 067000 #4-176 #8-445 148-6454
.FEMOD = ****** GX 151-6703 170-7557
.FILSW 000041 RG 69-2685 *157-6961 *157-6980 *157-6984 *172-7667 *172-7717 #182-8248
.GFNR = 102000 #4-176 #8-445
.HRDWR = ****** GX 174-7811 174-7821
.INICL = 070000 #4-176 #8-445 148-6449
.IRLTC = 014000 #4-176 #8-445 127-5538
.KLISV 000044 RG *151-6648 151-6670 158-7005 160-7112 160-7115 163-7221 166-7294 166-7344 166-7362
*167-7408 *167-7409 170-7541 170-7543 #182-8276 186-8456 191-8816 220-10113 228-10450
.KLIWD = ****** GX 151-6648 *151-6654
.KLREG 000230 RG #184-8327 *187-8576 *187-8580 *187-8584 *187-8588 *187-8590 187-8592
.LCRDL = 052000 #4-176 #8-445 123-5333
.LCRDR = 051000 #4-176 #8-445 123-5341
.LCRM1 = 057000 #4-176 #8-445 120-5136
.LCRM2 = 056000 #4-176 #8-445 120-5137
.LCRM3 = 055000 #4-176 #8-445 120-5138
.LCRM4 = 054000 #4-176 #8-445 120-5139
.LCRM5 = 053000 #4-176 #8-445 121-5213
.LDAR = 077000 #4-176 #8-445 54-1886 127-5535 227-10413
.LDBRL = 043000 #4-176 #8-445 148-6446 230-10553 230-10572
.LDBRR = 042000 #4-176 #8-445 148-6445 148-6450 230-10550 230-10566
.LDCK1 = 046000 #4-176 #8-445 148-6442 179-8112 191-8847
.LDCK2 = 047000 #4-176 #8-445 148-6443 179-8109 191-8843
.LDDIS = 045000 #4-176 #8-445 148-6447
.LDRJD = 064000 #4-176 #8-445 125-5425
.LDRJV = 063000 #4-176 #8-445 125-5428
.LDRM1 = 060000 #4-176 #8-445 125-5427
.LDRM2 = 061000 #4-176 #8-445 125-5424
.LDRM3 = 062000 #4-176 #8-445 125-5419
.LDSEL = 044000 #4-176 #8-445 148-6439 149-6528
.MEMRS = 076000 #4-176 #8-445 148-6455
.MFCT 000040 RG *143-6108 *143-6160 167-7401 #182-8246
.MFSW 000037 RG 149-6498 149-6530 166-7303 174-7842 *175-7888 *175-7891 #182-8244
.NCACH 000050 RG 56-1971 56-1986 56-2025 57-2066 73-2926 *140-6022 *140-6044 *161-7150 179-8102
#183-8286 186-8514 186-8518 191-8808
.NOERR = ****** GX *175-7863 *177-8024 *186-8458 *186-8468 *191-8860
.PCAB1 = 150000 #4-176 #8-445
.PCAB2 = 151000 #4-176 #8-445
.PCAB3 = 152000 #4-176 #8-445
.PCAB4 = 153000 #4-176 #8-445
.RCRM1 = 147000 #4-176 #8-445 120-5132
.RCRM2 = 146000 #4-176 #8-445 120-5133
.RCRM3 = 145000 #4-176 #8-445 120-5134
.RCRM4 = 144000 #4-176 #8-445 120-5135
.RCSPF = 141000 #4-176 #8-445 122-5295
.RDJ14 = 134000 #4-176 #8-445 126-5486
.RDJ71 = 135000 #4-176 #8-445 126-5465
.RDMAB = 133000 #4-176 #8-445 126-5473
.SECLK = 003000 #4-176 #8-445 122-5234 176-7928
.SETMR = 007000 #4-176 #8-445 138-5938 148-6441 148-6461
.SETRN = 011000 #4-176 #8-445 186-8462 225-10335
.SNSAV 000046 RG *151-6710 172-7753 #182-8278
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 26
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
.SPSAV 000022 RG #182-8214 *186-8454 186-8553
.SSCLK = 002000 #4-176 #8-445 54-1876 149-6511 225-10343 229-10510
.STPCL = 000000 #4-176 #8-445 136-5875 148-6440 148-6463 228-10461 230-10542
.STRCL = 001000 #4-176 #8-445 54-1889 61-2269 131-5692 138-5936 148-6448 148-6462 179-8114
191-8850 224-10300 225-10356 228-10454
.SYATT 002614 RG 89-4050 *90-4081 *90-4082 *90-4083 *90-4084 *103-4594 113-4909 *113-4911 *119-5095
*119-5096 #185-8440
.SYFID = 002562 RG 91-4133 100-4463 102-4548 102-4550 #185-8432
.SYFNB 002562 RG 91-4132 91-4134 96-4306 100-4462 100-4464 102-4549 104-4639 151-6685 151-6693
*151-6693 151-6694 *151-6694 151-6695 *151-6695 #185-8423 185-8432 185-8433
.SYFNM = 002570 RG #185-8433
.SYIBA 000500 RG *108-4754 109-4772 *109-4775 109-4785 *109-4786 110-4811 *110-4812 *111-4844 #185-8390
.SYIBC 000502 RG 108-4747 108-4749 *108-4755 *109-4776 109-4780 *109-4787 110-4806 *110-4813 *111-4845
#185-8392
.SYIBF 000530 RG 100-4461 101-4488 101-4489 111-4840 111-4844 185-8391 #185-8400 185-8407
.SYIFN 000504 RG 90-4094 100-4466 100-4468 *101-4488 *101-4489 #185-8394
.SYIRC 000476 RG 61-2262 62-2322 63-2397 69-2733 69-2741 *101-4501 107-4722 *107-4725 *107-4728
108-4747 *108-4749 108-4754 108-4755 *108-4756 *109-4774 *109-4778 *110-4804 146-6378
#185-8388 221-10169 222-10227
.SYISW 000474 RG 90-4069 *90-4075 *101-4498 105-4651 *105-4654 #185-8382
.SYIVB 000524 RG *101-4499 *101-4500 *111-4835 *111-4836 111-4840 111-4840 #185-8398
.SYOBA 001532 RG 90-4083 *103-4591 115-4964 *115-4967 115-4977 *115-4978 116-5004 *116-5005 *117-5031
#185-8406
.SYOBC 001534 RG *103-4592 114-4936 *115-4968 115-4972 *115-4979 116-4999 *116-5006 *117-5032 #185-8408
.SYOBF 001562 RG 90-4084 102-4547 103-4574 103-4575 103-4591 117-5025 117-5031 #185-8416
.SYOFN 001536 RG 89-4052 89-4054 90-4096 102-4553 102-4555 *103-4574 *103-4575 105-4660 119-5099
#185-8410
.SYORC 001530 RG 70-2854 *103-4593 113-4907 *113-4913 *113-4916 114-4933 *114-4938 *115-4966 *115-4970
*116-4997 #185-8404
.SYOSW 000475 RG 90-4076 *90-4091 *103-4588 105-4655 *105-4664 #185-8384
.SYOVB 001556 RG 90-4081 90-4082 *103-4589 *103-4590 117-5025 117-5025 *117-5029 *117-5030 #185-8414
.SYSTA 000470 RG 60-2219 69-2702 89-4047 89-4048 90-4073 90-4089 91-4132 91-4133 91-4134
95-4272 95-4276 95-4281 98-4375 100-4462 100-4463 101-4492 101-4496 101-4503
101-4507 102-4548 102-4549 102-4550 103-4578 103-4582 103-4586 111-4840 111-4842
111-4845 117-5025 117-5027 117-5035 118-5078 119-5093 140-6012 143-6120 145-6254
151-6685 151-6687 158-7001 #185-8380 220-10139
.TPSHI 015412 RG 153-6794 153-6794 #154-6811
.TRKSW 000032 RG #182-8231 189-8649 *215-9905 *215-9907
.TTIBF 000270 RG 75-3048 75-3125 75-3228 88-3948 88-3978 156-6902 157-6967 160-7096 161-7124
163-7202 166-7309 170-7524 172-7677 #184-8357 197-9078 214-9850 *215-9896 215-9898
215-9900
.TTOBF 000330 RG #184-8360 196-9029 199-9193 199-9201 199-9210 199-9213 200-9266 200-9268 200-9281
200-9284 205-9440 206-9468 209-9598 217-9970 217-9988
.UFNSW 000025 RG 60-2207 70-2839 70-2851 *156-6896 *156-6932 *158-7034 *170-7517 *170-7567 *172-7718
*172-7729 #182-8218 220-10123
.USRFN 000442 RG 60-2209 70-2857 145-6248 156-6925 158-7037 170-7559 172-7721 #184-8368 220-10125
.WORK 000014 RG #182-8207
.WRMBX = 071000 #4-176 #8-445 148-6456
.ZERO 000000 RG 53-1830 56-2040 62-2293 134-5814 148-6439 148-6442 148-6443 148-6445 148-6446
148-6447 148-6449 148-6450 148-6454 148-6455 #182-8204 191-8831 191-8837 221-10179
222-10209
..DTP2 = ****** GX 177-8026 177-8026 191-8862 191-8862
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 27
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
..DTSP = ****** GX 175-7864 175-7864
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 28
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
ALUN$ #150-6587 #150-6617 #150-6619 #150-6622 #150-6625 #150-6627 #150-6629
BURST #24-965
CALL #4-231 #9-447 52-1794 52-1801 53-1827 53-1833 54-1861 54-1864 54-1867 54-1872
54-1877 54-1883 54-1887 56-1969 56-2041 60-2210 60-2215 60-2221 60-2239 61-2256
61-2267 61-2270 61-2271 62-2295 62-2300 62-2306 62-2315 62-2328 62-2332 62-2337
62-2340 62-2350 62-2355 63-2371 63-2377 63-2381 63-2403 63-2407 63-2412 63-2415
63-2425 63-2430 64-2455 64-2476 64-2478 64-2481 64-2483 64-2484 64-2496 65-2516
65-2520 65-2525 69-2700 69-2707 69-2715 69-2735 69-2738 69-2743 69-2745 69-2769
69-2780 69-2789 69-2794 69-2797 69-2799 69-2804 69-2821 70-2843 70-2846 70-2849
70-2852 70-2860 71-2874 72-2894 72-2897 72-2900 72-2903 72-2908 73-2929 73-2932
73-2935 73-2942 75-3046 75-3047 75-3118 75-3120 75-3122 75-3123 75-3124 75-3162
75-3179 75-3184 75-3227 75-3234 78-3471 80-3596 80-3601 80-3606 81-3637 81-3639
81-3647 81-3653 81-3661 81-3665 83-3763 83-3767 83-3775 83-3777 84-3806 86-3876
86-3879 88-3947 88-3976 88-3985 90-4085 95-4269 95-4278 98-4389 98-4397 98-4404
101-4485 101-4505 103-4571 105-4661 107-4726 108-4750 109-4782 110-4808 113-4914 114-4940
115-4974 116-5001 117-5037 121-5164 121-5203 122-5232 122-5235 122-5242 122-5297 123-5329
123-5332 123-5334 123-5340 123-5342 125-5407 125-5410 125-5413 125-5432 126-5459 126-5462
126-5466 126-5474 126-5487 127-5532 127-5536 129-5603 129-5609 129-5610 130-5642 130-5647
130-5656 130-5657 131-5690 131-5693 131-5696 135-5838 136-5876 140-6010 140-6024 140-6026
140-6032 140-6034 140-6040 140-6046 143-6118 143-6131 143-6134 143-6139 143-6146 143-6149
143-6152 143-6167 143-6170 143-6178 145-6245 145-6250 145-6252 145-6283 145-6298 145-6311
145-6318 145-6324 145-6333 146-6356 146-6386 149-6488 149-6491 149-6495 149-6502 149-6507
149-6512 149-6515 149-6524 149-6534 149-6547 153-6773 153-6787 153-6794 156-6901 156-6916
156-6929 157-6966 157-6988 158-6999 158-7014 158-7020 158-7024 158-7029 158-7032 158-7039
158-7047 160-7095 161-7123 161-7134 163-7201 166-7293 166-7307 166-7308 167-7375 167-7376
167-7388 167-7396 167-7414 167-7419 167-7421 167-7422 167-7423 167-7432 170-7523 170-7555
170-7563 172-7676 172-7704 172-7719 172-7725 172-7731 172-7733 172-7737 174-7785 174-7793
174-7795 174-7797 174-7805 174-7807 174-7809 174-7815 174-7817 174-7829 174-7834 175-7864
175-7866 175-7869 175-7892 176-7919 176-7923 176-7926 176-7929 176-7931 176-7935 177-8017
177-8019 177-8020 177-8022 177-8026 179-8097 179-8105 179-8110 179-8113 186-8455 186-8460
186-8463 186-8466 186-8475 186-8487 186-8490 186-8516 186-8520 186-8523 186-8530 186-8538
186-8545 186-8548 186-8551 186-8552 189-8662 189-8675 189-8690 191-8793 191-8796 191-8801
191-8810 191-8838 191-8844 191-8848 191-8851 191-8858 191-8862 193-8925 193-8927 193-8929
193-8932 193-8935 194-8959 194-8961 194-8963 194-8970 194-8977 196-9031 197-9079 197-9080
199-9188 199-9195 199-9198 199-9203 199-9211 199-9212 199-9215 200-9248 200-9263 200-9267
200-9270 200-9282 200-9286 205-9442 205-9443 205-9449 205-9453 205-9455 206-9470 206-9471
206-9477 206-9480 206-9482 206-9487 206-9489 209-9600 209-9602 216-9947 217-9969 217-9992
217-9994 220-10117 220-10127 220-10134 220-10152 221-10163 221-10166 221-10181 221-10188 221-10192
222-10211 222-10219 222-10223 224-10295 224-10298 224-10301 225-10333 225-10336 225-10339 225-10344
225-10346 226-10383 227-10408 227-10410 228-10435 228-10438 228-10443 228-10445 228-10452 228-10455
228-10458 228-10462 228-10465 229-10495 229-10500 229-10505 229-10511 229-10520 230-10543 230-10551
230-10554 230-10557 230-10567 230-10573
CALLR #4-240 #9-456 52-1807 54-1890 56-2056 71-2877 75-3022 75-3032 75-3061 75-3064
75-3193 75-3252 75-3255 82-3705 88-3961 88-4010 90-4097 95-4285 101-4502 101-4512
103-4600 107-4730 119-5100 121-5214 125-5439 127-5539 136-5873 140-6045 143-6175 145-6260
145-6344 158-7044 167-7435 168-7454 168-7457 168-7460 168-7463 176-7939 179-8115 196-9032
220-10141 224-10304 225-10357 227-10414 229-10525 230-10576
CLEF$S #150-6587
DFPC #23-935
DFRD #12-572
DFRDT #13-593
DFSCLK #22-925
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 29
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
DFWRT #14-634
DFWRTT #15-674
DFXCT #16-713
DFXCTT #17-745
DIR$ #4-175 #90-4071 #90-4087 #95-4270 #95-4274 #95-4279 #101-4486 #101-4490 #101-4494 #101-4506
#103-4572 #103-4576 #103-4580 #103-4584 #103-4598 #105-4653 #105-4657 #105-4658 #105-4663 #111-4840
#111-4840 #117-5025 #117-5025 #119-5091 #129-5618 #130-5659 #133-5764 #135-5851 #136-5869 #138-5948
#151-6662 #151-6664 #151-6667 #151-6672 #151-6674 #151-6676 #151-6680 #151-6680 #151-6685 #151-6685
#151-6691 #151-6691 #186-8541 #186-8541 #187-8592 #189-8696 #215-9882 #215-9883 #215-9891 #215-9911
#215-9911 #218-10017
DPOS #18-778
DPOST #19-818
DTEBAS #25-979
ERROR #7-374 #55-1949 #58-2145 #58-2146 #58-2147 #58-2148 #58-2149 #67-2606 #76-3304 #76-3306
#87-3930 #97-4350 #97-4351 #97-4352 #97-4353 #106-4702 #106-4704 #112-4888 #112-4890 #128-5583
#128-5584 #132-5741 #134-5818 #137-5917 #144-6217 #144-6219 #144-6221 #144-6223 #148-6472 #150-6632
#150-6634 #150-6636 #152-6748 #165-7283 #171-7655 #171-7661 #176-7997 #181-8188 #181-8190 #181-8192
#219-10070 #223-10273 #223-10275
ERR$ #90-4071 #90-4087 #95-4270 #95-4274 #95-4279 #101-4486 #101-4490 #101-4494 #101-4506 #103-4572
#103-4576 #103-4580 #103-4584 #103-4598 #105-4653 #105-4657 #105-4658 #105-4663 #111-4840 #117-5025
#119-5091 #129-5618 #130-5659 #133-5764 #135-5851 #136-5869 #138-5948 #151-6662 #151-6664 #151-6667
#151-6672 #151-6674 #151-6676 #151-6680 #151-6685 #151-6691 #186-8541 #187-8592 #189-8696 #215-9882
#215-9883 #215-9891 #215-9911 #218-10017
EXAM #20-857
EXAMT #21-903
EXCT #28-1041
EXIT$S #150-6587 #151-6680 #151-6691 #181-8165 #186-8541 #214-9845 #215-9911
EXOR #10-508
FATAL #50-1700
GLUN$ #100-4456 #100-4461 #102-4542 #102-4547
IDENT$ #4-190 #51-1712 #51-1712 #55-1893 #55-1893 #58-2092 #58-2092 #66-2541 #66-2541 #74-2950
#74-2950 #76-3263 #76-3263 #79-3540 #79-3540 #85-3820 #85-3820 #87-3888 #87-3888 #89-4014
#89-4014 #91-4100 #91-4100 #97-4321 #97-4321 #100-4429 #100-4429 #102-4515 #102-4515 #104-4603
#104-4603 #106-4668 #106-4668 #112-4854 #112-4854 #118-5046 #118-5046 #120-5103 #120-5103 #124-5353
#124-5353 #128-5543 #128-5543 #132-5707 #132-5707 #134-5782 #134-5782 #137-5881 #137-5881 #139-5957
#139-5957 #141-6052 #141-6052 #144-6183 #144-6183 #147-6408 #147-6408 #150-6554 #150-6554 #155-6837
#155-6837 #159-7053 #159-7053 #162-7160 #162-7160 #164-7240 #164-7240 #169-7480 #169-7480 #171-7585
#171-7585 #176-7943 #176-7943 #180-8119 #180-8119 #190-8703 #190-8703 #192-8873 #192-8873 #195-8983
#195-8983 #198-9110 #198-9110 #202-9319 #202-9319 #208-9551 #208-9551 #211-9680 #211-9680 #214-9813
#214-9813 #219-10021 #219-10021 #223-10233 #223-10233
IO10$ #6-315 51-1748 55-1938 55-1939 55-1943 58-2141 85-3855 85-3856 176-7987 190-8747
190-8748 190-8749 190-8750 190-8754 219-10066
I10$ #6-299 #55-1940 #55-1941 #55-1942 #55-1944 #181-8171
KLDR$ #132-5733 #132-5738
KLDW$ #134-5808 134-5813
KLDX$ #137-5909 #137-5914
KLIVR$ #150-6588 #150-6638 #150-6638
LODAR #26-1010
MESSAG #7-366 55-1950 55-1951 55-1952 58-2150 58-2151 58-2152 58-2153 58-2154 67-2604
74-2987 74-2989 74-2991 74-2993 74-2995 150-6638 155-6866 155-6868 159-7082 159-7083
162-7190 165-7279 165-7281 169-7511 171-7637 171-7639 171-7641 171-7645 176-8004 181-8186
190-8770
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 30
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
MOV$ #111-4840 #111-4840 111-4840 111-4840 111-4840 111-4840 111-4840 111-4840 111-4840 111-4840
111-4840 #117-5025 #117-5025 117-5025 117-5025 117-5025 117-5025 117-5025 117-5025 117-5025
117-5025 117-5025 #151-6685 #151-6685 151-6685 151-6685 151-6685 151-6685 151-6685 151-6685
151-6685 151-6685 151-6685 151-6685
MRESET #31-1132
MRKT$S #176-7981
MVB$ #111-4840 111-4840 #117-5025 117-5025 #151-6685 151-6685
NBL$ #150-6617 150-6617 #150-6619 150-6619 #150-6622 150-6622 #150-6625 150-6625 #150-6627 150-6627
#150-6629 150-6629
OFF$ #89-4047 #89-4047 #89-4047 #89-4047 #89-4047 #89-4047 #89-4047 #89-4047 #89-4047 #89-4048
#89-4048 #89-4048 #89-4048 #89-4048 #89-4048 #89-4048 #89-4048 #89-4048 #91-4132 #91-4132
#91-4132 #91-4132 #91-4132 #91-4132 #91-4132 #91-4132 #91-4132 #91-4133 #91-4133 #91-4133
#91-4133 #91-4133 #91-4133 #91-4133 #91-4133 #91-4133 #91-4134 #91-4134 #91-4134 #91-4134
#91-4134 #91-4134 #91-4134 #91-4134 #91-4134 #100-4461 #100-4461 #100-4461 #100-4461 #100-4462
#100-4462 #100-4462 #100-4462 #100-4462 #100-4462 #100-4462 #100-4462 #100-4462 #100-4463 #100-4463
#100-4463 #100-4463 #100-4463 #100-4463 #100-4463 #100-4463 #100-4463 #100-4464 #100-4464 #100-4464
#100-4464 #100-4464 #100-4464 #100-4464 #100-4464 #100-4464 #102-4547 #102-4547 #102-4547 #102-4547
#102-4548 #102-4548 #102-4548 #102-4548 #102-4548 #102-4548 #102-4548 #102-4548 #102-4548 #102-4549
#102-4549 #102-4549 #102-4549 #102-4549 #102-4549 #102-4549 #102-4549 #102-4549 #102-4550 #102-4550
#102-4550 #102-4550 #102-4550 #102-4550 #102-4550 #102-4550 #102-4550 #102-4551 #102-4551 #102-4551
#102-4551 #102-4551 #102-4551 #102-4551 #102-4551 #102-4551 #104-4636 #104-4636 #104-4636 #104-4636
#104-4636 #104-4636 #104-4636 #104-4636 #104-4636 #104-4637 #104-4637 #104-4637 #104-4637 #104-4637
#104-4637 #104-4637 #104-4637 #104-4637 #104-4638 #104-4638 #104-4638 #104-4638 #104-4638 #104-4638
#104-4638 #104-4638 #104-4638 #104-4639 #104-4639 #104-4639 #104-4639 #104-4639 #104-4639 #104-4639
#104-4639 #104-4639 #118-5078 #118-5078 #118-5078 #118-5078 #118-5078 #118-5078 #118-5078 #118-5078
#118-5078 #150-6617 #150-6617 #150-6617 #150-6617 #150-6617 #150-6619 #150-6619 #150-6619 #150-6619
#150-6619 #150-6622 #150-6622 #150-6622 #150-6622 #150-6622 #150-6625 #150-6625 #150-6625 #150-6625
#150-6625 #150-6627 #150-6627 #150-6627 #150-6627 #150-6627 #150-6629 #150-6629 #150-6629 #150-6629
#150-6629 #181-8175 #181-8175 #181-8175 #181-8175 #181-8175 #181-8175 #181-8175 #181-8175 #181-8175
#214-9850 #214-9850 #214-9850 #214-9850 #214-9850 #214-9850 #214-9850 #214-9850 #214-9850 #214-9851
#214-9851 #214-9851 #214-9851 #214-9851 #214-9851 #214-9851 #214-9851 #214-9851
PBELL #45-1559
PCRLF #45-1567
PFORCE #33-1185
PMSG #42-1468
PNORML #33-1188
PNTADR #35-1243
PNTAL #43-1499
PNTBAK #33-1191
PNTDEC #40-1389
PNTNBR #36-1270
PNTOCS #39-1357
PNTOCT #38-1325
PNTODT #41-1422
PNT36 #34-1215
PNT36B #37-1298
POP #4-258 #9-474 #64-2477 #77-3434 #77-3435 #78-3534 #78-3535 #78-3536 #81-3662 #81-3686
#84-3814 #84-3815 #84-3816 #86-3881 #96-4317 #103-4599 #105-4662 #123-5343 #125-5433 #133-5778
#135-5856 #136-5877 #138-5953 #145-6251 #149-6550 #154-6833 #188-8610 #193-8936 #194-8979 #196-9058
#197-9081 #197-9106 #201-9315 #205-9444 #205-9458 #206-9472 #206-9492 #209-9603 #209-9629 #210-9675
#212-9750 #213-9807 #213-9809 #216-9948 #226-10391 #228-10467
PRDP$ #128-5571 128-5576
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 31
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
PREX$ #128-5571 128-5577 #134-5808 134-5814
PRINT #7-378 #56-2057 #57-2085 #64-2457 #64-2495 #65-2534 #69-2806 #69-2823 #75-3070 #75-3199
#75-3226 #75-3258 #77-3364 #77-3409 #78-3464 #78-3511 #81-3685 #82-3723 #83-3749 #83-3787
#88-3940 #88-3946 #88-3957 #88-3975 #88-4000 #88-4004 #98-4405 #110-4818 #111-4849 #114-4946
#117-5041 #129-5620 #130-5668 #133-5776 #135-5854 #138-5951 #140-6014 #143-6122 #145-6256 #145-6291
#145-6337 #146-6351 #149-6517 #151-6679 #151-6690 #151-6705 #151-6712 #153-6806 #156-6900 #156-6939
#157-6965 #157-6976 #158-7008 #160-7094 #160-7109 #161-7122 #161-7155 #163-7200 #163-7211 #166-7326
#167-7410 #167-7428 #170-7522 #170-7537 #172-7675 #172-7692 #172-7708 #172-7740 #172-7748 #174-7818
#174-7844 #174-7849 #177-8025 #177-8028 #186-8505 #186-8531 #191-8861 #221-10194 #225-10360 #228-10471
PSLASH #45-1555
PSPACE #45-1551
PTAB #45-1563
PUSH #4-252 #9-468 #64-2474 #77-3357 #77-3358 #78-3459 #78-3460 #78-3461 #81-3660 #81-3684
#84-3801 #84-3802 #86-3874 #96-4305 #103-4597 #105-4659 #123-5327 #125-5431 #129-5601 #130-5640
#133-5761 #135-5837 #136-5874 #138-5935 #145-6249 #146-6390 #149-6542 #153-6778 #154-6812 #188-8608
#193-8917 #194-8954 #196-9028 #197-9077 #197-9085 #201-9308 #205-9439 #205-9448 #206-9467 #206-9476
#209-9597 #209-9607 #210-9658 #212-9726 #213-9769 #213-9771 #216-9916 #216-9921 #216-9933 #216-9938
#216-9944 #226-10380 #228-10433
QDPB$ #89-4047 89-4047 #89-4048 89-4048 #91-4132 91-4132 #91-4133 91-4133 #91-4134 91-4134
#100-4462 100-4462 #100-4463 100-4463 #100-4464 100-4464 #102-4548 102-4548 #102-4549 102-4549
#102-4550 102-4550 #102-4551 102-4551 #104-4636 104-4636 #104-4637 104-4637 #104-4638 104-4638
#104-4639 104-4639 #118-5078 118-5078 #181-8175 181-8175 #214-9850 214-9850 #214-9851 214-9851
QDPB$S #111-4840 111-4840 #117-5025 117-5025 #151-6685 151-6685
QIOW$ #89-4042 89-4047 89-4048 #91-4127 91-4132 91-4133 91-4134 #100-4456 100-4462 100-4463
100-4464 #102-4542 102-4548 102-4549 102-4550 102-4551 #104-4631 104-4636 104-4637 104-4638
104-4639 #118-5073 118-5078 #181-8165 181-8175 #214-9845 214-9850 214-9851
QIOW$S #106-4696 111-4840 #112-4882 117-5025 #150-6587 151-6685
REGRST #32-1169
REGSAV #32-1165
RETURN #4-244 #9-460 #52-1809 #53-1840 #54-1881 #56-2059 #57-2087 #60-2217 #60-2243 #64-2460
#64-2485 #64-2498 #65-2538 #69-2816 #69-2825 #70-2864 #71-2880 #72-2915 #73-2946 #77-3436
#78-3537 #80-3620 #81-3680 #81-3695 #82-3736 #83-3783 #83-3793 #84-3817 #86-3883 #90-4092
#95-4283 #96-4318 #98-4407 #99-4426 #101-4510 #103-4595 #105-4665 #107-4733 #108-4752 #108-4757
#109-4790 #110-4815 #110-4820 #111-4846 #111-4851 #113-4918 #114-4943 #114-4948 #115-4982 #116-5008
#117-5033 #117-5039 #117-5043 #119-5097 #121-5215 #122-5314 #123-5344 #123-5350 #125-5423 #126-5495
#127-5540 #129-5605 #129-5622 #130-5650 #130-5667 #130-5670 #131-5682 #131-5702 #131-5704 #133-5779
#135-5857 #136-5878 #138-5954 #140-6023 #140-6048 #143-6126 #143-6180 #146-6359 #146-6403 #149-6519
#149-6538 #149-6551 #151-6714 #153-6804 #154-6834 #158-7050 #170-7582 #173-7772 #174-7853 #175-7901
#176-7941 #179-8116 #187-8597 #189-8699 #191-8864 #193-8937 #194-8980 #196-9059 #197-9082 #197-9107
#199-9216 #200-9292 #201-9316 #205-9445 #205-9459 #206-9473 #206-9493 #207-9512 #207-9530 #207-9548
#209-9604 #209-9630 #210-9676 #212-9751 #213-9810 #215-9903 #216-9949 #218-10018 #220-10137 #220-10157
#221-10196 #222-10230 #224-10307 #225-10363 #226-10392 #227-10417 #228-10468 #229-10517 #230-10579
RVP$ #111-4840 #111-4840 #117-5025 #117-5025 #151-6685 #151-6685
SL #5-267 #10-480 #175-7873
SM #29-1071
SR #5-280 #10-494 65-2523 175-7876 230-10569
TRACK #7-387 #121-5162 #122-5231 #123-5328 #125-5402 #126-5455 #127-5509 #129-5617 #130-5660 #133-5765
#135-5852 #138-5947 #149-6486 #149-6543 #224-10294 #225-10326 #226-10379 #228-10432
TTIDEC #47-1623
TTILIN #48-1649
TTILNW #49-1675
TTIOCT #46-1595
KLIMON CREATED BY MACRO ON 12-OCT-79 AT 14:14 PAGE 32
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
WARNIN #7-370 79-3578 79-3580 79-3582 79-3584 87-3924 139-5991 142-6092 155-6870 165-7285
171-7657 171-7659
WD22$ #6-331 51-1749 58-2140 128-5578 176-7991
WD36$ #6-343 #51-1747 #51-1750 #55-1937 #58-2139 #120-5141 #120-5144 #124-5383 #124-5384 #128-5580
#134-5815 #148-6458 #148-6467 #148-6468 #148-6469 #171-7626 #176-7989 #176-7990 #181-8181 #190-8757
#190-8759 #190-8761 #190-8764 #223-10265 #223-10267 #223-10269
WSIG$S #176-7981
WTSE$S #176-7981 #214-9845
WWADR #30-1100
$DEF #4-175 #4-176 #8-443 #8-445
$PMSG #44-1520