Trailing-Edge
-
PDP-10 Archives
-
bb-x141b-bb
-
klinit.l10
There are 3 other files named klinit.l10 in the archive. Click here to see a list.
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55
TABLE OF CONTENTS
8- 437 MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE
12- 570 DMBMCP -- DTE-20 OPERATION MACROS
32- 1163 REGISTER SAVE/RESTORE TRANSLATION MACROS
52- 1783 $LDNGO -- LOAD AC BLOCKS AND GO
53- 1840 $ZERAC -- ZERO AC SETS 0 TO 6
54- 1871 $XCDT -- INSTRUCTION EXECUTER
56- 1986 $SETCA -- CONFIGURE CACHE
60- 2218 $MCBLD -- LOAD THE RAMS
63- 2361 RDMCV - READ MICROCODE VERSION/EDIT LEVEL
69- 2753 $FILE -- WRITE THE CONFIGURATION FILE
71- 3027 $FILE -- WRITE BOOTSTRAP RECORD
72- 3066 $FILE -- WRITE END-OF-FILE RECORD
73- 3082 $FILE -- WRITE MEMORY CONTROLLER RECORDS
74- 3117 $FILE -- WRITE CACHE RECORDS
75- 3149 $FILE -- WRITE MICROCODE RECORDS
76- 3175 $FILE -- WRITE PAGE TABLE SELECTION
78- 3243 $CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
80- 3556 $CHKIM -- CHECK INTERNAL MEMORY MASK WORD
81- 3685 $CHKMM -- CHECK MOS MEMORY CONFIGURATION
83- 3835 $CONFG -- EDITOR DISPATCH
84- 3871 CFGINT -- INTERNAL MEMORY CONFIGURATION EDITOR
85- 3946 CFGEXT -- EXTERNAL MEMORY CONFIGURATION EDITOR
86- 3987 CFGMOS -- MOS CONFIGURATION EDITOR
87- 4047 $MAPMM -- MAP MOS CONTROLLER BLOCKS
89- 4111 $SWEEP -- SWEEP AND INVALIDATE THE CACHE
91- 4185 $CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG
93- 4312 $CLOSE -- CLOSE FILES AND WRITE ATTRIBUTES
98- 4513 $DELETE -- DELETE A FILE
99- 4543 $SETFN -- SET FILE NAME IN FILE NAME BLOCK
101- 4613 $IOERR -- REPORT I/O ERROR
104- 4731 $LOOKUP -- LOOK UP AN EXISTING FILE
106- 4820 $ENTER -- ENTER A NEW FILE
108- 4906 $PURGE -- PURGE FILES CURRENTLY OPEN
110- 4971 $READC -- START READING A RECORD
111- 4999 $READS -- SKIP THE CURRENT RECORD
112- 5023 $READW -- READ A WORD
113- 5056 $READB -- READ A BYTE
114- 5086 $READ -- READ NEXT VIRTUAL BLOCK
116- 5159 $WRITC -- START WRITING A RECORD
117- 5186 $WRITS -- ZERO REMAINDER OF CURRENT BLOCK
118- 5216 $WRITW -- WRITE A WORD
119- 5250 $WRITB -- WRITE A BYTE
120- 5276 $WRITE -- WRITE NEXT VIRTUAL BLOCK
122- 5349 $EXTEND -- EXTEND OUTPUT FILE BY ONE BLOCK
124- 5418 $WCRAM -- WRITE C-RAM WORD
125- 5487 $RCRAM -- READ C-RAM WORD
126- 5586 $ACRAM -- ADDRESS C-RAM WORD
128- 5660 $WDRAM -- WRITE D-RAM WORD
129- 5713 $RDRAM -- READ D-RAM WORD
130- 5769 $ADRAM -- ADDRESS D-RAM WORD
132- 5861 $DPOS -- DEPOSIT KL MEMORY ROUTINE
133- 5898 $EXAM -- EXAMINE KL MEMORY ROUTINE
136- 6019 $DFRD -- DIAGNOSTIC READ FUNCTION
138- 6097 $DFWR -- DIAGNOSTIC WRITE FUNCTION
141- 6197 $DFXC -- DIAGNOSTIC EXECUTE FUNCTION
143- 6273 $GETCA -- SET CACHE CONFIGURATION TABLES
146- 6375 $GETMM -- SET UP MEMORY CONFIGURATION TABLES
KLIGP -- GET PAGE TABLE SELECTI MACRO M1113 03-APR-86 20:55
TABLE OF CONTENTS
149- 6506 $GETPA -- GET PAGE TABLE SELECTION
151- 6605 $GETTF -- READ MF20 TIMING FILE DATA
155- 6856 $KLMR -- DO A MASTER RESET ON THE KL
155- 6921 $KLSR -- SOFT RESET FOR RAM LOADERS
157- 7024 $INIT -- PROGRAM INITIALIZATION
158- 7134 $DFPC -- KL PC READ SUBROUTINE 7510.21
161- 7264 $DLGBT -- ASK IF LOADING BOOT IS REQUIRED
162- 7331 $DLWCF -- ASK IF CONFIGURATION FILE IS TO BE WRITTEN
163- 7380 LQBRBF -- SUBROUTINE TO READ SAVED BOOT FLAG
165- 7474 $DLGCA -- ASK IF CACHE IS TO BE CONFIGURED
166- 7508 LQCCM -- ASK WHICH CACHES TO CONFIGURE
168- 7583 $DLGEX -- ASK WHERE TO EXIT
171- 7683 $DLGMM -- ASK WHETHER TO CONFIGURE THE KL MEMORY
173- 7836 $DLGCT -- ASK FOR MEMORY CONTROLLER NUMBER
175- 8005 $DLGRM -- ASK IF RELOAD MICROCODE IS REQUIRED
176- 8191 $DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
184- 8612 $POWER -- POWER FAILURE RESTART
186- 8700 $WRMRS -- WARM RESTART (FAULT CONTINUATION)
191- 8939 GLOBAL DATA STORAGE
195- 9221 $START -- MAIN PROGRAM FLOW CONTROL
196- 9338 $DTRXX -- DTE20 REGISTER READ/WRITE SUBROUTINES
197- 9379 $RSAVE -- SAVE REGISTERS FOR ROUTINES
198- 9393 $ASCIZ -- TRANSFER ASCII STRING
199- 9414 $TRACK -- SPECIAL TRACK ROUTINE
200- 9568 $TENST -- START KL BOOT
202- 9698 $TRB2F -- TRANSLATE BINARY TO ASCII FILENAME
203- 9737 $TRF2B -- TRANSLATE ASCII FILE-NAME TO BINARY
205- 9809 $TRB2I -- TRANSLATE BINARY WORD TO INTEGER ASCII
206- 9860 $TRI2B -- TRANSLATE ASCII INTEGER TO BINARY WORD
208- 9954 $TRCRM -- TRANSLATE CRAM FILE ENTRY TO ASCII OCTAL
209-10018 $TRDRM -- TRANSLATE DRAM FILE ENTRY TO ASCII OCTAL
210-10094 TROCT -- TRANSLATE OCTAL VALUE TO ASCII DIGITS
212-10152 $TENAD -- DISPLAY KL ADDRESS/16K
214-10234 $WRD22 -- DISPLAY 22 BIT KL WORD
215-10262 $WRD36 -- DISPLAY 36 BIT KL WORD
218-10382 $TRB2O -- TRANSLATE BINARY WORD AS OCTAL ASCII
219-10435 $TRO2B -- TRANSLATE ASCII OCTAL NUMBER TO BINARY WORD
221-10511 $TRR2B -- TRANSLATE ASCII TO RAD50 WORD
222-10557 $TRB2R -- TRANSLATE RAD50 WORD TO ASCII
224-10676 $TTRD -- READ A LINE FROM THE CONSOLE TTY
226-10803 $TTMSG -- WRITE A MESSAGE TO THE CONSOLE TTY
227-10854 $TTWR -- WRITE A LINE TO THE CONSOLE TTY
228-10884 $ECHO -- ECHO CTY OUTPUT TO LP
229-10971 $EXBLD -- LOAD THE BOOT
233-11203 $EXCT -- EXECUTE KL INSTRUCTION
234-11234 $STRKL -- START THE KL PROCESSOR
235-11290 $WTKL -- WAIT FOR KL PROGRAM TO HALT
236-11319 $LDAR -- LOAD THE AR REGISTER
237-11344 STPKL -- HALT THE KL CPU
238-11401 $MBPHS -- PHASE THE KL CLOCKS
239-11453 $BURST -- BURST THE M-BOX CLOCK
RSXFC -- RSX20F PARAMETER FIL MACRO M1113 03-APR-86 20:55 PAGE 1
1 .TITLE RSXFC -- RSX20F PARAMETER FILE (TOPS-10 SYSTEM DEFINITION)
2 .IDENT /013100/
3 ;
4 ; COPYRIGHT (C) 1977, 1978, 1985 BY
5 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
6 ; ALL RIGHTS RESERVED
7 ;
8 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
9 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
10 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
11 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
12 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
13 ;
14 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
15 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
16 ; CORPORATION.
17 ;
18 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
19 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
20 ;
21 ; VERSION 13-10
22 ;
23 ; ALAN D. PECKHAM 19-APR-77
24 ;
25 ; MODIFIED BY:
26 ;
27 ; R. BELANGER -- ELIMINATE 1090T "ARPA" CONFIGURATTION
28 ; R. BELANGER -- ADD 1091 CONFIGURATION
29 ;
30 ; FUNCTION: THIS MODULE PROVIDES THE PARAMETERS FOR ASSEMBLY OF RSX20F FOR
31 ; THE TOPS-10 SYSTEM.
32 ;
33 ; EQUATED SYMBOLS
34 ;
35 000001 $TOP10 =1 ; DEFINE TOPS-10 OPTION
36
37 000001 $LP20 =1 ; INCLUDE LP20 DRIVER
38 000002 L$$P20 =2 ; INCLUDE 2 LP-20'S
39 000001 $CD11 =1 ; INCLUDE CD11 CARD READER DRIVER
40 000001 $RP04 =1 ; INCLUDE RP04 DISK DRIVER
41 000001 $FE =1 ; INCLUDE FE PSEUDO-DEVICE DRIVER
42 000001 $F11 =1 ; INCLUDE FILES-11 ACP
43 000001 $DH11 =1 ; INCLUDE DH11 DRIVER
44 000010 D$$H11 =8. ; INCLUDE 8 DH-11'S
45 000001 $DBDTE =1 ; INCLUDE DTE20 DEBUGGING CODE
46 000001 $DTE =1 ; INCLUDE DTE20 DTE DRIVER
47 000001 R$$11D =1 ; RSX-11D BASE
48
49 .IF DF $T1091
50 $TOP10 =1 ; DEFINE TOPS-10 BASE FOR 1091
51 .ENDC ; $T1091
52
53 .IF DF $TOP10
54 .IF NDF $T1091
55 000001 $DTA =1 ; INCLUDE DECTAPE DRIVER FOR TOPS-10
56 .IFF
57 $RX11 =1 ; INCLUDE FLOPPY DRIVER FOR TOPS-10/1091
RSXFC -- RSX20F PARAMETER FIL MACRO M1113 03-APR-86 20:55 PAGE 1-1
58 .ENDC ; $T1091
59 .ENDC ; $TOP10
60
61 .IF DF $TOP20
62 $RX11 =1 ; INCLUDE FLOPPY DRIVER
63 .ENDC ; $TOP20
RSXFC -- RSX20F PARAMETER FIL MACRO M1113 03-APR-86 20:55 PAGE 2
65
66 .TITLE KLINIT - KL CPU INITIALIZATION PROGRAM
67 .IDENT /015500/
68 .ENABL AMA
69 .LIST MEB
70 .NLIST CND
71
72 ;
73 ; COPYRIGHT (C) 1975, 1984, 1985 BY
74 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
75 ; ALL RIGHTS RESERVED.
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: 15-50
90 ;
91 ; ALAN D. PECKHAM 29-MAR-77
92 ;
93 ; MODIFIED BY:
94 ;
95 ; M. RUDENKO 09-FEB-84 CHANGE VERSION TO 15
96 ; ADD MG20 CONFIGURATION
97 ; ADD MCA25 PAGE TABLE SELECTION
98 ;
99 ; D. WEAVER 02-AUG-83 CHANGE VERSION TO 13
100 ; WARM RESTART CODE
101 ;
102 ; S. LEAPLINE 06-MAR-80 FIX RACE CONDITION IN BOOT
103 ; TCO 4.1.1100
104 ;
105 ; K. LEFEBVRE 25-JAN-80 LOG RAM ERRORS TO ERROR FILE
106 ; TCO 4.1.1073
107 ;
108 ; R. BELANGER 22-OCT-79 ADD CACHE SWEEP ON RELOAD OR BOOT
109 ; TCO 5.1013
110 ;
111 ; K. LEFEBVRE 19-SEP-79 ADD LP SUPPORT FOR TRACK FEATURE
112 ; TCO 5.1005
113 ;
114 ; R. BELANGER 16-JUL-79 ADD ENVIRONMENTAL REPORTING
115 ; TCO 4.2333
116 ;
117 ; R. BELANGER 11-JUL-79 ADD FORCE MEMORY CONFIGURATION OPTION.
118 ; ADD FORCE DBE SCAN ON MF-20 POWERFAIL.
119 ; TCO 4.2322
120 ;
121 ; K. LEFEBVRE 13-MAR-79 ADD EXPANDED CRAM/DRAM ERROR REPORT
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 2-1
122 ; TCO 4.2209
123 ;
124 ; K. LEFEBVRE 01-MAR-79 ADD PERMANENT TRACK FEATURE
125 ; TCO 4.2210
126 ;
127 ; R. BELANGER 01-MAR-79 ADD REVERSE MEMORY CONFIGURATION
128 ; TCO 4.2204
129 ;
130 ; R. BELANGER 06-DEC-78 ADD NEW KEEP-ALIVE-CEASE PROCESSING
131 ; TCO 4.2107
132 ;
133 ; R. BELANGER 16-NOV-78 ADD TOPS-10 SMP FEATURES
134 ; CHANGE VERSION TO 11
135 ;
136 ; R. BELANGER 25-JUL-78 INTEGRATE MOS CONFIGURATOR
137 ; CHANGE VERSION TO 10
138 ;
139 ; R. BELANGER 27-JAN-78 CHANGE VERSION TO 7
140 ; REMOVE "$ARPA" CONDITIONALS
141 ; ADD "$RV" CONDITIONAL
142 ; REMOVE "SXCT" CODE FOR REV. 10 MACHINES
143 ;
144 ; R. BELANGER 10-SEP-77 CHANGE VERSION TO 6
145 ; INCLUDE INTERNAL AND EXTERNAL
146 ; MEMORY CONFIGURATORS
147 ;
148 ; THIS MODULE CONTAINS SYMBOLS AND MACROS USED GENERALLY BY ALL KLINIT
149 ; MODULES.
150 ;
151 ; SET VERSION OF KLINIT HERE
152 ;
153 000015 KLI$$V = 15 ; VERSION 15
154 000050 KLI$$E = 50 ; EDIT 50
155 ;
156 ;
157 000126 KLI$$K = 'V ; KEY FOR RELEASE
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 3
159 ;+
160 ; NOW SET THE SWITCHES WHICH WILL DETERMINE WHAT KLINIT WILL
161 ; INTERFACE TO.
162 ;
163 ; C.ACHE IF DEFINED WILL ALLOW KLINIT TO HANDLE CACHES
164 ;
165 ; F.TRCK IF DEFINED WILL INCLUDE CODING TO ALLOW TRACKING OF FUNCTIONS
166 ; BEING DONE ON THE KL CPU
167 ;
168 ; F.PTCH IF DEFINED WILL INCLUDE A FREE AREA LABELED "PATCH" IN WHICH
169 ; TO INSERT CODING PATCHES DURING PROGRAM DEBUGGING
170 ;
171 ; DEFINITIONS MADE HERE:
172 ;-
173
177
179 000101 KLI$$F = 'A ; TOPS10 REV 10 FORM OF KLINIT.
181
185
186 000000 C.ACHE = 0 ; SYSTEM HAS CACHE
187
188 000001 F.TRCK = 1 ; [TCO 4.2210] INCLUDE FUNCTION TRACK
189
190 000001 FTKLI = 1 ; [4.1.1073]ASSEMBLE EROOR LOG INTERFACE
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 4
192 ;
193 ; GLOBAL MACROS
194 ;
195 .MCALL $DEF,DIR$
196 000000 $DEF
197
198 ;
199 ; LOCAL MACROS
200 ;
201 ;+
202 ; MACRO TO SET IDENT FOR KLINIT MODULES.
203 ; FORMAT OF CALL IS:
204 ; IDENT$ VERSION,EDIT
205 ; OR
206 ; IDENT$ VERSION,EDIT,KLI$$F
207 ; IF MODULE CODING CHANGES WITH DIFFERENT FORMS
208 ;-
209
210 .MACRO IDENT$ VER,EDT,FRM,XA,XB,XC,NUM
211 .IF B,NUM
212 .IF B,FRM
213 IDENT$ \VER,\EDT,0,,,,0
214 .IFF
215 .IF EQ,<FRM-'A>
216 IDENT$ \VER,\EDT,A,,,,0
217 .IFF
218 .IF EQ,<FRM-'B>
219 IDENT$ \VER,\EDT,B,,,,0
220 .IFF
221 IDENT$ \VER,\EDT,C,,,,0
222 .ENDC
223 .ENDC
224 .ENDC
225 .MEXIT
226 .IFF
227 .IF GE,VER-10
228 .IF GE,EDT-10
229 .LIST
230 .IDENT /'FRM'VER'EDT'0/
231 .NLIST
232 .IFF
233 .LIST
234 .IDENT /'FRM'VER'0'EDT'0/
235 .NLIST
236 .ENDC
237 .IFF
238 .IF GE,EDT-10
239 .LIST
240 .IDENT /'FRM'0'VER'EDT'0/
241 .NLIST
242 .IFF
243 .LIST
244 .IDENT /'FRM'0'VER'0'EDT'0/
245 .NLIST
246 .ENDC
247 .ENDC
248 .ENDC
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 4-1
249 .ENDM IDENT$
250
251 .MACRO CALL X,Y
252 .NTYPE $$,X
253 .IF EQ,$$&70
254 JSR X,Y
255 .IFF
256 JSR PC,X
257 .ENDC
258 .ENDM CALL
259
260 .MACRO CALLR X
261 JMP X
262 .ENDM CALLR
263
264 .MACRO RETURN X
265 .IF NB,<X>
266 RTS X
267 .IFF
268 RTS PC
269 .ENDC
270 .ENDM RETURN
271
272 .MACRO PUSH LOCS
273 .IRP L,<LOCS>
274 MOV L,-(SP)
275 .ENDR
276 .ENDM PUSH
277
278 .MACRO POP LOCS
279 .IRP L,<LOCS>
280 MOV (SP)+,L
281 .ENDR
282 .ENDM POP
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 5
284 ;
285 ; SHIFT MACROS
286 ;
287 .MACRO SL R,N
288 .IF GT,N-7
289 SWAB R
290 .REPT N-10
291 ASL R
292 .ENDR
293 .IFF
294 .REPT N
295 ASL R
296 .ENDR
297 .ENDC
298 .ENDM SL
299
300 .MACRO SR R,N
301 .IF GT,N-7
302 SWAB R
303 .REPT N-10
304 ASR R
305 .ENDR
306 .IFF
307 .REPT N
308 ASR R
309 .ENDR
310 .ENDC
311 .ENDM SR
312
313 .MACRO ERROR$ CODE
314 MOV #^R'CODE,$LGERR
315 SEC
316 RETURN
317 .ENDM ERROR$
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 6
319 ;
320 ; KL INSTRUCTION AND DATA CREATION MACROS
321 ;
322 000005 I.10L = 5 ; KL INSTRUCTIONS TAKE 5 -11 BYTES !!!!
323 000005 W.10L = 5 ; KL WORDS TAKE 5 BYTES ALSO.
324
325 .MACRO I10$ OP,AC,I,AD,XR
326 BY$$0=0
327 BY$$1=0
328 BY$$2=0
329 .IRPC AD1,AD
330 BY$$2=<BY$$2*10&370>+<BY$$1/40&007>
331 BY$$1=<BY$$1*10&370>+<BY$$0/40&007>
332 BY$$0=<BY$$0*10&370>+<AD1>
333 .ENDM
334 BY$$2=<AC+0&1*200>+<I+0&1*100>+<XR+0&17*4>+BY$$2
335 BY$$3=<OP&37*10>+<AC+0/2&7>
336 BY$$4=<OP/40>
337 .BYTE BY$$0,BY$$1,BY$$2
338 .BYTE BY$$3,BY$$4
339 .ENDM I10$
340
341 .MACRO IO10$ OP,DV,I,AD,XR
342 BY$$0=0
343 BY$$1=0
344 BY$$2=0
345 .IRPC AD1,AD
346 BY$$2=<BY$$2*10&370>+<BY$$1/40&007>
347 BY$$1=<BY$$1*10&370>+<BY$$0/40&007>
348 BY$$0=<BY$$0*10&370>+<AD1>
349 .ENDM
350 BY$$2=<OP&1*200>+<I+0&1*100>+<XR+0&17+0*4>+BY$$2
351 BY$$3=<DV&374>+<OP/2&3>
352 BY$$4=16+<DV/400&1>
353 .BYTE BY$$0,BY$$1,BY$$2
354 .BYTE BY$$3,BY$$4
355 .ENDM IO10$
356
357 .MACRO WD22$ AD
358 BY$$0=0
359 BY$$1=0
360 BY$$2=0
361 .IRPC AD1,AD
362 BY$$2=<BY$$2*10&370>+<BY$$1/40&007>
363 BY$$1=<BY$$1*10&370>+<BY$$0/40&007>
364 BY$$0=<BY$$0*10&370>+<AD1>
365 .ENDM
366 .BYTE BY$$0,BY$$1,BY$$2
367 .ENDM WD22$
368
369 .MACRO WD36$ LH,RH
370 BY$$0=0
371 BY$$1=0
372 BY$$2=0
373 BY$$3=0
374 BY$$4=0
375 .IRPC AD1,LH
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 6-1
376 BY$$4=<BY$$4*10&010>+<BY$$3/40&007>
377 BY$$3=<BY$$3*10&370>+<BY$$2/40&007>
378 BY$$2=<BY$$2*10&340>+<AD1*4>
379 .ENDM
380 .IRPC AD1,RH
381 BY$$2=<BY$$2&374>+<BY$$1/40&003>
382 BY$$1=<BY$$1*10&370>+<BY$$0/40&007>
383 BY$$0=<BY$$0*10&370>+<AD1>
384 .ENDM
385 .BYTE BY$$0,BY$$1,BY$$2
386 .BYTE BY$$3,BY$$4
387 .ENDM WD36$
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 7
389 ;
390 ; MESSAGE FORMATING AND PRINT MACROS
391 ;
392 .MACRO MESSAGE MSG
393 .ASCIZ \'MSG'\
394 .ENDM MESSAGE
395
396 .MACRO WARNING MSG
397 .ASCIZ \% 'MSG'\
398 .ENDM WARNING
399
400 .MACRO ERROR MSG
401 .ASCIZ \? 'MSG'\
402 .ENDM ERROR
403
404 .MACRO PRINT ADR
405 .IF NB,<ADR>
406 MOV ADR,R0
407 .ENDC
408 JSR PC,$TTMSG
409 .ENDM PRINT
410
411 ;--- SPECIAL TRACK MACRO
412
413 .MACRO TRACK FN,ADR1,ADR2,?A1
414 .IF DF,F.TRCK
415 JSR R0,A1
416 .WORD "FN
417 .WORD ADR1
418 .WORD ADR2
419 A1: JSR PC,$TRACK
420 MOV (SP)+,R0
421 .ENDC
422 .ENDM TRACK
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 8
424 ;
425 ; EQUATED SYMBOLS
426 ;
427 000006 E.FFIL = 6 ; [4.1.1073]LOGGING EVENT FLAG
428 000200 ED.PHY = 200
429 000001 TTILUN = 1 ; TT: INPUT LOGICAL UNIT
430 000002 TTOLUN = 2 ; TT: OUTPUT LOGICAL UNIT
431 000003 LPOLUN = 3 ; LP: OUTPUT LOGICAL UNIT
432 000004 SYILUN = 4 ; SY: INPUT LOGICAL UNIT
433 000005 SYOLUN = 5 ; SY: OUTPUT LOGICAL UNIT
434 000006 SYFLUN = 6 ; SY: GENERAL FUNCTION LOGICAL UNIT
435 000006 LOGLUN = 6 ; [4.1.1073] SY: ERROR LOGGING LUN
436 000040 CTLS = 40 ; MAXIMUM NUMBER OF CONTROLLERS.
437 .SBTTL MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE
438
439 .IDENT /001020/
440
441 ; COPYRIGHT (C) 1975, 1984, 1985 BY
442 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
443 ; ALL RIGHTS RESERVED.
444 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
445 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
446 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
447 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
448 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
449 ;
450 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
451 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
452 ; CORPORATION.
453 ;
454 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
455 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
456 ;
457 ; VERSION: 01-02
458 ;
459 ; AUTHOR: R. BELANGER
460 ;
461 ; DATE: 11-AUG-78
462 ;
463 ; MODIFICATIONS:
464 ;
465 ; EDIT PROGRAMMER REASON
466 ; ---- ---------- ------
467 ; 001 R. BELANGER FIX BUG IN "PMSG"
468 ; 4.2218 K. LEFEBVRE FIX BUG IN "EXAM"
469
470 .MCALL $DEF
471
472 000000 $DEF
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 9
MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE
474 .MACRO CALL X,Y
475 .NTYPE $$,X
476 .IF EQ,$$&70
477 JSR X,Y
478 .IFF
479 JSR PC,X
480 .ENDC
481 .ENDM CALL
482
483 .MACRO CALLR X
484 JMP X
485 .ENDM CALLR
486
487 .MACRO RETURN X
488 .IF NB,<X>
489 RTS X
490 .IFF
491 RTS PC
492 .ENDC
493 .ENDM RETURN
494
495 .MACRO PUSH LOCS
496 .IRP L,<LOCS>
497 MOV L,-(SP)
498 .ENDR
499 .ENDM PUSH
500
501 .MACRO POP LOCS
502 .IRP L,<LOCS>
503 MOV (SP)+,L
504 .ENDR
505 .ENDM POP
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 10
MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE
507 .MACRO SL REG,NUM
508 .IF GT,NUM-7
509 .IFT
510 SWAB REG
511 .REPT NUM-^D8
512 ASL REG
513 .ENDR
514 .IFF
515 .REPT NUM
516 ASL REG
517 .ENDR
518 .ENDC
519 .ENDM
520
521 .MACRO SR REG,NUM
522 .IF GT,NUM-7
523 .IFT
524 SWAB REG
525 .REPT NUM-^D8
526 ASR REG
527 .ENDR
528 .IFF
529 .REPT NUM
530 ASR REG
531 .ENDR
532 .ENDC
533 .ENDM
534
535 .MACRO EXOR REG,DESTIN,SCRTCH
536 .IF NB,SCRTCH
537 .IFT
538 MOV REG,SCRTCH
539 BIC DESTIN,SCRTCH
540 BIC REG,DESTIN
541 BIS SCRTCH,DESTIN
542 .IFF
543 MOV REG,-(SP)
544 BIC DESTIN,(SP)
545 BIC REG,DESTIN
546 BIS (SP)+,DESTIN
547 .ENDC
548 .ENDM
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 11
MOSDEF -- DIAGNOSTIC MEMORY BOOT MACRO COMPATABILITY PACKAGE
550
551 000000 STPCLK= 000 ; STOP CLOCK
552 000001 STRCLK= 001 ; START CLOCK
553 000002 SSCLK= 002 ; SINGLE STEP THE MBOX CLOCK
554 000003 SECLK= 003 ; SINGLE STEP EBOX CLOCK
555 000004 CECLK= 004 ; CONDITIONAL EBOX CLOCK
556 000006 CLRMR= 006 ; CLEAR MR RESET
557 000007 SETMR= 007 ; SET MR RESET
558 000005 BRCLK= 005 ; BURST THE CLOCK
559 000011 SETRUN= 011 ; SET THE RUN FLOP
560 000012 CONBUT= 012 ; SET THE CONTINUE BUTTON
561 000077 LDAR= 077 ; LOAD THE AR REGISTER
562
563 000002 $SBDIAG=BLKO
564 000004 $$SBDIAG=PI
565 000000 $APRID=BLKI
566 000000 $$APRID=APR
567 000000 $RDERA=BLKI
568 000004 $$RDERA=PI
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 12
DMBMCP -- DTE-20 OPERATION MACROS
570 .SBTTL DMBMCP -- DTE-20 OPERATION MACROS
571
572 ;+
573 ; DFRD -- DIAGNOSTIC FUNCTION READ TRANSLATION MACRO
574 ;
575 ; DFRD TRANSLATES THE DIAGNOSTIC EMT 116 IN TO A CALL TO "$DDFRD"
576 ;
577 ; SEQUENCE OF OPERATION:
578 ;
579 ; 1. R1 IS SAVED ON THE STACK
580 ; 2. R1 IS SET POINTING TO STORAGE
581 ; 3. CALL TO "$DDFRD" IS MADE
582 ;
583 ; ERROR RETURN -- CC-C SET
584 ;
585 ; SUCCESS RETURN -- CC-C CLEAR
586 ;
587 ; R0 -- POINTS TO DEXWDS IN ".DFRBK"
588 ;
589 ; STACK SUMMARY:
590 ;
591 ; STACK IS UNAFFECTED
592 ;
593 ; CALLER'S RESPONSIBILITIES:
594 ;
595 ; NONE
596 ;
597 ;-
598
599 .MACRO DFRD FUNC,ADDR
600 .IF NB,FUNC
601 MOV #FUNC,R0 ; ** FUNCTION READ CODE TO R0
602 .ENDC ; .IF NB,FUNC
603 MOV R1,-(SP) ; ** SAVE R1
604 .IF NB,ADDR
605 MOV #ADDR,R1 ; ** BUFFER POINTER TO R1
606 .IFF
607 CLR R1 ; ** NO DATA BUFFER
608 .IFTF
609 JSR PC,$DDFRD ; ** EXECUTE THE FUNCTION READ
610 MOV (SP)+,R1 ; ** RESTORE R1
611 .ENDC ; .IF NB,ADDR
612 .ENDM ; DFRD
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 13
DMBMCP -- DTE-20 OPERATION MACROS
614 ;+
615 ; DFRDT -- DIAGNOSTIC FUNCTION READ (TRAILING) TRANSLATION MACRO
616 ;
617 ; DFRDT TRANSLATES THE DIAGNOSTIC EMT 140 INTO A "DFRD" MACRO (Q.V.)
618 ;-
619
620 .MACRO DFRDT FUNC,ADDR
621 .IF NB,FUNC
622 MOV #FUNC,R0 ; ** FUNCTION READ CODE TO R0
623 .ENDC ; .IF NB,FUNC
624 MOV R1,-(SP) ; ** SAVE R1
625 .IF NB,ADDR
626 MOV #ADDR,R1 ; ** BUFFER POINTER TO R1
627 .IFF
628 CLR R1 ; ** NO DATA BUFFER
629 .IFTF
630 JSR PC,$DDFRD ; ** EXECUTE THE FUNCTION READ
631 MOV (SP)+,R1 ; ** RESTORE R1
632 .ENDC ; .IF NB,ADDR
633 .ENDM ; DFRDT
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 14
DMBMCP -- DTE-20 OPERATION MACROS
635 ;+
636 ; DFWRT -- DIAGNOSTIC FUNCTION WRITE TRANSTATION MACRO
637 ;
638 ; DFWRT TRANSLATES A DIAGNOSTIC EMT 141 IN TO A CALL TO "$DDFWR"
639 ;
640 ; SEQUENCE OF OPERATION:
641 ;
642 ; 1. DATA POINTER IS LOADED INTO R1
643 ; 2. FUNCTION CODE IS LOADED INTO R0
644 ; 3. CALL IS MADE TO "$DFWR"
645 ;
646 ; ERROR RETURN -- CC-C SET
647 ;
648 ; SUCCESS RETURN -- CC-C CLEAR
649 ;
650 ; R0, R1 -- UNCHANGED
651 ;
652 ; STACK SUMMARY:
653 ;
654 ; STACK IS UNAFFECTED
655 ;
656 ; CALLER'S REPONSIBILITIES:
657 ;
658 ; NONE
659 ;-
660
661 .MACRO DFWRT ADDR,FUNC
662 .IF NB,FUNC
663 MOV #FUNC,R0 ; ** FUNCTION WRITE CODE TO R0
664 .ENDC ; .IF NB,FUNC
665 .IF NB,ADDR
666 MOV R1,-(SP) ; ** SAVE R1
667 MOV #ADDR,R1 ; ** BUFFER POINTER TO R1
668 .IFTF
669 JSR PC,$DDFWR ; ** EXECUTE THE FUNCTION WRITE
670 .IFT
671 MOV (SP)+,R1 ; ** RESTORE R1
672 .ENDC ; .IF NB,ADDR
673 .ENDM ; DFWRT
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 15
DMBMCP -- DTE-20 OPERATION MACROS
675 ;+
676 ; DFWRTT -- DIAGNOSIC FUNCTION WRITE (TRAILING) TRANSLATION MACRO
677 ;
678 ; DFWRT TRANSLATES A DIAGNOSTIC EMT 140 INTO A CALL TO "$DDFWR"
679 ;
680 ; SEQUENCE OF OPERATION:
681 ;
682 ; 1. DATA POINTER IS LOADED INTO R1
683 ; 2. FUNCTION CODE IS LOADED INTO R0
684 ; 3. CALL IS MADE TO "$DDFWR"
685 ;
686 ; ERROR RETURN -- CC-C SET
687 ;
688 ; SUCCESS RETURN -- CC-C CLEAR
689 ;
690 ; R0, R1 -- UNCHANGED
691 ;
692 ; STACK SUMMARY:
693 ;
694 ; STACK IS UNAFFECTED
695 ;
696 ; CALLER'S REPONSIBILITIES:
697 ;
698 ; NONE
699 ;-
700
701 .MACRO DFWRTT ADDR,FUNC
702 .IF NB,FUNC
703 MOV #FUNC,R0 ; ** FUNCTION WRITE CODE TO R0
704 .ENDC ; .IF NB,FUNC
705 .IF NB,ADDR
706 MOV R1,-(SP) ; ** SAVE R1
707 MOV #ADDR,R1 ; ** BUFFER POINTER TO R1
708 .IFTF
709 JSR PC,$DDFWR ; ** EXECUTE THE FUNCTION WRITE
710 .IFT
711 MOV (SP)+,R1 ; ** RESTORE R1
712 .ENDC ; .IF NB,ADDR
713 .ENDM ; DFWRTT
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 16
DMBMCP -- DTE-20 OPERATION MACROS
715 ;+
716 ; DFXCT -- DIAGNOSTIC FUNCTION EXECUTE MACRO
717 ;
718 ; DFXCT TRANSLATES A DIAGNOSTIC EMT 114 IN TO A CALL TO "$DDFXC"
719 ;
720 ; SEQUENCE OF OPERATION:
721 ;
722 ; 1. FUNCTION CODE IS LOADED INTO R0
723 ; 2. CALL IS MADE TO "$DDFXC"
724 ;
725 ; ERROR RETURN -- CC-C SET
726 ;
727 ; SUCCESS RETURN -- CC-C CLEAR
728 ;
729 ; R0, R1 -- UNCHANGED
730 ;
731 ; STACK SUMMARY:
732 ;
733 ; STACK IS UNAFFECTED
734 ;
735 ; CALLER'S REPONSIBILITIES:
736 ;
737 ; NONE
738 ;-
739
740 .MACRO DFXCT FUNC
741 .IF NB,FUNC
742 MOV #FUNC,R0 ; ** FUNCTION CODE TO R0
743 .ENDC ; .IF NB,FUNC
744 JSR PC,$DDFXC ; ** EXECUTE THE FUNCTION EXECUTE
745 .ENDM ; DFXCT
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 17
DMBMCP -- DTE-20 OPERATION MACROS
747 ;+
748 ; DFXCTT -- DIAGNOSIC FUNCTION EXECUTE (TRAILING) TRANSLATION MACRO
749 ;
750 ; DFXCTT TRANSLATES A DIAGNOSTIC EMT 115 INTO A CALL TO "$DDFXC"
751 ;
752 ; SEQUENCE OF OPERATION:
753 ;
754 ; 1. FUNCTION CODE IS LOADED INTO R0
755 ; 2. CALL IS MADE TO "$DDFXC"
756 ;
757 ; ERROR RETURN -- CC-C SET
758 ;
759 ; SUCCESS RETURN -- CC-C CLEAR
760 ;
761 ; R0, R1 -- UNCHANGED
762 ;
763 ; STACK SUMMARY:
764 ;
765 ; STACK IS UNAFFECTED
766 ;
767 ; CALLER'S REPONSIBILITIES:
768 ;
769 ; NONE
770 ;-
771
772 .MACRO DFXCTT FUNC
773 .IF NB,FUNC
774 MOV #FUNC,R0 ; ** FUNCTION CODE TO R0
775 .ENDC ; .IF NB,FUNC
776 JSR PC,$DDFXC ; ** EXECUTE THE FUNCTION EXECUTE
777 .ENDM ; DFXCTT
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 18
DMBMCP -- DTE-20 OPERATION MACROS
779 ;+
780 ; DPOS -- DIAGNOSTIC KL10 DEPOSIT MACRO
781 ;
782 ; DPOS TRANSLATES THE DIAGNOSTIC EMT 105 INTO A CALL TO "$DPOS"
783 ;
784 ; SEQUENCE OF OPERATION:
785 ;
786 ; 1. DATA POINTER IS LOADED INTO R0
787 ; 2. KL10 ADDRESS POINTER IS LOADED INTO R1
788 ; 3. THE CALL TO "$DPOS" IS EXECUTED
789 ;
790 ; ERROR RETURN -- CC-C IS SET
791 ;
792 ; SUCCESS RETURN - CC-C IS CLEAR
793 ;
794 ; R0 AND R1 ARE UNCHANGED
795 ;
796 ; STACK SUMMARY:
797 ;
798 ; STACK IS UNAFFECTED
799 ;
800 ; CALLER'S RESPONSIBILITIES:
801 ;
802 ; NONE
803 ;-
804
805 .MACRO DPOS ADDR,DATA
806 .IF NB,DATA
807 MOV #DATA,R0 ; ** DATA POINTER TO R0
808 .ENDC ; .IF NB,DATA
809 .IF NB, ADDR
810 MOV R1,-(SP) ; ** SAVE R1
811 MOV #ADDR,R1 ; ** ADDRESS POINTER TO R1
812 .IFTF
813 JSR PC,$DPOS ; ** EXECUTE THE DEPOSIT
814 .IFT
815 MOV (SP)+,R1 ; ** RESTORE R1
816 .ENDC ; .IF NB,ADDR
817 .ENDM ; DPOS
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 19
DMBMCP -- DTE-20 OPERATION MACROS
819 ;+
820 ; DPOST -- DIAGNOSTIC KL10 DEPOSIT (TRAILING) MACRO
821 ;
822 ; DPOST TRANSLATES THE DIAGNOSTIC EMT 106 INTO A CALL TO "$DPOST"
823 ;
824 ; SEQUENCE OF OPERATION:
825 ;
826 ; 1. DATA POINTER IS LOADED INTO R0
827 ; 2. KL10 ADDRESS POINTER IS LOADED INTO R1
828 ; 3. THE CALL TO "$DPOS" IS EXECUTED
829 ;
830 ; ERROR RETURN -- CC-C IS SET
831 ;
832 ; SUCESS RETURN - CC-C IS CLEAR
833 ;
834 ; R0 AND R1 ARE UNCHANGED
835 ;
836 ; STACK SUMMARY:
837 ;
838 ; STACK IS UNAFFECTED
839 ;
840 ; CALLERS RESPONSIBILITIES:
841 ;
842 ; NONE
843 ;-
844
845 .MACRO DPOST ADDR,DATA
846 .IF NB, ADDR
847 MOV #ADDR,R0 ; ** ADDRESS TO R0
848 .ENDC ; .IF NB,ADDR
849 .IF NB,DATA
850 MOV R1,-(SP) ; ** SAVE R1
851 MOV #DATA,R1 ; ** DATA POINTER TO R1
852 .IFTF
853 JSR PC,$DPOST ; ** EXECUTE THE DEPOSIT
854 .IFT
855 MOV (SP)+,R1 ; ** RESTORE R1
856 .ENDC ; .IF NB,DATA
857 .ENDM ; DPOST
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 20
DMBMCP -- DTE-20 OPERATION MACROS
859 ;+
860 ; EXAM -- DIAGNOSTIC KL10 EXAMINE TRANSLATION MACRO
861 ;
862 ; EXAM TRANSLATES A DIAGNOSTIC EMT 103 INTO A CALL TO "$EXAM"
863 ;
864 ; SEQUENCE OF OPERATION
865 ;
866 ; 1. R0 POINTS TO THE KL10 ADDRESS
867 ; 2. THE CALL TO "$EXAM" IS EXECUTED
868 ; 3. R0 POINTS TO RETURNED DATA BUFFER
869 ;
870 ; ERROR RETURN -- CC-C IS SET
871 ;
872 ; SUCCESS RETURN -- CC-C CLEAR
873 ;
874 ;
875 ; STACK SUMMARY:
876 ;
877 ; STACK IS UNAFFECTED
878 ;
879 ; CALLER'S RESPONSIBILITIES:
880 ;
881 ; NONE
882 ;-
883
884 .MACRO EXAM ADDR,DATA
885 .IF NB,ADDR
886 MOV #ADDR,R0 ; ** ADDRESS POINTER TO R0
887 .ENDC ; .IF NB,ADDR
888 .IF NB,DATA
889 MOV R1,-(SP) ; ** SAVE R1
890 MOV #DATA,R1 ; ** DATA BUFFER POINTER TO R1
891 .IFF
892 MOV R1,-(SP) ; [4.2218] SAVE R1
893 MOV #.WORK,R1 ; [4.2218] WORK SPACE
894 .IFTF
895 JSR PC,$EXAMD ; ** EXECUTE THE KL10 EXAMINE
896 .IFT
897 MOV (SP)+,R1 ; ** RESTORE R1
898 .IFF
899 MOV #.WORK,R0 ; [4.2218] PTR TO 36 BIT DATA
900 MOV (SP)+,R1 ; [4.2218] RESTORE R1
901 .ENDC ; .IF NB,DATA
902 .ENDM ; EXAM
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 21
DMBMCP -- DTE-20 OPERATION MACROS
904 ;+
905 ; EXAMT -- DIAGNOSTIC KL10 EXAMINE (TRAILING) TRANSLATION MACRO
906 ;
907 ; EXAMT TRANSLATES A DIAGNOSTIC EMT 104 INTO A CALL TO "$EXAM"
908 ;
909 ; SEQUENCE OF OPERATION
910 ;
911 ; 1. R1 POINTS TO THE RETURNED DATA BUFFER
912 ; 2. R0 POINTS TO THE KL10 ADDRESS
913 ; 3. THE CALL TO "$EXAM" IS EXECUTED
914 ;
915 ; ERROR RETURN -- CC-C IS SET
916 ;
917 ; SUCCESS RETURN -- CC-C CLEAR
918 ;
919 ; R1 IS MOVED TO R0 TO MAINTAIN COMPATABILITY
920 ;
921 ; STACK SUMMARY:
922 ;
923 ; STACK IS UNAFFECTED
924 ;
925 ; CALLER'S RESPONSIBILITIES:
926 ;
927 ; NONE
928 ;-
929
930 .MACRO EXAMT ADDR,DATA
931 .IF NB,ADDR
932 MOV #ADDR,R0 ; ** ADDRESS POINTER TO R0
933 .ENDC ; .IF NB,ADDR
934 .IF NB,DATA
935 MOV R1,-(SP) ; ** SAVE R1
936 MOV #DATA,R1 ; ** DATA BUFFER POINTER TO R1
937 .IFTF
938 JSR PC,$EXAMT ; ** EXECUTE THE KL10 EXAMINE
939 .IFT
940 MOV (SP)+,R1 ; ** RESTORE R1
941 .ENDC ; .IF NB,DATA
942 .ENDM ; EXAMT
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 22
DMBMCP -- DTE-20 OPERATION MACROS
944 ;+
945 ; DFSCLK -- DAGNOSTIC SINGLE STEP CLOCK TRANSLATION MACRO
946 ;
947 ; DFSCLK TRANSALTES A DIAGNOSTIC EMT 122 INTO A "DFXCT SSCLK"
948 ;
949 ; SEE "DFXCT" FOR DETAILS
950 ;-
951
952 .MACRO DFSCLK
953 DFXCT SSCLK
954 .ENDM ; DFSCLK
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 23
DMBMCP -- DTE-20 OPERATION MACROS
956 ;+
957 ; DFPC -- DIAGNOSTIC PC READ TRANSLATION MACRO
958 ;
959 ; DFPC RETURNS THE KL10 PC IN A TRIPLET POINTED TO BY R0
960 ;-
961
962 .MACRO DFPC ADDR
963 .IF NB,ADDR
964 MOV #ADDR,R0 ; ** BUFFER POINTER TO R0
965 .ENDC ; .IF NB,ADDR
966 JSR PC,$DFPC ; ** READ THE KL10 PC
967 .ENDM ; DFPC
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 24
DMBMCP -- DTE-20 OPERATION MACROS
969 ;+
970 ; BURST -- BURST MBOX CLOCK TRANSLATION MACRO
971 ;
972 ; BURST TRANSLATES A DIAGNOSTIC EMT 131 INTO A CALL TO "$BURST"
973 ;
974 ; SEQUENCE OF OPERATION:
975 ;
976 ; 1. THE MBOX CLOCK BURST COUNT IS LOADED INTO R0
977 ; 2. THE CALL TO "$BURST" IS MADE
978 ;
979 ; ERROR RETURN -- CC-C SET
980 ;
981 ; SUCCESS RETURN -- CC-C CLEAR
982 ;
983 ; STACK SUMMARY:
984 ;
985 ; STACK IS UNAFFECTED
986 ;
987 ; CALLER'S RESPONSIBILITIES:
988 ;
989 ; NONE
990 ;-
991
992 .MACRO BURST ARG
993 .IF NB,ARG
994 MOV #ARG,R0 ; ** BURST COUNT TO R0
995 .ENDC ; .IF NB,ARG
996 JSR PC,$BURST ; ** BURST THE MBOX CLOCK
997 .ENDM ; BURST
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 25
DMBMCP -- DTE-20 OPERATION MACROS
999 ;+
1000 ; DTEBAS -- RETURN DTE-20 BASE ADDRESS TRANSLATION MACRO
1001 ;
1002 ; DTEBAS RETURNS THE THE BASE ADDRESS OF THE PRIVILEGED DTE-20 FROM
1003 ; ".PRDTE" IN THE REGISTER SPECIFIED
1004 ;-
1005
1006 .MACRO DTEBAS REG
1007 .IF NB,REG
1008 MOV .PRDTE,REG ; ** DTE-20 BASE ADDRESS TO REG
1009 .IFF
1010 MOV .PRDTE,R0 ; ** DTE-20 BASE ADDRESS TO R0
1011 .ENDC ; .IF NB,REG
1012 .ENDM ; DTEBAS
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 26
DMBMCP -- DTE-20 OPERATION MACROS
1014 ;+
1015 ; LODAR -- DIAGNOSTIC KL10 AR LOAD TRANSLATION MACRO
1016 ;
1017 ; LODAR TRANSLATES A DIAGNOSTIC EMT 102 INTO A CALL TO "$LDAR"
1018 ;
1019 ; SEQUENCE OF OPERATION:
1020 ;
1021 ; 1. R0 POINTS TO THE DATA TO BE LOADED INTO THE KL10 AR REGISTER
1022 ; 2. THE CALL TO "$LDAR" IS MADE
1023 ;
1024 ; ERROR RETURN -- CC-C SET
1025 ;
1026 ; SUCCESS RETURN -- CC-C CLEAR
1027 ;
1028 ; STACK SUMMARY:
1029 ;
1030 ; STACK IS UNAFFECTED
1031 ;
1032 ; CALLER'S RESPONSIBILITIES:
1033 ;
1034 ; NONE
1035 ;-
1036
1037 .MACRO LODAR DATA
1038 .IF NB,DATA
1039 MOV #DATA,R0 ; ** DATA POINTER TO R0
1040 .ENDC ; .IF NB,DATA
1041 JSR PC,$LDAR ; ** LOAD THE KL10 AR REGISTER
1042 .ENDM ; LODAR
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 28
DMBMCP -- DTE-20 OPERATION MACROS
1045 ;+
1046 ; EXCT -- DIAGNOSTIC KL10 INSTRUCTION EXECUTE TRANSLATION MACRO
1047 ;
1048 ; EXCT TRANSLATES A DIAGNOSTIC EMT 101 INTO A CALL TO "$EXCT"
1049 ;
1050 ; SEQUENCE OF OPERATION:
1051 ;
1052 ; 1. POINTER TO KL10 INSTRUCTION IS LOADED INTO R0
1053 ; 2. CALL TO "$EXCT" IS MADE
1054 ;
1055 ; ERROR RETURN -- CC-C SET
1056 ;
1057 ; SUCCESS RETURN -- CC-C CLEAR
1058 ;
1059 ; STACK SUMMARY:
1060 ;
1061 ; STACK IS UNAFFECTED
1062 ;
1063 ; CALLER'S RESPONSIBILITIES:
1064 ;
1065 ; NONE
1066 ;-
1067
1068 .MACRO EXCT INST
1069 .IF NB,INST
1070 MOV #INST,R0 ; ** KL10 INSTRUCTION POINTER TO R0
1071 .ENDC ; .IF NB,INST
1072 JSR PC,$EXCT ; ** EXECUTE IT
1073 .ENDM ; $EXCT
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 29
DMBMCP -- DTE-20 OPERATION MACROS
1075 ;+
1076 ; SM -- DIAGNOSTIC START MICROCODE TRANSLATION MACRO
1077 ;
1078 ; SM TRANSLATES A DIAGNOSTIC EMT 100 INTO A "MASTER RESET/ START CLOCK" SEQUENCE
1079 ;
1080 ; SEQUENCE:
1081 ;
1082 ; 1. A KL10 MASTER RESET SEQUENCE IS EXECUTED
1083 ; 2. THE KL10 CLOCK IS STARTED
1084 ;
1085 ; ERROR RETURN -- CC-C SET
1086 ;
1087 ; SUCCESS RETURN -- CC-C CLEAR
1088 ;
1089 ; STACK SUMMARY:
1090 ;
1091 ; STACK IS UNAFFECTED
1092 ;
1093 ; CALLER'S RESPONSIBILITIES:
1094 ;
1095 ; NONE
1096 ;-
1097
1098 .MACRO SM
1099 JSR PC,$KLMR ; ** MASTER RESET THE KL10
1100 MOV #STRCLK,R0 ; ** START CLOCK FUNCTION CODE TO R0
1101 JSR PC,$DDFXC ; ** START THE KL10 CLOCK
1102 .ENDM ; SM
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 30
DMBMCP -- DTE-20 OPERATION MACROS
1104 ;+
1105 ; WWADR -- DIAGNOSTIC CRAM ADDRESS LOAD TRANSLATION MACRO
1106 ;
1107 ; WWADR TRANSLATES A DIAGNOSTIC EMT 075 INTO A CALL TO "$ACRAM"
1108 ;
1109 ; SEQUENCE OF OPERATION
1110 ;
1111 ; 1. CRAM ADDRESS IS LOADED INTO R0
1112 ; 2. CALL TO "$ACRAM" IS MADE
1113 ;
1114 ; ERROR RETURN -- CC-C SET
1115 ;
1116 ; SUCCESS RETURN -- CC-C CLEAR
1117 ;
1118 ; STACK SUMMARY:
1119 ;
1120 ; STACK IS UNAFFECTED
1121 ;
1122 ; CALLER'S RESPONSIBILITIES:
1123 ;
1124 ; NONE:
1125 ;-
1126
1127 .MACRO WWADR ADDR
1128 .IF NB,ADDR
1129 MOV #ADDR,R0 ; ** CRAM ADDRESS TO R0
1130 .ENDC ; .IF NB,ADDR
1131 MOV R0,-(SP) ; ** SAVE R0
1132 JSR PC,$KLMR ; ** RESET THE KL10
1133 MOV (SP)+,R0 ; ** RESTORE R0
1134 JSR PC,$ACRAM ; ** LOAD THE CRAM ADDRESS REGISTER
1135 .ENDM ; WWADR
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 31
DMBMCP -- DTE-20 OPERATION MACROS
1137 ;+
1138 ; MRESET -- DIAGNOSTIC KL10 MASTER RESET TRANSLATION MACRO
1139 ;
1140 ; MRESET TRANSLATES A DIAGNOSTIC EMT 076 INTO A CALL TO "$KLMR"
1141 ;
1142 ; SEQUENCE OF OPERATION:
1143 ;
1144 ; 1. THE CALL TO "$KLMR" IS EXECUTED
1145 ;
1146 ; ERROR RETURN -- CC-C SET
1147 ;
1148 ; SUCCESS RETURN -- CC-C CLEAR
1149 ;
1150 ; STACK SUMMARY:
1151 ;
1152 ; STACK IS UNAFFECTED
1153 ;
1154 ; CALLER'S RESPONSIBILITIES:
1155 ;
1156 ; NONE
1157 ;-
1158
1159 .MACRO MRESET
1160 JSR PC,$KLMR ; ** MASTER RESET THE KL10
1161 .ENDM ; MRESET
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 32
REGISTER SAVE/RESTORE TRANSLATION MACROS
1163 .SBTTL REGISTER SAVE/RESTORE TRANSLATION MACROS
1164
1165 ;+
1166 ; REGSAV -- R1 - R5 SAVE TRANSLATION MACRO
1167 ; REGRST -- R1 - R5 RESTORE TRANSLATION MACRO
1168 ;
1169 ; SEQUENCE OF OPERATION:
1170 ;
1171 ; 1. REGSAV -- R1 - R5 ARE SAVED ON THE STACK
1172 ; 2. REGRST -- R1 - R5 ARE RESTORED FROM THE STACK
1173 ;
1174 ; ALWAYS RETURNS SUCCESS
1175 ;
1176 ; STACK SUMMARY:
1177 ;
1178 ; SP+00 ==> SAVED R1
1179 ; SP+02 ==> SAVED R2
1180 ; SP+04 ==> SAVED R3
1181 ; SP+06 ==> SAVED R4
1182 ; SP+10 ==> SAVED R5
1183 ; SP+12 ==> SUBROUTINE RETURN PC
1184 ;
1185 ; CALLER'S RESPONSIBILITIES
1186 ;
1187 ; CALLS TO THESE ROUTINES MUST BE PARALLEL AND SYMMETRIC
1188 ; A ROUTINE WHICH CALLS REGSAV UPON ENTRY MAY RESTORE R0 - R5 AND EXIT
1189 ; TO ITS CALLER VIA A SIMPLE "RTS PC"
1190 ;-
1191
1192 .MACRO REGSAV
1193 JSR PC,SAV.5 ; ** SAVE R1 - R5 ON THE STACK
1194 .ENDM ; REGSAV
1195
1196 .MACRO REGRST
1197 JSR PC,RST.5 ; ** RESTORE R1 - R5 AND RETURN
1198 .ENDM ; REGRST
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 33
REGISTER SAVE/RESTORE TRANSLATION MACROS
1200 ;+
1201 ; VARIOUS PRINT MACROS
1202 ;
1203 ; PFORCE -- NOOP
1204 ; PNORML -- NOOP
1205 ; PNTBAK -- NOOP
1206 ;
1207 ; CHARACTERISTICS:
1208 ;
1209 ; OBVIOUS
1210 ;-
1211
1212 .MACRO PFORCE
1213 .ENDM ; PFORCE
1214
1215 .MACRO PNORML
1216 .ENDM ; PNORML
1217
1218 .MACRO PNTBAK
1219 .ENDM ; PNTBAK
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 34
REGISTER SAVE/RESTORE TRANSLATION MACROS
1221 ;+
1222 ; PNT36 -- 36-BIT KL10 WORD PRINT TRANSLATION MACRO
1223 ;
1224 ; PNT36 TRANSLATES A DIAGNOSTIC EMT 042 INTO A CALL TO "$WDD36"
1225 ;
1226 ; SEQUENCE OF OPERATION:
1227 ;
1228 ; 1. THE POINTER TO THE 36-BIT DATA IS LOADED INTO R0
1229 ; 2. THE CALL TO "$WDD36" IS MADE
1230 ;
1231 ; ALWAYS RETURNS SUCCESS
1232 ;
1233 ; STACK SUMMARY:
1234 ;
1235 ; STACK IS UNAFFECTED
1236 ;
1237 ; CALLER'S RESPONSIBILITIES:
1238 ;
1239 ; NONE
1240 ;-
1241
1242 .MACRO PNT36 ADDR
1243 .IF NB,ADDR
1244 MOV #ADDR,R0 ; ** ADDRESS OF 36-BIT KL10 NUMBER TO R0
1245 .ENDC ; .IF NB,ADDR
1246 JSR PC,$WDD36 ; ** CALL TO PRINT ROUTINE
1247 .ENDM ; PNT36
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 35
REGISTER SAVE/RESTORE TRANSLATION MACROS
1249 ;+
1250 ; PNTADR -- 22-BIT KL10 ADDRESS PRINT TRANSLATION MACRO
1251 ;
1252 ; PNTADR TRANSLATES A DIAGNOSTIC EMT 042 INTO A CALL TO "$WDD22"
1253 ;
1254 ; SEQUENCE OF OPERATION:
1255 ;
1256 ; 1. THE POINTER TO THE 22-BIT DATA IS LOADED INTO R0
1257 ; 2. THE CALL TO "$WDD22" IS MADE
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 PNTADR ADDR
1271 .IF NB,ADDR
1272 MOV #ADDR,R0 ; ** ADDRESS OF 22-BIT KL10 ADDRESS TO R0
1273 .ENDC ; .IF NB,ADDR
1274 JSR PC,$WDD22 ; ** CALL TO PRINT ROUTINE
1275 .ENDM ; PNTADR
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 36
REGISTER SAVE/RESTORE TRANSLATION MACROS
1277 ;+
1278 ; PNTNBR -- NUMERIC PRINT TRANSLATION MACRO
1279 ;
1280 ; PNTNBR TRANSLATES A DIAGNOSTIC PRINT EMT INTO A CALL TO "$TDB2O"
1281 ;
1282 ; SEQUENCE OF OPERATION:
1283 ;
1284 ; "$TDB2O" IS CALLED
1285 ;
1286 ; ALWAYS RETURNS SUCCESS
1287 ;
1288 ; STACK SUMMARY:
1289 ;
1290 ; STACK IS UNAFFECTED
1291 ;
1292 ; CALLER'S RESPONSIBILITIES:
1293 ;
1294 ; NONE
1295 ;-
1296
1297 .MACRO PNTNBR
1298 MOV R0,-(SP) ; ** SAVE R0
1299 BIC #^C777,R0 ; ** MASK OFF UNWANTED BITS
1300 JSR PC,$TDB2O ; ** PRINT THE NUMBER
1301 MOV (SP)+,R0 ; ** RESTORE R0
1302 .ENDM ; PNTNBR
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 37
REGISTER SAVE/RESTORE TRANSLATION MACROS
1304 ;+
1305 ; PNT36B -- 36-BIT KL10 WORD PRINT TRANSLATION MACRO
1306 ;
1307 ; PNT36B TRANSLATES A DIAGNOSTIC EMT 134 INTO A CALL TO "$WDD36"
1308 ;
1309 ; SEQUENCE OF OPERATION:
1310 ;
1311 ; 1. THE POINTER TO THE 36-BIT DATA IS LOADED INTO R0
1312 ; 2. THE CALL TO "$WDD36" IS MADE
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 PNT36B ADDR
1326 .IF NB,ADDR
1327 MOV #ADDR,R0 ; ** ADDRESS OF 36-BIT KL10 NUMBER TO R0
1328 .ENDC ; .IF NB,ADDR
1329 JSR PC,$WDD36 ; ** CALL TO PRINT ROUTINE
1330 .ENDM ; PNT36B
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 38
REGISTER SAVE/RESTORE TRANSLATION MACROS
1332 ;+ PNTOCT -- PRINT OCTAL NUMBER TRANSLATION MACRO
1333 ;
1334 ; PNTOCT TRANSLATES A DIAGNOSTIC EMT 035 INTO A CALL TO "$TDB2O"
1335 ;
1336 ; SEQUENCE OF OPERATION
1337 ;
1338 ; 1. THE NUMBER TO BE PRINTED IS LOADED INTO R0
1339 ; 2. THE CALL IS MADE TO "$TDB2O"
1340 ;
1341 ; ALWAYS RETURNS SUCCESS
1342 ;
1343 ; STACK SUMMARY:
1344 ;
1345 ; STACK IS UNAFFECTED
1346 ;
1347 ; CALLER'S RESPONSIBILITIES:
1348 ;
1349 ; NONE
1350 ;-
1351
1352 .MACRO PNTOCT NUMB
1353 .IF NB,NUMB
1354 .NTYPE $$T$$,NUMB
1355 .IF EQ,$$T$$&70
1356 MOV NUMB,R0 ; ** GET THE NUMBER INTO R0
1357 .IFF
1358 MOV #NUMB,R0 ; ** GET THE NUMBER INTO R0
1359 .ENDC ; .IF EQ,$$T$$&70
1360 .ENDC ; .IF NB,NUMB
1361 JSR PC,$TDB2O ; ** PRINT THE NUMBER
1362 .ENDM ; PNTOCT
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 39
REGISTER SAVE/RESTORE TRANSLATION MACROS
1364 ;+ PNTOCS -- PRINT OCTAL NUMBER TRANSLATION MACRO
1365 ;
1366 ; PNTOCS TRANSLATES A DIAGNOSTIC EMT 036 INTO A CALL TO "$TDB2O"
1367 ;
1368 ; SEQUENCE OF OPERATION
1369 ;
1370 ; 1. THE NUMBER TO BE PRINTED IS LOADED INTO R0
1371 ; 2. THE CALL IS MADE TO "$TDB2O"
1372 ;
1373 ; ALWAYS RETURNS SUCCESS
1374 ;
1375 ; STACK SUMMARY:
1376 ;
1377 ; STACK IS UNAFFECTED
1378 ;
1379 ; CALLER'S RESPONSIBILITIES:
1380 ;
1381 ; NONE
1382 ;-
1383
1384 .MACRO PNTOCS NUMB
1385 .IF NB,NUMB
1386 .NTYPE $$T$$,NUMB
1387 .IF EQ,$$T$$&70
1388 MOV NUMB,R0 ; ** GET THE NUMBER INTO R0
1389 .IFF
1390 MOV #NUMB,R0 ; ** GET THE NUMBER INTO R0
1391 .ENDC ; .IF EQ,$$T$$&70
1392 .ENDC ; .IF NB,NUMB
1393 JSR PC,$TDB2O ; ** PRINT THE NUMBER
1394 .ENDM ; PNTOCS
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 40
REGISTER SAVE/RESTORE TRANSLATION MACROS
1396 ;+ PNTDEC -- PRINT DECIMAL NUMBER TRANSLATION MACRO
1397 ;
1398 ; PNTDEC TRANSLATES A DIAGNOSTIC EMT 037 INTO A CALL TO "$TDB2I"
1399 ;
1400 ; SEQUENCE OF OPERATION
1401 ;
1402 ; 1. THE NUMBER TO BE PRINTED IS LOADED INTO R0
1403 ; 2. THE CALL IS MADE TO "$TDB2I"
1404 ;
1405 ; ALWAYS RETURNS SUCCESS
1406 ;
1407 ; STACK SUMMARY:
1408 ;
1409 ; STACK IS UNAFFECTED
1410 ;
1411 ; CALLER'S RESPONSIBILITIES:
1412 ;
1413 ; NONE
1414 ;-
1415
1416 .MACRO PNTDEC NUMB
1417 .IF NB,NUMB
1418 .NTYPE $$T$$,NUMB
1419 .IF EQ,$$T$$&70
1420 MOV NUMB,R0 ; ** GET THE NUMBER INTO R0
1421 .IFF
1422 MOV #NUMB,R0 ; ** GET THE NUMBER INTO R0
1423 .ENDC ; .IF EQ,$$T$$&70
1424 .ENDC ; .IF NB,NUMB
1425 JSR PC,$TDB2I ; ** PRINT THE NUMBER
1426 .ENDM ; PNTDEC
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 41
REGISTER SAVE/RESTORE TRANSLATION MACROS
1428 ;+
1429 ; PNTODT -- FORMATTED OCTAL PRINT TRANSLATION MACRO
1430 ;
1431 ; PNTODT TRANSLATES A DIAGNOSTIC EMT 047 INTO A CALL TO "$TDB2O"
1432 ;
1433 ; SEQUENCE OF OPERATION:
1434 ;
1435 ; 1. THE NUMBER IN R0 IS MASKED TO THE PROPER WIDTH
1436 ; 2. THE CALL TO "$TDB2O" IS MADE
1437 ;
1438 ; ALWAYS RETURNS SUCCESS
1439 ;
1440 ; STACK SUMMARY:
1441 ;
1442 ; STACK IS UNAFFECTED
1443 ;
1444 ; CALLER'S RESPONSIBILITIES:
1445 ;
1446 ; NONE
1447 ;-
1448
1449 .MACRO PNTODT ARG
1450 .IF NB,ARG
1451 MOV R0,-(SP) ; ** SAVE R0
1452 .IF EQ,ARG-1
1453 BIC #^C7,R0 ; ** MASK OUT UNWANTED BITS
1454 .ENDC ; .IF EQ, ARG-1
1455 .IF EQ,ARG-2
1456 BIC #^C77,R0 ; ** MASK OUT UNWANTED BITS
1457 .ENDC ; .IF EQ, ARG-2
1458 .IF EQ,ARG-3
1459 BIC #^C777,R0 ; ** MASK OUT UNWANTED BITS
1460 .ENDC ; .IF EQ, ARG-3
1461 .IF EQ,ARG-4
1462 BIC #^C7777,R0 ; ** MASK OUT UNWANTED BITS
1463 .ENDC ; .IF EQ, ARG-4
1464 .IF EQ,ARG-5
1465 BIC #^C77777,R0 ; ** MASK OUT UNWANTED BITS
1466 .ENDC ; .IF EQ, ARG-5
1467 .IFTF
1468 JSR PC,$TDB2O ; ** PRINT THE NUMBER
1469 .IFT
1470 MOV (SP)+,R0 ; ** RESTORE R0
1471 .ENDC ;.IF NB,ARG
1472 .ENDM ; PNTODT
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 42
REGISTER SAVE/RESTORE TRANSLATION MACROS
1474 ;+
1475 ; PMSG -- DIAGNOSTIC PRINT TRANSLATION MACRO
1476 ;
1477 ; PMSG TRANSLATES A DIAGNOSTIC PRINT CALL INTO A CALL TO "$TTDMS"
1478 ;
1479 ; SEQUENCE OF OPERATION:
1480 ;
1481 ; 1. A POINTER TO THE MESSAGE IS LOADED INTO R0
1482 ; 2. THE CALL TO "$TTDMS" IS MADE
1483 ;
1484 ; ALWAYS RETURNS SUCCESS
1485 ;
1486 ; STACK SUMMARY:
1487 ;
1488 ; STACK IS UNAFFECTED
1489 ;
1490 ; CALLER'S RESPONSIBILITIES
1491 ;
1492 ; NONE
1493 ;-
1494
1495 .MACRO PMSG MSG,?L1,?L2
1496 MOV #L1,R0 ; ** MESSAGE POINTER TO R0
1497 JSR PC,$TTDMS ; ** OUTPUT THE MESSAGE
1498 BR L2 ; ** BRANCH AROUND TEXT
1499 ;
1500 L1: .ASCIZ %MSG%
1501 .EVEN
1502 L2:
1503 .ENDM ; PMSG
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 43
REGISTER SAVE/RESTORE TRANSLATION MACROS
1505 ;+
1506 ; PNTAL -- DIAGNOSTIC PRINT ASCII LINE TRANSLATION MACRO
1507 ;
1508 ; PNTAL TRANSLATES A DIAGNOSTIC PRINT CALL INTO A CALL TO "$TTDMS"
1509 ;
1510 ; SEQUENCE OF OPERATION:
1511 ;
1512 ; 1. A POINTER TO THE MESSAGE IS LOADED INTO R0
1513 ; 2. THE CALL TO "$TTDMS" IS MADE
1514 ;
1515 ; ALWAYS RETURNS SUCCESS
1516 ;
1517 ; STACK SUMMARY:
1518 ;
1519 ; STACK IS UNAFFECTED
1520 ;
1521 ; CALLER'S RESPONSIBILITIES
1522 ;
1523 ; NONE
1524 ;-
1525
1526 .MACRO PNTAL
1527 JSR PC,$TTDMS ; ** OUTPUT THE MESSAGE
1528 .ENDM ; PNTAL
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 44
REGISTER SAVE/RESTORE TRANSLATION MACROS
1530 ;+
1531 ; $PMSG -- DIAGNOSTIC PRINT TRANSLATION MACRO
1532 ;
1533 ; $PMSG TRANSLATES A DIAGNOSTIC PRINT EMT INTO A CALL TO "$TTDMS"
1534 ;
1535 ; SEQUENCE OF OPERATION
1536 ;
1537 ; 1. MESSAGE POINTER IS LOADED INTO R0
1538 ; 2. CALL IS MADE TO "$TTDMS"
1539 ;
1540 ; ALWAYS RETURNS SUCCESS
1541 ;
1542 ; STACK SUMMARY:
1543 ;
1544 ; STACK IS UNAFFECTED
1545 ;-
1546
1547 .MACRO $PMSG ARG
1548 .IF NB,ARG
1549 MOV #ARG,R0 ; ** TEXT POINTER TO R0
1550 .ENDC ; .IF NB,ARG
1551 JSR PC,$TTDMS ; ** OUTPUT THE MESSAGE
1552 .ENDM ; $PMSG
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 45
REGISTER SAVE/RESTORE TRANSLATION MACROS
1554 ;+
1555 ; PSPACE ET. AL. -- VARIOUS PRINT MACROS
1556 ;
1557 ; PSPACE PRINTS A <SPACE>
1558 ; PTAB PRINTS A <TAB>
1559 ; PSLASH PRINTS A <SLASH>
1560 ; PBELL PRINTS A <BELL>
1561 ; PCRLF PRINTS A <CR><LF>
1562 ;
1563 ; SEQUENCE OF OPERATION:
1564 ;
1565 ; THE APPROPRIATE CALL IS MADE
1566 ;
1567 ; ALWAYS RETURNS SUCCESS
1568 ;
1569 ; STACK SUMMARY:
1570 ;
1571 ; STACK IS UNAFFECTED
1572 ;
1573 ; CALLER'S RESPONSIBILITIES:
1574 ;
1575 ; NONE
1576 ;-
1577
1578 .MACRO PSPACE
1579 JSR PC,$TTSPC ; ** PRINT A <SPACE>
1580 .ENDM ; PSPACE
1581
1582 .MACRO PSLASH
1583 JSR PC,$TTSLS ; ** PRINT A <SLASH>
1584 .ENDM ; PSLASH
1585
1586 .MACRO PBELL
1587 JSR PC,$TTBEL ; ** PRINT A <BELL>
1588 .ENDM ; PBELL
1589
1590 .MACRO PTAB
1591 JSR PC,$TTTAB ; ** PRINT A <TAB>
1592 .ENDM ; PTAB
1593
1594 .MACRO PCRLF
1595 JSR PC,$TCRLF ; ** PRINT A <CR><LF>
1596 .ENDM ; PCRLF
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 46
REGISTER SAVE/RESTORE TRANSLATION MACROS
1598 ;+
1599 ; TTIOCT -- DIAGNOSTIC OCTAL INPUT TRANSLATION MACRO
1600 ;
1601 ; TTIOCT TRANSLATES A DIAGNOSTIC OCTAL INPUT EMT INTO A CALL TO "$TDO2B"
1602 ;
1603 ; SEQUENCE OF OPERATION:
1604 ;
1605 ; THE CALL TO "$TDO2B" IS EXECUTED
1606 ;
1607 ; SUCCESS RETURN -- CC-C CLEAR
1608 ;
1609 ; ERROR RETURN -- CC-C SET
1610 ;
1611 ; NUMBER IN R0 IN EITHER CASE
1612 ;
1613 ; STACK SUMMARY:
1614 ;
1615 ; STACK IS UNAFFECTED
1616 ;
1617 ; CALLER'S RESPONSIBILITIES:
1618 ;
1619 ; NONE
1620 ;-
1621
1622 .MACRO TTIOCT
1623 JSR PC,$TDO2B ; ** READ OCTAL NUMBER
1624 .ENDM ; TTIOCT
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 47
REGISTER SAVE/RESTORE TRANSLATION MACROS
1626 ;+
1627 ; TTIDEC -- DIAGNOSTIC DECIMAL INPUT TRANSLATION MACRO
1628 ;
1629 ; TTIDEC TRANSLATES A DIAGNOSTIC DECIMAL INPUT EMT INTO A CALL TO "$TDI2B"
1630 ;
1631 ; SEQUENCE OF OPERATION:
1632 ;
1633 ; THE CALL TO "$TDI2B" IS EXECUTED
1634 ;
1635 ; SUCCESS RETURN -- CC-C CLEAR
1636 ;
1637 ; ERROR RETURN -- CC-C SET
1638 ;
1639 ; NUMBER IN R0 IN EITHER CASE
1640 ;
1641 ; STACK SUMMARY:
1642 ;
1643 ; STACK IS UNAFFECTED
1644 ;
1645 ; CALLER'S RESPONSIBILITIES:
1646 ;
1647 ; NONE
1648 ;-
1649
1650 .MACRO TTIDEC
1651 JSR PC,$TDI2B ; ** READ DECIMAL NUMBER
1652 .ENDM ; TTIDEC
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 48
REGISTER SAVE/RESTORE TRANSLATION MACROS
1654 ;+
1655 ; TTILIN -- DIAGNOSTIC TERMINAL INPUT TRANSLATION MACRO
1656 ;
1657 ; TTILIN TRANSLATES A DIAGNOSTIC TERMINAL INPUT EMT INTO A CALL TO "$TTRD"
1658 ;
1659 ; SEQUENCE OF OPERATION:
1660 ;
1661 ; THE CALL TO "$TTRD" IS EXECUTED
1662 ;
1663 ; SUCCESS RETURN -- INPUT STRING IN ".TTIBF"
1664 ;
1665 ; ESCAPES THROUGH "$ERROR" ON ERROR
1666 ;
1667 ; STACK SUMMARY:
1668 ;
1669 ; STACK IS UNAFFECTED
1670 ;
1671 ; CALLER'S RESPONSIBILITIES:
1672 ;
1673 ; NONE
1674 ;-
1675
1676 .MACRO TTILIN
1677 JSR PC,$TTRD ; ** READ TERMINAL INPUT
1678 .ENDM ; TTILIN
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 49
REGISTER SAVE/RESTORE TRANSLATION MACROS
1680 ;+
1681 ; TTILNW -- DIAGNOSTIC TERMINAL INPUT TRANSLATION MACRO
1682 ;
1683 ; TTILNW TRANSLATES A DIAGNOSTIC TERMINAL INPUT EMT INTO A CALL TO "$TTRD"
1684 ;
1685 ; SEQUENCE OF OPERATION:
1686 ;
1687 ; THE CALL TO "$TTRD" IS EXECUTED
1688 ;
1689 ; SUCCESS RETURN -- INPUT STRING IN ".TTIBF"
1690 ;
1691 ; ESCAPES THROUGH "$ERROR" ON ERROR
1692 ;
1693 ; STACK SUMMARY:
1694 ;
1695 ; STACK IS UNAFFECTED
1696 ;
1697 ; CALLER'S RESPONSIBILITIES:
1698 ;
1699 ; NONE
1700 ;-
1701
1702 .MACRO TTILNW
1703 JSR PC,$TTRD ; ** READ TERMINAL INPUT
1704 .ENDM ; TTILNW
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 50
REGISTER SAVE/RESTORE TRANSLATION MACROS
1706 ;+
1707 ; FATAL -- MEMORY BOOT ERROR CALL TRANSLATION MACRO
1708 ;
1709 ; FATAL EXECUTES A CALL TO "$FATAL" WHERE THE MEMORY BOOT IS ABORTED
1710 ; AFTER THE ERROR CODE IS PRINTED
1711 ;
1712 ; SEQUENCE OF OPERATION:
1713 ;
1714 ; THE CALL TO "$FATAL" IS EXECUTED
1715 ;
1716 ; NEVER RETURNS (GUARANTEED ESCAPE)
1717 ;
1718 ; STACK SUMMARY:
1719 ;
1720 ; POINTER TO ERROR TEXT IS ON TOP OF THE STACK
1721 ;
1722 ; CALLER'S RESPONSIBILITIES:
1723 ;
1724 ; NONE
1725 ;-
1726
1727 .MACRO FATAL TXT
1728 .IF NB, <TXT>
1729 ER$'TXT==.
1730 JSR PC,$FATAL ; ** FATAL "TXT" ERROR
1731 .ASCIZ %TXT%
1732 .EVEN
1733 .IFF
1734 .ERROR ; ** UNDEFINED ERROR TRAP!!
1735 .ENDC ; .IF NB, <TXT>
1736 .ENDM ; FATAL
KLINIT - KL CPU INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 51
REGISTER SAVE/RESTORE TRANSLATION MACROS
1738
1739
1740 .TITLE KLIAC -- AC PROGRAM CONTROL
1741 000000 IDENT$ 5,3 ; ADP02
.IDENT /005030/
1742
1743 ;
1744 ; COPYRIGHT (C) 1977, 1984 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
1745 ;
1746 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
1747 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
1748 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
1749 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
1750 ;
1751 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
1752 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
1753 ; EQUIPMENT CORPORATION.
1754 ;
1755 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
1756 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
1757 ;
1758 ; VERSION 05-03 ; ADP02
1759 ;
1760 ; ALAN D. PECKHAM 29-MAR-77
1761 ;
1762 ; MODIFIED BY:
1763 ;
1764 ; R. BELANGER 24-AUG-78 CLEAR ALL EIGHT (0 - 7) AC BLOCKS.
1765 ;
1766 ; FUNCTION: KL AC MANIPULATION.
1767 ;
1768 ; EQUATED SYMBOLS
1769 ;
1770 000003 DATAO = 3 ; KL I/O SUBFUNCTION CODE.
1771 000010 PAG = 10 ; KL DEVICE.
1772 ;
1773 ; LOCAL DATA
1774 ;
1775 000000 .PSECT DATA,D
1776 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
1777 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
1778 000012 DACAD: WD22$ 0 ; BUCKET FOR AC ADDRESSES.
000012 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
1779 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
1780 .EVEN
1781 000000 .PSECT
KLIAC -- AC PROGRAM CONTROL MACRO M1113 03-APR-86 20:55 PAGE 52
$LDNGO -- LOAD AC BLOCKS AND GO
1783 .SBTTL $LDNGO -- LOAD AC BLOCKS AND GO
1784 ;+
1785 ; LOAD THE SPECIFIED AC BLOCKS WITH INSTRUCTIONS AND DATA AND
1786 ; CONDITIONALLY START THE KL AT A GIVEN LOCATION. THE LOADING IS DRIVEN
1787 ; BY A LIST WHICH IS POINTED TO BY R0. THE ENTRIES ARE:
1788 ;
1789 ; CHOOSE AC BLOCK AND LOAD N ACS STARTING WITH M
1790 ;
1791 ; .BYTE ACBLK*10,M,N ; WHERE AND HOW MUCH
1792 ; .BLKB N*5 ; WORDS TO LOAD
1793 ;
1794 ; START KL AT AC M AND RETURN
1795 ;
1796 ; .BYTE ACBLK*10,M,-1 ; WHERE TO START
1797 ;
1798 ; RETURN WITHOUT STARTING KL
1799 ;
1800 ; .BYTE -1 ; END OF LOAD LIST
1801 ;
1802 ; A PREVIOUS CONTEXT AC BLOCK MAY BE SPECIFIED IN THE BOTTOM 3 BITS
1803 ; OF THE AC BLOCK BYTE. IF LEFT ZERO, THE PREVIOUS CONTEXT WILL BE
1804 ; AC BLOCK ZERO.
1805 ;
1806 ; INPUTS:
1807 ; R0 - POINTER TO AC LOAD LIST.
1808 ;
1809 ; OUTPUTS:
1810 ; CARRY IS SET IF ERROR OCCURRED DURING LOAD OR START.
1811 ;-
1812
1813 000000 004537 024204' $LDNGO::JSR R5,$RSAVE ; SAVE MY REGISTERS.
1814 000004 010005 MOV R0,R5 ; COPY LOAD LIST.
1815 000006 105137 000003' COMB DACAB+3 ; INVALIDATE THE CURRENT AC BLOCK. ; ADP02
1816 000012 112500 10$: MOVB (R5)+,R0 ; NEXT AC BLOCK NUMBER
1817 000014 100434 BMI 80$ ; STOP IF NEGATIVE.
1818 000016 123700 000003' CMPB DACAB+3,R0 ; IF THE SAME AS LAST TIME
1819 000022 001411 BEQ 30$ ; THEN DON'T CHANGE AC BLOCK
1820 000024 110037 000003' MOVB R0,DACAB+3 ; OTHERWISE GET BLOCK AND
1821 000030 012700 000005' MOV #DACBI,R0 ; EXECUTE DATAO PAG
1822 000034 012701 000000' MOV #DACAB,R1 ; WITH OUR DATA.
1823 000040 CALL $XCDT ; AVOID USING AN AC.
000040 004737 000206' JSR PC,$XCDT
1824 000044 103421 BCS 90$
1825 000046 012700 000012' 30$: MOV #DACAD,R0 ; GET PLACE FOR
1826 000052 112510 MOVB (R5)+,(R0) ; THE NEXT AC ADDRESS
1827 000054 112502 MOVB (R5)+,R2 ; AND GET NUMBER OF ACS.
1828 000056 100411 BMI 50$ ; IF NEG, START AT AC.
1829 000060 010501 40$: MOV R5,R1 ; GET ADDRESS OF DATA
1830 000062 CALL $DPOS ; AND STORE IT.
000062 004737 013074' JSR PC,$DPOS
1831 000066 103410 BCS 90$
1832 000070 105210 INCB (R0) ; INCREMENT ADDRESS
1833 000072 062705 000005 ADD #5,R5 ; AND LIST POINTER
1834 000076 077210 SOB R2,40$ ; AND GO BACK IF MORE.
1835 000100 000744 BR 10$ ; OTHERWISE GET NEXT DIRECTION.
1836 000102 50$: CALLR $STRKL ; START KL AT ADDRESS.
000102 000137 030726' JMP $STRKL
KLIAC -- AC PROGRAM CONTROL MACRO M1113 03-APR-86 20:55 PAGE 52-1
$LDNGO -- LOAD AC BLOCKS AND GO
1837 000106 000241 80$: CLC ; END OF LOAD.
1838 000110 90$: RETURN
000110 000207 RTS PC
KLIAC -- AC PROGRAM CONTROL MACRO M1113 03-APR-86 20:55 PAGE 53
$ZERAC -- ZERO AC SETS 0 TO 6
1840 .SBTTL $ZERAC -- ZERO AC SETS 0 TO 6
1841 ;+
1842 ; ZERO ALL ACS INCLUDING SET 7 WHICH BELONGS TO THE MICROCODE.
1843 ;
1844 ; NO INPUTS
1845 ;
1846 ; OUTPUTS:
1847 ; CARRY IS SET ON ERROR.
1848 ;-
1849
1850 000112 004537 024204' $ZERAC::JSR R5,$RSAVE ; SAVE HIS REGISTERS.
1851 000116 012703 000070 MOV #70,R3 ; ZERO AC SET 6 TO 0. ; ADP02
1852
1853 000122 110337 000003' 10$: MOVB R3,DACAB+3 ; NEXT AC BLOCK. ;**-1
1854 000126 012701 000000' MOV #DACAB,R1 ; GET DATA FOR
1855 000132 012700 000005' MOV #DACBI,R0 ; DATAO PAG TO
1856 000136 CALL $XCDT ; SET THE CURRENT AC SET.
000136 004737 000206' JSR PC,$XCDT
1857 000142 103420 BCS 90$
1858 000144 012702 000020 MOV #20,R2 ; ZERO 20 ACS.
1859 000150 012701 000000' MOV #.ZERO,R1 ; (DATA TO DEPOSIT)
1860 000154 012700 000012' MOV #DACAD,R0 ; GET POINTER TO ADDRESS
1861 000160 105010 CLRB (R0) ; AND START AT ZERO.
1862 000162 20$: CALL $DPOS ; CLEAR THE AC.
000162 004737 013074' JSR PC,$DPOS
1863 000166 103406 BCS 90$
1864 000170 105210 INCB (R0) ; GO ON
1865 000172 077205 SOB R2,20$ ; TO THE NEXT ONE.
1866 000174 162703 000010 SUB #10,R3 ; IF ANOTHER AC SET TO DO ; ADP01
1867 000200 002350 BGE 10$ ; THEN DO IT. ; ADP01
1868 000202 000241 CLC ; (MAKE SURE CARRY IS CLEAR) ; ADP01
1869 000204 90$: RETURN
000204 000207 RTS PC
KLIAC -- AC PROGRAM CONTROL MACRO M1113 03-APR-86 20:55 PAGE 54
$XCDT -- INSTRUCTION EXECUTER
1871 .SBTTL $XCDT -- INSTRUCTION EXECUTER
1872 ;+
1873 ; EXECUTE AN INSTRUCTION AND SUBSTITUTE THE GIVEN DATA INTO THE AR
1874 ; AFTER THE AR FETCH. THIS IS DONE BY LOADING THE INSTRUCTION AND
1875 ; STEPPING THE CLOCK UNTIL "CON AR LOADED H" IS UP. THE DATA IS THEN
1876 ; WRITTEN INTO THE AR OVER THE PREVIOUS FETCHED DATA AND THE INSTRUCTION
1877 ; IS ALLOWED TO FINISH. NOTE THAT THIS ASSUMES THAT THE FETCH IS
1878 ; SUCCESSFUL.
1879 ;
1880 ; INPUTS:
1881 ; R0 - ADDRESS OF KL INSTRUCTION TO EXECUTE.
1882 ; R1 - ADDRESS OF 36 BIT DATA WORD TO SUBSTITUTE.
1883 ;
1884 ; OUTPUTS:
1885 ; CARRY IS SET IF ERROR OCCURS.
1886 ;-
1887
1888 000206 004537 024204' $XCDT:: JSR R5,$RSAVE ; SAVE THE REGISTERS AND
1889 000212 010103 MOV R1,R3 ; COPY THE POINTER TO THE DATA.
1890 000214 CALL $LDAR ; LOAD THE INSTRUCTION
000214 004737 031176' JSR PC,$LDAR
1891 000220 103436 BCS 90$ ; AND
1892 000222 012700 012000 MOV #.CONBT,R0 ; PUSH THE CONTINUE BUTTON.
1893 000226 CALL $DFXC
000226 004737 013760' JSR PC,$DFXC
1894 000232 103431 BCS 90$
1895 000234 012700 000022 MOV #18.,R0 ; GIVE THE CLOCK
1896 000240 CALL $BURST ; AN 18. TICK LEAD.
000240 004737 031612' JSR PC,$BURST
1897 000244 103424 BCS 90$
1898 000246 012702 000144 MOV #100.,R2 ; LIMIT THE CLOCK TO 100. TICKS
1899 000252 012701 000015' MOV #DACBF,R1 ; AND GET SCRATCH BUFFER.
1900 000256 012700 132000 20$: MOV #<132*1000>,R0 ; NOW READ
1901 000262 CALL $DFRD ; A DIAGNOSTIC REGISTER AND
000262 004737 013444' JSR PC,$DFRD
1902 000266 103413 BCS 90$
1903 000270 132761 000020 000001 BITB #20,1(R1) ; IF "CON AR LOADED H"
1904 000276 001010 BNE 30$ ; IS NOT UP,
1905 000300 012700 002000 MOV #.SSCLK,R0 ; STEP THE CLOCK
1906 000304 CALL $DFXC
000304 004737 013760' JSR PC,$DFXC
1907 000310 103402 BCS 90$
1908 000312 077217 SOB R2,20$ ; AND LOOK AGAIN.
1909 000314 000261 SEC ; THIS TOOK TOO LONG.
1910 000316 90$: RETURN
000316 000207 RTS PC
1911 000320 012700 004000 30$: MOV #.CECLK,R0 ; THE AR IS RIPE TO LOAD, SO
1912 000324 CALL $DFXC ; PHASE THE CLOCKS
000324 004737 013760' JSR PC,$DFXC
1913 000330 103772 BCS 90$
1914 000332 010301 MOV R3,R1 ; GET THE SUBSTITUTE WORD
1915 000334 012700 077000 MOV #.LDAR,R0 ; AND LOAD IT
1916 000340 CALL $DFWR ; INTO THE AR.
000340 004737 013556' JSR PC,$DFWR
1917 000344 103764 BCS 90$
1918 000346 012700 001000 MOV #.STRCL,R0 ; LET THE INSTRUCTION COMPLETE.
1919 000352 CALLR $DFXC
KLIAC -- AC PROGRAM CONTROL MACRO M1113 03-APR-86 20:55 PAGE 54-1
$XCDT -- INSTRUCTION EXECUTER
000352 000137 013760' JMP $DFXC
KLIAC -- AC PROGRAM CONTROL MACRO M1113 03-APR-86 20:55 PAGE 55
$XCDT -- INSTRUCTION EXECUTER
1921
1922
1923 .TITLE KLICA -- LOAD CACHE REFILL RAM
1924 000356 IDENT$ 5,1
.IDENT /005010/
1925 ;
1926 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
1927 ; ALL RIGHTS RESERVED.
1928 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
1929 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
1930 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
1931 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
1932 ;
1933 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
1934 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
1935 ; EQUIPMENT CORPORATION.
1936 ;
1937 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
1938 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
1939 ;
1940 ; VERSION 05-01
1941 ;
1942 ; ALAN D. PECKHAM 8-APR-77
1943 ;
1944 ; MODIFIED BY:
1945 ;
1946 ; FUNCTION: COMPUTE THE REFILL ALGORITHM FOR THE GIVEN CACHE CONFIGURATION
1947 ; AND WRITE IT TO THE CACHE REFILL RAM.
1948 ;
1950 ; EQUATED SYMBOLS
1951 ;
1952 000000 APR = 0 ; KL DEVICE.
1953 000002 BLKO = 2 ; KL I/O SUBFUNCTION CODE.
1954 000014 CCA = 14 ; KL DEVICE.
1955 000004 CONO = 4 ; KL I/O SUBFUNCTION CODE.
1956 000001 DATAI = 1 ; KL I/O SUBFUNCTION CODE.
1957 000540 HRR = 540 ; KL INSTRUCTION CODE.
1958 000254 JRST = 254 ; KL INSTRUCTION CODE.
1959 000322 JUMPE = 322 ; KL INSTRUCTION CODE.
1960 000010 PAG = 10 ; KL DEVICE.
1961 000400 SETZ = 400 ; KL INSTRUCTION CODE.
1962 ;
1963 ; LOCAL DATA
1964 ;
1965 000022 .PSECT DATA,D
1966 .ODD ; DCAWRF MUST BE ON EVEN BOUNDRY.
1967 000023 000 000 010 DCAPGM: .BYTE 0,0,10 ; LOAD AC0-AC7 OF AC SET 0.
1968 000026 WD36$ 0 0 ; AC0
000026 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
000031 000 000 .BYTE BY$$3,BY$$4
1969 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
1970 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
1971 000045 I10$ JUMPE 0,,3 ; AC3
KLICA -- LOAD CACHE REFILL RAM MACRO M1113 03-APR-86 20:55 PAGE 55-1
$XCDT -- INSTRUCTION EXECUTER
000045 003 000 000 .BYTE BY$$0,BY$$1,BY$$2
000050 220 006 .BYTE BY$$3,BY$$4
1972 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
1973 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
1974 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
1975 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
1976 000076 000 001 377 .BYTE 0,1,-1 ; START AT AC1 OF AC SET 0.
1977 000101 DCARFL: .BLKB 5 ; WORK TABLE.
1978 .EVEN
1979 000000 .PSECT TEXT,D
1980 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
1981 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
1982 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
1983 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
1984 000356 .PSECT
KLICA -- LOAD CACHE REFILL RAM MACRO M1113 03-APR-86 20:55 PAGE 56
$SETCA -- CONFIGURE CACHE
1986 .SBTTL $SETCA -- CONFIGURE CACHE
1987 ;+
1988 ; INITIALIZE THE CACHE REFILL RAM IF CACHE IS TO BE TURNED ON AND
1989 ; REPORT THE CACHE STATUS.
1990 ;
1991 ; INPUTS:
1992 ; .NCACH - NUMBER OF CACHES TO BE USED.
1993 ; .CACHN - NUMBERS OF THE CACHES TO BE USED.
1994 ;
1995 ; OUTPUTS:
1996 ; CARRY IS SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
1997 ;-
1998
1999 000356 012700 000023' $SETCA::MOV #DCAPGM,R0 ; GET OUR KL PROGRAM
2000 000362 CALL $LDNGO ; LOAD AND START IT.
000362 004737 000000' JSR PC,$LDNGO
2001 000366 103564 BCS 200$
2002 000370 105737 000064' TSTB .NCACH ; IF NO CACHES WERE REQUESTED
2003 000374 003557 BLE 190$ ; THEN NO ACTION NECESSARY.
2004 000376 012701 000066' MOV #DCAWRF+2,R1 ; GET DATA AREA AND
2005 000402 042711 000003 BIC #3,(R1) ; CLEAR IT OUT.
2006 000406 005041 CLR -(R1)
2007 000410 005005 CLR R5 ; +++001 R5 >MUST< INITIALLY BE CLEAR!!!
2008 000412 113700 000065' MOVB .CACHN,R0 ; SET LRU IN CASE OF SINGLE CACHE.
2009 000416 006200 ASR R0 ; SHIFT LOW ORDER BIT
2010 000420 103002 BCC 20$ ; INTO KL INSTRUCTION -
2011 000422 052711 100000 BIS #100000,(R1) ; (KIND OF A HACK....)
2012 000426 050061 000002 20$: BIS R0,2(R1) ; INSTALL REST.
2013 ; INITIALIZE COUNTERS:
2014 000432 105003 CLRB R3 ; NEW CACHE NUMBER.
2015 000434 105004 30$: CLRB R4 ; MRU CACHE.
2016 000436 105005 40$: CLRB R5 ; LRU CACHE
2017 000440 122737 000001 000064' 50$: CMPB #1,.NCACH ; ONLY ONE CACHE ?
2018 000446 001504 BEQ 180$ ; YES, BYPASS THIS STUFF.
2019 000450 042721 100000 BIC #100000,(R1)+ ; CLEAR OUT DATA BITS.
2020 000454 042711 000003 BIC #000003,(R1)
2021 000460 012702 000101' MOV #DCARFL,R2 ; INITIALIZE TABLE.
2022 000464 110522 MOVB R5,(R2)+ ; LRU CACHE
2023 000466 005000 CLR R0 ; FIND LOW CACHE NUMBER
2024 000470 000401 BR 70$
2025 000472 005200 60$: INC R0
2026 000474 120005 70$: CMPB R0,R5
2027 000476 001775 BEQ 60$
2028 000500 120004 CMPB R0,R4
2029 000502 001773 BEQ 60$
2030 000504 012701 000003 MOV #3,R1 ; AND HIGH CACHE NUMBER
2031 000510 000401 BR 90$
2032 000512 005301 80$: DEC R1
2033 000514 120105 90$: CMPB R1,R5
2034 000516 001775 BEQ 80$
2035 000520 120104 CMPB R1,R4
2036 000522 001773 BEQ 80$
2037 000524 005705 TST R5 ; AND INSTALL IN TABLE
2038 000526 100003 BPL 100$ ; AS INTERMEDIATE CACHES.
2039 000530 110022 MOVB R0,(R2)+
2040 000532 110122 MOVB R1,(R2)+
2041 000534 000402 BR 110$
KLICA -- LOAD CACHE REFILL RAM MACRO M1113 03-APR-86 20:55 PAGE 56-1
$SETCA -- CONFIGURE CACHE
2042 000536 110122 100$: MOVB R1,(R2)+
2043 000540 110022 MOVB R0,(R2)+
2044 000542 110422 110$: MOVB R4,(R2)+ ; MRU CACHE
2045 000544 110312 MOVB R3,(R2) ; NEW CACHE.
2046 000546 120342 120$: CMPB R3,-(R2) ; ADJUST LIST TO REFLECT
2047 000550 001376 BNE 120$ ; NEW CACHE IN USE.
2048 000552 022702 000101' CMP #DCARFL,R2
2049 000556 003402 BLE 130$
2050 000560 012702 000101' MOV #DCARFL,R2
2051 000564 116222 000001 130$: MOVB 1(R2),(R2)+
2052 000570 022702 000105' CMP #DCARFL+4,R2
2053 000574 003373 BGT 130$
2054 000576 012702 000101' MOV #DCARFL,R2 ; NOW, SCREEN OUT
2055 000602 012701 000065' 140$: MOV #.CACHN,R1 ; UNWANTED LRUS.
2056 000606 113700 000064' MOVB .NCACH,R0
2057 000612 122112 150$: CMPB (R1)+,(R2)
2058 000614 001403 BEQ 160$
2059 000616 077003 SOB R0,150$
2060 000620 005202 INC R2
2061 000622 000767 BR 140$
2062 000624 012701 000064' 160$: MOV #DCAWRF,R1
2063 000630 112200 MOVB (R2)+,R0 ; GET LRU AND
2064 000632 006200 ASR R0 ; SHIFT LOW ORDER BIT
2065 000634 103002 BCC 170$ ; INTO KL INSTRUCTION -
2066 000636 052711 100000 BIS #100000,(R1) ; (KIND OF A HACK....)
2067 000642 050061 000002 170$: BIS R0,2(R1) ; INSTALL REST OF LRU.
2068 000646 122212 CMPB (R2)+,(R2) ; CHECK ORDER AND
2069 000650 003003 BGT 180$
2070 000652 052761 000002 000002 BIS #000002,2(R1) ; AND INSTALL IT.
2071 000660 012700 000000' 180$: MOV #.ZERO,R0 ; GIVE THE DATA TO THE AC PROGRAM
2072 000664 CALL $DPOS ; TO STORE IN THE REFILL RAM.
000664 004737 013074' JSR PC,$DPOS
2073 000670 103423 BCS 200$
2074 000672 062711 000004 ADD #4,(R1) ; INCREMENT THE COUNTS
2075 000676 105205 INCB R5
2076 000700 122705 000003 CMPB #3,R5
2077 000704 002255 BGE 50$ ; TO LOOP.
2078 000706 105105 COMB R5
2079 000710 005105 COM R5
2080 000712 100651 BMI 40$
2081 000714 105204 INCB R4
2082 000716 122704 000003 CMPB #3,R4
2083 000722 002245 BGE 40$
2084 000724 105203 INCB R3
2085 000726 122703 000003 CMPB #3,R3
2086 000732 002240 BGE 30$
2087 000734 190$: CALLR LCARPT ; REPORT WHAT CACHES ENABLED.
000734 000137 000754' JMP LCARPT
2088 000740 200$: PRINT #TCACEF ; CACHE ENABLE FAILED.
000740 012700 000000' MOV #TCACEF,R0
000744 004737 027634' JSR PC,$TTMSG
2089 000750 000261 SEC
2090 000752 RETURN
000752 000207 RTS PC
KLICA -- LOAD CACHE REFILL RAM MACRO M1113 03-APR-86 20:55 PAGE 57
$SETCA -- CONFIGURE CACHE
2092 ;+
2093 ; REPORT THE CACHE CONFIGURATION
2094 ;-
2095
2096 000754 012701 000077' LCARPT: MOV #TCAACD,R1 ; GET MESSAGE FOR NO CACHE
2097 000760 113702 000064' MOVB .NCACH,R2 ; AND IF NONE,
2098 000764 003433 BLE 80$ ; PRINT THE MESSAGE.
2099 000766 012701 000026' MOV #TCAACE,R1 ; USE ALL CACHE MESSAGE IF
2100 000772 022702 000004 CMP #4,R2 ; ALL CACHES ARE BEING USED.
2101 000776 003426 BLE 80$
2102 001000 012701 000051' MOV #TCASCE,R1 ; MUST BE A PARTIAL CONFIGURATION.
2103 001004 010105 MOV R1,R5
2104 001006 122725 000123 10$: CMPB #'S,(R5)+ ; LOOK FOR PLACE TO
2105 001012 001375 BNE 10$
2106 001014 122725 000040 CMPB #' ,(R5)+ ; INSERT CACHE NUMBERS.
2107 001020 001372 BNE 10$
2108 001022 012703 000065' MOV #.CACHN,R3
2109 001026 112315 20$: MOVB (R3)+,(R5) ; GET NEXT NUMBER
2110 001030 152725 000060 BISB #'0,(R5)+ ; AND MAKE PRINTABLE.
2111 001034 112725 000054 MOVB #',,(R5)+
2112 001040 077206 SOB R2,20$ ; DO FOR ALL NUMBERS.
2113 001042 111765 177777 30$: MOVB (PC),-1(R5) ; NOW CLEAN UP
2114 001046 122725 000040 CMPB #' ,(R5)+
2115 001052 001373 BNE 30$
2116 001054 80$: PRINT R1
001054 010100 MOV R1,R0
001056 004737 027634' JSR PC,$TTMSG
2117 001062 000241 CLC
2118 001064 90$: RETURN
001064 000207 RTS PC
2119
KLICA -- LOAD CACHE REFILL RAM MACRO M1113 03-APR-86 20:55 PAGE 58
$SETCA -- CONFIGURE CACHE
2122
2123 .TITLE KLICB -- LOAD THE MICROCODE
2124 001066 IDENT$ 5,3,KLI$$F
.IDENT /A05030/
2125 ;
2126 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
2127 ; ALL RIGHTS RESERVED.
2128 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
2129 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
2130 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
2131 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
2132 ;
2133 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
2134 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
2135 ; EQUIPMENT CORPORATION.
2136 ;
2137 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
2138 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
2139 ;
2140 ; VERSION 05-02
2141 ;
2142 ; ALAN D. PECKHAM 11-APR-77
2143 ;
2144 ; MODIFICATIONS:
2145 ;
2146 ; K. LEFEBVRE 13-MAR-79 EXPANDED CRAM/DRAM ERROR REPORT
2147 ; TCO 4.2209
2148 ; 001 S. LEAPLINE 19-AUG-81 READ MICROCODE FILENAME FROM CONFIG FILE
2149 ; M. RUDENKO 25-JUL-84 READ MICROCODE VERSION AND EDIT LEVEL
2150 ; FROM CRAM
2151 ;
2152 ; FUNCTION: THIS MODULE CONTAINS THE ROUTINES WHICH LOAD THE KL
2153 ; MICROCODE FROM THE FILE 'KL.MCB'.
2154 ;
2155 ; EQUATED SYMBOLS
2156 ;
2157 000000 APR = 0 ; KL DEVICE.
2158 000000 BLKI = 0 ; KL I/O SUBFUNCTION CODE.
2159 ;
2160 ; LOCAL DATA
2161 ;
2162 000106 .PSECT DATA,D
2163 000106 000000 MAJVER: .WORD 0 ; [**] MICROCODE VERSION #
2164 000110 000000 SUBVER: .WORD 0 ; [**] MICROCODE SUB VERSION #
2165 000112 000000 UEDIT: .WORD 0 ; [**] MICROCODE EDIT LEVEL
2166 000114 043240 000000 000000 DCBFNM: .RAD50 /KL MCB/ ; MICROCODE FILE NAME.
000122 050672
2167 000124 000000 .WORD 0 ; GET LATEST VERSION.
2168 000126 005 005 .BYTE 5,5
2169 000130 054523 000000 .WORD "SY,0
2170 000134 000000 DCBADR: .WORD 0 ; RAM ADDRESS FROM RECORD.
2171 000136 000000 000000 000000 DCBDAT: .WORD 0,0,0,0,0,0 ; RAM DATA WORK AREA.
000144 000000 000000 000000
2172 000152 000000 DCBCNT: .WORD 0 ; VERIFY DIFFERENCE COUNT.
2173 000154 000000 DCBFIX: .WORD 0 ; [4.2209] MICROCODE FIX FLAG
2174 000156 000000 000000 000000 DCBCBF: .WORD 0,0,0,0,0,0 ; HOLDING AREA FOR C-RAM WORD.
000164 000000 000000 000000
KLICB -- LOAD THE MICROCODE MACRO M1113 03-APR-86 20:55 PAGE 58-1
$SETCA -- CONFIGURE CACHE
2175 000172 000000 000000 000000 DCBDBF: .WORD 0,0,0 ; D-RAM WORD HOLDING AREA.
2176 .EVEN ; DCBBF MUST BE ON A WORD BOUNDRY.
2177 ;DCBBF: WD36$ 0 0 ; APRID RESULT.
2178 ;DCBA17: WD22$ 17 ; AC17 ADDRESS.
2179 ;DCBAPR: IO10$ BLKI APR,,17 ; APRID INSTRUCTION.
2180 000200 113 114 111 TTTPR: .ASCIZ /KLI -- / ;[4.2209]
000203 040 055 055
000206 040 000
2181 .EVEN
2182 000117 .PSECT TEXT,D
2183 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
2184 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
2185 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
2186 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
2187 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
KLICB -- LOAD THE MICROCODE MACRO M1113 03-APR-86 20:55 PAGE 58-2
$SETCA -- CONFIGURE CACHE
000312 104 000
2188 000314 TCBMVL: MESSAGE <MICROCODE VERSION XX.X[XXX] LOADED>
000314 115 111 103 .ASCIZ \MICROCODE VERSION XX.X[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 056
000341 130 133 130
000344 130 130 135
000347 040 114 117
000352 101 104 105
000355 104 000
2189 000357 TCBMVV: MESSAGE <MICROCODE VERSION XX.X[XXX] VERIFIED>
000357 115 111 103 .ASCIZ \MICROCODE VERSION XX.X[XXX] VERIFIED\
000362 122 117 103
000365 117 104 105
000370 040 126 105
000373 122 123 111
000376 117 116 040
000401 130 130 056
000404 130 133 130
000407 130 130 135
000412 040 126 105
000415 122 111 106
000420 111 105 104
000423 000
2190 000424 TCBBAD: MESSAGE <BAD > ; [4.2209]
000424 102 101 104 .ASCIZ \BAD \
000427 040 040 000
2191 000432 TCBGOD: MESSAGE <GOOD > ; [4.2209]
000432 107 117 117 .ASCIZ \GOOD \
000435 104 040 000
2192 000440 TCBXOR: MESSAGE <XOR > ; [4.2209]
000440 130 117 122 .ASCIZ \XOR \
000443 040 040 000
2193 000446 TCBMRE: WARNING <READ ERROR ON CONFIG FILE - LOADING DEFAULT MICROCODE> ;001
000446 045 040 122 .ASCIZ \% READ ERROR ON CONFIG FILE - LOADING DEFAULT MICROCODE\
000451 105 101 104
000454 040 105 122
000457 122 117 122
000462 040 117 116
000465 040 103 117
000470 116 106 111
000473 107 040 106
000476 111 114 105
000501 040 055 040
000504 114 117 101
000507 104 111 116
000512 107 040 104
000515 105 106 101
000520 125 114 124
000523 040 115 111
000526 103 122 117
000531 103 117 104
000534 105 000
KLICB -- LOAD THE MICROCODE MACRO M1113 03-APR-86 20:55 PAGE 58-3
$SETCA -- CONFIGURE CACHE
2194 001066 .PSECT
KLICB -- LOAD THE MICROCODE MACRO M1113 03-APR-86 20:55 PAGE 59
$SETCA -- CONFIGURE CACHE
2196 ;+
2197 ; LOAD THE BINARY RAM FILE INTO THE KL OR USE THE FILE TO
2198 ; VERIFY THE RAM CODE.
2199 ; THE RAM BINARY FILE HAS THREE RECORD TYPES.
2200 ; *D-RAM RECORDS:
2201 ; .WORD 2+<6*N> ; BYTE COUNT RECORD LENGTH.
2202 ; .WORD ADR ; D-RAM ADDRESS (SHOULD BE EVEN).
2203 ; .BLKW 3*N ; D-RAM CODE WORDS.
2204 ; *C-RAM RECORDS:
2205 ; .WORD 2+<14*N> ; BYTE COUNT RECORD LENGTH.
2206 ; .WORD 100000+ADR ; C-RAM ADDRESS.
2207 ; .BLKW 6*N ; C-RAM CODE WORDS.
2208 ; *END OF FILE:
2209 ; .WORD 2 ; BYTE COUNT RECORD LENGTH.
2210 ; .WORD 100000!ADR ; C-RAM STARTING ADDRESS
2211 ; ; (NORMALLY ZERO).
2212 ;
2213 ; THE C-RAM RECORDS MUST BE SORTED IN ASCENDING ORDER BY ADDRESS
2214 ; SO THAT UNUSED WORDS MAY BE CLEARED WITHOUT HAVING TO CLEAR ALL
2215 ; THE C-RAM LOCATIONS.
2216 ;-
KLICB -- LOAD THE MICROCODE MACRO M1113 03-APR-86 20:55 PAGE 60
$MCBLD -- LOAD THE RAMS
2218 .SBTTL $MCBLD -- LOAD THE RAMS
2219 ;+
2220 ; LOAD OR VERIFY THE C&D-RAMS AND REPORT THE VERSION.
2221 ;
2222 ; INPUTS:
2223 ; .DRSW - IF NON-ZERO, LOAD RAMS, OTHERWISE VERIFY.
2224 ;
2225 ; OUTPUTS:
2226 ; CARRY SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
2227 ;+
2228 ; GET THE FILE AND INITIALIZE THE KL FOR MICROCODE OPERATIONS.
2229 ;-
2230
2231 001066 $MCBLD::
2232 001066 105737 000025' TSTB .MCBSW ; 001 - FILENAME ALREADY SPECIFIED ??
2233 001072 001007 BNE 5$ ; 001 - BRANCH IF YES
2234 001074 CALL LQMRFN ; 001 - READ MICROCODE FILENAME FROM CONFIG FILE
001074 004737 001246' JSR PC,LQMRFN
2235 001100 103004 BCC 5$ ; 001 - BRANCH IF NO ERRORS
2236 001102 PRINT #TCBMRE ; 001 - TELL HIM WERE LOADING THE DEFAULT
001102 012700 000446' MOV #TCBMRE,R0
001106 004737 027634' JSR PC,$TTMSG
2237 001112 012700 000114' 5$: MOV #DCBFNM,R0 ; GET UCODE FILE NAME AND
2238 001116 012710 MOV (PC)+,(R0) ; ASSUME MODEL A MICROCODE
2239 001120 043241 .RAD50 /KLA/ ; FOR MODEL A CPU.
2240 001122 105737 000044' TSTB .EASW ; IF
2241 001126 003402 BLE 10$ ; MODEL B THEN
2242 001130 012710 MOV (PC)+,(R0) ; CHOOSE
2243 001132 043270 .RAD50 /KLX/ ; MODEL B MICROCODE
2244 001134 105737 000025' 10$: TSTB .MCBSW ; IF FILE NAME SPECIFIED
2245 001140 003402 BLE 20$ ; BY OPERATOR
2246 001142 012700 000456' MOV #.MCBFN,R0 ; THEN USE HIS.
2247 001146 20$: CALL $LOOKUP ; AND OPEN IT.
001146 004737 007562' JSR PC,$LOOKUP
2248 001152 103411 BCS 40$
2249 001154 005037 000152' CLR DCBCNT ; INITIALIZE RAM DIFFERENCE COUNT.
2250 001160 012703 000136' MOV #DCBDAT,R3 ; DATA AREA AND
2251 001164 005002 CLR R2 ; NEXT C-RAM ADDRESS TO DEPOSIT.
2252 001166 CALL $KLMR ; RESET THE WORLD.
001166 004737 015232' JSR PC,$KLMR
2253 001172 103077 BCC LCBRC
2254 001174 30$: RETURN
001174 000207 RTS PC
2255
2256 001176 122737 000000G 000526' 40$: CMPB #IE.NSF,.SYSTA ; IF FILE NOT FOUND
2257 001204 001373 BNE 30$
2258 001206 CALL $IOERR ; DECLARE THE ERROR.
001206 004737 007346' JSR PC,$IOERR
2259 001212 000137 002636' JMP LCBFL ; REPORT OPERATION FAILED.
KLICB -- LOAD THE MICROCODE MACRO M1113 03-APR-86 20:55 PAGE 61
$MCBLD -- LOAD THE RAMS
2261 ;+
2262 ; READ 3 OR 6 WORDS FROM THE MICROCODE FILE.
2263 ;
2264 ; INPUTS:
2265 ; R3 - POINTER TO AREA TO RECIEVE DATA.
2266 ;
2267 ; OUTPUTS:
2268 ; CARRY SET IF ERROR. R0, R4 & R5 ARE DESTROYED.
2269 ;-
2270
2271 .ENABL LSB
2272 001216 012705 000003 LCB3W: MOV #3,R5 ; GET 3 WORDS.
2273 001222 000402 BR 10$
2274 001224 012705 000006 LCB6W: MOV #6,R5 ; GET 6 WORDS.
2275 001230 010304 10$: MOV R3,R4
2276 001232 20$: CALL $READW
001232 004737 010324' JSR PC,$READW
2277 001236 103402 BCS 30$
2278 001240 010024 MOV R0,(R4)+
2279 001242 077505 SOB R5,20$
2280 001244 30$: RETURN
001244 000207 RTS PC
2281 .DSABL LSB
KLICB -- LOAD THE MICROCODE MACRO M1113 03-APR-86 20:55 PAGE 62
$MCBLD -- LOAD THE RAMS
2283 ;+
2284 ;
2285 ; LOCAL SUBROUTINE TO READ THE MICROCODE FILE NAME FROM KL.CFG. IF NOT FOUND
2286 ; THE DEFAULT(DEC SUPPLIED) MICROCODE IS LOADED.
2287 ;
2288 ;-
2289
2290 001246 LQMRFN:
2291 001246 012700 001534' MOV #DQBFNM,R0 ; GET THE FILE TO LOOK UP
2292 001252 CALL $LOOKUP ; LOOK UP THE FILE
001252 004737 007562' JSR PC,$LOOKUP
2293 001256 103002 BCC 10$ ; BRANCH IF FOUND
2294 001260 000241 CLC ; NO ERROR IF NOT FOUND
2295 001262 000442 BR 60$ ; EXIT
2296 001264 10$:
2297 001264 CALL $READC ; READ FIRST RECORD
001264 004737 010216' JSR PC,$READC
2298 001270 103434 BCS 50$ ; EXIT ON ERROR
2299 001272 022700 000004 CMP #4,R0 ; THIS RECORD OURS ??
2300 001276 001411 BEQ 30$ ; BRANCH IF YES
2301 001300 005700 TST R0 ; END-OF-FILE ??
2302 001302 001003 BNE 20$ ; NO, SKIP THIS RECORD
2303 001304 15$:
2304 001304 CALL $CLOSE ; CLOSE THE FILE
001304 004737 007056' JSR PC,$CLOSE
2305 001310 000427 BR 60$ ; AND EXIT
2306 001312 20$:
2307 001312 CALL $READS ; SKIP THIS RECORD
001312 004737 010254' JSR PC,$READS
2308 001316 103421 BCS 50$ ; EXIT ON ERROR
2309 001320 000761 BR 10$ ; READ THE NEXT RECORD
2310 001322 30$:
2311 001322 CALL $READB ; READ THE NEXT BYTE
001322 004737 010420' JSR PC,$READB
2312 001326 103415 BCS 50$ ; EXIT ON ERROR
2313 001330 110037 000025' MOVB R0,.MCBSW ; SAVE THE FILENAME SWITCH
2314 001334 001763 BEQ 15$ ; IF NO FILENAME, EXIT
2315 001336 012701 000004 MOV #4,R1 ; SETUP TO READ THE FILENAME
2316 001342 012702 000456' MOV #.MCBFN,R2 ; PLACE IT HERE
2317 001346 40$:
2318 001346 CALL $READW ; READ A WORD
001346 004737 010324' JSR PC,$READW
2319 001352 103403 BCS 50$ ; EXIT ON ERROR
2320 001354 010022 MOV R0,(R2)+ ; SAVE IT
2321 001356 077105 SOB R1,40$ ; LOOP FOR ALL
2322 001360 000751 BR 15$ ; EXIT
2323 001362 50$:
2324 001362 CALL $PURGE ; PURGE THE FILE
001362 004737 010124' JSR PC,$PURGE
2325 001366 000261 SEC
2326 001370 60$:
2327 001370 RETURN
001370 000207 RTS PC
2328
2329 ;+
2330 ; IDENTIFY A RECORD AND DISPATCH ON RECORD TYPE.
2331 ; END-OF-FILE IS HANDLED HERE - THE C-RAM STARTING ADDRESS IS
KLICB -- LOAD THE MICROCODE MACRO M1113 03-APR-86 20:55 PAGE 62-1
$MCBLD -- LOAD THE RAMS
2332 ; USED TO START THE MICROCODE, THE FILE IS CLOSED, AND WE GO
2333 ; TO IDENTIFY THE MICROCODE VERSION.
2334 ;
2335 ; NECESSARY EVILS:
2336 ; .SYIRC - THE NUMBER OF BYTES LEFT IN THE CURRENT RECORD.
2337 ;-
2338
2339 001372 LCBRC: CALL $READC ; GET ADDRESS.
001372 004737 010216' JSR PC,$READC
2340 001376 103437 BCS 10$
2341 001400 010037 000134' MOV R0,DCBADR
2342 001404 100402 BMI 5$ ; C-RAM RECORD OR END OF FILE
2343 001406 000137 002172' JMP LCBDRM ; D-RAM RECORD
2344 001412 042737 100000 000134' 5$: BIC #BIT15,DCBADR ; (REMOVE FLAG)
2345 001420 005737 000534' TST .SYIRC
2346 001424 003101 BGT LCBCRM ; C-RAM RECORD OR
2347 001426 CALL RDMCV ; [**] FETCH U_CODE VERSION/EDIT
001426 004737 001502' JSR PC,RDMCV
2348
2349 001432 013700 000134' MOV DCBADR,R0 ; C-RAM START ADDRESS.
2350 001436 005737 000152' TST DCBCNT ; IF VERIFY AND DIFFERENCE FOUND
2351 001442 001015 BNE 10$ ; SIGNAL ERROR.
2352 001444 CALL $ACRAM ; SET C-RAM STARTING ADDRESS
001444 004737 012166' JSR PC,$ACRAM
2353 001450 103412 BCS 10$ ; AND
2354 001452 012700 001000 MOV #.STRCL,R0
2355 001456 CALL $DFXC ; START THE CLOCK.
001456 004737 013760' JSR PC,$DFXC
2356 001462 CALL $CLOSE ; CLOSE THE FILE
001462 004737 007056' JSR PC,$CLOSE
2357 001466 CALL $CLLOG ; [4.1.1073]CLOSE LOG FILE
001466 004737 000000G JSR PC,$CLLOG
2358 001472 000137 002674' JMP LCBVR ; IDENTIFY RAM VERSION.
2359 001476 000137 002636' 10$: JMP LCBFL ; OPERATION FAILED.
KLICB -- LOAD THE MICROCODE MACRO M1113 03-APR-86 20:55 PAGE 63
RDMCV - READ MICROCODE VERSION/EDIT LEVEL
2361 .SBTTL RDMCV - READ MICROCODE VERSION/EDIT LEVEL
2362 ;+
2363 ; HERE TO FETCH MICRO CODE VERSION AND EDIT #'S
2364 ;
2365 ; INPUTS:
2366 ; NONE
2367 ;
2368 ; OUTPUTS:
2369 ; MAJVER - MAJOR VERSION #
2370 ; SUBVER - SUB-VERSION #
2371 ; UEDIT - EDIT LEVEL
2372 ;
2373 ; REGISTERS ALTERED:
2374 ; NONE
2375 ;
2376 ; MAJOR VERSION IS IN BITS 29-31 33-35 OF CRAM ADDRESS 136
2377 ; SUB-VERSION IS IN BITS 37-39 OF CRAM ADDRESS 136
2378 ; EDIT LEVEL IS IN BITS 29-31 33-35 37-39 OF CRAM ADDRESS 137
2379 ;-
2380
2381 001502 004537 024204' RDMCV: JSR R5,$RSAVE ; [**]
2382 001506 012701 000156' MOV #DCBCBF,R1 ; [**] 6 WORD BUFFER TO HOLD 80 BIT CRAM DATA
2383 001512 012700 000137 MOV #137,R0 ; [**] CRAM ADDRESS THAT HAS U_CODE EDIT #
2384 001516 005004 CLR R4 ; [**] FLAG THAT WE WANT EDIT LEVEL
2385 001520 10$: CALL $RCRAM ; [**] FETCH CRAM DATA
001520 004737 011564' JSR PC,$RCRAM
2386 001524 016100 000006 MOV 6(R1),R0 ; [**] FETCH CRAM BITS <16:31>
2387 001530 000300 SWAB R0 ; [**] GET CRAM BITS 29-31 INTO R0 <8:10> ...
2388 001532 006200 ASR R0 ; [**] THEN INTO <7:9> ...
2389 001534 006200 ASR R0 ; [**] FINALLY INTO <6:8> WHERE IT BELONGS.
2390 001536 042700 177077 BIC #^C700,R0 ; [**] CLEAR UNDESIRED NOISE
2391 001542 016102 000004 MOV 4(R1),R2 ; [**] FETCH CRAM <32:47>
2392 001546 000302 SWAB R2 ; [**] START BIT MOVING <33:35>
2393 001550 010203 MOV R2,R3 ; [**] SAVE FOR LATER GETTING <37:39>
2394 001552 006202 ASR R2 ; [**] CRAM <33:35> NOW IN R2 <3:5>
2395 001554 042702 177707 BIC #^C70,R2 ; [**] MASK OUT UNDESIRED BITS
2396 001560 050200 BIS R2,R0 ; [**] AND INCLUDE IT IN THE BUFFER
2397 001562 042703 177770 BIC #^C7,R3 ; [**] EXTRACT BITS 37-39, LEAVE THEM AT <0:2>
2398 001566 005704 TST R4 ; [**] 0 = GET EDIT; 1 = GET VERSION
2399 001570 001007 BNE 20$ ; [**] GO GET VERSION
2400 001572 050300 BIS R3,R0 ; [**] AND HERE IS THE LAST DIGIT
2401 001574 010037 000112' MOV R0,UEDIT ; [**] SAVE FOR LATER DISPLAY
2402 001600 005204 INC R4 ; [**] INDICATE WE NOW WANT VERSION #
2403 001602 012700 000136 MOV #136,R0 ; [**] HERE IS WHERE TO FIND IT
2404 001606 000744 BR 10$ ; [**] GO DO IT
2405 001610 010337 000110' 20$: MOV R3,SUBVER ; [**] STORE SUB-VERSION
2406 001614 006200 ASR R0 ; [**] SLIDE ...
2407 001616 006200 ASR R0 ; [**] TO THE ...
2408 001620 006200 ASR R0 ; [**] RIGHTMOST
2409 001622 010037 000106' MOV R0,MAJVER ; [**] STORE RESULT
2410 001626 RETURN
001626 000207 RTS PC
KLICB -- LOAD THE MICROCODE MACRO M1113 03-APR-86 20:55 PAGE 64
RDMCV - READ MICROCODE VERSION/EDIT LEVEL
2412 ;+
2413 ; PROCESS C-RAM RECORD.
2414 ;
2415 ; NECESSARY EVILS:
2416 ; R3 - POINTS TO THE CURRENT C-RAM WORD FROM THE FILE.
2417 ; R2 - CONTAINS THE NEXT EXPECTED C-RAM ADDRESS TO BE
2418 ; WRITTEN.
2419 ; DCBADR - CONTAINS THE ADDRESS FOR THE C-RAM WORD READ
2420 ; FROM THE FILE.
2421 ; .DRSW - IF NON-ZERO, THEN VERIFY.
2422 ; .SYIRC - COUNT OF BYTES LEFT IN CURRENT RECORD.
2423 ;-
2424
2425 001630 005037 000154' LCBCRM: CLR DCBFIX ; [4.2209] CLEAR FIX FLAG
2426 001634 105737 000027' TSTB .DRSW ; TEST FUNCTION...
2427 001640 001013 BNE 20$ ; IF WE ARE LOADING,
2428 001642 020237 000134' 10$: CMP R2,DCBADR ; AND WORDS ARE BEING SKIPPED
2429 001646 001412 BEQ 30$
2430 001650 012701 000000' MOV #.ZERO,R1 ; THEN ZERO THE WORDS OUT.
2431 001654 010200 MOV R2,R0
2432 001656 CALL $WCRAM
001656 004737 011304' JSR PC,$WCRAM
2433 001662 103541 BCS 80$
2434 001664 005202 INC R2
2435 001666 000765 BR 10$
2436 001670 013702 000134' 20$: MOV DCBADR,R2
2437 001674 30$: CALL LCB6W ; GET THE C-RAM WORD AND
001674 004737 001224' JSR PC,LCB6W
2438 001700 103532 BCS 80$
2439 001702 010200 35$: MOV R2,R0 ; SET UP POINTER.
2440 001704 105737 000027' TSTB .DRSW ; IF WE VERIFY,
2441 001710 001417 BEQ 50$
2442 001712 012701 000156' MOV #DCBCBF,R1 ; GET HOLDING AREA,
2443 001716 CALL $RCRAM ; READ IT IN
001716 004737 011564' JSR PC,$RCRAM
2444 001722 103521 BCS 80$
2445 001724 042761 000020 000004 BIC #20,4(R1) ; [4.1.1072]CLEAR MARK BIT
2446 001732 012705 000006 MOV #6,R5 ; AND COMPARE 6 WORDS
2447 001736 010300 MOV R3,R0
2448 001740 022021 40$: CMP (R0)+,(R1)+
2449 001742 001023 BNE 70$
2450 001744 077503 SOB R5,40$
2451 001746 000404 BR 60$ ; OTHERWISE
2452 001750 010301 50$: MOV R3,R1 ; GET THE WORD ADDRESS
2453 001752 CALL $WCRAM ; AND WRITE INTO THE RAM.
001752 004737 011304' JSR PC,$WCRAM
2454 001756 103503 BCS 80$
2455 001760 005737 000154' 60$: TST DCBFIX ; [4.2209] FIXED FLAG SET?
2456 001764 001402 BEQ 65$ ; [4.2209] NO-- CONTINUE
2457 001766 005337 000152' DEC DCBCNT ; [4.2209] YES-- DECREMENT ERROR COUNT
2458 001772 005037 000154' 65$: CLR DCBFIX ; [4.2209] CLEAR FIX FLAG
2459 001776 005202 INC R2 ; BUMP C-RAM ADDRESS AND
2460 002000 005737 000534' TST .SYIRC ; IF MORE DATA, THEN
2461 002004 001333 BNE 30$ ; GET NEXT WORD OR
2462 002006 000137 001372' JMP LCBRC ; GET NEW RECORD.
2463 002012 70$: CALL $OPLOG ; [4.1.1073]OPEN LOG FILE
002012 004737 000000G JSR PC,$OPLOG
KLICB -- LOAD THE MICROCODE MACRO M1113 03-APR-86 20:55 PAGE 64-1
RDMCV - READ MICROCODE VERSION/EDIT LEVEL
2464 002016 005737 000154' TST DCBFIX ; [4.2209] FIXED FLAG SET?
2465 002022 001405 BEQ 72$ ; [4.2209] NO-- CONTINUE
2466 002024 012700 000265' MOV #TCBFXF,R0 ; [4.2209] YES-- TYPE MESSAGE
2467 002030 CALL $TTMSG ; [4.2209] TYPE IT
002030 004737 027634' JSR PC,$TTMSG
2468 002034 000756 BR 65$ ; [4.2209] TRY NEXT WORD
2469 002036 010200 72$: MOV R2,R0 ; ERROR - PUT ADDRESS
2470 002040 012701 000117' MOV #TCBDCW,R1 ; INTO ERROR MESSAGE
2471 002044 CALL LCBRME ; AND INFORM OPERATOR.
002044 004737 002516' JSR PC,LCBRME
2472 002050 103446 BCS 80$ ; FIVE UNFIXED ERRORS.
2473 002052 012701 000156' MOV #DCBCBF,R1 ; [4.2209] BAD BUFFER TO TYPE
2474 002056 012700 000424' MOV #TCBBAD,R0 ; [4.2209] HEADER TO TYPE
2475 002062 005004 CLR R4 ; [4.2209] CRAM TYPE OUT SWITCH
2476 002064 CALL LCBVFY ; [4.2209] TYPE BAD DATA
002064 004737 002572' JSR PC,LCBVFY
2477 002070 010301 MOV R3,R1 ; [4.2209] GOOD BUFFER TO TYPE
2478 002072 012700 000432' MOV #TCBGOD,R0 ; [4.2209] HEADER TO TYPE
2479 002076 CALL LCBVFY ; [4.2209] TYPE GOOD DATA
002076 004737 002572' JSR PC,LCBVFY
2480 002102 012700 000156' MOV #DCBCBF,R0 ; [4.2209] BAD DATA PTR
2481 002106 010301 MOV R3,R1 ; [4.2209] GOOD DATA PTR
2482 002110 012705 000006 MOV #6,R5 ; [4.2209] NUMBER OF WORDS
2483 002114 012104 75$: MOV (R1)+,R4 ; [4.2209] GET GOOD DATA
2484 002116 074420 XOR R4,(R0)+ ; [4.2209] GET DIFFERENCES
2485 002120 077503 SOB R5,75$ ; [4.2209] DONE?
2486 002122 012701 000156' MOV #DCBCBF,R1 ; [4.2209] YES-- XOR DATA TO TYPE
2487 002126 012700 000440' MOV #TCBXOR,R0 ; [4.2209] HEADER TO TYPE
2488 002132 005004 CLR R4 ; [4.2209] CRAM TYPE OUT SWITCH
2489 002134 CALL LCBVFY ; [4.2209] TYPE XOR DATA
002134 004737 002572' JSR PC,LCBVFY
2490 002140 105737 000027' TSTB .DRSW ; [4.2209] YES-- TRY TO FIX?
2491 002144 002305 BGE 60$ ; [4.2209] NO-- EXIT
2492 002146 010301 MOV R3,R1 ; [4.2209] YES-- SET UP GOOD DATA
2493 002150 010200 MOV R2,R0 ; [4.2209] ADDR TO WRITE
2494 002152 CALL $WCRAM ; [4.2209] WRITE DATA
002152 004737 011304' JSR PC,$WCRAM
2495 002156 103403 BCS 80$ ; [4.2209] WRITE FAILED
2496 002160 005237 000154' INC DCBFIX ; [4.2209] SET FIXED FLAG
2497 002164 000646 BR 35$ ; [4.2209] VERIFY FIX
2498 002166 000137 002636' 80$: JMP LCBFL ; OPERATION FAILED.
KLICB -- LOAD THE MICROCODE MACRO M1113 03-APR-86 20:55 PAGE 65
RDMCV - READ MICROCODE VERSION/EDIT LEVEL
2500 ;+
2501 ; PROCESS D-RAM RECORD.
2502 ;
2503 ; NECESSARY EVILS:
2504 ; R3 - POINTS TO D-RAM WORD READ FROM FILE.
2505 ; DCBADR - ADDRESS FOR D-RAM WORD FROM FILE.
2506 ; .DRSW - IF NON-ZERO, THEN VERIFY.
2507 ;-
2508
2509 002172 005037 000154' LCBDRM: CLR DCBFIX ; [4.2209] CLEAR FIX FLAG
2510 002176 CALL LCB3W ; READ D-RAM WORD AND
002176 004737 001216' JSR PC,LCB3W
2511 002202 103543 BCS 40$
2512 002204 013700 000134' MOV DCBADR,R0 ; SET UP POINTERS.
2513 002210 105737 000027' TSTB .DRSW ; TEST FUNCTION...
2514 002214 001005 BNE 10$
2515 002216 010301 MOV R3,R1 ; GET THE WORD AND
2516 002220 CALL $WDRAM ; WRITE IT OUT.
002220 004737 012314' JSR PC,$WDRAM
2517 002224 103021 BCC 20$
2518 002226 000531 BR 40$
2519 002230 012701 000172' 10$: MOV #DCBDBF,R1 ; GET A HOLDING AREA
2520 002234 CALL $RDRAM ; AND READ IT IN
002234 004737 012474' JSR PC,$RDRAM
2521 002240 103524 BCS 40$
2522 002242 010300 MOV R3,R0
2523 002244 042711 000020 BIC #20,(R1) ; CLEAR PARITY BITS
2524 002250 022120 CMP (R1)+,(R0)+ ; AND COMPARE.
2525 002252 001025 BNE 30$
2526 002254 042711 000020 BIC #20,(R1)
2527 002260 022120 CMP (R1)+,(R0)+
2528 002262 001021 BNE 30$
2529 002264 021110 CMP (R1),(R0)
2530 002266 001017 BNE 30$
2531 002270 005737 000154' 20$: TST DCBFIX ; [4.2209] FIXED FLAG SET?
2532 002274 001402 BEQ 25$ ; [4.2209] NO-- CONTINUE
2533 002276 005337 000152' DEC DCBCNT ; [4.2209] YES-- DECREMENT ERROR COUNT
2534 002302 005037 000154' 25$: CLR DCBFIX ; [4.2209] CLEAR FIX FLAG
2535 002306 062737 000002 000134' ADD #2,DCBADR ; BUMP D-RAM ADDRESS.
2536 002314 005737 000534' TST .SYIRC ; END OF RECORD ?
2537 002320 001324 BNE LCBDRM ; NO, STILL GOING,
2538 002322 000137 001372' JMP LCBRC ; OTHERWISE GET NEW RECORD.
2539 002326 30$: CALL $OPLOG ; [4.1.1073]OPEN LOG FILE
002326 004737 000000G JSR PC,$OPLOG
2540 002332 005737 000154' TST DCBFIX ; [4.2209] FIXED FLAG SET?
2541 002336 001405 BEQ 32$ ; [4.2209] NO-- CONTINUE
2542 002340 012700 000265' MOV #TCBFXF,R0 ; [4.2209] YES-- TYPE MESSAGE
2543 002344 CALL $TTMSG ; [4.2209] TYPE IT
002344 004737 027634' JSR PC,$TTMSG
2544 002350 000754 BR 25$ ; [4.2209] TRY NEXT WORD
2545 002352 013700 000134' 32$: MOV DCBADR,R0 ; ERROR - PUT ADDRESS
2546 002356 012701 000151' MOV #TCBDDW,R1 ; IN ERROR MESSAGE
2547 002362 CALL LCBRME ; AND INFORM OPERATOR.
002362 004737 002516' JSR PC,LCBRME
2548 002366 103451 BCS 40$ ; FIVE UNFIXED ERRORS
2549 002370 012704 000001 MOV #1,R4 ; [4.2209] DRAM TYPE OUT SWITCH
2550 002374 012701 000172' MOV #DCBDBF,R1 ; [4.2209] BAD BUFFER
KLICB -- LOAD THE MICROCODE MACRO M1113 03-APR-86 20:55 PAGE 65-1
RDMCV - READ MICROCODE VERSION/EDIT LEVEL
2551 002400 012700 000424' MOV #TCBBAD,R0 ; [4.2209] HEADER
2552 002404 CALL LCBVFY ; [4.2209] TYPE GOOD DATA
002404 004737 002572' JSR PC,LCBVFY
2553 002410 010301 MOV R3,R1 ; [4.2209] GOOD BUFFER
2554 002412 012700 000432' MOV #TCBGOD,R0 ; [4.2209] HEADER
2555 002416 CALL LCBVFY ; [4.2209] TYPE GOOD DATA
002416 004737 002572' JSR PC,LCBVFY
2556 002422 012700 000172' MOV #DCBDBF,R0 ; [4.2209] BAD BUFFER
2557 002426 010301 MOV R3,R1 ; [4.2209] GOOD DATA
2558 002430 012705 000003 MOV #3,R5 ; [4.2209] NUMBER OF WORDS
2559 002434 012104 35$: MOV (R1)+,R4 ; [4.2209] GET GOOD DATA
2560 002436 074420 XOR R4,(R0)+ ; [4.2209] GET DIFFERENCES
2561 002440 077503 SOB R5,35$ ; [4.2209] DONE?
2562 002442 012701 000172' MOV #DCBDBF,R1 ; [4.2209] YES-- XOR BUFFER
2563 002446 012700 000440' MOV #TCBXOR,R0 ; [4.2209] HEADER
2564 002452 012704 000001 MOV #1,R4 ; [4.2209] DRAM TYPE OUT HEADER
2565 002456 CALL LCBVFY ; [4.2209] TYPE XOR DATA
002456 004737 002572' JSR PC,LCBVFY
2566 002462 105737 000027' TSTB .DRSW ; [4.2209] TRY TO FIX?
2567 002466 002300 BGE 20$ ; [4.2209] NO-- NEXT WORD
2568 002470 013700 000134' MOV DCBADR,R0 ; [4.2209] YES-- SET UP ADDRESS
2569 002474 010301 MOV R3,R1 ; [4.2209] SET UP DATA
2570 002476 CALL $WDRAM ; [4.2209] WRITE IT
002476 004737 012314' JSR PC,$WDRAM
2571 002502 103403 BCS 40$ ; [4.2209] WRITE FAILED
2572 002504 005237 000154' INC DCBFIX ; [4.2209] SET FIXED FLAG
2573 002510 000647 BR 10$ ; [4.2209] VERIFY FIX
2574 002512 000137 002636' 40$: JMP LCBFL ; OPERATION FAILED.
KLICB -- LOAD THE MICROCODE MACRO M1113 03-APR-86 20:55 PAGE 66
RDMCV - READ MICROCODE VERSION/EDIT LEVEL
2576 ;+
2577 ; INSERT RAM ADDRESS IN ERROR MESSAGE AND PRINT IT. BUMP ERROR COUNT
2578 ; AND IF TOO HIGH, SO INDICATE.
2579 ;
2580 ; INPUTS:
2581 ; R1 - ADDRESS OF MESSAGE TO DISPLAY.
2582 ; R0 - RAM ADDRESS TO DISPLAY IN OCTAL AFTER "AT ".
2583 ;
2584 ; OUTPUT:
2585 ; CARRY SET IF TOO MANY ERRORS.
2586 ;-
2587
2588 002516 004537 024204' LCBRME: JSR R5,$RSAVE
2589 002522 010105 MOV R1,R5 ; GET MESSAGE ADDRESS
2590 002524 122725 000101 10$: CMPB #'A,(R5)+ ; AND LOOK FOR "AT"
2591 002530 001375 BNE 10$
2592 002532 122725 000124 CMPB #'T,(R5)+
2593 002536 001372 BNE 10$
2594 002540 005205 INC R5 ; PASS BY SPACE
2595 002542 CALL $TRB2O ; AND INSERT RAM ADDRESS.
002542 004737 026500' JSR PC,$TRB2O
2596 002546 105015 CLRB (R5) ; THIS IS THE END OF THE MESSAGE.
2597 002550 PRINT R1 ; TYPE OUT OFFENDING ADDRESS.
002550 010100 MOV R1,R0
002552 004737 027634' JSR PC,$TTMSG
2598 002556 005237 000152' INC DCBCNT ; ONE MORE DIFFERENCE.
2599 002562 022737 000005 000152' CMP #5,DCBCNT ; LAST STRAW ?
2600 002570 RETURN ; SETS CARRY IF MCBCNT>5.
002570 000207 RTS PC
2601
2602 ;+
2603 ; TYPE MESSAGE HEADER THEN A SPECIFIED NUMBER OF WORDS AS BINARY VALUES.
2604 ;
2605 ; INPUTS:
2606 ; R0- MESSAGE HEADER.
2607 ; R1- DATA BUFFER TO TYPE AS BINARY DIGITS.
2608 ; R4- CRAM/DRAM TYPE OUT SWITCH
2609 ;
2610 ; OUTPUTS:
2611 ; NONE- NO REGISTERS AFFECTED
2612 ;-
2613
2614 002572 LCBVFY: PUSH <R0> ; [4.2209] SAVE R0
002572 010046 MOV R0,-(SP)
2615 002574 012700 000200' MOV #TTTPR,R0 ; [4.2209] PREFIX HEADER
2616 002600 CALL $TTDMS ; [4.2209] TYPE PREFIX HEADER
002600 004737 027566' JSR PC,$TTDMS
2617 002604 POP <R0> ; [4.2209] RESTORE R0
002604 012600 MOV (SP)+,R0
2618 002606 CALL $TTDMS ; [4.2209] TYPE MESSAGE HEADER
002606 004737 027566' JSR PC,$TTDMS
2619 002612 005704 TST R4 ; [4.2209] TEST SWITCH
2620 002614 001403 BEQ 5$ ; [4.2209] CRAM
2621 002616 CALL $TRDRM ; [4.2209] TYPE DRAM
002616 004737 025656' JSR PC,$TRDRM
2622 002622 000402 BR 7$ ; [4.2209] CONTINUE
2623 002624 5$: CALL $TRCRM ; [4.2209] TYPE CRAM
KLICB -- LOAD THE MICROCODE MACRO M1113 03-APR-86 20:55 PAGE 66-1
RDMCV - READ MICROCODE VERSION/EDIT LEVEL
002624 004737 025512' JSR PC,$TRCRM
2624 002630 7$: CALL $TCRLF ; [4.2209] TYPE CR-LF
002630 004737 027530' JSR PC,$TCRLF
2625 002634 RETURN ; [4.2209] DONE
002634 000207 RTS PC
2626
2627 ;+
2628 ; OPERATION FAILED - NOTIFY OPERATOR.
2629 ;-
2630
2631 002636 LCBFL: CALL $CLLOG ; [4.1.1073]CLOSE LOG FILE
002636 004737 000000G JSR PC,$CLLOG
2632 002642 012700 000203' MOV #TCBMLF,R0 ; ASSUME LOAD
2633 002646 105737 000027' TSTB .DRSW ; AND IF VERIFY,
2634 002652 001402 BEQ 10$
2635 002654 012700 000233' MOV #TCBMVF,R0 ; GET VERIFY MESSAGE.
2636 002660 10$: PRINT
002660 004737 027634' JSR PC,$TTMSG
2637 002664 CALL $PURGE
002664 004737 010124' JSR PC,$PURGE
2638 002670 000261 SEC
2639 002672 RETURN
002672 000207 RTS PC
KLICB -- LOAD THE MICROCODE MACRO M1113 03-APR-86 20:55 PAGE 67
RDMCV - READ MICROCODE VERSION/EDIT LEVEL
2641 ;+
2642 ; IDENTIFY THE MICROCODE VERSION NUMBER.
2643 ;-
2644
2645 002674 105737 000027' LCBVR: TSTB .DRSW ; GET MESSAGE:
2646 002700 001003 BNE 10$
2647 002702 012702 000314' MOV #TCBMVL,R2 ; MICROCODE LOADED OR
2648 002706 000402 BR 20$
2649 002710 012702 000357' 10$: MOV #TCBMVV,R2 ; MICROCODE VERIFIED.
2650 002714 010205 20$: MOV R2,R5 ; GET POSITION TO INSERT
2651 002716 122725 000117 30$: CMPB #'O,(R5)+ ; MICROCODE VERSION.
2652 002722 001375 BNE 30$
2653 002724 122725 000116 CMPB #'N,(R5)+
2654 002730 001372 BNE 30$
2655 002732 005205 INC R5
2656 002734 013700 000106' MOV MAJVER,R0 ; [**] FETCH MAJOR VERSION #
2657 002740 CALL $TRB2O ; [**] CONVERT TO ASCII AND INSERT IN BUFFER
002740 004737 026500' JSR PC,$TRB2O
2658 002744 122715 000056 35$: CMPB #'.,(R5) ; [**] FIND DECIMAL POINT TO WRITE SUB-VERSION
2659 002750 001403 BEQ 40$ ; [**] GOT IT ... DISPLAY SUB-VERSION
2660 002752 112725 177777 MOVB #-1,(R5)+ ; [**] FLUSH CHAR AND ...
2661 002756 000772 BR 35$ ; [**] TRY AGAIN
2662 002760 005205 40$: INC R5 ; [**] SKIP OVER DECIMAL POINT
2663 002762 013700 000110' MOV SUBVER,R0 ; [**] GET SUB-VERSION
2664 002766 CALL $TRB2O ; [**] CONVERT TO ASCII AND INSERT IN BUFFER
002766 004737 026500' JSR PC,$TRB2O
2665 002772 005205 INC R5 ; [**] SKIP OVER "["
2666 002774 013700 000112' MOV UEDIT,R0 ; [**] FETCH EDIT #
2667 003000 CALL $TRB2O ; [**] CONVERT TO ASCII AND INSERT IN BUFFER
003000 004737 026500' JSR PC,$TRB2O
2668 003004 122715 000135 45$: CMPB #'],(R5) ; [**] FIND THE OTHER "]"
2669 003010 001403 BEQ 60$ ; [**] OK ... PRINT MESSAGE
2670 003012 112725 177777 MOVB #-1,(R5)+ ; [**] FLUSH FILLER AND ...
2671 003016 000772 BR 45$ ; [**] CONTINUE SCANNING
2672 003020 60$: PRINT R2 ; PRINT THE MESSAGE.
003020 010200 MOV R2,R0
003022 004737 027634' JSR PC,$TTMSG
2673 003026 005705 TST R5 ; HOW DID IT TURN OUT ?
2674 003030 001001 BNE 70$
2675 003032 000261 SEC ; BADLY.....
2676 003034 70$: RETURN
003034 000207 RTS PC
2677
2678 .TITLE KLICF -- CREATE NEW CONFIGURATION IN FILE
2679 003036 IDENT$ 15,12
.IDENT /015120/
2680 ;
2681 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
2682 ; ALL RIGHTS RESERVED.
2683 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
2684 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
2685 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
2686 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
2687 ;
2688 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
2689 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
2690 ; EQUIPMENT CORPORATION.
KLICF -- CREATE NEW CONFIGURATI MACRO M1113 03-APR-86 20:55 PAGE 67-1
RDMCV - READ MICROCODE VERSION/EDIT LEVEL
2691 ;
2692 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
2693 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
2694 ;
2695 ; VERSION 15-12
2696 ;
2697 ; ALAN D. PECKHAM 11-APR-77
2698 ;
2699 ; MODIFIED BY:
2700 ;
2701 ; R. BELANGER 02-MAR-79 ADD REVERSE MEMORY CONFIGURATION
2702 ; TCO 4.2204
2703 ; R. BELANGER 16-NOV-78 INTEGRATE TOPS-10 SMP FEATURES
2704 ; TCO 4.2093
2705 ; R. BELANGER 25-JUL-78 INTEGRATE MOS CONFIGURATOR
2706 ;
2707 ; S. LEAPLINE 19-AUG-81 SAVE MICROCODE FILENAME IN CONFIG
2708 ;
2709 ; M. RUDENKO 19-MAR-84 ADD MCA25 PAGE SELECT CONFIG
2710 ;
2711 ; FUNCTION: THIS MODULE WRITES OUT THE NEW CONFIGURATION TO
2712 ; KL.CFG IF THE CONFIGURATION HAS BEEN CHANGED.
KLICF -- CREATE NEW CONFIGURATI MACRO M1113 03-APR-86 20:55 PAGE 68
RDMCV - READ MICROCODE VERSION/EDIT LEVEL
2714 ;
2715 ; EQUATED SYMBOLS
2716 ;
2717 000005 MXTYP = 5 ; LARGEST RECORD TYPE WE HANDLE.
2718 ;
2719 ; LOCAL DATA
2720 ;
2721 000210 .PSECT DATA,D
2722 000210 DCFCFN:
2723 000210 043240 000000 000000 .RAD50 /KL CFG/ ;CONFIGURATION FILE NAME.
000216 011667
2724 000220 000000 .WORD 0 ;CREATE NEXT VERSION.
2725 000222 005 005 .BYTE 5,5
2726 000224 054523 000000 .WORD "SY,0
2727 000230 DCFLFN:
2728 000230 043240 000000 000000 .RAD50 /KL CFG/ ;CONFIGURATION FILE NAME.
000236 011667
2729 000240 177777 .WORD -1 ;DELETE LOWEST VERSION.
2730 000242 005 005 .BYTE 5,5
2731 000244 054523 000000 .WORD "SY,0
2732 000250 DCFRJT:
2733 000250 003314' .WORD LCFREF ; 0 - EOF RECORD
2734 000252 003176' .WORD LCFRMM ; 1 - CONTROLLER RECORD
2736 000254 003276' .WORD LCFRCA ; 2 - CACHE RECORD
2740 000256 003256' .WORD LCFRBF ; 3 - BOOTSTRAP RECORD
2741 000260 003516' .WORD LCFRMC ; 4 - MICROCODE RECORD
2742 000262 003266' .WORD LCFRPA ; [**] 5 - CACHE PAGER RECORD
2746 000536 .PSECT TEXT,D
2747 000536 TCFCFA:
2748 000536 MESSAGE <CONFIGURATION FILE WRITTEN> ; [4.2251]
000536 103 117 116 .ASCIZ \CONFIGURATION FILE WRITTEN\
000541 106 111 107
000544 125 122 101
000547 124 111 117
000552 116 040 106
000555 111 114 105
000560 040 127 122
000563 111 124 124
000566 105 116 000
2749 000571 TCFCFE:
2750 000571 ERROR <CONFIGURATION FILE NOT CHANGED>
000571 077 040 103 .ASCIZ \? CONFIGURATION FILE NOT CHANGED\
000574 117 116 106
000577 111 107 125
000602 122 101 124
000605 111 117 116
000610 040 106 111
000613 114 105 040
000616 116 117 124
000621 040 103 110
000624 101 116 107
000627 105 104 000
2751 003036 .PSECT
KLICF -- CREATE NEW CONFIGURATI MACRO M1113 03-APR-86 20:55 PAGE 69
$FILE -- WRITE THE CONFIGURATION FILE
2753 .SBTTL $FILE -- WRITE THE CONFIGURATION FILE
2754
2755 ;+
2756 ; CONFIGURATION FILE FORMAT:
2757 ;
2758 ; GENERAL --
2759 ;
2760 ; RECORDS IN THE CONFIGURATION FILE HAVE THE FOLLOWING GENERAL FORMAT:
2761 ;
2762 ; +-----------+
2763 ; ! .WORD N !
2764 ; +-----------+
2765 ; ! RECORD ID !
2766 ; +-----------+
2767 ; ! .BLKB N-2 !
2768 ; +-----------+
2769 ;
2770 ; END-OF-FILE RECORD:
2771 ;
2772 ; THE END-OF FILE RECORD IS FIXED-LENGTH IN THE FOLLOWING FORMAT:
2773 ;
2774 ; +-----------+
2775 ; ! .WORD 2 !
2776 ; +-----------+
2777 ; ! .WORD 0 !
2778 ; +-----------+
2779 ;
2780 ; MEMORY CONTROLLER RECORD:
2781 ;
2782 ; A MEMORY CONTROLLER RECORD IS FIXED-LENGTH IN THE FOLLOWING FORMAT:
2783 ;
2784 ; +-----------+
2785 ; ! .WORD 6 !
2786 ; +-----------+
2787 ; ! .WORD 1 !
2788 ; +-----------+
2789 ; ! .BLKB 4 !
2790 ; +-----------+
2791 ;
2792 ; CACHE RECORD:
2793 ;
2794 ; A CACHE RECORD IS VARIABLE-LENGTH IN THE FOLLOWING FORMAT:
2795 ;
2796 ; +-----------+
2797 ; ! .WORD X ! (X = .NCACH + 3)
2798 ; +-----------+
2799 ; ! .WORD 2 !
2800 ; +-----------+
2801 ; ! .BLKB Y ! (Y = .NCACH)
2802 ; +-----------+
2803 ;
2804 ; BOOTSTRAP RECORD:
2805 ;
2806 ; THE BOOTSTRAP RECORD IS VARIABLE-LENGTH IN THE FOLLOWING FORMAT:
2807 ;
2808 ; +-----------+
2809 ; ! .WORD N ! (N >= 4)
KLICF -- CREATE NEW CONFIGURATI MACRO M1113 03-APR-86 20:55 PAGE 69-1
$FILE -- WRITE THE CONFIGURATION FILE
2810 ; +-----------+
2811 ; ! .WORD 3 !
2812 ; +-----------+
2813 ; ! .BLKB 1 !
2814 ; +-----------+
2815 ; ! .BLKB 1 !
2816 ; +-----------+
2817 ; ! .BLKW 4 !
2818 ; +-----------+
2819 ;
2820 ; THE FIRST TWO BYTES IN THE RECORD ARE ".BTSW" AND ".UFNSW". IF
2821 ; THE USER SPECIFIED A FILENAME FOR THE BOOTSTRAP, THE FILENAME IS
2822 ; SAVED IN THE LAST FOUR WORDS OF THE BOOTSTRAP RECORD.
2823 ;
2824 ; MICROCODE RECORD:
2825 ;
2826 ; A MICROCODE RECORD IS FIXED LENGTH IN THE FOLLOWING FORMAT:
2827 ;
2828 ; +-----------+
2829 ; ! .WORD 14 !
2830 ; +-----------+
2831 ; ! .WORD 4 !
2832 ; +-----------+
2833 ; ! .BLKB 1 !
2834 ; +-----------+
2835 ; ! .BLKW 4 !
2836 ; +-----------+
2837 ; A NON EXISTENT RECORD IN THE FILE IMPLIES THE DEFAULT, ALL, OR YES
2838 ; OPTION IS TO BE TAKEN
2839 ;
2840 ; CACHE PAGER RECORD [**] :
2841 ;
2842 ; A (MCA25) CACHE PAGER RECORD IS FIXED-LENGTH IN THE FOLLOWING FORMAT:
2843 ;
2844 ; +-----------+
2845 ; ! .WORD 4 !
2846 ; +-----------+
2847 ; ! .WORD 5 !
2848 ; +-----------+
2849 ; ! .BLKB 2 !
2850 ; +-----------+
2851 ;
2852 ;-
KLICF -- CREATE NEW CONFIGURATI MACRO M1113 03-APR-86 20:55 PAGE 70
$FILE -- WRITE THE CONFIGURATION FILE
2854 003036 $FILE::
2855 003036 105737 000047' TSTB .FILSW ; WRITE CONFIGURATION FILE??
2856 003042 100002 BPL 5$ ; [**] YES -- CONTINUE
2857 003044 000137 003474' JMP LCFRTN ; NO -- JUST EXIT
2858 003050 105737 000050' 5$: TSTB .BTSW ; YES -- BOOTSTRAP MODIFIED??
2859 003054 001014 BNE 10$ ; YES -- WRITE THE FILE
2860 003056 105737 000025' TSTB .MCBSW ; MICROCODE FILENAME SPECIFIED
2861 003062 001011 BNE 10$ ; YES, WRITE THE FILE
2863 003064 105737 000031' TSTB .DCSW ; IF NO CACHE OR
2864 003070 001006 BNE 10$
2865 003072 105737 000032' TSTB .DMSW ; MEMORY MODIFICATION,
2869 003076 001003 BNE 10$ ; [**] MEMORY CHANGED -- WRITE FILE
2870 003100 105737 000034' TSTB .PTSW ; [**] IF NO PAGE TABLE SELECTION...
2871 003104 001573 BEQ LCFRTN ; LEAVE THE FILE ALONE.
2872 003106 10$:
2873 003106 005004 CLR R4 ; SET INPUT FILE SWITCH.
2874 003110 012700 000210' MOV #DCFCFN,R0 ; FIRST, FIND OLD FILE
2875 003114 CALL $LOOKUP
003114 004737 007562' JSR PC,$LOOKUP
2876 003120 103005 BCC 20$
2877 003122 122737 000000G 000526' CMPB #IE.NSF,.SYSTA ; IF NOT THERE
2878 003130 001164 BNE LCFERR
2879 003132 005304 DEC R4 ; SET INDICATOR.
2880 003134 20$:
2881 003134 012700 000210' MOV #DCFCFN,R0 ; OPEN 'KL.CFG'
2882 003140 CALL $ENTER ; FOR OUTPUT.
003140 004737 007734' JSR PC,$ENTER
2883 003144 103556 BCS LCFERR
2884 003146 005704 TST R4 ; IF NO INPUT FILE
2885 003150 002461 BLT LCFREF ; THEN DON'T READ IT.
2886 ;
2887 ; READ THE NEXT RECORD FROM THE FILE AND DISPATCH ON ITS RECORD TYPE
2888 ;
2889 003152 LCFNXT:
2890 003152 CALL $READC ; READ NEXT RECORD
003152 004737 010216' JSR PC,$READC
2891 003156 103547 BCS LCFPRG
2892 003160 010001 MOV R0,R1 ; AND SAVE ID.
2893 003162 022701 000005 CMP #MXTYP,R1 ; IS IT MY RECORD ?
2894 003166 002406 BLT LCFCPY ; NO, JUST TRANSFER.
2895 003170 006300 ASL R0
2896 003172 000170 000250' JMP @DCFRJT(R0) ; PROCESS THE RECORD.
2897 ;
2898 ;
2899 ; PROCESS MEMORY CONTROLLER RECORDS
2900 ;
2901 003176 LCFRMM:
2902 003176 105737 000032' TSTB .DMSW ; IF MEMORY CONFIGURATION IS CHANGED
2903 003202 001040 BNE LCFSKP ; THEN SKIP RECORD, OTHERWISE
2904 ;
2905 ; COPY A RECORD FROM THE INPUT FILE TO THE OUTPUT FILE
2906 ;
2907 003204 LCFCPY:
2908 003204 013700 000534' MOV .SYIRC,R0 ; TRANSFER RECORD TO OUTPUT FILE.
2909 003210 062700 000002 ADD #2,R0
2910 003214 CALL $WRITC ; (BYTE COUNT)
003214 004737 010624' JSR PC,$WRITC
KLICF -- CREATE NEW CONFIGURATI MACRO M1113 03-APR-86 20:55 PAGE 70-1
$FILE -- WRITE THE CONFIGURATION FILE
2911 003220 103526 BCS LCFPRG
2912 003222 010100 MOV R1,R0
2913 003224 CALL $WRITW ; (ID #)
003224 004737 010736' JSR PC,$WRITW
2914 003230 103522 BCS LCFPRG
2915 003232 10$:
2916 003232 005737 000534' TST .SYIRC ; ANY MORE STUFF ?
2917 003236 003745 BLE LCFNXT ; NO, WE ARE FINISHED.
2918 003240 CALL $READB
003240 004737 010420' JSR PC,$READB
2919 003244 103514 BCS LCFPRG
2920 003246 CALL $WRITB
003246 004737 011032' JSR PC,$WRITB
2921 003252 103511 BCS LCFPRG
2922 003254 000766 BR 10$ ; LOOP UNTIL WE RUN OUT OF BYTES.
2923 ;
2924 ;
2925 ; PROCESS THE BOOTSTRAP RECORD
2926 ;
2927 003256 LCFRBF:
2928 003256 105737 000050' TSTB .BTSW ; BOOTSTRAP FLAG MODIFIED??
2929 003262 001750 BEQ LCFCPY ; NO -- COPY RECORD
2930 003264 000407 BR LCFSKP ; YES --SKIP RECORD
2931 ;
2932 ;
2933 ; PROCESS THE CACHE PAGER RECORD [**]
2934 ;
2935 003266 LCFRPA:
2936 003266 105737 000034' TSTB .PTSW ; [**] CACHE PAGER MODIFIED?
2937 003272 001744 BEQ LCFCPY ; [**] NO -- COPY RECORD
2938 003274 000403 BR LCFSKP ; [**] YES -- SKIP RECORD
2939 ;
2941 ;
2942 ; PROCESS THE CACHE RECORD
2943 ;
2944 003276 LCFRCA:
2945 003276 105737 000031' TSTB .DCSW ; IF CACHE IS NOT CHANGED
2946 003302 001740 BEQ LCFCPY ; THEN COPY CACHE RECORD, OTHERWISE
2948 ;
2949 ; SKIP AN INPUT RECORD
2950 ;
2951 003304 LCFSKP:
2952 003304 CALL $READS ; SKIP THIS RECORD.
003304 004737 010254' JSR PC,$READS
2953 003310 103472 BCS LCFPRG
2954 003312 000717 BR LCFNXT ; GET A NEW RECORD.
2955 ;
2957 ;
2958 ; HERE ON END-OF-FILE RECORD
2959 ;
2960 003314 LCFREF:
2961 003314 105737 000031' TSTB .DCSW ; IF CACHE WAS CHANGED
2962 003320 001403 BEQ 10$
2963 003322 CALL LCFWCA ; THEN WRITE THE CACHE RECORD.
003322 004737 003772' JSR PC,LCFWCA
2964 003326 103463 BCS LCFPRG
2965 003330 10$:
KLICF -- CREATE NEW CONFIGURATI MACRO M1113 03-APR-86 20:55 PAGE 70-2
$FILE -- WRITE THE CONFIGURATION FILE
2966 003330 105737 000032' TSTB .DMSW ; IF THE MEMORY CONFIGURATION
2971 003334 001403 BEQ 20$ ; WAS CHANGED, THEN
2972 003336 CALL LCFWMM ; WRITE THE CONTROLLER RECORDS.
003336 004737 003664' JSR PC,LCFWMM
2973 003342 103455 BCS LCFPRG
2974 003344 20$:
2975 003344 105737 000050' TSTB .BTSW ; BOOT FLAG CHANGED??
2976 003350 001403 BEQ 30$ ; NO -- GO ON
2977 003352 CALL LCFWBF ; YES -- WRITE BOOT RECORD
003352 004737 003526' JSR PC,LCFWBF
2978 003356 103447 BCS LCFPRG ;ERROF CC-C IS SET
2979 003360 30$:
2980 003360 105737 000025' TSTB .MCBSW ; MICROCODE FILENAME MODIFIED ?
2981 003364 001403 BEQ 40$ ; NO, GO ON
2982 003366 CALL LCFWMC ; WRITE THE MICROCODE RECORD
003366 004737 004060' JSR PC,LCFWMC
2983 003372 103441 BCS LCFPRG ; ERROR
2984 003374 40$:
2985 003374 105737 000034' TSTB .PTSW ; [**] CACHE PAGER MODIFIED?
2986 003400 001403 BEQ 50$ ; [**] NO -- GO ON
2987 003402 CALL LCFWPA ; [**] YES -- WRITE PAGE TABLE SELECTION
003402 004737 004142' JSR PC,LCFWPA
2988 003406 103433 BCS LCFPRG ; [**] ERROR
2989 003410 50$:
2990 003410 CALL LCFWEF ; NOW WRITE END OF FILE.
003410 004737 003642' JSR PC,LCFWEF
2991 003414 103430 BCS LCFPRG
2992 003416 CALL $CLOSE ; CLOSE THE FILE AND
003416 004737 007056' JSR PC,$CLOSE
2993 003422 103425 BCS LCFPRG
2994 003424 005704 TST R4 ; DELETE THE OLD VERSION
2995 003426 002404 BLT 90$ ; IF THERE IS ONE.
2996 003430 012700 000230' MOV #DCFLFN,R0
2997 003434 CALL $DELETE
003434 004737 007214' JSR PC,$DELETE
2998 003440 90$:
2999 003440 PRINT #TCFCFA ; INFORM THE OPERATOR.
003440 012700 000536' MOV #TCFCFA,R0
003444 004737 027634' JSR PC,$TTMSG
3000 003450 105037 000050' CLRB .BTSW ; RESET THE BOOTSTRAP SWITCH
3001 003454 105037 000025' CLRB .MCBSW ; RESET MICROCODE FLAG
3003 003460 105037 000031' CLRB .DCSW
3005 003464 105037 000032' CLRB .DMSW ; FILE NOW CORRESPONDS
3006 003470 105037 000034' CLRB .PTSW ; [**] RESET PAGE TABLE SWITCH
3007 ;
3008 ; NORMAL EXIT
3009 ;
3010 003474 LCFRTN:
3011 003474 RETURN ; TO NEW CONFIGURATION.
003474 000207 RTS PC
3012 ;
3013 ; ERROR EXIT
3014 ;
3015 003476 LCFPRG:
3016 003476 CALL $PURGE ; ERROR ! PURGE FILE
003476 004737 010124' JSR PC,$PURGE
3017 003502 LCFERR:
KLICF -- CREATE NEW CONFIGURATI MACRO M1113 03-APR-86 20:55 PAGE 70-3
$FILE -- WRITE THE CONFIGURATION FILE
3018 003502 PRINT #TCFCFE ; TELL OPERATOR
003502 012700 000571' MOV #TCFCFE,R0
003506 004737 027634' JSR PC,$TTMSG
3019 003512 000261 SEC
3020 003514 RETURN ; AND GO AWAY.
003514 000207 RTS PC
3021
3022 003516 LCFRMC:
3023 003516 105737 000025' TSTB .MCBSW ; FILENAME SPECIFIED ??
3024 003522 001630 BEQ LCFCPY ; NO, SKIP THIS RECORD
3025 003524 000667 BR LCFSKP ; YES, SKIP IT
KLICF -- CREATE NEW CONFIGURATI MACRO M1113 03-APR-86 20:55 PAGE 71
$FILE -- WRITE BOOTSTRAP RECORD
3027 .SBTTL $FILE -- WRITE BOOTSTRAP RECORD
3028
3029 ;+
3030 ; ROUTINES TO WRITE THE INDIVIDUAL RECORDS
3031 ;-
3032
3033 ;
3034 ; WRITE THE BOOTSTRAP RECORD
3035 ;
3036
3037 003526 LCFWBF:
3038 003526 012700 000004 MOV #4,R0 ; WRITE BOOTSTRAP RECORD
3039 003532 105737 000026' TSTB .UFNSW ; DID HE SPECIFY A FILE-NAME??
3040 003536 001402 BEQ 10$ ; NO -- GO ON
3041 003540 062700 000010 ADD #10,R0 ; YES -- ALLOW FOR IT
3042 003544 10$:
3043 003544 CALL $WRITC ; WRITE THE RECORD HEADER
003544 004737 010624' JSR PC,$WRITC
3044 003550 103433 BCS 30$ ; ERROR IF CC-C IS SET
3045 003552 012700 000003 MOV #3,R0 ; RECORD ID
3046 003556 CALL $WRITW ; WRITE IT
003556 004737 010736' JSR PC,$WRITW
3047 003562 103426 BCS 30$ ; ERROR IF CC-C IS SET
3048 003564 113700 000050' MOVB .BTSW,R0 ; BOOTSTRAP SWITCH TO R0
3049 003570 CALL $WRITB ; WRITE IT
003570 004737 011032' JSR PC,$WRITB
3050 003574 103421 BCS 30$ ; ERROR IF CC-C IS SET
3051 003576 113700 000026' MOVB .UFNSW,R0 ; FILE-NAME SWITCH TO R0
3052 003602 CALL $WRITB ; WRITE IT
003602 004737 011032' JSR PC,$WRITB
3053 003606 103414 BCS 30$ ; ERROR IF CC-C IS SET
3054 003610 005737 001566' TST .SYORC ; ARE WE DONE??
3055 003614 001411 BEQ 30$ ; YES -- EXIT
3056 003616 012701 000004 MOV #4,R1 ; NO -- SET UP TO WRITE FILE-NAME
3057 003622 012702 000476' MOV #.USRFN,R2 ; POINT TO THE FILE-NAME
3058 003626 20$:
3059 003626 012200 MOV (R2)+,R0 ; GET ONE WORD AT A TIME
3060 003630 CALL $WRITW ; WRITE IT
003630 004737 010736' JSR PC,$WRITW
3061 003634 103401 BCS 30$ ; ERROR IF CC-C IS SET
3062 003636 077105 SOB R1,20$ ; DO ALL 4 ELEMENTS
3063 003640 30$:
3064 003640 RETURN ; EXIT
003640 000207 RTS PC
KLICF -- CREATE NEW CONFIGURATI MACRO M1113 03-APR-86 20:55 PAGE 72
$FILE -- WRITE END-OF-FILE RECORD
3066 .SBTTL $FILE -- WRITE END-OF-FILE RECORD
3067
3068 ;
3069 ; WRITE END-OF-FILE RECORD
3070 ;
3071
3072 003642 LCFWEF:
3073 003642 012700 000002 MOV #2,R0 ; WRITE EOF RECORD.
3074 003646 CALL $WRITC
003646 004737 010624' JSR PC,$WRITC
3075 003652 103403 BCS 10$
3076 003654 005000 CLR R0
3077 003656 CALLR $WRITW
003656 000137 010736' JMP $WRITW
3078 ;
3079 003662 10$:
3080 003662 RETURN
003662 000207 RTS PC
KLICF -- CREATE NEW CONFIGURATI MACRO M1113 03-APR-86 20:55 PAGE 73
$FILE -- WRITE MEMORY CONTROLLER RECORDS
3082 .SBTTL $FILE -- WRITE MEMORY CONTROLLER RECORDS
3083
3084 ;
3085 ; WRITE MEMORY CONTROLLER RECORD(S)
3086 ;
3087
3088 003664 LCFWMM:
3089 003664 005002 CLR R2 ; WRITE OUT MEMORY RECORDS.
3090 003666 10$:
3091 003666 105762 000072' TSTB .CTLTP(R2) ; CHECK IF CONTROLLER USED.
3092 003672 001432 BEQ 20$ ; NOT USED -- TRY FOR THE NEXT CONTROLLER
3093 003674 012700 000006 MOV #6,R0 ; OK - INCLUDE IN FILE.
3094 003700 CALL $WRITC ; (LENGTH)
003700 004737 010624' JSR PC,$WRITC
3095 003704 103431 BCS 30$
3096 003706 012700 000001 MOV #1,R0
3097 003712 CALL $WRITW ; (ID #)
003712 004737 010736' JSR PC,$WRITW
3098 003716 103424 BCS 30$
3099 003720 010200 MOV R2,R0
3100 003722 CALL $WRITB ; (CONTROLLER #)
003722 004737 011032' JSR PC,$WRITB
3101 003726 103420 BCS 30$
3102 003730 116200 000072' MOVB .CTLTP(R2),R0
3103 003734 CALL $WRITB ; (TYPE)
003734 004737 011032' JSR PC,$WRITB
3104 003740 103413 BCS 30$
3105 003742 006302 ASL R2 ; WORD INDEX
3106 003744 016200 000134' MOV .CFGTB(R2),R0
3107 003750 006202 ASR R2 ; BACK TO BYTE INDEX
3108 003752 CALL $WRITW ; (MODULES/BLOCKS/INTERLEAVE/BUS-MODE)
003752 004737 010736' JSR PC,$WRITW
3109 003756 103404 BCS 30$
3110 003760 20$:
3111 003760 005202 INC R2 ; CHECK ALL CONTROLLERS.
3112 003762 022702 000041 CMP #CTLS+1,R2 ; [4.2204] AND REVERSE CONFIGURATION FLAG
3113 003766 003337 BGT 10$
3114 003770 30$:
3115 003770 RETURN
003770 000207 RTS PC
KLICF -- CREATE NEW CONFIGURATI MACRO M1113 03-APR-86 20:55 PAGE 74
$FILE -- WRITE CACHE RECORDS
3117 .SBTTL $FILE -- WRITE CACHE RECORDS
3118
3119
3120 ;
3121 ; WRITE CACHE RECORD(S)
3122 ;
3124
3125 003772 LCFWCA:
3126 003772 113700 000064' MOVB .NCACH,R0 ; WRITE OUT CACHE RECORD.
3127 003776 010001 MOV R0,R1
3128 004000 062700 000003 ADD #3,R0
3129 004004 CALL $WRITC ; (LENGTH)
004004 004737 010624' JSR PC,$WRITC
3130 004010 103422 BCS 20$
3131 004012 012700 000002 MOV #2,R0
3132 004016 CALL $WRITW ; (ID #)
004016 004737 010736' JSR PC,$WRITW
3133 004022 103415 BCS 20$
3134 004024 110100 MOVB R1,R0
3135 004026 CALL $WRITB ; (# CACHES)
004026 004737 011032' JSR PC,$WRITB
3136 004032 103411 BCS 20$
3137 004034 005701 TST R1
3138 004036 001407 BEQ 20$
3139 004040 012702 000065' MOV #.CACHN,R2
3140 004044 10$:
3141 004044 112200 MOVB (R2)+,R0
3142 004046 CALL $WRITB ; (CACHE #S)
004046 004737 011032' JSR PC,$WRITB
3143 004052 103401 BCS 20$
3144 004054 077105 SOB R1,10$
3145 004056 20$:
3146 004056 RETURN
004056 000207 RTS PC
KLICF -- CREATE NEW CONFIGURATI MACRO M1113 03-APR-86 20:55 PAGE 75
$FILE -- WRITE MICROCODE RECORDS
3149 .SBTTL $FILE -- WRITE MICROCODE RECORDS
3150
3151 ;
3152 ; WRITE MICROCODE RECORDS
3153 ;
3154
3155 004060 LCFWMC:
3156 004060 012700 000014 MOV #14,R0 ; SIZE OF RECORD
3157 004064 CALL $WRITC ; WRITE IT
004064 004737 010624' JSR PC,$WRITC
3158 004070 103423 BCS 20$ ; ERROR
3159 004072 012700 000004 MOV #4,R0 ; OUR RECORD TYPE
3160 004076 CALL $WRITW ; WRITE IT
004076 004737 010736' JSR PC,$WRITW
3161 004102 103416 BCS 20$ ; ERROR
3162 004104 113700 000025' MOVB .MCBSW,R0 ; FILENAME SWITCH
3163 004110 CALL $WRITB ; WRITE IT
004110 004737 011032' JSR PC,$WRITB
3164 004114 103411 BCS 20$ ; ERROR
3165 004116 012701 000004 MOV #4,R1 ; NUMBER OF WORDS IN FILENAME
3166 004122 012702 000456' MOV #.MCBFN,R2 ; WHERE ITS AT
3167 004126 10$:
3168 004126 012200 MOV (R2)+,R0 ; GET A WORD
3169 004130 CALL $WRITW ; AND WRITE IT
004130 004737 010736' JSR PC,$WRITW
3170 004134 103401 BCS 20$ ; ERROR
3171 004136 077105 SOB R1,10$ ; LOOP FOR ALL
3172 004140 20$:
3173 004140 RETURN
004140 000207 RTS PC
KLICF -- CREATE NEW CONFIGURATI MACRO M1113 03-APR-86 20:55 PAGE 76
$FILE -- WRITE PAGE TABLE SELECTION
3175 .SBTTL $FILE -- WRITE PAGE TABLE SELECTION
3176
3177 ;
3178 ; WRITE (MCA25) PAGE TABLE SELECTION [**]
3179 ;
3180
3181 004142 LCFWPA:
3182 004142 012700 000004 MOV #4,R0 ; [**] RECORD SIZE
3183 004146 CALL $WRITC ; [**] WRITE IT
004146 004737 010624' JSR PC,$WRITC
3184 004152 103411 BCS 10$ ; [**] QUIT ON ERROR
3185 004154 012700 000005 MOV #5,R0 ; [**] RECORD TYPE
3186 004160 CALL $WRITW ; [**] WRITE IT
004160 004737 010736' JSR PC,$WRITW
3187 004164 103404 BCS 10$ ; [**] QUIT ON ERROR
3188 004166 013700 000524' MOV .PTSEL,R0 ; [**] FETCH NEW SELECTION
3189 004172 CALL $WRITW ; [**] WRITE IT
004172 004737 010736' JSR PC,$WRITW
3190 004176 10$:
3191 004176 RETURN ; [**] FINIS
004176 000207 RTS PC
KLICF -- CREATE NEW CONFIGURATI MACRO M1113 03-APR-86 20:55 PAGE 77
$FILE -- WRITE PAGE TABLE SELECTION
3193
3194 .TITLE KLICI -- INTERNAL AND MOS DIALOGUE
3195 004200 IDENT$ 10,0,KLI$$F
.IDENT /A10000/
3196 ;
3197 ; COPYRIGHT (C) 1975, 1984, 1985 BY
3198 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
3199 ; ALL RIGHTS RESERVED.
3200 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
3201 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
3202 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
3203 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
3204 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
3205 ;
3206 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
3207 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
3208 ; CORPORATION.
3209 ;
3210 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
3211 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
3212 ;
3213 ;
3214 ; MODULE: INTERNAL AND MOS DIALOGUE
3215 ;
3216 ; VERSION: 10-00
3217 ;
3218 ; DATE: 25-JUL-78
3219 ;
3220 ; AUTHOR: R. BELANGER
3221 ;
3222 ; MODIFICATIONS:
3223 ;
3224 ; NO. DATE PROGRAMMER REASON
3225 ; --- ---- ---------- ------
3226 ;
3227 ; LOCAL DATA
3228 ;
3229
3230 000632 .PSECT TEXT,D
3231 000632 CFIMQ1:
3232 000632 MESSAGE <CONFIGURE INTERNAL CORE MEMORY [ALL,YES,NO]?>
000632 103 117 116 .ASCIZ \CONFIGURE INTERNAL CORE MEMORY [ALL,YES,NO]?\
000635 106 111 107
000640 125 122 105
000643 040 111 116
000646 124 105 122
000651 116 101 114
000654 040 103 117
000657 122 105 040
000662 115 105 115
000665 117 122 131
000670 040 133 101
000673 114 114 054
000676 131 105 123
000701 054 116 117
000704 135 077 000
3233 000707 CFMMQ1:
KLICI -- INTERNAL AND MOS DIALO MACRO M1113 03-APR-86 20:55 PAGE 77-1
$FILE -- WRITE PAGE TABLE SELECTION
3234 000707 MESSAGE <CONFIGURE MOS MEMORY [ALL,YES,NO]?>
000707 103 117 116 .ASCIZ \CONFIGURE MOS MEMORY [ALL,YES,NO]?\
000712 106 111 107
000715 125 122 105
000720 040 115 117
000723 123 040 115
000726 105 115 117
000731 122 131 040
000734 133 101 114
000737 114 054 131
000742 105 123 054
000745 116 117 135
000750 077 000
3235 000752 CFIMQ2:
3236 000752 MESSAGE <KLI -- MODULES/BLOCKS WITHIN CONTROLLER _>
000752 113 114 111 .ASCIZ \KLI -- MODULES/BLOCKS WITHIN CONTROLLER _\
000755 040 055 055
000760 040 115 117
000763 104 125 114
000766 105 123 057
000771 102 114 117
000774 103 113 123
000777 040 127 111
001002 124 110 111
001005 116 040 103
001010 117 116 124
001013 122 117 114
001016 114 105 122
001021 040 137 000
3237 001024 CFIMQ3:
3238 001024 MESSAGE < [ALL,NONE,SPECIFY]?>
001024 040 133 101 .ASCIZ \ [ALL,NONE,SPECIFY]?\
001027 114 114 054
001032 116 117 116
001035 105 054 123
001040 120 105 103
001043 111 106 131
001046 135 077 000
3239 001051 CFIMQ4:
3240 001051 MESSAGE <INTERNAL CORE MEMORY INTERLEAVE UPPER LIMIT [4,2,1]?>
001051 111 116 124 .ASCIZ \INTERNAL CORE MEMORY INTERLEAVE UPPER LIMIT [4,2,1]?\
001054 105 122 116
001057 101 114 040
001062 103 117 122
001065 105 040 115
001070 105 115 117
001073 122 131 040
001076 111 116 124
001101 105 122 114
001104 105 101 126
001107 105 040 125
001112 120 120 105
001115 122 040 114
001120 111 115 111
001123 124 040 133
001126 064 054 062
001131 054 061 135
KLICI -- INTERNAL AND MOS DIALO MACRO M1113 03-APR-86 20:55 PAGE 77-2
$FILE -- WRITE PAGE TABLE SELECTION
001134 077 000
3241 004200 .PSECT
KLICI -- INTERNAL AND MOS DIALO MACRO M1113 03-APR-86 20:55 PAGE 78
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
3243 .SBTTL $CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
3244
3245 ;+
3246 ; $CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
3247 ;
3248 ; $CFIMD SETS UP THE INTERNAL MEMORY CONFIGURATION TABLES FROM THE DIALOGUE.
3249 ; THE MEMORY BOOT'S TABLES ARE SIMPLY CHECKED, AND NOT ALTERED
3250 ;
3251 ; $CFMMD -- SET UP MOS MEMORY CONFIGURATION TABLES
3252 ;
3253 ; $CFMMD SETS UP THE MOS MEMORY CONFIGURATION TABLES FROM THE DIALOGUE.
3254 ; THE MEMORY BOOT'S TABLES ARE SIMPLY CHECKED, AND NOT ALTERED
3255 ;-
3256
3257 004200 $CFMMD::
3258 004200 105737 000000G TSTB MF20 ; DO WE HAVE MOS MEMORY??
3259 004204 001410 BEQ 10$ ; NO -- JUST EXIT
3260 004206 012703 000013 MOV #13,R3 ; YES -- MAX LEGAL BLOCK NUMBER TO R3
3261 004212 012704 000010 MOV #10,R4 ; ITERATION COUNT TO R4
3262 004216 010402 MOV R4,R2 ; IS ALSO BASE CONTROLLER NUMBER
3263 004220 012700 000707' MOV #CFMMQ1,R0 ; MESSAGE POINTER TO R0
3264 004224 000421 BR CFGXMC ; GO TO COMMON CODE
3265 ;
3266 004226 10$:
3267 004226 CALLR $CFGXX ; EXIT TO CONFIGURE MEMORY
004226 000137 020232' JMP $CFGXX
3268 ;
3269
3270 .ENABL LSB
3271
3272 004232 $CFIMD::
3273 004232 105737 000000G TSTB MA20 ; DO WE HAVE INTERNAL MEMORY??
3274 004236 001005 BNE 5$ ; YES -- GO ON
3275 004240 105737 000000G TSTB MB20 ; NO -- HOW ABOUT MB20'S??
3276 004244 001002 BNE 5$ ; YES -- GO ON
3277 004246 CALLR $DLGXM ; NO -- TRY FOR EXTERNAL MEMORY
004246 000137 020350' JMP $DLGXM
3278 ;
3279 004252 5$:
3280 004252 012703 000003 MOV #3,R3 ; YES -- MAX LEGAL BLOCK NUMBER TO R3
3281 004256 012700 000632' MOV #CFIMQ1,R0 ; MESSAGE POINTER TO R0
3282 004262 005002 CLR R2 ; INIT COUNTER
3283 004264 012704 000004 MOV #4,R4 ; MAXIMUM OF FOUR INTERNAL CONTROLLERS
3284 ;
3285 ; ASK THE TOP-LEVEL QUESTION
3286 ;
3287 004270 CFGXMC:
3288 004270 10$:
3289 004270 105737 000032' TSTB .DMSW ; ARE WE IN DIALOG MODE??
3290 004274 002440 BLT 20$ ; NO -- TAKE DEFAULT PATH
3291 004276 CALL $TTMSG ; YES -- ASK THE FIRST QUESTION
004276 004737 027634' JSR PC,$TTMSG
3292 004302 CALL $TTRD ; READ THE RESPONSE
004302 004737 027130' JSR PC,$TTRD
3293 004306 012705 000304' MOV #.TTIBF,R5 ; POINT TO THE INPUT BUFFER
3294 004312 105715 TSTB (R5) ; DEFAULT??
3295 004314 001430 BEQ 20$ ; YES -- DO "ALL"
KLICI -- INTERNAL AND MOS DIALO MACRO M1113 03-APR-86 20:55 PAGE 78-1
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
3296 004316 022715 046101 CMP #"AL,(R5) ; "ALL"??
3297 004322 001425 BEQ 20$ ; YES -- DO ALL
3298 004324 022715 047516 CMP #"NO,(R5) ; "NO"??
3299 004330 001424 BEQ 30$ ; YES -- DO NONE
3300 004332 022715 042531 CMP #"YE,(R5) ; "YES"??
3301 004336 001435 BEQ 50$ ; YES -- FIND OUT WHAT
3302 004340 022715 040502 CMP #"BA,(R5) ; "BACK"??
3303 004344 001007 BNE 15$ ; NO -- ERROR
3304 004346 022703 000003 CMP #3,R3 ; YES -- IS THIS INTERNAL MEMORY??
3305 004352 001002 BNE 14$ ; NO -- GO THOUGH VECTORS
3306 004354 CALLR $DLGMB ; YES -- BACK UP ONE
004354 000137 020360' JMP $DLGMB
3307 ;
3308 004360 14$:
3309 004360 CALLR $DLMB1 ; BACK UP THRU VECTORS
004360 000137 020364' JMP $DLMB1
3310 ;
3311 ;
3312 ; UNRECOGNIZED COMMAND
3313 ;
3314 004364 15$:
3315 004364 PRINT #COMCSE ; COMMAND SYNTAX ERROR
004364 012700 005552' MOV #COMCSE,R0
004370 004737 027634' JSR PC,$TTMSG
3316 004374 000531 BR 150$ ; TRY AGAIN
3317 ;
3318 ;
3319 ; ENTRY FOR "ALL" CONTROLLERS <DEFAULT PATH>
3320 ;
3321 004376 20$:
3322 004376 005001 CLR R1 ; SET R1 TO SAY "ALL"
3323 004400 000402 BR 40$ ; DO COMMON CODE
3324 ;
3325 ;
3326 ; ENTRY FOR "NO(NE)" CONTROLLERS
3327 ;
3328 004402 30$:
3329 004402 012701 100000 MOV #BIT15,R1 ; SET R1 TO SAY "NO(NE)"
3330 ;
3331 ; COMMON CODE FOR "ALL" OR "NO(NE)" CONTROLLERS
3332 ;
3333 ; WHAT'S WHERE:
3334 ;
3335 ; R0 -- CONTROLLER NUMBER PASSED TO CHECK ROUTINE
3336 ; R1 -- ALLOCATION FLAG
3337 ; 0 = ALL CONTROLLERS
3338 ; 100000 = NO CONTROLLERS
3339 ; R2 -- CONTROLLER NUMBER
3340 ; R3 -- MODULE/BLOCK NUMBER LIMIT
3341 ; R4 -- ITERATION COUNT
3342 ;
3343 004406 40$:
3344 004406 105762 000000G TSTB TYPNUM(R2) ; DOES THIS CONTROLLER EXIST??
3345 004412 001404 BEQ 45$ ; NO -- TRY FOR THE NEXT ONE
3346 004414 010200 MOV R2,R0 ; YES -- CONTROLLER NUMBER TO R0
3347 004416 006300 ASL R0 ; WORD INDEX
3348 004420 010160 000134' MOV R1,.CFGTB(R0) ; SET ALLOCATION OR DELETION REQUEST
KLICI -- INTERNAL AND MOS DIALO MACRO M1113 03-APR-86 20:55 PAGE 78-2
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
3349 004424 45$:
3350 004424 105722 TSTB (R2)+ ; ADVANCE CONTROLLER INDEX
3351 004426 077411 SOB R4,40$ ; DO THIS FOR ALL
3352 004430 000501 BR 130$ ; AND EXIT
3353 ;
3354 ;
3355 ; ENTRY FOR "YES" (LONG DIALOGUE)
3356 ;
3357 004432 50$:
3358 004432 005001 CLR R1 ; INIT BIT-MASK
3359 004434 60$:
3360 004434 105762 000000G TSTB TYPNUM(R2) ; IS THIS CONTROLLER HERE??
3361 004440 001472 BEQ 120$ ; NO -- TRY THE NEXT ONE
3362 004442 012700 000752' MOV #CFIMQ2,R0 ; YES -- MESSAGE POINTER TO R0
3363 004446 CALL $TTDMS ; TYPE PREAMBLE
004446 004737 027566' JSR PC,$TTDMS
3364 004452 010200 MOV R2,R0 ; CONTROLLER NUMBER TO R0
3365 004454 CALL $TDB2O ; CONVERT TO OCTAL ASCII
004454 004737 026450' JSR PC,$TDB2O
3366 004460 012700 001024' MOV #CFIMQ3,R0 ; MESSAGE POINTER TO R0
3367 004464 CALL $TTDMS ; END THE QUESTION
004464 004737 027566' JSR PC,$TTDMS
3368 004470 CALL $TCRLF ; AND THE LINE
004470 004737 027530' JSR PC,$TCRLF
3369 004474 CALL $TTRD ; READ RESPONSE
004474 004737 027130' JSR PC,$TTRD
3370 004500 012705 000304' MOV #.TTIBF,R5 ; POINT TO INPUT BUFFER
3371 004504 105715 TSTB (R5) ; DEFAULT??
3372 004506 001412 BEQ 70$ ; YES -- DO "ALL"
3373 004510 022715 046101 CMP #"AL,(R5) ; "ALL"??
3374 004514 001407 BEQ 70$ ; YES -- DO IT
3375 004516 022715 047516 CMP #"NO,(R5) ; "NONE"??
3376 004522 001406 BEQ 80$ ; YES -- DO IT
3377 004524 022715 040502 CMP #"BA,(R5) ; "BACK"??
3378 004530 001006 BNE 90$ ; NO -- HOPE ITS NUMERIC...
3379 004532 000452 BR 150$ ; YES -- GO DO IT
3380 ;
3381 ;
3382 ; "ALL" MODULES/BLOCKS THIS CONTROLLER
3383 ;
3384 004534 70$:
3385 004534 005001 CLR R1 ; SET R1 TO "ALL"
3386 004536 000420 BR 100$ ; AND DO IT
3387 ;
3388 ;
3389 ; "NO(NE)" MODULES/BLOCKS THIS CONTROLLER
3390 ;
3391 004540 80$:
3392 004540 012701 100000 MOV #BIT15,R1 ; SET R1 TO "NONE"
3393 004544 000415 BR 100$
3394 ;
3395 ;
3396 ; HERE TO SPECIFY MODULES/BLOCKS WITHIN THIS CONTROLLER
3397 ;
3398 ; WHAT'S WHERE:
3399 ;
3400 ; R0 -- PASSED CONTROLLER NUMBER
KLICI -- INTERNAL AND MOS DIALO MACRO M1113 03-APR-86 20:55 PAGE 78-3
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
3401 ; R1 -- ALLOCATION MASK
3402 ; R2 -- CONTROLLER NUMBER
3403 ; R3 -- MODULE/BLOCK NUMBER LIMIT
3404 ; R4 -- ITERATION COUNT
3405 ;
3406 004546 90$:
3407 004546 CALL $TRO2B ; CONVERT TO OCTAL NUMERIC
004546 004737 026562' JSR PC,$TRO2B
3408 004552 103435 BCS 140$ ; FIDDLE FINGERS!
3409 004554 020300 CMP R3,R0 ; IN RANGE??
3410 004556 002433 BLT 140$ ; NO -- COMPLAIN
3411 004560 006300 ASL R0 ; YES -- GET WORD INDEX
3412 004562 056001 000000G BIS BITTBL(R0),R1 ; LIGHT THE BIT
3413 004566 122725 000054 CMPB #',,(R5)+ ; CONTINUE??
3414 004572 001765 BEQ 90$ ; YES -- CONTINUE
3415 004574 105745 TSTB -(R5) ; NO -- TERMINATE OK??
3416 004576 001272 BNE 15$ ; NO -- COMPLAIN
3417 ;
3418 ; COMMON CODE FOR "ALL", "NO(NE)", OR SPECIFIC MODULES/BLOCKS THIS CONTROLLER
3419 ;
3420 004600 100$:
3421 004600 010200 MOV R2,R0 ; YES -- CONTROLLER NUMBER TO R0
3422 004602 022703 000003 CMP #3,R3 ; IS THIS INTERNAL MEMORY??
3423 004606 001004 BNE 110$ ; NO -- MOS MEMORY
3424 004610 CALL $CHKIM ; YES -- CHECK INTERNAL CONFIGURATION
004610 004737 005064' JSR PC,$CHKIM
3425 004614 103706 BCS 50$ ; OOPS!
3426 004616 000403 BR 120$ ; ALL OK -- GO ON
3427 ;
3428 004620 110$:
3429 004620 CALL $CHKMM ; CHECK MOS CONFIGURATION
004620 004737 005310' JSR PC,$CHKMM
3430 004624 103702 BCS 50$ ; BAD NEWS...
3431 004626 120$:
3432 004626 105722 TSTB (R2)+ ; ADVANCE CONTROLLER COUNTER
3433 004630 005304 DEC R4 ; DECREMENT ITERATION COUNT
3434 004632 001277 BNE 50$ ; LOOP THROUGH ALL CONTROLLERS
3435 004634 130$:
3436 004634 022703 000003 CMP #3,R3 ; DONE -- IS THIS INTERNAL MEMORY??
3437 004640 001420 BEQ CFIMIL ; YES -- GO GET INTERLEAVE FACTOR
3438 004642 CALLR $CFGXX ; NO -- GO CONFIGURE THE MEMORY
004642 000137 020232' JMP $CFGXX
3439 ;
3440 ;
3441 ; ERROR PROCESSING
3442 ;
3443 004646 140$:
3444 004646 PRINT #COMCSE ; ERROR MESSAGE
004646 012700 005552' MOV #COMCSE,R0
004652 004737 027634' JSR PC,$TTMSG
3445 004656 000666 BR 60$ ; TRY AGAIN
3446 ;
3447 004660 150$:
3448 004660 012700 000632' MOV #CFIMQ1,R0 ; YES -- ASSUME INTERNAL MEMORY
3449 004664 022703 000003 CMP #3,R3 ; IS IT REALLY??
3450 004670 001402 BEQ 160$ ; YES -- GO ON
3451 004672 012700 000707' MOV #CFMMQ1,R0 ; NO -- SET MOS MESSAGE
KLICI -- INTERNAL AND MOS DIALO MACRO M1113 03-APR-86 20:55 PAGE 78-4
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
3452 004676 160$:
3453 004676 000137 004270' JMP 10$ ; AND BACK UP
3454 ;
3455 .DSABL LSB
3456 ;
3457 ; HERE TO GET INTERNAL CORE MEMORY INTERLEAVE FACTOR
3458 ;
3459 004702 CFIMIL:
3460 004702 105737 000032' TSTB .DMSW ; ARE WE IN DIALOG MODE??
3461 004706 002452 BLT 50$ ; NO -- TAKE DEFAULT PATH
3462 004710 012700 000134' MOV #.CFGTB,R0 ; YES -- POINT TO CONFIGURATION TABLE
3463 004714 012704 000004 MOV #4,R4 ; ITERATION COUNT TO R4
3464 004720 10$:
3465 004720 005720 TST (R0)+ ; IS THIS ONE CONFIGURABLE??
3466 004722 100002 BPL 20$ ; YES -- GO ON
3467 004724 077403 SOB R4,10$ ; NO -- TRY FOR THE NEXT ONE
3468 004726 000442 BR 50$ ; NO INTERNAL MEMORY -- EXIT
3469 ;
3470 004730 20$:
3471 004730 PRINT #CFIMQ4 ; ASK THE QUESTION
004730 012700 001051' MOV #CFIMQ4,R0
004734 004737 027634' JSR PC,$TTMSG
3472 004740 CALL $TTRD ; READ THE RESPONSE
004740 004737 027130' JSR PC,$TTRD
3473 004744 012705 000304' MOV #.TTIBF,R5 ; POINT TO INPUT BUFFER
3474 004750 005000 CLR R0 ; INIT DEFAULT
3475 004752 022715 040502 CMP #"BA,(R5) ; "BACK"??
3476 004756 001430 BEQ 60$ ; YES -- DO IT
3477 004760 105715 TSTB (R5) ; NO -- DEFAULT??
3478 004762 001413 BEQ 25$ ; YES -- SET IT
3479 004764 CALL $TRI2B ; NO -- CONVERT TO NUMERIC
004764 004737 025424' JSR PC,$TRI2B
3480 004770 103425 BCS 70$ ; OOPS!
3481 004772 005700 TST R0 ; DID HE TYPE ANYTHING??
3482 004774 001423 BEQ 70$ ; NO -- NOT ALLOWED
3483 004776 022700 000003 CMP #3,R0 ; YES -- DID HE SAY "3"??
3484 005002 001420 BEQ 70$ ; YES -- NOT ALLOWED
3485 005004 022700 000004 CMP #4,R0 ; NO -- IN RANGE??
3486 005010 002415 BLT 70$ ; NO -- COMPLAIN
3487 005012 25$:
3488 005012 012704 000004 MOV #4,R4 ; YES -- ITERATION COUNT TO R4
3489 005016 012701 000144' MOV #.CFGTB+8.,R1 ; POINT TO END OF INTERNAL CONTROLLERS+1
3490 005022 30$:
3491 005022 005741 TST -(R1) ; BACK UP OVER NEXT ENTRY
3492 005024 100402 BMI 40$ ; NOT THERE IF NEGATIVE
3493 005026 110061 000001 MOVB R0,1(R1) ; SET THE BUS-MODE IN HIGH BYTE
3494 005032 40$:
3495 005032 077405 SOB R4,30$ ; LOOP TILL DONE
3496 005034 50$:
3497 005034 CALLR $DLGXM ; DONE -- TRY EXTERNAL MEMORY
005034 000137 020350' JMP $DLGXM
3498 ;
3499 005040 60$:
3500 005040 CALLR $CFIMD ; BACK UP
005040 000137 004232' JMP $CFIMD
3501 ;
3502 005044 70$:
KLICI -- INTERNAL AND MOS DIALO MACRO M1113 03-APR-86 20:55 PAGE 78-5
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
3503 005044 PRINT #COMCSE ; ERROR MESSAGE
005044 012700 005552' MOV #COMCSE,R0
005050 004737 027634' JSR PC,$TTMSG
3504 005054 000725 BR 20$ ; TRY AGAIN
3505 ;
KLICI -- INTERNAL AND MOS DIALO MACRO M1113 03-APR-86 20:55 PAGE 79
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
3507
3508
3509 .TITLE KLICM -- CHECK INTERNAL MEMORY CONFIGURATION
3510 005056 IDENT$ 10,0,KLI$$F
.IDENT /A10000/
3511 ;
3512 ; COPYRIGHT (C) 1975, 1984, 1985 BY
3513 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
3514 ; ALL RIGHTS RESERVED.
3515 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
3516 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
3517 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
3518 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
3519 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
3520 ;
3521 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
3522 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
3523 ; CORPORATION.
3524 ;
3525 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
3526 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
3527 ;
3528 ;
3529 ; MODULE: INTERNAL CONFIGURATION CHECK
3530 ;
3531 ; VERSION: 10-00
3532 ;
3533 ; DATE: 25-JUL-78
3534 ;
3535 ; AUTHOR: R. BELANGER
3536 ;
3537 ; MODIFICATIONS:
3538 ;
3539 ; NO. DATE PROGRAMMER REASON
3540 ; --- ---- ---------- ------
3541 ;
3542 ; LOCAL DATA
3543 ;
3544 000264 .PSECT DATA,D
3545 000264 SETIMF:
3546 000264 000 .BYTE 0
3547 000265 SETMMF:
3548 000265 000 .BYTE 0
3549 001136 .PSECT TEXT,D
3550 001136 CIMNXC:
3551 001136 ERROR <NONEXISTENT CONTROLLER>
001136 077 040 116 .ASCIZ \? NONEXISTENT CONTROLLER\
001141 117 116 105
001144 130 111 123
001147 124 105 116
001152 124 040 103
001155 117 116 124
001160 122 117 114
001163 114 105 122
001166 000
3552 001167 CIMNXM:
3553 001167 ERROR <NONEXISTENT MODULE/BLOCK>
KLICM -- CHECK INTERNAL MEMORY MACRO M1113 03-APR-86 20:55 PAGE 79-1
$CFIMD -- SET UP INTERNAL MEMORY CONFIGURATION TABLES
001167 077 040 116 .ASCIZ \? NONEXISTENT MODULE/BLOCK\
001172 117 116 105
001175 130 111 123
001200 124 105 116
001203 124 040 115
001206 117 104 125
001211 114 105 057
001214 102 114 117
001217 103 113 000
3554 005056 .PSECT
KLICM -- CHECK INTERNAL MEMORY MACRO M1113 03-APR-86 20:55 PAGE 80
$CHKIM -- CHECK INTERNAL MEMORY MASK WORD
3556 .SBTTL $CHKIM -- CHECK INTERNAL MEMORY MASK WORD
3557
3558 ;+
3559 ; $CHKIM -- CHECK INTERNAL MEMORY MASK WORD
3560 ;
3561 ; $CHKIM WILL VERIFY THAT THE MASK WORD FOR INTERNAL CORE MEMORY CONFIGURATION
3562 ; IS VALID IN THAT THE MODULE SPECIFIED DOES EXIST IN THE PHYSICAL RESOURCES.
3563 ;
3564 ; INPUT ARGUMENTS:
3565 ;
3566 ; R0 -- CONTROLLER NUMBER
3567 ; R1 -- MODULE SELECTION BIT-MASK
3568 ; CONTI(R0) -- BIT-MASK OF AVAILABLE MODULES
3569 ; TYPNUM(R0) -- CONTROLLER AVAILABILITY FLAG WORD
3570 ;
3571 ; OUTPUT ARGUMENTS:
3572 ;
3573 ; R0,R1 -- UNDEFINED
3574 ; .CFGTB+0(R0) -- EDITED MODULE SELECTION BIT-MASK
3575 ; CONTI(R0) -- EDITED MODULE SELECTION BIT-MASK
3576 ;
3577 ; SUCCESS RETURN:
3578 ;
3579 ; CC-C CLEAR
3580 ;
3581 ; ERROR RETURN:
3582 ;
3583 ; CC-C SET AND CONTI(R0) UNCHANGED.
3584 ;-
3585
3586 ;
3587 ; HERE TO ACTUALLY SET THE SPECIFIED CONFIGURATION
3588 ;
3589
3590 005056 $SETIM::
3591 005056 105237 000264' INCB SETIMF ; SAY "SET"
3592 005062 000402 BR CHKIMC ; DO COMMON CODE
3593 ;
3594 ;
3595 ; HERE TO SIMPLY CHECK THE DESIRED CONFIGURATION
3596 ;
3597
3598 005064 $CHKIM::
3599 005064 105037 000264' CLRB SETIMF ; SAY "CHECK"
3600 ;
3601 ; COMMON SET/CHECK CODE
3602 ;
3603 005070 CHKIMC:
3604 005070 PUSH R2 ; SAVE R2
005070 010246 MOV R2,-(SP)
3605 005072 PUSH R3 ; AND R3
005072 010346 MOV R3,-(SP)
3606 005074 005046 CLR -(SP) ; GET A BUFFER FOR BIT MASK
3607 005076 122760 000001 000000G CMPB #1,TYPNUM(R0) ; IS THIS AN MA20??
3608 005104 001411 BEQ 10$ ; YES -- GO ON
3609 005106 122760 000003 000000G CMPB #3,TYPNUM(R0) ; NO -- IS IT AN MB20??
3610 005114 001405 BEQ 10$ ; YES -- GO ON
KLICM -- CHECK INTERNAL MEMORY MACRO M1113 03-APR-86 20:55 PAGE 80-1
$CHKIM -- CHECK INTERNAL MEMORY MASK WORD
3611 005116 PRINT #CIMNXC ; NO -- COMPLAIN
005116 012700 001136' MOV #CIMNXC,R0
005122 004737 027634' JSR PC,$TTMSG
3612 005126 000434 BR 50$ ; AND EXIT
3613 ;
3614 005130 10$:
3615 005130 005701 TST R1 ; DOES HE WANT ALL MODULES??
3616 005132 001442 BEQ 70$ ; YES -- GIVE IT TO HIM
3617 005134 100404 BMI 20$ ; NO -- DOES HE WANT SOME??
3618 005136 116016 000000G MOVB CONTI(R0),(SP) ; YES -- PHYSICAL BIT-MAP TO STACK
3619 005142 005002 CLR R2 ; INIT BIT-MASK INDEX
3620 005144 000410 BR 30$ ; CHECK WHAT HE WANTS
3621 ;
3622 ;
3623 ; WHAT'S WHERE:
3624 ;
3625 ; R0 -- CONTROLLER NUMBER
3626 ; R1 -- ALLOCATION BIT MASK
3627 ; .LT. 0 -- DELETE ENTIRE CONTROLLER
3628 ; .EQ. 0 -- ALLOCATE ENTIRE CONTROLLER
3629 ; .GT. 0 -- ALLOCATE SOME MUDULES IN CONTROLLER
3630 ; R2 -- BIT MASK INDEX
3631 ; R3 -- CURRENT BIT MASK
3632 ; (SP) -- BIT MASK TO/FROM MEMORY BOOT
3633 ;
3634 ; HERE TO DELETE AN ENTIRE CONTROLLER
3635 ;
3636 005146 20$:
3637 005146 012716 100000 MOV #BIT15,(SP) ; FLAG NONE FOR SAVE/RESTORE
3638 005152 105737 000264' TSTB SETIMF ; IS THIS A SET??
3639 005156 001430 BEQ 70$ ; NO -- JUST EXIT
3640 005160 105060 000000G CLRB TYPNUM(R0) ; YES -- CLEAR CONTROLLER FLAG
3641 005164 000425 BR 70$ ; AND EXIT
3642 ;
3643 ;
3644 ; HERE TO ALLOCATE MODULES WITHIN A CONTROLLER
3645 ;
3646 005166 30$:
3647 005166 016203 000000G MOV BITTBL(R2),R3 ; GET MASK FOR TARGET MODULE
3648 005172 030301 BIT R3,R1 ; DOES HE WANT THIS ONE??
3649 005174 001002 BNE 40$ ; YES -- GO ON
3650 005176 140316 BICB R3,(SP) ; NO -- GET RID OF IT
3651 005200 000411 BR 60$ ; AND GO ON
3652 ;
3653 005202 40$:
3654 005202 130316 BITB R3,(SP) ; WANTS THIS ONE -- IS IT THERE??
3655 005204 001007 BNE 60$ ; YES -- GO ON
3656 005206 PRINT #CIMNXM ; NO -- COMPLAIN
005206 012700 001167' MOV #CIMNXM,R0
005212 004737 027634' JSR PC,$TTMSG
3657 005216 005726 TST (SP)+ ; FLUSH STACK
3658 005220 50$:
3659 005220 000261 SEC ; SET ERROR FLAG
3660 005222 000424 BR 90$ ; AND EXIT
3661 ;
3662 005224 60$:
3663 005224 005722 TST (R2)+ ; POINT TO NEXT MASK BIT
KLICM -- CHECK INTERNAL MEMORY MACRO M1113 03-APR-86 20:55 PAGE 80-2
$CHKIM -- CHECK INTERNAL MEMORY MASK WORD
3664 005226 022702 000010 CMP #10,R2 ; ARE WE DONE??
3665 005232 003355 BGT 30$ ; NO -- CONTINUE
3666 005234 005716 TST (SP) ; YES -- DID HE DELETE THEM ALL??
3667 005236 001743 BEQ 20$ ; YES -- DELETE THE CONTROLLER TOO
3668 005240 70$:
3669 005240 012602 MOV (SP)+,R2 ; NO -- EDITED MASK TO R2
3670 005242 001411 BEQ 80$ ; ZERO BIT MASK IS ONE FLAVOR OF ALL
3671 005244 120260 000000G CMPB R2,CONTI(R0) ; HAS ANYTHING CHANGED??
3672 005250 001406 BEQ 80$ ; NO -- GO ON
3673 005252 010201 MOV R2,R1 ; YES -- COPY WORD TO R1
3674 005254 105737 000264' TSTB SETIMF ; IS THIS A SET??
3675 005260 001402 BEQ 80$ ; NO -- GO ON
3676 005262 110260 000000G MOVB R2,CONTI(R0) ; YES -- EDITED MASK TO PHYSICAL TABLE
3677 005266 80$:
3678 005266 006300 ASL R0 ; WORD INDEX
3679 005270 010160 000134' MOV R1,.CFGTB(R0) ; SET WORD INTO CONFIGURATION TABLE
3680 005274 90$:
3681 005274 POP R3 ; RESTORE REGISTERS
005274 012603 MOV (SP)+,R3
3682 005276 POP R2 ; SO
005276 012602 MOV (SP)+,R2
3683 005300 RETURN ; TO CALLER
005300 000207 RTS PC
KLICM -- CHECK INTERNAL MEMORY MACRO M1113 03-APR-86 20:55 PAGE 81
$CHKMM -- CHECK MOS MEMORY CONFIGURATION
3685 .SBTTL $CHKMM -- CHECK MOS MEMORY CONFIGURATION
3686
3687 ;
3688 ; HERE TO SET THE CONFIGURATION FOR AN MF20 CONTROLLER
3689 ;
3690 005302 $SETMM::
3691 005302 105237 000265' INCB SETMMF ; SAY "SET"
3692 005306 000402 BR CHKMMC ; DO COMMON CODE
3693 ;
3694 ;
3695 ; HERE TO CHECK THE CONFIGURATION FOR AN MF20 CONTROLLER
3696 ;
3697 005310 $CHKMM::
3698 005310 105037 000265' CLRB SETMMF ; SAY "CHECK"
3699 ;
3700 ; COMMON CHECK/SET CODE
3701 ;
3702 ; R0 -- CONTROLLER NUMBER
3703 ; R1 -- ALLOCATION MASK
3704 ;
3705 005314 CHKMMC:
3706 005314 PUSH R2 ; SAVE R2
005314 010246 MOV R2,-(SP)
3707 005316 PUSH R3 ; AND R3
005316 010346 MOV R3,-(SP)
3708 005320 PUSH R4 ; R4 TOO
005320 010446 MOV R4,-(SP)
3709 005322 122760 000005 000000G CMPB #5,TYPNUM(R0) ; IS THIS AN MF20??
3710 005330 001405 BEQ 10$ ; YES -- GO ON
3711 005332 PRINT #CIMNXC ; NO -- COMPLAIN
005332 012700 001136' MOV #CIMNXC,R0
005336 004737 027634' JSR PC,$TTMSG
3712 005342 000440 BR 40$ ; AND EXIT
3713 ;
3714 005344 10$:
3715 005344 005002 CLR R2 ; INIT BIT-MASK INDEX
3716 005346 005046 CLR -(SP) ; INIT BIT-MASK
3717 005350 010004 MOV R0,R4 ; COPY CONTROLLER NUMBER TO R4
3718 005352 CALL BAF0 ; FIND BASE OF THIS MF20 TABLE
005352 004737 000000G JSR PC,BAF0
3719 005356 005701 TST R1 ; WHAT DOES HE WANT??
3720 005360 001446 BEQ 80$ ; ALL
3721 005362 100015 BPL 30$ ; SOMETHING
3722 ;
3723 ; WHAT'S WHERE:
3724 ;
3725 ; R0 -- POINTS TO MF20 BLOCK TABLE
3726 ; R1 -- ALLOCATION MASK
3727 ; .LT. 0 -- DELETE ENTIRE CONTROLLER
3728 ; .EQ. 0 -- ALLOCATE ENTIRE CONTROLLER
3729 ; .GT. 0 -- DELETE SOME BLOCKS WITHIN CONTROLLER
3730 ; R2 -- BIT MASK INDEX
3731 ; R3 -- CURRENT BIT MASK
3732 ; R4 -- CONTROLLER NUMBER
3733 ; (SP) -- ACCUMULATED ALLOCATION MASK FOR RETURN
3734 ;
3735 ; HERE TO DELETE AN ENTIRE CONTROLLER
KLICM -- CHECK INTERNAL MEMORY MACRO M1113 03-APR-86 20:55 PAGE 81-1
$CHKMM -- CHECK MOS MEMORY CONFIGURATION
3736 ;
3737 005364 20$:
3738 005364 012716 100000 MOV #BIT15,(SP) ; MARK DELETION DONE
3739 005370 105737 000265' TSTB SETMMF ; IS THIS A SET??
3740 005374 001440 BEQ 80$ ; NO -- JUST EXIT
3741 005376 25$:
3742 005376 105020 CLRB (R0)+ ; YES -- MARK THAT WE DON'T WANT THIS BLOCK
3743 005400 005202 INC R2 ; ADVANCE COUNTER
3744 005402 022702 000014 CMP #14,R2 ; ARE WE DONE??
3745 005406 003373 BGT 25$ ; NO -- CONTINUE DELETING
3746 005410 105064 000000G CLRB TYPNUM(R4) ; DONE -- DELETE THE CONTROLLER
3747 005414 000430 BR 80$ ; AND EXIT
3748 ;
3749 ;
3750 ; HERE TO ALLOCATE/DELETE BLOCKS TO/FROM A CONTROLLER
3751 ;
3752 005416 30$:
3753 005416 016203 000000G MOV BITTBL(R2),R3 ; GET MASK BIT INTO R3
3754 005422 030301 BIT R3,R1 ; DOES HE WANT THIS ONE??
3755 005424 001413 BEQ 60$ ; NO -- GO DELETE IT
3756 005426 105710 TSTB (R0) ; YES -- DOES IT EXIST??
3757 005430 001007 BNE 50$ ; YES -- ALLOCATE IT
3758 005432 PRINT #CIMNXM ; NO -- COMPLAIN
005432 012700 001167' MOV #CIMNXM,R0
005436 004737 027634' JSR PC,$TTMSG
3759 005442 005726 TST (SP)+ ; FLUSH STACK
3760 005444 40$:
3761 005444 000261 SEC ; SET ERROR FLAG
3762 005446 000416 BR 90$ ; AND EXIT
3763 ;
3764 005450 50$:
3765 005450 050316 BIS R3,(SP) ; MARK DESIRED BLOCK
3766 005452 000404 BR 70$ ; AND TRY FOR NEXT
3767 ;
3768 005454 60$:
3769 005454 105737 000265' TSTB SETMMF ; IS THIS A SET??
3770 005460 001401 BEQ 70$ ; NO -- GO ON
3771 005462 105010 CLRB (R0) ; YES -- DELETE BLOCK FROM PHYSICAL TABLE
3772 005464 70$:
3773 005464 005200 INC R0 ; STEP POINTER
3774 005466 005722 TST (R2)+ ; ADVANCE TO NEXT BLOCK
3775 005470 022702 000030 CMP #30,R2 ; DONE??
3776 005474 003350 BGT 30$ ; NO -- CONTINUE TESTING
3777 005476 80$:
3778 005476 006304 ASL R4 ; YES -- CONVERT TO WORD INDEX
3779 005500 012664 000134' MOV (SP)+,.CFGTB(R4) ; SET CONFIGURATION MASK IN TABLE
3780 005504 90$:
3781 005504 POP R4 ; RESTORE REGISTERS
005504 012604 MOV (SP)+,R4
3782 005506 POP R3
005506 012603 MOV (SP)+,R3
3783 005510 POP R2
005510 012602 MOV (SP)+,R2
3784 005512 RETURN ; TO CALLER
005512 000207 RTS PC
KLICM -- CHECK INTERNAL MEMORY MACRO M1113 03-APR-86 20:55 PAGE 82
$CHKMM -- CHECK MOS MEMORY CONFIGURATION
3786
3787 .TITLE KLICO -- CONFIGURATION EDITOR
3788 005514 IDENT$ 10,0,KLI$$F
.IDENT /A10000/
3789 ;
3790 ; COPYRIGHT (C) 1975, 1984, 1985 BY
3791 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
3792 ; ALL RIGHTS RESERVED.
3793 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
3794 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
3795 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
3796 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
3797 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
3798 ;
3799 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
3800 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
3801 ; CORPORATION.
3802 ;
3803 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
3804 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
3805 ;
3806 ;
3807 ; MODULE: CONFIGURATION EDITOR
3808 ;
3809 ; VERSION: 10-00
3810 ;
3811 ; DATE: 25-JUL-78
3812 ;
3813 ; AUTHOR: R. BELANGER
3814 ;
3815 ; MODIFICATIONS:
3816 ;
3817 ; NO. DATE PROGRAMMER REASON
3818 ; --- ---- ---------- ------
3819 ;
3820 ;
3821 ;
3822 ; LOCAL DATA
3823 ;
3824 001222 .PSECT TEXT,D
3825 001222 CFGINM:
3826 001222 WARNING <INTERNAL CORE MEMORY RESOURCES DO NOT MATCH FILE>
001222 045 040 111 .ASCIZ \% INTERNAL CORE MEMORY RESOURCES DO NOT MATCH FILE\
001225 116 124 105
001230 122 116 101
001233 114 040 103
001236 117 122 105
001241 040 115 105
001244 115 117 122
001247 131 040 122
001252 105 123 117
001255 125 122 103
001260 105 123 040
001263 104 117 040
001266 116 117 124
001271 040 115 101
001274 124 103 110
KLICO -- CONFIGURATION EDITOR MACRO M1113 03-APR-86 20:55 PAGE 82-1
$CHKMM -- CHECK MOS MEMORY CONFIGURATION
001277 040 106 111
001302 114 105 000
3827 001305 CFGXNM:
3828 001305 WARNING <EXTERNAL CORE MEMORY RESOURCES DO NOT MATCH FILE>
001305 045 040 105 .ASCIZ \% EXTERNAL CORE MEMORY RESOURCES DO NOT MATCH FILE\
001310 130 124 105
001313 122 116 101
001316 114 040 103
001321 117 122 105
001324 040 115 105
001327 115 117 122
001332 131 040 122
001335 105 123 117
001340 125 122 103
001343 105 123 040
001346 104 117 040
001351 116 117 124
001354 040 115 101
001357 124 103 110
001362 040 106 111
001365 114 105 000
3829 001370 CFGMNM:
3830 001370 WARNING <MOS MEMORY RESOURCES DO NOT MATCH FILE>
001370 045 040 115 .ASCIZ \% MOS MEMORY RESOURCES DO NOT MATCH FILE\
001373 117 123 040
001376 115 105 115
001401 117 122 131
001404 040 122 105
001407 123 117 125
001412 122 103 105
001415 123 040 104
001420 117 040 116
001423 117 124 040
001426 115 101 124
001431 103 110 040
001434 106 111 114
001437 105 000
3831 001441 CFGMAC:
3832 001441 WARNING <MOS MEMORY IS ALREADY CONFIGURED>
001441 045 040 115 .ASCIZ \% MOS MEMORY IS ALREADY CONFIGURED\
001444 117 123 040
001447 115 105 115
001452 117 122 131
001455 040 111 123
001460 040 101 114
001463 122 105 101
001466 104 131 040
001471 103 117 116
001474 106 111 107
001477 125 122 105
001502 104 000
3833 005514 .PSECT
KLICO -- CONFIGURATION EDITOR MACRO M1113 03-APR-86 20:55 PAGE 83
$CONFG -- EDITOR DISPATCH
3835 .SBTTL $CONFG -- EDITOR DISPATCH
3836
3837 005514 $CONFG::
3838 005514 105037 000032' CLRB .DMSW ; RESET FLAG
3839 005520 105737 000000G TSTB MA20 ; DO WE HAVE INTERNAL MEMORY??
3840 005524 001003 BNE 10$ ; YES -- CONFIGURE IT
3841 005526 105737 000000G TSTB MB20 ; NO -- HOW ABOUT MB20'S
3842 005532 001403 BEQ 20$ ; NO -- GO ON
3843 005534 10$:
3844 005534 CALL CFGINT ; YES -- CONFIGURE IT
005534 004737 005624' JSR PC,CFGINT
3845 005540 103430 BCS 70$ ; ERROR IF CC-C SET
3846 005542 20$:
3847 005542 105737 000000G TSTB DMA20 ; DO WE HAVE EXTERNAL MEMORY??
3848 005546 001403 BEQ 30$ ; NO -- GO ON
3849 005550 CALL CFGEXT ; YES -- CONFIGURE IT
005550 004737 006076' JSR PC,CFGEXT
3850 005554 103422 BCS 70$ ; ERROR IF CC-C SET
3851
3852 005556 30$:
3853 005556 105737 000000G TSTB MF20 ; DO WE HAVE MOS MEMORY??
3854 005562 001403 BEQ 40$ ; NO -- GO ON
3855 005564 CALL CFGMOS ; YES CONFIGURE IT
005564 004737 006234' JSR PC,CFGMOS
3856 005570 103414 BCS 70$ ; ERROR IF CC-C SET
3857 005572 40$:
3858 005572 113746 000032' MOVB .DMSW,-(SP) ; DONE -- SAVE FLAG
3859 005576 105037 000032' CLRB .DMSW ; INIT FOR RETURN
3860 005602 105737 000024' TSTB .DLGSW ; ARE WE BEING TOLD WHAT TO DO??
3861 005606 001402 BEQ 50$ ; YES -- SET FLAG TO WRITE FILE
3862 005610 105716 TSTB (SP) ; NO -- DID ANYTHING CHANGE??
3863 005612 001402 BEQ 60$ ; NO -- JUST EXIT
3864 005614 50$:
3865 005614 105237 000032' INCB .DMSW ; YES -- FLAG FILE WRITE
3866 005620 60$:
3867 005620 005726 TST (SP)+ ; CLEAR STACK
3868 005622 70$:
3869 005622 RETURN ; TO CALLER
005622 000207 RTS PC
KLICO -- CONFIGURATION EDITOR MACRO M1113 03-APR-86 20:55 PAGE 84
CFGINT -- INTERNAL MEMORY CONFIGURATION EDITOR
3871 .SBTTL CFGINT -- INTERNAL MEMORY CONFIGURATION EDITOR
3872
3873 005624 CFGINT:
3874 005624 012704 000004 MOV #4,R4 ; INIT ITERATION COUNTER
3875 005630 005002 CLR R2 ; INIT CONTROLER NUMBER
3876 005632 005003 CLR R3 ; RESET ERROR FLAG
3877 005634 10$:
3878 005634 010200 MOV R2,R0 ; CONTROLLER NUMBER TO R0
3879 005636 006200 ASR R0 ; BYTE INDEX
3880 005640 016201 000134' MOV .CFGTB(R2),R1 ; EDITED CONFIGURATION MASK
3881 005644 100015 BPL 20$ ; WANTS IT CONFIGURED
3882 005646 105760 000000G TSTB TYPNUM(R0) ; THIS CONTROLLER EXIST??
3883 005652 001461 BEQ 60$ ; NO -- DON'T BOTHER DELETING
3884 005654 126060 000000G 000072' CMPB TYPNUM(R0),.CTLTP(R0) ; CONTROLLERS MATCH??
3885 005662 001402 BEQ 15$ ; YES -- GO ON
3886 005664 CALL 70$ ; NO -- WARN HIM
005664 004737 006034' JSR PC,70$
3887 005670 15$:
3888 005670 CALL $SETIM ; AND DELETE IT
005670 004737 005056' JSR PC,$SETIM
3889 005674 103477 BCS 90$ ; ERROR IF CC-C SET
3890 005676 000447 BR 60$ ; AND TRY FOR NEXT
3891 ;
3892 005700 20$:
3893 005700 105760 000000G TSTB TYPNUM(R0) ; DOES THIS CONTROLLER EXIST??
3894 005704 001006 BNE 30$ ; YES -- GO ON
3895 005706 012762 100000 000134' MOV #BIT15,.CFGTB(R2) ; NO -- (LOGICALLY) DELETE THE CONTROLLER
3896 005714 CALL 70$ ; WARN OPERATOR
005714 004737 006034' JSR PC,70$
3897 005720 000436 BR 60$ ; GO AROUND AGAIN
3898 ;
3899 005722 30$:
3900 005722 126060 000000G 000072' CMPB TYPNUM(R0),.CTLTP(R0) ; CONTROLLERS MATCH??
3901 005730 001403 BEQ 35$ ; YES -- GO ON
3902 005732 CALL 70$ ; NO -- WARN OPERATOR
005732 004737 006034' JSR PC,70$
3903 005736 105001 CLRB R1 ; SAY "ALL"
3904 005740 35$:
3905 005740 120160 000000G CMPB R1,CONTI(R0) ; ARE THESE THE SAME??
3906 005744 001414 BEQ 40$ ; YES -- GO ON
3907 005746 105701 TSTB R1 ; IS IT "ALL"??
3908 005750 001412 BEQ 40$ ; YES -- SAME DIFFERENCE
3909 005752 PUSH R1 ; SAVE R1
005752 010146 MOV R1,-(SP)
3910 005754 CALL $SETIM ; DELETE THE MODULES
005754 004737 005056' JSR PC,$SETIM
3911 005760 POP R1 ; RESTORE R1
005760 012601 MOV (SP)+,R1
3912 005762 103005 BCC 40$ ; ALL OK IF CC-C IS CLEAR
3913 005764 105060 000134' CLRB .CFGTB(R0) ; SET TO "ALL"
3914 005770 CALL 70$ ; WARN OPERATOR OR EXIT
005770 004737 006034' JSR PC,70$
3915 005774 000410 BR 60$ ; GO ON TO NEXT CONTROLLER
3916 ;
3917 005776 40$:
3918 005776 000301 SWAB R1 ; SWAP THE BYTES
3919 006000 042701 177774 BIC #^C3,R1 ; FLUSH JUNK
KLICO -- CONFIGURATION EDITOR MACRO M1113 03-APR-86 20:55 PAGE 84-1
CFGINT -- INTERNAL MEMORY CONFIGURATION EDITOR
3920 006004 001002 BNE 50$ ; GO ON IF .NE.
3921 006006 012701 000003 MOV #3,R1 ; (0 V 4) => 3
3922 006012 50$:
3923 006012 110137 000000G MOVB R1,INTMOD ; SET THE INTERLEAVE MODE
3924 006016 60$:
3925 006016 005722 TST (R2)+ ; ADVANCE CONTROLLER INDEX
3926 006020 077473 SOB R4,10$ ; LOOP TILL DONE
3927 006022 105037 000000G CLRB MABRD ; DONE -- RESET FLAGS
3928 006026 105037 000000G CLRB RDDONE ; SO
3929 006032 RETURN ; TO CALLER
006032 000207 RTS PC
3930 006034 70$:
3931 006034 005703 TST R3 ; ALREADY PRINTED??
3932 006036 001006 BNE 80$ ; YES -- GO ON
3933 006040 PUSH R0 ; NO -- SAVE R0
006040 010046 MOV R0,-(SP)
3934 006042 PRINT #CFGINM ; TELL HIM
006042 012700 001222' MOV #CFGINM,R0
006046 004737 027634' JSR PC,$TTMSG
3935 006052 POP R0 ; RESTORE R0
006052 012600 MOV (SP)+,R0
3936 006054 80$:
3937 006054 005203 INC R3 ; FLAG PRINT
3938 006056 105237 000032' INCB .DMSW ; AND CONTROL
3939 006062 105737 000024' TSTB .DLGSW ; IS HE TALKING TO US??
3940 006066 001002 BNE 90$ ; NO -- GO ON
3941 006070 000137 024012' JMP $ERROR ; YES -- QUIT NOW
3942 ;
3943 006074 90$:
3944 006074 RETURN ; TO CALLER
006074 000207 RTS PC
KLICO -- CONFIGURATION EDITOR MACRO M1113 03-APR-86 20:55 PAGE 85
CFGEXT -- EXTERNAL MEMORY CONFIGURATION EDITOR
3946 .SBTTL CFGEXT -- EXTERNAL MEMORY CONFIGURATION EDITOR
3947
3948 006076 CFGEXT:
3949 006076 012700 000004 MOV #4,R0 ; CONTROLLER NUMBER 4
3950 006102 013701 000144' MOV .CFGTB+10,R1 ; ALLOCATION DATA TO R1
3951 006106 100005 BPL 10$ ; HE WANTS IT
3952 006110 105737 000004G TSTB TYPNUM+4 ; IS IT THERE??
3953 006114 001446 BEQ 50$ ; NO -- SO DON'T BOTHER
3954 006116 CALLR INIDMA ; YES -- SO DELETE IT
006116 000137 000000G JMP INIDMA
3955 ;
3956 006122 10$:
3957 006122 105737 000004G TSTB TYPNUM+4 ; IS IT THERE??
3958 006126 001004 BNE 20$ ; YES -- ALLOCATE IT
3959 006130 012737 100000 000144' MOV #BIT15,.CFGTB+10 ; NO -- LOGICALLY DELETE IT
3960 006136 000414 BR 30$ ; PRINT THE MESSAGE AND EXIT
3961 ;
3962 006140 20$:
3963 006140 005737 000000G TST DMA2TS ; IS IT REALLY THERE??
3964 006144 003411 BLE 30$ ; NO -- COMPLAIN
3965 006146 110100 MOVB R1,R0 ; YES -- GET THE INTERLEAVE MODE INTO R0
3966 006150 001430 BEQ 50$ ; EXIT NOW IF OPTIMAL
3967 006152 042700 177774 BIC #^C3,R0 ; FLUSH JUNK
3968 006156 006300 ASL R0 ; WORD INDEX
3969 006160 036037 000236' 000000G BIT BMMSTB(R0),DMANXM ; IS IT OK??
3970 006166 001413 BEQ 40$ ; YES -- GO ON
3971 006170 30$:
3972 006170 PRINT #CFGXNM ; NO -- COMPLAIN
006170 012700 001305' MOV #CFGXNM,R0
006174 004737 027634' JSR PC,$TTMSG
3973 006200 105237 000032' INCB .DMSW ; FLAG CONTROL
3974 006204 105737 000024' TSTB .DLGSW ; IS SOMEONE TALKING TO US??
3975 006210 001010 BNE 50$ ; NO -- JUST EXIT
3976 006212 000137 024012' JMP $ERROR ; YES -- BAIL OUT NOW
3977 ;
3978 006216 40$:
3979 006216 005701 TST R1 ; IS MODE NOW ZERO??
3980 006220 001002 BNE 45$ ; NO -- GO ON
3981 006222 012701 000003 MOV #3,R1 ; YES -- MAKE IT 4-WAY
3982 006226 45$:
3983 006226 110137 000000G MOVB R1,DMABM ; SET THE BUS MODE
3984 006232 50$:
3985 006232 RETURN ; TO CALLER
006232 000207 RTS PC
KLICO -- CONFIGURATION EDITOR MACRO M1113 03-APR-86 20:55 PAGE 86
CFGMOS -- MOS CONFIGURATION EDITOR
3987 .SBTTL CFGMOS -- MOS CONFIGURATION EDITOR
3988
3989 006234 CFGMOS:
3990 006234 012704 000010 MOV #10,R4 ; INIT ITERATION COUNTER
3991 006240 012702 000020 MOV #20,R2 ; ALSO BASE CONTROLLER NUMBER
3992 006244 005003 CLR R3 ; INIT FLAG
3993 006246 10$:
3994 006246 010200 MOV R2,R0 ; CONTROLER NUMBER TO R0
3995 006250 006200 ASR R0 ; REAL CONTROLLER NUMBER
3996 006252 122760 000002 000000G CMPB #2,CONTI(R0) ; WHAT STATE ARE WE IN??
3997 006260 003005 BGT 15$ ; OK TO CONFIGURE
3998 006262 PRINT #CFGMAC ; ALREADY CONFIGURED
006262 012700 001441' MOV #CFGMAC,R0
006266 004737 027634' JSR PC,$TTMSG
3999 006272 000441 BR 45$ ; NEXT...
4000 ;
4001 006274 15$:
4002 006274 016201 000134' MOV .CFGTB(R2),R1 ; CONFIGURATION MASK
4003 006300 002004 BGE 20$ ; WANTS IT IF .GE. 0
4004 006302 105760 000000G TSTB TYPNUM(R0) ; IS CONTROLLER THERE??
4005 006306 001022 BNE 35$ ; YES -- DELETE IT
4006 006310 000430 BR 40$ ; NO -- TRY FOR NEXT CONTROLLER
4007 ;
4008 006312 20$:
4009 006312 105760 000000G TSTB TYPNUM(R0) ; IS THE CONTROLLER THERE??
4010 006316 003006 BGT 30$ ; YES -- GO ON
4011 006320 012762 100000 000134' MOV #BIT15,.CFGTB(R2) ; NO -- (LOGICALLY) DELETE THE CONTROLLER
4012 006326 CALL 50$ ; WARN OPERATOR
006326 004737 006400' JSR PC,50$
4013 006332 000417 BR 40$ ; AND GO ON
4014 ;
4015 006334 30$:
4016 006334 CALL $MAPMM ; GET THE MOS MAP FOR THIS CONTROLLER
006334 004737 006436' JSR PC,$MAPMM
4017 006340 020100 CMP R1,R0 ; ARE THE MASKS THE SAME??
4018 006342 001413 BEQ 40$ ; YES -- DON'T DELETE MODULES
4019 006344 005701 TST R1 ; NO -- DID HE MEAN ALL??
4020 006346 001411 BEQ 40$ ; YES -- GO ON
4021 006350 010200 MOV R2,R0 ; NO -- GET CONTROLLER NUMBER
4022 006352 006200 ASR R0 ; RIGHT
4023 006354 35$:
4024 006354 CALL $SETMM ; AND SET IT
006354 004737 005302' JSR PC,$SETMM
4025 006360 103004 BCC 40$ ; ALL OK IF CC-C IS CLEAR
4026 006362 CALL 50$ ; WARN OPERATOR OR EXIT
006362 004737 006400' JSR PC,50$
4027 006366 005062 000134' CLR .CFGTB(R2) ; SET TABLE TO "ALL"
4028 006372 40$:
4029 006372 005722 TST (R2)+ ; NEXT CONTROLLER
4030 006374 077454 SOB R4,10$ ; LOOP TILL DONE
4031 006376 45$:
4032 006376 RETURN ; TO CALLER
006376 000207 RTS PC
4033 006400 50$:
4034 006400 005703 TST R3 ; ALREADY PRINTED??
4035 006402 001004 BNE 60$ ; YES -- GO ON
4036 006404 PRINT #CFGMNM ; NO PRINT IT
KLICO -- CONFIGURATION EDITOR MACRO M1113 03-APR-86 20:55 PAGE 86-1
CFGMOS -- MOS CONFIGURATION EDITOR
006404 012700 001370' MOV #CFGMNM,R0
006410 004737 027634' JSR PC,$TTMSG
4037 006414 60$:
4038 006414 005203 INC R3 ; FLAG PRINT
4039 006416 105237 000032' INCB .DMSW ; HERE TOO
4040 006422 105737 000024' TSTB .DLGSW ; SOMEONE OUT THERE??
4041 006426 001401 BEQ 70$ ; YES
4042 006430 RETURN ; NO -- RETURN
006430 000207 RTS PC
4043 006432 70$:
4044 006432 000137 024012' JMP $ERROR ; BAIL OUT NOW...
4045 ;
KLICO -- CONFIGURATION EDITOR MACRO M1113 03-APR-86 20:55 PAGE 87
$MAPMM -- MAP MOS CONTROLLER BLOCKS
4047 .SBTTL $MAPMM -- MAP MOS CONTROLLER BLOCKS
4048
4049 006436 $MAPMM::
4050 006436 PUSH R2 ; SAVE R2
006436 010246 MOV R2,-(SP)
4051 006440 PUSH R4 ; AND R4
006440 010446 MOV R4,-(SP)
4052 006442 005046 CLR -(SP) ; BUFFER
4053 006444 012704 000014 MOV #14,R4 ; ITERATION COUNTER
4054 006450 005002 CLR R2 ; INIT INDEX
4055 006452 CALL BAF0 ; FIND BASE ADDRESS THIS CONTROLLER
006452 004737 000000G JSR PC,BAF0
4056 006456 10$:
4057 006456 105720 TSTB (R0)+ ; IS THE BLOCK THERE??
4058 006460 001402 BEQ 20$ ; NO -- GO ON
4059 006462 056216 000000G BIS BITTBL(R2),(SP) ; YES -- LIGHT A BIT
4060 006466 20$:
4061 006466 005722 TST (R2)+ ; AND NEXT BIT
4062 006470 077406 SOB R4,10$ ; LOOP TILL DONE
4063 006472 POP R0 ; BIT MASK TO R0
006472 012600 MOV (SP)+,R0
4064 006474 POP R4 ; RESTORE R4
006474 012604 MOV (SP)+,R4
4065 006476 POP R2 ; RESTORE R2
006476 012602 MOV (SP)+,R2
4066 006500 RETURN ; TO CALLER
006500 000207 RTS PC
KLICO -- CONFIGURATION EDITOR MACRO M1113 03-APR-86 20:55 PAGE 88
$MAPMM -- MAP MOS CONTROLLER BLOCKS
4068
4069
4070 .TITLE KLICS -- SWEEP CACHE
4071 006502 IDENT$ 5,1
.IDENT /005010/
4072 ;
4073 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
4074 ; ALL RIGHTS RESERVED.
4075 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
4076 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
4077 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
4078 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
4079 ;
4080 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
4081 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
4082 ; EQUIPMENT CORPORATION.
4083 ;
4084 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
4085 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
4086 ;
4087 ; VERSION 05-01
4088 ;
4089 ; ALAN D. PECKHAM 8-APR-77
4090 ;
4091 ; MODIFIED BY:
4092 ;
4093 ; FUNCTION: SWEEP AND INVALIDATE THE KL CACHE.
4094 ;
4096 ; EQUATED SYMBOLS
4097 ;
4098 000014 CCA = 14 ; KL DEVICE.
4099 000004 CONO = 4 ; KL I/O SUBFUNCTION CODE.
4100 000001 DATAI = 1 ; KL I/O SUBFUNCTION CODE.
4101 000010 PAG = 10 ; KL DEVICE.
4102 ;
4103 ; LOCAL DATA
4104 ;
4105 000266 .PSECT DATA,D
4106 000266 DCSSIA: IO10$ DATAI CCA,,0 ; SWPIA INSTRUCTION.
000266 000 000 200 .BYTE BY$$0,BY$$1,BY$$2
000271 014 016 .BYTE BY$$3,BY$$4
4107 000273 DCSRCA: IO10$ CONO PAG,,0 ; RESET CACHE & PAGING STATUS.
000273 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
000276 012 016 .BYTE BY$$3,BY$$4
4108 .EVEN
4109 006502 .PSECT
KLICS -- SWEEP CACHE MACRO M1113 03-APR-86 20:55 PAGE 89
$SWEEP -- SWEEP AND INVALIDATE THE CACHE
4111 .SBTTL $SWEEP -- SWEEP AND INVALIDATE THE CACHE
4112 ;+
4113 ; SWEEP THE CACHE OUT AND TURN IT OFF.
4114 ;
4115 ; INPUTS:
4116 ; .NCACH - NUMBER OF CACHES CONFIGURED.
4117 ; .CACHN - NUMBERS OF THE CACHES ENABLED.
4118 ;
4119 ; NO OUTPUTS
4120 ;-
4121
4122 006502 $SWEEP::
4123 006502 105737 000043' TSTB .CASW ; CHECK CACHE CONDITION AND
4124 006506 003415 BLE 90$ ; RETURN IF NO CACHE.
4125 006510 PUSH <R1,R0>
006510 010146 MOV R1,-(SP)
006512 010046 MOV R0,-(SP)
4126 006514 012700 000266' MOV #DCSSIA,R0 ; FIRST, INVALIDATE THE CACHE
4127 006520 CALL $EXCT ; WITH A SWPIA.
006520 004737 030636' JSR PC,$EXCT
4128 006524 103404 BCS 80$
4129 006526 012700 000273' MOV #DCSRCA,R0 ; THEN TURN OFF CACHE LOOK & LOAD
4130 006532 CALL $EXCT ; WITH A CONO PAG,,0.
006532 004737 030636' JSR PC,$EXCT
4131 006536 80$:
4132 006536 POP <R0,R1>
006536 012600 MOV (SP)+,R0
006540 012601 MOV (SP)+,R1
4133 006542 90$:
4134 006542 RETURN
006542 000207 RTS PC
4135
KLICS -- SWEEP CACHE MACRO M1113 03-APR-86 20:55 PAGE 90
$SWEEP -- SWEEP AND INVALIDATE THE CACHE
4138
4139 .TITLE KLICX -- EXTERNAL MEMORY CONFIGURATION DIALOG
4140 006544 IDENT$ 10,0,KLI$$F
.IDENT /A10000/
4141 ;
4142 ; COPYRIGHT (C) 1975, 1984, 1985 BY
4143 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
4144 ; ALL RIGHTS RESERVED.
4145 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
4146 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
4147 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
4148 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
4149 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
4150 ;
4151 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
4152 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
4153 ; CORPORATION.
4154 ;
4155 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
4156 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
4157 ;
4158 ;
4159 ; MODULE: EXTERNAL MEMORY CONFIGURATION DIALOG
4160 ;
4161 ; VERSION: 10-00
4162 ;
4163 ; DATE: 25-JUL-78
4164 ;
4165 ; AUTHOR: R. BELANGER
4166 ;
4167 ; MODIFICATIONS:
4168 ;
4169 ; NO. DATE PROGRAMMER REASON
4170 ; --- ---- ---------- ------
4171 ;
4172 ; LOCAL DATA
4173 ;
4174 001504 .PSECT TEXT,D
4175 001504 CXMDOL:
4176 001504 WARNING <EXTERNAL CORE MEMORY IS OFF-LINE>
001504 045 040 105 .ASCIZ \% EXTERNAL CORE MEMORY IS OFF-LINE\
001507 130 124 105
001512 122 116 101
001515 114 040 103
001520 117 122 105
001523 040 115 105
001526 115 117 122
001531 131 040 111
001534 123 040 117
001537 106 106 055
001542 114 111 116
001545 105 000
4177 001547 CFXMQ1:
4178 001547 103 117 116 .ASCIZ /CONFIGURE EXTERNAL CORE MEMORY [YES,NO]?/
001552 106 111 107
001555 125 122 105
001560 040 105 130
KLICX -- EXTERNAL MEMORY CONFIG MACRO M1113 03-APR-86 20:55 PAGE 90-1
$SWEEP -- SWEEP AND INVALIDATE THE CACHE
001563 124 105 122
001566 116 101 114
001571 040 103 117
001574 122 105 040
001577 115 105 115
001602 117 122 131
001605 040 133 131
001610 105 123 054
001613 116 117 135
001616 077 000
4179 001620 CFXMQ2:
4180 001620 105 130 124 .ASCIZ /EXTERNAL CORE MEMORY BUS-MODE [OPTIMAL,1,2,4]?/
001623 105 122 116
001626 101 114 040
001631 103 117 122
001634 105 040 115
001637 105 115 117
001642 122 131 040
001645 102 125 123
001650 055 115 117
001653 104 105 040
001656 133 117 120
001661 124 111 115
001664 101 114 054
001667 061 054 062
001672 054 064 135
001675 077 000
4181 001677 CXMIBM:
4182 001677 ERROR <ILLEGAL BUS-MODE>
001677 077 040 111 .ASCIZ \? ILLEGAL BUS-MODE\
001702 114 114 105
001705 107 101 114
001710 040 102 125
001713 123 055 115
001716 117 104 105
001721 000
4183 006544 .PSECT
KLICX -- EXTERNAL MEMORY CONFIG MACRO M1113 03-APR-86 20:55 PAGE 91
$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG
4185 .SBTTL $CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG
4186
4187 006544 $CFXMD::
4188 006544 105737 000000G TSTB DMA20 ; DO WE HAVE EXTERNAL MEMORY??
4189 006550 001540 BEQ 100$ ; NO -- GO ON TO NEXT SECTION
4190 006552 005737 000000G TST DMA2TS ; YES -- IS IT ON-LINE??
4191 006556 003005 BGT 10$ ; YES -- GO ON
4192 006560 PRINT #CXMDOL ; NO -- SAY SO
006560 012700 001504' MOV #CXMDOL,R0
006564 004737 027634' JSR PC,$TTMSG
4193 006570 000530 BR 100$ ; AND EXIT
4194 ;
4195 006572 10$:
4196 006572 105737 000032' TSTB .DMSW ; ARE WE IN DIALOG MODE??
4197 006576 002435 BLT 40$ ; NO -- TAKE DEFAULT PATH
4198 006600 PRINT #CFXMQ1 ; YES -- ASK THE FIRST QUESTION
006600 012700 001547' MOV #CFXMQ1,R0
006604 004737 027634' JSR PC,$TTMSG
4199 006610 CALL $TTRD ; READ THE RESPONSE
006610 004737 027130' JSR PC,$TTRD
4200 006614 012705 000304' MOV #.TTIBF,R5 ; POINT TO INPUT BUFFER
4201 006620 105715 TSTB (R5) ; DEFAULT??
4202 006622 001423 BEQ 40$ ; YES -- DO IT
4203 006624 022715 042531 CMP #"YE,(R5) ; NO -- IS IT "YES"??
4204 006630 001420 BEQ 40$ ; YES -- DO IT
4205 006632 022715 047516 CMP #"NO,(R5) ; NO -- IS IT "NO"??
4206 006636 001412 BEQ 30$ ; YES -- DO IT
4207 006640 022715 040502 CMP #"BA,(R5) ; NO -- IS IT "BACK"??
4208 006644 001405 BEQ 20$ ; YES -- BACK UP ONE
4209 006646 PRINT #COMCSE ; NO -- ERROR
006646 012700 005552' MOV #COMCSE,R0
006652 004737 027634' JSR PC,$TTMSG
4210 006656 000745 BR 10$
4211 ;
4212 006660 20$:
4213 006660 CALLR $DLMB2 ; BACK UP TO PREVIOUS QUESTION
006660 000137 020372' JMP $DLMB2
4214 ;
4215 006664 30$:
4216 006664 012701 100000 MOV #BIT15,R1 ; MAKE R1 SAY "NO"
4217 006670 000401 BR 50$ ; DO COMMON CODE
4218 ;
4219 006672 40$:
4220 006672 005001 CLR R1 ; MAKE R1 SAY "YES" <DEFAULT PATH>
4221 006674 50$:
4222 006674 010137 000144' MOV R1,.CFGTB+10 ; SET IT IN CONFIGURATION TABLE
4223 006700 100464 BMI 100$ ; DONE IF DELETE...
4224 006702 60$:
4225 006702 105737 000032' TSTB .DMSW ; ARE WE IN DIALOG MODE??
4226 006706 002461 BLT 100$ ; NO -- JUST EXIT
4227 006710 PRINT #CFXMQ2 ; YES -- ASK THE SECOND QUESTION
006710 012700 001620' MOV #CFXMQ2,R0
006714 004737 027634' JSR PC,$TTMSG
4228 006720 CALL $TTRD ; READ THE RESPONSE
006720 004737 027130' JSR PC,$TTRD
4229 006724 005000 CLR R0 ; INIT DEFAULT BUS-MODE
4230 006726 012705 000304' MOV #.TTIBF,R5 ; POINT TO INPUT BUFFER
KLICX -- EXTERNAL MEMORY CONFIG MACRO M1113 03-APR-86 20:55 PAGE 91-1
$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG
4231 006732 105715 TSTB (R5) ; DEFAULT??
4232 006734 001444 BEQ 90$ ; YES -- GO ON
4233 006736 022715 050117 CMP #"OP,(R5) ; NO -- "OPTIMAL"??
4234 006742 001441 BEQ 90$ ; YES -- GO ON
4235 006744 022715 040502 CMP #"BA,(R5) ; NO -- "BACK"??
4236 006750 001710 BEQ 10$ ; YES -- BACK UP ONE
4237 006752 CALL $TRI2B ; NO -- HAD BETTER BE NUMERIC
006752 004737 025424' JSR PC,$TRI2B
4238 006756 103426 BCS 80$ ; OOPS!
4239 006760 005700 TST R0 ; DID HE TYPE ZERO??
4240 006762 001424 BEQ 80$ ; YES -- NOT ALLOWED
4241 006764 022700 000004 CMP #4,R0 ; NO -- IN RANGE??
4242 006770 002421 BLT 80$ ; NO -- COMPLAIN
4243 006772 022700 000003 CMP #3,R0 ; YES -- IS IT "3"??
4244 006776 001416 BEQ 80$ ; YES -- NOT ALLOWED
4245 007000 70$:
4246 007000 010001 MOV R0,R1 ; NO -- ALL OK
4247 007002 042701 177774 BIC #^C3,R1 ; FLUSH JUNK
4248 007006 006301 ASL R1 ; WORD INDEX
4249 007010 016101 000236' MOV BMMSTB(R1),R1 ; BIT MASK TO R1
4250 007014 030137 000000G BIT R1,DMANXM ; IS THIS BUS-MODE LEGAL??
4251 007020 001412 BEQ 90$ ; YES -- GO ON
4252 007022 PRINT #CXMIBM ; NO -- COMPLAIN
007022 012700 001677' MOV #CXMIBM,R0
007026 004737 027634' JSR PC,$TTMSG
4253 007032 000723 BR 60$ ; AND TRY AGAIN
4254 ;
4255 007034 80$:
4256 007034 PRINT #COMCSE ; ERROR MESSAGE
007034 012700 005552' MOV #COMCSE,R0
007040 004737 027634' JSR PC,$TTMSG
4257 007044 000716 BR 60$ ; TRY AGAIN
4258 ;
4259 007046 90$:
4260 007046 010037 000144' MOV R0,.CFGTB+10
4261 007052 100$:
4262 007052 CALLR $DLGMF ; CONFIGURE MOS MEMORY
007052 000137 020354' JMP $DLGMF
4263 ;
KLICX -- EXTERNAL MEMORY CONFIG MACRO M1113 03-APR-86 20:55 PAGE 92
$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG
4265
4266
4267 .TITLE KLIDC -- FILE CLOSE ROUTINE
4268 007056 IDENT$ 5,0
.IDENT /005000/
4269 ;
4270 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
4271 ; ALL RIGHTS RESERVED.
4272 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
4273 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
4274 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
4275 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
4276 ;
4277 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
4278 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
4279 ; EQUIPMENT CORPORATION.
4280 ;
4281 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
4282 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
4283 ;
4284 ; VERSION 05-00
4285 ;
4286 ; ALAN D. PECKHAM 15-APR-77
4287 ;
4288 ; MODIFIED BY:
4289 ;
4290 ; FUNCTION: THIS ROUTINE CLOSES THE FILE CURRENTLY OPEN. IF IT IS
4291 ; AND OUTPUT FILE, THE LAST BLOCK IS WRITTEN OUT AND
4292 ; THE ATTRIBUTES ARE WRITTEN.
4293 ;
4294 ; LOCAL MACROS
4295 ;
4296 .MCALL QIOW$
4297 ;
4298 ; LOCAL DATA
4299 ;
4300 000300 .PSECT DATA,D
4301 000300 DDCDAI: QIOW$ IO.DAC,SYILUN,1,,.SYSTA
000300 003 006 .BYTE 3,$$$ARG
000302 000000G .WORD IO.DAC
000304 000004 .WORD SYILUN
000306 001 000 .BYTE 1,
000310 000526' .WORD .SYSTA
000312 000000 .WORD
4302 000314 DDCDAO: QIOW$ IO.DAC,SYOLUN,1,,.SYSTA,,<,DDCWAT>
000314 003 010 .BYTE 3,$$$ARG
000316 000000G .WORD IO.DAC
000320 000005 .WORD SYOLUN
000322 001 000 .BYTE 1,
000324 000526' .WORD .SYSTA
000326 000000 .WORD
000330 000000 .WORD
000332 000334' .WORD DDCWAT
4303 000334 004 016 DDCWAT: .BYTE 4,16 ; ATTRIBUTES INFO
4304 000336 002652' .WORD .SYATT
4305 000340 005 012 .BYTE 5,12 ; FILENAME INFO
4306 000342 001574' .WORD .SYOFN+00
KLIDC -- FILE CLOSE ROUTINE MACRO M1113 03-APR-86 20:55 PAGE 92-1
$CFXMD -- EXTERNAL MEMORY CONFIGURATION DIALOG
4307 000344 001 002 .BYTE 1,2 ; AND OWNER'S UIC
4308 000346 001606' .WORD .SYOFN+12
4309 000350 000 000 .BYTE 0,0 ; END OF CONTROL WORDS.
4310 007056 .PSECT
KLIDC -- FILE CLOSE ROUTINE MACRO M1113 03-APR-86 20:55 PAGE 93
$CLOSE -- CLOSE FILES AND WRITE ATTRIBUTES
4312 .SBTTL $CLOSE -- CLOSE FILES AND WRITE ATTRIBUTES
4313 ;+
4314 ; CLOSE THE INPUT AND OUTPUT FILES.
4315 ;
4316 ; NO INPUTS
4317 ;
4318 ; OUTPUTS:
4319 ; CARRY IS SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
4320 ; R0 IS DESTROYED IF ERROR.
4321 ;-
4322
4323 007056 105737 000532' $CLOSE::TSTB .SYISW ; IF INPUT FILE NOT OPEN
4324 007062 001411 BEQ 10$ ; LEAVE IT ALONE.
4325 007064 DIR$ #DDCDAI ; DE-ACCESS THE INPUT FILE.
007064 012746 000300' MOV #DDCDAI,-(SP)
007070 104375 EMT 375
4326 007072 103441 BCS 30$
4327 007074 105737 000526' TSTB .SYSTA
4328 007100 002436 BLT 30$
4329 007102 105037 000532' CLRB .SYISW ; INPUT FILE NOW CLOSED.
4330 007106 105737 000533' 10$: TSTB .SYOSW ; IF OUTPUT FILE NO OPEN
4331 007112 001430 BEQ 20$ ; LEAVE IT ALONE.
4332
4333 ; COLLECT OUT STATISTICS
4334
4335 007114 013737 001614' 002662' MOV .SYOVB,.SYATT+10 ; RECORD TOP
4336 007122 013737 001616' 002664' MOV .SYOVB+2,.SYATT+12 ; BLOCK USED AND
4337 007130 013737 001570' 002666' MOV .SYOBA,.SYATT+14 ; DISPLACEMENT TO
4338 007136 162737 001620' 002666' SUB #.SYOBF,.SYATT+14 ; NEXT AVAILABLE BYTE.
4339 007144 CALL $WRITS ; WRITE OUT REST OF
007144 004737 010666' JSR PC,$WRITS
4340 007150 103411 BCS 20$ ; THE CURRENT BLOCK.
4341 007152 DIR$ #DDCDAO ; DE-ACCESS THE OUTPUT FILE.
007152 012746 000314' MOV #DDCDAO,-(SP)
007156 104375 EMT 375
4342 007160 103411 BCS 40$
4343 007162 105737 000526' TSTB .SYSTA
4344 007166 002406 BLT 40$
4345 007170 105037 000533' CLRB .SYOSW ; OUTPUT FILE NOW CLOSED.
4346 007174 20$: RETURN
007174 000207 RTS PC
4347
4348 007176 012700 000542' 30$: MOV #.SYIFN,R0 ; CLOSE FAILED.
4349 007202 000402 BR 50$
4350 007204 012700 001574' 40$: MOV #.SYOFN,R0
4351 007210 50$: CALLR $IOERR
007210 000137 007346' JMP $IOERR
KLIDC -- FILE CLOSE ROUTINE MACRO M1113 03-APR-86 20:55 PAGE 94
$CLOSE -- CLOSE FILES AND WRITE ATTRIBUTES
4353
4354
4355 .TITLE KLIDD -- DELETE A FILE
4356 007214 IDENT$ 5,0
.IDENT /005000/
4357 ;
4358 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
4359 ; ALL RIGHTS RESERVED.
4360 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
4361 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
4362 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
4363 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
4364 ;
4365 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
4366 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
4367 ; EQUIPMENT CORPORATION.
4368 ;
4369 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
4370 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
4371 ;
4372 ; VERSION 05-00
4373 ;
4374 ; ALAN D. PECKHAM 15-APR-77
4375 ;
4376 ; MODIFIED BY:
4377 ;
4378 ; FUNCTION: THIS ROUTINE DELETES THE FILE SPECIFIED BY THE FILE NAME
4379 ; POINTED TO BY R0.
4380 ;
4381 ; LOCAL MACROS
4382 ;
4383 .MCALL QIOW$
4384 ;
4385 ; LOCAL DATA
4386 ;
4387 000352 .PSECT DATA,D
4388 000352 DDDFNA: QIOW$ IO.FNA,SYFLUN,1,,.SYSTA,,<,,,,,.SYFNB>
000352 003 014 .BYTE 3,$$$ARG
000354 000000G .WORD IO.FNA
000356 000006 .WORD SYFLUN
000360 001 000 .BYTE 1,
000362 000526' .WORD .SYSTA
000364 000000 .WORD
000366 000000 .WORD
000370 000000 .WORD
000372 000000 .WORD
000374 000000 .WORD
000376 000000 .WORD
000400 002620' .WORD .SYFNB
4389 000402 DDDDEL: QIOW$ IO.DEL,SYFLUN,1,,.SYSTA,,<.SYFID>
000402 003 007 .BYTE 3,$$$ARG
000404 000000G .WORD IO.DEL
000406 000006 .WORD SYFLUN
000410 001 000 .BYTE 1,
000412 000526' .WORD .SYSTA
000414 000000 .WORD
000416 002620' .WORD .SYFID
KLIDD -- DELETE A FILE MACRO M1113 03-APR-86 20:55 PAGE 94-1
$CLOSE -- CLOSE FILES AND WRITE ATTRIBUTES
4390 000420 DDDRNA: QIOW$ IO.RNA,SYFLUN,1,,.SYSTA,,<,,,,,.SYFNB>
000420 003 014 .BYTE 3,$$$ARG
000422 000000G .WORD IO.RNA
000424 000006 .WORD SYFLUN
000426 001 000 .BYTE 1,
000430 000526' .WORD .SYSTA
000432 000000 .WORD
000434 000000 .WORD
000436 000000 .WORD
000440 000000 .WORD
000442 000000 .WORD
000444 000000 .WORD
000446 002620' .WORD .SYFNB
4391 007214 .PSECT
KLIDD -- DELETE A FILE MACRO M1113 03-APR-86 20:55 PAGE 95
$CLOSE -- CLOSE FILES AND WRITE ATTRIBUTES
4393 ;+
4394 ; THIS PROGRAM USES THE RSX FILE PRIMITIVES TO DO ITS I/O
4395 ; IN ORDER TO AVOID THE INCLUSION OF THE FILES-11 PACKAGE WHICH IS
4396 ; SOME 2K IN SIZE, AND NOT OVERLAYABLE. THIS HAS A RISK IN THAT
4397 ; THE FILE PRIMITIVES ARE NOT DOCUMENTED, BUT THE INFORMATION IS
4398 ; AVAILABLE TO THOSE WHO WANT TO WADE THROUGH THE LISTINGS. THE
4399 ; FOLLOWING INFORMATION HOPEFULLY WILL BE OF AID TO THE READER
4400 ; OF THIS LISTING.
4401 ;
4402 ; FILES UNDER RSX ARE ACCESSED BY AN INTERNAL 'FILE ID' (FID) WHICH
4403 ; IS ASSOCIATED WITH THE USER'S FILE NAME THROUGH THE DIRECTORY.
4404 ; THUS, UNDER RSX, ACCESSING A FILE NAME IS SEPERATE FROM ACCESSING
4405 ; THE ACTUAL FILE. THE 3 PRIMITIVES IO.FNA, IO.RNA, IO.ENA ARE
4406 ; PROVIDED FOR FINDING, REMOVING, AND ENTERING A FILE NAME. THESE
4407 ; USE THE FILE NAME BLOCK (FNB) ONLY. IN ACCESSING THE DIRECTORY,
4408 ; THE FID OF THE DIRECTORY MUST BE FIRST FOUND WITHIN THE MASTER
4409 ; FILE DIRECTORY, WHICH HAS A FID OF -1,-1.
4410 ;
4411 ; ONCE THE DESIRED FID HAS BEEN FOUND, THE FILE CAN BE ACCESSED
4412 ; FOR THE TYPE OF I/O TO BE DONE: IO.ACR TO READ, IO.ACW TO
4413 ; READ/WRITE, IO.ACE TO READ/WRITE/EXTEND. THE FILE CAN THEN BE
4414 ; WORKED ON THROUGH IO.RVB AND IO.WVB (VIRTUAL BLOCKS START AT 1).
4415 ; WHEN FINISHED, THE USER SHOULD DO AN IO.DAC TO CLOSE THE FILE.
4416 ; THE PRIMITIVES IO.ACR,ACW,ACE USE THE FID AND ACCESS PARAMETERS,
4417 ; WHILE IO.DAC USES THE FID AND MAY SET THE FILE ATTRIBUTES IF
4418 ; ACCESS INCLUDES WRITING.
4419 ;
4420 ; FILES ARE MANIPULATED BY IO.CRE, IO.EXT, IO.DEL WHICH CREATE,
4421 ; EXTEND, OR DELETE A FILE. A DELETE WITH AN EXTEND PARAMETER WILL
4422 ; TRUNCATE A FILE.
4423 ;
4424 ; THE ATTRIBUTES MAY BE ACCESSED ON AN ACCESSED FILE THROUGH
4425 ; IO.RAT TO READ THE ATTRIBUTES AND IO.WAT TO WRITE.
4426 ;
4427 ; CARE MUST BE TAKEN NOT TO LOSE A FILE BY CREATING AND NOT HAVING
4428 ; IT IN SOME DIRECTORY.
4429 ;-
KLIDD -- DELETE A FILE MACRO M1113 03-APR-86 20:55 PAGE 96
$CLOSE -- CLOSE FILES AND WRITE ATTRIBUTES
4431 ;+
4432 ; THE QIO PARAMETER BLOCK IS ORGANIZED AS FOLLOWS:
4433 ;
4434 ; .WORD 0 ;ADDRESS OF FID BLOCK.
4435 ; .WORD 0 ;ADDRESS OF ATTRIBUTE CONTROL LIST.
4436 ; .WORD 0,0 ;EXTEND PARAMETERS.
4437 ; .WORD 0 ;ACCESS PARAMETERS.
4438 ; .WORD 0 ;ADDRESS OF FILE NAME BLOCK.
4439 ;
4440 ; ANY UNUSED UNUSED PARAMETERS ARE TO BE ZERO.
4441 ;
4442 ; THE PARAMETERS THAT MAY BE USED FOR PRIMITIVES ARE:
4443 ;
4444 ; FUNC. FID ACL EXT ACC FNB
4445 ; IO.FNA - - - - M
4446 ; IO.RNA - - - - M
4447 ; IO.ENA - - - - M
4448 ; IO.ACR M OR - M -
4449 ; IO.ACW M OR - M -
4450 ; IO.ACE M OR - M -
4451 ; IO.DAC O OW - - -
4452 ; IO.EXT O - M - -
4453 ; IO.CRE M OW O - -
4454 ; IO.DEL O - OT - -
4455 ; IO.RAT O OR - - -
4456 ; IO.WAT O OW - - -
4457 ;
4458 ; M - MANDATORY O - OPTIONAL '-' - MUST BE ZERO
4459 ; R - READ ATTRIBUTES W - WRITE ATTRIBUTES T - TRUNCATE FILE
4460 ;-
KLIDD -- DELETE A FILE MACRO M1113 03-APR-86 20:55 PAGE 97
$CLOSE -- CLOSE FILES AND WRITE ATTRIBUTES
4462 ;+
4463 ; THE FILE ID BLOCK IS A TWO WORD HOLDING AREA AND IS USUALLY
4464 ; THE FIRST TWO WORDS OF THE FNB, AS THAT IS WHERE THE FID IS
4465 ; RETURNED FROM A DIRECTORY OPERATION.
4466 ;
4467 ; THE FILE ATTRIBUTES ARE ACCESSED IN PIECES THROUGH A CONTROL
4468 ; LIST. ENTRIES IN THIS LIST ARE TWO WORDS LONG AND ARE TERMINATED
4469 ; BY A NULL BYTE:
4470 ; .BYTE 0 ;ATTRIBUTE # - POSITIVE TO WRITE ATTRIBUTE
4471 ; ; NEGATIVE TO READ ATTRIBUTE.
4472 ; .BYTE 0 ;LENGTH IN BYTES TO TRANSFER - IF ZERO
4473 ; ;THEN 1000 BYTES IS IMPLIED. THIS MUST
4474 ; ;BE <=MXLN (THE MAXIMUM LENGTH).
4475 ; .WORD 0 ;ADDRESS OF SENDING/RECIEVING AREA.
4476 ;
4477 ; ATTR# MXLN DESCRIPTION
4478 ; 1 5 OWNERS UIC (MAY INCL 2&3)
4479 ; 2 3 FILE PROTECTION (MAY INCL 3)
4480 ; 3 1 USER CONTROLLED FILE CHARACTERISTICS
4481 ; 4 40 USER FILE ATTRIBUTES
4482 ; 5 12 FILE NAME (MAY INCL 6&7)
4483 ; 6 4 FILE TYPE (MAY INCL 7)
4484 ; 7 2 FILE VERSION
4485 ; 10 7 EXPIRATION DATE
4486 ; 11 12 STATISTICS BLOCK (READ ONLY)
4487 ; 12 0 COMPLETE FILE HEADER (READ ONLY)
4488 ;
4489 ; THE USER FILE ATTRIBUTES ARE DESCRIBED IN THE RSX-11 I/O
4490 ; OPERATIONS MANUAL IN APPENDIX A AS THE FIRST 20 BYTES OF
4491 ; THE FDB. THE STATISTICS BLOCK IS DESCRIBED IN APPENDIX H.
4492 ; THE FULL HEADER BLOCK IS DESCRIBED IN APPENDIX F.
4493 ;
4494 ; THE EXTEND PARAMETER IS A TWO WORD INDICATOR OF THE SIZE OF THE
4495 ; EXTEND:
4496 ; .BYTE 0 ;EXTENSION SIZE HIGH
4497 ; .BYTE 400 ;EXTENSION PARAMETER ENABLE. IF 410
4498 ; ;THEN EXTEND BY SYSTEM DEFAULT.
4499 ; .WORD 0 ;EXTENSION SIZE LOW.
4500 ; THE EXTENSION HIGH & LOW COMBINED PROVIDE A 24 BIT NUMBER OF
4501 ; BLOCKS TO EXTEND THE FILE BY. IF USED IN IO.DEL, ALL 31 BITS
4502 ; EXCLUDING THE ENABLE BIT (SIGN BIT) PARTICIPATE IN A FILE SIZE
4503 ; TO TRUNCATE TO.
4504 ;
4505 ; THE ACCESS PARAMETER SPECIFIES THE FILE WINDOW SIZE:
4506 ; .BYTE 0 ;WINDOW SIZE (NORMALLY ZERO)
4507 ; .BYTE 400 ;ACCESS PARAMETER ENABLE.
4508 ;
4509 ; THE FILE NAME BLOCK IS DESCRIBED IN THE RSX-11 I/O OPERATIONS
4510 ; REFERENCE MANUAL APPENDIX B. THE LAST FOUR BYTES ARE NOT USED.
4511 ;-
KLIDD -- DELETE A FILE MACRO M1113 03-APR-86 20:55 PAGE 98
$DELETE -- DELETE A FILE
4513 .SBTTL $DELETE -- DELETE A FILE
4514 ;+
4515 ; DELETE THE GIVEN FILE FROM THE SYSTEM DEVICE
4516 ;
4517 ; INPUTS:
4518 ; R0 - POINTER TO FILE NAME.
4519 ;
4520 ; OUTPUTS:
4521 ; CARRY IS SET IF DELETE FAILED AND MESSAGE IS TYPED.
4522 ; R0 IS DESTROYED IF ERROR OCCURS.
4523 ;-
4524
4525 007214 $DELETE::CALL $SETFN ; GET FILE NAME.
007214 004737 007304' JSR PC,$SETFN
4526 007220 DIR$ #DDDFNA ; FIND FILE IN DIRECTORY
007220 012746 000352' MOV #DDDFNA,-(SP)
007224 104375 EMT 375
4527 007226 103424 BCS 10$
4528 007230 105737 000526' TSTB .SYSTA
4529 007234 002421 BLT 10$
4530 007236 DIR$ #DDDDEL ; MARK IT FOR DELETION
007236 012746 000402' MOV #DDDDEL,-(SP)
007242 104375 EMT 375
4531 007244 103415 BCS 10$
4532 007246 105737 000526' TSTB .SYSTA
4533 007252 002412 BLT 10$
4534 007254 CALL $SETFN ; RESET FNB AND
007254 004737 007304' JSR PC,$SETFN
4535 007260 DIR$ #DDDRNA ; REMOVE NAME FROM DIRECTORY.
007260 012746 000420' MOV #DDDRNA,-(SP)
007264 104375 EMT 375
4536 007266 103404 BCS 10$
4537 007270 105737 000526' TSTB .SYSTA
4538 007274 002401 BLT 10$
4539 007276 RETURN
007276 000207 RTS PC
4540
4541 007300 10$: CALLR $IOERR ; DELETE FAILED.
007300 000137 007346' JMP $IOERR
KLIDD -- DELETE A FILE MACRO M1113 03-APR-86 20:55 PAGE 99
$SETFN -- SET FILE NAME IN FILE NAME BLOCK
4543 .SBTTL $SETFN -- SET FILE NAME IN FILE NAME BLOCK
4544 ;+
4545 ; PUT FILE NAME IN FILE NAME BLOCK AND SET UP
4546 ; DPB TO FIND THE FILE. THE FILENAME IS POINTED TO BY R0.
4547 ;
4548 ; INPUTS:
4549 ; R0 - ADDRESS OF FILE NAME TO USE:
4550 ; .RAD50 /FILENAME / ;(THREE WORDS)
4551 ; .RAD50 /TYP/ ;(ONE WORD)
4552 ; .WORD VERSION
4553 ; .WORD UIC
4554 ; .ASCII /DEVICE/ ;(ONE WORD)
4555 ; .WORD UNIT
4556 ;
4557 ; OUTPUTS:
4558 ; .SYFNB - IS SET UP FOR USE WITH THE GIVEN FILE NAME.
4559 ;-
4560
4561 007304 $SETFN::PUSH <R1,R0>
007304 010146 MOV R1,-(SP)
007306 010046 MOV R0,-(SP)
4562 007310 012701 002620' MOV #.SYFNB,R1 ; GET FNB ADDRESS
4563 007314 005021 CLR (R1)+ ; AND CLEAR FID
4564 007316 005021 CLR (R1)+
4565 007320 005021 CLR (R1)+
4566 007322 012021 MOV (R0)+,(R1)+ ; MOVE IN FILENAME
4567 007324 012021 MOV (R0)+,(R1)+
4568 007326 012021 MOV (R0)+,(R1)+
4569 007330 012021 MOV (R0)+,(R1)+ ; FILE TYPE
4570 007332 011021 MOV (R0),(R1)+ ; VERSION
4571 007334 005021 CLR (R1)+ ; STATUS AND
4572 007336 005011 CLR (R1) ; NEXT POINTER.
4573 007340 POP <R0,R1>
007340 012600 MOV (SP)+,R0
007342 012601 MOV (SP)+,R1
4574 007344 RETURN
007344 000207 RTS PC
KLIDD -- DELETE A FILE MACRO M1113 03-APR-86 20:55 PAGE 100
$SETFN -- SET FILE NAME IN FILE NAME BLOCK
4576
4577 .TITLE KLIDE -- PRINT I/O ERROR MESSAGE
4578 007346 IDENT$ 5,1 ; ADP01
.IDENT /005010/
4579 ;
4580 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
4581 ; ALL RIGHTS RESERVED.
4582 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
4583 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
4584 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
4585 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
4586 ;
4587 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
4588 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
4589 ; EQUIPMENT CORPORATION.
4590 ;
4591 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
4592 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
4593 ;
4594 ; VERSION 05-01 ; ADP01
4595 ;
4596 ; ALAN D. PECKHAM 15-APR-77
4597 ;
4598 ; MODIFIED BY:
4599 ;
4600 ; FUNCTION: THIS ROUTINE IS CALLED TO PRINT OUT THE ERROR CODE
4601 ; IN CASE OF I/O ERROR. IT ALSO PRINTS THE DEVICE AND
4602 ; FILE NAME ASSOCIATED TO THE ERROR.
4603 ;
4604 ; LOCAL DATA
4605 ;
4606 001722 .PSECT TEXT,D
4607 001722 TDEDR: ERROR <DIRECTIVE ERROR -XXX ON FILE 'XXX:XXXXXXXXX.XXX;XXXXXX'> ; ADP01
001722 077 040 104 .ASCIZ \? DIRECTIVE ERROR -XXX ON FILE 'XXX:XXXXXXXXX.XXX;XXXXXX'\
001725 111 122 105
001730 103 124 111
001733 126 105 040
001736 105 122 122
001741 117 122 040
001744 055 130 130
001747 130 040 117
001752 116 040 106
001755 111 114 105
001760 040 047 130
001763 130 130 072
001766 130 130 130
001771 130 130 130
001774 130 130 130
001777 056 130 130
002002 130 073 130
002005 130 130 130
002010 130 130 047
002013 000
4608 002014 TDEIO: ERROR <I/O ERROR -XXX ON FILE 'XXX:XXXXXXXXX.XXX;XXXXXX'> ; ADP01
002014 077 040 111 .ASCIZ \? I/O ERROR -XXX ON FILE 'XXX:XXXXXXXXX.XXX;XXXXXX'\
002017 057 117 040
002022 105 122 122
KLIDE -- PRINT I/O ERROR MESSAG MACRO M1113 03-APR-86 20:55 PAGE 100-1
$SETFN -- SET FILE NAME IN FILE NAME BLOCK
002025 117 122 040
002030 055 130 130
002033 130 040 117
002036 116 040 106
002041 111 114 105
002044 040 047 130
002047 130 130 072
002052 130 130 130
002055 130 130 130
002060 130 130 130
002063 056 130 130
002066 130 073 130
002071 130 130 130
002074 130 130 047
002077 000
4609 002100 TDENSF: ERROR <FILE 'XXX:XXXXXXXXX.XXX;XXXXXX' NOT FOUND> ; ADP01
002100 077 040 106 .ASCIZ \? FILE 'XXX:XXXXXXXXX.XXX;XXXXXX' NOT FOUND\
002103 111 114 105
002106 040 047 130
002111 130 130 072
002114 130 130 130
002117 130 130 130
002122 130 130 130
002125 056 130 130
002130 130 073 130
002133 130 130 130
002136 130 130 047
002141 040 116 117
002144 124 040 106
002147 117 125 116
002152 104 000
4610 002154 TDEDFU: ERROR <DEVICE 'XXX:' FULL>
002154 077 040 104 .ASCIZ \? DEVICE 'XXX:' FULL\
002157 105 126 111
002162 103 105 040
002165 047 130 130
002170 130 072 047
002173 040 106 125
002176 114 114 000
4611 007346 .PSECT
KLIDE -- PRINT I/O ERROR MESSAG MACRO M1113 03-APR-86 20:55 PAGE 101
$IOERR -- REPORT I/O ERROR
4613 .SBTTL $IOERR -- REPORT I/O ERROR
4614 ;+
4615 ; DISPLAY AN ERROR MESSAGE ACCORDING TO THE CODES FROM THE LAST
4616 ; I/O OPERATION AND RETURN WITH THE CARRY SET.
4617 ;
4618 ; INPUTS:
4619 ; $DSW - DIRECTIVE ERROR CODE OR SUCCESS CODE.
4620 ; .SYSTA - I/O OPERATION ERROR CODE.
4621 ;
4622 ; OUTPUT:
4623 ; THE CARRY IS SET.
4624 ;-
4625
4626 007346 004537 024204' $IOERR::JSR R5,$RSAVE
4627 007352 010002 MOV R0,R2 ; SAVE FILE NAME.
4628 007354 012701 001722' MOV #TDEDR,R1 ; DIRECTIVE ERROR
4629 007360 010105 MOV R1,R5
4630 007362 113700 000000G MOVB $DSW,R0
4631 007366 100421 BMI 10$ ; OR
4632 007370 113700 000526' MOVB .SYSTA,R0
4633 007374 012701 002100' MOV #TDENSF,R1 ; FILE NOT FOUND
4634 007400 010105 MOV R1,R5
4635 007402 122700 000000G CMPB #IE.NSF,R0
4636 007406 001425 BEQ 30$ ; OR
4637 007410 012701 002154' MOV #TDEDFU,R1 ; DEVICE FULL
4638 007414 010105 MOV R1,R5
4639 007416 122700 000000G CMPB #IE.DFU,R0
4640 007422 001433 BEQ 50$ ; OR
4641 007424 012701 002014' MOV #TDEIO,R1 ; OPERATION ERROR.
4642 007430 010105 MOV R1,R5
4643 007432 122725 000055 10$: CMPB #'-,(R5)+ ; FIND POSITION FOR
4644 007436 001375 BNE 10$ ; ERROR CODE
4645 007440 005400 NEG R0 ; AND
4646 007442 CALL $TRB2O ; INSERT IN OCTAL.
007442 004737 026500' JSR PC,$TRB2O
4647 007446 122715 000040 20$: CMPB #' ,(R5) ; ZAP REST OF FIELD.
4648 007452 001403 BEQ 30$
4649 007454 112725 177777 MOVB #-1,(R5)+
4650 007460 000772 BR 20$
4651 007462 122725 000047 30$: CMPB #'',(R5)+ ; NOW FIND
4652 007466 001375 BNE 30$ ; FILENAME POSITION,
4653 007470 010200 MOV R2,R0 ; GET FILENAME BLOCK, ; ADP01
4654 007472 CALL $TRB2F ; AND INSERT FILE NAME. ; ADP01
007472 004737 025044' JSR PC,$TRB2F
4655 007476 122725 000047 40$: CMPB #'',(R5)+ ; ZAP REST OF FIELD.
4656 007502 001410 BEQ 80$
4657 007504 111765 177777 MOVB (PC),-1(R5)
4658 007510 000772 BR 40$
4659 007512 122725 000047 50$: CMPB #'',(R5)+
4660 007516 001375 BNE 50$
4661 007520 CALL LDEIDV
007520 004737 007536' JSR PC,LDEIDV
4662 007524 80$: PRINT R1 ; DISPLAY MESSAGE
007524 010100 MOV R1,R0
007526 004737 027634' JSR PC,$TTMSG
4663 007532 000261 SEC ; AND RETURN WITH SHAME.
4664 007534 RETURN
KLIDE -- PRINT I/O ERROR MESSAG MACRO M1113 03-APR-86 20:55 PAGE 101-1
$IOERR -- REPORT I/O ERROR
007534 000207 RTS PC
KLIDE -- PRINT I/O ERROR MESSAG MACRO M1113 03-APR-86 20:55 PAGE 102
$IOERR -- REPORT I/O ERROR
4666 ;+
4667 ; INSERT DEVICE NAME AT AREA POINTED TO BY R5.
4668 ;
4669 ; INPUTS:
4670 ; R5 - POINTER TO BYTES TO RECIEVE STRING.
4671 ; R2 - POINTER TO FILE NAME.
4672 ;
4673 ; OUTPUTS:
4674 ; A 3 CHARACTER STRING IS INSERTED AND R5 IS ADVANCED BY 4 TO
4675 ; PASS BY THE ":".
4676 ;-
4677
4678 007536 116225 000014 LDEIDV: MOVB 14(R2),(R5)+ ; INSERT DEVICE NAME
4679 007542 116225 000015 MOVB 15(R2),(R5)+
4680 007546 116215 000016 MOVB 16(R2),(R5) ; DEVICE UNIT
4681 007552 152725 000060 BISB #'0,(R5)+
4682 007556 005205 INC R5
4683 007560 RETURN
007560 000207 RTS PC
KLIDE -- PRINT I/O ERROR MESSAG MACRO M1113 03-APR-86 20:55 PAGE 103
$IOERR -- REPORT I/O ERROR
4685
4686
4687 .TITLE KLIDL -- LOOKUP AN EXISTING FILE FOR INPUT
4688 007562 IDENT$ 5,0
.IDENT /005000/
4689 ;
4690 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
4691 ; ALL RIGHTS RESERVED.
4692 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
4693 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
4694 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
4695 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
4696 ;
4697 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
4698 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
4699 ; EQUIPMENT CORPORATION.
4700 ;
4701 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
4702 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
4703 ;
4704 ; VERSION 05-00
4705 ;
4706 ; ALAN D. PECKHAM 15-APR-77
4707 ;
4708 ; MODIFIED BY:
4709 ;
4710 ; FUNCTION: THIS ROUTINE FINDS THE FILE WITH THE NAME POINTED TO BY R0
4711 ; AND ACCESSES IT FOR READ.
4712 ;
4713 ; LOCAL MACROS
4714 ;
4715 .MCALL GLUN$,QIOW$
4716 ;
4717 ; LOCAL DATA
4718 ;
4719 000450 .PSECT DATA,D
4720 000450 DDLGLN: GLUN$ SYILUN,.SYIBF
000450 005 003 .BYTE 5,3
000452 000004 .WORD SYILUN
000454 000566' .WORD .SYIBF
4721 000456 DDLFNA: QIOW$ IO.FNA,SYFLUN,1,,.SYSTA,,<,,,,,.SYFNB>
000456 003 014 .BYTE 3,$$$ARG
000460 000000G .WORD IO.FNA
000462 000006 .WORD SYFLUN
000464 001 000 .BYTE 1,
000466 000526' .WORD .SYSTA
000470 000000 .WORD
000472 000000 .WORD
000474 000000 .WORD
000476 000000 .WORD
000500 000000 .WORD
000502 000000 .WORD
000504 002620' .WORD .SYFNB
4722 000506 DDLACR: QIOW$ IO.ACR,SYILUN,1,,.SYSTA,,<.SYFID,DDLRAT,,,BIT15>
000506 003 013 .BYTE 3,$$$ARG
000510 000000G .WORD IO.ACR
000512 000004 .WORD SYILUN
KLIDL -- LOOKUP AN EXISTING FIL MACRO M1113 03-APR-86 20:55 PAGE 103-1
$IOERR -- REPORT I/O ERROR
000514 001 000 .BYTE 1,
000516 000526' .WORD .SYSTA
000520 000000 .WORD
000522 002620' .WORD .SYFID
000524 000564' .WORD DDLRAT
000526 000000 .WORD
000530 000000 .WORD
000532 100000 .WORD BIT15
4723 000534 DDLRNA: QIOW$ IO.RNA,SYFLUN,1,,,,<,,,,,.SYFNB>
000534 003 014 .BYTE 3,$$$ARG
000536 000000G .WORD IO.RNA
000540 000006 .WORD SYFLUN
000542 001 000 .BYTE 1,
000544 000000 .WORD
000546 000000 .WORD
000550 000000 .WORD
000552 000000 .WORD
000554 000000 .WORD
000556 000000 .WORD
000560 000000 .WORD
000562 002620' .WORD .SYFNB
4724 000564 373 012 DDLRAT: .BYTE -5,12 ; READ FILE NAME
4725 000566 000542' .WORD .SYIFN+00
4726 000570 377 002 .BYTE -1,2 ; READ OWNER'S UIC
4727 000572 000554' .WORD .SYIFN+12
4728 000574 000 000 .BYTE 0,0 ; END OF CONTROL LIST.
4729 007562 .PSECT
KLIDL -- LOOKUP AN EXISTING FIL MACRO M1113 03-APR-86 20:55 PAGE 104
$LOOKUP -- LOOK UP AN EXISTING FILE
4731 .SBTTL $LOOKUP -- LOOK UP AN EXISTING FILE
4732 ;+
4733 ; FIND AN EXISTING FILE ON THE SYSTEM DEVICE AND OPEN IT FOR INPUT.
4734 ; IF THE FILE NAME IS IN THE DIRECTORY BUT THERE IS NO FILE, THE FILE
4735 ; NAME IS DELETED.
4736 ;
4737 ; INPUTS:
4738 ; R0 - POINTER TO FILE NAME.
4739 ;
4740 ; OUTPUTS:
4741 ; CARRY IS SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
4742 ;-
4743
4744 007562 $LOOKUP::CALL $SETFN ; TRANSFER FILE NAME AND
007562 004737 007304' JSR PC,$SETFN
4745 007566 DIR$ #DDLGLN ; GET DEVICE NAME
007566 012746 000450' MOV #DDLGLN,-(SP)
007572 104375 EMT 375
4746 007574 103455 BCS 30$ ; AND
4747 007576 013737 000566' 000556' MOV .SYIBF+0,.SYIFN+14 ; PUT IN OUR
4748 007604 113737 000570' 000560' MOVB .SYIBF+2,.SYIFN+16 ; FILENAME BLOCK.
4749 007612 DIR$ #DDLFNA ; FIND FILE IN DIRECTORY.
007612 012746 000456' MOV #DDLFNA,-(SP)
007616 104375 EMT 375
4750 007620 103443 BCS 30$
4751 007622 105737 000526' TSTB .SYSTA
4752 007626 002432 BLT 20$
4753 007630 DIR$ #DDLACR ; ACCESS FILE TO READ.
007630 012746 000506' MOV #DDLACR,-(SP)
007634 104375 EMT 375
4754 007636 103434 BCS 30$
4755 007640 105737 000526' TSTB .SYSTA
4756 007644 002412 BLT 10$ ; FILE CAN'T BE READ
4757 007646 105237 000532' INCB .SYISW ; INPUT FILE IS NOW OPEN.
4758 007652 005037 000564' CLR .SYIVB+2 ; NO BLOCK OR
4759 007656 005037 000562' CLR .SYIVB
4760 007662 005037 000534' CLR .SYIRC ; RECORD READ YET.
4761 007666 CALLR $READ ; READ FIRST BLOCK.
007666 000137 010474' JMP $READ
4762 007672 122737 000000G 000526' 10$: CMPB #IE.NSF,.SYSTA ; IF FILENAME EXISTS BUT
4763 007700 001013 BNE 30$ ; FILE DOESN'T, THEN
4764 007702 CALL $SETFN ; RESET FILE NAME BLOCK AND
007702 004737 007304' JSR PC,$SETFN
4765 007706 DIR$ #DDLRNA ; DELETE FILE NAME FROM DIRECTORY.
007706 012746 000534' MOV #DDLRNA,-(SP)
007712 104375 EMT 375
4766 007714 122737 000000G 000526' 20$: CMPB #IE.NSF,.SYSTA ; IF FILE NOT FOUND,
4767 007722 001002 BNE 30$ ; LEAVE ERROR REPORT
4768 007724 000261 SEC ; TO CALLER.
4769 007726 RETURN
007726 000207 RTS PC
4770
4771 007730 30$: CALLR $IOERR ; LOOKUP FAILED.
007730 000137 007346' JMP $IOERR
KLIDL -- LOOKUP AN EXISTING FIL MACRO M1113 03-APR-86 20:55 PAGE 105
$LOOKUP -- LOOK UP AN EXISTING FILE
4773
4774
4775 .TITLE KLIDN -- ENTER A FILE FOR OUTPUT
4776 007734 IDENT$ 5,0
.IDENT /005000/
4777 ;
4778 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
4779 ; ALL RIGHTS RESERVED.
4780 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
4781 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
4782 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
4783 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
4784 ;
4785 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
4786 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
4787 ; EQUIPMENT CORPORATION.
4788 ;
4789 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
4790 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
4791 ;
4792 ; VERSION 05-00
4793 ;
4794 ; ALAN D. PECKHAM 15-APR-77
4795 ;
4796 ; MODIFIED BY:
4797 ;
4798 ; FUNCTION: THIS ROUTINE CREATES A FILE AND ACCESSES IT FOR EXTENDING.
4799 ; THE FILE IS ALLOCATED 1 BLOCK INITIALLY.
4800 ;
4801 ; LOCAL MACROS
4802 ;
4803 .MCALL GLUN$,QIOW$
4804 ;
4805 ; LOCAL DATA
4806 ;
4807 000576 .PSECT DATA,D
4808 000576 DDNGLN: GLUN$ SYOLUN,.SYOBF
000576 005 003 .BYTE 5,3
000600 000005 .WORD SYOLUN
000602 001620' .WORD .SYOBF
4809 000604 DDNCRE: QIOW$ IO.CRE,SYFLUN,1,,.SYSTA,,<.SYFID,,BIT15,1>
000604 003 012 .BYTE 3,$$$ARG
000606 000000G .WORD IO.CRE
000610 000006 .WORD SYFLUN
000612 001 000 .BYTE 1,
000614 000526' .WORD .SYSTA
000616 000000 .WORD
000620 002620' .WORD .SYFID
000622 000000 .WORD
000624 100000 .WORD BIT15
000626 000001 .WORD 1
4810 000630 DDNENA: QIOW$ IO.ENA,SYFLUN,1,,.SYSTA,,<,,,,,.SYFNB>
000630 003 014 .BYTE 3,$$$ARG
000632 000000G .WORD IO.ENA
000634 000006 .WORD SYFLUN
000636 001 000 .BYTE 1,
000640 000526' .WORD .SYSTA
KLIDN -- ENTER A FILE FOR OUTPU MACRO M1113 03-APR-86 20:55 PAGE 105-1
$LOOKUP -- LOOK UP AN EXISTING FILE
000642 000000 .WORD
000644 000000 .WORD
000646 000000 .WORD
000650 000000 .WORD
000652 000000 .WORD
000654 000000 .WORD
000656 002620' .WORD .SYFNB
4811 000660 DDNACE: QIOW$ IO.ACE,SYOLUN,1,,.SYSTA,,<.SYFID,DDNRAT,,,BIT15>
000660 003 013 .BYTE 3,$$$ARG
000662 000000G .WORD IO.ACE
000664 000005 .WORD SYOLUN
000666 001 000 .BYTE 1,
000670 000526' .WORD .SYSTA
000672 000000 .WORD
000674 002620' .WORD .SYFID
000676 000722' .WORD DDNRAT
000700 000000 .WORD
000702 000000 .WORD
000704 100000 .WORD BIT15
4812 000706 DDNDEL: QIOW$ IO.DEL,SYOLUN,1
000706 003 006 .BYTE 3,$$$ARG
000710 000000G .WORD IO.DEL
000712 000005 .WORD SYOLUN
000714 001 000 .BYTE 1,
000716 000000 .WORD
000720 000000 .WORD
4813 000722 373 012 DDNRAT: .BYTE -5,12 ; READ FILE NAME
4814 000724 001574' .WORD .SYOFN+00
4815 000726 377 002 .BYTE -1,2 ; AND OWNER'S UIC
4816 000730 001606' .WORD .SYOFN+12
4817 000732 000 000 .BYTE 0,0 ; END OF CONTROL LIST.
4818 007734 .PSECT
KLIDN -- ENTER A FILE FOR OUTPU MACRO M1113 03-APR-86 20:55 PAGE 106
$ENTER -- ENTER A NEW FILE
4820 .SBTTL $ENTER -- ENTER A NEW FILE
4821 ;+
4822 ; ENTER A NEW FILE ONTO THE SYSTEM DEVICE AND OPEN IT FOR OUTPUT.
4823 ;
4824 ; INPUTS:
4825 ; R0 - POINTER TO FILE NAME.
4826 ;
4827 ; OUTPUTS:
4828 ; CARRY IS SET IF FILE WAS NOT CREATED AND MESSAGE IS DISPLAYED.
4829 ; R0 IS DESTROYED IF ERROR OCCURS.
4830 ;-
4831
4832 007734 $ENTER::CALL $SETFN ; TRANSFER FILE NAME.
007734 004737 007304' JSR PC,$SETFN
4833 007740 DIR$ #DDNGLN ; GET DEVICE NAME
007740 012746 000576' MOV #DDNGLN,-(SP)
007744 104375 EMT 375
4834 007746 103464 BCS 20$ ; AND
4835 007750 013737 001620' 001610' MOV .SYOBF+0,.SYOFN+14 ; INSERT IT INTO
4836 007756 113737 001622' 001612' MOVB .SYOBF+2,.SYOFN+16 ; OUR OWN FILENAME BLOCK.
4837 007764 DIR$ #DDNCRE ; CREATE NEW FILE AND ALLOCATE ONE BLOCK.
007764 012746 000604' MOV #DDNCRE,-(SP)
007770 104375 EMT 375
4838 007772 103452 BCS 20$ ; IF SUCCESSFUL
4839 007774 105737 000526' TSTB .SYSTA
4840 010000 002447 BLT 20$
4841 010002 DIR$ #DDNENA ; ENTER NAME IN DIRECTORY.
010002 012746 000630' MOV #DDNENA,-(SP)
010006 104375 EMT 375
4842 010010 103434 BCS 10$ ; IF DIRECTORY OPERATION FAILED
4843 010012 105737 000526' TSTB .SYSTA ; WE MUST
4844 010016 002431 BLT 10$ ; RELEASE THE FILE.
4845 010020 DIR$ #DDNACE ; ACCESS THE FILE FOR EXTEND.
010020 012746 000660' MOV #DDNACE,-(SP)
010024 104375 EMT 375
4846 010026 103434 BCS 20$
4847 010030 105737 000526' TSTB .SYSTA
4848 010034 002431 BLT 20$
4849 010036 105237 000533' INCB .SYOSW ; OUTPUT FILE IS NOW OPEN.
4850 010042 012737 000001 001616' MOV #1,.SYOVB+2 ; WORKING ON FIRST BLOCK.
4851 010050 005037 001614' CLR .SYOVB
4852 010054 012737 001620' 001570' MOV #.SYOBF,.SYOBA ; INITIALIZE BLOCK
4853 010062 012737 001000 001572' MOV #S.YOL,.SYOBC
4854 010070 005037 001566' CLR .SYORC ; AND RECORD COUNTS,
4855 010074 005037 002654' CLR .SYATT+2 ; PLUS LARGEST RECORD SIZE.
4856 010100 RETURN
010100 000207 RTS PC
4857
4858 010102 10$: PUSH $DSW
010102 013746 000000G MOV $DSW,-(SP)
4859 010106 DIR$ #DDNDEL ; DELETE FILE (NOT IN DIRECTORY).
010106 012746 000706' MOV #DDNDEL,-(SP)
010112 104375 EMT 375
4860 010114 POP $DSW
010114 012637 000000G MOV (SP)+,$DSW
4861 010120 20$: CALLR $IOERR ; ENTER FAILED.
010120 000137 007346' JMP $IOERR
KLIDN -- ENTER A FILE FOR OUTPU MACRO M1113 03-APR-86 20:55 PAGE 107
$ENTER -- ENTER A NEW FILE
4863
4864
4865 .TITLE KLIDP -- FILE PURGE ROUTINE
4866 010124 IDENT$ 5,0
.IDENT /005000/
4867 ;
4868 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
4869 ; ALL RIGHTS RESERVED.
4870 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
4871 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
4872 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
4873 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
4874 ;
4875 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
4876 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
4877 ; EQUIPMENT CORPORATION.
4878 ;
4879 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
4880 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
4881 ;
4882 ; VERSION 05-00
4883 ;
4884 ; ALAN D. PECKHAM 15-APR-77
4885 ;
4886 ; MODIFIED BY:
4887 ;
4888 ; FUNCTION: THIS ROUTINE PURGES THE FILE CURRENTLY OPEN. THE
4889 ; OUTPUT FILE IS MARKED FOR DELETION AND ITS FILE NAME
4890 ; IS REMOVED FROM THE DIRECTORY.
4891 ;
4892 ; LOCAL MACROS
4893 ;
4894 .MCALL QIOW$
4895 ;
4896 ; LOCAL DATA
4897 ;
4898 000734 .PSECT DATA,D
4899 000734 DDPDAI: QIOW$ IO.DAC,SYILUN,1 ; DE-ACCESS INPUT FILE.
000734 003 006 .BYTE 3,$$$ARG
000736 000000G .WORD IO.DAC
000740 000004 .WORD SYILUN
000742 001 000 .BYTE 1,
000744 000000 .WORD
000746 000000 .WORD
4900 000750 DDPDEL: QIOW$ IO.DEL,SYOLUN,1 ; MARK OUTPUT FILE FOR DELETE.
000750 003 006 .BYTE 3,$$$ARG
000752 000000G .WORD IO.DEL
000754 000005 .WORD SYOLUN
000756 001 000 .BYTE 1,
000760 000000 .WORD
000762 000000 .WORD
4901 000764 DDPDAO: QIOW$ IO.DAC,SYOLUN,1 ; DE-ACCESS OUTPUT FILE.
000764 003 006 .BYTE 3,$$$ARG
000766 000000G .WORD IO.DAC
000770 000005 .WORD SYOLUN
000772 001 000 .BYTE 1,
000774 000000 .WORD
KLIDP -- FILE PURGE ROUTINE MACRO M1113 03-APR-86 20:55 PAGE 107-1
$ENTER -- ENTER A NEW FILE
000776 000000 .WORD
4902 001000 DDPRNA: QIOW$ IO.RNA,SYFLUN,1,,,,<,,,,,.SYFNB>
001000 003 014 .BYTE 3,$$$ARG
001002 000000G .WORD IO.RNA
001004 000006 .WORD SYFLUN
001006 001 000 .BYTE 1,
001010 000000 .WORD
001012 000000 .WORD
001014 000000 .WORD
001016 000000 .WORD
001020 000000 .WORD
001022 000000 .WORD
001024 000000 .WORD
001026 002620' .WORD .SYFNB
4903 ; REMOVE OUTPUT FILENAME FROM DIRECTORY.
4904 010124 .PSECT
KLIDP -- FILE PURGE ROUTINE MACRO M1113 03-APR-86 20:55 PAGE 108
$PURGE -- PURGE FILES CURRENTLY OPEN
4906 .SBTTL $PURGE -- PURGE FILES CURRENTLY OPEN
4907 ;+
4908 ; CLOSE THE INPUT FILE AND DELETE THE CURRENT OUTPUT FILE.
4909 ; ALL ERRORS ARE IGNORED AND THE LUNS ARE ASSUMED FREED.
4910 ;
4911 ; NO INPUTS OR OUTPUTS
4912 ;-
4913
4914 010124 105737 000532' $PURGE::TSTB .SYISW ; IF INPUT FILE NOT OPEN
4915 010130 001405 BEQ 10$ ; LEAVE IT ALONE.
4916 010132 DIR$ #DDPDAI ; DE-ACCESS THE INPUT FILE.
010132 012746 000734' MOV #DDPDAI,-(SP)
010136 104375 EMT 375
4917 010140 105037 000532' CLRB .SYISW ; INPUT FILE NOW CLOSED.
4918 010144 105737 000533' 10$: TSTB .SYOSW ; IF OUTPUT FILE NO OPEN
4919 010150 001421 BEQ 20$ ; LEAVE IT ALONE.
4920 010152 DIR$ #DDPDEL ; MARK FOR DELETION AND
010152 012746 000750' MOV #DDPDEL,-(SP)
010156 104375 EMT 375
4921 010160 DIR$ #DDPDAO ; DE-ACCESS THE OUTPUT FILE.
010160 012746 000764' MOV #DDPDAO,-(SP)
010164 104375 EMT 375
4922 010166 PUSH R0
010166 010046 MOV R0,-(SP)
4923 010170 012700 001574' MOV #.SYOFN,R0 ; GET THE FILE NAME
4924 010174 CALL $SETFN ; AND
010174 004737 007304' JSR PC,$SETFN
4925 010200 POP R0
010200 012600 MOV (SP)+,R0
4926 010202 DIR$ #DDPRNA ; REMOVE FROM THE DIRECTORY.
010202 012746 001000' MOV #DDPRNA,-(SP)
010206 104375 EMT 375
4927 010210 105037 000533' CLRB .SYOSW ; OUTPUT FILE NOW CLOSED.
4928 010214 20$: RETURN
010214 000207 RTS PC
KLIDP -- FILE PURGE ROUTINE MACRO M1113 03-APR-86 20:55 PAGE 109
$PURGE -- PURGE FILES CURRENTLY OPEN
4930
4931 .TITLE KLIDR -- RECORD READ ROUTINES
4932 010216 IDENT$ 5,0
.IDENT /005000/
4933 ;
4934 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
4935 ; ALL RIGHTS RESERVED.
4936 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
4937 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
4938 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
4939 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
4940 ;
4941 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
4942 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
4943 ; EQUIPMENT CORPORATION.
4944 ;
4945 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
4946 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
4947 ;
4948 ; VERSION 05-00
4949 ;
4950 ; ALAN D. PECKHAM 15-APR-77
4951 ;
4952 ; MODIFIED BY:
4953 ;
4954 ; FUNCTION: THIS MODULE CONTAINS ROUTINES WHICH FACILITATE THE
4955 ; READING OF RSX-BINARY RECORDS FROM THE CURRENTLY
4956 ; OPEN FILE.
4957 ;
4958 ; LOCAL MACROS
4959 ;
4960 .MCALL QIOW$S
4961 ;
4962 ; LOCAL DATA
4963 ;
4964 002201 .PSECT TEXT,D
4965 002201 TDRRDE:
4966 002201 ERROR <READ ERROR>
002201 077 040 122 .ASCIZ \? READ ERROR\
002204 105 101 104
002207 040 105 122
002212 122 117 122
002215 000
4967 002216 TDRRLE:
4968 002216 ERROR <INPUT RECORD LENGTH ERROR>
002216 077 040 111 .ASCIZ \? INPUT RECORD LENGTH ERROR\
002221 116 120 125
002224 124 040 122
002227 105 103 117
002232 122 104 040
002235 114 105 116
002240 107 124 110
002243 040 105 122
002246 122 117 122
002251 000
4969 010216 .PSECT
KLIDR -- RECORD READ ROUTINES MACRO M1113 03-APR-86 20:55 PAGE 110
$READC -- START READING A RECORD
4971 .SBTTL $READC -- START READING A RECORD
4972 ;+
4973 ; READ THE RECORD TYPE FOR THE NEXT RECORD. IF THE PREVIOUS RECORD
4974 ; HAS NOT BEEN TOTALLY READ IN, SIGNAL ERROR. SAVE THE BYTE COUNT
4975 ; TO KEEP TRACK OF HOW MANY BYTES OF THE RECORD HAVE BEEN READ.
4976 ;
4977 ; NO INPUTS:
4978 ;
4979 ; OUTPUTS:
4980 ; R0 - TYPE CODE OF NEW RECORD.
4981 ; .SYIRC - COUNT OF BYTES REMAINING IN RECORD.
4982 ; CARRY IS SET IF LENGTH OR READ ERROR AND MESSAGE IS DISPLAYED.
4983 ;-
4984
4985 010216 $READC::
4986 010216 005737 000534' TST .SYIRC ; IF LAST RECORD IS NOT FINISHED,
4987 010222 001116 BNE LDRER ; THEN ERROR.
4988 010224 10$:
4989 010224 012737 000003 000534' MOV #3,.SYIRC ; SET UP DUMMY COUNT AND
4990 010232 CALL $READW ; READ IN BYTE COUNT FOR NEXT RECORD.
010232 004737 010324' JSR PC,$READW
4991 010236 103405 BCS 20$
4992 010240 010037 000534' MOV R0,.SYIRC ; STORE BYTE COUNT AND
4993 010244 001767 BEQ 10$ ; (NULL RECORD)
4994 010246 CALLR $READW ; READ IN NEXT WORD.
010246 000137 010324' JMP $READW
4995 ;
4996 010252 20$:
4997 010252 RETURN
010252 000207 RTS PC
KLIDR -- RECORD READ ROUTINES MACRO M1113 03-APR-86 20:55 PAGE 111
$READS -- SKIP THE CURRENT RECORD
4999 .SBTTL $READS -- SKIP THE CURRENT RECORD
5000 ;+
5001 ; SKIP OVER THE REST OF THE CURRENT AND POSITION TO THE NEXT RECORD.
5002 ; IF NO RECORD IS BEING PROCESSED (RECORD COUNT=0), NO ACTION IS TAKEN.
5003 ;
5004 ; NO INPUTS
5005 ;
5006 ; OUTPUTS:
5007 ; CARRY IS SET IF ERROR DURING READ AND MESSAGE IS DISPLAYED.
5008 ;-
5009
5010 010254 $READS::
5011 010254 023737 000534' 000540' CMP .SYIRC,.SYIBC ; IF RECORD IS WITHIN BLOCK
5012 010262 003407 BLE 10$ ; THEN GO PAST IT,
5013 010264 163737 000540' 000534' SUB .SYIBC,.SYIRC ; OTHERWISE PASS PART OF THE RECORD,
5014 010272 CALL $READ ; GET NEXT BLOCK,
010272 004737 010474' JSR PC,$READ
5015 010276 103366 BCC $READS ; AND SEE IF RECORD IS DEPLETED.
5016 010300 RETURN
010300 000207 RTS PC
5017 010302 10$:
5018 010302 063737 000534' 000536' ADD .SYIRC,.SYIBA ; PUSH POINTERS PAST RECORD.
5019 010310 163737 000534' 000540' SUB .SYIRC,.SYIBC
5020 010316 005037 000534' CLR .SYIRC ; NO MORE RECORD !
5021 010322 RETURN
010322 000207 RTS PC
KLIDR -- RECORD READ ROUTINES MACRO M1113 03-APR-86 20:55 PAGE 112
$READW -- READ A WORD
5023 .SBTTL $READW -- READ A WORD
5024 ;+
5025 ; READ THE NEXT WORD FROM THE CURRENT RECORD. IF CURRENTLY ON
5026 ; AN ODD BOUNDARY, SKIP OVER THE CURRENT BYTE TO MAKE IT EVEN.
5027 ;
5028 ; NO INPUTS
5029 ;
5030 ; OUTPUTS:
5031 ; R0 - THE WORD READ.
5032 ; CARRY IS SET ON RECORD OVERRUN OR READ ERROR AND MESSAGE IS DISPLAYED.
5033 ;-
5034
5035 010324 $READW::
5036 010324 032737 000001 000536' BIT #1,.SYIBA ; MAKE SURE WE ARE
5037 010332 001406 BEQ 10$ ; ON A WORD BOUNDARY.
5038 010334 005337 000534' DEC .SYIRC
5039 010340 005237 000536' INC .SYIBA
5040 010344 005337 000540' DEC .SYIBC
5041 010350 10$:
5042 010350 162737 000002 000534' SUB #2,.SYIRC ; UPDATE RECORD COUNT AND
5043 010356 002440 BLT LDRER ; IF IT BOTTOMS, ERROR.
5044 010360 005737 000540' TST .SYIBC ; IF WE ARE AT THE END
5045 010364 003003 BGT 20$ ; OF THE BUFFER
5046 010366 CALL $READ ; THEN READ ANOTHER ONE.
010366 004737 010474' JSR PC,$READ
5047 010372 103411 BCS 30$
5048 010374 20$:
5049 010374 017700 000536' MOV @.SYIBA,R0 ; PICK UP WORD
5050 010400 062737 000002 000536' ADD #2,.SYIBA ; BUMP ADDRESS
5051 010406 162737 000002 000540' SUB #2,.SYIBC ; AND BYTE COUNT.
5052 010414 000241 CLC
5053 010416 30$:
5054 010416 RETURN
010416 000207 RTS PC
KLIDR -- RECORD READ ROUTINES MACRO M1113 03-APR-86 20:55 PAGE 113
$READB -- READ A BYTE
5056 .SBTTL $READB -- READ A BYTE
5057 ;+
5058 ; READ THE NEXT BYTE FROM THE CURRENT RECORD.
5059 ;
5060 ; NO INPUTS
5061 ;
5062 ; OUTPUTS:
5063 ; R0 - THE BYTE READ.
5064 ; CARRY IS SET ON RECORD OVERRUN OR READ ERROR AND A MESSAGE IS DISPLAYED.
5065 ;-
5066
5067 010420 $READB::
5068 010420 005337 000534' DEC .SYIRC ; UPDATE RECORD COUNT AND
5069 010424 002415 BLT LDRER ; IF IT BOTTOMS, ERROR.
5070 010426 005737 000540' TST .SYIBC ; IF WE ARE AT THE END
5071 010432 003003 BGT 10$ ; OF THE BUFFER
5072 010434 CALL $READ ; THEN READ ANOTHER ONE.
010434 004737 010474' JSR PC,$READ
5073 010440 103406 BCS 20$
5074 010442 10$:
5075 010442 117700 000536' MOVB @.SYIBA,R0 ; PICK UP BYTE
5076 010446 005237 000536' INC .SYIBA ; BUMP ADDRESS
5077 010452 005337 000540' DEC .SYIBC ; AND BYTE COUNT.
5078 010456 20$:
5079 010456 RETURN
010456 000207 RTS PC
5080
5081 010460 LDRER:
5082 010460 PRINT #TDRRLE ; RECORD OVERRUN OR UNDERRUN.
010460 012700 002216' MOV #TDRRLE,R0
010464 004737 027634' JSR PC,$TTMSG
5083 010470 000261 SEC
5084 010472 RETURN
010472 000207 RTS PC
KLIDR -- RECORD READ ROUTINES MACRO M1113 03-APR-86 20:55 PAGE 114
$READ -- READ NEXT VIRTUAL BLOCK
5086 .SBTTL $READ -- READ NEXT VIRTUAL BLOCK
5087 ;+
5088 ; READ THE NEXT BLOCK FROM THE SYSTEM DEVICE AND RESET BUFFER PARAMETERS.
5089 ;
5090 ; NO INPUTS
5091 ;
5092 ; OUTPUTS:
5093 ; .SYIBA - POINTS TO THE BEGINING OF THE BUFFER READ.
5094 ; .SYIBC - COUNT OF BYTES READ.
5095 ; CARRY IS SET ON READ ERROR AND MESSAGE IS DISPLAYED.
5096 ;-
5097
5098 010474 $READ::
5099 010474 062737 000001 000564' ADD #1,.SYIVB+2 ; GET NEXT BLOCK.
5100 010502 005537 000562' ADC .SYIVB
5101
5102 ; READ VIRTUAL BLOCK
5103
5104 010506 QIOW$S #IO.RVB,#SYILUN,#1,,#.SYSTA,,<#.SYIBF,#S.YIL,,.SYIVB,.SYIVB+2>
010506 013746 000564' MOV .SYIVB+2,-(SP)
010512 013746 000562' MOV .SYIVB,-(SP)
010516 005046 CLR -(SP)
010520 012746 001000 MOV #S.YIL,-(SP)
010524 012746 000566' MOV #.SYIBF,-(SP)
010530 005046 CLR -(SP)
010532 012746 000526' MOV #.SYSTA,-(SP)
010536 005046 CLR -(SP)
010540 112716 000001 MOVB #1,(SP)
010544 012746 000004 MOV #SYILUN,-(SP)
010550 012746 000000G MOV #IO.RVB,-(SP)
010554 012746 MOV (PC)+,-(SP)
010556 003 013 .BYTE 3,$$$T1
010560 104375 EMT 375
5105 010562 103412 BCS 10$
5106 010564 105737 000526' TSTB .SYSTA
5107 010570 002407 BLT 10$ ; READ FAILED.
5108 010572 012737 000566' 000536' MOV #.SYIBF,.SYIBA ; SAVE BUFFER ADR
5109 010600 013737 000530' 000540' MOV .SYSTA+2,.SYIBC ; AND BYTE COUNT
5110 010606 RETURN
010606 000207 RTS PC
5111
5112 010610 10$:
5113 010610 PRINT #TDRRDE ; PRINT ERROR MESSAGE.
010610 012700 002201' MOV #TDRRDE,R0
010614 004737 027634' JSR PC,$TTMSG
5114 010620 000261 SEC
5115 010622 RETURN
010622 000207 RTS PC
KLIDR -- RECORD READ ROUTINES MACRO M1113 03-APR-86 20:55 PAGE 115
$READ -- READ NEXT VIRTUAL BLOCK
5117
5118
5119 .TITLE KLIDW -- RECORD WRITE ROUTINES
5120 010624 IDENT$ 5,0
.IDENT /005000/
5121 ;
5122 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
5123 ; ALL RIGHTS RESERVED.
5124 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
5125 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
5126 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
5127 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
5128 ;
5129 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
5130 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
5131 ; EQUIPMENT CORPORATION.
5132 ;
5133 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
5134 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
5135 ;
5136 ; VERSION 05-00
5137 ;
5138 ; ALAN D. PECKHAM 15-APR-77
5139 ;
5140 ; MODIFIED BY:
5141 ;
5142 ; FUNCTION: THIS MODULE CONTAINS ROUTINES WHICH FACILITATE THE
5143 ; WRITING OF RSX-BINARY RECORDS TO THE CURRENTLY
5144 ; OPEN FILE.
5145 ;
5146 ; LOCAL MACROS
5147 ;
5148 .MCALL QIOW$S
5149 ;
5150 ; LOCAL DATA
5151 ;
5152 002252 .PSECT TEXT,D
5153 002252 TDWWRE:
5154 002252 ERROR <WRITE ERROR>
002252 077 040 127 .ASCIZ \? WRITE ERROR\
002255 122 111 124
002260 105 040 105
002263 122 122 117
002266 122 000
5155 002270 TDWRLE:
5156 002270 ERROR <OUTPUT RECORD LENGTH ERROR>
002270 077 040 117 .ASCIZ \? OUTPUT RECORD LENGTH ERROR\
002273 125 124 120
002276 125 124 040
002301 122 105 103
002304 117 122 104
002307 040 114 105
002312 116 107 124
002315 110 040 105
002320 122 122 117
002323 122 000
5157 010624 .PSECT
KLIDW -- RECORD WRITE ROUTINES MACRO M1113 03-APR-86 20:55 PAGE 116
$WRITC -- START WRITING A RECORD
5159 .SBTTL $WRITC -- START WRITING A RECORD
5160 ;+
5161 ; START WRITING A RECORD OF GIVEN LENGTH. IF PREVIOUS RECORD UNFINISHED
5162 ; THE SIGNAL ERROR.
5163 ;
5164 ; INPUTS:
5165 ; R0 - LENGTH OF RECORD TO BE WRITTEN.
5166 ;
5167 ; OUTPUTS:
5168 ; CARRY SET IF LAST RECORD UNFINISHED OR WRITE ERROR AND MESSAGE
5169 ; IS DISPLAYED.
5170 ;-
5171
5172 010624 $WRITC::
5173 010624 005737 001566' TST .SYORC ; IF LAST RECORD NOT FINISHED
5174 010630 001034 BNE LDWER ; SIGNAL ERROR.
5175 010632 020037 002654' CMP R0,.SYATT+2 ; CHECK IF LARGEST RECORD WRITTEN
5176 010636 101402 BLOS 10$ ; AND
5177 010640 010037 002654' MOV R0,.SYATT+2 ; RECORD IF LARGER.
5178 010644 10$:
5179 010644 012737 000003 001566' MOV #3,.SYORC ; SET UP DUMMY COUNT,
5180 010652 CALL $WRITW ; WRITE IN BYTE COUNT FOR NEXT RECORD,
010652 004737 010736' JSR PC,$WRITW
5181 010656 103402 BCS 20$
5182 010660 010037 001566' MOV R0,.SYORC ; AND SAVE FOR RECORD COUNT.
5183 010664 20$:
5184 010664 RETURN
010664 000207 RTS PC
KLIDW -- RECORD WRITE ROUTINES MACRO M1113 03-APR-86 20:55 PAGE 117
$WRITS -- ZERO REMAINDER OF CURRENT BLOCK
5186 .SBTTL $WRITS -- ZERO REMAINDER OF CURRENT BLOCK
5187 ;+
5188 ; CLEAR OUT THE REST OF THE CURRENT BLOCK AND WRITE IT. THIS ROUTINE IS
5189 ; USED TO WRITE OUT THE LAST RECORD INTO THE OUTPUT FILE.
5190 ;
5191 ; NO INPUTS
5192 ;
5193 ; OUTPUTS:
5194 ; CARRY IS SET IF LAST RECORD IS UNFINISHED OR WRITE ERROR AND
5195 ; MESSAGE IS DISPLAYED.
5196 ;-
5197
5198 010666 $WRITS::
5199 010666 005737 001566' TST .SYORC ; IF RECORD NOT FINISHED
5200 010672 001013 BNE LDWER ; THEN THERE IS PROBLEM.
5201 010674 10$:
5202 010674 022737 000777 001572' CMP #S.YOL-1,.SYOBC ; ARE WE AT NEW PAGE ?
5203 010702 003406 BLE 20$ ; YES, QUIT (CARRY IS CLEAR)
5204 010704 005237 001566' INC .SYORC ; SET UP DUMMY COUNT
5205 010710 005000 CLR R0 ; AND WRITE A ZERO
5206 010712 CALL $WRITB
010712 004737 011032' JSR PC,$WRITB
5207 010716 103366 BCC 10$ ; AND CHECK AGAIN.
5208 010720 20$:
5209 010720 RETURN
010720 000207 RTS PC
5210
5211 010722 LDWER:
5212 010722 PRINT #TDWRLE ; RECORD OVERRUN OR UNDERRUN.
010722 012700 002270' MOV #TDWRLE,R0
010726 004737 027634' JSR PC,$TTMSG
5213 010732 000261 SEC
5214 010734 RETURN
010734 000207 RTS PC
KLIDW -- RECORD WRITE ROUTINES MACRO M1113 03-APR-86 20:55 PAGE 118
$WRITW -- WRITE A WORD
5216 .SBTTL $WRITW -- WRITE A WORD
5217 ;+
5218 ; WRITE THE NEXT WORD INTO THE OUTPUT RECORD. IF ON AN ODD BOUNDRY
5219 ; THE SKIP A BYTE TO WRITE THE WORD ON AN EVEN WORD. SIGNAL ERROR
5220 ; IF RECORD OVERFLOW.
5221 ;
5222 ; INPUTS:
5223 ; R0 - THE WORD TO WRITE.
5224 ;
5225 ; OUTPUTS:
5226 ; CARRY IS SET IF WRITE ERROR AND MESSAGE IS DISPLAYED.
5227 ;-
5228
5229 010736 $WRITW::
5230 010736 032737 000001 001570' BIT #1,.SYOBA ; MAKE SURE WE ARE
5231 010744 001406 BEQ 10$ ; ON A WORD BOUNDRY.
5232 010746 005337 001566' DEC .SYORC
5233 010752 005237 001570' INC .SYOBA
5234 010756 005337 001572' DEC .SYOBC
5235 010762 10$:
5236 010762 162737 000002 001566' SUB #2,.SYORC ; UPDATE RECORD COUNT AND
5237 010770 002754 BLT LDWER ; IF IT BOTTOMS, ERROR.
5238 010772 005737 001572' TST .SYOBC ; IF WE ARE AT THE END
5239 010776 003003 BGT 20$ ; OF THE BUFFER
5240 011000 CALL $WRITE ; THEN WRITE IT.
011000 004737 011072' JSR PC,$WRITE
5241 011004 103411 BCS 30$
5242 011006 20$:
5243 011006 010077 001570' MOV R0,@.SYOBA ; STICK IN WORD
5244 011012 062737 000002 001570' ADD #2,.SYOBA ; BUMP ADDRESS
5245 011020 162737 000002 001572' SUB #2,.SYOBC ; AND BYTE COUNT.
5246 011026 000241 CLC
5247 011030 30$:
5248 011030 RETURN
011030 000207 RTS PC
KLIDW -- RECORD WRITE ROUTINES MACRO M1113 03-APR-86 20:55 PAGE 119
$WRITB -- WRITE A BYTE
5250 .SBTTL $WRITB -- WRITE A BYTE
5251 ;+
5252 ; WRITE A BYTE INTO THE CURRENT RECORD. SIGNAL ERROR IF RECORD OVERFLOW.
5253 ;
5254 ; INPUTS:
5255 ; R0 - BYTE TO WRITE.
5256 ;
5257 ; OUTPUTS:
5258 ; CARRY IS SET IF RECORD OVERFLOW OR WRITE ERROR AND MESSAGE
5259 ; IS DISPLAYED.
5260 ;-
5261
5262 011032 $WRITB::
5263 011032 005337 001566' DEC .SYORC ; UPDATE RECORD COUNT AND
5264 011036 002731 BLT LDWER ; IF IT BOTTOMS, ERROR.
5265 011040 005737 001572' TST .SYOBC ; IF WE ARE AT THE END
5266 011044 003003 BGT 10$ ; OF THE BUFFER
5267 011046 CALL $WRITE ; THEN WRITE IT.
011046 004737 011072' JSR PC,$WRITE
5268 011052 103406 BCS 20$
5269 011054 10$:
5270 011054 110077 001570' MOVB R0,@.SYOBA ; STICK IN BYTE
5271 011060 005237 001570' INC .SYOBA ; BUMP ADDRESS
5272 011064 005337 001572' DEC .SYOBC ; AND BYTE COUNT.
5273 011070 20$:
5274 011070 RETURN
011070 000207 RTS PC
KLIDW -- RECORD WRITE ROUTINES MACRO M1113 03-APR-86 20:55 PAGE 120
$WRITE -- WRITE NEXT VIRTUAL BLOCK
5276 .SBTTL $WRITE -- WRITE NEXT VIRTUAL BLOCK
5277 ;+
5278 ; WRITE THE NEXT BLOCK TO THE OUTPUT FILE. IF END-OF-FILE, THEN
5279 ; EXTEND THE FILE AND TRY TO WRITE THE BLOCK AGAIN.
5280 ;
5281 ; INPUTS:
5282 ; .SYOBF - BLOCK OF "S.YOL" BYTES TO WRITE.
5283 ;
5284 ; OUTPUTS:
5285 ; .SYOBA - ADDRESS OF NEW BUFFER TO FILL
5286 ; .SYOBC - SIZE OF BUFFER IN BYTES.
5287 ; CARRY IS SET ON WRITE OR EXTEND ERROR AND MESSAGE IS DISPLAYED.
5288 ;-
5289
5290 011072 $WRITE::
5291 011072 QIOW$S #IO.WVB,#SYOLUN,#1,,#.SYSTA,,<#.SYOBF,#S.YOL,,.SYOVB,.SYOVB+2>
011072 013746 001616' MOV .SYOVB+2,-(SP)
011076 013746 001614' MOV .SYOVB,-(SP)
011102 005046 CLR -(SP)
011104 012746 001000 MOV #S.YOL,-(SP)
011110 012746 001620' MOV #.SYOBF,-(SP)
011114 005046 CLR -(SP)
011116 012746 000526' MOV #.SYSTA,-(SP)
011122 005046 CLR -(SP)
011124 112716 000001 MOVB #1,(SP)
011130 012746 000005 MOV #SYOLUN,-(SP)
011134 012746 000000G MOV #IO.WVB,-(SP)
011140 012746 MOV (PC)+,-(SP)
011142 003 013 .BYTE 3,$$$T1
011144 104375 EMT 375
5292 011146 103427 BCS 20$
5293 011150 105737 000526' TSTB .SYSTA
5294 011154 002414 BLT 10$ ; WRITE FAILED.
5295 011156 062737 000001 001616' ADD #1,.SYOVB+2 ; SET UP FOR NEXT BLOCK.
5296 011164 005537 001614' ADC .SYOVB ; (CARRY SHOULD BE CLEAR)
5297 011170 012737 001620' 001570' MOV #.SYOBF,.SYOBA ; RESET BUFFER ADDRESS
5298 011176 012737 001000 001572' MOV #S.YOL,.SYOBC ; AND BYTE COUNT.
5299 011204 RETURN
011204 000207 RTS PC
5300 011206 10$:
5301 011206 122737 000000G 000526' CMPB #IE.EOF,.SYSTA ; IS THE FILE TOO SMALL ?
5302 011214 001004 BNE 20$ ; NO, THIS IS TRULY AN ERROR.
5303 011216 CALL $EXTEND ; OTHERWISE EXTEND THE FILE
011216 004737 011242' JSR PC,$EXTEND
5304 011222 103323 BCC $WRITE ; AND WRITE THE BLOCK AGAIN.
5305 011224 RETURN
011224 000207 RTS PC
5306 011226 20$:
5307 011226 PRINT #TDWWRE ; PRINT IT.
011226 012700 002252' MOV #TDWWRE,R0
011232 004737 027634' JSR PC,$TTMSG
5308 011236 000261 SEC
5309 011240 RETURN
011240 000207 RTS PC
KLIDW -- RECORD WRITE ROUTINES MACRO M1113 03-APR-86 20:55 PAGE 121
$WRITE -- WRITE NEXT VIRTUAL BLOCK
5311
5312
5313 .TITLE KLIDX -- EXTEND AN OUTPUT FILE BY ONE BLOCK
5314 011242 IDENT$ 5,0
.IDENT /005000/
5315 ;
5316 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
5317 ; ALL RIGHTS RESERVED.
5318 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
5319 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
5320 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
5321 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
5322 ;
5323 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
5324 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
5325 ; EQUIPMENT CORPORATION.
5326 ;
5327 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
5328 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
5329 ;
5330 ; VERSION 05-00
5331 ;
5332 ; ALAN D. PECKHAM 15-APR-77
5333 ;
5334 ; MODIFIED BY:
5335 ;
5336 ; FUNCTION: THIS ROUTINE EXTENDS THE ALLOCATION OF THE CURRENTLY OPEN
5337 ; FILE BY ONE BLOCK.
5338 ;
5339 ; LOCAL MACROS
5340 ;
5341 .MCALL QIOW$
5342 ;
5343 ; LOCAL DATA
5344 ;
5345 001030 .PSECT DATA,D
5346 001030 DDXEXT: QIOW$ IO.EXT,SYOLUN,1,,.SYSTA,,<,,BIT15,1>
001030 003 012 .BYTE 3,$$$ARG
001032 000000G .WORD IO.EXT
001034 000005 .WORD SYOLUN
001036 001 000 .BYTE 1,
001040 000526' .WORD .SYSTA
001042 000000 .WORD
001044 000000 .WORD
001046 000000 .WORD
001050 100000 .WORD BIT15
001052 000001 .WORD 1
5347 011242 .PSECT
KLIDX -- EXTEND AN OUTPUT FILE MACRO M1113 03-APR-86 20:55 PAGE 122
$EXTEND -- EXTEND OUTPUT FILE BY ONE BLOCK
5349 .SBTTL $EXTEND -- EXTEND OUTPUT FILE BY ONE BLOCK
5350 ;+
5351 ; EXTEND THE OUTPUT FILE BY ONE BLOCK.
5352 ;
5353 ; NO INPUTS
5354 ;
5355 ; OUTPUTS:
5356 ; CARRY SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
5357 ;-
5358
5359 011242 $EXTEND::DIR$ #DDXEXT ; EXTEND THE FILE.
011242 012746 001030' MOV #DDXEXT,-(SP)
011246 104375 EMT 375
5360 011250 103411 BCS 10$
5361 011252 105737 000526' TSTB .SYSTA
5362 011256 002406 BLT 10$
5363 011260 062737 000001 002660' ADD #1,.SYATT+6 ; ONE MORE BLOCK ALLOCATED.
5364 011266 005537 002656' ADC .SYATT+4 ; (CARRY SHOULD BE CLEAR)
5365 011272 RETURN
011272 000207 RTS PC
5366
5367 011274 012700 001574' 10$: MOV #.SYOFN,R0 ; EXTEND FAILED.
5368 011300 CALLR $IOERR
011300 000137 007346' JMP $IOERR
KLIDX -- EXTEND AN OUTPUT FILE MACRO M1113 03-APR-86 20:55 PAGE 123
$EXTEND -- EXTEND OUTPUT FILE BY ONE BLOCK
5370
5371
5372 .TITLE KLIFC -- C-RAM READ/WRITE
5373 011304 IDENT$ 5,0
.IDENT /005000/
5374 ;
5375 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
5376 ; ALL RIGHTS RESERVED.
5377 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
5378 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
5379 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
5380 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
5381 ;
5382 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
5383 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
5384 ; EQUIPMENT CORPORATION.
5385 ;
5386 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
5387 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
5388 ;
5389 ; VERSION 05-00
5390 ;
5391 ; ALAN D. PECKHAM 11-APR-77
5392 ;
5393 ; MODIFIED BY:
5394 ;
5395 ; FUNCTION: THIS MODULE CONTAINS THE ROUTINES TO WORK ON THE C-RAMS.
5396 ; THE C-RAM DATA IS WORKED WITH IN 6-WORD COMPRESSED FORMAT, AS
5397 ; SPECIFIED IN THE KLDCP DOCUMENTATION.
5398 ;
5399 ; LOCAL DATA
5400 ;
5401 001054 .PSECT DATA,D
5402 001054 147000 DFCRFL: .WORD .RCRM1 ; READ C-RAM BITS 0-19
5403 001056 146000 .WORD .RCRM2 ; READ C-RAM BITS 20-39
5404 001060 145000 .WORD .RCRM3 ; READ C-RAM BITS 40-59
5405 001062 144000 .WORD .RCRM4 ; READ C-RAM BITS 60-79
5406 001064 057000 DFCWFL: .WORD .LCRM1 ; C-RAM WRITE FUNCTION LIST.
5407 001066 056000 .WORD .LCRM2
5408 001070 055000 .WORD .LCRM3
5409 001072 054000 .WORD .LCRM4
5410 .EVEN ; DFCBF MUST BE ON A WORD BOUNDRY.
5411 001074 DFCBF: WD36$ 0 0 ; DATA BUFFER.
001074 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
001077 000 000 .BYTE BY$$3,BY$$4
5412 001101 000 DFCFL2: .BYTE 0
5413 001102 000 DFCFL3: .BYTE 0
5414 001103 DFCABF: WD36$ 0 0 ; WORK AREA.
001103 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
001106 000 000 .BYTE BY$$3,BY$$4
5415 .EVEN
5416 011304 .PSECT
KLIFC -- C-RAM READ/WRITE MACRO M1113 03-APR-86 20:55 PAGE 124
$WCRAM -- WRITE C-RAM WORD
5418 .SBTTL $WCRAM -- WRITE C-RAM WORD
5419 ;+
5420 ; WRITE COMPRESSED C-RAM WORD POINTED TO BY R1 TO C-RAM LOCATION
5421 ; ADDRESSED BY R0.
5422 ;
5423 ; INPUTS:
5424 ; R1 - POINTER TO 6 WORDS OF DATA TO WRITE.
5425 ; R0 - C-RAM ADDRESS TO WRITE TO.
5426 ;
5427 ; OUTPUT:
5428 ; CARRY IS SET IF ERROR OCCURS.
5429 ;-
5430
5431 011304 004537 024204' $WCRAM::JSR R5,$RSAVE
5432 011310 TRACK CW
011310 004037 011322' JSR R0,64$
011314 053503 .WORD "CW
011316 000000 .WORD
011320 000000 .WORD
011322 004737 024252' 64$: JSR PC,$TRACK
011326 012600 MOV (SP)+,R0
5433 011330 010102 MOV R1,R2 ; GET DATA ADDRESS
5434 011332 CALL $ACRAM ; WRITE C-RAM ADDRESS
011332 004737 012166' JSR PC,$ACRAM
5435 011336 103511 BCS 70$ ; RAM ERROR
5436 011340 012704 000006 MOV #6,R4 ; 4 LOOPS PER C-RAM WORD
5437 011344 005003 CLR R3 ; CLEAR BOUNDRY FLAG
5438 011346 012701 001074' 10$: MOV #DFCBF,R1 ; SET UP WORK AREA
5439 011352 112221 MOVB (R2)+,(R1)+ ; REAL DATA TO WORK AREA
5440 011354 112221 MOVB (R2)+,(R1)+
5441 011356 111221 MOVB @R2,(R1)+
5442 011360 005703 TST R3 ; SEE IF BITS ON WORD BOUNDARY
5443 011362 001411 BEQ 30$ ; YES
5444 011364 005202 INC R2 ; INCREASE DTA ADR PTR
5445 011366 012705 000004 MOV #4,R5 ; # OF SHIFTS REQUIRED
5446 011372 012701 001077' 20$: MOV #DFCBF+3,R1 ; POINT TO TOP OF WORK AREA
5447 011376 106041 RORB -(R1) ; RIGHT SHIFT ONE BYTE
5448 011400 106041 RORB -(R1)
5449 011402 106041 RORB -(R1)
5450 011404 077506 SOB R5,20$ ; LOOP BACK IF NOT DONE
5451 011406 005103 30$: COM R3 ; CHANGE BOUNDARY FLAG
5452 011410 042737 177760 001076' BIC #177760,DFCBF+2 ; ONLY FOUR BITS COUNT
5453 011416 013700 001074' MOV DFCBF,R0 ; GET UNPACED DATA
5454 011422 113737 001076' 001077' MOVB DFCBF+2,DFCBF+3 ; PUT C-RAM 0-3 BITS INTO CORRECT CORE
5455 011430 005001 CLR R1 ; INIT R1
5456 011432 000261 SEC ; C-BIT IS SET AS A FLAG
5457 011434 012705 000005 40$: MOV #5,R5 ; 4 SHIFTS BETWEEN BALNKS
5458 011440 006001 50$: ROR R1 ; NEW DATA LEFT END OF DESTINATION
5459 011442 103406 BCS 60$ ; IF FLAG FALLS OUT, DONE
5460 011444 006000 ROR R0 ; ROTATE SOURCE BITS RIGHT
5461 011446 077504 SOB R5,50$ ; SHIFT 4 TIMES?
5462 011450 006100 ROL R0 ; REPAIR ANY DAMAGE
5463 011452 000241 CLC ; CLEAR C-BIT AS FLAG
5464 011454 006001 ROR R1 ; AND ROLL ZEROES
5465 011456 000766 BR 40$ ; CONTINUE
5466 011460 000241 60$: CLC ; CLEAR C-BIT AS FLAG
5467 011462 006100 ROL R0 ; BITS 4-7
KLIFC -- C-RAM READ/WRITE MACRO M1113 03-APR-86 20:55 PAGE 124-1
$WCRAM -- WRITE C-RAM WORD
5468 011464 006100 ROL R0 ; MUST BE CORRECTED
5469 011466 010137 001074' MOV R1,DFCBF ; BITS 8-19 INTO CORE
5470 011472 110037 001076' MOVB R0,DFCBF+2 ; BITS 4-7 INTO CORE
5471 011476 016400 001064' MOV DFCWFL(R4),R0 ; GET WRITE FUNCTION LIST
5472 011502 012701 001074' MOV #DFCBF,R1 ; ADDRESS OF DATA
5473 011506 CALL $DFWR ; WRITE TO C-RAM
011506 004737 013556' JSR PC,$DFWR
5474 011512 103423 BCS 70$ ; TIME OUT ERROR
5475 011514 162704 000002 SUB #2,R4 ; ENTIRE RAM WORD DONE?
5476 011520 002312 BGE 10$ ; NOT YET
5477 011522 111237 001100' MOVB @R2,DFCBF+4 ; GET DATA FOR DEPOSIT
5478 011526 106237 001100' ASRB DFCBF+4 ; SHIFT DATA
5479 011532 106037 001077' RORB DFCBF+3 ; TO EBUS BITS
5480 011536 106237 001100' ASRB DFCBF+4
5481 011542 106037 001077' RORB DFCBF+3
5482 011546 012701 001074' MOV #DFCBF,R1 ; DATA ADDRESS IN R1
5483 011552 012700 053000 MOV #.LCRM5,R0 ; DISP 00-04
5484 011556 CALLR $DFWR
011556 000137 013556' JMP $DFWR
5485 011562 70$: RETURN
011562 000207 RTS PC
KLIFC -- C-RAM READ/WRITE MACRO M1113 03-APR-86 20:55 PAGE 125
$RCRAM -- READ C-RAM WORD
5487 .SBTTL $RCRAM -- READ C-RAM WORD
5488 ;+
5489 ; READ C-RAM WORD ADDRESSED BY R0 AND COMPRESS IT INTO AREA POINTED
5490 ; TO BY R1.
5491 ;
5492 ; INPUTS:
5493 ; R1 - 6 WORD BUFFER TO RECIEVE COMPRESSED C-RAM WORD.
5494 ; R0 - C-RAM ADDRESS OF WORD TO READ.
5495 ;
5496 ; OUTPUT:
5497 ; CARRY SET IF ERROR OCCURS.
5498 ;-
5499
5500 011564 004537 024204' $RCRAM::JSR R5,$RSAVE
5501 011570 TRACK CR
011570 004037 011602' JSR R0,64$
011574 051103 .WORD "CR
011576 000000 .WORD
011600 000000 .WORD
011602 004737 024252' 64$: JSR PC,$TRACK
011606 012600 MOV (SP)+,R0
5502 011610 CALL $ACRAM ; SET EBOX TO C-RAM ADDRESS ZERO.
011610 004737 012166' JSR PC,$ACRAM
5503 011614 103421 BCS 30$ ; ERROR
5504 011616 012700 003000 MOV #.SECLK,R0 ; SINGLE STEP EBUS CLOCK
5505 011622 CALL $DFXC
011622 004737 013760' JSR PC,$DFXC
5506 011626 103414 BCS 30$ ; ERROR
5507 011630 016603 000004 10$: MOV 4(SP),R3 ; GET BUF ADR FOR C-RAM CONTENTS
5508 011634 062703 000012 ADD #12,R3 ; POINT TO END.
5509 011640 012704 001054' MOV #DFCRFL,R4
5510 011644 012400 20$: MOV (R4)+,R0 ; DIAG FUNCTIONS
5511 011646 012701 001074' MOV #DFCBF,R1 ; DATA HOLDING AREA
5512 011652 CALL $DFRD ; READ DATA
011652 004737 013444' JSR PC,$DFRD
5513 011656 103002 BCC 40$ ; OK
5514 011660 000137 012164' 30$: JMP 140$ ; READ ERORR
5515 011664 013701 001074' 40$: MOV DFCBF,R1 ; GET STRETCHED BITS 8-19
5516 011670 013702 001076' MOV DFCBF+2,R2 ; GET STRETCHED BITS 0-7
5517 011674 005000 CLR R0 ; USE R0 AS WORK REG
5518 011676 000261 SEC ; SET C-BIT AS DONE BIT
5519 011700 006000 ROR R0 ; AND ROLL IT INTO R0
5520 011702 012705 000004 50$: MOV #4,R5 ; FOUR BITS PER GROUP
5521 011706 005305 60$: DEC R5 ; DONE A GROUP?
5522 011710 002405 BLT 70$ ; NO
5523 011712 006202 ASR R2 ; ROTATE SOURCE BITS RIGHT 1 PLACE
5524 011714 006001 ROR R1 ; ALL 20 OF THEM
5525 011716 006000 ROR R0 ; BEGIN WITH 1ST FLAG INTO R0
5526 011720 103406 BCS 80$ ; IF C-BIT DETECTED, DONE
5527 011722 000771 BR 60$
5528 011724 006202 70$: ASR R2 ; HERE TO SHIFT AWAY
5529 011726 006001 ROR R1 ; THE PAIR
5530 011730 006202 ASR R2 ; OF BLANKS HIDDEN
5531 011732 006001 ROR R1 ; AMIDST THE REAL DATA
5532 011734 000762 BR 50$ ; AND CONTINUE
5533 011736 006201 80$: ASR R1 ; MAKE LAST BLANKS TO GO AWAY
5534 011740 006201 ASR R1
KLIFC -- C-RAM READ/WRITE MACRO M1113 03-APR-86 20:55 PAGE 125-1
$RCRAM -- READ C-RAM WORD
5535 011742 010037 001074' MOV R0,DFCBF
5536 011746 010137 001076' MOV R1,DFCBF+2 ; STORE RESULTS IN CORE
5537 011752 012700 001077' MOV #DFCBF+3,R0 ; ADDRESS OF DATA JUST READ
5538 011756 114043 MOVB -(R0),-(R3) ; BITS 16-19 TO BUFFER
5539 011760 105737 001101' TSTB DFCFL2 ; CHECK IF BOUNDARY IS RIGHT
5540 011764 001005 BNE 100$ ; YES, GO FIX BOUNDARY
5541 011766 114043 90$: MOVB -(R0),-(R3) ; BITS 20-27 TO WORK AREA
5542 011770 114043 MOVB -(R0),-(R3) ; BITS 28-35 TO WORK AREA
5543 011772 105137 001101' COMB DFCFL2 ; CHANGE SIGNAL
5544 011776 000722 BR 20$ ; GET MORE DATA
5545 012000 106313 100$: ASLB @R3 ; FIX A HALF-BYTE
5546 012002 106313 ASLB @R3
5547 012004 106313 ASLB @R3
5548 012006 106313 ASLB @R3
5549 012010 012705 000004 MOV #4,R5
5550 012014 010302 110$: MOV R3,R2 ; ADDR OF DATA TO R2
5551 012016 106122 ROLB (R2)+ ; SHIFT INCLUDING C-BIT
5552 012020 106122 ROLB (R2)+
5553 012022 106122 ROLB (R2)+
5554 012024 106122 ROLB (R2)+
5555 012026 077506 SOB R5,110$ ; ASSEMBLED COMPLETE HALF-BYTE
5556 012030 105723 TSTB (R3)+ ; FIX HOLDING AREA ADR
5557 012032 105737 001102' TSTB DFCFL3 ; CHECK SIGNAL
5558 012036 001003 BNE 120$ ; DONE IF MINUS
5559 012040 105137 001102' COMB DFCFL3
5560 012044 000750 BR 90$ ; CONTINUE
5561 012046 113743 001075' 120$: MOVB DFCBF+1,-(R3) ; ENDING UP
5562 012052 113743 001074' MOVB DFCBF,-(R3) ; C-RAM BITS 0-15 TO BUFFER
5563 012056 105037 001102' CLRB DFCFL3 ; RESET DFCFL3 TO ZERO
5564 012062 105037 001101' CLRB DFCFL2 ; SAME TO DFCFL2
5565 012066 012700 141000 MOV #.RCSPF,R0 ; READ SPEC FIELD FUNC
5566 012072 012701 001074' MOV #DFCBF,R1
5567 012076 CALL $DFRD ; READ DATA
012076 004737 013444' JSR PC,$DFRD
5568 012102 103430 BCS 140$
5569 012104 016100 000004 MOV 4(R1),R0 ; GET DISP 00-02 - DEXWD1
5570 012110 016101 000002 MOV 2(R1),R1 ; GET DISP 03-04 - DEXWD2
5571 012114 006101 ROL R1
5572 012116 006100 ROL R0
5573 012120 006101 ROL R1
5574 012122 006100 ROL R0 ; JUSTIFY IN R0
5575 012124 042700 177700 BIC #^C77,R0 ; CLEAR TRASH
5576 012130 105737 000044' TSTB .EASW ; AND IF MODEL A CPU,
5577 012134 003002 BGT 130$
5578 012136 042700 177740 BIC #^C37,R0 ; CLEAR MORE TRASH.
5579 012142 016601 000004 130$: MOV 4(SP),R1 ; GET RECIEVING ADDRESS BACK.
5580 012146 110061 000012 MOVB R0,12(R1) ; SAVE IN BUFFER
5581 012152 042721 052525 BIC #052525,(R1)+ ; CLEAR PARITY BITS
5582 012156 042711 000005 BIC #000005,(R1)
5583 012162 000241 CLC
5584 012164 140$: RETURN
012164 000207 RTS PC
KLIFC -- C-RAM READ/WRITE MACRO M1113 03-APR-86 20:55 PAGE 126
$ACRAM -- ADDRESS C-RAM WORD
5586 .SBTTL $ACRAM -- ADDRESS C-RAM WORD
5587 ;+
5588 ; SET THE M-BOX TO THE C-RAM ADDRESS SPECIFIED BY R0.
5589 ;
5590 ; INPUT:
5591 ; R0 - ADDRESS OF C-RAM WORD TO ACCESS.
5592 ;
5593 ; OUTPUT:
5594 ; CARRY SET IF ERROR OCCURS.
5595 ;-
5596
5597 012166 $ACRAM::PUSH <R1,R0>
012166 010146 MOV R1,-(SP)
012170 010046 MOV R0,-(SP)
5598 012172 TRACK CA
012172 004037 012204' JSR R0,64$
012176 040503 .WORD "CA
012200 000000 .WORD
012202 000000 .WORD
012204 004737 024252' 64$: JSR PC,$TRACK
012210 012600 MOV (SP)+,R0
5599 012212 CALL $KLSR ; DO A SOFT RESET
012212 004737 015504' JSR PC,$KLSR
5600 012216 103423 BCS 9$ ; ERROR
5601 012220 012701 001103' MOV #DFCABF,R1
5602 012224 CALL LFCSAB ; LOAD EBUS BITS 00-05
012224 004737 012274' JSR PC,LFCSAB
5603 012230 012700 052000 MOV #.LCRDL,R0 ; CRAM DIAG ADR 00-04
5604 012234 CALL $DFWR ; DO A WRITE
012234 004737 013556' JSR PC,$DFWR
5605 012240 011600 MOV (SP),R0 ; RESTORE C-RAM ADR
5606 012242 103411 BCS 9$ ; ERROR
5607 012244 000300 SWAB R0 ; GET BITS 00-04
5608 012246 006200 ASR R0 ; TO LOW-ORDER BITS OF R0
5609 012250 006200 ASR R0
5610 012252 CALL LFCSAB ; LOAD EBUS BITS 00-05
012252 004737 012274' JSR PC,LFCSAB
5611 012256 012700 051000 MOV #.LCRDR,R0 ; CRAM DIAG ADR 05-10
5612 012262 CALL $DFWR ; DO ANOTHER WRITE
012262 004737 013556' JSR PC,$DFWR
5613 012266 9$: POP <R0,R1>
012266 012600 MOV (SP)+,R0
012270 012601 MOV (SP)+,R1
5614 012272 RETURN
012272 000207 RTS PC
5615
5616 012274 042700 000077 LFCSAB: BIC #77,R0 ; DEAL ONLY WITH 6 BITS
5617 012300 110037 001106' MOVB R0,DFCABF+3 ; TO EBUS BITS 4 & 5
5618 012304 000300 SWAB R0
5619 012306 110037 001107' MOVB R0,DFCABF+4 ; TO EBUS BITS 0,1,2, AND 3
5620 012312 RETURN
012312 000207 RTS PC
KLIFC -- C-RAM READ/WRITE MACRO M1113 03-APR-86 20:55 PAGE 127
$ACRAM -- ADDRESS C-RAM WORD
5622
5623
5624 .TITLE KLIFD -- D-RAM READ/WRITE
5625 012314 IDENT$ 5,0
.IDENT /005000/
5626 ;
5627 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
5628 ; ALL RIGHTS RESERVED.
5629 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
5630 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
5631 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
5632 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
5633 ;
5634 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
5635 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
5636 ; EQUIPMENT CORPORATION.
5637 ;
5638 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
5639 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
5640 ;
5641 ; VERSION 05-00
5642 ;
5643 ; ALAN D. PECKHAM 11-APR-77
5644 ;
5645 ; MODIFIED BY:
5646 ;
5647 ; FUNCTION: THIS MODULE CONTAINS THE ROUTINES TO WORK WITH THE D-RAMS.
5648 ; THE D-RAM DATA IS PASSED IN THE 3-WORD COMPRESSED FORMAT SPECIFIED
5649 ; IN THE DOCUMENTATION FOR KLDCP.
5650 ;
5651 ; LOCAL DATA
5652 ;
5653 001110 .PSECT DATA,D
5654 .EVEN ; DFDDBF MUST BE ON AN EVEN BOUNDRY.
5655 001110 DFDDBF: WD36$ 0 0 ; DATA WORK AREA.
001110 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
001113 000 000 .BYTE BY$$3,BY$$4
5656 001115 DFDABF: WD36$ 0 0 ; ADDRESS WORK AREA.
001115 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
001120 000 000 .BYTE BY$$3,BY$$4
5657 .EVEN
5658 012314 .PSECT
KLIFD -- D-RAM READ/WRITE MACRO M1113 03-APR-86 20:55 PAGE 128
$WDRAM -- WRITE D-RAM WORD
5660 .SBTTL $WDRAM -- WRITE D-RAM WORD
5661 ;+
5662 ; WRITE THE COMPRESSED D-RAM WORD POINTED TO BY R1 INTO THE D-RAM ADDRESS
5663 ; POINTED TO BY R0.
5664 ;
5665 ; INPUTS:
5666 ; R1 - POINTER TO COMPRESSED D-RAM DATA WORD
5667 ; R0 - D-RAM ADDRESS TO WRITE DATA INTO.
5668 ;
5669 ; OUTPUTS:
5670 ; CARRY IS SET IF ERROR OCCURS.
5671 ;-
5672
5673 012314 004537 024204' $WDRAM::JSR R5,$RSAVE
5674 012320 TRACK DW
012320 004037 012332' JSR R0,64$
012324 053504 .WORD "DW
012326 000000 .WORD
012330 000000 .WORD
012332 004737 024252' 64$: JSR PC,$TRACK
012336 012600 MOV (SP)+,R0
5675 012340 006000 ROR R0 ; CHECK IF EVEN OR ODD
5676 012342 103423 BCS 10$ ; C-BIT NOT SET MEANS EVEN
5677 012344 006100 ROL R0 ; RESTORE ADR
5678 012346 010104 MOV R1,R4 ; SAVE DATA POINTER
5679 012350 CALL $ADRAM ; WRITE D-RAM ADDRESS
012350 004737 012704' JSR PC,$ADRAM
5680 012354 103416 BCS 10$ ; ERROR
5681 012356 012401 MOV (R4)+,R1
5682 012360 CALL 30$ ; WRITE EVEN DATA
012360 004737 012426' JSR PC,30$
5683 012364 103412 BCS 10$
5684 012366 012401 MOV (R4)+,R1 ; MORE DATA TO R1
5685 012370 CALL 20$ ; WRITE ODD DATA
012370 004737 012414' JSR PC,20$
5686 012374 103406 BCS 10$
5687 012376 011401 MOV (R4),R1
5688 ;
5689 ; COMMON PART OF LOADING OF THE D-RAM
5690 ;
5691 012400 012700 062000 MOV #.LDRM3,R0 ; COMMON J01-04
5692 012404 006301 ASL R1
5693 012406 006301 ASL R1 ; JUSTIFY DATA FOR EBUS
5694 012410 000423 BR LFDWFN
5695 012412 10$: RETURN
012412 000207 RTS PC
5696 012414 012703 061000 20$: MOV #.LDRM2,R3 ; DRAM FUNC FOR J-FIELD A & B
5697 012420 012700 064000 MOV #.LDRJD,R0 ; J-FIELD ODD
5698 012424 000404 BR 40$
5699 012426 012703 060000 30$: MOV #.LDRM1,R3 ; DRAM FUNC FOR J-FILED
5700 012432 012700 063000 MOV #.LDRJV,R0 ; J-FILED EVEN
5701 012436 006301 40$: ASL R1 ; JUSTIFY J-FIELD DATA
5702 012440 006301 ASL R1
5703 012442 PUSH R1
012442 010146 MOV R1,-(SP)
5704 012444 CALL LFDWFN ; WRITE J-DATA
012444 004737 012460' JSR PC,LFDWFN
KLIFD -- D-RAM READ/WRITE MACRO M1113 03-APR-86 20:55 PAGE 128-1
$WDRAM -- WRITE D-RAM WORD
5705 012450 POP R1
012450 012601 MOV (SP)+,R1
5706 012452 103757 BCS 10$ ; ERROR
5707 012454 000301 SWAB R1 ; GOT A & B
5708 012456 010300 MOV R3,R0 ; GOT CORRECT DIAG FUNC & WRITE
5709 012460 110137 001112' LFDWFN: MOVB R1,DFDDBF+2 ; R1 HAS THE DATA
5710 012464 012701 001110' MOV #DFDDBF,R1 ; DATA ADR
5711 012470 CALLR $DFWR ; WRITE IT
012470 000137 013556' JMP $DFWR
KLIFD -- D-RAM READ/WRITE MACRO M1113 03-APR-86 20:55 PAGE 129
$RDRAM -- READ D-RAM WORD
5713 .SBTTL $RDRAM -- READ D-RAM WORD
5714 ;+
5715 ; READ THE D-RAM WORD ADDRESSED BY R0 INTO THE DATA BUFFER POINTED TO
5716 ; BY R1. THE DATA IS COMPRESSED DURING THE READ.
5717 ;
5718 ; INPUTS:
5719 ; R1 - POINTER TO BUFFER TO RECIEVE D-RAM WORD.
5720 ; R0 - D-RAM ADDRESS TO READ DATA FROM.
5721 ;
5722 ; OUTPUTS:
5723 ; CARRY IS SET IF ERROR OCCURS.
5724 ;-
5725
5726 012474 004537 024204' $RDRAM::JSR R5,$RSAVE
5727 012500 TRACK DR
012500 004037 012512' JSR R0,64$
012504 051104 .WORD "DR
012506 000000 .WORD
012510 000000 .WORD
012512 004737 024252' 64$: JSR PC,$TRACK
012516 012600 MOV (SP)+,R0
5728 012520 010104 MOV R1,R4 ; SAVE RECIEVING ADDRESS.
5729 012522 010103 MOV R1,R3
5730 012524 005002 CLR R2 ; CLEAR LOOP SWITCH.
5731 012526 10$: CALL $ADRAM ; WRITE D-RAM ADR
012526 004737 012704' JSR PC,$ADRAM
5732 012532 103463 BCS 30$
5733 012534 012700 015000 MOV #.DRLTC,R0 ; UNLATCH THE DRAM REG
5734 012540 CALL $DFXC
012540 004737 013760' JSR PC,$DFXC
5735 012544 103456 BCS 30$
5736 012546 012701 001110' MOV #DFDDBF,R1
5737 012552 012700 135000 MOV #.RDJ71,R0 ; FUNC TO READ J07-10
5738 012556 CALL $DFRD ; READ DATA
012556 004737 013444' JSR PC,$DFRD
5739 012562 103447 BCS 30$ ; TIMEOUT ERROR
5740 012564 016100 000002 MOV 2(R1),R0 ; GET DATA J07-10 - DEXWD2
5741 012570 006200 ASR R0
5742 012572 006200 ASR R0 ; RIGHT JUSTIFIED J-DATA
5743 012574 042700 177700 BIC #^C77,R0 ; CLEAR TRASH
5744 012600 110023 MOVB R0,(R3)+ ; SAVE IT IN CORE
5745 012602 012700 133000 MOV #.RDMAB,R0 ; FUNC TO READ A & B FIELD
5746 012606 CALL $DFRD ; READ DATA
012606 004737 013444' JSR PC,$DFRD
5747 012612 103433 BCS 30$
5748 012614 016100 000002 MOV 2(R1),R0 ; GET A & B DATA - DEXWD2
5749 012620 006200 ASR R0
5750 012622 006200 ASR R0 ; RIGHT JUSTIFIED DATA
5751 012624 042700 177700 BIC #^C77,R0 ; CLEAR EXTRA
5752 012630 110023 MOVB R0,(R3)+ ; SAVE IT IN CORE
5753 012632 005102 COM R2 ; IS THIS THE SECOND TIME ?
5754 012634 001404 BEQ 20$ ; GET OUT IF YES
5755 012636 016600 000002 MOV 2(SP),R0 ; GET DRAM ADR
5756 012642 005200 INC R0 ; GET ODD HALF OF EVEN/ODD PAIR
5757 012644 000730 BR 10$ ; LOOP AGAIN
5758 012646 012700 134000 20$: MOV #.RDJ14,R0 ; FUNC TO READ J01-04
5759 012652 CALL $DFRD ; READ DATA
KLIFD -- D-RAM READ/WRITE MACRO M1113 03-APR-86 20:55 PAGE 129-1
$RDRAM -- READ D-RAM WORD
012652 004737 013444' JSR PC,$DFRD
5760 012656 103411 BCS 30$
5761 012660 016100 000002 MOV 2(R1),R0 ; GET J01-04 DATA - DEXWD2
5762 012664 006200 ASR R0
5763 012666 006200 ASR R0 ; RIGHT JUSTIFIED DATA
5764 012670 042700 177760 BIC #^C17,R0 ; CLEAR EXTRA
5765 012674 110064 000004 MOVB R0,4(R4) ; BIT SET TO CORE
5766 012700 000241 CLC
5767 012702 30$: RETURN
012702 000207 RTS PC
KLIFD -- D-RAM READ/WRITE MACRO M1113 03-APR-86 20:55 PAGE 130
$ADRAM -- ADDRESS D-RAM WORD
5769 .SBTTL $ADRAM -- ADDRESS D-RAM WORD
5770 ;+
5771 ; SET E-BOX TO SPECIFIED D-RAM ADDRESS FOR WRITTING OR READING.
5772 ;
5773 ; INPUT:
5774 ; R0 - ADDRESS TO ACCESS.
5775 ;
5776 ; OUTPUT:
5777 ; CARRY IS SET IF ERROR OCCURS.
5778 ;-
5779
5780 012704 004537 024204' $ADRAM::JSR R5,$RSAVE
5781 012710 TRACK DA
012710 004037 012722' JSR R0,64$
012714 040504 .WORD "DA
012716 000000 .WORD
012720 000000 .WORD
012722 004737 024252' 64$: JSR PC,$TRACK
012726 012600 MOV (SP)+,R0
5782 012730 012704 001117' MOV #DFDABF+2,R4
5783 012734 012703 001115' MOV #DFDABF,R3 ;GET ADR OF EBUS DATA
5784 012740 010002 MOV R0,R2 ;DRAM ADR IN R2
5785 012742 005100 COM R0 ;READY TO TEST ADR BITS 0-2
5786 012744 032700 000700 BIT #700,R0 ;TESTING!
5787 012750 001410 BEQ 10$ ;BR IF ADR IS 7XX
5788 012752 006302 ASL R2
5789 012754 006302 ASL R2
5790 012756 006302 ASL R2 ;LEFT SHIFT 3 POSITIONS
5791 012760 105024 CLRB (R4)+ ;INCREMENT TO DFDABF+3
5792 012762 110224 MOVB R2,(R4)+ ;MOVE ADR BITS 4-8 TO EBUS DATA
5793 012764 000302 SWAB R2
5794 012766 110214 MOVB R2,@R4 ;MOVE ADR BITS 0-3 TO EBUS DATA
5795 012770 000413 BR 40$
5796 012772 006002 10$: ROR R2 ;BIT1 TO C-BIT
5797 012774 103402 BCS 20$ ;C BIT SET MEANS IR BIT 12 MUST BE 1
5798 012776 105024 CLRB (R4)+ ;NO C-BIT MEANS IR BIT 12 MUST BE 0
5799 013000 000402 BR 30$ ;MOVE ADR TO EBUS DATA
5800 013002 112724 000200 20$: MOVB #200,(R4)+ ;SET IR BIT 12=1
5801 013006 042702 000340 30$: BIC #340,R2
5802 013012 110224 MOVB R2,(R4)+ ;MOVE D-RAM ADR TO EBUS BIT POSITION 7-11
5803 013014 112714 000016 MOVB #16,@R4 ;SET THE 7 FROM 7XX IN EBUS DATA
5804 013020 40$: CALL $KLSR ;DO A SOFT RESET
013020 004737 015504' JSR PC,$KLSR
5805 013024 103413 BCS 50$
5806 013026 012701 001115' MOV #DFDABF,R1 ;EBUS DATA ADR
5807 013032 012700 077000 MOV #.LDAR,R0 ;LOAD THE AR FROM EBUS 0-35
5808 013036 CALL $DFWR ;DO THE ACTUAL WRITE
013036 004737 013556' JSR PC,$DFWR
5809 013042 103404 BCS 50$
5810 013044 012700 014000 MOV #.IRLTC,R0 ;UNLATCH IR AND LOAD IT FROM AD
5811 013050 CALLR $DFXC ;EXECUTE IT
013050 000137 013760' JMP $DFXC
5812 013054 50$: RETURN
013054 000207 RTS PC
KLIFD -- D-RAM READ/WRITE MACRO M1113 03-APR-86 20:55 PAGE 131
$ADRAM -- ADDRESS D-RAM WORD
5814
5815
5816 .TITLE KLIFE -- DEPOSIT/EXAMINE KL MEMORY
5817 013056 IDENT$ 5,1
.IDENT /005010/
5818 ;
5819 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
5820 ; ALL RIGHTS RESERVED.
5821 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
5822 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
5823 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
5824 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
5825 ;
5826 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
5827 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
5828 ; EQUIPMENT CORPORATION.
5829 ;
5830 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
5831 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
5832 ;
5833 ; VERSION 05-01
5834 ;
5835 ; ALAN D. PECKHAM 29-MAR-77
5836 ;
5837 ; MODIFIED BY:
5838 ;
5839 ; R. BELANGER 24-AUG-78 FIX CROCK IN ".DESW" MAINTENANCE
5840 ;
5841 ; FUNCTION: ROUTINES TO ACCESS KL MEMORY.
5842 ;
5843 ; LOCAL MACROS
5844 ;
5845 .MCALL PREX$,PRDP$
5846 ;
5847 ; LOCAL DATA
5848 ;
5849 001122 .PSECT DATA,D
5850 001122 DFEDPB: PRDP$ 0,DFEAD,DFEBF,ED.PHY ; DPB FOR PRIVLEDGED DEPOSIT.
001122 011 005 .BYTE DR.DTE,5
001124 016 200 .BYTE DF.PDP,ED.PHY
001126 001146' .WORD DFEAD
001130 001152' .WORD DFEBF
001132 000000 .WORD 0
5851 001134 DFEEXB: PREX$ 0,DFEAD,DFEBF,ED.PHY ; DPB FOR PRIVLEDGED EXAMINE.
001134 011 005 .BYTE DR.DTE,5
001136 015 200 .BYTE DF.PEX,ED.PHY
001140 001146' .WORD DFEAD
001142 001152' .WORD DFEBF
001144 000000 .WORD 0
5852 001146 DFEAD: WD22$ 0 ; ADDRESS OF MEMORY ACCESS.
001146 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
5853 .EVEN
5854 001152 DFEBF: WD36$ 0 0 ; DATA TO WRITE OR READ.
001152 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
001155 000 000 .BYTE BY$$3,BY$$4
5855 .EVEN
5856 002325 .PSECT TEXT,D
KLIFE -- DEPOSIT/EXAMINE KL MEM MACRO M1113 03-APR-86 20:55 PAGE 131-1
$ADRAM -- ADDRESS D-RAM WORD
5857 002325 TFEDFL: ERROR <DEPOSIT FAILED>
002325 077 040 104 .ASCIZ \? DEPOSIT FAILED\
002330 105 120 117
002333 123 111 124
002336 040 106 101
002341 111 114 105
002344 104 000
5858 002346 TFEEFL: ERROR <EXAMINE FAILED>
002346 077 040 105 .ASCIZ \? EXAMINE FAILED\
002351 130 101 115
002354 111 116 105
002357 040 106 101
002362 111 114 105
002365 104 000
5859 013056 .PSECT
KLIFE -- DEPOSIT/EXAMINE KL MEM MACRO M1113 03-APR-86 20:55 PAGE 132
$DPOS -- DEPOSIT KL MEMORY ROUTINE
5861 .SBTTL $DPOS -- DEPOSIT KL MEMORY ROUTINE
5862 ;+
5863 ; DEPOSIT GIVEN WORD INTO PHYSICAL CORE.
5864 ;
5865 ; INPUTS:
5866 ; R1 - ADDRESS OF 36 BIT DATA WORD.
5867 ; R0 - 22 BIT KL ADDRESS.
5868 ;
5869 ; OUTPUTS:
5870 ; CARRY IS SET ON ERROR AND MESSAGE IS DISPLAYED.
5871 ;-
5872
5873 013056 $DPOST::
5874 013056 005046 CLR -(SP) ; SET UP THE ADDRESS
5875 013060 PUSH R0 ; SO
013060 010046 MOV R0,-(SP)
5876 013062 010600 MOV SP,R0 ; POINT TO ADDRESS
5877 013064 CALL $DPOS ; DO THE DEPOSIT
013064 004737 013074' JSR PC,$DPOS
5878 013070 032626 BIT (SP)+,(SP)+ ; CLEAR STACK
5879 013072 RETURN ; TO CALLER
013072 000207 RTS PC
5880
5881 013074 $DPOS::
5882 013074 004537 024204' JSR R5,$RSAVE
5883 013100 CALL LFEMVA ; SET UP PROPER BOUNDARY
013100 004737 013330' JSR PC,LFEMVA
5884 013104 CALL LFECKN ; MAKE SURE THE CLOCK IS ON.
013104 004737 013354' JSR PC,LFECKN
5885 013110 103431 BCS 90$
5886 013112 012704 001152' MOV #DFEBF,R4 ; SET UP TEMPORARY WORK AREA
5887 013116 012703 000005 MOV #5,R3 ; AREA COUNT
5888 013122 112124 10$: MOVB (R1)+,(R4)+ ; MOVE IN -11 DATA
5889 013124 077302 SOB R3,10$ ; CONTINUE MOVE
5890 013126 142744 177760 BICB #^C17,-(R4) ; CLEAR HIGH BYTE
5891 013132 TRACK DP,DFEAD,DFEBF
013132 004037 013144' JSR R0,64$
013136 050104 .WORD "DP
013140 001146' .WORD DFEAD
013142 001152' .WORD DFEBF
013144 004737 024252' 64$: JSR PC,$TRACK
013150 012600 MOV (SP)+,R0
5892 013152 DIR$ #DFEDPB ; DO DEPOSIT TO KL
013152 012746 001122' MOV #DFEDPB,-(SP)
013156 104375 EMT 375
5893 013160 103005 BCC 90$
5894 013162 PRINT #TFEDFL ; INFORM OF ERROR.
013162 012700 002325' MOV #TFEDFL,R0
013166 004737 027634' JSR PC,$TTMSG
5895 013172 000261 SEC
5896 013174 90$: RETURN
013174 000207 RTS PC
KLIFE -- DEPOSIT/EXAMINE KL MEM MACRO M1113 03-APR-86 20:55 PAGE 133
$EXAM -- EXAMINE KL MEMORY ROUTINE
5898 .SBTTL $EXAM -- EXAMINE KL MEMORY ROUTINE
5899 ;+
5900 ; EXAMINE GIVEN WORD FROM KL PHYSICAL CORE.
5901 ;
5902 ; INPUTS:
5903 ; R1 - ADDRESS OF BUFFER TO RECIEVE DATA.
5904 ; R0 - 22 BIT KL ADDRESS.
5905 ;
5906 ; OUTPUTS:
5907 ; CARRY IS SET ON ERROR AND MESSAGE IS DISPLAYED.
5908 ;-
5909
5910 .ENABL LSB
5911
5912 013176 $EXAMT::
5913 013176 005046 CLR -(SP) ; SET UP THE ADDRESS
5914 013200 PUSH R0 ; SO
013200 010046 MOV R0,-(SP)
5915 013202 010600 MOV SP,R0 ; POINT TO ADDRESS
5916 013204 CALL $EXAM ; DO THE EXAMINE
013204 004737 013224' JSR PC,$EXAM
5917 013210 032626 BIT (SP)+,(SP)+ ; CLEAR THE STACK
5918 013212 000402 BR 10$ ; OUT THRU COMMON EXIT
5919 ;
5920 013214 $EXAMD::
5921 013214 CALL $EXAM ; DO THE EXAMINE
013214 004737 013224' JSR PC,$EXAM
5922 013220 10$:
5923 013220 010100 MOV R1,R0 ; DATA PONTER TO R0
5924 013222 RETURN ; TO CALLER
013222 000207 RTS PC
5925
5926 .DSABL LSB
5927
5928 013224 $EXAM::
5929 013224 004537 024204' JSR R5,$RSAVE
5930 013230 CALL LFEMVA
013230 004737 013330' JSR PC,LFEMVA
5931 013234 CALL LFECKN ; MAKE SURE THE CLOCK IS ON.
013234 004737 013354' JSR PC,LFECKN
5932 013240 103425 BCS 90$
5933 013242 DIR$ #DFEEXB ; DO KL EXAMINE
013242 012746 001134' MOV #DFEEXB,-(SP)
013246 104375 EMT 375
5934 013250 TRACK EX,DFEAD,DFEBF
013250 004037 013262' JSR R0,64$
013254 054105 .WORD "EX
013256 001146' .WORD DFEAD
013260 001152' .WORD DFEBF
013262 004737 024252' 64$: JSR PC,$TRACK
013266 012600 MOV (SP)+,R0
5935 013270 103411 BCS 90$
5936 013272 012702 000005 MOV #5,R2
5937 013276 012700 001152' MOV #DFEBF,R0
5938 013302 112021 10$: MOVB (R0)+,(R1)+
5939 013304 077202 SOB R2,10$
5940 013306 142741 177760 BICB #^C17,-(R1)
KLIFE -- DEPOSIT/EXAMINE KL MEM MACRO M1113 03-APR-86 20:55 PAGE 133-1
$EXAM -- EXAMINE KL MEMORY ROUTINE
5941 013312 RETURN
013312 000207 RTS PC
5942 013314 90$: PRINT #TFEEFL ; INFORM OPERATOR OF ERROR.
013314 012700 002346' MOV #TFEEFL,R0
013320 004737 027634' JSR PC,$TTMSG
5943 013324 000261 SEC
5944 013326 RETURN
013326 000207 RTS PC
KLIFE -- DEPOSIT/EXAMINE KL MEM MACRO M1113 03-APR-86 20:55 PAGE 134
$EXAM -- EXAMINE KL MEMORY ROUTINE
5946 ;+
5947 ; GET 22-BIT ADDRESS AND PLACE IN WORD-ALIGNED HOLDING AREA.
5948 ;-
5949
5950 013330 012705 001146' LFEMVA: MOV #DFEAD,R5
5951 013334 112025 MOVB (R0)+,(R5)+ ; CLAIM THE CALLER'S
5952 013336 112025 MOVB (R0)+,(R5)+ ; KL ADDRESS
5953 013340 111015 MOVB (R0),(R5) ; FOR OUR OWN.
5954 013342 042715 177700 BIC #^C77,(R5) ; 22 BITS PLEASE.
5955 013346 012700 001146' MOV #DFEAD,R0
5956 013352 RETURN
013352 000207 RTS PC
5957
5958 ;+
5959 ; MAKE SURE THE CLOCK IS ON
5960 ;-
5961
5962 013354 105737 000042' LFECKN: TSTB .DESW ; IF OUR SWITCH IS >0,
5963 013360 003026 BGT 90$ ; THEN MICROCODE IS USEABLE.
5964 013362 CALL $KLMR ; OTHERWISE RESET
013362 004737 015232' JSR PC,$KLMR
5965 013366 103423 BCS 90$
5966 013370 012700 001000 MOV #.STRCL,R0 ; AND START CLOCK.
5967 013374 CALL $DFXC
013374 004737 013760' JSR PC,$DFXC
5968 013400 103416 BCS 90$
5969 013402 012702 001750 MOV #1000.,R2 ; WAIT FOR HALT LOOP
5970 013406 10$: CALL $DTRW1 ; BY READING DTE REG #1
013406 004737 024114' JSR PC,$DTRW1
5971 013412 103411 BCS 90$ ; AND
5972 013414 032700 001000 BIT #DS06,R0 ; CHECKING HALT BIT.
5973 013420 001003 BNE 20$
5974 013422 077207 SOB R2,10$ ; IF TAKES TOO LONG
5975 013424 000261 SEC ; THEN WE ARE IN TROUBLE.
5976 013426 RETURN
013426 000207 RTS PC
5977 013430 112737 000001 000042' 20$: MOVB #1,.DESW ; OTHERWISE INDICATE
5978 013436 90$: RETURN ; OKAY TO USE.
013436 000207 RTS PC
KLIFE -- DEPOSIT/EXAMINE KL MEM MACRO M1113 03-APR-86 20:55 PAGE 135
$EXAM -- EXAMINE KL MEMORY ROUTINE
5980
5981 .TITLE KLIFR -- PERFORM DIAGNOSTIC FUNCTION READ
5982 013440 IDENT$ 5,0
.IDENT /005000/
5983 ;
5984 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
5985 ; ALL RIGHTS RESERVED.
5986 ; THIS SOFTWARE IS FURNISHED TOPURCHASER UNDER A LICENSE FOR USE
5987 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
5988 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
5989 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
5990 ;
5991 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
5992 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
5993 ; EQUIPMENT CORPORATION.
5994 ;
5995 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
5996 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
5997 ;
5998 ; VERSION 05-00
5999 ;
6000 ; ALAN D. PECKHAM 29-MAR-77
6001 ;
6002 ; MODIFIED BY:
6003 ;
6004 ; FUNCTION: DO A FUNCTION READ TO THE DTE20.
6005 ;
6006 ; LOCAL MACROS
6007 ;
6008 .MCALL KLDR$
6009 ;
6010 ; LOCAL DATA
6011 ;
6012 001160 .PSECT DATA,D
6013 001160 DFRRDB: KLDR$ 0,.DFBLK,.DREG,0 ; DPB FOR FUNCTION READ.
001160 002411 .WORD 400*5.+DR.DTE
001162 012 000 .BYTE DF.KLR,0/400
001164 000256' .WORD .DFBLK
001166 000272' .WORD .DREG
001170 000000 .WORD 0
6014 .EVEN
6015 002367 .PSECT TEXT,D
6016 002367 TFREMS: ERROR <DF READ FAILED> ; READ FAILED ERROR MESSAGE.
002367 077 040 104 .ASCIZ \? DF READ FAILED\
002372 106 040 122
002375 105 101 104
002400 040 106 101
002403 111 114 105
002406 104 000
6017 013440 .PSECT
KLIFR -- PERFORM DIAGNOSTIC FUN MACRO M1113 03-APR-86 20:55 PAGE 136
$DFRD -- DIAGNOSTIC READ FUNCTION
6019 .SBTTL $DFRD -- DIAGNOSTIC READ FUNCTION
6020 ;+
6021 ; PERFORM A DIAGNOSTIC READ FUNCTION.
6022 ;
6023 ; INPUTS:
6024 ; R1 - ADDRESS OF 36 BIT BUFFER TO RECIEVE DATA FROM READ.
6025 ; R0 - FUNCTION CODE OF READ TO PERFORM.
6026 ;
6027 ; OUTPUTS:
6028 ; (R1) - DATA READ FROM DIAGNOSTIC IS SUCCESSFUL.
6029 ; CARRY IS SET IF ERROR, AND ERROR MESSAGE IS DISPLAYED.
6030 ;-
6031
6032 013440 $DDFRD::
6033 013440 000300 SWAB R0 ; POSITION READ CODE
6034 013442 006300 ASL R0 ; SO
6035 013444 $DFRD::
6036 013444 PUSH <R1,R0>
013444 010146 MOV R1,-(SP)
013446 010046 MOV R0,-(SP)
6037 013450 000300 SWAB R0 ; GET FUNCTION CODE TO LOW BYTE
6038 013452 110037 001163' MOVB R0,DFRRDB+3 ; STORE FUNCTION CODE
6039 013456 DIR$ #DFRRDB
013456 012746 001160' MOV #DFRRDB,-(SP)
013462 104375 EMT 375
6040 013464 TRACK FR,DFRRDB+3,.DFRBK
013464 004037 013476' JSR R0,64$
013470 051106 .WORD "FR
013472 001163' .WORD DFRRDB+3
013474 000264' .WORD .DFRBK
013476 004737 024252' 64$: JSR PC,$TRACK
013502 012600 MOV (SP)+,R0
6041 013504 103412 BCS 10$
6042 013506 012700 000264' MOV #.DFRBK,R0
6043 013512 005701 TST R1 ; TEST R1
6044 013514 001413 BEQ 90$ ; BYPASS LOADING
6045 013516 112021 MOVB (R0)+,(R1)+ ; REMOVE DATA FROM DEXWD3
6046 013520 112021 MOVB (R0)+,(R1)+
6047 013522 112021 MOVB (R0)+,(R1)+ ; FROM DEXWD2
6048 013524 112021 MOVB (R0)+,(R1)+
6049 013526 111011 MOVB (R0),(R1) ; FROM DEXWD1
6050 013530 000405 BR 90$
6051 013532 10$: PRINT #TFREMS ; INDICATE FUNC READ FAILED
013532 012700 002367' MOV #TFREMS,R0
013536 004737 027634' JSR PC,$TTMSG
6052 013542 000261 SEC
6053 013544 90$: POP <R0,R1>
013544 012600 MOV (SP)+,R0
013546 012601 MOV (SP)+,R1
6054 013550 RETURN
013550 000207 RTS PC
KLIFR -- PERFORM DIAGNOSTIC FUN MACRO M1113 03-APR-86 20:55 PAGE 137
$DFRD -- DIAGNOSTIC READ FUNCTION
6056
6057 .TITLE KLIFW -- PERFORM DIAGNOSTIC FUNCTION WRITE
6058 013552 IDENT$ 5,0
.IDENT /005000/
6059 ;
6060 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
6061 ; ALL RIGTHS RESERVED.
6062 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
6063 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
6064 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
6065 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
6066 ;
6067 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
6068 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
6069 ; EQUIPMENT CORPORATION.
6070 ;
6071 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
6072 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
6073 ;
6074 ; VERSION 05-00
6075 ;
6076 ; ALAN D. PECKHAM 29-MAR-77
6077 ;
6078 ; MODIFIED BY:
6079 ;
6080 ; FUNCTION: DO A FUNCTION WRITE TO THE DTE20.
6081 ;
6082 ; LOCAL MACROS
6083 ;
6084 .MCALL KLDW$,PREX$
6085 ;
6086 ; LOCAL DATA
6087 ;
6088 001172 .PSECT DATA,D
6089 001172 DFWWDB: KLDW$ 0,.DFBLK,.DREG,0 ; DPB FOR FUNCTION WRITE.
001172 002411 .WORD 400*5.+DR.DTE
001174 013 000 .BYTE DF.KLW,0/400
001176 000256' .WORD .DFBLK
001200 000272' .WORD .DREG
001202 000000 .WORD 0
6090 001204 DFWEDB: PREX$ 0,.ZERO,DFWBF,ED.PHY ; PRIVLEDGED EXAMINE DPB.
001204 011 005 .BYTE DR.DTE,5
001206 015 200 .BYTE DF.PEX,ED.PHY
001210 000000' .WORD .ZERO
001212 001216' .WORD DFWBF
001214 000000 .WORD 0
6091 001216 DFWBF: WD36$ 0 0 ; EXAMINE SCRATCH BUFFER.
001216 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
001221 000 000 .BYTE BY$$3,BY$$4
6092 .EVEN
6093 002410 .PSECT TEXT,D
6094 002410 TFWEMS: ERROR <DF WRITE FAILED>
002410 077 040 104 .ASCIZ \? DF WRITE FAILED\
002413 106 040 127
002416 122 111 124
002421 105 040 106
002424 101 111 114
KLIFW -- PERFORM DIAGNOSTIC FUN MACRO M1113 03-APR-86 20:55 PAGE 137-1
$DFRD -- DIAGNOSTIC READ FUNCTION
002427 105 104 000
6095 013552 .PSECT
KLIFW -- PERFORM DIAGNOSTIC FUN MACRO M1113 03-APR-86 20:55 PAGE 138
$DFWR -- DIAGNOSTIC WRITE FUNCTION
6097 .SBTTL $DFWR -- DIAGNOSTIC WRITE FUNCTION
6098 ;+
6099 ; PERFORM DIAGNOSTIC WRITE FUNCTION.
6100 ;
6101 ; INPUTS:
6102 ; R1 - ADDRESS OF 36 BIT WORD TO WRITE.
6103 ; R0 - FUNCTION CODE OF WRITE TO PERFORM.
6104 ;
6105 ; OUTPUTS:
6106 ; CARRY IS SET IF ERROR, AND ERROR MESSAGE IS DISPLAYED.
6107 ;-
6108
6109 013552 $DDFWR::
6110 013552 000300 SWAB R0 ; POSITION WRITE CODE
6111 013554 006300 ASL R0 ; SO
6112 013556 $DFWR::
6113 013556 PUSH <R1,R0>
013556 010146 MOV R1,-(SP)
013560 010046 MOV R0,-(SP)
6114 013562 CALL LFWCKF ; TURN OFF CLOCK
013562 004737 013676' JSR PC,LFWCKF
6115 013566 103440 BCS 90$
6116 013570 000300 SWAB R0 ; GET FUNCTION CODE TO LOW BYTE
6117 013572 110037 001175' MOVB R0,DFWWDB+3 ; SET THE FUNCTION CODE IN DPB
6118 013576 012700 000256' MOV #.DFWBK,R0 ; POINT TO TOP OF 3 WORDS FOR WRITE
6119 013602 005701 TST R1 ; TEST R1
6120 013604 001405 BEQ 10$ ; BYPASS LOADING
6121 013606 112120 MOVB (R1)+,(R0)+ ; FILL IN DATA IN DEXWD3
6122 013610 112120 MOVB (R1)+,(R0)+
6123 013612 112120 MOVB (R1)+,(R0)+ ; IN DEXWD2
6124 013614 112120 MOVB (R1)+,(R0)+
6125 013616 111110 MOVB (R1),(R0) ; IN DEXWD1
6126 013620 042760 177760 000004 10$: BIC #^C17,4(R0) ; JUST SAVE BITS 0-3 IN DEXWD1
6127 013626 DIR$ #DFWWDB ; DO THE FUNCTION WRITE
013626 012746 001172' MOV #DFWWDB,-(SP)
013632 104375 EMT 375
6128 013634 TRACK FW,DFWWDB+3,.DFWBK
013634 004037 013646' JSR R0,64$
013640 053506 .WORD "FW
013642 001175' .WORD DFWWDB+3
013644 000256' .WORD .DFWBK
013646 004737 024252' 64$: JSR PC,$TRACK
013652 012600 MOV (SP)+,R0
6129 013654 103005 BCC 90$ ; WRITE OKAY
6130 013656 20$: PRINT #TFWEMS
013656 012700 002410' MOV #TFWEMS,R0
013662 004737 027634' JSR PC,$TTMSG
6131 013666 000261 SEC
6132 013670 90$: POP <R0,R1>
013670 012600 MOV (SP)+,R0
013672 012601 MOV (SP)+,R1
6133 013674 RETURN ; ERROR
013674 000207 RTS PC
KLIFW -- PERFORM DIAGNOSTIC FUN MACRO M1113 03-APR-86 20:55 PAGE 139
$DFWR -- DIAGNOSTIC WRITE FUNCTION
6135 ;+
6136 ; MAKE SURE THE KL CLOCK IS OFF FOR FUNCTION WRITE.
6137 ;
6138 ; NO INPUTS OR OUTPUTS.
6139 ;-
6140
6141 013676 105037 000042' LFWCKF: CLRB .DESW ; DEP/EXAM MUST START FRESH.
6142 013702 105737 000041' TSTB .CKSW ; TEST THE CLOCK CONDITION:
6143 013706 100421 BMI 90$ ; OFF IS OKAY.
6144 013710 003012 BGT 10$ ; ON - TURN IT OFF.
6145 013712 DIR$ #DFWEDB ; OTHERWISE DETERMINATE...
013712 012746 001204' MOV #DFWEDB,-(SP)
013716 104375 EMT 375
6146 013720 103006 BCC 10$ ; CLOCK IS ON ! STOP IT.
6147 013722 022737 000000G 000000G CMP #IE.EBX,$DSW ; EBOX STOPPED ?
6148 013730 001410 BEQ 90$ ; YES, WE ARE OKAY.
6149 013732 CALLR $KLMR ; SOME HORRIBLE STATE...
013732 000137 015232' JMP $KLMR
6150 013736 10$: PUSH R0 ; CLOCK IS ON -
013736 010046 MOV R0,-(SP)
6151 013740 012700 000000 MOV #.STPCL,R0 ; TURN IT OFF
6152 013744 CALL $DFXC
013744 004737 013760' JSR PC,$DFXC
6153 013750 POP R0
013750 012600 MOV (SP)+,R0
6154 013752 90$: RETURN
013752 000207 RTS PC
KLIFW -- PERFORM DIAGNOSTIC FUN MACRO M1113 03-APR-86 20:55 PAGE 140
$DFWR -- DIAGNOSTIC WRITE FUNCTION
6156
6157 .TITLE KLIFX -- PERFORM DIAGNOSTIC FUNCTION EXECUTE
6158 013754 IDENT$ 5,1
.IDENT /005010/
6159 ;
6160 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
6161 ; ALL RIGHTS RESERVED.
6162 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
6163 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
6164 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
6165 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
6166 ;
6167 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
6168 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
6169 ; EQUIPMENT CORPORATION.
6170 ;
6171 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
6172 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
6173 ;
6174 ; VERSION 05-01
6175 ;
6176 ; ALAN D. PECKHAM 29-MAR-77
6177 ;
6178 ; MODIFIED BY:
6179 ;
6180 ; R. BELANGER 24-AUG-77 FIX CROCK IN ".DESW" MAINTENANCE
6181 ;
6182 ; FUNCTION: DO A FUNCTION WRITE TO THE DTE20.
6183 ;
6184 ; LOCAL MACROS
6185 ;
6186 .MCALL KLDX$
6187 ;
6188 ; LOCAL VARIABLES
6189 ;
6190 001224 .PSECT DATA,D
6191 001224 DFXXDB: KLDX$ 0,.DFBLK,.DREG,0 ; DPB FOR FUNCTION EXECUTE.
001224 002411 .WORD 400*5.+DR.DTE
001226 014 000 .BYTE DF.KLX,0/400
001230 000256' .WORD .DFBLK
001232 000272' .WORD .DREG
001234 000000 .WORD 0
6192 .EVEN
6193 002432 .PSECT TEXT,D
6194 002432 TFXEMS: ERROR <DF EXECUTE FAILED>
002432 077 040 104 .ASCIZ \? DF EXECUTE FAILED\
002435 106 040 105
002440 130 105 103
002443 125 124 105
002446 040 106 101
002451 111 114 105
002454 104 000
6195 013754 .PSECT
KLIFX -- PERFORM DIAGNOSTIC FUN MACRO M1113 03-APR-86 20:55 PAGE 141
$DFXC -- DIAGNOSTIC EXECUTE FUNCTION
6197 .SBTTL $DFXC -- DIAGNOSTIC EXECUTE FUNCTION
6198 ;+
6199 ; PERFORM A DIAGNOSTIC EXECUTE FUNCTION.
6200 ;
6201 ; INPUTS:
6202 ; R0 - EXECUTE FUNCTION CODE.
6203 ;
6204 ; OUTPUTS:
6205 ; CARRY IS SET IF OPERATION FAILS.
6206 ;-
6207
6208 013754 $DDFXC::
6209 013754 000300 SWAB R0 ; POSITION EXECUTE CODE
6210 013756 006300 ASL R0 ; SO
6211 013760 $DFXC::
6212 013760 PUSH <R1,R0>
013760 010146 MOV R1,-(SP)
013762 010046 MOV R0,-(SP)
6213 013764 022700 001000 CMP #.STRCL,R0 ; START CLOCK ?
6214 013770 001411 BEQ 10$
6215 013772 022700 007000 CMP #.SETMR,R0 ; DOES IT STOP CLOCK ?
6216 013776 002414 BLT 20$
6217 014000 112737 177777 000041' MOVB #-1,.CKSW ; INDICATE CLOCK STOPPED.
6218 014006 105037 000042' CLRB .DESW ; DEP/EXAM MUST START FRESH.
6219 014012 000406 BR 20$
6220 014014 112737 000001 000041' 10$: MOVB #+1,.CKSW ; INDICATE CLOCK STARTED.
6221 014022 112737 000001 000042' MOVB #1,.DESW
6222 014030 000300 20$: SWAB R0 ; GET FUNCTION CODE TO LOW BYTE
6223 014032 110037 001227' MOVB R0,DFXXDB+3 ; SET FUNCTION CODE IN DPB
6224 014036 TRACK FX,DFXXDB+3
014036 004037 014050' JSR R0,64$
014042 054106 .WORD "FX
014044 001227' .WORD DFXXDB+3
014046 000000 .WORD
014050 004737 024252' 64$: JSR PC,$TRACK
014054 012600 MOV (SP)+,R0
6225 014056 DIR$ #DFXXDB
014056 012746 001224' MOV #DFXXDB,-(SP)
014062 104375 EMT 375
6226 014064 103007 BCC 30$
6227 014066 105037 000041' CLRB .CKSW ; CLOCK STATUS INDETERMINATE.
6228 014072 PRINT #TFXEMS ; INDICATE FUNC EX FAILED
014072 012700 002432' MOV #TFXEMS,R0
014076 004737 027634' JSR PC,$TTMSG
6229 014102 000261 SEC
6230 014104 30$: POP <R0,R1>
014104 012600 MOV (SP)+,R0
014106 012601 MOV (SP)+,R1
6231 014110 RETURN
014110 000207 RTS PC
KLIFX -- PERFORM DIAGNOSTIC FUN MACRO M1113 03-APR-86 20:55 PAGE 142
$DFXC -- DIAGNOSTIC EXECUTE FUNCTION
6233
6234
6235 .TITLE KLIGC -- SET CACHE CONFIGURATION TABLES
6236 014112 IDENT$ 5,0
.IDENT /005000/
6237 ;
6238 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
6239 ; ALL RIGHTS RESERVED.
6240 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
6241 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
6242 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
6243 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
6244 ;
6245 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
6246 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
6247 ; EQUIPMENT CORPORATION.
6248 ;
6249 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
6250 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
6251 ;
6252 ; VERSION 05-00
6253 ;
6254 ; ALAN D. PECKHAM 12-APR-77
6255 ;
6256 ; MODIFIED BY:
6257 ;
6258 ; FUNCTION: THIS MODULE SETS UP THE CACHE CONFIGURATION TABLES
6259 ; EITHER FROM THE CONFIGURATION FILE OR FOR ALL CACHES.
6260 ;
6262 ; LOCAL DATA
6263 ;
6264 001236 .PSECT DATA,D
6265 001236 043240 000000 000000 DGCFNM: .RAD50 /KL CFG/ ; CONFIGURATION FILE NAME.
001244 011667
6266 001246 000000 .WORD 0 ; GET LATEST VERSION.
6267 001250 005 005 .BYTE 5,5
6268 001252 054523 000000 .WORD "SY,0
6269 002456 .PSECT TEXT,D
6270 002456 TGCNFL: WARNING <NO FILE - ALL CACHE BEING CONFIGURED>
002456 045 040 116 .ASCIZ \% NO FILE - ALL CACHE BEING CONFIGURED\
002461 117 040 106
002464 111 114 105
002467 040 055 040
002472 101 114 114
002475 040 103 101
002500 103 110 105
002503 040 102 105
002506 111 116 107
002511 040 103 117
002514 116 106 111
002517 107 125 122
002522 105 104 000
6271 014112 .PSECT
KLIGC -- SET CACHE CONFIGURATIO MACRO M1113 03-APR-86 20:55 PAGE 143
$GETCA -- SET CACHE CONFIGURATION TABLES
6273 .SBTTL $GETCA -- SET CACHE CONFIGURATION TABLES
6274 ;+
6275 ; GET CACHES TO BE ENABLED FROM FILE OR SET TO CONFIGURE ALL CACHE.
6276 ;
6277 ; INPUTS:
6278 ; .DCSW - IF NON-NEGATIVE THEN USE LAST CONFIGURATION, OTHERWISE
6279 ; SET FOR ALL CACHE.
6280 ;
6281 ; OUTPUTS:
6282 ; .NCACH - NUMBER OF CACHES TO USE.
6283 ; .CACHN - NUMBERS OF THE CACHES TO BE USED.
6284 ;-
6285
6286 014112 105737 000031' $GETCA::TSTB .DCSW ; IF LAST CONFIGURATION INDICATED
6287 014116 002417 BLT 20$
6288 014120 012700 001236' MOV #DGCFNM,R0 ; THEN FIND CONFIGURATION FILE.
6289 014124 CALL $LOOKUP
014124 004737 007562' JSR PC,$LOOKUP
6290 014130 103030 BCC 50$
6291 014132 122737 000000G 000526' CMPB #IE.NSF,.SYSTA ; IF NO FILE
6292 014140 001060 BNE 90$
6293 014142 PRINT #TGCNFL ; (NO FILE, OPERATOR !)
014142 012700 002456' MOV #TGCNFL,R0
014146 004737 027634' JSR PC,$TTMSG
6294 014152 105237 000031' 10$: INCB .DCSW ; THEN CONFIGURE ALL 4.
6295 014156 012701 000065' 20$: MOV #.CACHN,R1 ; FIX TABLES
6296 014162 005004 CLR R4
6297 014164 110421 30$: MOVB R4,(R1)+
6298 014166 005204 INC R4
6299 014170 022704 000004 CMP #4,R4 ; FOR FOUR CACHES.
6300 014174 001373 BNE 30$
6301 014176 110437 000064' MOVB R4,.NCACH
6302 014202 RETURN
014202 000207 RTS PC
6303 014204 40$: CALL $READS
014204 004737 010254' JSR PC,$READS
6304 014210 103434 BCS 90$
6305 014212 50$: CALL $READC ; GET A RECORD
014212 004737 010216' JSR PC,$READC
6306 014216 103431 BCS 90$
6307 014220 022700 000002 CMP #2,R0 ; IF IT IS THE CACHE RECORD,
6308 014224 001405 BEQ 60$ ; THEN PROCESS IT.
6309 014226 005700 TST R0 ; IF NOT END-OF-FILE
6310 014230 001365 BNE 40$ ; THEN GET NEW RECORD.
6311 014232 CALL $CLOSE ; OTHERWISE CLOSE FILE
014232 004737 007056' JSR PC,$CLOSE
6312 014236 000745 BR 10$ ; AND USE ALL CACHES.
6313 014240 60$: CALL $READB ; PICK UP
014240 004737 010420' JSR PC,$READB
6314 014244 103416 BCS 90$
6315 014246 110004 MOVB R0,R4 ; NUMBER OF CACHES
6316 014250 001410 BEQ 80$
6317 014252 010002 MOV R0,R2 ; AND
6318 014254 012701 000065' MOV #.CACHN,R1
6319 014260 70$: CALL $READB
014260 004737 010420' JSR PC,$READB
6320 014264 103406 BCS 90$
KLIGC -- SET CACHE CONFIGURATIO MACRO M1113 03-APR-86 20:55 PAGE 143-1
$GETCA -- SET CACHE CONFIGURATION TABLES
6321 014266 110021 MOVB R0,(R1)+ ; AND CACHE NUMBERS.
6322 014270 077205 SOB R2,70$
6323 014272 110437 000064' 80$: MOVB R4,.NCACH ; SET THE NUMBER OF CACHES
6324 014276 CALLR $CLOSE ; AND ALL FINISHED.
014276 000137 007056' JMP $CLOSE
6325 014302 90$: CALL $PURGE ; ERROR EXIT.
014302 004737 010124' JSR PC,$PURGE
6326 014306 000261 SEC
6327 014310 RETURN
014310 000207 RTS PC
KLIGC -- SET CACHE CONFIGURATIO MACRO M1113 03-APR-86 20:55 PAGE 144
$GETCA -- SET CACHE CONFIGURATION TABLES
6330
6331 .TITLE KLIGM -- SET UP MEMORY CONFIGURATION TABLES
6332 014312 IDENT$ 11,04,KLI$$F
.IDENT /A11040/
6333 ;
6334 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
6335 ; ALL RIGHTS RESERVED.
6336 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
6337 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
6338 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
6339 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
6340 ;
6341 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
6342 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
6343 ; EQUIPMENT CORPORATION.
6344 ;
6345 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
6346 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
6347 ;
6348 ; VERSION 11-04
6349 ;
6350 ; ALAN D. PECKHAM 12-APR-77
6351 ;
6352 ; MODIFIED BY:
6353 ;
6354 ; R. BELANGER 02-MAR-79 ADD REVERSE MEMORY CONFIGURATION
6355 ; TCO 4.2204
6356 ; R. BELANGER 25-JUL-78 INTEGRATE MOS CONFIGURATOR
6357 ;
6358 ; FUNCTION: THIS MODULE SETS UP THE MEMORY CONFIGURATION TABLES TO REFLECT
6359 ; THE LAST MEMORY CONFIGURATION OR TO USE ALL MEMORY AVAILABLE.
KLIGM -- SET UP MEMORY CONFIGUR MACRO M1113 03-APR-86 20:55 PAGE 145
$GETCA -- SET CACHE CONFIGURATION TABLES
6361 ;
6362 ; LOCAL DATA
6363 ;
6364 001256 .PSECT DATA,D
6365 001256 DGMFNM:
6366 001256 043240 000000 000000 .RAD50 /KL CFG/ ; CONFIGURATION FILE NAME.
001264 011667
6367 001266 000000 .WORD 0 ; GET LATEST VERSION.
6368 001270 005 005 .BYTE 5,5
6369 001272 054523 000000 .WORD "SY,0
6370 002525 .PSECT TEXT,D
6371 002525 TGMNFL:
6372 002525 WARNING <NO FILE - ALL MEMORY BEING CONFIGURED>
002525 045 040 116 .ASCIZ \% NO FILE - ALL MEMORY BEING CONFIGURED\
002530 117 040 106
002533 111 114 105
002536 040 055 040
002541 101 114 114
002544 040 115 105
002547 115 117 122
002552 131 040 102
002555 105 111 116
002560 107 040 103
002563 117 116 106
002566 111 107 125
002571 122 105 104
002574 000
6373 014312 .PSECT
KLIGM -- SET UP MEMORY CONFIGUR MACRO M1113 03-APR-86 20:55 PAGE 146
$GETMM -- SET UP MEMORY CONFIGURATION TABLES
6375 .SBTTL $GETMM -- SET UP MEMORY CONFIGURATION TABLES
6376 ;+
6377 ; GET THE LAST CONFIGURATION FROM THE CONFIGURATION FILE. IF THERE IS NO
6378 ; FILE, THEN CONFIGURE FOR ALL MEMORY.
6379 ;
6380 ; OUTPUTS:
6381 ; .DMSW - MADE NEGATIVE IF ALL MEMORY IS TO BE CONFIGURED (NO FILE).
6382 ; .CTLTP - TABLE OF DESIRED CONTROLLERS
6383 ; .CFGTB - TABLE OF CONFIGURATION MASKS
6384 ; .CFMRV - FORWARD/REVERSE CONFIGURATION INDICATOR
6385 ;-
6386
6387 014312 $GETMM::
6388 014312 105037 000046' CLRB .MFCT ; INIT COUNTER TO ZERO
6389 014316 012701 000040 MOV #CTLS,R1 ; INIT COUNTER
6390 014322 012700 000134' MOV #.CFGTB,R0 ; TABLE POINTER TO R0
6391 014326 112761 177777 000072' MOVB #-1,.CTLTP(R1) ; [4.2204] INIT ".CFMRV" CONTROLLER TYPE TO -1
6392 014334 10$:
6393 014334 012720 100000 MOV #BIT15,(R0)+ ; INVALIDATE THE CONFIGURATION TABLE
6394 014340 105061 000071' CLRB .CTLTP-1(R1) ; AND THE CONTROLLER TABLE
6395 014344 077105 SOB R1,10$ ; LOOP TILL DONE
6396 014346 005010 CLR (R0) ; [4.2204] INIT TO FORWARD CONFIGURATION
6397 014350 012700 001256' MOV #DGMFNM,R0 ; LOOK FOR CONFIGURATION FILE
6398 014354 CALL $LOOKUP
014354 004737 007562' JSR PC,$LOOKUP
6399 014360 103016 BCC 50$
6400 014362 122737 000000G 000526' CMPB #IE.NSF,.SYSTA ; IF NO FILE
6401 014370 001070 BNE 90$ ; OTHER ERROR -- FATAL
6402 014372 PRINT #TGMNFL ; (NO FILE, OPERATOR !)
014372 012700 002525' MOV #TGMNFL,R0
014376 004737 027634' JSR PC,$TTMSG
6403 014402 20$:
6404 014402 105337 000032' DECB .DMSW ; THEN USE ALL MEMORY.
6405 014406 30$:
6406 014406 RETURN ; TO CALLER
014406 000207 RTS PC
6407 ;
6408 ; HERE TO SKIP PRECEEDING NON-CONTROLLER RECORDS
6409 ;
6410 014410 40$:
6411 014410 CALL $READS
014410 004737 010254' JSR PC,$READS
6412 014414 103456 BCS 90$
6413 014416 50$:
6414 014416 CALL $READC ; GET A RECORD.
014416 004737 010216' JSR PC,$READC
6415 014422 103453 BCS 90$
6416 014424 022700 000001 CMP #1,R0 ; IF IT A CONTROLLER RECORD
6417 014430 001404 BEQ 60$ ; THEN PROCESS, OTHERWISE
6418 014432 002766 BLT 40$ ; IF NOT END OF FILE, GET ANOTHER.
6419 014434 CALL $CLOSE ; IF NO CONTROLLER RECORDS
014434 004737 007056' JSR PC,$CLOSE
6420 014440 000760 BR 20$ ; THEN USE ALL MEMORY.
6421 ;
6422 ;
6423 ; HERE TO READ AND PROCESS A CONTROLLER RECORD
6424 ;
KLIGM -- SET UP MEMORY CONFIGUR MACRO M1113 03-APR-86 20:55 PAGE 146-1
$GETMM -- SET UP MEMORY CONFIGURATION TABLES
6425 014442 60$:
6426 014442 CALL $READB ; GET A CONTROLLER INDEX
014442 004737 010420' JSR PC,$READB
6427 014446 103441 BCS 90$
6428 014450 010001 MOV R0,R1 ; COPY TO R1
6429 014452 CALL $READB ; GET CONTROLLER TYPE.
014452 004737 010420' JSR PC,$READB
6430 014456 103435 BCS 90$
6431 014460 110061 000072' MOVB R0,.CTLTP(R1) ; SET IN TABLE
6432 014464 CALL $READW ; GET CONFIGURATION MASK
014464 004737 010324' JSR PC,$READW
6433 014470 103430 BCS 90$
6434 014472 006301 ASL R1 ; WORD INDEX
6435 014474 010061 000134' MOV R0,.CFGTB(R1) ; SET THAT IN THE TABLE
6436 014500 002413 BLT 80$ ; GO ON IF NOT DESIRED
6437 014502 006201 ASR R1 ; BACK TO BYTE INDEX
6438 014504 122761 000005 000072' CMPB #5,.CTLTP(R1) ; IS THIS ONE AN MF20??
6439 014512 001006 BNE 80$ ; NO -- GO ON
6440 014514 105237 000046' INCB .MFCT ; YES -- MARK THAT WE EXPECT AT LEAST THIS ONE
6441 014520 000403 BR 80$ ; AND TRY FOR NEXT RECORD
6442 ;
6443 ;
6444 ; HERE TO SKIP TRAILING NON-CONTROLLER RECORDS
6445 ;
6446 014522 70$:
6447 014522 CALL $READS ; BYPASS RECORD.
014522 004737 010254' JSR PC,$READS
6448 014526 103411 BCS 90$
6449 014530 80$:
6450 014530 CALL $READC ; GET ANOTHER RECORD
014530 004737 010216' JSR PC,$READC
6451 014534 103406 BCS 90$ ; AND
6452 014536 022700 000001 CMP #1,R0 ; IF A CONTROLLER RECORD
6453 014542 001737 BEQ 60$ ; THEN PROCESS, OTHERWISE
6454 014544 002766 BLT 70$ ; REJECT RECORDS UNTIL EOF.
6455 014546 CALLR $CLOSE ; CLOSE FILE AND RETURN.
014546 000137 007056' JMP $CLOSE
6456 ;
6457 014552 90$:
6458 014552 CALL $PURGE
014552 004737 010124' JSR PC,$PURGE
6459 014556 000261 SEC ; SO RETURN WITH ERROR.
6460 014560 RETURN
014560 000207 RTS PC
KLIGM -- SET UP MEMORY CONFIGUR MACRO M1113 03-APR-86 20:55 PAGE 147
$GETMM -- SET UP MEMORY CONFIGURATION TABLES
6462
6463 .TITLE KLIGP -- GET PAGE TABLE SELECTION VIA CONFIGURATION FILE
6464 014562 IDENT$ 1,00
.IDENT /001000/
6465 ;
6466 ; COPYRIGHT (C) 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
6467 ; ALL RIGHTS RESERVED.
6468 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
6469 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
6470 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
6471 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
6472 ;
6473 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
6474 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
6475 ; EQUIPMENT CORPORATION.
6476 ;
6477 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
6478 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
6479 ;
6480 ; VERSION 1-00
6481 ;
6482 ; M. RUDENKO 17-MAY-84
6483 ;
6484 ; MODIFIED BY:
6485 ;
6486 ;
6487 ; FUNCTION: THIS MODULE SELECTS AMOUNG PAGE TABLE ZERO, ONE OR BOTH,
6488 ; IN ACCORDANCE WITH THE CONTENTS OF THE CONFIGURATION FILE. ABSENCE
6489 ; OF A PAGE TABLE RECORD IMPLIES THAT THE DEFAULT OF BOTH PAGES BE
6490 ; USED.
KLIGP -- GET PAGE TABLE SELECTI MACRO M1113 03-APR-86 20:55 PAGE 148
$GETMM -- SET UP MEMORY CONFIGURATION TABLES
6492 ;
6493 ; LOCAL DATA
6494 ;
6495 001276 .PSECT DATA,D
6496 001276 DGPFNM:
6497 001276 043240 000000 000000 .RAD50 /KL CFG/ ; CONFIGURATION FILE NAME.
001304 011667
6498 001306 000000 .WORD 0 ; GET LATEST VERSION.
6499 001310 005 005 .BYTE 5,5
6500 001312 054523 000000 .WORD "SY,0
6501 002575 .PSECT TEXT,D
6502 002575 TGPNFL:
6503 002575 WARNING <NO FILE>
002575 045 040 116 .ASCIZ \% NO FILE\
002600 117 040 106
002603 111 114 105
002606 000
6504 014562 .PSECT
KLIGP -- GET PAGE TABLE SELECTI MACRO M1113 03-APR-86 20:55 PAGE 149
$GETPA -- GET PAGE TABLE SELECTION
6506 .SBTTL $GETPA -- GET PAGE TABLE SELECTION
6507 ;+
6508 ; GET THE LAST SELECTION FROM THE CONFIGURATION FILE. IF THERE IS NO
6509 ; FILE, THEN SELECT BOTH PAGES ZERO AND ONE.
6510 ;
6511 ; OUTPUT:
6512 ; R1 -- 0 = PAGE TABLE ZERO; 1 = PAGE TABLE ONE; -1 = BOTH
6513 ;-
6514
6515 014562 $GETPA::
6516 014562 012700 001276' MOV #DGPFNM,R0 ; LOOK FOR CONFIGURATION FILE
6517 014566 CALL $LOOKUP
014566 004737 007562' JSR PC,$LOOKUP
6518 014572 103020 BCC 50$
6519 014574 122737 000000G 000526' CMPB #IE.NSF,.SYSTA ; IF NO FILE
6520 014602 001035 BNE 90$ ; OTHER ERROR -- FATAL
6521 014604 PRINT #TGPNFL ; (NO FILE, OPERATOR !)
014604 012700 002575' MOV #TGPNFL,R0
014610 004737 027634' JSR PC,$TTMSG
6522 014614 20$:
6523 014614 012701 177777 MOV #-1,R1 ; INDICATE THAT BOTH PAGES ARE TO BE USED
6524 014620 105237 000034' INCB .PTSW ; FLAG TO WRITE CONFIG FILE LATER
6525 014624 30$:
6526 014624 RETURN ; TO CALLER
014624 000207 RTS PC
6527 ;
6528 ; HERE TO SKIP PRECEEDING NON-PAGE TABLE RECORDS
6529 ;
6530 014626 40$:
6531 014626 CALL $READS
014626 004737 010254' JSR PC,$READS
6532 014632 103421 BCS 90$
6533 014634 50$:
6534 014634 CALL $READC ; GET A RECORD.
014634 004737 010216' JSR PC,$READC
6535 014640 103416 BCS 90$
6536 014642 022700 000005 CMP #5,R0 ; IF IT IS A PAGE TABLE RECORD ...
6537 014646 001405 BEQ 60$ ; THEN PROCESS, OTHERWISE
6538 014650 005700 TST R0 ; CHECK FOR END OF FILE
6539 014652 003365 BGT 40$ ; NO -- GET NEXT RECORD
6540 014654 CALL $CLOSE ; IF NO PAGE TABLE RECORDS ...
014654 004737 007056' JSR PC,$CLOSE
6541 014660 000755 BR 20$ ; THEN USE BOTH PAGES
6542 ;
6543 ;
6544 ; HERE TO READ AND PROCESS A PAGE TABLE RECORD
6545 ;
6546 014662 60$:
6547 014662 CALL $READW ; GET PAGE TABLE SELECTION DESIRED
014662 004737 010324' JSR PC,$READW
6548 014666 103403 BCS 90$
6549 014670 010001 MOV R0,R1 ; COPY TO R1
6550 014672 CALLR $CLOSE ; CLOSE FILE AND RETURN.
014672 000137 007056' JMP $CLOSE
6551 014676 90$:
6552 014676 CALL $PURGE
014676 004737 010124' JSR PC,$PURGE
KLIGP -- GET PAGE TABLE SELECTI MACRO M1113 03-APR-86 20:55 PAGE 149-1
$GETPA -- GET PAGE TABLE SELECTION
6553 014702 000261 SEC ; SO RETURN WITH ERROR.
6554 014704 RETURN
014704 000207 RTS PC
KLIGP -- GET PAGE TABLE SELECTI MACRO M1113 03-APR-86 20:55 PAGE 150
$GETPA -- GET PAGE TABLE SELECTION
6556
6557
6558
6559
6560
6561 .TITLE KLIGT -- READ MF20 TIMING FILE DATA
6562 014706 IDENT$ 10,0,KLI$$F
.IDENT /A10000/
6563 ;
6564 ; COPYRIGHT (C) 1975, 1984, 1985 BY
6565 ; DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.
6566 ; ALL RIGHTS RESERVED.
6567 ; THIS SOFTWARE IS FURNISHED UNDER A LICENSE AND MAY BE USED AND COPIED
6568 ; ONLY IN ACCORDANCE WITH THE TERMS OF SUCH LICENSE AND WITH THE INCLUSION
6569 ; OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE OR ANY OTHER COPIES THERE-
6570 ; OF MAY NOT BE PROVIDED OR OTHERWISE MADE AVAILABLE TO ANY OTHER PERSON.
6571 ; NO TITLE TO OR OWNERSHIP OF THE SOFTWARE IS HEREBY TRANSFERRED.
6572 ;
6573 ; THE INFORMATION CONTAINED IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT
6574 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
6575 ; CORPORATION.
6576 ;
6577 ; DIGITAL ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
6578 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPILED BY DIGITAL.
6579 ;
6580 ;
6581 ; MODULE: MF20 TIMING FILE INPUT
6582 ;
6583 ; VERSION: 10-00
6584 ;
6585 ; DATE: 22-MAY-78
6586 ;
6587 ; AUTHOR: R. BELANGER
6588 ;
6589 ; MODIFICATIONS:
6590 ;
6591 ; NO. DATE PROGRAMMER REASON
6592 ; --- ---- ---------- ------
6593
6594 002607 .PSECT TEXT,D
6595 002607 TGTCKE:
6596 002607 ERROR <MF20 TIMING FILE CHECKSUM ERROR>
002607 077 040 115 .ASCIZ \? MF20 TIMING FILE CHECKSUM ERROR\
002612 106 062 060
002615 040 124 111
002620 115 111 116
002623 107 040 106
002626 111 114 105
002631 040 103 110
002634 105 103 113
002637 123 125 115
002642 040 105 122
002645 122 117 122
002650 000
6597 002651 TGTNFL:
6598 002651 ERROR <NO MF20 TIMING FILE>
002651 077 040 116 .ASCIZ \? NO MF20 TIMING FILE\
KLIGT -- READ MF20 TIMING FILE MACRO M1113 03-APR-86 20:55 PAGE 150-1
$GETPA -- GET PAGE TABLE SELECTION
002654 117 040 115
002657 106 062 060
002662 040 124 111
002665 115 111 116
002670 107 040 106
002673 111 114 105
002676 000
6599 002677 TGTIFF:
6600 002677 ERROR <ILLEGAL MF20 TIMING FILE FORMAT>
002677 077 040 111 .ASCIZ \? ILLEGAL MF20 TIMING FILE FORMAT\
002702 114 114 105
002705 107 101 114
002710 040 115 106
002713 062 060 040
002716 124 111 115
002721 111 116 107
002724 040 106 111
002727 114 105 040
002732 106 117 122
002735 115 101 124
002740 000
6601 002741 TGTRFE:
6602 002741 ERROR <MF20 TIMING FILE READ ERROR>
002741 077 040 115 .ASCIZ \? MF20 TIMING FILE READ ERROR\
002744 106 062 060
002747 040 124 111
002752 115 111 116
002755 107 040 106
002760 111 114 105
002763 040 122 105
002766 101 104 040
002771 105 122 122
002774 117 122 000
6603 014706 .PSECT
KLIGT -- READ MF20 TIMING FILE MACRO M1113 03-APR-86 20:55 PAGE 151
$GETTF -- READ MF20 TIMING FILE DATA
6605 .SBTTL $GETTF -- READ MF20 TIMING FILE DATA
6606
6607 ;+
6608 ; $GETTF -- SUBROUTINE TO READ AND DEASCIIZE AN MF20 TIMING RAM DATA FILE
6609 ;
6610 ; INPUTS:
6611 ;
6612 ; R0 -- POINTS TO CALLER'S BUFFER
6613 ; TMFLNM -- TIMING FILE FILENAME
6614 ;
6615 ; OUTPUTS:
6616 ;
6617 ; R0 - R5 UNCHANGED
6618 ; DATA IS IN CALLER'S BUFFER
6619 ; CC-C SET ON ERROR; CLEAR ON SUCCESS
6620 ;-
6621
6622 014706 $GETTF::
6623 014706 RDATIM::
6624 014706 CALL R5,$RSAVE ; SAVE REGISTERS
014706 004537 024204' JSR R5,$RSAVE
6625 014712 012705 000000G MOV #TMFLNM,R5 ; POINT TO THE ASCII FILENAME
6626 014716 010004 MOV R0,R4 ; DESTINATION POINTER TO R4
6627 014720 012700 000476' MOV #.USRFN,R0 ; POINT TO USER FILENAME BLOCK
6628 014724 PUSH R0 ; SAVE R0 FOR LATER
014724 010046 MOV R0,-(SP)
6629 014726 CALL $TRF2B ; LOAD THE FILENAME BLOCK
014726 004737 025146' JSR PC,$TRF2B
6630 014732 POP R0 ; RESTORE FILNAME BLOCK POINTER
014732 012600 MOV (SP)+,R0
6631 014734 CALL $LOOKUP ; LOOKUP THE FILE
014734 004737 007562' JSR PC,$LOOKUP
6632 014740 103013 BCC 20$ ; FOUND THE FILE OK
6633 014742 022737 000000G 000526' CMP #IE.NSF,.SYSTA ; DOES THE FILE EXIST??
6634 014750 001005 BNE 10$ ; YES -- CALL ERROR ROUTINE
6635 014752 PRINT #TGTNFL ; NO -- SAY SO AND QUIT
014752 012700 002651' MOV #TGTNFL,R0
014756 004737 027634' JSR PC,$TTMSG
6636 014762 000467 BR RTFXIT ; EXIT
6637 ;
6638 014764 10$:
6639 014764 CALLR $IOERR ; REPORT THE ERROR AND QUIT
014764 000137 007346' JMP $IOERR
6640 ;
6641 ;
6642 ; MAIN CONVERSION LOOP
6643 ;
6644 ; THIS LOOP CONVERTS THE DATA IN AN ASCIIZED "A11" FORMAT FILE TO BINARY.
6645 ;
6646 ; RECORDS WHICH BEGIN WITH A SEMI-COLON (COMMENT) ARE SIMPLY SKIPPED OVER
6647 ;
6648 ; RECORDS WHICH BEGIN WITH AN "E<SPACE>" ARE CONVERTED TO BINARY AND RETURNED TO
6649 ; THE CALLER
6650 ;
6651 ; ANY OTHER FORMAT CONSTITUTES A FATAL ERROR
6652 ;
6653 ; REGISTER SUMMARY:
KLIGT -- READ MF20 TIMING FILE MACRO M1113 03-APR-86 20:55 PAGE 151-1
$GETTF -- READ MF20 TIMING FILE DATA
6654 ;
6655 ; R0 -- LAST CHARACTER READ FROM FILE
6656 ; R1 -- LAST WORD CONVERTED FROM FILE
6657 ; R2 -- RECORD WORD COUNT
6658 ; R4 -- TRANSFER POINTER
6659 ; R5 -- CHECKSUM
6660 ;
6661 014770 20$:
6662 014770 CALL $READC ; READ THE RECORD BYTE COUNT
014770 004737 010216' JSR PC,$READC
6663 ; AND RETURN FIRST WORD IN R0
6664 014774 103454 BCS RTFERR ; ERROR IF CC-C SET
6665 014776 122700 000073 CMPB #';,R0 ; IS IT A COMMENT LINE??
6666 015002 001410 BEQ 40$ ; YES -- GO EAT IT UP
6667 015004 022700 020105 CMP #"E ,R0 ; NO -- IS IT A DATA LINE??
6668 015010 001411 BEQ 50$ ; YES -- GO CONVERT IT
6669 015012 30$:
6670 015012 PRINT #TGTIFF ; NO -- COMPLAIN
015012 012700 002677' MOV #TGTIFF,R0
015016 004737 027634' JSR PC,$TTMSG
6671 015022 000445 BR RTFERX ; AND EXIT
6672 ;
6673 ;
6674 ; HERE TO READ AND DISCARD A COMMENT LINE
6675 ;
6676 015024 40$:
6677 015024 CALL $READS ; SKIP OVER THIS RECORD
015024 004737 010254' JSR PC,$READS
6678 015030 103436 BCS RTFERR ; ERROR IF CC-C IS SET
6679 015032 000756 BR 20$ ; GO START THE NEXT RECORD
6680 ;
6681 ;
6682 ; HERE TO READ AND CONVERT A DATA LINE
6683 ;
6684 015034 50$:
6685 015034 005005 CLR R5 ; RESET THE CHECKSUM
6686 ;
6687 ; READ THE RECORD DATA WORD COUNT
6688 ; IF .EQ. 0, THEN WE ARE AT THE LOGICAL END-OF-FILE
6689 ;
6690 015036 CALL CNVWRD ; CONVERT THE WORD COUNT
015036 004737 015154' JSR PC,CNVWRD
6691 015042 103437 BCS RTFXIT ; ERROR IF CC-C IS SET
6692 015044 010102 MOV R1,R2 ; WORD COUNT TO R2
6693 015046 001425 BEQ 70$ ; LOGICAL END-OF-FILE IF .EQ. 0
6694 ;
6695 ; CONVERT AND DISCARD THE ADDRESS POINTER (FIXED-ADDRESS FILES ONLY)
6696 ;
6697 015050 CALL CNVWRD ; GET OVER THE ADDRESS WORD
015050 004737 015154' JSR PC,CNVWRD
6698 015054 103432 BCS RTFXIT ; ERROR IF CC-C IS SET
6699 ;
6700 ; THIS LOOP CONVERTS ALL WORDS IN ONE RECORD
6701 ;
6702 015056 60$:
6703 015056 CALL CNVWRD ; CONVERT THE DATA
015056 004737 015154' JSR PC,CNVWRD
KLIGT -- READ MF20 TIMING FILE MACRO M1113 03-APR-86 20:55 PAGE 151-2
$GETTF -- READ MF20 TIMING FILE DATA
6704 015062 103427 BCS RTFXIT ; ERROR IF CC-C IS SET
6705 015064 122700 000054 CMPB #',,R0 ; DELIMITER OK??
6706 015070 001350 BNE 30$ ; NO -- COMPLAIN AND DIE
6707 015072 010124 MOV R1,(R4)+ ; YES -- RETURN CONVERTED WORD TO CALLER
6708 015074 077210 SOB R2,60$ ; GET ALL WORDS FROM THIS RECORD
6709 ;
6710 ; NOW VERIFY CHECKSUM
6711 ;
6712 015076 CALL CNVCHK ; READ THE CHECKSUM
015076 004737 015146' JSR PC,CNVCHK
6713 015102 103417 BCS RTFXIT ; ERROR IF CC-C IS SET
6714 015104 005705 TST R5 ; IS THE CHECKSUM OK??
6715 015106 001730 BEQ 20$ ; YES -- GO ON TO THE NEXT RECORD
6716 015110 PRINT #TGTCKE ; NO -- COMPLAIN
015110 012700 002607' MOV #TGTCKE,R0
015114 004737 027634' JSR PC,$TTMSG
6717 015120 000406 BR RTFERX ; AND EXIT
6718 ;
6719 ;
6720 ; HERE TO CLOSE THE FILE AND RETURN SUCCESS
6721 ;
6722 015122 70$:
6723 015122 CALLR $CLOSE ; CLOSE THE FILE AND EXIT
015122 000137 007056' JMP $CLOSE
6724 ;
KLIGT -- READ MF20 TIMING FILE MACRO M1113 03-APR-86 20:55 PAGE 152
$GETTF -- READ MF20 TIMING FILE DATA
6726 ;
6727 ; READ ERROR ROUTINE
6728 ;
6729 015126 RTFERR:
6730 015126 PRINT #TGTRFE ; ERROR MESSAGE
015126 012700 002741' MOV #TGTRFE,R0
015132 004737 027634' JSR PC,$TTMSG
6731 ;
6732 ; CLOSE FILE FOR ERROR RETURN
6733 ;
6734 015136 RTFERX:
6735 015136 CALL $CLOSE ; CLOSE THE FILE
015136 004737 007056' JSR PC,$CLOSE
6736 015142 RTFXIT:
6737 015142 000261 SEC ; SET THE ERROR FLAG
6738 015144 RETURN ; TO CALLER
015144 000207 RTS PC
6739 ;
6740 ; MAIN CONVERSION SUBROUTINE
6741 ;
6742 ; UP TO THREE BYTES ARE READ FROM THE FILE AND CONVERTED TO BINARY
6743 ; THE RECORD CHECKSUM IS ALSO ACCUMULATED BY THIS ROUTINE
6744 ;
6745 ; INPUTS:
6746 ;
6747 ; NONE
6748 ;
6749 ; OUTPUTS:
6750 ;
6751 ; R0 -- LAST CHARACTER FROM FILE
6752 ; R1 -- CONVERTED WORD
6753 ; R5 -- UPDATED CHECKSUM
6754 ;
6755 .ENABL LSB
6756 015146 CNVCHK:
6757 015146 013703 000534' MOV .SYIRC,R3 ; SYNCHRONIZE THE BYTE COUNTS
6758 015152 000402 BR 10$ ; COMPUTE THE FINAL CHECKSUM
6759 ;
6760 015154 CNVWRD:
6761 015154 012703 000004 MOV #4,R3 ; MAXIMUM FIELD WIDTH IS 4 BYTES
6762 015160 10$:
6763 015160 005001 CLR R1 ; INIT RETURNED WORD
6764 015162 20$:
6765 015162 CALL $READB ; READ A BYTE FROM THE FILE
015162 004737 010420' JSR PC,$READB
6766 015166 103757 BCS RTFERR ; ERROR IF CC-C IS SET
6767 015170 122700 000054 CMPB #',,R0 ; NO -- END-OF-FIELD??
6768 015174 001413 BEQ 30$ ; YES -- EXIT
6769 015176 PUSH R0 ; NO -- CONVERT IT
015176 010046 MOV R0,-(SP)
6770 015200 042716 177700 BIC #^C77,(SP) ; SO
6771 015204 006301 ASL R1 ; POSITION PREVIOUS BYTE
6772 015206 006301 ASL R1 ; SO
6773 015210 006301 ASL R1 ; ...
6774 015212 006301 ASL R1 ; ...
6775 015214 006301 ASL R1 ; ...
6776 015216 006301 ASL R1 ; DONE
KLIGT -- READ MF20 TIMING FILE MACRO M1113 03-APR-86 20:55 PAGE 152-1
$GETTF -- READ MF20 TIMING FILE DATA
6777 015220 052601 BIS (SP)+,R1 ; SET THE NEW BYTE IN THE WORD
6778 015222 077321 SOB R3,20$ ; AND TRY AGAIN
6779 015224 30$:
6780 015224 060105 ADD R1,R5 ; UPDATE CHECKSUM
6781 015226 000241 CLC ; INSURE CC-C IS CLEAR
6782 015230 RETURN ; TO CALLER
015230 000207 RTS PC
6783
6784 .DSABL LSB
KLIGT -- READ MF20 TIMING FILE MACRO M1113 03-APR-86 20:55 PAGE 153
$GETTF -- READ MF20 TIMING FILE DATA
6786
6787
6788 .TITLE KLIMR -- KL RESET ROUTINES
6789 015232 IDENT$ 5,0
.IDENT /005000/
6790 ;
6791 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
6792 ; ALL RIGHTS RESERVED.
6793 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
6794 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
6795 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
6796 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
6797 ;
6798 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
6799 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
6800 ; EQUIPMENT CORPORATION.
6801 ;
6802 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
6803 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
6804 ;
6805 ; VERSION 05-00
6806 ;
6807 ; ALAN D. PECKHAM 29-MAR-77
6808 ;
6809 ; MODIFIED BY:
6810 ;
6811 ; FUNCTION: THIS MODULE CONTAINS THE ROUTINES TO DO A FULL MASTER RESET
6812 ; AND A PARTIAL RESET FOR RAM ADDRESS CLEARING.
6813 ;
KLIMR -- KL RESET ROUTINES MACRO M1113 03-APR-86 20:55 PAGE 154
$GETTF -- READ MF20 TIMING FILE DATA
6815 ;
6816 ; LOCAL DATA
6817 ;
6818 001316 .PSECT DATA,D
6819 001316 035000 001446' .WORD 72*400,DMRKW2 ; SELECT KW20/22 FOR MOS SYSTEMS
6820 001322 022000 000000' DMRMRT: .WORD .LDSEL/2,.ZERO ; CLOCK LOAD FUNC #44
6821 001326 100000 .WORD .STPCL/2+BIT15 ; STOP THE CLOCK
6822 001330 103400 .WORD .SETMR/2+BIT15 ; SET RESET
6823 001332 023000 000000' .WORD .LDCK1/2,.ZERO ; LOAD CLK PARITY CHECK & FS CHECK
6824 001336 023400 000000' .WORD .LDCK2/2,.ZERO ; LOAD CLK MBOX CYCLE DISABLES,
6825 ; PARITY CHECK, ERROR STOP ENABLE
6826 001342 021000 000000' .WORD .LDBRR/2,.ZERO ; LOAD BURST COUNTER (8,4,2,1)
6827 001346 021400 000000' .WORD .LDBRL/2,.ZERO ; LOAD BURST COUNTER (128,64,32,16)
6828 001352 022400 000000' .WORD .LDDIS/2,.ZERO ; LOAD EBOX CLOCK DISABLE
6829 001356 100400 .WORD .STRCL/2+BIT15 ; START THE CLOCK
6830 001360 034000 000000' .WORD .INICL/2,.ZERO ; INIT CHANNELS
6831 001364 021000 000000' .WORD .LDBRR/2,.ZERO ; LOAD BURST COUNTER (8,4,2,1)
6832 001370 000000 .WORD 0
6833 001372 102000 .WORD .CECLK/2+BIT15 ; CONDITIONAL SINGLE STEP
6834 001374 103000 .WORD .CLRMR/2+BIT15 ; CLEAR RESET
6835 001376 033400 000000' .WORD .EIOJA/2,.ZERO ; ENABLE KL STL DECODING OF CODES & AC'S
6836 001402 037000 000000' .WORD .MEMRS/2,.ZERO ; SET KL10 MEM RESET FLOP
6837 001406 034400 001414' .WORD .WRMBX/2,DMRMMR ; WRITE M-BOX
6838 001412 000000 .WORD 0
6839 001414 DMRMMR: WD36$ 0 12 ; FOR MEMORY RESET
001414 012 000 000 .BYTE BY$$0,BY$$1,BY$$2
001417 000 000 .BYTE BY$$3,BY$$4
6840 .EVEN
6841
6842 001422 007000 DMRSRT: .WORD .SETMR ; SET RESET.
6843 001424 001000 .WORD .STRCL ; START THE CLOCK.
6844 001426 000000 .WORD .STPCL ; STOP THE CLOCK.
6845 001430 004000 .WORD .CECLK ; CONDITIONAL SINGLE STEP.
6846 001432 006000 .WORD .CLRMR ; CLEAR RESET.
6847 000005 DMRSRL = .-DMRSRT/2 ; LENGTH OF TABLE.
6848 001434 DMRBF: WD36$ 0 0 ; GENERAL BIT BUCKET.
001434 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
001437 000 000 .BYTE BY$$3,BY$$4
6849 001441 DMRMOS: WD36$ 0 10 ; CLOCK PARAMETERS FOR MOS
001441 010 000 000 .BYTE BY$$0,BY$$1,BY$$2
001444 000 000 .BYTE BY$$3,BY$$4
6850 001446 DMRKW2: WD36$ 0 3 ; KW-20/22 SELECT CODE
001446 003 000 000 .BYTE BY$$0,BY$$1,BY$$2
001451 000 000 .BYTE BY$$3,BY$$4
6851 .EVEN
6852 002777 .PSECT TEXT,D
6853 002777 TMRMFL: ERROR <MASTER RESET FAILED>
002777 077 040 115 .ASCIZ \? MASTER RESET FAILED\
003002 101 123 124
003005 105 122 040
003010 122 105 123
003013 105 124 040
003016 106 101 111
003021 114 105 104
003024 000
6854 015232 .PSECT
KLIMR -- KL RESET ROUTINES MACRO M1113 03-APR-86 20:55 PAGE 155
$KLMR -- DO A MASTER RESET ON THE KL
6856 .SBTTL $KLMR -- DO A MASTER RESET ON THE KL
6857 ;+
6858 ; RESET THE KL PROCESSOR.
6859 ;
6860 ; NO INPUTS
6861 ;
6862 ; OUTPUTS:
6863 ; THE CARRY IS SET ON ANY ERROR AND AN ERROR MESSAGE IS DISPLAYED.
6864 ;-
6865
6866 015232 004537 024204' $KLMR:: JSR R5,$RSAVE
6867 015236 TRACK MR
015236 004037 015250' JSR R0,64$
015242 051115 .WORD "MR
015244 000000 .WORD
015246 000000 .WORD
015250 004737 024252' 64$: JSR PC,$TRACK
015254 012600 MOV (SP)+,R0
6868 015256 012700 010000 MOV #.CLRUN,R0
6869 015262 CALL $DFXC ; CLEAR RUN
015262 004737 013760' JSR PC,$DFXC
6870 015266 103452 BCS 80$ ; TIMEOUT ERROR
6871 015270 012737 000100 000302' MOV #DRESET,.DTEDT ; RESET BIT TO .DTEDT
6872 015276 CALL $DTRW2 ; WRITE DTE-20 DIAG 2
015276 004737 024122' JSR PC,$DTRW2
6873 015302 103444 BCS 80$ ; ERROR
6874 015304 012737 053101 000302' MOV #DON10C!ERR10C!INT11C!PERCLR!DON11C!ERR11C,.DTEDT
6875 ; CLEAR DTE-20 STATUS
6876 015312 CALL $DTRWS ; WRITE IT
015312 004737 024132' JSR PC,$DTRWS
6877 015316 103436 BCS 80$
6878 015320 012703 001322' MOV #DMRMRT,R3 ; SET UP TABLE AND
6879 015324 105737 000045' TSTB .MFSW ; SEE IF A MOS SYSTEM
6880 015330 003401 BLE 5$ ; NO -- GO ON
6881 015332 024343 CMP -(R3),-(R3) ; YES -- BE SURE TO SELECT KW20/22
6882 015334 5$:
6883 015334 CALL LMRDFN ; DO FIRST SET OF FUNCTIONS.
015334 004737 015430' JSR PC,LMRDFN
6884 015340 103425 BCS 80$
6885 015342 012702 000003 MOV #3,R2 ; SET UP MAX LOOP COUNT
6886 015346 012701 001434' MOV #DMRBF,R1 ; AND DIAGNOSTIC READ BUFFER.
6887 015352 012700 162000 10$: MOV #<162*1000>,R0 ; LOOK
6888 015356 CALL $DFRD ; FOR
015356 004737 013444' JSR PC,$DFRD
6889 015362 103414 BCS 80$
6890 015364 132711 000010 BITB #10,(R1) ; "A CHANGE COMING A L"
6891 015370 001406 BEQ 20$
6892 015372 012700 002000 MOV #.SSCLK,R0 ; SINGLE STEP THE MBOX
6893 015376 CALL $DFXC
015376 004737 013760' JSR PC,$DFXC
6894 015402 103404 BCS 80$
6895 015404 077216 SOB R2,10$ ; ONLY 3 TIMES MAX.
6896 015406 20$: CALL LMRDFN ; NOW FINISH THE JOB.
015406 004737 015430' JSR PC,LMRDFN
6897 015412 103005 BCC 90$
6898 015414 80$: PRINT #TMRMFL ; PRINT ERROR IF NEED BE.
015414 012700 002777' MOV #TMRMFL,R0
KLIMR -- KL RESET ROUTINES MACRO M1113 03-APR-86 20:55 PAGE 155-1
$KLMR -- DO A MASTER RESET ON THE KL
015420 004737 027634' JSR PC,$TTMSG
6899 015424 000261 SEC
6900 015426 90$: RETURN
015426 000207 RTS PC
6901
6902 015430 012300 LMRDFN: MOV (R3)+,R0 ; FUNCTION TO BE PERFORMED
6903 015432 006300 10$: ASL R0 ; GET ITS TYPE
6904 015434 103004 BCC 20$ ; A WRITE OR
6905 015436 CALL $DFXC ; EXECUTE FUNCTION.
015436 004737 013760' JSR PC,$DFXC
6906 015442 103015 BCC 30$ ; SUCCESS
6907 015444 000416 BR 40$ ; OR FAILURE.
6908 015446 012301 20$: MOV (R3)+,R1
6909 015450 022700 044000 CMP #.LDSEL,R0 ; SET CLOCK PARAMETERS??
6910 015454 001005 BNE 25$ ; NO -- GO ON
6911 015456 105737 000045' TSTB .MFSW ; YES -- MOS IN SYSTEM??
6912 015462 003402 BLE 25$ ; NO -- GO ON
6913 015464 012701 001441' MOV #DMRMOS,R1 ; YES -- POINT TO MOS DEFAULT
6914 015470 25$:
6915 015470 CALL $DFWR
015470 004737 013556' JSR PC,$DFWR
6916 015474 103402 BCS 40$
6917 015476 012300 30$: MOV (R3)+,R0 ; IF MORE FUNCTIONS
6918 015500 001354 BNE 10$ ; THEN CONTINUE.
6919 015502 40$: RETURN
015502 000207 RTS PC
6920
6921 .SBTTL $KLSR -- SOFT RESET FOR RAM LOADERS
6922
6923 015504 $KLSR:: PUSH <R2,R1,R0>
015504 010246 MOV R2,-(SP)
015506 010146 MOV R1,-(SP)
015510 010046 MOV R0,-(SP)
6924 015512 TRACK SR
015512 004037 015524' JSR R0,64$
015516 051123 .WORD "SR
015520 000000 .WORD
015522 000000 .WORD
015524 004737 024252' 64$: JSR PC,$TRACK
015530 012600 MOV (SP)+,R0
6925 015532 012702 000005 MOV #DMRSRL,R2
6926 015536 012701 001422' MOV #DMRSRT,R1
6927 015542 012100 1$: MOV (R1)+,R0
6928 015544 CALL $DFXC
015544 004737 013760' JSR PC,$DFXC
6929 015550 103401 BCS 9$
6930 015552 077205 SOB R2,1$
6931 015554 9$: POP <R0,R1,R2>
015554 012600 MOV (SP)+,R0
015556 012601 MOV (SP)+,R1
015560 012602 MOV (SP)+,R2
6932 015562 RETURN
015562 000207 RTS PC
KLIMR -- KL RESET ROUTINES MACRO M1113 03-APR-86 20:55 PAGE 156
$KLSR -- SOFT RESET FOR RAM LOADERS
6934
6935
6936 .TITLE KLINI -- PROGRAM INITIALIZATION
6937 015564 IDENT$ 12,06,KLI$$F
.IDENT /A12060/
6938 ;
6939 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
6940 ; ALL RIGHTS RESERVED.
6941 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
6942 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
6943 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
6944 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
6945 ;
6946 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
6947 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
6948 ; EQUIPMENT CORPORATION.
6949 ;
6950 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
6951 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
6952 ;
6953 ; VERSION 12-06
6954 ;
6955 ; ALAN D. PECKHAM 14-APR-77
6956 ;
6957 ; MODIFIED BY:
6958 ;
6959 ; R. BELANGER 16-JUL-79 ADD HARDWARE ENVIRONMENT REPORTING
6960 ; TCO 4.2333
6961 ; R. BELANGER 06-DEC-78 MODIFY KEEP-ALIVE-CEASE HANDLING
6962 ; TCO 4.2107
6963 ;
6964 ; FUNCTION: THIS MODULE ASSIGNS NEEDED I/O DEVICES, LOCATES THE SYSTEM
6965 ; DIRECTORY, AND SETS DATA TO INDICATE INTERNAL
6966 ; REQUESTS AND KL CONDITIONS.
6967 ;
6968 ; LOCAL MACROS
6969 ;
6970 .MCALL ALUN$,QIOW$S,EXIT$S,CLEF$S
6971 .MACRO KLIVR$ KEY,FRM,VER,EDT,NUM
6972 .IF B,NUM
6973 .IF NB,FRM
6974 KLIVR$ \KEY,\FRM,\VER,\EDT,0
6975 .IFF
6976 KLIVR$ \KEY,200,\VER,\EDT,0
6977 .ENDC
6978 .MEXIT
6979 .IFF
6980 .IF GE,VER-10
6981 .IF GE,EDT-10
6982 MESSAGE <VERSION \<KEY><FRM>\'VER'-'EDT'\<200>\ RUNNING>
6983 .IFF
6984 MESSAGE <VERSION \<KEY><FRM>\'VER'-0'EDT'\<200>\ RUNNING>
6985 .ENDC
6986 .IFF
6987 .IF GE,EDT-10
6988 MESSAGE <VERSION \<KEY><FRM>\0'VER'-'EDT'\<200>\ RUNNING>
6989 .IFF
KLINI -- PROGRAM INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 156-1
$KLSR -- SOFT RESET FOR RAM LOADERS
6990 MESSAGE <VERSION \<KEY><FRM>\0'VER'-0'EDT'\<200>\ RUNNING>
6991 .ENDC
6992 .ENDC
6993 .ENDC
6994 .ENDM KLIVR$
6995 ;
6996 ; LOCAL DATA
6997 ;
6998 001454 .PSECT DATA,D
6999 001454 DNITTI:
7000 001454 ALUN$ TTILUN,TT,0
001454 007 004 .BYTE 7,4
001456 000001 .WORD TTILUN
001460 124 .ASCII /T/
001461 124 .ASCII /T/
001462 000000 .WORD 0
7001 001464 DNITTO:
7002 001464 ALUN$ TTOLUN,TT,0
001464 007 004 .BYTE 7,4
001466 000002 .WORD TTOLUN
001470 124 .ASCII /T/
001471 124 .ASCII /T/
001472 000000 .WORD 0
7004 001474 DNILPO:
7005 001474 ALUN$ LPOLUN,LP,0
001474 007 004 .BYTE 7,4
001476 000003 .WORD LPOLUN
001500 114 .ASCII /L/
001501 120 .ASCII /P/
001502 000000 .WORD 0
7007 001504 DNISYI::
7008 001504 ALUN$ SYILUN,SY,0
001504 007 004 .BYTE 7,4
001506 000004 .WORD SYILUN
001510 123 .ASCII /S/
001511 131 .ASCII /Y/
001512 000000 .WORD 0
7009 001514 DNISYO::
7010 001514 ALUN$ SYOLUN,SY,0
001514 007 004 .BYTE 7,4
001516 000005 .WORD SYOLUN
001520 123 .ASCII /S/
001521 131 .ASCII /Y/
001522 000000 .WORD 0
7011 001524 DNISYF::
7012 001524 ALUN$ SYFLUN,SY,0
001524 007 004 .BYTE 7,4
001526 000006 .WORD SYFLUN
001530 123 .ASCII /S/
001531 131 .ASCII /Y/
001532 000000 .WORD 0
7013 003025 .PSECT TEXT,D
7014 003025 TNINDV:
7015 003025 ERROR <CANNOT GET DEVICES>
003025 077 040 103 .ASCIZ \? CANNOT GET DEVICES\
003030 101 116 116
003033 117 124 040
KLINI -- PROGRAM INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 156-2
$KLSR -- SOFT RESET FOR RAM LOADERS
003036 107 105 124
003041 040 104 105
003044 126 111 103
003047 105 123 000
7016 003052 TNIN55:
7017 003052 ERROR <CANNOT FIND [5,5] DIRECTORY>
003052 077 040 103 .ASCIZ \? CANNOT FIND [5,5] DIRECTORY\
003055 101 116 116
003060 117 124 040
003063 106 111 116
003066 104 040 133
003071 065 054 065
003074 135 040 104
003077 111 122 105
003102 103 124 117
003105 122 131 000
7018 003110 TNIPRI:
7019 003110 ERROR <CANNOT RUN KLINIT WHILE KL IS IN PRIMARY PROTOCOL>
003110 077 040 103 .ASCIZ \? CANNOT RUN KLINIT WHILE KL IS IN PRIMARY PROTOCOL\
003113 101 116 116
003116 117 124 040
003121 122 125 116
003124 040 113 114
003127 111 116 111
003132 124 040 127
003135 110 111 114
003140 105 040 113
003143 114 040 111
003146 123 040 111
003151 116 040 120
003154 122 111 115
003157 101 122 131
003162 040 120 122
003165 117 124 117
003170 103 117 114
003173 000
7020 003174 TNIVER:
7021 003174 KLIVR$ KLI$$K,KLI$$F,KLI$$V,KLI$$E
003174 126 105 122 .ASCIZ \VERSION \<126><101>\15-50\<200>\ RUNNING\
003177 123 111 117
003202 116 040 126
003205 101 061 065
003210 055 065 060
003213 200 040 122
003216 125 116 116
003221 111 116 107
003224 000
7022 015564 .PSECT
KLINI -- PROGRAM INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 157
$INIT -- PROGRAM INITIALIZATION
7024 .SBTTL $INIT -- PROGRAM INITIALIZATION
7025 ;+
7026 ; GET KL FUNCTION WORD
7027 ;-
7028
7029 015564 $INIT::
7030 015564 105037 000024' CLRB .DLGSW ; CLEAR DIALOG SWITCH.
7031 015570 013737 000000G 000060' MOV .KLIWD,.KLISV ; SAVE .KLIWD
7032 015576 001001 BNE 10$
7033 ; CLR .DATE3 ; [**]CLEAR .DATE3 IF .KLIWD=0
7034 015600 000404 BR 20$
7035 ;
7036 015602 10$:
7037 015602 005037 000000G CLR .KLIWD ; CLEAR .KLIWD TO AVOID DOING THIS AGAIN
7038 015606 105337 000024' DECB .DLGSW ; AND INDICATE INTERNAL PATH TO BE TAKEN.
7039
7040 ;+
7041 ; ASSIGN LOGICAL UNIT NUMBERS (LUN) TO DEVICES
7042 ;-
7043
7044 015612 20$:
7045 015612 DIR$ #DNITTI ; SET TTILUN AS TT0:
015612 012746 001454' MOV #DNITTI,-(SP)
015616 104375 EMT 375
7046 015620 103430 BCS 30$
7047 015622 DIR$ #DNITTO ; SET TTOLUN AS TT0:
015622 012746 001464' MOV #DNITTO,-(SP)
015626 104375 EMT 375
7048 015630 103424 BCS 30$
7050 015632 DIR$ #DNILPO ; SET LPOLUN AS LP0:
015632 012746 001474' MOV #DNILPO,-(SP)
015636 104375 EMT 375
7051 015640 103420 BCS 30$
7053 015642 032737 000000G 000060' BIT #KL.KAC,.KLISV ; [4.2107] KEEP-ALIVE ERROR??
7054 015650 001130 BNE 80$ ; [4.2107] YES -- DON'T NEED SY:
7055 015652 DIR$ #DNISYI ; SET SYILUN AS SY0:
015652 012746 001504' MOV #DNISYI,-(SP)
015656 104375 EMT 375
7056 015660 103410 BCS 30$
7057 015662 DIR$ #DNISYO ; SET SYOLUN AS SY0:
015662 012746 001514' MOV #DNISYO,-(SP)
015666 104375 EMT 375
7058 015670 103404 BCS 30$
7059 015672 DIR$ #DNISYF ; SET SYFLUN AS SY0:
015672 012746 001524' MOV #DNISYF,-(SP)
015676 104375 EMT 375
7060 015700 103007 BCC 40$
7061 015702 30$:
7062 015702 PRINT #TNINDV ; CAN'T GET DEVICES
015702 012700 003025' MOV #TNINDV,R0
015706 004737 027634' JSR PC,$TTMSG
7063 015712 EXIT$S ; WE'RE THROUGH.
015712 012746 MOV (PC)+,-(SP)
015714 063 001 .BYTE 51.,1
015716 104375 EMT 375
7064 ;+
7065 ; FIND DIRECTORY FILE FROM MASTER FILE DIRECTORY
KLINI -- PROGRAM INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 157-1
$INIT -- PROGRAM INITIALIZATION
7066 ;-
7067 015720 40$:
7068 015720 QIOW$S #IO.FNA,#SYILUN,#1,,#.SYSTA,,<,,,,,#.SYFNB>
015720 012746 002620' MOV #.SYFNB,-(SP)
015724 005046 CLR -(SP)
015726 005046 CLR -(SP)
015730 005046 CLR -(SP)
015732 005046 CLR -(SP)
015734 005046 CLR -(SP)
015736 005046 CLR -(SP)
015740 012746 000526' MOV #.SYSTA,-(SP)
015744 005046 CLR -(SP)
015746 112716 000001 MOVB #1,(SP)
015752 012746 000004 MOV #SYILUN,-(SP)
015756 012746 000000G MOV #IO.FNA,-(SP)
015762 012746 MOV (PC)+,-(SP)
015764 003 014 .BYTE 3,$$$T1
015766 104375 EMT 375
7069 015770 103403 BCS 50$
7070 015772 105737 000526' TSTB .SYSTA
7071 015776 002007 BGE 60$
7072 016000 50$:
7073 016000 PRINT #TNIN55 ; NO DIRECTORY...
016000 012700 003052' MOV #TNIN55,R0
016004 004737 027634' JSR PC,$TTMSG
7074 016010 EXIT$S
016010 012746 MOV (PC)+,-(SP)
016012 063 001 .BYTE 51.,1
016014 104375 EMT 375
7075 016016 60$:
7076 016016 013737 002620' 002644' MOV .SYFNB+0,.SYFNB+24 ; MOVE UP DIRECTORY FID.
7077 016024 013737 002622' 002646' MOV .SYFNB+2,.SYFNB+26
7078 016032 013737 002624' 002650' MOV .SYFNB+4,.SYFNB+30
7079 ;+
7080 ; MAKE SURE SECONDARY PROTOCOL IS RUNNING
7081 ;-
7082 016040 105737 000024' TSTB .DLGSW ; IF NOT INTERNAL REQUEST
7083 016044 002416 BLT 70$
7084 016046 032737 000000G 000002G BIT #EF.PR1,.COMEF+2 ; CHECK CURRENT PROTOCOL.
7085 016054 001412 BEQ 70$ ; IF PRIMARY,
7086 016056 032737 000006 000000G BIT #6,.FEMOD ; AND CONSOLE IS IN
7087 016064 001006 BNE 70$ ; OPERATOR MODE, THEN
7088 016066 PRINT #TNIPRI ; REPRIMAND OPERATOR
016066 012700 003110' MOV #TNIPRI,R0
016072 004737 027634' JSR PC,$TTMSG
7089 016076 000137 024022' JMP $EXIT ; AND DIE.
7090 ;
7091 016102 70$:
7092 016102 052737 000000G 000002G BIS #EF.CRI,.COMEF+2 ; DECLARE COMM REGION INVALID
7093 016110 013737 000000G 000062' MOV .CPUSN,.SNSAV ; [4.2333] SAVE OLD SERIAL NUMBER
7094 016116 005037 000000G CLR .CPUSN ; [4.2333] ALLOW ENVRIONMENT READ
7095 016122 PRINT #TNIVER ; HELLO, OPERATOR !
016122 012700 003174' MOV #TNIVER,R0
016126 004737 027634' JSR PC,$TTMSG
7096 016132 80$: ; [4.2107]
7097 016132 RETURN
016132 000207 RTS PC
KLINI -- PROGRAM INITIALIZATION MACRO M1113 03-APR-86 20:55 PAGE 157-2
$INIT -- PROGRAM INITIALIZATION
7098
7099 .TITLE KLIPC -- KL PC READ FUNCTION MODULE 7603.30
7100
7101 .IDENT "001010"
7102
7103 ; COPYRIGHT (C) 1976, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
7104 ; ALL RIGHTS RESERVED.
7105 ; THE MATERIAL INCLUDED IN THIS FUNCTIONAL SPECIFICATION, INCLUDING BUT
7106 ; NOT LIMITED TO, INSTRUCTION TIMES AND OPERATING SPEEDS IS FOR
7107 ; INFORMATION PURPOSES ONLY. ALL SUCH MATERIAL IS SUBJECT TO CHANGE
7108 ; WITHOUT NOTICE. CONSEQUENTLY DEC MAKES NO CLAIM AND SHALL NOT BE LIABLE
7109 ; FOR ITS ACCURACY.
7110 ;
7111 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS SOFTWARE
7112 ; ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
7113 ;
7114 ;
7115 ; MODULE: KL VMA BOARD READ FUNCTION
7116 ;
7117 ; VERSION: 01-01
7118 ;
7119 ; AUTHOR: R. BELANGER
7120 ;
7121 ; DATE: 7603.30
7122 ;
7123 ; THIS MODULE CONTAINS:
7124 ;
7125 ; 1) KL PC READ CODE
7126 ;
7127 ; LOCAL DATA
7128 ;
7129 003225 .PSECT TEXT,D
7130 003225 PCERRM:
7131 003225 ERROR <READ PC FAILED>
003225 077 040 122 .ASCIZ \? READ PC FAILED\
003230 105 101 104
003233 040 120 103
003236 040 106 101
003241 111 114 105
003244 104 000
7132 016134 .PSECT
KLIPC -- KL PC READ FUNCTION MO MACRO M1113 03-APR-86 20:55 PAGE 158
$DFPC -- KL PC READ SUBROUTINE 7510.21
7134 .SBTTL $DFPC -- KL PC READ SUBROUTINE 7510.21
7135
7136 ;+
7137 ; $DFPC -- SUBROUTINE TO READ THE KL PROGRAM COUNTER REGISTER
7138 ;
7139 ; THESE SUBROUTINES READ AND ASSEMBLE THE DESIRED VMA BOARD REGISTER
7140 ; INTO A THREE WORD BLOCK POINTED TO BY R0 IN THE CALL.
7141 ;
7142 ; INPUT ARGUMENTS:
7143 ;
7144 ; R0 POINTS TO A THREE WORD BUFFER FOR THE SPECIFIED REGISTER
7145 ;
7146 ; OUTPUT ARGUMENTS:
7147 ;
7148 ; R0 POINTS TO A THREE WORD BUFFER FOR THE SPECIFIED REGISTER
7149 ;
7150 ; ERROR CODES RETURNED:
7151 ;
7152 ; CC-C SET ON ERROR.
7153 ;-
7154
7155 016134 $DFPC::
7156 016134 CALL R5,$RSAVE ; SAVE R5 - R1 ON THE STACK
016134 004537 024204' JSR R5,$RSAVE
7157 016140 012705 177776 MOV #-2,R5 ; BASE SHIFT COUNT TO R5
7158 016144 012704 000004 MOV #^D4,R4 ; ITERATION COUNT TO R4
7159 016150 010003 MOV R0,R3 ; USER BUFFER ADDRESS TO R3
7160 016152 012702 000150 MOV #150,R2 ; FUNCTION READ BASE TO R2
7161 016156 PUSH #135673 ; MASK WORD TO TOP OF THE STACK
016156 012746 135673 MOV #135673,-(SP)
7162 016162 005020 CLR (R0)+ ; .CLEAR CALLER'S AREA
7163 016164 005020 CLR (R0)+ ; .SO
7164 016166 005010 CLR (R0) ; .
7165 016170 10$:
7166 016170 010200 MOV R2,R0 ; .SET THE FUNCTION READ NUMBER
7167 016172 006300 ASL R0 ; .TIMES 2
7168 016174 000300 SWAB R0 ; .IN THE HIGH BYTE
7169 016176 005001 CLR R1 ; .CLEAR R1
7170 016200 CALL $DFRD ; .READ IT
016200 004737 013444' JSR PC,$DFRD
7171 016204 103423 BCS 30$ ; .EXIT IF ERROR
7172 016206 012700 000264' MOV #.DFRBK,R0 ; .BUFFER POINTER TO R0
7173 016212 041620 BIC (SP),(R0)+ ; .SP POINTS TO BIT MASK
7174 016214 041610 BIC (SP),(R0) ; .R0 POINTS TO READ BLOCK
7175 016216 005740 TST -(R0) ; .BACK THE POINTER UP
7176 016220 010501 MOV R5,R1 ; .SHIFT COUNT TO R1
7177 016222 CALL .TPSHI ; .SHIFT THE BITS INTO POSITION
016222 004737 016270' JSR PC,.TPSHI
7178 016226 052023 BIS (R0)+,(R3)+ ; .SET THE BITS IN THE USER BUFFER
7179 016230 051013 BIS (R0),(R3) ; .SO
7180 016232 005743 TST -(R3) ; .BACK CALLER'S POINTER UP
7181 016234 122225 CMPB (R2)+,(R5)+ ; .INCREMENT READ NUMBER AND SHIFT COUNT
7182 016236 077424 SOB R4,10$ ; .DO THIS FOUR TIMES
7183 016240 042763 177600 000002 BIC #177600,2(R3) ; .GET RID OF BITS HIGHER THAN 13
7184 016246 000241 CLC ; .CLEAR CC-C
7185 016250 20$:
7186 016250 005226 INC (SP)+ ; CLEAR THE STACK
KLIPC -- KL PC READ FUNCTION MO MACRO M1113 03-APR-86 20:55 PAGE 158-1
$DFPC -- KL PC READ SUBROUTINE 7510.21
7187 016252 RETURN ; RETURN TO CALLER
016252 000207 RTS PC
7188 016254 30$:
7189 016254 PRINT #PCERRM ; TELL OPERATOR ABOUT ERROR
016254 012700 003225' MOV #PCERRM,R0
016260 004737 027634' JSR PC,$TTMSG
7190 016264 000261 SEC ; SET ERROR FLAG
7191 016266 000770 BR 20$ ; AND EXIT
7192 ;
KLIPC -- KL PC READ FUNCTION MO MACRO M1113 03-APR-86 20:55 PAGE 159
$DFPC -- KL PC READ SUBROUTINE 7510.21
7194 016270 .TPSHI::
7195 016270 PUSH R1 ; SAVE R1 FROM DESTRUCTION
016270 010146 MOV R1,-(SP)
7196 016272 001416 BEQ 30$ ; .ON ZERO DO NOTHING
7197 016274 003002 BGT 10$ ; .REALLY MEANS LEFT
7198 016276 005401 NEG R1 ; .MEANS RIGHT, SO NEGATE
7199 016300 000406 BR 20$ ; .AND GO RIGHT
7200 ;
7201 016302 10$:
7202 016302 006320 ASL (R0)+ ; .CLEAR CC-C AND SHIFT
7203 016304 006120 ROL (R0)+ ; .USE CC-C AND SHIFT
7204 016306 006110 ROL (R0) ; .
7205 016310 024040 CMP -(R0),-(R0) ; .POINT BACK TO BEGINNING
7206 016312 077105 SOB R1,10$ ; .AND LOOP 'TILL DONE
7207 016314 000405 BR 30$ ; .DONE -- EXIT
7208 ;
7209 016316 20$: ; .HERE TO SHIFT RIGHT
7210 016316 022020 CMP (R0)+,(R0)+ ; .FIX POINTER TO POINT TO HIGH PART
7211 016320 006210 ASR (R0) ; .SHIFT HIGH PART
7212 016322 006040 ROR -(R0) ; .THEN MIDDLE PART
7213 016324 006040 ROR -(R0) ; .THEN LOW PART
7214 016326 077105 SOB R1,20$ ; .UNTIL DONE
7215 016330 30$:
7216 016330 POP R1 ; .RESTORE R1
016330 012601 MOV (SP)+,R1
7217 016332 RETURN ; AND RETURN TO CALLER
016332 000207 RTS PC
KLIPC -- KL PC READ FUNCTION MO MACRO M1113 03-APR-86 20:55 PAGE 160
$DFPC -- KL PC READ SUBROUTINE 7510.21
7219
7220
7221 .TITLE KLIQB -- ASK BOOT LOAD QUESTIONS
7222 016334 IDENT$ 12,27 ; ADP01
.IDENT /012270/
7223 ;
7224 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
7225 ; ALL RIGHTS RESERVED.
7226 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
7227 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
7228 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
7229 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
7230 ;
7231 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
7232 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
7233 ; EQUIPMENT CORPORATION.
7234 ;
7235 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
7236 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
7237 ;
7238 ; VERSION 12-27
7239 ;
7240 ; ALAN D. PECKHAM 12-APR-77
7241 ;
7242 ; MODIFIED BY:
7243 ;
7244 ; FUNCTION: THIS MODULE DETERMINES WHETHER THE BOOT IS TO BE LOADED
7245 ; AND WHAT BOOT IS TO BE USED.
7246 ;
7247 ; LOCAL DATA
7248 ;
7249 003246 .PSECT TEXT,D
7250 003246 TQBOOT:
7251 003246 MESSAGE <LOAD KL BOOTSTRAP [FILE,YES,NO,FILENAME]?>
003246 114 117 101 .ASCIZ \LOAD KL BOOTSTRAP [FILE,YES,NO,FILENAME]?\
003251 104 040 113
003254 114 040 102
003257 117 117 124
003262 123 124 122
003265 101 120 040
003270 133 106 111
003273 114 105 054
003276 131 105 123
003301 054 116 117
003304 054 106 111
003307 114 105 116
003312 101 115 105
003315 135 077 000
7252 003320 TQBWCF:
7253 003320 MESSAGE <WRITE CONFIGURATION FILE [YES,NO]?>
003320 127 122 111 .ASCIZ \WRITE CONFIGURATION FILE [YES,NO]?\
003323 124 105 040
003326 103 117 116
003331 106 111 107
003334 125 122 101
003337 124 111 117
003342 116 040 106
KLIQB -- ASK BOOT LOAD QUESTION MACRO M1113 03-APR-86 20:55 PAGE 160-1
$DFPC -- KL PC READ SUBROUTINE 7510.21
003345 111 114 105
003350 040 133 131
003353 105 123 054
003356 116 117 135
003361 077 000
7254 003363 TQBNFL:
7255 003363 WARNING <NO FILE - LOADING BOOTSTRAP>
003363 045 040 116 .ASCIZ \% NO FILE - LOADING BOOTSTRAP\
003366 117 040 106
003371 111 114 105
003374 040 055 040
003377 114 117 101
003402 104 111 116
003405 107 040 102
003410 117 117 124
003413 123 124 122
003416 101 120 000
7256 001534 .PSECT DATA,D
7257 001534 DQBFNM::
7258 001534 043240 000000 000000 .RAD50 /KL CFG/ ; CONFIGURATION FILE NAME
001542 011667
7259 001544 000000 .WORD 0
7260 001546 005 005 .BYTE 5,5
7261 001550 054523 000000 .WORD "SY,0
7262 016334 .PSECT
KLIQB -- ASK BOOT LOAD QUESTION MACRO M1113 03-APR-86 20:55 PAGE 161
$DLGBT -- ASK IF LOADING BOOT IS REQUIRED
7264 .SBTTL $DLGBT -- ASK IF LOADING BOOT IS REQUIRED
7265
7266 ;+
7267 ; $DLGBT -- ASK WHETHER OR NOT TO LOAD THE KL BOOTSTRAP
7268 ;
7269 ; INPUTS:
7270 ;
7271 ; NONE
7272 ;
7273 ; OUTPUTS:
7274 ;
7275 ; NONE
7276 ;-
7277
7278 016334 $DLGBT::
7279 016334 105037 000050' CLRB .BTSW ; RESET BOOT SWITCH
7280 016340 105037 000033' CLRB .DBSW ; RESET FILE SOURCE
7281 016344 105037 000026' CLRB .UFNSW ; AND FILENAME SWITCH.
7282 016350 105737 000024' TSTB .DLGSW ; TEST DIALOG CONTROL SWITCH.
7283 016354 001030 BNE 20$ ; LOAD DEFAULT BOOTSTRAP.
7284 016356 10$:
7285 016356 PRINT #TQBOOT ; ASK QUESTION
016356 012700 003246' MOV #TQBOOT,R0
016362 004737 027634' JSR PC,$TTMSG
7286 016366 CALL $TTRD ; READ ANSWER
016366 004737 027130' JSR PC,$TTRD
7287 016372 012705 000304' MOV #.TTIBF,R5
7288 016376 105715 TSTB (R5) ; CR ?
7289 016400 001416 BEQ 20$ ; READ BOOTSTRAP SPECIFICATION FROM FILE
7290 016402 022715 044506 CMP #"FI,(R5) ; [FILE]?
7291 016406 001413 BEQ 20$ ; READ BOOTSTRAP SPECIFICATION FROM FILE
7292 016410 022715 042531 CMP #"YE,(R5) ; [YES] ?
7293 016414 001433 BEQ 50$ ; LOAD DEFAULT BOOTSTRAP
7294 016416 022715 047516 CMP #"NO,(R5) ; [NO] ?
7295 016422 001411 BEQ 30$ ; ASK NEXT QUESTION.
7296 016424 022715 040502 CMP #"BA,(R5) ; [BACKUP] ?
7297 016430 001011 BNE 40$ ; NO, MUST BE FILENAME...
7298 016432 000137 023662' JMP $DLGMV ; ASK TO CONFIGURE MEMORY.
7299 ;
7300 016436 20$:
7301 016436 CALL LQBRBF ; SEE IF WE SHOULD LOAD THE BOOT
016436 004737 016656' JSR PC,LQBRBF
7302 016442 103430 BCS 80$ ; ERROR IF CC-C IS SET
7303 016444 000421 BR 60$ ; AND EXIT
7304 ;
7305 016446 30$:
7306 016446 105337 000050' DECB .BTSW ; RESPONSE IS "NO"
7307 016452 000416 BR 60$ ; ASK NEXT QUESTION.
7308 ;
7309 016454 40$:
7310 016454 012700 000476' MOV #.USRFN,R0 ; GET FILENAME BLOCK, ; ADP01
7311 016460 012701 MOV (PC)+,R1
7312 016462 021402 .RAD50 /EXB/ ; SET DEFAULT EXTENSION,
7313 016464 010160 000006 MOV R1,6(R0)
7314 016470 CALL $TRF2B ; AND GET FILE NAME.
016470 004737 025146' JSR PC,$TRF2B
7315 016474 105715 TSTB (R5) ; IF NOT PROPERLY TERMINATED
KLIQB -- ASK BOOT LOAD QUESTION MACRO M1113 03-APR-86 20:55 PAGE 161-1
$DLGBT -- ASK IF LOADING BOOT IS REQUIRED
7316 016476 001005 BNE 70$ ; THEN INFORM THE OPERATOR.
7317 016500 105237 000026' INCB .UFNSW ; INDICATE FILE SPECIFIED
7318 016504 50$:
7319 016504 105237 000050' INCB .BTSW ; SET RESPONSE TO "YES"
7320 016510 60$:
7321 016510 000407 BR $DLWCF ; ASK NEXT QUESTION
7322 ;
7323 016512 70$:
7324 016512 PRINT #COMCSE ; ALL THUMBS...
016512 012700 005552' MOV #COMCSE,R0
016516 004737 027634' JSR PC,$TTMSG
7325 016522 000715 BR 10$
7326 ;
7327 016524 80$:
7328 016524 000137 024012' JMP $ERROR ; ERROR EXIT
7329 ;
KLIQB -- ASK BOOT LOAD QUESTION MACRO M1113 03-APR-86 20:55 PAGE 162
$DLWCF -- ASK IF CONFIGURATION FILE IS TO BE WRITTEN
7331 .SBTTL $DLWCF -- ASK IF CONFIGURATION FILE IS TO BE WRITTEN
7332
7333 ;+
7334 ; $DLWCF -- ASK IF CONFIGURATION FILE IS THE BE WRITTEN
7335 ;
7336 ; INPUTS:
7337 ;
7338 ; NONE
7339 ;
7340 ; OUTPUTS:
7341 ;
7342 ; FILE WRITE SWITCH, ".FILSW", IS SET UP
7343 ;-
7344
7345 016530 $DLWCF::
7346 016530 105037 000047' CLRB .FILSW ; RESET FILE SWITCH
7347 016534 105737 000024' TSTB .DLGSW ; ARE WE IN DIALOG MODE??
7348 016540 001035 BNE 40$ ; NO -- JUST EXIT
7349 016542 10$:
7350 016542 PRINT #TQBWCF ; ASK THE QUESTION
016542 012700 003320' MOV #TQBWCF,R0
016546 004737 027634' JSR PC,$TTMSG
7351 016552 CALL $TTRD ; READ THE RESPONSE
016552 004737 027130' JSR PC,$TTRD
7352 016556 012705 000304' MOV #.TTIBF,R5 ; POINT TO INPUT BUFFER
7353 016562 105715 TSTB (R5) ; DEFAULT??
7354 016564 001416 BEQ 20$ ; YES -- GO ON
7355 016566 022715 042531 CMP #"YE,(R5) ; NO -- IS IT "YES"??
7356 016572 001413 BEQ 20$ ; YES -- GO ON
7357 016574 022715 047516 CMP #"NO,(R5) ; NO -- IS IT "NO"??
7358 016600 001413 BEQ 30$ ; YES -- GO ON
7359 016602 022715 040502 CMP #"BA,(R5) ; NO -- IS IT "BACK"??
7360 016606 001652 BEQ $DLGBT ; YES -- SO BACK UP
7361 016610 PRINT #COMCSE ; BLEW IT..
016610 012700 005552' MOV #COMCSE,R0
016614 004737 027634' JSR PC,$TTMSG
7362 016620 000750 BR 10$ ; TRY ONCE MORE
7363 ;
7364 016622 20$:
7365 016622 105237 000047' INCB .FILSW ; SAY WRITE THE FILE
7366 016626 000402 BR 40$ ; AND GO ON
7367 ;
7368 016630 30$:
7369 016630 105337 000047' DECB .FILSW ; SAY DON'T WRITE THE FILE
7370 016634 40$:
7371 016634 105737 000050' TSTB .BTSW ; EXAMINE BOOT SWITCH
7372 016640 100004 BPL 50$ ; SAID LOAD IT
7373 016642 CALL $TENS1 ; [TCO 4.2275] FINISH KL INIT
016642 004737 024532' JSR PC,$TENS1
7374 016646 000137 017422' JMP $DLGEX ; SAID DON'T LOAD IT
7375 ;
7376 016652 50$:
7377 016652 000137 023714' JMP $CFGBT ; LOAD THE BOOT
7378 ;
KLIQB -- ASK BOOT LOAD QUESTION MACRO M1113 03-APR-86 20:55 PAGE 163
LQBRBF -- SUBROUTINE TO READ SAVED BOOT FLAG
7380 .SBTTL LQBRBF -- SUBROUTINE TO READ SAVED BOOT FLAG
7381
7382 016656 LQBRBF::
7383 016656 105037 000026' CLRB .UFNSW ; INDICATE NO FILE NAME SPECIFIED
7384 016662 012700 001534' MOV #DQBFNM,R0 ; POINT TO THE FILENAME
7385 016666 CALL $LOOKUP ; LOOK IT UP
016666 004737 007562' JSR PC,$LOOKUP
7386 016672 103022 BCC 30$ ; ALL OK IF CC-C IS CLEAR
7387 016674 122737 000000G 000526' CMPB #IE.NSF,.SYSTA ; NON-EXISTENT FILE??
7388 016702 001063 BNE 70$ ; NO -- BIG TROUBLE
7389 016704 105737 000024' TSTB .DLGSW ; ARE WE IN DIALOG MODE??
7390 016710 100004 BPL 10$ ; YES -- GO ON
7391 016712 032737 000000G 000060' BIT #KL.LVB,.KLISV ; NO -- DOES HE WANT THE BOOT LOADED??
7392 016720 001461 BEQ 90$ ; NO -- JUST EXIT
7393 016722 10$:
7394 016722 PRINT #TQBNFL ; YES -- WARN OPERATOR
016722 012700 003363' MOV #TQBNFL,R0
016726 004737 027634' JSR PC,$TTMSG
7395 016732 20$:
7396 016732 105237 000050' INCB .BTSW ; INDICATE TO LOAD THE BOOTSTRAP
7397 016736 000452 BR 90$ ; AND EXIT
7398 ;
7399 016740 30$:
7400 016740 CALL $READC ; GET A RECORD FROM THE FILE
016740 004737 010216' JSR PC,$READC
7401 016744 103444 BCS 80$ ; ERROR IF CC-C IS SET
7402 016746 022700 000003 CMP #3,R0 ; ONE WE'RE LOOKING FOR??
7403 016752 001411 BEQ 50$ ; YES -- READ THE DATA
7404 016754 005700 TST R0 ; NO -- END-OF-FILE??
7405 016756 001003 BNE 40$ ; NO -- SKIP THIS RECORD
7406 016760 CALL $CLOSE ; YES -- CLOSE THE FILE
016760 004737 007056' JSR PC,$CLOSE
7407 016764 000762 BR 20$ ; AND SAY LOAD THE BOOTSTRAP
7408 ;
7409 016766 40$:
7410 016766 CALL $READS ; SKIP THIS RECORD
016766 004737 010254' JSR PC,$READS
7411 016772 103431 BCS 80$ ; ERROR IF CC-C IS SET
7412 016774 000761 BR 30$ ; OK -- LOOK AT NEXT RECORD
7413 ;
7414 016776 50$:
7415 016776 CALL $READB ; READ THE BYTE INTO R0
016776 004737 010420' JSR PC,$READB
7416 017002 103425 BCS 80$ ; ERROR IF CC-C IS SET
7417 017004 110037 000050' MOVB R0,.BTSW ; SAVE THE BOOT SWITCH
7418 017010 CALL $READB ; READ THE FILE-NAME SWITCH
017010 004737 010420' JSR PC,$READB
7419 017014 103420 BCS 80$ ; ERROR IF CC-C IS SET
7420 017016 110037 000026' MOVB R0,.UFNSW ; SET THE FILENAME SWITCH
7421 017022 001413 BEQ 70$ ; EXIT IF NONE
7422 017024 012701 000004 MOV #4,R1 ; SET UP TO READ FILENAME
7423 017030 012702 000476' MOV #.USRFN,R2 ; POINT TO FILENAME BLOCK
7424 017034 60$:
7425 017034 CALL $READW ; READ A WORD OF THE FILENAME
017034 004737 010324' JSR PC,$READW
7426 017040 103406 BCS 80$ ; ERROR IF CC-C IS SET
7427 017042 010022 MOV R0,(R2)+ ; LOAD IT INTO THE FILE-NAME BLOCK
KLIQB -- ASK BOOT LOAD QUESTION MACRO M1113 03-APR-86 20:55 PAGE 163-1
LQBRBF -- SUBROUTINE TO READ SAVED BOOT FLAG
7428 017044 077105 SOB R1,60$ ; UNTIL DONE
7429 017046 105237 000026' INCB .UFNSW ; INDICATE FILE NAME SPECIFIED
7430 017052 70$:
7431 017052 CALLR $CLOSE ; CLOSE THE FILE AND EXIT
017052 000137 007056' JMP $CLOSE
7432 ;
7433 017056 80$:
7434 017056 CALL $PURGE ; ERROR -- PURGE FILE
017056 004737 010124' JSR PC,$PURGE
7435 017062 000261 SEC ; SET ERROR FLAG
7436 017064 90$:
7437 017064 RETURN ; TO CALLER
017064 000207 RTS PC
KLIQB -- ASK BOOT LOAD QUESTION MACRO M1113 03-APR-86 20:55 PAGE 164
LQBRBF -- SUBROUTINE TO READ SAVED BOOT FLAG
7439
7440 .TITLE KLIQC -- ASK CACHE QUESTIONS
7441 017066 IDENT$ 5,0
.IDENT /005000/
7442 ;
7443 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
7444 ; ALL RIGHTS RESERVED.
7445 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
7446 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
7447 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
7448 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
7449 ;
7450 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
7451 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
7452 ; EQUIPMENT CORPORATION.
7453 ;
7454 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
7455 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
7456 ;
7457 ; VERSION 05-00
7458 ;
7459 ; ALAN D. PECKHAM 14-APR-77
7460 ;
7461 ; MODIFIED BY:
7462 ;
7463 ; FUNCTION: IF THERE IS CACHE, THIS MODULE DETERMINES HOW IT IS TO BE
7464 ; LOADED AND WHETHER IT IS TO BE ENABLED.
7465 ;
7467 ; LOCAL DATA
7468 ;
7469 003421 .PSECT TEXT,D
7470 003421 TQCACH: MESSAGE <RECONFIGURE CACHE [FILE,ALL,YES,NO]?>
003421 122 105 103 .ASCIZ \RECONFIGURE CACHE [FILE,ALL,YES,NO]?\
003424 117 116 106
003427 111 107 125
003432 122 105 040
003435 103 101 103
003440 110 105 040
003443 133 106 111
003446 114 105 054
003451 101 114 114
003454 054 131 105
003457 123 054 116
003462 117 135 077
003465 000
7471 003466 TQCCEN: MESSAGE <ENABLE WHICH CACHES [ALL,NONE,0-3]?>
003466 105 116 101 .ASCIZ \ENABLE WHICH CACHES [ALL,NONE,0-3]?\
003471 102 114 105
003474 040 127 110
003477 111 103 110
003502 040 103 101
003505 103 110 105
003510 123 040 133
003513 101 114 114
003516 054 116 117
003521 116 105 054
003524 060 055 063
KLIQC -- ASK CACHE QUESTIONS MACRO M1113 03-APR-86 20:55 PAGE 164-1
LQBRBF -- SUBROUTINE TO READ SAVED BOOT FLAG
003527 135 077 000
7472 017066 .PSECT
KLIQC -- ASK CACHE QUESTIONS MACRO M1113 03-APR-86 20:55 PAGE 165
$DLGCA -- ASK IF CACHE IS TO BE CONFIGURED
7474 .SBTTL $DLGCA -- ASK IF CACHE IS TO BE CONFIGURED
7475
7476 017066 105737 000043' $DLGCA::TSTB .CASW ; IF THERE IS NO CACHE
7477 017072 002452 BLT 40$ ; THEN GO ON TO NEXT QUESTION.
7478 017074 105037 000031' CLRB .DCSW ; RESET CACHE CONTROL SWITCH.
7479 017100 105737 000024' TSTB .DLGSW ; DEFAULT PATH TO BE TAKEN ?
7480 017104 003055 BGT 70$ ; YES, RECONFIGURE CACHE.
7481 017106 002440 BLT 30$ ; INTERNAL PATH TO BE TAKEN.
7482 017110 10$: PRINT #TQCACH ; ASK IF CACHE IS TO BE CONFIGURED
017110 012700 003421' MOV #TQCACH,R0
017114 004737 027634' JSR PC,$TTMSG
7483 017120 CALL $TTRD ; AND READ ANSWER.
017120 004737 027130' JSR PC,$TTRD
7484 017124 012705 000304' MOV #.TTIBF,R5
7485 017130 105715 TSTB (R5) ; CR ?
7486 017132 001442 BEQ 70$ ; GIVE HIM LAST CONFIGURATION.
7487 017134 022715 044506 CMP #"FI,(R5) ; [FILE] ?
7488 017140 001437 BEQ 70$ ; GIVE HIM LAST CONFIGURATION.
7489 017142 022715 046101 CMP #"AL,(R5) ; [ALL] ?
7490 017146 001432 BEQ 60$ ; GIVE HIM ALL CACHE.
7491 017150 022715 042531 CMP #"YE,(R5) ; [YES] ?
7492 017154 001433 BEQ LQCCM ; GO ON TO NEXT QUESTION.
7493 017156 022715 047516 CMP #"NO,(R5) ; [NO] ?
7494 017162 001416 BEQ 40$ ; IGNORE CACHE.
7495 017164 022715 040502 CMP #"BA,(R5) ; [BACKUP] ?
7496 017170 001405 BEQ 20$ ; GO TO RAM QUESTION.
7497 017172 PRINT #COMCSE ; MUST BE SOME MISTAKE...
017172 012700 005552' MOV #COMCSE,R0
017176 004737 027634' JSR PC,$TTMSG
7498 017202 000742 BR 10$ ; ASK QUESTION AGAIN.
7499 017204 000137 020700' 20$: JMP $DLGRM ; BACK UP TO RAM QUESTION.
7500 017210 032737 000000G 000060' 30$: BIT #KL.LCA,.KLISV ; INTERNAL REQUEST MADE ?
7501 017216 001002 BNE 50$ ; YES, RECONFIGURE CACHE.
7502 017220 000137 017556' 40$: JMP $DLGMM ; BYPASS CACHE CONFIGURATION.
7503 017224 032737 000000G 000060' 50$: BIT #KL.CFL,.KLISV ; IF NOT TO GET FROM FILE
7504 017232 001402 BEQ 70$ ; THEN
7505 017234 105337 000031' 60$: DECB .DCSW ; INDICATE TO USE ALL CACHES AND
7506 017240 000137 023640' 70$: JMP $CFGCA ; GO TO CONFIGURE CACHE.
KLIQC -- ASK CACHE QUESTIONS MACRO M1113 03-APR-86 20:55 PAGE 166
LQCCM -- ASK WHICH CACHES TO CONFIGURE
7508 .SBTTL LQCCM -- ASK WHICH CACHES TO CONFIGURE
7509
7510 017244 LQCCM: PRINT #TQCCEN ;ASK WHICH CACHES HE WANTS
017244 012700 003466' MOV #TQCCEN,R0
017250 004737 027634' JSR PC,$TTMSG
7511 017254 CALL $TTRD ;AND GET HIS ANSWER.
017254 004737 027130' JSR PC,$TTRD
7512 017260 012705 000304' MOV #.TTIBF,R5
7513 017264 005004 CLR R4 ;INITIALIZE CACHE COUNTER.
7514 017266 105715 TSTB (R5) ; CR ?
7515 017270 001443 BEQ 7$ ;GIVE HIM ALL CACHES.
7516 017272 022715 046101 CMP #"AL,(R5) ; [ALL] ?
7517 017276 001440 BEQ 7$ ;GIVE HIM ALL CACHES.
7518 017300 022715 047516 CMP #"NO,(R5) ; [NONE] ?
7519 017304 001427 BEQ 6$ ;DON'T TOUCH THE CACHE.
7520 017306 022715 040502 CMP #"BA,(R5) ; [BACKUP] ?
7521 017312 001665 BEQ $DLGCA ;ASK LAST QUESTION.
7522 017314 3$: CALL $TRI2B ;GET A NUMBER -
017314 004737 025424' JSR PC,$TRI2B
7523 017320 103433 BCS 9$ ;IS IT
7524 017322 022700 000004 CMP #4,R0 ;WITHIN RANGE ?
7525 017326 003430 BLE 9$
7526 017330 012701 000065' MOV #.CACHN,R1 ;YES, CHECK MODULE TABLE
7527 017334 110403 MOVB R4,R3 ;TO SEE IF GIVEN BEFORE.
7528 017336 001403 BEQ 5$ ;OKAY - EMPTY TABLE.
7529 017340 120021 4$: CMPB R0,(R1)+
7530 017342 001422 BEQ 9$
7531 017344 077303 SOB R3,4$
7532 017346 105204 5$: INCB R4 ;ONE MORE MODULE -
7533 017350 110011 MOVB R0,(R1) ;PUT IN TABLE.
7534 017352 122725 000054 CMPB #',,(R5)+ ;LEGAL SEPERATOR ?
7535 017356 001756 BEQ 3$ ;YES, GET ANOTHER NUMBER.
7536 017360 105745 TSTB -(R5) ;END OF LINE ?
7537 017362 001012 BNE 9$ ;NO, ASK QUESTION AGAIN.
7538 017364 110437 000064' 6$: MOVB R4,.NCACH ;SET NUMBER OF CACHES,
7539 017370 105237 000031' INCB .DCSW ;INDICATE CONFIGURATION SET AND
7540 017374 000137 023640' JMP $CFGCA ;GO TO CONFIGURE CACHE.
7541 017400 105337 000031' 7$: DECB .DCSW ;INDICATE TO USE ALL CACHES AND
7542 017404 000137 023640' JMP $CFGCA ;GO TO CONFIGURE CACHE.
7543 017410 9$: PRINT #COMCSE ;MUST HAVE MIS-TYPED...
017410 012700 005552' MOV #COMCSE,R0
017414 004737 027634' JSR PC,$TTMSG
7544 017420 000711 BR LQCCM ;ASK QUESTION AGAIN.
KLIQC -- ASK CACHE QUESTIONS MACRO M1113 03-APR-86 20:55 PAGE 167
LQCCM -- ASK WHICH CACHES TO CONFIGURE
7547
7548
7549 .TITLE KLIQE -- ASK EXIT QUESTIONS
7550 017422 IDENT$ 11,0,KLI$$F
.IDENT /A11000/
7551 ;
7552 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
7553 ; ALL RIGHTS RESERVED.
7554 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
7555 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
7556 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
7557 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
7558 ;
7559 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
7560 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
7561 ; EQUIPMENT CORPORATION.
7562 ;
7563 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
7564 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
7565 ;
7566 ; VERSION 11-00
7567 ;
7568 ; ALAN D. PECKHAM 12-APR-77
7569 ;
7570 ; MODIFIED BY:
7571 ;
7572 ; FUNCTION: THIS MODULE ALLOWS THE OPERATOR TO RESTART THE DIALOG
7573 ; OR EXIT FROM KLINIT. IT ALSO DISPATHES INTERNAL REQUESTS FOR
7574 ; SPECIAL KL RESTARTS SUCH AS POWER FAIL.
7575 ;
7576 ; LOCAL DATA
7577 ;
7578 003532 .PSECT TEXT,D
7579 003532 TQEXIT:
7580 003532 MESSAGE <EXIT [YES,RESTART]?>
003532 105 130 111 .ASCIZ \EXIT [YES,RESTART]?\
003535 124 040 133
003540 131 105 123
003543 054 122 105
003546 123 124 101
003551 122 124 135
003554 077 000
7581 017422 .PSECT
KLIQE -- ASK EXIT QUESTIONS MACRO M1113 03-APR-86 20:55 PAGE 168
$DLGEX -- ASK WHERE TO EXIT
7583 .SBTTL $DLGEX -- ASK WHERE TO EXIT
7584
7585 017422 $DLGEX::
7586 017422 105737 000024' TSTB .DLGSW ; TEST DIALOG CONTROL SWITCH.
7587 017426 003045 BGT 50$ ; NORMAL EXIT.
7588 017430 002434 BLT 40$ ; TAKE INTERNAL PATH.
7589 017432 10$:
7590 017432 PRINT #TQEXIT ; ASK QUESTION
017432 012700 003532' MOV #TQEXIT,R0
017436 004737 027634' JSR PC,$TTMSG
7591 017442 CALL $TTRD ; READ ANSWER
017442 004737 027130' JSR PC,$TTRD
7592 017446 012705 000304' MOV #.TTIBF,R5
7593 017452 105715 TSTB (R5) ; CR ?
7594 017454 001432 BEQ 50$ ; NORMAL EXIT.
7595 017456 022715 042531 CMP #"YE,(R5) ; [YES] ?
7596 017462 001427 BEQ 50$ ; NORMAL EXIT.
7597 017464 022715 042522 CMP #"RE,(R5) ; [RESTART] ?
7598 017470 001412 BEQ 30$ ; GO TO FIRST QUESTION.
7599 017472 022715 040502 CMP #"BA,(R5) ; [BACK] ?
7600 017476 001405 BEQ 20$ ; ASK PREVIOUS QUESTION.
7601 017500 PRINT #COMCSE ; FUMBLE FINGERS...
017500 012700 005552' MOV #COMCSE,R0
017504 004737 027634' JSR PC,$TTMSG
7602 017510 000750 BR 10$ ; ASK QUESTION AGAIN.
7603 ;
7604 017512 20$:
7605 017512 000137 016530' JMP $DLWCF ; ASK TO WRITE CONFIGURATION FILE.
7606 ;
7607 017516 30$:
7608 017516 000137 021170' JMP $DLGEN ; ASK IF DIALOG NECESSARY.
7609 ;
7610 017522 40$:
7611 017522 032737 000000G 000060' BIT #KL.SPF,.KLISV ; INTERNAL REQUEST ?
7612 017530 001006 BNE 60$ ; START KL ON POWER FAIL.
7614 017532 032737 000000G 000060' BIT #KL.SSC,.KLISV
7615 017540 001004 BNE 70$ ; START KL ON SYSTEM CRASH.
7617 017542 50$:
7618 017542 000137 024022' JMP $EXIT ; NORMAL EXIT FROM KLINIT
7619 ;
7620 017546 60$:
7621 017546 000137 022540' JMP $POWER ; START KL ON POWER FAIL.
7622 ;
7624 017552 70$:
7625 017552 000137 022622' JMP $RSTRT ; START KL ON SYSTEM CRASH.
7626 ;
KLIQE -- ASK EXIT QUESTIONS MACRO M1113 03-APR-86 20:55 PAGE 169
$DLGEX -- ASK WHERE TO EXIT
7629
7630
7631 .TITLE KLIQM -- ASK MEMORY QUESTIONS
7632 017556 IDENT$ 12,15,KLI$$F
.IDENT /A12150/
7633 ;
7634 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
7635 ; ALL RIGHTS RESERVED.
7636 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
7637 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
7638 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
7639 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
7640 ;
7641 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
7642 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
7643 ; EQUIPMENT CORPORATION.
7644 ;
7645 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
7646 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
7647 ;
7648 ; VERSION 12-15
7649 ;
7650 ; ALAN D. PECKHAM 12-APR-77
7651 ;
7652 ; MODIFIED BY:
7653 ;
7654 ; R. BELANGER 07-NOV-79 FIX BUG IN MF-20 CONFIGURATION
7655 ; TCO 4.1.1009
7656 ;
7657 ; R BELANGER 11-JUL-79 ADD FORCE RECONFIGURATION OPTION AND
7658 ; FORCE RECONFIGURATION ON MF-20
7659 ; POWER FAIL.
7660 ; TCO 4.2322
7661 ;
7662 ; R. BELANGER 02-MAR-79 ADD REVERSE MEMORY CONFIGURATION OPTION
7663 ; TCO 4.2204
7664 ; R. BELANGER 25-JUL-78 INTEGRATE WITH MOS CONFIGURATOR
7665 ;
7666 ; FUNCTION: IF REQUESTED, THIS MODULE GETS ALL INFORMATION NECESSARY TO
7667 ; CONFIGURE THE KL MEMORY.
KLIQM -- ASK MEMORY QUESTIONS MACRO M1113 03-APR-86 20:55 PAGE 170
$DLGEX -- ASK WHERE TO EXIT
7669 ;
7670 ; LOCAL DATA
7671 ;
7672 003556 .PSECT TEXT,D
7673 003556 TQMCF0:
7674 003556 MESSAGE <CONFIGURE KL MEMORY [FILE,ALL,REVERSE,YES,NO]?>
003556 103 117 116 .ASCIZ \CONFIGURE KL MEMORY [FILE,ALL,REVERSE,YES,NO]?\
003561 106 111 107
003564 125 122 105
003567 040 113 114
003572 040 115 105
003575 115 117 122
003600 131 040 133
003603 106 111 114
003606 105 054 101
003611 114 114 054
003614 122 105 126
003617 105 122 123
003622 105 054 131
003625 105 123 054
003630 116 117 135
003633 077 000
7675 003635 TQMCF1:
7676 003635 MESSAGE <CONFIGURE KL MEMORY [FILE,ALL,REVERSE,FORCE,YES,NO]?>
003635 103 117 116 .ASCIZ \CONFIGURE KL MEMORY [FILE,ALL,REVERSE,FORCE,YES,NO]?\
003640 106 111 107
003643 125 122 105
003646 040 113 114
003651 040 115 105
003654 115 117 122
003657 131 040 133
003662 106 111 114
003665 105 054 101
003670 114 114 054
003673 122 105 126
003676 105 122 123
003701 105 054 106
003704 117 122 103
003707 105 054 131
003712 105 123 054
003715 116 117 135
003720 077 000
7677 003722 TQMNM0:
7678 003722 ERROR <NO MEMORY AT LOCATION ZERO>
003722 077 040 116 .ASCIZ \? NO MEMORY AT LOCATION ZERO\
003725 117 040 115
003730 105 115 117
003733 122 131 040
003736 101 124 040
003741 114 117 103
003744 101 124 111
003747 117 116 040
003752 132 105 122
003755 117 000
7679 003757 TQMPCA:
7680 003757 WARNING <PHYSICAL MEMORY CONFIGURATION ALTERED - DUMP OR RESTART SUPPRESSED>
003757 045 040 120 .ASCIZ \% PHYSICAL MEMORY CONFIGURATION ALTERED - DUMP OR RESTART SUPPRESSED\
KLIQM -- ASK MEMORY QUESTIONS MACRO M1113 03-APR-86 20:55 PAGE 170-1
$DLGEX -- ASK WHERE TO EXIT
003762 110 131 123
003765 111 103 101
003770 114 040 115
003773 105 115 117
003776 122 131 040
004001 103 117 116
004004 106 111 107
004007 125 122 101
004012 124 111 117
004015 116 040 101
004020 114 124 105
004023 122 105 104
004026 040 055 040
004031 104 125 115
004034 120 040 117
004037 122 040 122
004042 105 123 124
004045 101 122 124
004050 040 123 125
004053 120 120 122
004056 105 123 123
004061 105 104 000
7681 017556 .PSECT
KLIQM -- ASK MEMORY QUESTIONS MACRO M1113 03-APR-86 20:55 PAGE 171
$DLGMM -- ASK WHETHER TO CONFIGURE THE KL MEMORY
7683 .SBTTL $DLGMM -- ASK WHETHER TO CONFIGURE THE KL MEMORY
7684
7685 017556 $DLGMM::
7686 017556 105037 000032' CLRB .DMSW ; CLEAR MEMORY CONTROL.
7687 017562 005037 000234' CLR .CFMRV ; [4.2204] ASSUME NORMAL CONFIGURATION
7688 017566 CALL MBINI ; INIT THE MEMORY BOOT
017566 004737 000000G JSR PC,MBINI
7689 017572 032737 000000G 000060' BIT #KL.SPF,.KLISV ; POWER-FAIL RECOVERY??
7690 017600 001403 BEQ 5$ ; NO -- GO ON
7691 017602 112737 177777 000000G MOVB #-1,KEEPBB ; [4.2322] YES -- KEEP BAD MF20 BLOCKS
7692 017610 5$:
7693 017610 105737 000024' TSTB .DLGSW ; TEST CONFIGURATION SWITCH.
7694 017614 003110 BGT 90$ ; USE LAST CONFIGURATION.
7695 017616 002460 BLT 40$ ; TAKE INTERNAL PATH.
7696 017620 10$:
7697 017620 012700 003556' MOV #TQMCF0,R0 ; [4.2322] ASSUME NO MF-20'S
7698 017624 105737 000045' TSTB .MFSW ; [4.2322] ARE THERE ANY MF-20'S??
7699 017630 003402 BLE 15$ ; [4.2322] NO -- GO ON
7700 017632 012700 003635' MOV #TQMCF1,R0 ; [4.2322] YES -- SELECT PROPER MESSAGE
7701 017636 15$: ; [4.2322]
7702 017636 CALL $TTMSG ; [4.2322] ASK THE QUESTION
017636 004737 027634' JSR PC,$TTMSG
7703 017642 CALL $TTRD ; READ ANSWER.
017642 004737 027130' JSR PC,$TTRD
7704 017646 012705 000304' MOV #.TTIBF,R5
7705 017652 105715 TSTB (R5) ; CR ?
7706 017654 001470 BEQ 90$ ; USE LAST CONFIGURATION.
7707 017656 022715 044506 CMP #"FI,(R5) ; [FILE] ?
7708 017662 001465 BEQ 90$ ; USE LAST CONFIGURATION.
7709 017664 022715 046101 CMP #"AL,(R5) ; [ALL] ?
7710 017670 001460 BEQ 80$ ; CONFIGURE ALL MEMORY.
7711 017672 022715 042522 CMP #"RE,(R5) ; [4.2204] [REVERSE] ?
7712 017676 001443 BEQ 55$ ; [4.2204] YES -- DO IT
7713 017700 022715 047506 CMP #"FO,(R5) ; [4.2322] [FORCE] ?
7714 017704 001432 BEQ 45$ ; [4.2322] YES -- DO IT
7715 017706 022715 042531 CMP #"YE,(R5) ; [YES] ?
7716 017712 001437 BEQ 60$ ; GO ON TO NEXT QUESTION.
7717 017714 022715 047516 CMP #"NO,(R5) ; [NO] ?
7718 017720 001430 BEQ 50$ ; SKIP MEMORY CONFIGURATION.
7719 017722 022715 040502 CMP #"BA,(R5) ; [BACKUP] ?
7720 017726 001405 BEQ 20$ ; ASK PREVIOUS QUESTION.
7721 017730 PRINT #COMCSE ; UNCOORDINATED FINGERS...
017730 012700 005552' MOV #COMCSE,R0
017734 004737 027634' JSR PC,$TTMSG
7722 017740 000727 BR 10$ ; ASK QUESTION AGAIN.
7723 ;
7725 017742 20$:
7726 017742 105737 000043' TSTB .CASW ; IS CACHE AVAILABLE ?
7727 017746 002402 BLT 30$ ; NO, GO TO RAM QUESTION.
7728 017750 000137 023634' JMP $DLGCV ; YES, ASK ABOUT CACHE.
7729 ;
7730 017754 30$:
7731 017754 000137 023674' JMP $DLGRV ; NO, GO TO RAM QUESTION.
7732 ;
7738 017760 40$:
7739 017760 032737 000000G 000060' BIT #KL.CFM,.KLISV ; INTERNAL SPECIFIC REQUEST MADE ?
7740 017766 001015 BNE 70$ ; YES -- ANALYZE FURTHER...
KLIQM -- ASK MEMORY QUESTIONS MACRO M1113 03-APR-86 20:55 PAGE 171-1
$DLGMM -- ASK WHETHER TO CONFIGURE THE KL MEMORY
7741 017770 000422 BR 90$ ; NO -- MAKE SURE CONFIGURATION STILL EXISTS
7742 ;
7743 017772 45$: ; [4.2322]
7744 017772 112737 177777 000000G MOVB #-1,DBEFRC ; [4.2322] FORCE THE DBE SCAN
7745 020000 000404 BR 60$ ; [4.2322] AND GO ON
7746 ;
7747 020002 50$:
7748 020002 000137 023670' JMP $DLGBV ; ASK TO LOAD BOOT.
7749 ;
7750 020006 55$: ; [4.2204]
7751 020006 005337 000234' DEC .CFMRV ; [4.2204] SET REVERSE CONFIGURATION
7752 020012 60$:
7753 020012 113737 000234' 000000G MOVB .CFMRV,CONFGR ; [4.2204] TELL THE MEMORY BOOT FORWARD OR REVERSE
7754 020020 000407 BR $DSPPT ; DISPLAY THE PHYSICAL CONFIGURATION.
7755 ;
7756 020022 70$:
7757 020022 032737 000000G 000060' BIT #KL.CFL,.KLISV ; IF NOT TO GET FROM FILE,
7758 020030 001402 BEQ 90$ ; THEN
7759 020032 80$:
7760 020032 105337 000032' DECB .DMSW ; INDICATE TO USE ALL AND
7761 020036 90$:
7762 020036 000410 BR $CFGMM ; GO TO CONFIGURE MEMORY.
7763 ;
KLIQM -- ASK MEMORY QUESTIONS MACRO M1113 03-APR-86 20:55 PAGE 172
$DLGMM -- ASK WHETHER TO CONFIGURE THE KL MEMORY
7765 ;
7766 ; HERE FOR LONG MEMORY CONFIGURATION DIALOG
7767 ;
7768 020040 $DSPPT::
7769 020040 112737 177777 000000G MOVB #-1,FMRECN ; [4.2322] FORCE RECONFIGURATION
7770 020046 CALL RESDET ; GET PHYSICAL CONFIGURATION AND
020046 004737 000000G JSR PC,RESDET
7771 020052 CALL REPCON ; DISPLAY THE MEMORY LAYOUT.
020052 004737 000000G JSR PC,REPCON
7772 020056 000520 BR $DLGCT ; ENTER CONTROLLER DIALOG.
7773 ;
7774 ;
7775 ; HERE FOR:
7776 ;
7777 ; "FILE" IF .DMSW .EQ. 0
7778 ; "ALL" IF .DMSW .LT. 0
7779 ;
7780 020060 $CFGMM::
7781 020060 105737 000032' TSTB .DMSW ; ARE WE IN DIALOG MODE??
7782 020064 001006 BNE 10$ ; YES -- GO ON
7783 020066 CALL $GETMM ; NO -- READ THE FILE
020066 004737 014312' JSR PC,$GETMM
7784 020072 103510 BCS ERRORX ; GIVE UP IF ERROR
7785 020074 105737 000032' TSTB .DMSW ; USE ALL??
7786 020100 001403 BEQ 20$ ; NO -- GO ON
7787 020102 10$:
7788 020102 112737 177777 000000G MOVB #-1,FMRECN ; [4.2322] YES -- FORCE RECONFIGURATION
7789 020110 20$:
7790 020110 113737 000234' 000000G MOVB .CFMRV,CONFGR ; [4.2204] SET FORWARD/REVERSE CONFIGURATION
7791 020116 CALL RESDET ; GET PHYSICAL CONFIGURATION
020116 004737 000000G JSR PC,RESDET
7792 020122 105737 000024' TSTB .DLGSW ; ARE WE ON INTERNAL PATH??
7793 020126 002036 BGE 40$ ; NO -- GO ON
7794 020130 105737 000046' TSTB .MFCT ; [4.1.1009] YES -- DO WE EXPECT MOS MEMORY??
7795 020134 001433 BEQ 40$ ; [4.1.1009] NO -- GO ON
7796 020136 105737 000000G TSTB MF20 ; [4.1.1009] YES -- DO WE HAVE MOS MEMORY??
7797 020142 001406 BEQ 30$ ; [4.1.1009] NO -- COMPLAIN
7798 020144 105737 000000G TSTB CCFAIL ; YES -- DID THE MF20'S EVAPORATE??
7799 020150 001003 BNE 30$ ; YES -- SET UP TO RELOAD THE KL
7800 020152 005737 000000G TST XCONMP ; NO -- DO WE HAVE ANY STATE 2 CONTROLLERS??
7801 020156 001022 BNE 40$ ; YES -- GO ON
7802 020160 30$:
7803 020160 042737 000000C 000060' BIC #KL.SPF!KL.VBD,.KLISV ; NO -- DON'T RESTART OR DUMP THE KL
7804 020166 052737 000000C 000060' BIS #KL.VBN!KL.LVB,.KLISV ; JUST LOAD AND START IT INSTEAD
7805 020174 PRINT #TQMPCA ; WARN SOMEONE ABOUT IT
020174 012700 003757' MOV #TQMPCA,R0
020200 004737 027634' JSR PC,$TTMSG
7806 020204 105737 000000G TSTB CCFAIL ; [4.2322] DO WE NEED A DBE SCAN??
7807 020210 001405 BEQ 40$ ; [4.2322] NO -- GO ON
7808 020212 112737 177777 000000G MOVB #-1,DBEFRC ; [4.2322] YES -- SET THE FLAG
7809 020220 CALL RESDET ; [4.2322] AND DO IT
020220 004737 000000G JSR PC,RESDET
7810 020224 40$:
7811 020224 105737 000032' TSTB .DMSW ; IS THIS A FILE READ??
7812 020230 001033 BNE $DLGCT ; NO -- DO DEFAULT DIALOG
7813 020232 $CFGXX::
7814 020232 CALL $CONFG ; YES -- EDIT THE TABLES
KLIQM -- ASK MEMORY QUESTIONS MACRO M1113 03-APR-86 20:55 PAGE 172-1
$DLGMM -- ASK WHETHER TO CONFIGURE THE KL MEMORY
020232 004737 005514' JSR PC,$CONFG
7815 020236 103424 BCS 20$ ; ERROR IF CC-C IS SET
7816 020240 CALL RESDET ; ONE MORE TIME
020240 004737 000000G JSR PC,RESDET
7817 020244 CALL FITMEM ; SET UP LOGICAL TABLE
020244 004737 000000G JSR PC,FITMEM
7818 020250 CALL REPFIT ; REPORT LOGICAL CONFIGURATION
020250 004737 000000G JSR PC,REPFIT
7819 020254 005737 000000G TST GAPCNT ; DO WE HAVE ANY GAPS??
7820 020260 001410 BEQ 10$ ; NO -- GO ON
7821 020262 005737 000000G TST GAPTAB+0 ; YES -- IS THERE A GAP AT 0??
7822 020266 001005 BNE 10$ ; NO -- GO ON
7823 020270 PRINT #TQMNM0 ; YES -- COMPLAIN
020270 012700 003722' MOV #TQMNM0,R0
020274 004737 027634' JSR PC,$TTMSG
7824 020300 000405 BR ERRORX ; AND EXIT
7825 ;
7826 020302 10$:
7827 020302 CALL CONFIG ; SET REQUESTED CONFIGURATION
020302 004737 000000G JSR PC,CONFIG
7828 020306 000241 CLC ; INSURE CC-C IS CLEAR
7829 020310 20$:
7830 020310 CALLR $DLGMX ; RETURN TO ROOT
020310 000137 023666' JMP $DLGMX
7831 ;
7832 020314 ERRORX:
7833 020314 000137 024012' JMP $ERROR ; ERROR EXIT
7834 ;
KLIQM -- ASK MEMORY QUESTIONS MACRO M1113 03-APR-86 20:55 PAGE 173
$DLGCT -- ASK FOR MEMORY CONTROLLER NUMBER
7836 .SBTTL $DLGCT -- ASK FOR MEMORY CONTROLLER NUMBER
7837
7838 020320 $DLGCT::
7839 020320 012700 000040 MOV #CTLS,R0 ; MAX CONTROLLER NUMBER
7840 020324 012701 000134' MOV #.CFGTB,R1 ; POINT TO CONFIGURATION TABLE
7841 020330 10$:
7842 020330 116060 177777G 000071' MOVB TYPNUM-1(R0),.CTLTP-1(R0) ; SET UP OUR CONTROLLER TABLE
7843 020336 012721 100000 MOV #BIT15,(R1)+ ; INVALIDATE OUR CONFIGURATION TABLE
7844 020342 077006 SOB R0,10$ ; LOOP TILL DONE
7845 ;
7846 ; CONFIGURATION DIALOG VECTORS
7847 ;
7848 020344 $DLGIM::
7849 020344 CALLR $CFIMD ; INTERNAL MEMORY DIALOG
020344 000137 004232' JMP $CFIMD
7850 ;
7851 020350 $DLGXM::
7852 020350 CALLR $CFXMD ; EXTERNAL MEMORY DIALOG
020350 000137 006544' JMP $CFXMD
7853 ;
7854 020354 $DLGMF::
7855 020354 CALLR $CFMMD ; MOS MEMORY DIALOG
020354 000137 004200' JMP $CFMMD
7856 ;
7857 020360 $DLGMB::
7858 020360 CALLR $DLGMM ; BACK UP
020360 000137 017556' JMP $DLGMM
7859 ;
7860 ;
7861 ; DECIDE WHERE TO GO ON "BACKUP"
7862 ;
7863 020364 $DLMB1:: ; HERE FROM MOS MEMORY DIALOG
7864 020364 105737 000000G TSTB DMA20 ; DO WE HAVE EXTERNAL MEMORY??
7865 020370 001367 BNE $DLGXM ; YES -- GO TO IT
7866 020372 $DLMB2:: ; HERE FROM EXTERNAL MEMORY DIALOG
7867 020372 105737 000000G TSTB MA20 ; DO WE HAVE MA20'S??
7868 020376 001362 BNE $DLGIM ; YES -- GO TO IT
7869 020400 105737 000000G TSTB MB20 ; DO WE HAVE MB20'S??
7870 020404 001357 BNE $DLGIM ; YES -- GO TO IT
7871 020406 000764 BR $DLGMB ; NO -- GO ALL THE WAY TO THE TOP
7872 ;
KLIQM -- ASK MEMORY QUESTIONS MACRO M1113 03-APR-86 20:55 PAGE 174
$DLGCT -- ASK FOR MEMORY CONTROLLER NUMBER
7874
7875
7876 .TITLE KLIQP -- MCA25 CACHE PAGER SELECT
7877 020410 IDENT$ 1,0
.IDENT /001000/
7878 ; COPYRIGHT (C) 1984, 1985 DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS.
7879 ; ALL RIGHTS RESERVED.
7880 ; VERSION 1-00
7881 ;
7882 ; M. RUDENKO 16-FEB-84
7883 ;
7884 ; FUNCTION: CHECKS FOR EXISTENCE OF MCA25 CACHE PAGE UPGRAGE, AND ALLOWS
7885 ; OPERATOR TO SELECT WHICH PAGE TABLE TO USE.
7886 ;
7887 ; LOCAL DATA
7888 ;
7889 004064 .PSECT TEXT,D
7890 004064 TQSPT: MESSAGE <SELECT PAGE TABLE [FILE,BOTH,0,1]?>
004064 123 105 114 .ASCIZ \SELECT PAGE TABLE [FILE,BOTH,0,1]?\
004067 105 103 124
004072 040 120 101
004075 107 105 040
004100 124 101 102
004103 114 105 040
004106 133 106 111
004111 114 105 054
004114 102 117 124
004117 110 054 060
004122 054 061 135
004125 077 000
7891
7892 004127 TXPTS: MESSAGE <KLI -- PAGE TABLE SELECTED: _>
004127 113 114 111 .ASCIZ \KLI -- PAGE TABLE SELECTED: _\
004132 040 055 055
004135 040 120 101
004140 107 105 040
004143 124 101 102
004146 114 105 040
004151 123 105 114
004154 105 103 124
004157 105 104 072
004162 040 137 000
7893 004165 TXBOTH: MESSAGE <BOTH>
004165 102 117 124 .ASCIZ \BOTH\
004170 110 000
7894
7895 020410 .PSECT
7896 020410 $DLGPA::
7897 020410 105037 000034' CLRB .PTSW ; [**] RESET PAGE TABLE MODIFIED SWITCH
7898 020414 005037 000524' CLR .PTSEL ; [**] INITIALIZE PAGE TABLE SELECTED
7899 020420 105037 000304' CLRB .TTIBF ; [**] CLEAR BUFFER TO ECHO POSSIBLE DEFAULT
7900 020424 105737 000024' TSTB .DLGSW ; [**] TEST DIALOG SWITCH
7901 020430 001043 BNE 55$ ; [**] TAKE DEFAULT PATH
7902 020432 10$:
7903 020432 PRINT #TQSPT ; [**] ASK WHICH PAGE TABLE(S)
020432 012700 004064' MOV #TQSPT,R0
020436 004737 027634' JSR PC,$TTMSG
KLIQP -- MCA25 CACHE PAGER SELE MACRO M1113 03-APR-86 20:55 PAGE 174-1
$DLGCT -- ASK FOR MEMORY CONTROLLER NUMBER
7904 020442 CALL $TTRD ; [**] READ REPLY
020442 004737 027130' JSR PC,$TTRD
7905 020446 012705 000304' MOV #.TTIBF,R5 ; [**] LOCATE FIRST TWO CHARS OF RESPONSE
7906 020452 105715 TSTB (R5) ; [**] [CR]?
7907 020454 001431 BEQ 55$ ; [**] DEFAULT TO FILE
7908 020456 022715 040502 CMP #"BA,(R5) ; [**] [BACKUP]?
7909 020462 001504 BEQ 90$ ; [**] YES..DO IT
7910 020464 022715 047502 CMP #"BO,(R5) ; [**] [BOTH]?
7911 020470 001434 BEQ 60$ ; [**] GO SELECT BOTH PAGE TABLES
7912 020472 022715 044506 CMP #"FI,(R5) ; [**] [FILE]?
7913 020476 001420 BEQ 55$ ; [**] READ FROM CONFIGURATION FILE
7914 ;
7915 ; STILL NO MATCH -- MAYBE A NUMBER WAS ENTERED...
7916 ;
7917 020500 CALL $TRI2B ; [**] CONVERT ASCII TO NUMERIC
020500 004737 025424' JSR PC,$TRI2B
7918 020504 103466 BCS 80$ ; [**] UNRECOGNIZED INPUT -- COMPLAIN
7919 020506 022700 000002 CMP #2,R0 ; [**] OUT OF RANGE?
7920 020512 003463 BLE 80$ ; [**] COMPLAIN AND RETRY
7921 020514 005700 TST R0 ; [**] PAGE TABLE ONE ONLY?
7922 020516 001003 BNE 50$ ; [**] YES -- SET IT UP
7923
7924 020520 40$:
7925 020520 012703 001554' MOV #DQSP0,R3 ; [**] SELECT PAGE TABLE ZERO ONLY
7926 020524 000422 BR 70$ ; [**] EXECUTE MICRO-INSTRUCTION
7927 020526 50$:
7928 020526 012703 001570' MOV #DQSP1,R3 ; [**] SELECT PAGE TABLE ONE ONLY
7929 020532 005237 000524' INC .PTSEL ; [**] SAVE PAGE TABLE USED
7930 020536 000415 BR 70$ ; [**] EXECUTE MICRO-INSTRUCTION
7931 020540 55$:
7932 020540 105337 000034' DECB .PTSW ; [**] DON'T AUTO WRITE CONFIG FILE
7933 020544 CALL $GETPA ; [**] READ CONFIGURATION FILE
020544 004737 014562' JSR PC,$GETPA
7934 020550 022701 000001 CMP #1,R1 ; [**] IF PAGE ONE CHOSEN ...
7935 020554 001764 BEQ 50$ ; [**] THEN SET IT UP
7936 020556 005701 TST R1 ; [**] IF PAGE ZERO WAS SELECTED ...
7937 020560 001757 BEQ 40$ ; [**] THEN SET IT UP, ELSE ...
7938 020562 60$:
7939 020562 012703 001604' MOV #DQSP01,R3 ; [**] SELECT PAGE TABLES ZERO & ONE
7940 020566 005337 000524' DEC .PTSEL ; [**] SAVE PAGE TABLE USED (-1=BOTH)
7941 020572 70$:
7942 020572 105237 000034' INCB .PTSW ; [**] FLAG THAT A PAGE TABLE CHANGE WAS MADE
7943 020576 105237 000051' INCB .MCSW ; [**] FLAG THAT WE WANT A PAGE TABLE SELECTION
7944 020602 CALL LQSHWO ; [**] EXECUTE MICRO-INSTRUCTION
020602 004737 022312' JSR PC,LQSHWO
7945 020606 105037 000051' CLRB .MCSW ; [**] ANY FURTHER CALL TO LQSHWO WILL BE APRID
7946
7947 ; FIGURE OUT WHICH PAGE TABLE WAS SELECTED AND DISPLAY IT
7948 020612 012700 004127' MOV #TXPTS,R0 ; [**] THE PAGE TABLE WHICH WAS PICKED WAS ...
7949 020616 CALL $TTDMS ; [**] PRINT MESSAGE
020616 004737 027566' JSR PC,$TTDMS
7950 020622 005737 000524' TST .PTSEL ; [**] WERE BOTH PAGE SELECTED?
7951 020626 002005 BGE 100$ ; [**] NO -- PRINT WHICH ONE
7952 020630 012700 004165' MOV #TXBOTH,R0 ; [**] YES -- SET UP AND ...
7953 020634 CALL $TTDMS ; [**] PRINT "BOTH"
020634 004737 027566' JSR PC,$TTDMS
7954 020640 000404 BR 105$ ; [**] AND ADD CRLF
KLIQP -- MCA25 CACHE PAGER SELE MACRO M1113 03-APR-86 20:55 PAGE 174-2
$DLGCT -- ASK FOR MEMORY CONTROLLER NUMBER
7955 020642 100$:
7956 020642 013700 000524' MOV .PTSEL,R0 ; [**] FETCH PAGE SELECTED
7957 020646 CALL $TDB2I ; [**] PRINT IT
020646 004737 025264' JSR PC,$TDB2I
7958 020652 105$:
7959 020652 CALL $TCRLF ; [**] ADD CR/LF
020652 004737 027530' JSR PC,$TCRLF
7960 020656 75$:
7961 020656 000137 020700' JMP $DLGRM ; [**] GO ON TO NEXT DIALOG
7962 020662 80$:
7963 020662 PRINT #COMCSE ; [**] UNRECOGNIZED INPUT
020662 012700 005552' MOV #COMCSE,R0
020666 004737 027634' JSR PC,$TTMSG
7964 020672 000657 BR 10$ ; [**] TRY AGAIN
7965 020674 90$:
7966 020674 000137 021170' JMP $DLGEN ; [**] GO BACK TO PREVIOUS DIALOG
7967
7968 .TITLE KLIQR -- ASK RAM QUESTIONS
7969 020700 IDENT$ 5,4
.IDENT /005040/
7970 ;
7971 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
7972 ; ALL RIGHTS RESERVED.
7973 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
7974 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
7975 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
7976 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
7977 ;
7978 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
7979 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
7980 ; EQUIPMENT CORPORATION.
7981 ;
7982 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
7983 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
7984 ;
7985 ; VERSION 05-04
7986 ;
7987 ; ALAN D. PECKHAM 14-APR-77
7988 ;
7989 ; MODIFIED BY:
7990 ;
7991 ; K. LEFEBVRE 13-MAR-79 ADD EXPANDED CRAM/DRAM ERROR REPORT
7992 ; TCO 4.2209
7993 ;
7994 ; S. LEAPLINE 25-SEP-80 FIX 'BACK' RESPONCE BRANCH FOR MICROCODE
7995 ;
7996 ; FUNCTION: THIS MODULE DETERMINES THE OPERATIONS TO PERFORM ON THE KL
7997 ; MICROCODE RAMS.
7998 ;
7999 ; LOCAL DATA
8000 ;
8001 004172 .PSECT TEXT,D
8002 004172 TQRLMC: MESSAGE <RELOAD MICROCODE [YES,VERIFY,FIX,NO]?>
004172 122 105 114 .ASCIZ \RELOAD MICROCODE [YES,VERIFY,FIX,NO]?\
004175 117 101 104
004200 040 115 111
004203 103 122 117
KLIQR -- ASK RAM QUESTIONS MACRO M1113 03-APR-86 20:55 PAGE 174-3
$DLGCT -- ASK FOR MEMORY CONTROLLER NUMBER
004206 103 117 104
004211 105 040 133
004214 131 105 123
004217 054 126 105
004222 122 111 106
004225 131 054 106
004230 111 130 054
004233 116 117 135
004236 077 000
8003 020700 .PSECT
KLIQR -- ASK RAM QUESTIONS MACRO M1113 03-APR-86 20:55 PAGE 175
$DLGRM -- ASK IF RELOAD MICROCODE IS REQUIRED
8005 .SBTTL $DLGRM -- ASK IF RELOAD MICROCODE IS REQUIRED
8006
8007 020700 105037 000027' $DLGRM::CLRB .DRSW ; RESET CONTROL AND
8008 020704 105037 000025' CLRB .MCBSW ; FILENAME SWITCH.
8009 020710 105737 000024' TSTB .DLGSW ; TEST DIALOG SWITCH.
8010 020714 003111 BGT 90$ ; TAKE DIALOG DEFAULT PATH.
8011 020716 002446 BLT 30$ ; TAKE INTERNAL PATH.
8012 020720 005002 10$: CLR R2 ; USE AS VERIFY SWITCH.
8013 020722 PRINT #TQRLMC ; ASK QUESTION
020722 012700 004172' MOV #TQRLMC,R0
020726 004737 027634' JSR PC,$TTMSG
8014 020732 CALL $TTRD ; READ ANSWER
020732 004737 027130' JSR PC,$TTRD
8015 020736 012705 000304' MOV #.TTIBF,R5
8016 020742 105715 TSTB (R5) ; CR ?
8017 020744 001475 BEQ 90$ ; YES, TREAT AS [YES]
8018 020746 022715 042531 CMP #"YE,(R5) ; [YES] ?
8019 020752 001450 BEQ 60$ ; LOAD THE RAMS.
8020 020754 022715 042526 CMP #"VE,(R5) ; [VERIFY] ?
8021 020760 001444 BEQ 50$ ; VERIFY THE RAMS.
8022 020762 022715 044506 CMP #"FI,(R5) ; [4.2209] [FIX] ?
8023 020766 001435 BEQ 35$ ; [4.2209] VERIFY AND FIX THE RAMS.
8024 020770 022715 047516 CMP #"NO,(R5) ; [NO] ?
8025 020774 001434 BEQ 40$ ; GO ON TO NEXT QUESTION.
8026 020776 022715 040502 CMP #"BA,(R5) ; [BACKUP] ?
8027 021002 001405 BEQ 20$ ; GO BACK TO DIALOGUE QUESTION
8028 021004 80$: PRINT #COMCSE ; MUST BE SOME MISTAKE...
021004 012700 005552' MOV #COMCSE,R0
021010 004737 027634' JSR PC,$TTMSG
8029 021014 000741 BR 10$ ; ASK QUESTION AGAIN.
8030 021016 105737 000035' 20$: TSTB .MCA25 ; [**] DOES CACHE PAGER EXIST?
8031 021022 003402 BLE 25$ ; [**] NO -- GO BACK TO INTIALIZATION
8032 021024 000137 020410' JMP $DLGPA ; [**] YES -- GO TO PAGER DIALOG
8033 021030 25$:
8034 021030 000137 021170' JMP $DLGEN ; ASK IF DIALOG NECESSARY.
8035 021034 005002 30$: CLR R2 ; [4.2209] CLEAR FIX FLAG
8036 021036 032737 000000G 000060' BIT #KL.LRM,.KLISV ; LOAD RAMS ?
8037 021044 001410 BEQ 40$ ; [4.2209] NO-- NEXT QUESTION
8038 021046 032737 000000C 000060' BIT #KL.SPF!KL.DEF,.KLISV ; [4.2209] YES-- POWER FAIL?
8039 021054 001027 BNE 70$ ; [4.2209] YES-- NO VERIFY
8040 021056 105302 DECB R2 ; [4.2209] YES-- VERIFY AND FIX THE RAMS.
8041 021060 000425 BR 70$ ; [4.2209] CONTINUE.
8042 021062 105302 35$: DECB R2 ; [4.2209] SET FLAG TO FIX RAMS.
8043 021064 000403 BR 60$ ; [4.2209] CONTINUE.
8045 021066 000137 017066' 40$: JMP $DLGCA ; CHECK FOR CACHE.
8049 021072 105202 50$: INCB R2 ; INDICATE VERIFICATION NECESSARY
8050 021074 60$: CALL LQRBPS ; CHECK FOR OPERAND
021074 004737 021144' JSR PC,LQRBPS
8051 021100 001415 BEQ 70$ ; NO OPERAND IS OKAY. ; ADP01
8052 021102 012700 000456' MOV #.MCBFN,R0 ; GET USER FILENAME BLOCK
8053 021106 012701 MOV (PC)+,R1
8054 021110 050672 .RAD50 /MCB/ ; SET DEFAULT FILE TYPE
8055 021112 010160 000006 MOV R1,6(R0)
8056 021116 CALL $TRF2B ; AND GET FILE NAME.
021116 004737 025146' JSR PC,$TRF2B
8057 021122 103730 BCS 80$
8058 021124 105715 TSTB (R5) ; CHECK FOR PROPER TERMINATION.
KLIQR -- ASK RAM QUESTIONS MACRO M1113 03-APR-86 20:55 PAGE 175-1
$DLGRM -- ASK IF RELOAD MICROCODE IS REQUIRED
8059 021126 001326 BNE 80$
8060 021130 105237 000025' INCB .MCBSW ; FILE NAME HAS BEEN SPECIFIED.
8061 021134 110237 000027' 70$: MOVB R2,.DRSW ; INSERT VERIFY SWITCH.
8062 021140 000137 023626' 90$: JMP $CFGRM ; AND GO PROCESS MICROCODE.
8063
8064 ;+
8065 ; BYPASS CHARACTERS TO END OF LINE OR PAST CONTIGUOUS SET OF SPACES.
8066 ;-
8067
8068 021144 105715 LQRBPS: TSTB (R5) ; IF END OF LINE
8069 021146 001407 BEQ 90$ ; THEN QUIT
8070 021150 122725 000040 CMPB #' ,(R5)+ ; OTHERWISE LOOK
8071 021154 001373 BNE LQRBPS ; FOR A SPACE.
8072 021156 122725 000040 10$: CMPB #' ,(R5)+ ; THEN BYPASS
8073 021162 001775 BEQ 10$ ; ANY MORE THAT FOLLOW.
8074 021164 105745 TSTB -(R5) ; TEST FOR END OF LINE.
8075 021166 90$: RETURN
021166 000207 RTS PC
8076 .TITLE KLIQS -- DIALOG ENTRANCE QUESTION
8077 021170 IDENT$ 15,12
.IDENT /015120/
8078
8079 ;
8080 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
8081 ; ALL RIGHTS RESERVED.
8082 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
8083 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
8084 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
8085 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
8086 ;
8087 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
8088 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
8089 ; EQUIPMENT CORPORATION.
8090 ;
8091 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
8092 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
8093 ;
8094 ; VERSION 15-12
8095 ;
8096 ; ALAN D. PECKHAM 14-APR-77
8097 ;
8098 ; MODIFIED BY:
8099 ;
8100 ; R. BELANGER 22-OCT-79 ADD CACHE SWEEP ON AUTO-RELOAD AND BOOT OPTIONS
8101 ; TCO 5.1013
8102 ;
8103 ; R. BELANGER 16-JUL-79 ADD KL10 HARDWARE ENVIRONMENTAL REPORTING
8104 ; TCO 4.2333
8105 ;
8106 ; R. BELANGER -- SET MF20 FLAG ON DETECTION OF MOS MASTER OSCILLATOR
8107 ;
8108 ; S. LEAPLINE 13-AUG-81 USE SAVED BOOT FILENAME ON "BOOT" RESPONSE
8109 ;
8110 ; M. RUDENKO 16-FEB-84 ADD MCA25 CHACHE PAGER UPGRADE
8111 ;
8112 ;
8113 ; FUNCTION: THIS DIALOG QUESTION DETERMINES IF THE OPERATOR
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1113 03-APR-86 20:55 PAGE 175-2
$DLGRM -- ASK IF RELOAD MICROCODE IS REQUIRED
8114 ; WANTS TO GO THROUGH THE DIALOG QUESTIONS OR FOLLOW
8115 ; THE DEFAULT PATH BY ASSUMING THE DEFAULT ANSWER TO
8116 ; ALL QUESTIONS.
8117 ;
8118 ; EQUATED SYMBOLS
8119 ;
8120 000014 CCA = 14 ; [5.1013] KL INTERNAL CACHE DEVICE
8121 000002 BLKO = 2 ; [5.1013] KL OPCODE
8122 ;
8123 ; LOCAL MACROS
8124 ;
8125 .MCALL MRKT$,CLEF$S,WTSE$S,DIR$
8126 ;
8127 ; LOCAL VARIABLES
8128 ;
8129
8130 001554 .PSECT DATA,D
8131
8132 001554 DQSP0::
8133 001554 000002 000420 070400 .WORD 2,420,70400,20000,0,10 ;[**] C-RAM WORD TO SELECT PAGE TABLE 0
001562 020000 000000 000010
8134 001570 DQSP1::
8135 001570 000000 000420 071400 .WORD 0,420,71400,20000,0,10 ;[**] C-RAM WORD TO SELECT PAGE TABLE 1
001576 020000 000000 000010
8136 001604 DQSP01::
8137 001604 000000 000420 070000 .WORD 0,420,70000,20000,0,10 ;[**] C-RAM WORD TO SELECT PAGE TBL 0&1
001612 020000 000000 000010
8138 001620 DQSCSW:
8139 001620 IO10$ BLKO,CCA,,0 ; [5.1013] SWEEP CACHE AND UPDATE CORE
001620 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
001623 015 016 .BYTE BY$$3,BY$$4
8140 .EVEN
8141 001626 DQSMKT:
8142 001626 MRKT$ 5.,30.,0,0 ; [5.1013] HALF-SECOND WAIT
001626 027 005 .BYTE 23.,5
001630 000005 .WORD 5.
001632 000036 .WORD 30.
001634 000000 .WORD 0
001636 000000 .WORD 0
8143 001640 DQSCBF:
8144 001640 000000 000000 000000 .WORD 0,0,0,0,0,0 ;HOLDING AREA FOR C-RAM WORD ZERO.
001646 000000 000000 000000
8145 001654 DQSCF3:
8146 001654 000000 000460 000000 .WORD 0,460,0,0,0,0 ;C-RAM WORD WITH COND FIELD = 3.
001662 000000 000000 000000
8147 001670 DQSAPR:
8148 001670 WD36$ 0 0 ;HOLDING AREA FOR RH(APRID)
001670 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
001673 000 000 .BYTE BY$$3,BY$$4
8149 .EVEN
8150 001676 DQSHWT:
8151 001676 004402' .WORD TQSMCA ;[**] MCA25 REPORT ADDRESS
8152 001700 004435' .WORD TQSMMO
8153 001702 004474' .WORD TQSEXT
8154 001704 004531' .WORD TQSCHN
8155 001706 004564' .WORD TQSCAC
8156 001710 000000 .WORD 0
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1113 03-APR-86 20:55 PAGE 175-3
$DLGRM -- ASK IF RELOAD MICROCODE IS REQUIRED
8157
8158 004240 .PSECT TEXT,D
8159
8160 004240 TQSDLG:
8161 004240 MESSAGE <ENTER DIALOG [NO,YES,EXIT,BOOT]?>
004240 105 116 124 .ASCIZ \ENTER DIALOG [NO,YES,EXIT,BOOT]?\
004243 105 122 040
004246 104 111 101
004251 114 117 107
004254 040 133 116
004257 117 054 131
004262 105 123 054
004265 105 130 111
004270 124 054 102
004273 117 117 124
004276 135 077 000
8162 004301 TQSKSN:
8163 004301 MESSAGE <KLI -- KL10 S/N: _>
004301 113 114 111 .ASCIZ \KLI -- KL10 S/N: _\
004304 040 055 055
004307 040 113 114
004312 061 060 040
004315 123 057 116
004320 072 040 137
004323 000
8164 004324 TQSMDL:
8165 004324 MESSAGE <., MODEL _>
004324 056 054 040 .ASCIZ \., MODEL _\
004327 115 117 104
004332 105 114 040
004335 137 000
8166 004337 TQSHRZ:
8167 004337 040 110 105 .ASCIZ / HERTZ\/
004342 122 124 132
004345 134 000
8168 004347 TQSHWP:
8169 004347 MESSAGE <KL10 HARDWARE ENVIRONMENT:>
004347 113 114 061 .ASCIZ \KL10 HARDWARE ENVIRONMENT:\
004352 060 040 110
004355 101 122 104
004360 127 101 122
004363 105 040 105
004366 116 126 111
004371 122 117 116
004374 115 105 116
004377 124 072 000
8170 004402 TQSMCA:
8171 004402 040 040 040 .ASCIZ / MCA25 CACHE PAGER\/
004405 040 040 040
004410 040 040 115
004413 103 101 062
004416 065 040 103
004421 101 103 110
004424 105 040 120
004427 101 107 105
004432 122 134 000
8172 004435 TQSMMO:
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1113 03-APR-86 20:55 PAGE 175-4
$DLGRM -- ASK IF RELOAD MICROCODE IS REQUIRED
8173 004435 040 040 040 .ASCIZ / MOS MASTER OSCILLATOR\/
004440 040 040 040
004443 040 040 115
004446 117 123 040
004451 115 101 123
004454 124 105 122
004457 040 117 123
004462 103 111 114
004465 114 101 124
004470 117 122 134
004473 000
8174 004474 TQSEXT:
8175 004474 040 040 040 .ASCIZ / EXTENDED ADDRESSING\/
004477 040 040 040
004502 040 040 105
004505 130 124 105
004510 116 104 105
004513 104 040 101
004516 104 104 122
004521 105 123 123
004524 111 116 107
004527 134 000
8176 004531 TQSCHN:
8177 004531 040 040 040 .ASCIZ / INTERNAL CHANNELS\/
004534 040 040 040
004537 040 040 111
004542 116 124 105
004545 122 116 101
004550 114 040 103
004553 110 101 116
004556 116 105 114
004561 123 134 000
8178 004564 TQSCAC:
8179 004564 040 040 040 .ASCIZ / CACHE\/
004567 040 040 040
004572 040 040 103
004575 101 103 110
004600 105 134 000
8180 004603 TQSCDH:
8181 004603 ERROR <CAN'T DETERMINE KL10 HARDWARE ENVIRONMENT>
004603 077 040 103 .ASCIZ \? CAN'T DETERMINE KL10 HARDWARE ENVIRONMENT\
004606 101 116 047
004611 124 040 104
004614 105 124 105
004617 122 115 111
004622 116 105 040
004625 113 114 061
004630 060 040 110
004633 101 122 104
004636 127 101 122
004641 105 040 105
004644 116 126 111
004647 122 117 116
004652 115 105 116
004655 124 000
8182 004657 TQSWRN:
8183 004657 WARNING <PROCEED AT YOUR OWN RISK>
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1113 03-APR-86 20:55 PAGE 175-5
$DLGRM -- ASK IF RELOAD MICROCODE IS REQUIRED
004657 045 040 120 .ASCIZ \% PROCEED AT YOUR OWN RISK\
004662 122 117 103
004665 105 105 104
004670 040 101 124
004673 040 131 117
004676 125 122 040
004701 117 127 116
004704 040 122 111
004707 123 113 000
8184 004712 TQSABO:
8185 004712 WARNING <AUTOMATIC RELOAD ABORTED>
004712 045 040 101 .ASCIZ \% AUTOMATIC RELOAD ABORTED\
004715 125 124 117
004720 115 101 124
004723 111 103 040
004726 122 105 114
004731 117 101 104
004734 040 101 102
004737 117 122 124
004742 105 104 000
8186 004745 TQSMMA:
8187 004745 ERROR <CAN'T SUPPORT MOS MEMORY ON A MODEL "A" CPU>
004745 077 040 103 .ASCIZ \? CAN'T SUPPORT MOS MEMORY ON A MODEL "A" CPU\
004750 101 116 047
004753 124 040 123
004756 125 120 120
004761 117 122 124
004764 040 115 117
004767 123 040 115
004772 105 115 117
004775 122 131 040
005000 117 116 040
005003 101 040 115
005006 117 104 105
005011 114 040 042
005014 101 042 040
005017 103 120 125
005022 000
8188
8189 021170 .PSECT
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1113 03-APR-86 20:55 PAGE 176
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
8191 .SBTTL $DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
8192
8193 021170 $DLGEN::
8194 021170 105037 000047' CLRB .FILSW ; SAY WRITE CONFIGURATION FILE
8195 021174 105737 000024' TSTB .DLGSW ; TEST DIALOG CONTROL SWITCH.
8196 021200 002440 BLT 40$ ; TAKE INTERNAL PATH.
8197 021202 105037 000024' CLRB .DLGSW ; RESET CONTROL SWITCH.
8198 ;
8199 ; ENTER DIALOGUE
8200 ;
8201 021206 10$:
8202 021206 PRINT #TQSDLG ; ASK QUESTION.
021206 012700 004240' MOV #TQSDLG,R0
021212 004737 027634' JSR PC,$TTMSG
8203 021216 CALL $TTRD ; READ ANSWER
021216 004737 027130' JSR PC,$TTRD
8204 021222 012705 000304' MOV #.TTIBF,R5
8205 021226 105715 TSTB (R5) ; CR ?
8206 021230 001421 BEQ 30$ ; YES, TREAT AS DEFAULT
8207 021232 022715 047516 CMP #"NO,(R5) ; [NO] ?
8208 021236 001416 BEQ 30$ ; TAKE DEFAULT DIALOG PATH.
8209 021240 022715 042531 CMP #"YE,(R5) ; [YES] ?
8210 021244 001424 BEQ 45$ ; [5.1013] ASK NEXT QUESTION.
8211 021246 022715 054105 CMP #"EX,(R5) ; [EXIT] ?
8212 021252 001522 BEQ 120$ ; EXIT FROM KLINIT.
8213 021254 022715 047502 CMP #"BO,(R5) ; [BOOT] ?
8214 021260 001437 BEQ 60$ ; LOAD AND START BOOT.
8215 ;
8216 ; COMMAND SYNTAX ERROR
8217 ;
8218 021262 20$:
8219 021262 PRINT #COMCSE ; SOME MISTAKE....
021262 012700 005552' MOV #COMCSE,R0
021266 004737 027634' JSR PC,$TTMSG
8220 021272 000745 BR 10$ ; ASK QUESTION AGAIN.
8221 ;
8222 ;
8223 ; "NO" RESPONSE
8224 ;
8225 021274 30$:
8226 021274 105237 000024' INCB .DLGSW ; INDICATE DEFAULT PATH
8227 021300 000406 BR 45$ ; [5.1013] AND GO ON
8228 ;
8229 ;
8230 ; INTERNAL PATH
8231 ;
8232 021302 40$:
8233 021302 032737 000000G 000060' BIT #KL.LRM,.KLISV ; [5.1013] MUST WE LOAD THE RAMS??
8234 021310 001002 BNE 45$ ; [5.1013] YES -- FORGET ABOUT CACHE SWEEP
8235 021312 CALL LQSCSW ; [5.1013] NO -- SWEEP THE CACHE
021312 004737 022434' JSR PC,LQSCSW
8236 ;
8237 ; "YES" RESPONSE
8238 ;
8239 021316 45$:
8240 021316 CALL LQSHWE ; [4.2333] READ AND DESCRIBE OUR HARDWARE
021316 004737 021556' JSR PC,LQSHWE
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1113 03-APR-86 20:55 PAGE 176-1
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
8241 021322 103007 BCC 50$ ; [4.2333] ALL OK IF CC-C IS CLEAR
8242 021324 105737 000024' TSTB .DLGSW ; [4.2333] ARE WE ON INTERNAL PATH??
8243 021330 002467 BLT 110$ ; [4.2333] YES -- ABORT AUTOMATIC RELOAD
8244 021332 PRINT #TQSWRN ; [4.2333] NO -- WARN OPERATOR
021332 012700 004657' MOV #TQSWRN,R0
021336 004737 027634' JSR PC,$TTMSG
8245 021342 50$:
8246 021342 105737 000035' TSTB .MCA25 ; [**] DOES MCA25 EXIST?
8247 021346 003402 BLE 55$ ; [**] NO -- START WITH RAM DIALOG
8248 021350 000137 020410' JMP $DLGPA ; [**] YES -- START WITH PAGER DIALOG
8249 021354 55$:
8250 021354 000137 020700' JMP $DLGRM ; AND START DIALOGUE
8251 ;
8252 ;
8253 ; "BOOT" RESPONSE
8254 ;
8255 021360 60$:
8256 021360 105037 000033' CLRB .DBSW
8257 021364 105337 000047' DECB .FILSW ; DISABLE CONFIGURATION FILE WRITE
8258 021370 105037 000026' CLRB .UFNSW ; USE DEFAULT FILE
8259 021374 CALL LQSBPS ; IF OPERAND FOLLOWS
021374 004737 021532' JSR PC,LQSBPS
8260 021400 001416 BEQ 70$ ; THEN
8261 021402 012700 000476' MOV #.USRFN,R0 ; GET FILENAME BLOCK
8262 021406 012701 MOV (PC)+,R1
8263 021410 021402 .RAD50 /EXB/ ; SET DEFAULT EXTENSION
8264 021412 010160 000006 MOV R1,6(R0)
8265 021416 CALL $TRF2B ; AND PARSE OUT FILE NAME.
021416 004737 025146' JSR PC,$TRF2B
8266 021422 103717 BCS 20$
8267 021424 105715 TSTB (R5) ; IF NOT TERMINATED PROPERLY
8268 021426 001315 BNE 20$ ; TELL HIM SO.
8269 021430 105237 000026' INCB .UFNSW ; INDICATED FILE NAME SPECIFIED.
8270 021434 000402 BR 71$
8271 021436 70$:
8272 021436 CALL LQBRBF ; READ SAVED BOOT FILE NAME
021436 004737 016656' JSR PC,LQBRBF
8273 021442 71$: CALL HLTNOE ; HALT THE KL AND DISABLE -20F INTERRUPTIONS
021442 004737 022266' JSR PC,HLTNOE
8274 021446 CALL LQSCSW ; [5.1013] SWEEP THE CACHE
021446 004737 022434' JSR PC,LQSCSW
8275 021452 CALL LQSHDW ; [4.2333] READ THE HARDWARE OPTIONS
021452 004737 022072' JSR PC,LQSHDW
8276 021456 103003 BCC 80$ ; [4.2333] ALL OK IF CC-C IS CLEAR
8277 021460 CALL LQSCHE ; [4.2333] TELL HIM WE GOT AN ERROR
021460 004737 022052' JSR PC,LQSCHE
8278 021464 000403 BR 90$ ; [4.2333] AND GO ON
8279 ;
8280 021466 80$:
8281 021466 CALL LQSCHO ; [4.2333] MAKE SURE THAT WE ARE OK
021466 004737 022026' JSR PC,LQSCHO
8282 021472 103004 BCC 100$ ; [4.2333] ALL OK IF CC-C IS CLEAR
8283 021474 90$:
8284 021474 PRINT #TQSWRN ; [4.2333] WARN HIM
021474 012700 004657' MOV #TQSWRN,R0
021500 004737 027634' JSR PC,$TTMSG
8285 021504 100$:
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1113 03-APR-86 20:55 PAGE 176-2
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
8286 021504 000137 023714' JMP $CFGBT ; AND GO LOAD BOOT.
8287 ;
8288 ;
8289 ; HERE TO ABORT AN AUTOMATIC RELOAD
8290 ;
8291 021510 110$:
8292 021510 PRINT #TQSABO ; [4.2333] SAY THAT WE ARE ABORTING
021510 012700 004712' MOV #TQSABO,R0
021514 004737 027634' JSR PC,$TTMSG
8293 ;
8294 ; "EXIT" RESPONSE
8295 ;
8296 021520 120$:
8297 021520 013737 000062' 000000G MOV .SNSAV,.CPUSN ; [4.2333] RESTORE SERIAL NUMBER
8298 021526 000137 024022' JMP $EXIT ; EXIT FROM KLINIT.
8299 ;
8300
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1113 03-APR-86 20:55 PAGE 177
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
8302 ;+
8303 ; BYPASS CHARACTERS TO END OF LINE OR PAST CONTIGUOUS SET OF SPACES.
8304 ;-
8305
8306 021532 LQSBPS:
8307 021532 105715 TSTB (R5) ; IF END OF LINE
8308 021534 001407 BEQ 20$ ; THEN QUIT
8309 021536 122725 000040 CMPB #' ,(R5)+ ; OTHERWISE LOOK
8310 021542 001373 BNE LQSBPS ; FOR A SPACE.
8311 021544 10$:
8312 021544 122725 000040 CMPB #' ,(R5)+ ; THEN BYPASS
8313 021550 001775 BEQ 10$ ; ANY MORE THAT FOLLOW.
8314 021552 105745 TSTB -(R5) ; TEST FOR END OF LINE.
8315 021554 20$:
8316 021554 RETURN
021554 000207 RTS PC
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1113 03-APR-86 20:55 PAGE 178
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
8318 ;+
8319 ; THIS SUBROUTINE DISPLAYS THE HARDWARE ENVIRONMENT OF THE KL10, AND DOES
8320 ; CHECKS FOR CONFLICTING OPTIONS.
8321 ;-
8322
8323 .ENABL LSB
8324
8325 021556 LQSHWE: CALL HLTNOE ; HALT KL AND TELL -20F NOT TO INTEFERR
021556 004737 022266' JSR PC,HLTNOE
8326 021562 005737 000000G TST .CPUSN ; [4.2333] HAVE WE BEEN HERE BEFORE??
8327 021566 003140 BGT 60$ ; [4.2333] YES -- JUST EXIT
8328 021570 100530 BMI LQSCHE ; [4.2333] YES -- FAILED BEFORE, GRIPE AND EXIT
8329 021572 CALL LQSHDW ; [4.2333] NO -- READ THE HARDWARE OPTIONS
021572 004737 022072' JSR PC,LQSHDW
8330 021576 103525 BCS LQSCHE ; [4.2333] ERROR IF CC-C IS SET
8331 021600 105737 000024' TSTB .DLGSW ; [4.2333] ARE WE ON INTERNAL PATH??
8332 021604 002003 BGE 10$ ; [4.2333] NO -- GO ON
8333 021606 005737 000000G TST .DATE3 ; [4.2333] YES -- IS THIS A RELOAD??
8334 021612 001105 BNE LQSCHO ; [4.2333] YES -- JUST CHECK OPTIONS
8335 021614 10$:
8336 021614 012700 004301' MOV #TQSKSN,R0 ; [4.2333] NO -- SERIAL NUMBER PREAMBLE TO R0
8337 021620 CALL $TTDMS ; [4.2333] PRINT IT
021620 004737 027566' JSR PC,$TTDMS
8338 021624 013700 000000G MOV .CPUSN,R0 ; [4.2333] AND THE SERIAL NUMBER
8339 021630 CALL $TDB2I ; [4.2333] PRINT THAT
021630 004737 025264' JSR PC,$TDB2I
8340 021634 012700 004324' MOV #TQSMDL,R0 ; [4.2333] MODEL TYPE PREAMBLE
8341 021640 CALL $TTDMS ; [4.2333] PRINT THAT
021640 004737 027566' JSR PC,$TTDMS
8342 021644 012746 000102 MOV #'B,-(SP) ; [4.2333] ASSUME MODEL "B"
8343 021650 010600 MOV SP,R0 ; [4.2333] POINT TO BUFFER ON STACK
8344 021652 012701 000001 MOV #1,R1 ; [4.2333] LENGTH OF 1 CHARACTER
8345 021656 105737 000044' TSTB .EASW ; [4.2333] IS IT A MODEL "B"??
8346 021662 100001 BPL 20$ ; [4.2333] YES -- GO ON
8347 021664 005316 DEC (SP) ; [4.2333] NO -- MAKE IT AN "A"
8348 021666 20$:
8349 021666 CALL $TTWR ; [4.2333] AND PRINT IT
021666 004737 027714' JSR PC,$TTWR
8350 021672 012716 000054 MOV #',,(SP) ; [4.2333] SET UP <COMMA>
8351 021676 CALL $TTWR ; [4.2333] AND PRINT IT
021676 004737 027714' JSR PC,$TTWR
8352 021702 005726 TST (SP)+ ; [4.2333] CLEAR STACK
8353 021704 CALL $TTSPC ; [4.2333] PRINT A <SPACE>
021704 004737 027500' JSR PC,$TTSPC
8354 021710 012700 000074 MOV #^D60,R0 ; [4.2333] ASSUME A 60 HERTZ MACHINE
8355 021714 032737 000000G 000000G BIT #H.KPWR,.HRDWR ; [4.2333] IS IT A 60 HERTZ MACHINE??
8356 021722 001402 BEQ 30$ ; [4.2333] YES -- GO ON
8357 021724 012700 000062 MOV #^D50,R0 ; [4.2333] NO -- MAKE IT 50 HERTZ
8358 021730 30$:
8359 021730 CALL $TDB2I ; [4.2333] PRINT WHATEVER
021730 004737 025264' JSR PC,$TDB2I
8360 021734 012700 004337' MOV #TQSHRZ,R0 ; [4.2333] POSTAMBLE POINTER TO R0
8361 021740 CALL $TTDMS ; [4.2333] AND PRINT IT
021740 004737 027566' JSR PC,$TTDMS
8362 021744 PRINT #TQSHWP ; [4.2333] PRINT THE HEADER
021744 012700 004347' MOV #TQSHWP,R0
021750 004737 027634' JSR PC,$TTMSG
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1113 03-APR-86 20:55 PAGE 178-1
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
8363 021754 012701 000001 MOV #BIT0,R1 ; [4.2333] BIT MASK TO R1
8364 021760 012702 001676' MOV #DQSHWT,R2 ; [4.2333] TABLE POINTER TO R2
8365 021764 013703 000000G MOV .HRDWR,R3 ; [4.2333] OPTION BITS TO R3
8366 021770 042703 000000G BIC #H.KPWR,R3 ; [4.2333] MINUS A COUPLE
8367 021774 012704 000006 MOV #6,R4 ; [4.2333] ITERATION COUNT TO R4
8368 022000 40$:
8369 022000 030103 BIT R1,R3 ; [4.2333] IS THE OPTION PRESENT??
8370 022002 001404 BEQ 50$ ; [4.2333] NO -- TRY NET OPTION
8371 022004 011200 MOV (R2),R0 ; [4.2333] YES -- DO WE CARE ABOUT IT AT THIS POINT??
8372 022006 001402 BEQ 50$ ; [4.2333] NO -- GO ON
8373 022010 CALL $TTDMS ; [4.2333] YES -- PRINT IT
022010 004737 027566' JSR PC,$TTDMS
8374 022014 50$:
8375 022014 005722 TST (R2)+ ; [4.2333] ADVANCE MESSAGE POINTER
8376 022016 006301 ASL R1 ; [4.2333] ADVANCE BIT MASK
8377 022020 077411 SOB R4,40$ ; [4.2333] AND CONTINUE
8378 022022 CALL $TCRLF ; [4.2333] END THE DISPLAY
022022 004737 027530' JSR PC,$TCRLF
8379 ;
8380 ; HERE TO CHECK FOR CONFLICTING OPTIONS
8381 ; (MODEL "A" CPU AND MOS MASTER OSCILATOR)
8382 ;
8383 022026 LQSCHO:
8384 022026 105737 000044' TSTB .EASW ; [4.2333] IS THIS A MODEL "A" CPU??
8385 022032 100016 BPL 60$ ; [4.2333] NO -- GO ON
8386 022034 105737 000045' TSTB .MFSW ; [4.2333] YES -- IS MOS MEMORY PRESENT??
8387 022040 100413 BMI 60$ ; [4.2333] NO -- GO ON (FIX BR POLARITY)
8388 022042 PRINT #TQSMMA ; [4.2333] YES -- COMPLAIN
022042 012700 004745' MOV #TQSMMA,R0
022046 004737 027634' JSR PC,$TTMSG
8389 ;
8390 ; HERE TO FLAG AND REPORT HARDWARE OPTION ERRORS
8391 ;
8392 022052 LQSCHE:
8393 022052 PRINT #TQSCDH ; [4.2333] CAN'T DETERMINE HARDWARE OPTIONS
022052 012700 004603' MOV #TQSCDH,R0
022056 004737 027634' JSR PC,$TTMSG
8394 022062 005337 000000G DEC .CPUSN ; [4.2333] FLAG THIS FACT
8395 022066 000261 SEC ; [4.2333] SET ERROR RETURN
8396 022070 60$:
8397 022070 RETURN ; [4.2333] TO CALLER
022070 000207 RTS PC
8398
8399 .DSABL LSB
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1113 03-APR-86 20:55 PAGE 179
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
8401 ;+
8402 ; DETERMINES THE HARDWARE FEATURES OF THE KL FOR LATER REFERENCE.
8403 ;-
8404
8405 022072 LQSHDW:
8406 022072 012700 001670' MOV #DQSAPR,R0 ; GET HARDWARE OPTIONS BY
8407 022076 CALL LQSHWO ; OBTAINING RH(APRID)
022076 004737 022312' JSR PC,LQSHWO
8408 022102 103470 BCS 40$ ; [4.2333]
8409 022104 113746 001672' MOVB DQSAPR+2,-(SP) ; [4.2333] GET HIGH PART OF HARDWARE OPTIONS
8410 022110 042716 177774 BIC #^C3,(SP) ; [4.2333] GET RID OF JUNK
8411 022114 SL (SP),4 ; [4.2333] POSITION IT
022114 006316 ASL (SP)
022116 006316 ASL (SP)
022120 006316 ASL (SP)
022122 006316 ASL (SP)
8412 022124 113746 001671' MOVB DQSAPR+1,-(SP) ; [4.2333] NOW FOR THE LOW PART
8413 022130 042716 177417 BIC #^C360,(SP) ; [4.2333] FLUSH JUNK
8414 022134 SR (SP),4 ; [4.2333] AND POSITION THAT
022134 006216 ASR (SP)
022136 006216 ASR (SP)
022140 006216 ASR (SP)
022142 006216 ASR (SP)
8415 022144 052616 BIS (SP)+,(SP) ; [4.2333] MERGE THE HARDWARE OPTIONS
8416 022146 013746 001670' MOV DQSAPR,-(SP) ; [4.2333] NOW GET THE SERIAL NUMBER
8417 022152 042716 170000 BIC #^C7777,(SP) ; [4.2333] WITHOUT THE HANGERS-ON
8418 022156 012700 000000G MOV #.CPUSN,R0 ; [4.2333] POINT TO THE SERIAL NUMBER
8419 022162 012620 MOV (SP)+,(R0)+ ; [4.2333] SET THE SERIAL NUMBER
8420 022164 012610 MOV (SP)+,(R0) ; [4.2333] AND ITS HARDWARE OPTIONS
8421 022166 105337 000043' DECB .CASW ; ASSUME NO CACHE
8422 022172 132710 000000G BITB #H.KCAC,(R0) ; [4.2333] AND IF THERE IS
8423 022176 001402 BEQ 10$
8424 022200 105437 000043' NEGB .CASW ; THEN RECORD IT.
8425 022204 10$:
8426 022204 105337 000035' DECB .MCA25 ; [**] ASSUME NO MCA25 CACHE PAGER
8427 022210 132710 000000G BITB #H.KUDF,(R0) ; [**] CHECK FOR MCA25 - "BIT 23" OF APRID
8428 022214 001402 BEQ 15$ ; [**] NOT PRESENT -- GO ON
8429 022216 105437 000035' NEGB .MCA25 ; [**] MCA25 CACHE PAGER PRESENT
8430 022222 15$:
8431 022222 105337 000045' DECB .MFSW ; ASSUME NO MOS MEMORY
8432 022226 132710 000000G BITB #H.KMOS,(R0) ; [4.2333] CHECK MOS MASTER OSCILLATOR
8433 022232 001404 BEQ 20$ ; NOT PRESENT -- GO ON
8434 022234 105437 000045' NEGB .MFSW ; MOS IS IN SYSTEM
8435 022240 CALL $KLMR ; DO ANOTHER RESET TO SETUP CLOCKS
022240 004737 015232' JSR PC,$KLMR
8436 022244 20$:
8437 022244 105337 000044' DECB .EASW ; ASSUME A MODEL A CPU
8438 022250 132710 000000G BITB #H.KEXT,(R0) ; [4.2333] AND IF MODEL B
8439 022254 001402 BEQ 30$ ; THEN
8440 022256 105437 000044' NEGB .EASW ; THERE IS EXTENDED ADDRESSING.
8441 022262 30$:
8442 022262 000241 CLC ; [4.2333] INSURE SUCCESS RETURN
8443 022264 40$:
8444 022264 RETURN
022264 000207 RTS PC
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1113 03-APR-86 20:55 PAGE 180
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
8446 ;+
8447 ; THIS SUBROUTINE CLEARS PROTOCOL AND HALTS THE KL
8448 ;-
8449
8450 022266 HLTNOE:
8451 022266 012737 000621 000000G MOV #401.,.NOERR ; TELL 20F NOT TO INTERRUPT
8452 022274 CALL ..DTSP ; AND TURN OFF PROTOCOLS
022274 004737 000000G JSR PC,..DTSP
8453 022300 012700 010000 MOV #.CLRUN,R0 ; HALT THE KL IF RUNNING
8454 022304 CALL $DFXC
022304 004737 013760' JSR PC,$DFXC
8455 022310 RETURN
022310 000207 RTS PC
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1113 03-APR-86 20:55 PAGE 181
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
8457 ;+
8458 ; SPECIAL ROUTINE TO GET LOWER HARDWARE HALF OF APRID WITHOUT
8459 ; DESTROYING REGISTERS. THIS ROUTINE IS HAIRY BECAUSE IT MODIFIES
8460 ; C-RAM LOCATION ZERO FOR A SHORT TIME AND THEN RESTORES IT TO ITS
8461 ; ORIGINAL CONTENTS.
8462 ;
8463 ; [**] THIS ROUTINE IS ALSO USED FOR MCA25 CACHE PAGE TABLE SELECTION
8464 ;
8465 ; INPUTS:
8466 ; R0 - ADDRESS OF 36 BIT BUFFER.
8467 ; R3 - ADDRESS OF CACHE PAGE SELECT MICRO-INSTR ([**])
8468 ; .MCSW - NON-ZERO MEANS WE ARE DOING A PAGE SELECT ([**])
8469 ;
8470 ; OUTPUT:
8471 ; (R0) - RECIEVES RH(APRID) WORD.
8472 ; CARRY IS SET IF ERROR OCCURS.
8473 ;-
8474
8475 022312 LQSHWO::
8476 022312 010002 MOV R0,R2
8477 022314 CALL $KLMR ; CLEAR THE WORLD.
022314 004737 015232' JSR PC,$KLMR
8478 022320 103444 BCS 20$
8479 022322 012701 001640' MOV #DQSCBF,R1 ; HOLDING AREA FOR CONTENTS OF C-RAM 0
8480 022326 005000 CLR R0 ; READ C-RAM LOCATION ZERO.
8481 022330 CALL $RCRAM
022330 004737 011564' JSR PC,$RCRAM
8482 022334 103436 BCS 20$
8483 022336 012701 001654' MOV #DQSCF3,R1 ; NOW WRITE WORD WITH COND FIELD = 3
8484 022342 105737 000051' TSTB .MCSW ; [**] ARE WE SELECTING A CACHE PAGE TABLE?
8485 022346 001401 BEQ 5$ ; [**] NO -- GO DO AN APRID READ
8486 022350 010301 MOV R3,R1 ; [**] YES -- FETCH THE C-RAM WORD ADDRESS
8487 022352 5$:
8488 022352 CALL $WCRAM
022352 004737 011304' JSR PC,$WCRAM
8489 022356 103420 BCS 10$
8490 022360 012700 003000 MOV #.SECLK,R0 ; STEP THE EBOX TWICE.
8491 022364 CALL $DFXC
022364 004737 013760' JSR PC,$DFXC
8492 022370 103413 BCS 10$
8493 022372 CALL $DFXC
022372 004737 013760' JSR PC,$DFXC
8494 022376 103410 BCS 10$
8495 022400 105737 000051' TSTB .MCSW ; [**] ARE WE SELECTING A CACHE PAGE TABLE?
8496 022404 001005 BNE 10$ ; [**] YES -- SKIP READING THE AR
8497 022406 010201 MOV R2,R1 ; NOW READ THE AR.
8498 022410 012700 120000 MOV #<120*1000>,R0
8499 022414 CALL $DFRD
022414 004737 013444' JSR PC,$DFRD
8500 022420 10$:
8501 022420 012701 001640' MOV #DQSCBF,R1 ; RESTORE C-RAM LOCATION ZERO.
8502 022424 005000 CLR R0
8503 022426 CALLR $WCRAM
022426 000137 011304' JMP $WCRAM
8504 022432 20$:
8505 022432 RETURN
022432 000207 RTS PC
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1113 03-APR-86 20:55 PAGE 182
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
8507 ;+
8508 ; LQSCSW -- LOCAL SUBROUTINE TO SWEEP CACHE AND UPDATE CORE
8509 ;
8510 ; THIS SUBROUTINE WILL SWEEP CACHE AND UPDATE CORE. THIS ROUTINE IS CALLED
8511 ; FROM THE INTERNAL PATH AND THE "BOOT" OPTION IN ANTICIPATION OF A DUMP.
8512 ;
8513 ; THE CACHE SWEEP IS "XCT"'D, BUT IN A DIFFERENT MANNER THAN NORMAL, AS A
8514 ; CACHE SWEEP CAN TAKE A SIGNIFICANTLY LONGER TIME TO EXECUTE THAN OTHER
8515 ; KL INSTRUCTIONS.
8516 ;
8517 ; THIS CACHE SWEEP IS EXECUTED "BLINDLY", REGARDLESS OF WHETHER OR NOT CACHE
8518 ; EXISTS IN THE HARDWARE; THE INSTRUCTION WILL "WORK" ANYWAY. THE EXECUTE IS
8519 ; INITIATED, WE WAIT FOR ONE-HALF SECOND, AND SIMPLY PROCEEED; ERRORS ARE IGNORED.
8520 ;-
8521
8522 022434 LQSCSW:
8523 022434 105337 000030' DECB .CSDN ; [5.1013] BEEN HERE BEFORE??
8524 022440 001036 BNE 10$ ; [5.1013] YES -- JUST EXIT
8525 022442 012700 001620' MOV #DQSCSW,R0 ; [5.1013] INSTRUCTION POINTER TO R0
8526 022446 CALL $LDAR ; [5.1013] LOAD IT INTO THE AR REGISTER
022446 004737 031176' JSR PC,$LDAR
8527 022452 103431 BCS 10$ ; [5.1013] ERROR IF CC-C IS SET
8528 022454 012700 012000 MOV #.CONBT,R0 ; [5.1013] PUSH THE CONTINUE BUTTON
8529 022460 CALL $DFXC ; [5.1013] SO
022460 004737 013760' JSR PC,$DFXC
8530 022464 103424 BCS 10$ ; [5.1013] ERROR IF CC-C IS SET
8531 022466 012700 001000 MOV #.STRCL,R0 ; [5.1013] START THE CLOCK
8532 022472 CALL $DFXC ; [5.1013] SO
022472 004737 013760' JSR PC,$DFXC
8533 022476 103417 BCS 10$ ; [5.1013] ERROR IF CC-C IS SET
8534 022500 CLEF$S #5. ; [5.1013] RESET THE EVENT FLAG
022500 012746 000005 MOV #5.,-(SP)
022504 012746 MOV (PC)+,-(SP)
022506 037 002 .BYTE 31.,2
022510 104375 EMT 375
8535 022512 103411 BCS 10$ ; [5.1013] ERROR IF CC-C IS SET
8536 022514 DIR$ #DQSMKT ; [5.1013] WAIT FOR 1/2 SECOND
022514 012746 001626' MOV #DQSMKT,-(SP)
022520 104375 EMT 375
8537 022522 103405 BCS 10$ ; [5.1013] ERROR IF CC-C IS SET
8538 022524 WTSE$S #5. ; [5.1013] ZZZ...
022524 012746 000005 MOV #5.,-(SP)
022530 012746 MOV (PC)+,-(SP)
022532 051 002 .BYTE 41.,2
022534 104375 EMT 375
8539 022536 10$:
8540 022536 RETURN ; [5.1013] TO CALLER
022536 000207 RTS PC
KLIQS -- DIALOG ENTRANCE QUESTI MACRO M1113 03-APR-86 20:55 PAGE 183
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
8542
8543 .TITLE KLIRS -- SPECIAL KL RESTARTS
8544 022540 IDENT$ 13,06,KLI$$F
.IDENT /A13060/
8545 ;
8546 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
8547 ; ALL RIGHTS RESERVED.
8548 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
8549 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
8550 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
8551 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
8552 ;
8553 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
8554 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
8555 ; EQUIPMENT CORPORATION.
8556 ;
8557 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
8558 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
8559 ;
8560 ; VERSION 13-04
8561 ;
8562 ; ALAN D. PECKHAM 7-APR-77
8563 ;
8564 ; MODIFICATIONS:
8565 ;
8566 ;01-AUG-83 TCO 6.1675 D. WEAVER
8567 ; MOVE CODE TO DO WARM RESTART TO THIS MODULE FROM KLIST.
8568 ;
8569 ; FUNCTION: THIS MODULE CONTAINS THE ROUTINES FOR SPECIAL KL RESTARTS:
8570 ;
8571 ; POWER FAIL RESTART AT 70.
8572 ; WARM RESTART AT 72.
8573 ; SYSTEM CRASH RECOVER AT 407.
8574 ;
8575 ; EQUATED SYMBOLS
8576 ;
8577 000004 CONO = 4 ; KL I/O SUB-FUNCTION CODE.
8578 000010 PAG = 10 ; KL DEVICE.
8579 ;
8580 ; LOCAL MACROS
8581 ;
8582 .MCALL MRKT$S,WTSE$S,WSIG$S
8583 ;
8584 ; LOCAL DATA
8585 ;
8586 001712 .PSECT DATA,D
8587 .EVEN
8588 001712 000000 DRSDBL::.WORD 0 ; DOORBELL COUNT
8590 001714 DRSCEN: IO10$ CONO PAG,,600000 ; ENABLE CACHE
001714 000 000 003 .BYTE BY$$0,BY$$1,BY$$2
001717 012 016 .BYTE BY$$3,BY$$4
8592 001721 DRSPLD: WD36$ 0 3 ; LOAD AR/ARX WITH
001721 003 000 000 .BYTE BY$$0,BY$$1,BY$$2
001724 000 000 .BYTE BY$$3,BY$$4
8593 001726 DRSPEN: WD36$ 0 16 ; C-RAM, D-RAM, AND FS PARITIES
001726 016 000 000 .BYTE BY$$0,BY$$1,BY$$2
001731 000 000 .BYTE BY$$3,BY$$4
KLIRS -- SPECIAL KL RESTARTS MACRO M1113 03-APR-86 20:55 PAGE 183-1
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
8594 001733 DRSPFR: WD22$ 70 ; KL POWER FAIL RESTART ADDRESS.
001733 070 000 000 .BYTE BY$$0,BY$$1,BY$$2
8595 001736 DRSFCR: WD22$ 72 ; FAULT CONTINUATION RESTART ADDRESS.
001736 072 000 000 .BYTE BY$$0,BY$$1,BY$$2
8596 001741 DRSSCR: WD22$ 407 ; TOPS10 KL CRASH RESTART ADDRESS.
001741 007 001 000 .BYTE BY$$0,BY$$1,BY$$2
8597 .EVEN
8598 005023 .PSECT TEXT,D
8599 005023 TRSPRF: ERROR <POWER-FAIL RESTART FAILED>
005023 077 040 120 .ASCIZ \? POWER-FAIL RESTART FAILED\
005026 117 127 105
005031 122 055 106
005034 101 111 114
005037 040 122 105
005042 123 124 101
005045 122 124 040
005050 106 101 111
005053 114 105 104
005056 000
8600 005057 TRSCES: ERROR <CLOCK ERROR STOP DURING KL RESTART>
005057 077 040 103 .ASCIZ \? CLOCK ERROR STOP DURING KL RESTART\
005062 114 117 103
005065 113 040 105
005070 122 122 117
005073 122 040 123
005076 124 117 120
005101 040 104 125
005104 122 111 116
005107 107 040 113
005112 114 040 122
005115 105 123 124
005120 101 122 124
005123 000
8601 005124 TRSHLT: ERROR <KL HALT DURING RESTART>
005124 077 040 113 .ASCIZ \? KL HALT DURING RESTART\
005127 114 040 110
005132 101 114 124
005135 040 104 125
005140 122 111 116
005143 107 040 122
005146 105 123 124
005151 101 122 124
005154 000
8602 005155 TRSTMO: ERROR <TIMEOUT DURING KL RESTART>
005155 077 040 124 .ASCIZ \? TIMEOUT DURING KL RESTART\
005160 111 115 105
005163 117 125 124
005166 040 104 125
005171 122 111 116
005174 107 040 113
005177 114 040 122
005202 105 123 124
005205 101 122 124
005210 000
8603 005211 TRSDER: ERROR <SYSTEM ERROR DURING KL RESTART>
005211 077 040 123 .ASCIZ \? SYSTEM ERROR DURING KL RESTART\
005214 131 123 124
KLIRS -- SPECIAL KL RESTARTS MACRO M1113 03-APR-86 20:55 PAGE 183-2
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
005217 105 115 040
005222 105 122 122
005225 117 122 040
005230 104 125 122
005233 111 116 107
005236 040 113 114
005241 040 122 105
005244 123 124 101
005247 122 124 000
8604 005252 TRSRSM: MESSAGE <KL RESTARTED>
005252 113 114 040 .ASCIZ \KL RESTARTED\
005255 122 105 123
005260 124 101 122
005263 124 105 104
005266 000
8605 005267 TRSFCF: ERROR <FAULT CONTINUATION FAILED>
005267 077 040 106 .ASCIZ \? FAULT CONTINUATION FAILED\
005272 101 125 114
005275 124 040 103
005300 117 116 124
005303 111 116 125
005306 101 124 111
005311 117 116 040
005314 106 101 111
005317 114 105 104
005322 000
8606 005323 TRSCEF: ERROR <CLOCK ERROR STOP DURING FAULT CONTINUATION>
005323 077 040 103 .ASCIZ \? CLOCK ERROR STOP DURING FAULT CONTINUATION\
005326 114 117 103
005331 113 040 105
005334 122 122 117
005337 122 040 123
005342 124 117 120
005345 040 104 125
005350 122 111 116
005353 107 040 106
005356 101 125 114
005361 124 040 103
005364 117 116 124
005367 111 116 125
005372 101 124 111
005375 117 116 000
8607 005400 TRSFHL: ERROR <KL HALT DURING FAULT CONTINUATION>
005400 077 040 113 .ASCIZ \? KL HALT DURING FAULT CONTINUATION\
005403 114 040 110
005406 101 114 124
005411 040 104 125
005414 122 111 116
005417 107 040 106
005422 101 125 114
005425 124 040 103
005430 117 116 124
005433 111 116 125
005436 101 124 111
005441 117 116 000
8608 005444 TRSSEF: ERROR <SYSTEM ERROR DURING FAULT CONTINUATION>
005444 077 040 123 .ASCIZ \? SYSTEM ERROR DURING FAULT CONTINUATION\
KLIRS -- SPECIAL KL RESTARTS MACRO M1113 03-APR-86 20:55 PAGE 183-3
$DLGEN -- ASK IF ENTERING DIALOG IS REQUIRED
005447 131 123 124
005452 105 115 040
005455 105 122 122
005460 117 122 040
005463 104 125 122
005466 111 116 107
005471 040 106 101
005474 125 114 124
005477 040 103 117
005502 116 124 111
005505 116 125 101
005510 124 111 117
005513 116 000
8609 005515 TRSFCS: MESSAGE <FAULT CONTINUATION SUCCEEDED>
005515 106 101 125 .ASCIZ \FAULT CONTINUATION SUCCEEDED\
005520 114 124 040
005523 103 117 116
005526 124 111 116
005531 125 101 124
005534 111 117 116
005537 040 123 125
005542 103 103 105
005545 105 104 105
005550 104 000
8610 022540 .PSECT
KLIRS -- SPECIAL KL RESTARTS MACRO M1113 03-APR-86 20:55 PAGE 184
$POWER -- POWER FAILURE RESTART
8612 .SBTTL $POWER -- POWER FAILURE RESTART
8613 ;+
8614 ; A POWER-FAIL ON THE KL REQUIRES AN ATTEMPT TO RESTART THE MONITOR
8615 ; AT LOCATION 70 IF POSSIBLE IN ORDER TO SAVE SYSTEM INFO.
8616 ; THE KL HAS TO BE MONITORED DURING THIS RESTART IN CASE THE
8617 ; POWER-FAIL RESTART CODE HAS BEEN CLOBBERED AND CANNOT RUN. THIS
8618 ; SITUATION IS DETECTED IF A DOORBELL IS NOT RECIEVED
8619 ; WITHIN 20 SECONDS OF RESTART, OR A FATAL ERROR SUCH AS A HALT
8620 ; OR CLOCK ERROR STOP OCCURS.
8621 ;
8622 ; NO INPUTS OR OUTPUTS
8623 ;
8624 ; EXIT IS EITHER TO $EXIT IS SUCCESSFUL OR $ERROR IF RESTART FAILED.
8625 ;-
8626
8627 .ENABL LSB
8628
8629 022540 $POWER::CALL $FILE ; WRITE CONFIGURATION FILE FIRST.
022540 004737 003036' JSR PC,$FILE
8630 022544 103516 BCS 60$
8631 022546 CALL $ZERAC ; CLEAR THE ACS.
022546 004737 000112' JSR PC,$ZERAC
8632 022552 012705 005023' MOV #TRSPRF,R5 ; "POWER-FAIL RESTART FAILED" FOR ERRORS
8633 022556 CALL ..DTP2 ; START SECONDARY PROTOCOL.
022556 004737 000000G JSR PC,..DTP2
8634 022562 CALL WAIT1S ; WAIT ONE SECOND
022562 004737 023430' JSR PC,WAIT1S
8635 022566 103500 BCS 40$ ; FAILED, GIVE UP
8636 022570 013737 000000G 001712' MOV .PRDCT,DRSDBL ; SAVE THE DOORBELL COUNT.
8637 022576 CALL LRSTKL ; ENABLE KL FOR NORMAL OPERATION
022576 004737 023332' JSR PC,LRSTKL
8638 022602 012700 001733' MOV #DRSPFR,R0 ; START KL AT 70.
8639 022606 CALL $STRKL
022606 004737 030726' JSR PC,$STRKL
8640 022612 103466 BCS 40$
8641 022614 012704 000024 MOV #20.,R4 ; ONE SECOND CHECKS FOR 20 SECONDS
8642 022620 000430 BR 10$ ; GO FINISH UP
KLIRS -- SPECIAL KL RESTARTS MACRO M1113 03-APR-86 20:55 PAGE 185
$POWER -- POWER FAILURE RESTART
8644 ;+
8645 ; A CRASH ON THE TOPS-10 MONITOR REQUIRES AN ATTEMPT TO RESTART
8646 ; AT LOCATION 407 IF POSSIBLE IN ORDER TO SAVE SYSTEM INFO.
8647 ; THE KL HAS TO BE MONITORED DURING THIS RESTART IN CASE THE
8648 ; 407 RESTART CODE HAS BEEN CLOBBERED AND CANNOT RUN. THIS
8649 ; SITUATION IS DETECTED IF A DOORBELL IS NOT RECIEVED
8650 ; WITHIN 10 SECONDS OF RESTART, OR A FATAL ERROR SUCH AS A HALT
8651 ; OR CLOCK ERROR STOP OCCURS.
8652 ;
8653 ; NO INPUTS OR OUTPUTS
8654 ;
8655 ; EXIT IS EITHER TO $EXIT IS SUCCESSFUL OR $ERROR IF RESTART FAILED.
8656 ;-
8657
8658 022622 $RSTRT::
8659 022622 CALL $WRMRST ; DO WARM RESTART IF REQUIRED
022622 004737 023022' JSR PC,$WRMRST
8660 022626 CALL $FILE ; WRITE CONFIGURATION FILE FIRST.
022626 004737 003036' JSR PC,$FILE
8661 022632 103461 BCS 50$
8662 022634 012705 005211' MOV #TRSDER,R5 ; "SYSTEM ERROR DURING KL RESTART" FOR ERRORS
8663 022640 CALL ..DTP2 ; START SECONDARY PROTOCOL.
022640 004737 000000G JSR PC,..DTP2
8664 022644 CALL WAIT1S ; WAIT ONE SECOND
022644 004737 023430' JSR PC,WAIT1S
8665 022650 103447 BCS 40$ ; FAILED, GIVE UP
8666 022652 013737 000000G 001712' MOV .PRDCT,DRSDBL ; SAVE THE DOORBELL COUNT.
8667 022660 CALL LRSTKL ; ENABLE KL FOR NORMAL OPERATION
022660 004737 023332' JSR PC,LRSTKL
8668 022664 012700 001741' MOV #DRSSCR,R0 ; RESTART KL AT 407.
8669 022670 CALL $STRKL
022670 004737 030726' JSR PC,$STRKL
8670 022674 103435 BCS 40$ ; IF SUCCESSFUL,
8671 022676 012704 000012 MOV #10.,R4 ; ONE SECOND CHECKS FOR 10 SECONDS
8672 022702 10$:
8673 022702 012705 005211' MOV #TRSDER,R5 ; "SYSTEM ERROR DURING KL RESTART" FOR ERRORS
8674 022706 CALL $DTRW1 ; READ DTE REGISTER #1.
022706 004737 024114' JSR PC,$DTRW1
8675 022712 103426 BCS 40$
8676 022714 012705 005057' MOV #TRSCES,R5 ; "CLOCK ERROR STOP DURING KL RESTART"
8677 022720 032700 004000 BIT #DS04,R0 ; CLOCK ERROR STOP ?
8678 022724 001021 BNE 40$ ; YES, TELL THE GUY.
8679 022726 012705 005124' MOV #TRSHLT,R5 ; "KL HALTED DURING RESTART"
8680 022732 032700 001000 BIT #DS06,R0 ; KL HALTED ?
8681 022736 001014 BNE 40$ ; YES...
8682 022740 023737 000000G 001712' CMP .PRDCT,DRSDBL ; IF THE DOORBELL HAS RUNG
8683 022746 001015 BNE 60$ ; THEN WE ARE IN.
8684 022750 012705 005211' MOV #TRSDER,R5 ; "SYSTEM ERROR DURING KL RESTART"
8685 022754 20$:
8686 022754 CALL WAIT1S ; WAIT ONE SECOND
022754 004737 023430' JSR PC,WAIT1S
8687 022760 103403 BCS 40$ ; FAILED, GIVE UP
8688 022762 077431 SOB R4,10$ ; TRY AGAIN.
8689 022764 012705 005155' MOV #TRSTMO,R5 ; "TIMEOUT DURING KL RESTART"
8690 022770 40$:
8691 022770 PRINT R5 ; PRINT ERROR MESSAGE
022770 010500 MOV R5,R0
KLIRS -- SPECIAL KL RESTARTS MACRO M1113 03-APR-86 20:55 PAGE 185-1
$POWER -- POWER FAILURE RESTART
022772 004737 027634' JSR PC,$TTMSG
8692 022776 50$:
8693 022776 000137 024012' JMP $ERROR ; ERROR EXIT.
8694 023002 60$:
8695 023002 005037 000000G CLR .NOERR ; ALLOW KL ERRORS TO OCCUR,
8696 023006 PRINT #TRSRSM ; TELL OPERATOR "KL RESTARTED"
023006 012700 005252' MOV #TRSRSM,R0
023012 004737 027634' JSR PC,$TTMSG
8697 023016 000137 024022' JMP $EXIT ; AND EXIT NORMALLY.
8698 .DSABL LSB
KLIRS -- SPECIAL KL RESTARTS MACRO M1113 03-APR-86 20:55 PAGE 186
$WRMRS -- WARM RESTART (FAULT CONTINUATION)
8700 .SBTTL $WRMRS -- WARM RESTART (FAULT CONTINUATION)
8701 ;+
8702 ; A KL CPU ERROR OCCURING WITH FAULT CONTINUATION ENABLED CAUSES AN
8703 ; XCT 72 TO ATTEMPT MONITOR RECOVERY.
8704 ;
8705 ; THE KL HAS TO BE MONITORED DURING THIS RESTART IN CASE THE
8706 ; WARM RESTART CODE HAS BEEN CLOBBERED AND CANNOT RUN. THIS
8707 ; SITUATION IS DETECTED IF A DOORBELL IS NOT RECIEVED
8708 ; WITHIN 10 SECONDS OF RESTART.
8709 ;
8710 ; INPUTS:
8711 ; .ERRCD CONTAINS THE ERROR CODE AND KL FLAGS FROM KLERR
8712 ; .ERRPC CONTAINS THE 23 BIT PC FROM KLERR
8713 ;
8714 ; OUTPUT:
8715 ; KL LOC 100+2*CPUN CONTAINS XWD FLAGS,,ERRCOD
8716 ; KL LOC 101+2*CPUN CONTAINS 23 BIT PC
8717 ;
8718 ; ERRORS:
8719 ; CLOCK ERROR STOP DURING KL RESTART
8720 ; KL HALT DURING RESTART
8721 ; TIMEOUT DURING KL RESTART
8722 ; SYSTEM ERROR DURING KL RESTART
8723 ; FAULT CONTINUATION TIMEOUT
8724 ;
8725 ; EXIT IS TO $EXIT IS SUCCESSFUL OR RETURNS IF RESTART FAILED.
8726 ;-
8727
8728 .ENABL LSB
8729
8730 023022 $WRMRS::
8731 023022 105737 000000G TSTB .KLFCF ; FAULT CONTINUATION ENABLED ?
8732 023026 001124 BNE 50$ ; BRANCH IF NOT
8733 023030 005737 000000G TST .ERRCD ; ANY ERRORS TO CONTINUE ON ?
8734 023034 001521 BEQ 50$ ; BRANCH IF NOT
8735 023036 113700 000000G MOVB .KLCPU,R0 ; GET OUR CPU NUMBER
8736 023042 001516 BEQ 50$ ; IF ZERO, HOST CAN'T DO IT
8737 023044 012705 005267' MOV #TRSFCF,R5 ; (ERROR MESSAGE)
8738 023050 006300 ASL R0 ; CPU*2 SO WE CAN USE TWO WORDS/CPU
8739 023052 062700 000076 ADD #76,R0 ; CONVERT TO LOCATION FOR DEPOSIT (CPU0=100)
8740 ; LOC=100+(CPUN*2)-2
8741 023056 012701 000000G MOV #.ERRCD,R1 ; ADDRESS OF SAVED FLAGS AND ERROR CODE
8742 023062 CALL $DPOST ; DO THE DEPOSIT
023062 004737 013056' JSR PC,$DPOST
8743 023066 103501 BCS 40$ ; BRANCH ON ERROR
8744 023070 113700 000000G MOVB .KLCPU,R0 ; GET OUR CPU NUMBER
8745 ; LOC=101+(CPUN*2)-2
8746 023074 006300 ASL R0 ; CPU*2 SO WE CAN USE TWO WORDS/CPU
8747 023076 062700 000077 ADD #77,R0 ; CONVERT TO LOCATION FOR DEPOSIT (CPU0=101)
8748 023102 012701 000000G MOV #.ERRPC,R1 ; ADDRESS OF THE SAVED PC TO R1
8749 023106 CALL $DPOST ; DEPOSIT IT
023106 004737 013056' JSR PC,$DPOST
8750 023112 103467 BCS 40$ ; BRANCH ON ERROR
8751 023114 CALL ..DTP2 ; START SECONDARY PROTOCOL.
023114 004737 000000G JSR PC,..DTP2
8752 023120 CALL WAIT1S ; WAIT ONE SECOND
023120 004737 023430' JSR PC,WAIT1S
KLIRS -- SPECIAL KL RESTARTS MACRO M1113 03-APR-86 20:55 PAGE 186-1
$WRMRS -- WARM RESTART (FAULT CONTINUATION)
8753 023124 103462 BCS 40$ ; FAILED, GIVE UP
8754 023126 013737 000000G 001712' MOV .PRDCT,DRSDBL ; SAVE THE DOORBELL COUNT.
8755 023134 CALL LRSTKL ; ENABLE KL FOR NORMAL OPERATION
023134 004737 023332' JSR PC,LRSTKL
8756 023140 012700 001736' MOV #DRSFCR,R0 ; RESTART KL AT 72
8757 023144 CALL $STRKL
023144 004737 030726' JSR PC,$STRKL
8758 023150 103450 BCS 40$ ; IF SUCCESSFUL,
8759 023152 012704 000012 MOV #10.,R4 ; 1 SECOND CHECKS FOR 10 SECONDS
8760 023156 10$:
8761 023156 012705 005444' MOV #TRSSEF,R5 ; (ERROR MESSAGE)
8762 023162 CALL $DTRW1 ; READ DTE REGISTER #1.
023162 004737 024114' JSR PC,$DTRW1
8763 023166 103441 BCS 40$
8764 023170 012705 005323' MOV #TRSCEF,R5 ; (ERROR MESSAGE)
8765 023174 032700 004000 BIT #DS04,R0 ; CLOCK ERROR STOP ?
8766 023200 001034 BNE 40$ ; YES, TELL THE GUY.
8767 023202 012705 005400' MOV #TRSFHL,R5 ; (ERROR MESSAGE)
8768 023206 032700 001000 BIT #DS06,R0 ; KL HALTED ?
8769 023212 001027 BNE 40$ ; YES...
8770 023214 023737 000000G 001712' CMP .PRDCT,DRSDBL ; IF THE DOORBELL HAS RUNG
8771 023222 001031 BNE 60$ ; THEN WE ARE IN.
8772 023224 012705 005444' MOV #TRSSEF,R5 ; (ERROR MESSAGE)
8773 023230 20$:
8774 023230 CALL WAIT1S ; WAIT ONE SECOND
023230 004737 023430' JSR PC,WAIT1S
8775 023234 103416 BCS 40$ ; FAILED, GIVE UP
8776 023236 077431 SOB R4,10$ ; TRY AGAIN.
8777 023240 105237 000000G INCB .NOERR ; SET NO ERROR AGAIN
8778 023244 105237 000000G INCB .TKTN ; SCHEDULE TASK TERMINATOR
8779 023250 052737 000000G 000000G BIS #KS.FCF,.KLITK ; SAY WHY IT FAILED
8780 023256 CALL ..DSEV ; DECLARE A SIGNIFICANT EVENT
023256 004737 000000G JSR PC,..DSEV
8781 023262 005037 000000G CLR .ERRCD ; CLEAR ANY ERROR CODE (AVOID RECURSION)
8782 023266 000137 024030' JMP $EXIT1 ; AND EXIT
8783 023272 40$:
8784 023272 PRINT R5 ; PRINT ERROR MESSAGE
023272 010500 MOV R5,R0
023274 004737 027634' JSR PC,$TTMSG
8785 023300 50$:
8786 023300 005037 000000G CLR .ERRCD ; CLEAR ANY ERROR CODE (AVOID RECURSION)
8787 023304 RETURN ; ERROR EXIT.
023304 000207 RTS PC
8788 023306 60$:
8789 023306 005037 000000G CLR .ERRCD ; CLEAR ANY ERROR CODE (AVOID RECURSION)
8790 023312 005037 000000G CLR .NOERR ; ALLOW KL ERRORS TO OCCUR,
8791 023316 PRINT #TRSFCS ; TELL OPERATOR,
023316 012700 005515' MOV #TRSFCS,R0
023322 004737 027634' JSR PC,$TTMSG
8792 023326 000137 024030' JMP $EXIT1 ; AND EXIT NORMALLY.
8793 .DSABL LSB
KLIRS -- SPECIAL KL RESTARTS MACRO M1113 03-APR-86 20:55 PAGE 187
$WRMRS -- WARM RESTART (FAULT CONTINUATION)
8795 ;+
8796 ; RESET THE KL CPU, ENABLE THE PARITY STOPS, AND TURN ON CACHE IF NECESSARY.
8797 ;
8798 ; NO INPUTS
8799 ;
8800 ; OUTPUTS:
8801 ; CARRY SET IF ERROR OCCURRS.
8802 ;-
8803
8804 023332 LRSTKL: CALL $KLMR ; FORCE E-BOX INTO OBEDIENCE
023332 004737 015232' JSR PC,$KLMR
8806 023336 103433 BCS 90$
8807 023340 105737 000043' TSTB .CASW ; IF CACHE IS THERE
8808 023344 003410 BLE 10$
8809 023346 105737 000064' TSTB .NCACH ; AND IS TO BE USED
8810 023352 003405 BLE 10$
8811 023354 012700 001714' MOV #DRSCEN,R0 ; THEN
8812 023360 CALL $EXCT ; TURN IT ON
023360 004737 030636' JSR PC,$EXCT
8814 023364 103420 BCS 90$
8815 023366 012701 001721' 10$: MOV #DRSPLD,R1 ; DO STUFF TO
8816 023372 012700 047000 MOV #.LDCK2,R0
8817 023376 CALL $DFWR
023376 004737 013556' JSR PC,$DFWR
8818 023402 012701 001726' MOV #DRSPEN,R1 ; SET THE PARITIES
8819 023406 012700 046000 MOV #.LDCK1,R0
8820 023412 CALL $DFWR
023412 004737 013556' JSR PC,$DFWR
8821 023416 012700 001000 MOV #.STRCL,R0 ; START THE CLOCK
8822 023422 CALLR $DFXC
023422 000137 013760' JMP $DFXC
8823 023426 90$: RETURN
023426 000207 RTS PC
KLIRS -- SPECIAL KL RESTARTS MACRO M1113 03-APR-86 20:55 PAGE 188
$WRMRS -- WARM RESTART (FAULT CONTINUATION)
8825 ;+
8826 ; WAIT FOR 1 SECOND
8827 ;
8828 ; NO INPUTS
8829 ;
8830 ; OUTPUTS:
8831 ; CARRY SET IF ERROR OCCURRS.
8832 ;-
8833
8834 023430 WAIT1S:
8835 023430 MRKT$S #1,#60.,#0 ; WAIT FOR ONE SECOND.
023430 005046 CLR -(SP)
023432 005046 CLR -(SP)
023434 012746 000074 MOV #60.,-(SP)
023440 012746 000001 MOV #1,-(SP)
023444 012746 MOV (PC)+,-(SP)
023446 027 005 .BYTE 23.,5
023450 104375 EMT 375
8836 023452 103011 BCC 10$
8837 023454 122737 000000G 000000G CMPB #IE.UPN,$DSW ; IF INSUFFICIENT MEMORY,
8838 023462 001013 BNE 20$ ; THEN
8839 023464 WSIG$S ; RSX IS CROWDED.
023464 012746 MOV (PC)+,-(SP)
023466 061 001 .BYTE 49.,1
023470 104375 EMT 375
8840 023472 103356 BCC WAIT1S ; TRY AGAIN
8841 023474 000406 BR 20$ ; USELESS, GIVE UP
8842 023476 10$:
8843 023476 WTSE$S #1 ; WAIT, WAIT, WAIT....
023476 012746 000001 MOV #1,-(SP)
023502 012746 MOV (PC)+,-(SP)
023504 051 002 .BYTE 41.,2
023506 104375 EMT 375
8844 023510 103001 BCC 30$
8845 023512 20$:
8846 023512 000261 SEC ; FLAG ERROR
8847 023514 30$:
8848 023514 RETURN ; EXIT
023514 000207 RTS PC
KLIRS -- SPECIAL KL RESTARTS MACRO M1113 03-APR-86 20:55 PAGE 189
$WRMRS -- WARM RESTART (FAULT CONTINUATION)
8850
8851
8852
8853 .TITLE KLIRT -- ROOT SECTION
8854 023516 IDENT$ 15,12,KLI$$F
.IDENT /A15120/
8855 ;
8856 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
8857 ; ALL RIGHTS RESERVED.
8858 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
8859 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
8860 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
8861 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
8862 ;
8863 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
8864 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
8865 ; EQUIPMENT CORPORATION.
8866 ;
8867 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
8868 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
8869 ;
8870 ; VERSION 15-12
8871 ;
8872 ; ALAN D. PECKHAM 15-APR-77
8873 ;
8874 ; MODIFIED BY:
8875 ;
8876 ; R. BELANGER 22-OCT-79 ADD CACHE SWEEP ON BOOT OR RELOAD
8877 ; TCO 5.1013
8878 ; R. BELANGER 16-JUL-79 ADD KL10 ENVIRONMENTAL REPORTING
8879 ; TCO 4.2333
8880 ; R. BELANGER 02-MAR-79 ADD REVERSE MEMORY CONFIGURATION
8881 ; TCO 4.2204
8882 ; R. BELANGER 06-DEC-78 ADD NEW KEEP-ALIVE ERROR PROCESSING
8883 ; TCO 4.2107
8884 ; R. BELANGER 25-JUL-78 INTEGRATE WITH MOS CONFIGURATOR
8885 ;
8886 ;01-AUG-83 TCO 6.1675 D. WEAVER
8887 ; SUPPORT FOR WARM RESTART FOR TOPS10.
8888 ;
8889 ; M. RUDENKO 09-FEB-84 ADD MG20 MEMORY CONFIGURATION
8890 ; ADD MCA25 PAGE TABLE SELECTION
8891 ;
8892 ;
8893 ; FUNCTION: THE ROOT SECTION CONTAINS ALL THE GLOBAL DATA ITEMS
8894 ; AND THE MAIN-LINE OVERLAY CONTROL CODE.
KLIRT -- ROOT SECTION MACRO M1113 03-APR-86 20:55 PAGE 190
$WRMRS -- WARM RESTART (FAULT CONTINUATION)
8896 ;
8897 ; EQUATED SYMBOLS
8898 ;
8899 000015 CR = 15 ; CARRIAGE RETURN CHARACTER.
8900 000012 LF = 12 ; LINE FEED CHARACTER.
8901 000040 SPC = 40 ; SPACE CHARACTER.
8902 000011 TAB = 11 ; TAB CHARACTER.
8903 ;
8904 000256 XCT = 256 ; [4.2107] KL10 "XCT" OPCODE
8905 ;
8906 ; LOCAL MACROS
8907 .MCALL QIOW$,EXIT$S
8908 ;
8909 ; LOCAL DATA
8910 ;
8911 001744 .PSECT DATA,D
8912 001744 DRTX71:
8913 001744 I10$ XCT 0,,71 ; [4.2107] KL10 "XCT 71"
001744 071 000 000 .BYTE BY$$0,BY$$1,BY$$2
001747 160 005 .BYTE BY$$3,BY$$4
8914 .EVEN
8916 001752 DRTWLB:
8917 001752 QIOW$ IO.WLB,LPOLUN,1,,DRTSTA,,<DRTBUF,0,0>
001752 003 011 .BYTE 3,$$$ARG
001754 000000G .WORD IO.WLB
001756 000003 .WORD LPOLUN
001760 001 000 .BYTE 1,
001762 001774' .WORD DRTSTA
001764 000000 .WORD
001766 002000' .WORD DRTBUF
001770 000000 .WORD 0
001772 000000 .WORD 0
8918 001774 DRTSTA:
8919 001774 000000 000000 .WORD 0,0 ; I/O STATUS.
8920 002000 DRTBUF:
8921 002000 .BLKB 72. ; TRACK OUTPUT BUFFER.
8922 002110 DRTBF:
8923 002110 WD36$ 0 0 ; BIT BUCKET.
002110 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
002113 000 000 .BYTE BY$$3,BY$$4
8924 .EVEN
8926 005552 .PSECT TEXT,D
8927 005552 COMCSE::
8928 005552 MESSAGE <COMMAND SYNTAX ERROR>
005552 103 117 115 .ASCIZ \COMMAND SYNTAX ERROR\
005555 115 101 116
005560 104 040 123
005563 131 116 124
005566 101 130 040
005571 105 122 122
005574 117 122 000
8929 005577 TRTMMF:
8930 005577 ERROR <MEMORY CONFIGURATION FAILED>
005577 077 040 115 .ASCIZ \? MEMORY CONFIGURATION FAILED\
005602 105 115 117
005605 122 131 040
005610 103 117 116
KLIRT -- ROOT SECTION MACRO M1113 03-APR-86 20:55 PAGE 190-1
$WRMRS -- WARM RESTART (FAULT CONTINUATION)
005613 106 111 107
005616 125 122 101
005621 124 111 117
005624 116 040 106
005627 101 111 114
005632 105 104 000
8931 005635 TRTBTF:
8932 005635 ERROR <BOOTSTRAP LOAD FAILED>
005635 077 040 102 .ASCIZ \? BOOTSTRAP LOAD FAILED\
005640 117 117 124
005643 123 124 122
005646 101 120 040
005651 114 117 101
005654 104 040 106
005657 101 111 114
005662 105 104 000
8933 005665 TRTFME:
8934 005665 ERROR <FATAL MEMORY CONFIGURATION ERROR - CODE "_>
005665 077 040 106 .ASCIZ \? FATAL MEMORY CONFIGURATION ERROR - CODE "_\
005670 101 124 101
005673 114 040 115
005676 105 115 117
005701 122 131 040
005704 103 117 116
005707 106 111 107
005712 125 122 101
005715 124 111 117
005720 116 040 105
005723 122 122 117
005726 122 040 055
005731 040 103 117
005734 104 105 040
005737 042 137 000
8935 005742 TRTEND:
8936 005742 042 000 .ASCIZ /"/
8937 023516 .PSECT
KLIRT -- ROOT SECTION MACRO M1113 03-APR-86 20:55 PAGE 191
GLOBAL DATA STORAGE
8939 .SBTTL GLOBAL DATA STORAGE
8940 000000 .PSECT GLBL,D,GBL
8941
8942 ;+
8943 ; WORK AND STORAGE AREA
8944 ;-
8945
8946 000000 .ZERO::
8947 000000 000000 000000 000000 .WORD 0,0,0 ; SOURCE OF 36-BIT ZERO
8948 000006 000000 000000 000000 .WORD 0,0,0 ; PLUS EXTRAS FOR C-RAM ZERO.
8949 000014 .WORK::
8950 000014 000000 000000 000000 .WORD 0,0,0 ; COMMON WORK AREA
8951
8952 ;+
8953 ; INFORMATION AND CONTROL SWITCHES.
8954 ;-
8955
8956 000022 .SPSAV::
8957 000022 000000 .WORD 0 ; SAVE STACK POINTER HERE
8958 000024 .DLGSW::
8959 000024 000 .BYTE 0 ; DIALOG CONTROL SWITCH.
8960 000025 .MCBSW::
8961 000025 000 .BYTE 0 ; MICROCODE FILENAME SWITCH
8962 000026 .UFNSW::
8963 000026 000 .BYTE 0 ; USER FILE SPECIFIED.
8964 000027 .DRSW::
8965 000027 000 .BYTE 0 ; RAM DIALOG CONTROL.
8967 000030 .CSDN::
8968 000030 001 .BYTE 1 ; [5.1013] SWEEP DONE SWITCH
8969 000031 .DCSW::
8970 000031 000 .BYTE 0 ; CACHE DIALOG CONTROL.
8972 000032 .DMSW::
8973 000032 000 .BYTE 0 ; MEMORY DIALOG CONTROL.
8974 000033 .DBSW::
8975 000033 000 .BYTE 0 ; BOOT DIALOG CONTROL.
8976 000034 .PTSW::
8977 000034 000 .BYTE 0 ; [**] MCA25 DIALOG CONTROL
8978 000035 .MCA25::
8979 000035 000 .BYTE 0 ; [**] MCA25 INDICATOR
8981 000036 .TRKSW::
8982 000036 000 .BYTE 0 ; TRACK CONTROL SWITCH.
8983 000037 .TRKTT::
8984 000037 000 .BYTE 0 ; [5.1005] TERMINAL TRACK CONTROL
8985 000040 .TRKLP::
8986 000040 000 .BYTE 0 ; [5.1005] LP TRACK CONTROL
8988 000041 .CKSW::
8989 000041 000 .BYTE 0 ; CLOCK RUNNING FLAG.
8990 000042 .DESW::
8991 000042 000 .BYTE 0 ; CLOCK RUNNING FOR EXAMINE/DEPOSIT.
8993 000043 .CASW::
8994 000043 000 .BYTE 0 ; CACHE INDICATOR.
8996 000044 .EASW::
8997 000044 000 .BYTE 0 ; EXTENDED ADDRESSING INDICATOR.
8998 000045 .MFSW::
8999 000045 000 .BYTE 0 ; MOS MEMORY INDICATOR
9000 000046 .MFCT::
9001 000046 000 .BYTE 0 ; COUNT OF MF20'S EXPECTED FROM FILE
KLIRT -- ROOT SECTION MACRO M1113 03-APR-86 20:55 PAGE 191-1
GLOBAL DATA STORAGE
9002 000047 .FILSW::
9003 000047 000 .BYTE 0 ; WRITE CONFIG FILE SWITCH
9004 000050 .BTSW::
9005 000050 000 .BYTE 0 ; LOAD BOOT SWITCH
9006 000051 .MCSW::
9007 000051 000 .BYTE 0 ; [**] MCA25 STATE INDICATOR
9008
9009 .EVEN
9010
9011 000052 $LOG::
9012 000052 000001 .WORD 1 ; [4.1.1073]ERROR LOGGING FLAG
9013 000054 $LGERR::
9014 000054 000000 .WORD 0 ; [4.1.1073]ERROR FLAG
9015 000056 $LGOPN::
9016 000056 000000 .WORD 0 ; [4.1.1073]LOGGING FILE OPEN FLAG
9017
9018 ;+
9019 ; .KLIWD DEFINITIONS:
9020 ;
9021 ; KL.KAC KEEP-ALIVE-CEASED ERROR
9022 ; KL.LRM LOAD RAMS
9024 ; KL.LCA CONFIGURE CACHE
9026 ; KL.CFM CONFIGURE MEMORY
9027 ; KL.LVB LOAD BOOT
9028 ; KL.SPF RESTART FOR KL POWER FAIL
9030 ; KL.SSC RESTART FOR KL SYSTEM CRASH
9032 ; KL.CFL CONFIGURE ALL
9033 ; INSTEAD OF FROM CONFIGURATION FILE
9034 ; KL.VBN BOOT - NO PROMPT
9035 ; KL.VBD BOOT - DUMP MONITOR
9036 ;
9037 ; ALL BITS ZERO IMPLIES TO ENTER DIALOG
9038 ;-
9039
9040 000060 .KLISV::
9041 000060 000000 .WORD 0 ; =.KLIWD
9042 000062 .SNSAV::
9043 000062 000000 .WORD 0 ; [4.2333] = .CPUSN
KLIRT -- ROOT SECTION MACRO M1113 03-APR-86 20:55 PAGE 192
GLOBAL DATA STORAGE
9046 ;+
9047 ; CACHE TABLES
9048 ;-
9049
9050 000064 .NCACH::
9051 000064 377 .BYTE -1 ; NUMBER OF CACHES TO USE.
9052 000065 .CACHN::
9053 000065 .BLKB 4 ; CACHE MODULES TO USE.
9054 .EVEN
9055
9057
9058 ;+
9059 ; CONTROLLER TABLES.
9060 ; THESE TABLES ARE USED AS FOLLOWS:
9061 ; .CTLTP - THIS TABLE CONTAINS THE MEMORY TYPE FOR EACH CONTROLLER.
9062 ; .CFGTB - THIS TABLE CONTAINS THE CONFIGURATION MASK WORDS
9063 ; <0 -- NOT TO BE USED
9064 ; =0 -- DEFAULT (ALL BLOCKS OR MODULES TO BE USED)
9065 ; >0 -- USE BLOCKS OR MODULES SPECIFIED IN BIT-MASK
9066 ;
9067 ; A PSEUDO-CONTROLLER IS DEFINED FOR THE FORWARD/REVERSE CONFIGURATION FLAG.
9068 ; THIS PSEUDO-CONTROLLER ALWAYS OCCUPIES THE "CTLS+1"TH POSITION IN THE TABLES,
9069 ; AND ITS CONTROLLER TYPE IS -1, SO THAT IT MAY BE SAVED AND RESTORED FORM THE
9070 ; CONFIGURATION FILE.
9071 ;-
9072
9073 000072 .CTLTP::
9074 000072 .BLKB CTLS ; CONTROLLER TYPE FOR EACH ADDRESS.
9075 000132 001 .BYTE 1 ; [4.2204] PSEUDO-CONTROLLER FOR FWD/REV CONFIGURATION FLAG
9076 .EVEN
9077 000134 .CFGTB::
9078 000134 .BLKW CTLS ; ALLOCATION BIT-MASK FOR EACH CONTROLLER
9079 000234 .CFMRV::
9080 000234 000000 .WORD 0 ; [4.2204] FORWARD/REVERSE CONFIGURATION FLAG
9081
9082 000236 BMMSTB:: ; BUS-MODE MASKS
9083 000236 007400 .WORD 7400
9084 000240 000360 .WORD 360
9085 000242 000017 .WORD 17
KLIRT -- ROOT SECTION MACRO M1113 03-APR-86 20:55 PAGE 193
GLOBAL DATA STORAGE
9087 ;+
9088 ; DPB FOR READ/WRITE DTE20 REGS
9089 ;-
9090
9091 000244 .KLREG::
9092 000244 002411 .WORD 2411
9093 000246 017 000 .BYTE 17,0
9094 000250 000302' .WORD .DTEDT
9095 000252 000272' .WORD .DREG
9096 000254 000000 .WORD 0
9097
9098 000256 .DFBLK:: ; EBSIN
9099 000256 .DFWBK::
9100 000256 000000 000000 000000 .WORD 0,0,0 ; 3 WORDS TO BE WRITTEN TO EBUS
9101 000264 .DFRBK::
9102 000264 000000 000000 000000 .WORD 0,0,0 ; 3 WORDS TO BE READ FROM EBUS
9103 000272 .DREG::
9104 000272 .DFRG1::
9105 000272 000000 .WORD 0 ; DTE20 DIAG
9106 000274 .DFRG2::
9107 000274 000000 .WORD 0 ; DTE20 DIAG2
9108 000276 .DFSTA::
9109 000276 000000 .WORD 0 ; DTE20 STATUS WORD
9110 000300 .DFRG3::
9111 000300 000000 .WORD 0 ; DTE20 DIAG3
9112
9113 000302 .DTEDT::
9114 000302 000000 .WORD 0 ; DTE TRANSFER AREA
9115
9116 ;+
9117 ; TTY BUFFERS
9118 ;-
9119
9120 000040 T.TIL == 32. ; (MAXIMUM IS 80. CHARACTERS)
9121 000304 .TTIBF::
9122 000304 .BLKB T.TIL ; CTY INPUT BUFFER.
9123 000111 T.TOL == 73.
9124 000344 .TTOBF::
9125 000344 .BLKB T.TOL ; CTY OUTPUT BUFFER.
9126 .EVEN
9127
9128 ;+
9129 ; MISC.
9130 ;-
9131
9132 000456 .MCBFN::
9133 000456 000000 000000 000000 .WORD 0,0,0,0 ; MICROCODE FILENAME
000464 000000
9134 000466 000000 .WORD 0 ; VERSION NUMBER
9135 000470 005 005 .BYTE 5,5 ; UIC
9136 000472 054523 000000 .WORD "SY,0 ; DEVICE AND UNIT
9137 000476 .USRFN::
9138 000476 000000 000000 000000 .WORD 0,0,0,0 ; FILE NAME ENTERED BY OPERATOR
000504 000000
9139 000506 000000 .WORD 0 ; VERSION NUMBER (LAST VERSION).
9140 000510 005 005 .BYTE 5,5 ; DIRECTORY UIC.
9141 000512 054523 000000 .WORD "SY,0 ; DEVICE AND UNIT NUMBER.
KLIRT -- ROOT SECTION MACRO M1113 03-APR-86 20:55 PAGE 193-1
GLOBAL DATA STORAGE
9142 000516 .BTADR::
9143 000516 000000 000000 000000 .WORD 0,0,0 ; KL BOOT ADDRESS.
9144 000524 .PTSEL::
9145 000524 000000 .WORD 0 ; [**] MCA25 PAGE TABLE SELECTED
KLIRT -- ROOT SECTION MACRO M1113 03-APR-86 20:55 PAGE 194
GLOBAL DATA STORAGE
9147 ;+
9148 ; SYSTEM DEVICE WORK AREAS
9149 ;-
9150
9151 000526 .SYSTA::
9152 000526 000000 000000 .WORD 0,0 ; OPERATION STATUS.
9153 000532 .SYISW::
9154 000532 000 .BYTE 0 ; INPUT FILE OPEN SWITCH.
9155 000533 .SYOSW::
9156 000533 000 .BYTE 0 ; OUTPUT FILE OPEN SWITCH.
9157
9158 001000 S.YIL == 1000
9159 000534 .SYIRC::
9160 000534 000000 .WORD 0 ; RECORD COUNT.
9161 000536 .SYIBA::
9162 000536 000566' .WORD .SYIBF ; BUFFER POSITION.
9163 000540 .SYIBC::
9164 000540 001000 .WORD S.YIL ; BYTES LEFT IN BUFFER.
9165 000542 .SYIFN::
9166 000542 000000 000000 000000 .WORD 0,0,0,0,0 ; INPUT FILE NAME.
000550 000000 000000
9167 000554 005 005 .BYTE 5,5
9168 000556 054523 000000 .WORD "SY,0
9169 000562 .SYIVB::
9170 000562 000000 000000 .WORD 0,0 ; CURRENT INPUT BLOCK NUMBER.
9171 000566 .SYIBF::
9172 000566 .BLKW S.YIL/2 ; SYSTEM DEVICE INPUT BUFFER.
9173
9174 001000 S.YOL == 1000
9175 001566 .SYORC::
9176 001566 000000 .WORD 0 ; RECORD COUNT.
9177 001570 .SYOBA::
9178 001570 000566' .WORD .SYIBF ; BUFFER POSITION.
9179 001572 .SYOBC::
9180 001572 001000 .WORD S.YIL ; BYTES LEFT IN BUFFER.
9181 001574 .SYOFN::
9182 001574 000000 000000 000000 .WORD 0,0,0,0,0 ; OUTPUT FILE NAME.
001602 000000 000000
9183 001606 005 005 .BYTE 5,5
9184 001610 054523 000000 .WORD "SY,0
9185 001614 .SYOVB::
9186 001614 000000 000000 .WORD 0,0 ; CURRENT OUTPUT BLOCK NUMBER.
9187 001620 .SYOBF::
9188 001620 .BLKW S.YOL/2 ; SYSTEM DEVICE OUTPUT BUFFER.
9189
9190 ;+
9191 ; FILE NAME BLOCK (SET UP TO GET DIRECTORY)
9192 ;-
9193
9194 002620 .SYFNB::
9195 002620 000000 000000 000000 .WORD 0,0,0 ; N.FID
9196 002626 140123 140123 000000 .RAD50 /005005 / ; N.FNAM
9197 002634 015172 .RAD50 /DIR/ ; N.FTYP
9198 002636 000000 .WORD 0 ; N.FVER
9199 002640 000000 .WORD 0 ; N.STAT
9200 002642 000000 .WORD 0 ; N.NEXT
9201 002644 177777 177777 .WORD -1,-1 ; DIRECTORY FID.
KLIRT -- ROOT SECTION MACRO M1113 03-APR-86 20:55 PAGE 194-1
GLOBAL DATA STORAGE
9202 002650 005 005 .BYTE 5,5 ; OWNER
9203 002620' .SYFID == .SYFNB ; FILE ID IS IN FIRST TWO WORDS OF FNB
9204 002626' .SYFNM == .SYFNB+6 ; FILENAME.
9205
9206 ;+
9207 ; THESE ARE THE USER FILE ATTRIBUTES FOR THE CURRENTLY
9208 ; OPEN OUTPUT FILE.
9209 ;-
9210
9211 002652 .SYATT::
9212 002652 002 .BYTE 2 ; VARIABLE LENGTH RECORDS.
9213 002653 000 .BYTE 0 ; NO RECORD ATTRIBUTES.
9214 002654 000000 .WORD 0 ; LARGEST RECORD IN FILE.
9215 002656 000000 000000 .WORD 0,0 ; HIGHEST VIRTUAL BLOCK ALLOCATED.
9216 002662 000000 000000 .WORD 0,0 ; HIGHEST VIRTUAL BLOCK USED.
9217 002666 000000 .WORD 0 ; TO NEXT FREE BYTE IN LAST BLOCK.
9218
9219 .EVEN
KLIRT -- ROOT SECTION MACRO M1113 03-APR-86 20:55 PAGE 195
$START -- MAIN PROGRAM FLOW CONTROL
9221 .SBTTL $START -- MAIN PROGRAM FLOW CONTROL
9222 023516 .PSECT
9223 .ENABL LSB
9224
9225 023516 $START::
9226 023516 032737 000000G 000000G BIT #KL.ABO,.KLIWD ; [4.1.1049]ABORT RELOADING?
9227 023524 001403 BEQ 5$ ; [4.1.1049]NO -- GO ON
9228 023526 005037 000000G CLR .KLIWD ; [4.1.1049]YES -- CLEAR RELOAD FLAG
9229 023532 000536 BR $EXIT1 ; [4.1.1049]EXIT
9230 023534 010637 000022' 5$: MOV SP,.SPSAV ; SAVE THE STACK POINTER
9231 023540 CALL $INIT ; DO INITIALIZATION
023540 004737 015564' JSR PC,$INIT
9232 023544 032737 000000G 000060' BIT #KL.KAC,.KLISV ; [4.2107] KEEP-ALIVE RETRY??
9233 023552 001423 BEQ 20$ ; [4.2107] NO -- GO ON
9234 023554 105237 000000G XCT71:: INCB .NOERR ; [4.2107] YES -- DON'T WANT SPURIOUS CRASHES
9235 023560 012700 001744' MOV #DRTX71,R0 ; [4.2107] POINT TO KL INSTRUCTION
9236 023564 CALL $EXCT ; [4.2107] EXECUTE IT
023564 004737 030636' JSR PC,$EXCT
9237 023570 103411 BCS 10$ ; [4.2107] ERROR IF CC-C IS SET
9238 023572 012700 011000 MOV #.SETRN,R0 ; [4.2107] SET THE RUN FLOP
9239 023576 CALL $DFXC ; [4.2107] SO
023576 004737 013760' JSR PC,$DFXC
9240 023602 103404 BCS 10$ ; [4.2107] ERROR IF CC-C IS SET
9241 023604 012700 012000 MOV #.CONBT,R0 ; [4.2107] SET THE CONTINUE BUTTON
9242 023610 CALL $DFXC ; [4.2107] SO
023610 004737 013760' JSR PC,$DFXC
9243 023614 10$:
9244 023614 105337 000000G DECB .NOERR ; [4.2107] RESET ERROR INTERLOCK
9245 023620 000503 BR $EXIT1 ; [4.2107] AND EXIT
9246 ;
9247 023622 20$: ; [4.2107]
9248 023622 000137 021170' JMP $DLGEN ; ENTER DIALOG
9249
9250 .DSABL LSB
9251
9252 ;
9253 023626 $CFGRM::
9254 023626 CALL $MCBLD ; LOAD RAMS
023626 004737 001066' JSR PC,$MCBLD
9255 023632 103467 BCS $ERROR
9257 023634 $DLGCV::
9258 023634 000137 017066' JMP $DLGCA ; ENTER CACHE DIALOG.
9259 ;
9260
9261 .ENABL LSB
9262
9263 023640 $CFGCA::
9264 023640 105737 000031' TSTB .DCSW ; IF CONFIGURATION INFO
9265 023644 003003 BGT 10$ ; NOT SET UP, THEN
9266 023646 CALL $GETCA ; GET IT.
023646 004737 014112' JSR PC,$GETCA
9267 023652 103457 BCS $ERROR
9268 023654 10$:
9269 023654 CALL $SETCA ; CONFIGURE THE CACHE.
023654 004737 000356' JSR PC,$SETCA
9270 023660 103454 BCS $ERROR
9272 023662 $DLGMV::
KLIRT -- ROOT SECTION MACRO M1113 03-APR-86 20:55 PAGE 195-1
$START -- MAIN PROGRAM FLOW CONTROL
9273 023662 000137 017556' JMP $DLGMM ; ENTER MEMORY DIALOG.
9274 ;
9275 023666 $DLGMX::
9276 023666 103404 BCS 20$
9277 023670 $DLGBV::
9278 023670 000137 016334' JMP $DLGBT ; ENTER BOOT DIALOG.
9279 ;
9280 023674 $DLGRV::
9281 023674 000137 020700' JMP $DLGRM ; ENTER RAM DIALOG
9282 ;
9283 023700 20$:
9284 023700 PRINT #TRTMMF ; MEMORY CONFIGURATION FAILED
023700 012700 005577' MOV #TRTMMF,R0
023704 004737 027634' JSR PC,$TTMSG
9285 023710 000137 024012' JMP $ERROR
9286 ;
9287
9288 .DSABL LSB
9289
9290 023714 $CFGBT::
9291 023714 105737 000043' TSTB .CASW ; IF NO CACHE, THEN
9292 023720 002414 BLT 10$ ; LOAD THE BOOT.
9293 023722 105737 000064' TSTB .NCACH ; OTHERWISE CHECK IF
9294 023726 002011 BGE 10$ ; CACHE HAS BEEN CONFIGURED
9295 023730 CALL $GETCA ; IF NOT, GET LAST CONFIGURATION
023730 004737 014112' JSR PC,$GETCA
9296 023734 103426 BCS $ERROR ; AND
9297 023736 105737 000064' TSTB .NCACH ; IF WE HAVE TO SET IT
9298 023742 001403 BEQ 10$
9299 023744 CALL $SETCA ; THEN DO SO.
023744 004737 000356' JSR PC,$SETCA
9300 023750 103420 BCS $ERROR
9301 023752 10$:
9302 023752 CALL $WRMRS ; ATTEMPT FAULT CONTINUATION (WARM RESTART)
023752 004737 023022' JSR PC,$WRMRS
9303 023756 CALL $EXBLD ; LOAD & START BOOT.
023756 004737 030052' JSR PC,$EXBLD
9304 023762 103405 BCS 20$
9305 023764 105737 000024' TSTB .DLGSW ; INTERNAL PATH ?
9306 023770 002014 BGE $EXIT
9307 023772 000137 017422' JMP $DLGEX ; YES, TEST FOR RESTART.
9308 ;
9309 023776 20$:
9310 023776 CALL $PURGE ; PURGE BOOT FILE
023776 004737 010124' JSR PC,$PURGE
9311 024002 PRINT #TRTBTF
024002 012700 005635' MOV #TRTBTF,R0
024006 004737 027634' JSR PC,$TTMSG
9312
9313 024012 $ERROR::
9314 024012 105037 000024' CLRB .DLGSW ; ALLOW DIALOG
9315 024016 000137 021170' JMP $DLGEN ; AND ENTER IT.
9316 ;
9317 024022 $EXIT::
9318 024022 CALL $FILE ; CHANGE CONFIGURATION FILE AND
024022 004737 003036' JSR PC,$FILE
9319 024026 103771 BCS $ERROR
KLIRT -- ROOT SECTION MACRO M1113 03-APR-86 20:55 PAGE 195-2
$START -- MAIN PROGRAM FLOW CONTROL
9320 024030 $EXIT1:: ; [4.2107]
9321 024030 EXIT$S ; EXIT FROM KLINIT
024030 012746 MOV (PC)+,-(SP)
024032 063 001 .BYTE 51.,1
024034 104375 EMT 375
9322 ;
9323 024036 $FATAL::
9324 024036 012700 005665' MOV #TRTFME,R0 ; MESSAGE POINTER TO R0
9325 024042 CALL $TTDMS ; PRINT THE MESSAGE
024042 004737 027566' JSR PC,$TTDMS
9326 024046 012600 MOV (SP)+,R0 ; POINTER TO ERROR CODE TEXT
9327 024050 012701 000003 MOV #3,R1 ; THREE CHARACTERS
9328 024054 CALL $TTWR ; WRITE THAT
024054 004737 027714' JSR PC,$TTWR
9329 024060 012700 005742' MOV #TRTEND,R0 ; POINTER TO END
9330 024064 012701 000001 MOV #1,R1 ; LENGTH OF ONE
9331 024070 CALL $TTWR ; WRITE THE CHARACTER
024070 004737 027714' JSR PC,$TTWR
9332 024074 CALL $TCRLF ; AND END THE LINE
024074 004737 027530' JSR PC,$TCRLF
9333 024100 013706 000022' MOV .SPSAV,SP ; RESET THE STACK POINTER
9334 024104 105037 000024' CLRB .DLGSW ; RESET DIALOG SWITCH
9335 024110 000137 017556' JMP $DLGMM ; ENTER MEMORY BOOT DILAOG
9336 ;
KLIRT -- ROOT SECTION MACRO M1113 03-APR-86 20:55 PAGE 196
$DTRXX -- DTE20 REGISTER READ/WRITE SUBROUTINES
9338 .SBTTL $DTRXX -- DTE20 REGISTER READ/WRITE SUBROUTINES
9339 ;+
9340 ; THESE ROUTINES WILL READ OR WRITE A DTE-20 REGISTER ACCORDING TO
9341 ; WHICH ROUTINE IS CALLED.
9342 ;
9343 ; DTRWD1 -- READ OR WRITE DTE-20 DIAG WORD 1
9344 ; DTRWD2 -- READ OR WRITE DTE-20 DIAG WORD 2
9345 ; DTRWST -- READ OR WRITE DTE-20 STATUS
9346 ; DTRWD3 -- READ OR WRITE DTE-20 DIAG WORD 3
9347 ;
9348 ; IF LOCATION "DTETMP" IS .NE. 0, IT IS TAKEN A A POINTER TO THE
9349 ; DATA TO BE WRITTEN INTO THE REGISTER. IF "DTETMP" IS .EQ. 0, THEN
9350 ; A READ OF THE REGISTER IS PERFORMED. ON EITHER A READ OR A WRITE
9351 ; THE RESULT OF THE OPERATION IS RETURNED IN R0 AND IS SAVED IN
9352 ; LOCATION "DREG", AND LOCATION "DTETMP" IS CLEARED.
9353 ;-
9354
9355 024114 $DTRW1::
9356 024114 105037 000247' CLRB .KLREG+3 ; DIAG 1 OFFSET = 0
9357 024120 000413 BR DRTDTE ; DO COMMON CODE
9358 ;
9359 024122 $DTRW2::
9360 024122 112737 000002 000247' MOVB #2,.KLREG+3 ; DIAG 2 OFFSET = 2
9361 024130 000407 BR DRTDTE ; DO COMMON CODE
9362 ;
9363 024132 $DTRWS::
9364 024132 112737 000004 000247' MOVB #4,.KLREG+3 ; STATUS OFFSET = 4
9365 024140 000403 BR DRTDTE ; DO COMMON CODE
9366 ;
9367 024142 $DTRW3::
9368 024142 112737 000006 000247' MOVB #6,.KLREG+3 ; DIAG 3 OFFSET = 6
9369 024150 DRTDTE:
9370 024150 012737 000302' 000250' MOV #.DTEDT,.KLREG+4 ; SET THE BUFFER POINTER FOR WRITE DATA
9371 024156 005037 000272' CLR .DREG ; CLEAR RETURN DATA BUFFER
9372 024162 DIR$ #.KLREG ; DO THE READ OR WRITE
024162 012746 000244' MOV #.KLREG,-(SP)
024166 104375 EMT 375
9373 024170 103404 BCS 10$
9374 024172 005037 000302' CLR .DTEDT ; RESET THE DATA POINTER TO 0 (READ)
9375 024176 013700 000272' MOV .DREG,R0 ; COPY THE REGISTER TO R0
9376 024202 10$:
9377 024202 RETURN
024202 000207 RTS PC
KLIRT -- ROOT SECTION MACRO M1113 03-APR-86 20:55 PAGE 197
$RSAVE -- SAVE REGISTERS FOR ROUTINES
9379 .SBTTL $RSAVE -- SAVE REGISTERS FOR ROUTINES
9380 ;+
9381 ; THIS ROUTINE SAVES ALL REGISTERS ON THE STACK AND PUSHES
9382 ; A RETURN ROUTINE ADDRESS ALSO, SO THAT WHEN THE USER RETURNS
9383 ; THE REGISTERS ARE AUTOMATICALLY RESTORED. THE RETURNED
9384 ; REGISTERS CAN BE MODIFIED: 2(SP)=R0, 4(SP)=R1, ETC.
9385 ;-
9386
9387 024204 $RSAVE::
9388 024204 PUSH <R4,R3,R2,R1,R0>
024204 010446 MOV R4,-(SP)
024206 010346 MOV R3,-(SP)
024210 010246 MOV R2,-(SP)
024212 010146 MOV R1,-(SP)
024214 010046 MOV R0,-(SP)
9389 024216 004715 JSR PC,(R5)
9390 024220 POP <R0,R1,R2,R3,R4,R5>
024220 012600 MOV (SP)+,R0
024222 012601 MOV (SP)+,R1
024224 012602 MOV (SP)+,R2
024226 012603 MOV (SP)+,R3
024230 012604 MOV (SP)+,R4
024232 012605 MOV (SP)+,R5
9391 024234 000207 RTS PC
KLIRT -- ROOT SECTION MACRO M1113 03-APR-86 20:55 PAGE 198
$ASCIZ -- TRANSFER ASCII STRING
9393 .SBTTL $ASCIZ -- TRANSFER ASCII STRING
9394 ;+
9395 ; SET AN ASCII STRING INTO AN OUTPUT BUFFER POINTED TO BY R5.
9396 ; THE INPUT STRING IS POINTED TO BY R0 AND MUST BE TERMINATED
9397 ; BY A NULL BYTE. ON EXIT, R0 POINTS PAST THE NULL BYTE, AND
9398 ; R5 POINTS PAST THE INSERTED STRING (NULL BYTE IS NOT INSERTED).
9399 ; EMBEDDED NEGATIVE BYTES ARE NOT COPIED.
9400 ;-
9401
9402 .ENABL LSB
9403 024236 10$:
9404 024236 005305 DEC R5
9405 024240 $ASCIZ::
9406 024240 112025 MOVB (R0)+,(R5)+
9407 024242 003376 BGT $ASCIZ
9408 024244 002774 BLT 10$
9409 024246 005305 DEC R5
9410 024250 000207 RTS PC
9411 .DSABL LSB
KLIRT -- ROOT SECTION MACRO M1113 03-APR-86 20:55 PAGE 199
$TRACK -- SPECIAL TRACK ROUTINE
9414 .SBTTL $TRACK -- SPECIAL TRACK ROUTINE
9415 ;+
9416 ; THIS ROUTINE IS CALLED TO PROVIDE A VISUAL TRACE OF KLINIT'S
9417 ; ACTION. IT REPORTS WITH A 2-CHARACTER IDENTIFICATION, A FUNCTION
9418 ; CODE/OR ADDRESS, AND A SECONDARY ADDRESS (36-BIT ADDRESSES).
9419 ; AN ARGUEMENT BLOCK IS PASSED IN R0:
9420 ; .WORD "FN ;2-CHAR IDENTIFICATION
9421 ; .WORD ADR1 ;ADDR OF FIRST 36-BIT OR FNC CODE
9422 ; .WORD ADR2 ;ADDR OF SECOND 36-BIT
9423 ; ADR1 AND ADR2 MAY BE ZERO, IN WHICH CASE THE ARGS ARE NOT PRINTED.
9424 ;-
9425
9426 024252 $TRACK::
9427 024252 004537 024204' JSR R5,$RSAVE
9428 024256 006046 ROR -(SP) ; SAVE THE CARRY.
9429 024260 105737 000036' TSTB .TRKSW ; IF TRACK IS OFF,
9430 024264 001515 BEQ 70$ ; IGNORE REQUEST.
9431 024266 012705 002000' MOV #DRTBUF,R5 ; SET UP OUT BUF ADDRESS
9432 024272 010004 MOV R0,R4 ; AND ARG POINTER.
9433 024274 112725 000011 MOVB #TAB,(R5)+
9434 024300 112425 MOVB (R4)+,(R5)+ ; GET IDENT.
9435 024302 112425 MOVB (R4)+,(R5)+
9436 024304 112725 000040 MOVB #SPC,(R5)+
9437 024310 122737 000106 002001' CMPB #'F,DRTBUF+1 ; IS IT A DIAG FUNCTION ?
9438 024316 001006 BNE 10$
9439 024320 005000 CLR R0
9440 024322 153400 BISB @(R4)+,R0 ; YES, GET NUMBER
9441 024324 006200 ASR R0
9442 024326 CALL $TRB2O ; AND PRINT IT.
024326 004737 026500' JSR PC,$TRB2O
9443 024332 000416 BR 30$
9444 ;
9445 024334 10$:
9446 024334 012401 MOV (R4)+,R1 ; FIRST ADDRESS ?
9447 024336 001414 BEQ 30$ ; NO, SKIP IT.
9448 024340 012702 002110' MOV #DRTBF,R2
9449 024344 012703 000005 MOV #5,R3 ; TRANSFER 5 BYTES
9450 024350 010200 MOV R2,R0 ; TO WORK AREA
9451 024352 20$:
9452 024352 112122 MOVB (R1)+,(R2)+
9453 024354 077302 SOB R3,20$
9454 024356 042762 177760 177777 BIC #^C17,-1(R2) ; TRIM TO 36 BITS,
9455 024364 CALL $WRD22 ; AND PRINT.
024364 004737 026154' JSR PC,$WRD22
9456 024370 30$:
9457 024370 011401 MOV (R4),R1 ; SECOND WORD ?
9458 024372 001420 BEQ 60$ ; NO, IGNORE IT.
9459 024374 012702 002110' MOV #DRTBF,R2
9460 024400 012703 000005 MOV #5,R3 ; SAME AS BEFORE...
9461 024404 010200 MOV R2,R0
9462 024406 40$:
9463 024406 112122 MOVB (R1)+,(R2)+
9464 024410 077302 SOB R3,40$
9465 024412 042762 177760 177777 BIC #^C17,-1(R2)
9466 024420 005744 TST -(R4)
9467 024422 001402 BEQ 50$
9468 024424 112725 000057 MOVB #'/,(R5)+ ; EXCEPT FOR SEPERATOR.
KLIRT -- ROOT SECTION MACRO M1113 03-APR-86 20:55 PAGE 199-1
$TRACK -- SPECIAL TRACK ROUTINE
9469 024430 50$:
9470 024430 CALL $WRD36
024430 004737 026266' JSR PC,$WRD36
9471 024434 60$:
9472 024434 112725 000015 MOVB #CR,(R5)+ ; TERMINATE LINE
9473 024440 112725 000012 MOVB #LF,(R5)+ ; AND
9474 024444 162705 002000' SUB #DRTBUF,R5 ; (LENGTH OF LINE)
9475 024450 010537 001770' MOV R5,DRTWLB+Q.IOPL+2 ; PUT IN DPB
9476 024454 105737 000040' TSTB .TRKLP ; [5.1005] TRACK ON LP?
9477 024460 001406 BEQ 65$ ; [5.1005] NO -- CHECK TT
9478 024462 012737 000003 001756' MOV #LPOLUN,DRTWLB+Q.IOLU ; [5.1005] YES -- SET LUN
9479 024470 DIR$ #DRTWLB ; [5.1005] SEND IT
024470 012746 001752' MOV #DRTWLB,-(SP)
024474 104375 EMT 375
9480 024476 105737 000037' 65$: TSTB .TRKTT ; [5.1005] TRACK ON TT?
9481 024502 001406 BEQ 70$ ; [5.1005] NO -- EXIT
9482 024504 012737 000002 001756' MOV #TTOLUN,DRTWLB+Q.IOLU ; [5.1005] YES -- SET LUN
9483 024512 DIR$ #DRTWLB ; AND SEND IT.
024512 012746 001752' MOV #DRTWLB,-(SP)
024516 104375 EMT 375
9484 024520 70$:
9485 024520 006126 ROL (SP)+ ; RESTORE THE CARRY.
9486 024522 RETURN
024522 000207 RTS PC
9488 .TITLE KLIST -- START THE KL BOOT
9489 024524 IDENT$ 13,04,KLI$$F
.IDENT /A13040/
9490 ;
9491 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
9492 ; ALL RIGHTS RESERVED.
9493 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
9494 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
9495 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
9496 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
9497 ;
9498 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
9499 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
9500 ; EQUIPMENT CORPORATION.
9501 ;
9502 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
9503 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
9504 ;
9505 ; VERSION 13-04
9506 ;
9507 ; ALAN D. PECKHAM 7-APR-77
9508 ;
9509 ; MODIFIED BY:
9510 ;
9511 ;19-JAN-83 TCO 6.1508 D. WEAVER
9512 ; GET THE CPU NUMBER OF THE KL WE ARE RUNNING ON FROM .KLCPU SO WE
9513 ; CAN DO WARM RESTART ON SMP SYSTEMS (USED BY KLINIT)
9514 ;17-JUN-83 TCO 6.1675 D. WEAVER
9515 ; MORE CHANGES FOR WARM RESTART RESULTING FROM THE SEPARATE .CMD FILES
9516 ; BEING EXECUTED BASED ON ERROR CODE. ERROR CODE IS NOW IN .ERRCD ALONG
9517 ; WITH THE KL FLAGS. PC (23 BITS) IS IN .ERRPC. NOTE THAT .ERRCD WILL
9518 ; BE SEEN BY THE KL AS <FLAGS,,ERRCD> IN LOC 101, 103, 105, ETC... BASED
9519 ; ON THE CPU NUMBER.
KLIST -- START THE KL BOOT MACRO M1113 03-APR-86 20:55 PAGE 199-2
$TRACK -- SPECIAL TRACK ROUTINE
9520 ;
9521 ; FUNCTION: THIS ROUTINE CLEANS UP THE CPU AND STARTS UP THE BOOT
9522 ; WITH SPECIFIED FUNCTIONS IN AC0.
9523 ;
9524 .MCALL MRKT$S,WTSE$S
9525 ; EQUATED SYMBOLS
9526 ;
9527 000020 AAX = BIT4 ; AR/ARX PARITY ENABLE BIT.
9528 000000 APR = 0 ; KL DEVICE.
9529 000004 CONO = 4 ; KL I/O SUB-FUNCTION CODE.
9530 000004 CM = BIT2 ; CRAM PARITY ENABLE BIT.
9531 000003 DATAO = 3 ; KL I/O SUB-FUNCTION CODE.
9532 000002 DM = BIT1 ; DRAM PARITY ENABLE BIT.
9533 000010 FM = BIT3 ; FM PARITY ENABLE BIT.
9534 000001 FS = BIT0 ; FS PARITY ENABLE BIT.
9535 000010 PAG = 10 ; KL DEVICE.
9536 000004 PI = 4 ; KL DEVICE.
9537 ;
9538 ; LOCAL DATA
9539 ;
9540
9541 002116 .PSECT DATA,D
9542 002116 DSTRT:
9543 002116 IO10$ CONO APR,,267760 ;RESET APR
002116 360 157 001 .BYTE BY$$0,BY$$1,BY$$2
002121 002 016 .BYTE BY$$3,BY$$4
9544 002123 IO10$ CONO PI,,10000 ;RESET PI SYSTEM
002123 000 020 000 .BYTE BY$$0,BY$$1,BY$$2
002126 006 016 .BYTE BY$$3,BY$$4
9545 002130 IO10$ CONO PAG,,0 ;PAGING SYSTEM CLEAR
002130 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
002133 012 016 .BYTE BY$$3,BY$$4
9546 002135 IO10$ DATAO PAG,,0 ;USER BASE CLEAR
002135 000 000 200 .BYTE BY$$0,BY$$1,BY$$2
002140 011 016 .BYTE BY$$3,BY$$4
9547 000004 DSTRTL=.-DSTRT/I.10L
9549 002142 DSTCEN:
9550 002142 IO10$ CONO PAG,,600000
002142 000 000 003 .BYTE BY$$0,BY$$1,BY$$2
002145 012 016 .BYTE BY$$3,BY$$4
9552 002147 DST1B0:
9553 002147 WD36$ 400000 0 ;1B0
002147 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
002152 000 010 .BYTE BY$$3,BY$$4
9554 002154 DST1B1:
9555 002154 WD36$ 200000 0 ;1B1
002154 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
002157 000 004 .BYTE BY$$3,BY$$4
9556 002161 DST3B1:
9557 002161 WD36$ 600000 0 ;3B1
002161 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
002164 000 014 .BYTE BY$$3,BY$$4
9558 .EVEN ; DSTBF NUST START ON EVEN BOUNDRY.
9559 002166 DSTBF:
9560 002166 WD36$ 0 0 ; GENERAL BIT BUCKET.
002166 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
002171 000 000 .BYTE BY$$3,BY$$4
KLIST -- START THE KL BOOT MACRO M1113 03-APR-86 20:55 PAGE 199-3
$TRACK -- SPECIAL TRACK ROUTINE
9561 .EVEN
9562
9563 005744 .PSECT TEXT,D
9564 005744 TSTBSM: MESSAGE <BOOTSTRAP LOADED AND STARTED>
005744 102 117 117 .ASCIZ \BOOTSTRAP LOADED AND STARTED\
005747 124 123 124
005752 122 101 120
005755 040 114 117
005760 101 104 105
005763 104 040 101
005766 116 104 040
005771 123 124 101
005774 122 124 105
005777 104 000
9565 .EVEN
9566 024524 .PSECT
KLIST -- START THE KL BOOT MACRO M1113 03-APR-86 20:55 PAGE 200
$TENST -- START KL BOOT
9568 .SBTTL $TENST -- START KL BOOT
9569 ;+
9570 ; UPDATE THE CONFIGURATION FILE AND START UP THE KL BOOTSTRAP.
9571 ; TRANSFER DUMP AND PROMPT BITS FROM .KLIWD TO AC0 FOR KL BOOT.
9572 ; 1B0 INDICATES NO PROMPTING
9573 ; 1B1 INDICATES TO DUMP KL
9574 ; BEGIN EXECUTION AT START+1 TO INFORM THE BOOT THAT THESE
9575 ; SWITCHES ARE SET.
9576 ;
9577 ; INPUTS:
9578 ; .BTADR - THE BOOT STARTING ADDRESS.
9579 ;
9580 ; NO OUTPUTS
9581 ; THE RETURN IS TO $ERROR IF UNSUCCESSFUL.
9582 ;-
9583
9584 .ENABL LSB
9585
9586 024524 $TENST::
9587 024524 CALL $FILE ; CHANGE CONFIGURATION FILE FIRST.
024524 004737 003036' JSR PC,$FILE
9588 024530 103536 BCS 80$ ; BRANCH IF NOT OK
9589 024532 $TENS1::
9590 024532 CALL $ZERAC ; CLEAR THE AC'S.
024532 004737 000112' JSR PC,$ZERAC
9591 024536 103532 BCS 90$
9592 024540 012701 000004 MOV #DSTRTL,R1
9593 024544 012700 002116' MOV #DSTRT,R0
9594 024550 10$:
9595 024550 CALL $EXCT ; RESET APR,PI,CLEAR PAGING,USER BASE
024550 004737 030636' JSR PC,$EXCT
9596 024554 103523 BCS 90$
9597 024556 062700 000005 ADD #I.10L,R0
9598 024562 077106 SOB R1,10$
9600 024564 105737 000043' TSTB .CASW ; IF CACHE IS THERE
9601 024570 003406 BLE 20$
9602 024572 105737 000064' TSTB .NCACH ; AND IS TO BE USED
9603 024576 003403 BLE 20$
9604 024600 CALL $EXCT ; THEN TURN IT ON.
024600 004737 030636' JSR PC,$EXCT
9605 024604 103507 BCS 90$
9607 024606 20$:
9608 024606 105737 000050' TSTB .BTSW ; [4.2275] BOOT KL?
9609 024612 100433 BMI 70$ ; [4.2275] NO
9610 024614 013700 000060' MOV .KLISV,R0 ; .KLIWD INTO R0.
9611 024620 032700 000000G BIT #KL.VBN,R0 ; TEST .KLIWD BITS
9612 024624 001411 BEQ 40$ ; AND PICK APPROPRIATE
9613 024626 032700 000000G BIT #KL.VBD,R0 ; WORD TO INSERT
9614 024632 001003 BNE 30$ ; IN AC0.
9615 024634 012701 002147' MOV #DST1B0,R1
9616 024640 000413 BR 60$
9617 ;
9618 024642 30$:
9619 024642 012701 002161' MOV #DST3B1,R1
9620 024646 000410 BR 60$
9621 ;
9622 024650 40$:
KLIST -- START THE KL BOOT MACRO M1113 03-APR-86 20:55 PAGE 200-1
$TENST -- START KL BOOT
9623 024650 032700 000000G BIT #KL.VBD,R0
9624 024654 001003 BNE 50$
9625 024656 012701 000000' MOV #.ZERO,R1
9626 024662 000402 BR 60$
9627 ;
9628 024664 50$:
9629 024664 012701 002154' MOV #DST1B1,R1
9630 024670 60$:
9631 024670 012700 000000' MOV #.ZERO,R0
9632 024674 CALL $DPOS ; PUT IT IN.
024674 004737 013074' JSR PC,$DPOS
9633 024700 103451 BCS 90$
9634 024702 70$:
9635 024702 012701 002166' MOV #DSTBF,R1
9636 024706 012711 000003 MOV #3,(R1) ; CHECK AR/ARX PARITY AND CAUSE
9637 024712 012700 047000 MOV #.LDCK2,R0 ; PAGE FAIL UCODE TRAP IF ERROR
9638 024716 CALL $DFWR ; BIT34 IN .LDCK2
024716 004737 013556' JSR PC,$DFWR
9639 024722 103440 BCS 90$
9640 024724 012711 000016 MOV #FM!CM!DM,(R1) ; ENABLE CRAM,DRAM,FS,AR/ARX PARITY
9641 024730 012700 046000 MOV #.LDCK1,R0
9642 024734 CALL $DFWR ; LOAD CONDITION ENABLE REG
024734 004737 013556' JSR PC,$DFWR
9643 024740 103431 BCS 90$
9644 024742 012700 001000 MOV #.STRCL,R0 ; [4.2275] START CLOCKS
9645 024746 CALL $DFXC ; [4.2275]
024746 004737 013760' JSR PC,$DFXC
9646 024752 103424 BCS 90$ ; [4.2275] ERROR IF CC-C IS SET
9647 024754 105737 000050' TSTB .BTSW ; [4.2275] BOOT KL ?
9648 024760 100421 BMI 90$ ; [4.2275] NO -- JUST EXIT
9649 024762 012700 000516' MOV #.BTADR,R0 ; GET BOOT ADDRESS AND
9650 024766 062710 000001 ADD #1,(R0) ; INCREMENT.
9651 024772 005560 000002 ADC 2(R0)
9652 024776 CALL $STRKL
024776 004737 030726' JSR PC,$STRKL
9653 025002 103410 BCS 90$ ; IF SUCCESSFUL,
9654 025004 005037 000000G CLR .NOERR ; ALLOW ERRORS AND
9655 025010 PRINT #TSTBSM ; ANNOUNCE THE GOOD NEWS
025010 012700 005744' MOV #TSTBSM,R0
025014 004737 027634' JSR PC,$TTMSG
9656 025020 CALL ..DTP2 ; START SECONDARY PROTOCOL
025020 004737 000000G JSR PC,..DTP2
9657 025024 90$:
9658 025024 RETURN
025024 000207 RTS PC
9659 025026 80$:
9660 025026 005726 TST (SP)+ ; CONFIGURATION WAS NOT SAVED.
9661 025030 000137 024012' JMP $ERROR
9662 025034 100$:
9663 025034 105337 000000G DECB .NOERR ; ALLOW FOR ERRORS
9664 025040 000137 024030' JMP $EXIT1 ; AND EXIT
9665 ;
9666
9667 .DSABL LSB
KLIST -- START THE KL BOOT MACRO M1113 03-APR-86 20:55 PAGE 201
$TENST -- START KL BOOT
9669
9670 .TITLE KLITF -- ASCII FILE-NAME TRANSLATION
9671 025044 IDENT$ 5,0
.IDENT /005000/
9672 ;
9673 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
9674 ; ALL RIGHTS RESERVED.
9675 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
9676 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
9677 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
9678 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
9679 ;
9680 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
9681 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
9682 ; EQUIPMENT CORPORATION.
9683 ;
9684 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
9685 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
9686 ;
9687 ; VERSION 05-00
9688 ;
9689 ; ALAN D. PECKHAM 27-APR-77
9690 ;
9691 ; MODIFIED BY:
9692 ;
9693 ; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED IN THE TRANSLATION
9694 ; OF FILE-NAMES TO/FROM A BINARY FILENAME BLOCK.
9695 ;
9696 025044 .PSECT
KLITF -- ASCII FILE-NAME TRANSL MACRO M1113 03-APR-86 20:55 PAGE 202
$TRB2F -- TRANSLATE BINARY TO ASCII FILENAME
9698 .SBTTL $TRB2F -- TRANSLATE BINARY TO ASCII FILENAME
9699 ;+
9700 ; THIS ROUTINE TRANSLATES A FILENAME FROM A FILENAME BLOCK
9701 ; POINTED TO BY R0 INTO AN ASCII STRING AND PUTS THIS STRING INTO
9702 ; THE AREA POINTED TO BY R5. THE PATTERN FOR THE STRING IS:
9703 ; "DDD:FFFFFFFFF.TTT;VVVVV"
9704 ;
9705 ; INPUTS:
9706 ; R5 - POINTER TO AREA TO RECIEVE ASCII CHARACTERS.
9707 ; R0 - POINTER TO FILENAME BLOCK.
9708 ;
9709 ; OUTPUTS:
9710 ; THE ASCII STRING IS PLACED IN THE BYTES POINTED TO BY R5 AND
9711 ; R5 IS UPDATED TO POINT AT THE BYTE FOLLOWING THE INSERTED
9712 ; STRING. R0 IS DESTROYED.
9713 ;-
9714
9715 025044 $TRB2F::PUSH R2 ; SAVE R2 AND
025044 010246 MOV R2,-(SP)
9716 025046 010002 MOV R0,R2 ; POINT IT TO THE BLOCK.
9717 025050 116225 000014 MOVB 14(R2),(R5)+ ; INSERT THE DEVICE
9718 025054 116225 000015 MOVB 15(R2),(R5)+
9719 025060 116215 000016 MOVB 16(R2),(R5) ; AND THE UNIT NUMBER.
9720 025064 152725 000060 BISB #'0,(R5)+ ; MAKE ASCII.
9721 025070 112725 000072 MOVB #':,(R5)+ ; INSERT SEPERATOR.
9722 025074 012200 MOV (R2)+,R0 ; NOW INSERT FILE-NAME.
9723 025076 CALL $TRB2R
025076 004737 026744' JSR PC,$TRB2R
9724 025102 012200 MOV (R2)+,R0
9725 025104 CALL $TRB2R
025104 004737 026744' JSR PC,$TRB2R
9726 025110 012200 MOV (R2)+,R0
9727 025112 CALL $TRB2R
025112 004737 026744' JSR PC,$TRB2R
9728 025116 112725 000056 MOVB #'.,(R5)+ ; INSERT SEPERATOR AND
9729 025122 012200 MOV (R2)+,R0 ; THE FILE TYPE.
9730 025124 CALL $TRB2R
025124 004737 026744' JSR PC,$TRB2R
9731 025130 112725 000073 MOVB #';,(R5)+ ; NOW FOR THE
9732 025134 011200 MOV (R2),R0 ; VERSION NUMBER.
9733 025136 CALL $TRB2O
025136 004737 026500' JSR PC,$TRB2O
9734 025142 POP R2
025142 012602 MOV (SP)+,R2
9735 025144 RETURN
025144 000207 RTS PC
KLITF -- ASCII FILE-NAME TRANSL MACRO M1113 03-APR-86 20:55 PAGE 203
$TRF2B -- TRANSLATE ASCII FILE-NAME TO BINARY
9737 .SBTTL $TRF2B -- TRANSLATE ASCII FILE-NAME TO BINARY
9738 ;+
9739 ; THIS ROUTINE TRANSLATES AN ASCII FILE-NAME POINTED TO BY R5
9740 ; INTO A FILENAME BLOCK POINTED TO BY R0.
9741 ;
9742 ; INPUTS:
9743 ; R5 - POINTER TO ASCII STRING TO EXTRACT FILE-NAME FROM.
9744 ; R0 - POINTER TO BLOCK TO INSERT FILENAME DATA INTO.
9745 ;
9746 ; OUTPUTS:
9747 ; (R0) - FILENAME, FILETYPE, VERSION, UIC=[5,5], AND DEVICE=SY0:.
9748 ; R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS USED
9749 ; IN THE TRANSLATION. THE CARRY IS SET ON VERSION OVERFLOW.
9750 ;-
9751
9752 025146 $TRF2B::PUSH R2 ; SAVE R2 AND
025146 010246 MOV R2,-(SP)
9753 025150 010002 MOV R0,R2 ; POINT IT TO THE BLOCK.
9754 025152 012762 054523 000014 MOV #"SY,14(R2) ; SET DEVICE,
9755 025160 105062 000016 CLRB 16(R2) ; UNIT, AND
9756 025164 012762 002405 000012 MOV #2405,12(R2) ; DIRECTORY UIC.
9757 025172 CALL $TRR2B ; GET FILE NAME.
025172 004737 026636' JSR PC,$TRR2B
9758 025176 010022 MOV R0,(R2)+
9759 025200 CALL $TRR2B
025200 004737 026636' JSR PC,$TRR2B
9760 025204 010022 MOV R0,(R2)+
9761 025206 CALL $TRR2B
025206 004737 026636' JSR PC,$TRR2B
9762 025212 010022 MOV R0,(R2)+
9763 025214 122725 000056 CMPB #'.,(R5)+ ; IS THERE A FILE TYPE ?
9764 025220 001403 BEQ 10$
9765 025222 005305 DEC R5 ; NO FILE TYPE,
9766 025224 005722 TST (R2)+ ; LEAVE ALONE.
9767 025226 000403 BR 20$
9768 025230 10$: CALL $TRR2B ; GET FILE TYPE.
025230 004737 026636' JSR PC,$TRR2B
9769 025234 010022 MOV R0,(R2)+
9770 025236 122725 000073 20$: CMPB #';,(R5)+ ; IS THERE A VERSION NUMBER ?
9771 025242 001403 BEQ 30$
9772 025244 005305 DEC R5 ; NO VERSION,
9773 025246 005012 CLR (R2) ; SET FOR CURRENT ONE.
9774 025250 000403 BR 40$
9775 025252 30$: CALL $TRO2B ; GET VERSION NUMBER.
025252 004737 026562' JSR PC,$TRO2B
9776 025256 010012 MOV R0,(R2)
9777 025260 40$: POP R2
025260 012602 MOV (SP)+,R2
9778 025262 RETURN
025262 000207 RTS PC
KLITF -- ASCII FILE-NAME TRANSL MACRO M1113 03-APR-86 20:55 PAGE 204
$TRF2B -- TRANSLATE ASCII FILE-NAME TO BINARY
9780
9781 .TITLE KLITI -- ASCII-DECIMAL TRANSLATION
9782 025264 IDENT$ 5,0
.IDENT /005000/
9783 ;
9784 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
9785 ; ALL RIGHTS RESERVED.
9786 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
9787 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
9788 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
9789 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
9790 ;
9791 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
9792 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
9793 ; EQUIPMENT CORPORATION.
9794 ;
9795 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
9796 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
9797 ;
9798 ; VERSION 05-00
9799 ;
9800 ; ALAN D. PECKHAM 30-MAR-77
9801 ;
9802 ; MODIFIED BY:
9803 ;
9804 ; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED IN THE TRANSLATION
9805 ; TO/FROM THE ASCII REPRESENTATION OF INTEGERS.
9806 ;
9807 025264 .PSECT
KLITI -- ASCII-DECIMAL TRANSLAT MACRO M1113 03-APR-86 20:55 PAGE 205
$TRB2I -- TRANSLATE BINARY WORD TO INTEGER ASCII
9809 .SBTTL $TRB2I -- TRANSLATE BINARY WORD TO INTEGER ASCII
9810 ;+
9811 ; THIS ROUTINE TRANSLATES A BINARY NUMBER IN R0 INTO AN ASCII
9812 ; STRING AND PUTS THIS STRING INTO THE AREA POINTED TO BY R5.
9813 ; THE NUMBER IS CONSIDERED UNSIGNED, AND THE RESULTING STRING
9814 ; IS VARIABLE IN LENGTH WITH A MAXIMUM OF 5 CHARACTERS.
9815 ;
9816 ; INPUTS:
9817 ; R5 - POINTER TO AREA TO RECIEVE ASCII CHARACTERS.
9818 ; R0 - BINARY NUMBER TO CONVERT.
9819 ;
9820 ; OUTPUTS:
9821 ; THE ASCII STRING IS PLACED IN THE BYTES POINTED TO BY R5 AND
9822 ; R5 IS UPDATED TO POINT AT THE BYTE FOLLOWING THE INSERTED
9823 ; STRING. R0 IS DESTROYED.
9824 ;-
9825
9826 025264 $TDB2I::
9827 025264 PUSH <R4,R5> ; SAVE R4 AND R5
025264 010446 MOV R4,-(SP)
025266 010546 MOV R5,-(SP)
9828 025270 012705 000344' MOV #.TTOBF,R5 ; POINT TO OUTPUT BUFFER
9829 025274 010504 MOV R5,R4 ; COPY TO R4
9830 025276 CALL $TRB2I ; CONVERT TO ASCII STRING
025276 004737 025306' JSR PC,$TRB2I
9831 025302 CALLR $TDB2C ; FINISH UP IN COMMON CODE
025302 000137 026466' JMP $TDB2C
9832 ;
9833
9834 025306 $TRB2I::
9835 025306 004237 025324' JSR R2,10$ ; SAVE R2 AND POINT TO POWER TABLE.
9836 025312 023420 001750 000144 .WORD 10000.,1000.,100.,10.,1.
025320 000012 000001
9837 025324 004337 025360' 10$: JSR R3,50$ ; THE SAVE R3 AND SET TO
9838
9839 025330 022200 CMP (R2)+,R0 ; SIGNIFICANCE CHECKER.
9840 025332 101011 BHI 40$ ; IGNORES LEADING ZEROES.
9841 025334 005742 TST -(R2) ; WHOOPS ! THIS ONE IS GOOD,
9842 025336 010703 20$: MOV PC,R3 ; DIGITS ARE NOW TO BE PRINTED.
9843
9844 025340 112715 000060 MOVB #'0,(R5) ; SET TO ZERO
9845 025344 105215 30$: INCB (R5) ; AND GO UP
9846 025346 161200 SUB (R2),R0
9847 025350 100375 BPL 30$ ; UNTIL TOO FAR,
9848 025352 062200 ADD (R2)+,R0 ; THEN BACK UP.
9849 025354 105325 DECB (R5)+
9850 025356 000207 40$: RTS PC
9851
9852 025360 004713 50$: JSR PC,(R3) ; MAIN PROCESSOR -
9853 025362 004713 JSR PC,(R3) ; ALLOW FOR FOUR INSIGNIFICANT DIGITS,
9854 025364 004713 JSR PC,(R3)
9855 025366 004713 JSR PC,(R3)
9856 025370 004737 025336' JSR PC,20$ ; AND THEN FORCE SIGNIFICANCE.
9857 025374 POP <R3,R2> ; RESTORE REGISTERS
025374 012603 MOV (SP)+,R3
025376 012602 MOV (SP)+,R2
9858 025400 RETURN ; AND .....
KLITI -- ASCII-DECIMAL TRANSLAT MACRO M1113 03-APR-86 20:55 PAGE 205-1
$TRB2I -- TRANSLATE BINARY WORD TO INTEGER ASCII
025400 000207 RTS PC
KLITI -- ASCII-DECIMAL TRANSLAT MACRO M1113 03-APR-86 20:55 PAGE 206
$TRI2B -- TRANSLATE ASCII INTEGER TO BINARY WORD
9860 .SBTTL $TRI2B -- TRANSLATE ASCII INTEGER TO BINARY WORD
9861 ;+
9862 ; THIS ROUTINE TRANSLATES AN ASCII INTEGER NUMBER POINTED
9863 ; TO BY R5 INTO ITS BINARY EQUIVALENT IN R0. R5 IS INCRMENTED
9864 ; PAST THE NUMBER, AND CARRY IS RETURNED ON OVERFLOW.
9865 ;
9866 ; INPUTS:
9867 ; R5 - POINTER TO ASCII STRING TO EXTRACT INTEGER FROM.
9868 ;
9869 ; OUTPUTS:
9870 ; R0 - BINARY NUMBER EXTRACTED.
9871 ; R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS USED
9872 ; IN THE TRANSLATION. THE CARRY IS SET ON SIGNED OVERFLOW.
9873 ;-
9874
9875 025402 $TDI2B::
9876 025402 PUSH R5 ; SAVE R5
025402 010546 MOV R5,-(SP)
9877 025404 012705 000304' MOV #.TTIBF,R5 ; INPUT BUFFER POINTER TO R5
9878 025410 CALL $TTRD ; PROMT AND READ NUMBER
025410 004737 027130' JSR PC,$TTRD
9879 025414 CALL $TRB2I ; CONVERT TO DECIMAL NUMBER
025414 004737 025306' JSR PC,$TRB2I
9880 025420 POP R5 ; RESTORE R5
025420 012605 MOV (SP)+,R5
9881 025422 RETURN ; RETURN
025422 000207 RTS PC
9882
9883 025424 $TRI2B::
9884 025424 PUSH R1
025424 010146 MOV R1,-(SP)
9885 025426 005000 CLR R0
9886 025430 112501 10$: MOVB (R5)+,R1
9887 025432 162701 000060 SUB #'0,R1
9888 025436 100420 BMI 30$
9889 025440 022701 000011 CMP #9.,R1
9890 025444 103415 BLO 30$
9891 025446 022700 006314 CMP #<77777/10.>,R0
9892 025452 103413 BLO 40$
9893 025454 101003 BHI 20$
9894 025456 022701 000007 CMP #<77777-<77777/10.*10.>>,R1
9895 025462 103407 BLO 40$
9896 025464 006300 20$: ASL R0
9897 025466 060001 ADD R0,R1
9898 025470 006300 ASL R0
9899 025472 006300 ASL R0
9900 025474 060100 ADD R1,R0
9901 025476 000754 BR 10$
9902 025500 005727 30$: TST (PC)+
9903 025502 000261 40$: SEC
9904 025504 005305 DEC R5
9905 025506 POP R1
025506 012601 MOV (SP)+,R1
9906 025510 RETURN
025510 000207 RTS PC
KLITI -- ASCII-DECIMAL TRANSLAT MACRO M1113 03-APR-86 20:55 PAGE 207
$TRI2B -- TRANSLATE ASCII INTEGER TO BINARY WORD
9908
9909 .TITLE KLITM -- CRAM/DRAM TRANSLATION
9910 025512 IDENT$ 1,0
.IDENT /001000/
9911 ;
9912 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
9913 ; ALL RIGHTS RESERVED.
9914 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
9915 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
9916 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
9917 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
9918 ;
9919 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
9920 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
9921 ; EQUIPMENT CORPORATION.
9922 ;
9923 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
9924 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
9925 ;
9926 ; VERSION 01-00
9927 ;
9928 ; KEVIN T. LEFEBVRE 3-APR-79
9929 ;
9930 ; MODIFIED BY:
9931 ;
9932 ;
9933 ; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED IN THE TRANSLATION
9934 ; OF THE CRAM/DRAM FILE TO OCTAL TYPE-OUT. IT WAS WRITTEN FOR TCO
9935 ; 4.2209.
9936 ;
9937 ;
9938 ; LOCAL DATA
9939 ;
9940 002174 .PSECT DATA,D
9941 002174 000000 JCOMM: .WORD 0
9942 002176 000000 SWITCH: .WORD 0
9943 002200 002224' HDTAB: .WORD TTJ
9944 002202 002220' .WORD TTP
9945 002204 002214' .WORD TTB
9946 002206 002210' .WORD TTA
9947 002210 040 101 072 TTA: .ASCIZ / A:/
002213 000
9948 002214 040 102 072 TTB: .ASCIZ / B:/
002217 000
9949 002220 040 120 072 TTP: .ASCIZ / P:/
002223 000
9950 002224 040 112 072 TTJ: .ASCIZ / J:/
002227 000
9951 .EVEN
9952 025512 .PSECT
KLITM -- CRAM/DRAM TRANSLATION MACRO M1113 03-APR-86 20:55 PAGE 208
$TRCRM -- TRANSLATE CRAM FILE ENTRY TO ASCII OCTAL
9954 .SBTTL $TRCRM -- TRANSLATE CRAM FILE ENTRY TO ASCII OCTAL
9955 ;+
9956 ; TRANSLATE THE BINARY WORDS IN BUFFER POINTED TO BY R1 INTO OCTAL
9957 ; DIGITS AND TYPE THEM IN CRAM FORMAT.
9958 ;
9959 ; FILE FORMAT: CRAM BIT LOCATIONS
9960 ;
9961 ; BIT BIT
9962 ; 16 0
9963 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
9964 ; !64! !66! !68! !70! !72! !74! !76! !78! ! WORD 1
9965 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
9966 ; !48!49!50!51!52!53!54!55!56!57!58!59!60! !62! ! WORD 2
9967 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
9968 ; !32!33!34!35!36!37!38!39!40!41!42!43!44!45!46!47! WORD 3
9969 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
9970 ; !16!17!18!19!20!21!22!23!24!25!26!27!28!29!30!31! WORD 4
9971 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
9972 ; ! 0! 1! 2! 3! 4! 5! 6! 7! 8! 9!10!11!12!13!14!15! WORD 5
9973 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
9974 ; ! ! ! ! ! ! ! ! ! ! !80!81!82!83!84!85! WORD 6
9975 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
9976 ;
9977 ; THIS ROUTINE WAS ADDED FOR THE EXPANDED CRAM/DRAM ERROR REPORT
9978 ; TCO 4.2209
9979 ;
9980 ; INPUTS:
9981 ; R1 -DATA BUFFER
9982 ;
9983 ; OUTPUTS:
9984 ; NONE
9985 ;-
9986
9987 025512 $TRCRM::
9988 025512 CALL R5,$RSAVE ; SAVE REGISTERS
025512 004537 024204' JSR R5,$RSAVE
9989 025516 010105 MOV R1,R5 ;BUFFER PTR
9990 025520 062705 000010 ADD #10,R5 ;POINT TO CRAM 0-15
9991 025524 012703 000005 MOV #5,R3 ;WORD COUNTER
9992 025530 011502 10$: MOV (R5),R2 ;GET VALUE
9993 025532 012701 000344' MOV #.TTOBF,R1 ;OUTPUT PTR
9994 025536 012704 000001 MOV #1,R4 ;BITS TO SHIFT
9995 025542 CALL TROCT ;GET OCTAL DIGIT
025542 004737 026074' JSR PC,TROCT
9996 025546 012700 000005 MOV #5,R0 ;NO. OCTAL DIGITS
9997 025552 012704 000003 MOV #3,R4 ;BITS PER DIGIT
9998 025556 20$: CALL TROCT ;GET DIGIT
025556 004737 026074' JSR PC,TROCT
9999 025562 077003 SOB R0,20$ ;DONE?
10000 025564 112721 000040 MOVB #' ,(R1)+ ;YES-- END WITH SPACE
10001 025570 012700 000344' MOV #.TTOBF,R0 ;OUTPUT PTR
10002 025574 012701 000007 MOV #7,R1 ;NO. OF CHARACTERS TO TYPE
10003 025600 CALL $TTWR ;TYPE THEM
025600 004737 027714' JSR PC,$TTWR
10004 025604 005745 TST -(R5) ;NEXT VALUE
10005 025606 077330 SOB R3,10$ ;DONE?
10006 025610 016502 000014 MOV 14(R5),R2 ;YES-- GET SPEC VALUE
KLITM -- CRAM/DRAM TRANSLATION MACRO M1113 03-APR-86 20:55 PAGE 208-1
$TRCRM -- TRANSLATE CRAM FILE ENTRY TO ASCII OCTAL
10007 025614 012700 000012 MOV #10.,R0 ;LEFT JUSTIFY IT
10008 025620 006302 30$: ASL R2 ;SHIFT IT
10009 025622 077002 SOB R0,30$ ;DONE?
10010 025624 012701 000344' MOV #.TTOBF,R1 ;YES-- OUTPUT BUFFER
10011 025630 CALL TROCT ;FIRST DIGIT
025630 004737 026074' JSR PC,TROCT
10012 025634 CALL TROCT ;SECOND DIGIT
025634 004737 026074' JSR PC,TROCT
10013 025640 012700 000344' MOV #.TTOBF,R0 ;OUTPUT BUFFER
10014 025644 012701 000002 MOV #2,R1 ;NO. OF DIGITS
10015 025650 CALL $TTWR ;TYPE THEM
025650 004737 027714' JSR PC,$TTWR
10016 025654 RETURN
025654 000207 RTS PC
KLITM -- CRAM/DRAM TRANSLATION MACRO M1113 03-APR-86 20:55 PAGE 209
$TRDRM -- TRANSLATE DRAM FILE ENTRY TO ASCII OCTAL
10018 .SBTTL $TRDRM -- TRANSLATE DRAM FILE ENTRY TO ASCII OCTAL
10019 ;+
10020 ; TRANSLATE THE BINARY WORDS IN THE BUFFER POINTED TO BY R1 INTO OCTAL
10021 ; DIGITS AND TYPE THEM IN DRAM FORMAT WITH THE EVEN ADDRESS FIRST.
10022 ;
10023 ; FILE FORMAT: DRAM BIT LOCATIONS
10024 ;
10025 ; BIT BIT
10026 ; 16 0
10027 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
10028 ; ! ! !A1!A2!A3!B1!B2!B3! ! !PE!PC!J7!J8!J9!J0! EVEN ADDRESS
10029 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
10030 ; ! ! !A1!A2!A3!B1!B2!B3! ! !PO!PC!J7!J8!J9!J0! ODD ADDRESS
10031 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
10032 ; ! ! ! ! ! ! ! ! ! ! ! ! !J1!J2!J3!J4! COMMON J
10033 ; +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
10034 ;
10035 ; NOTE: J0=J10 (BIT 10 OF J FIELD)
10036 ;
10037 ; THIS ROUTINE WAS ADDED FOR THE EXPANDED CRAM/DRAM ERROR REPORT
10038 ; TCO 4.2209
10039 ;
10040 ; INPUTS:
10041 ; R1- DATA BUFFER
10042 ;
10043 ; OUTPUTS:
10044 ; NONE
10045 ;-
10046
10047 025656 $TRDRM::
10048 025656 CALL R5,$RSAVE ;SAVE REGISTERS
025656 004537 024204' JSR R5,$RSAVE
10049 025662 010105 MOV R1,R5 ;DATA BUFFER POINTER
10050 025664 016100 000004 MOV 4(R1),R0 ;J COMMON VALUE
10051 025670 012702 000006 MOV #6,R2 ;PUT IN CORRECT POSITION
10052 025674 006300 10$: ASL R0 ;SHIFT IT
10053 025676 077202 SOB R2,10$ ;DONE?
10054 025700 010037 002174' MOV R0,JCOMM ;YES-- SAVE IT
10055 025704 005037 002176' CLR SWITCH ;ODD/EVEN ADDRESS SWITCH
10056 025710 012703 000006 20$: MOV #6,R3 ;FIELD COUNTER
10057 025714 012704 000003 MOV #3,R4 ;BIT SHIFT COUNTER
10058 025720 011502 MOV (R5),R2 ;VALUE
10059 025722 042702 000020 BIC #20,R2 ;CLEAR COMPUTED PARITY
10060 025726 006302 ASL R2 ;LEFT JUSTIFY
10061 025730 006302 ASL R2 ;LEFT JUSTIFY
10062 025732 016300 002200' 30$: MOV HDTAB(R3),R0 ;HEADER ADDRESS
10063 025736 CALL $TTDMS ;TYPE HEADER
025736 004737 027566' JSR PC,$TTDMS
10064 025742 005703 TST R3 ;LAST HEADER?
10065 025744 001414 BEQ 40$ ;YES-- TYPE J FIELD
10066 025746 012701 000344' MOV #.TTOBF,R1 ;NO-- OUTPUT PTR
10067 025752 CALL TROCT ;CONVERT FIELD TO ASCII OCTAL
025752 004737 026074' JSR PC,TROCT
10068 025756 012700 000344' MOV #.TTOBF,R0 ;OUTPUT PTR
10069 025762 012701 000001 MOV #1,R1 ;FIELD SIZE
10070 025766 CALL $TTWR ;TYPE FIELD VALUE
025766 004737 027714' JSR PC,$TTWR
KLITM -- CRAM/DRAM TRANSLATION MACRO M1113 03-APR-86 20:55 PAGE 209-1
$TRDRM -- TRANSLATE DRAM FILE ENTRY TO ASCII OCTAL
10071 025772 005743 TST -(R3) ;SUBTRACT 2 FROM HEADER POINTER
10072 025774 000756 BR 30$ ;NEXT HEADER
10073 025776 013702 002174' 40$: MOV JCOMM,R2 ;GET J COMMON VALUE
10074 026002 011500 MOV (R5),R0 ;GET J VALUE FOR ADDRESS
10075 026004 042700 177760 BIC #177760,R0 ;CLEAR JUNK
10076 026010 050002 BIS R0,R2 ;GET J FIELD VALUE
10077 026012 012700 000004 MOV #4,R0 ;SHIFT COUNT
10078 026016 006302 50$: ASL R2 ;LEFT JUSTIFY
10079 026020 077002 SOB R0,50$ ;DONE?
10080 026022 012700 000004 MOV #4,R0 ;YES-- J FIELD SIZE
10081 026026 012701 000344' MOV #.TTOBF,R1 ;OUTPUT PTR
10082 026032 60$: CALL TROCT ;GET DIGIT
026032 004737 026074' JSR PC,TROCT
10083 026036 077003 SOB R0,60$ ;DONE?
10084 026040 012700 000344' MOV #.TTOBF,R0 ;YES-- OUTPUT PTR
10085 026044 012701 000004 MOV #4,R1 ;J FIELD SIZE
10086 026050 CALL $TTWR ;TYPE FIELD
026050 004737 027714' JSR PC,$TTWR
10087 026054 005737 002176' TST SWITCH ;DONE?
10088 026060 001004 BNE 70$ ;YES-- EXIT
10089 026062 005237 002176' INC SWITCH ;FLIP SWITCH
10090 026066 005725 TST (R5)+ ;POINT TO NEXT VALUE
10091 026070 000707 BR 20$ ;TYPE OUT ODD ADDRESS FIELDS
10092 026072 70$: RETURN
026072 000207 RTS PC
KLITM -- CRAM/DRAM TRANSLATION MACRO M1113 03-APR-86 20:55 PAGE 210
TROCT -- TRANSLATE OCTAL VALUE TO ASCII DIGITS
10094 .SBTTL TROCT -- TRANSLATE OCTAL VALUE TO ASCII DIGITS
10095 ;+
10096 ; SHIFT OUT 1 OCTAL DIGIT FROM A LEFT JUSTIFIED VALUE, MAKE ASCII
10097 ; AND STORE IN BUFFER.
10098 ;
10099 ; INPUT:
10100 ; R2- VALUE
10101 ; R4- NO. OF BITS IN OCTAL DIGIT
10102 ; R1- BUFFER PTR
10103 ;
10104 ; OUTPUT:
10105 ; R1- UPDATED
10106 ;-
10107
10108 026074 TROCT: PUSH <R3,R4> ;SAVE R3,R4
026074 010346 MOV R3,-(SP)
026076 010446 MOV R4,-(SP)
10109 026100 005003 CLR R3 ;TEMP
10110 026102 006102 10$: ROL R2 ;SHIFT OUT BIT
10111 026104 006103 ROL R3 ;SHIFT IN BIT
10112 026106 077403 SOB R4,10$ ;DONE?
10113 026110 062703 000060 ADD #'0,R3 ;YES-- MAKE ASCII
10114 026114 110321 MOVB R3,(R1)+ ;STORE IN BUFFER
10115 026116 POP <R4,R3> ;RESTORE R3,R4
026116 012604 MOV (SP)+,R4
026120 012603 MOV (SP)+,R3
10116 026122 RETURN
026122 000207 RTS PC
KLITM -- CRAM/DRAM TRANSLATION MACRO M1113 03-APR-86 20:55 PAGE 211
TROCT -- TRANSLATE OCTAL VALUE TO ASCII DIGITS
10118
10119 .TITLE KLITN -- ASCII-KL WORD TRANSLATION
10120 026124 IDENT$ 5,0
.IDENT /005000/
10121 ;
10122 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
10123 ; ALL RIGHTS RESERVED.
10124 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
10125 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
10126 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
10127 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
10128 ;
10129 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
10130 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
10131 ; EQUIPMENT CORPORATION.
10132 ;
10133 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
10134 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
10135 ;
10136 ; VERSION 05-00
10137 ;
10138 ; ALAN D. PECKHAM 30-MAR-77
10139 ;
10140 ; MODIFIED BY:
10141 ;
10142 ; FUNCTION: THIS MODULE PROVIDES ROUTINES TO DISPLAY KL ADDRESSES
10143 ; AND WORDS.
10144 ;
10145 ; LOCAL DATA
10146 ;
10147 002230 .PSECT DATA,D
10148 002230 000000 000000 000000 DTNXP: .WORD 0,0,0 ; WORK AREA TO EXPAND 16K BANK NUMBER.
10149 002236 000000 000000 000000 DTNRB: .WORD 0,0,0 ; WORK AREA FOR ROLLING BITS AROUND.
10150 026124 .PSECT
KLITN -- ASCII-KL WORD TRANSLAT MACRO M1113 03-APR-86 20:55 PAGE 212
$TENAD -- DISPLAY KL ADDRESS/16K
10152 .SBTTL $TENAD -- DISPLAY KL ADDRESS/16K
10153 ;+
10154 ; INSERT THE 22 BIT ASCII REPRESENTATION OF THE ADDRESS/16K CONTAINED
10155 ; IN R0. THE PATTERN IS "XXXXXXXX" WHERE X IS AN OCTAL DIGIT.
10156 ;
10157 ; INPUTS:
10158 ; R5 - POINTER TO WHERE TO INSERT THE ASCII STRING.
10159 ; R0 - NUMBER OF 16K MEMORY BANK.
10160 ;
10161 ; OUTPUTS:
10162 ; R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE INSERTED
10163 ; CHARACTERS.
10164 ;-
10165
KLITN -- ASCII-KL WORD TRANSLAT MACRO M1113 03-APR-86 20:55 PAGE 214
$WRD22 -- DISPLAY 22 BIT KL WORD
10234 .SBTTL $WRD22 -- DISPLAY 22 BIT KL WORD
10235 ;+
10236 ; PATTERN: "XXXXXXXX"
10237 ;-
10238
10239 026124 $WDD22::
10240 026124 PUSH <R5,R4> ; SAVE R5 AND R4
026124 010546 MOV R5,-(SP)
026126 010446 MOV R4,-(SP)
10241 026130 012705 000344' MOV #.TTOBF,R5 ; OUTPUT BUFFER POINTER TO R5
10242 026134 010504 MOV R5,R4 ; COPY TO R4
10243 026136 CALL $WRD22 ; CONVERT THE NUMBER
026136 004737 026154' JSR PC,$WRD22
10244 026142 CALL $TTDWR ; OUTPUT THE NUMBER
026142 004737 027700' JSR PC,$TTDWR
10245 026146 POP <R4,R5> ; RESTORE REGISTERS
026146 012604 MOV (SP)+,R4
026150 012605 MOV (SP)+,R5
10246 026152 RETURN ; AND EXIT
026152 000207 RTS PC
10247
10248 026154 $WRD22::
10249 026154 PUSH <R2,R1,R0>
026154 010246 MOV R2,-(SP)
026156 010146 MOV R1,-(SP)
026160 010046 MOV R0,-(SP)
10250 026162 CALL LTNMV
026162 004737 026374' JSR PC,LTNMV
10251 026166 012702 000010 MOV #8.,R2
10252 026172 012700 000003 MOV #3,R0
10253 026176 042761 177700 000002 BIC #^C77,2(R1)
10254 026204 10$: CALL LTNROL
026204 004737 026420' JSR PC,LTNROL
10255 026210 116100 000003 MOVB 3(R1),R0
10256 026214 CALL LTNCHR
026214 004737 026434' JSR PC,LTNCHR
10257 026220 012700 000003 MOV #3,R0
10258 026224 077211 SOB R2,10$
10259 026226 POP <R0,R1,R2>
026226 012600 MOV (SP)+,R0
026230 012601 MOV (SP)+,R1
026232 012602 MOV (SP)+,R2
10260 026234 RETURN
026234 000207 RTS PC
KLITN -- ASCII-KL WORD TRANSLAT MACRO M1113 03-APR-86 20:55 PAGE 215
$WRD36 -- DISPLAY 36 BIT KL WORD
10262 .SBTTL $WRD36 -- DISPLAY 36 BIT KL WORD
10263 ;+
10264 ; PATTERN: "XXXXXX XXXXXX"
10265 ;-
10266
10267 026236 $WDD36::
10268 026236 PUSH <R5,R4> ; SAVE R5 AND R4
026236 010546 MOV R5,-(SP)
026240 010446 MOV R4,-(SP)
10269 026242 012705 000344' MOV #.TTOBF,R5 ; OUTPUT BUFFER POINTER TO R5
10270 026246 010504 MOV R5,R4 ; COPY TO R4
10271 026250 CALL $WRD36 ; CONVERT THE NUMBER
026250 004737 026266' JSR PC,$WRD36
10272 026254 CALL $TTDWR ; OUTPUT THE NUMBER
026254 004737 027700' JSR PC,$TTDWR
10273 026260 POP <R4,R5> ; RESTORE REGISTERS
026260 012604 MOV (SP)+,R4
026262 012605 MOV (SP)+,R5
10274 026264 RETURN ; AND EXIT
026264 000207 RTS PC
10275
10276 026266 $WRD36::
10277 026266 PUSH <R2,R1,R0>
026266 010246 MOV R2,-(SP)
026270 010146 MOV R1,-(SP)
026272 010046 MOV R0,-(SP)
10278 026274 CALL LTNMV
026274 004737 026374' JSR PC,LTNMV
10279 026300 012702 000006 MOV #6,R2
10280 026304 012700 000007 MOV #7,R0
10281 026310 10$: CALL LTNROL
026310 004737 026420' JSR PC,LTNROL
10282 026314 116100 000005 MOVB 5(R1),R0
10283 026320 CALL LTNCHR
026320 004737 026434' JSR PC,LTNCHR
10284 026324 012700 000003 MOV #3,R0
10285 026330 077211 SOB R2,10$
10286 026332 112725 000040 MOVB #' ,(R5)+
10287 026336 012702 000006 MOV #6,R2
10288 026342 20$: CALL LTNROL
026342 004737 026420' JSR PC,LTNROL
10289 026346 116100 000005 MOVB 5(R1),R0
10290 026352 CALL LTNCHR
026352 004737 026434' JSR PC,LTNCHR
10291 026356 012700 000003 MOV #3,R0
10292 026362 077211 SOB R2,20$
10293 026364 POP <R0,R1,R2>
026364 012600 MOV (SP)+,R0
026366 012601 MOV (SP)+,R1
026370 012602 MOV (SP)+,R2
10294 026372 RETURN
026372 000207 RTS PC
KLITN -- ASCII-KL WORD TRANSLAT MACRO M1113 03-APR-86 20:55 PAGE 216
$WRD36 -- DISPLAY 36 BIT KL WORD
10296 ;+
10297 ; INSERT 36 BIT WORD INTO WORD-ALIGNED WORK AREA.
10298 ;
10299 ; INPUTS:
10300 ; R0 - POINTER TO 36 BIT WORD TO COPY.
10301 ;
10302 ; OUTPUTS:
10303 ; R1 - POINTER TO COPY OF 36 BIT WORD POINTED TO BY R0.
10304 ; R0 AND R2 ARE DESTROYED.
10305 ;-
10306
10307 026374 012702 000006 LTNMV: MOV #6,R2 ; MOVE 6 BYTES
10308 026400 012701 002236' MOV #DTNRB,R1
10309 026404 112021 10$: MOVB (R0)+,(R1)+ ; MOVE DATA TO BE CONVERTED
10310 026406 077202 SOB R2,10$
10311 026410 042741 177760 BIC #^C17,-(R1) ; ONLY 36 BITS PLEASE
10312 026414 024141 CMP -(R1),-(R1)
10313 026416 RETURN
026416 000207 RTS PC
10314
10315 ;+
10316 ; SHIFT 3 WORDS AT R1 TO THE LEFT BY THE NUMBER OF BITS SPECIFED.
10317 ;
10318 ; INPUTS:
10319 ; R1 - POINTER TO THE THREE WORDS TO SHIFT.
10320 ; R0 - NUMBER OF TIMES TO SHIFT. MUST BE >0.
10321 ;
10322 ; OUTPUTS:
10323 ; R0 IS DESTROYED.
10324 ;-
10325
10326 026420 006321 LTNROL: ASL (R1)+
10327 026422 006121 ROL (R1)+
10328 026424 006111 ROL (R1)
10329 026426 024141 CMP -(R1),-(R1)
10330 026430 077005 SOB R0,LTNROL
10331 026432 RETURN
026432 000207 RTS PC
10332
10333 ;+
10334 ; INSERT 3 LEAST SIGNIFICANT BITS FROM R0 AS ASCII CHARACTER TO BYTE
10335 ; POINTED TO BY R5 AND INCREMENT R5.
10336 ;
10337 ; INPUTS:
10338 ; R5 - POINTER TO BYTE TO RECIEVE DIGIT.
10339 ; R0 - NUMBER TO PICK BOTTOM OCTAL DIGIT FROM.
10340 ;
10341 ; OUTPUTS:
10342 ; R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE INSERTED
10343 ; CHARACTER. R0 IS DESTROYED.
10344 ;-
10345
10346 026434 042700 177770 LTNCHR: BIC #^C7,R0
10347 026440 062700 000060 ADD #'0,R0
10348 026444 110025 MOVB R0,(R5)+
10349 026446 RETURN
026446 000207 RTS PC
KLITN -- ASCII-KL WORD TRANSLAT MACRO M1113 03-APR-86 20:55 PAGE 217
$WRD36 -- DISPLAY 36 BIT KL WORD
10351
10352
10353 .TITLE KLITO -- ASCII-OCTAL/BINARY TRANSLATION
10354 026450 IDENT$ 5,2 ; ADP01
.IDENT /005020/
10355 ;
10356 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
10357 ; ALL RIGHTS RESERVED.
10358 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
10359 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
10360 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
10361 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
10362 ;
10363 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
10364 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
10365 ; EQUIPMENT CORPORATION.
10366 ;
10367 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
10368 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
10369 ;
10370 ; VERSION 05-02 ; ADP01
10371 ;
10372 ; ALAN D. PECKHAM 30-MAR-77
10373 ;
10374 ; MODIFIED BY:
10375 ;
10376 ;
10377 ; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED IN THE TRANSLATION
10378 ; TO/FROM THE ASCII REPRESENTATION OF OCTAL NUMBERS.
10379 ;
10380 ;
KLITO -- ASCII-OCTAL/BINARY TRA MACRO M1113 03-APR-86 20:55 PAGE 218
$TRB2O -- TRANSLATE BINARY WORD AS OCTAL ASCII
10382 .SBTTL $TRB2O -- TRANSLATE BINARY WORD AS OCTAL ASCII
10383 ;+
10384 ; TRANSLATE THE UNSIGNED BINARY NUMBER IN R0 INTO AND ASCII STRING
10385 ; AND PUT IT INTO THE AREA POINTED TO BY R5. THE STRING IS VARIBLE
10386 ; IN LENGTH WITH LEADING ZERO SUPPRESSION AND A MAXIMUM LENGTH OF
10387 ; 6. R5 IS INCREMENTED PAST THE INSERTED STRING.
10388 ;
10389 ; INPUTS:
10390 ; R5 - POINTER TO AREA TO RECIEVE ASCII CHARACTERS.
10391 ; R0 - BINARY NUMBER TO CONVERT.
10392 ;
10393 ; OUTPUTS:
10394 ; THE ASCII STRING IS PLACED IN THE BYTES POINTED TO BY R5 AND
10395 ; R5 IS UPDATED TO POINT AT THE BYTE FOLLOWING THE INSERTED
10396 ; STRING. R0 IS DESTROYED.
10397 ;-
10398
10399 026450 $TDB2O::
10400 026450 PUSH <R4,R5> ; SAVE R4 AND R5
026450 010446 MOV R4,-(SP)
026452 010546 MOV R5,-(SP)
10401 026454 012705 000344' MOV #.TTOBF,R5 ; POINT TO OUTPUT BUFFER
10402 026460 010504 MOV R5,R4 ; COPY TO R4
10403 026462 CALL $TRB2O ; CONVERT TO ASCII STRING
026462 004737 026500' JSR PC,$TRB2O
10404 026466 $TDB2C::
10405 026466 CALL $TTDWR ; OUTPUT THE LINE
026466 004737 027700' JSR PC,$TTDWR
10406 026472 POP <R5,R4> ; RESTORE REGISTERS
026472 012605 MOV (SP)+,R5
026474 012604 MOV (SP)+,R4
10407 026476 RETURN ; AND EXIT
026476 000207 RTS PC
10408
10409 026500 $TRB2O::
10410 026500 PUSH <R2,R1> ; SAVE REGISTERS AND
026500 010246 MOV R2,-(SP)
026502 010146 MOV R1,-(SP)
10411 026504 012702 026526' MOV #20$,R2 ; SET SIGNIFICANCE CHECKER.
10412 026510 012701 002200 MOV #2200,R1 ; GET INITIAL BIT.
10413 026514 10$:
10414 026514 006100 ROL R0
10415 026516 106101 ROLB R1 ; ROLL BITS IN.
10416 026520 103375 BCC 10$ ; ANY MORE ?
10417 026522 001003 BNE 30$ ; NON-ZERO BYTE IS SIGNIFICANT.
10418 026524 000112 JMP (R2) ; HAVE WE MET SIGNIFICANCE ?
10419 ;
10420 026526 20$:
10421 026526 005701 TST R1 ; NO - LAST DIGIT ?
10422 026530 100004 BPL 40$ ; NO- IGNORE.
10423 026532 30$:
10424 026532 010702 MOV PC,R2 ; SIGNIFICANCE HAS BEEN REACHED.
10425 026534 152701 000060 BISB #'0,R1 ; MAKE IT A DIGIT
10426 026540 110125 MOVB R1,(R5)+ ; AND INSERT.
10427 026542 40$:
10428 026542 105001 CLRB R1 ; CLEAR OLD DIGIT
10429 026544 152701 000020 BISB #20,R1 ; AND SET 3-BIT INDICATOR.
KLITO -- ASCII-OCTAL/BINARY TRA MACRO M1113 03-APR-86 20:55 PAGE 218-1
$TRB2O -- TRANSLATE BINARY WORD AS OCTAL ASCII
10430 026550 006301 ASL R1 ; FINISHED WITH WORD ?
10431 026552 103360 BCC 10$ ; NO - CONTINUE, OTHERWISE
10432 026554 POP <R1,R2>
026554 012601 MOV (SP)+,R1
026556 012602 MOV (SP)+,R2
10433 026560 RETURN ; WE ARE FINISHED.
026560 000207 RTS PC
KLITO -- ASCII-OCTAL/BINARY TRA MACRO M1113 03-APR-86 20:55 PAGE 219
$TRO2B -- TRANSLATE ASCII OCTAL NUMBER TO BINARY WORD
10435 .SBTTL $TRO2B -- TRANSLATE ASCII OCTAL NUMBER TO BINARY WORD
10436 ;+
10437 ; THIS ROUTINE TRANSLATES AN ASCII OCTAL NUMBER POINTED
10438 ; TO BY R5 INTO ITS BINARY EQUIVALENT IN R0. R5 IS INCRMENTED
10439 ; PAST THE NUMBER, AND CARRY IS RETURNED ON OVERFLOW.
10440 ;
10441 ; INPUTS:
10442 ; R5 - POINTER TO ASCII STRING TO EXTRACT OCTAL NUMBER FROM.
10443 ;
10444 ; OUTPUTS:
10445 ; R0 - BINARY NUMBER EXTRACTED.
10446 ; R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS USED
10447 ; IN THE TRANSLATION. THE CARRY IS SET ON OVERFLOW.
10448 ;-
10449
10459
10460 026562 $TRO2B::
10461 026562 PUSH R2
026562 010246 MOV R2,-(SP)
10462 026564 005000 CLR R0 ; INITIALIZE RESULT.
10463 026566 112502 10$: MOVB (R5)+,R2 ; GET NEXT CHARACTER ; ADP01
10464 026570 162702 000060 SUB #'0,R2 ; AND MAKE BINARY
10465 026574 100413 BMI 20$ ; WHILE CHECKING
10466 026576 022702 000007 CMP #7,R2 ; IF OCTAL NUMERIC.
10467 026602 103410 BLO 20$ ; WE ARE FINISHED IF NOT.
10468 026604 032700 160000 BIT #160000,R0 ; IF RESULT WILL OVERFLOW
10469 026610 001006 BNE 30$ ; THEN SIGNAL ERROR
10470 026612 006300 ASL R0 ; OTHERWISE
10471 026614 006300 ASL R0 ; MULTIPLY BY 8
10472 026616 006300 ASL R0 ; AND
10473 026620 060200 ADD R2,R0 ; ADD NEW DIGIT.
10474 026622 000761 BR 10$ ; GO BACK FOR MORE.
10475 026624 005727 20$: TST (PC)+ ; PROPER EXIT - CLEAR CARRY.
10476 026626 000261 30$: SEC ; OVERFLOW - SET CARRY.
10477 026630 005305 DEC R5 ; BACK UP OVER ; ADP01
10478 026632 POP R2 ; LAST CHARACTER CHECKED
026632 012602 MOV (SP)+,R2
10479 026634 RETURN ; AND EXIT.
026634 000207 RTS PC
KLITO -- ASCII-OCTAL/BINARY TRA MACRO M1113 03-APR-86 20:55 PAGE 220
$TRO2B -- TRANSLATE ASCII OCTAL NUMBER TO BINARY WORD
10481
10482
10483 .TITLE KLITR -- ASCII-RAD50 CONVERSION
10484 026636 IDENT$ 5,0
.IDENT /005000/
10485 ;
10486 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
10487 ; ALL RIGHTS RESERVED.
10488 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
10489 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
10490 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
10491 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
10492 ;
10493 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
10494 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
10495 ; EQUIPMENT CORPORATION.
10496 ;
10497 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
10498 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
10499 ;
10500 ; VERSION 05-00
10501 ;
10502 ; ALAN D. PECKHAM 30-MAR-77
10503 ;
10504 ; MODIFIED BY:
10505 ;
10506 ; FUNCTION: THIS MODULE CONTAINS ROUTINES INVOLVED WITH TRANSLATION
10507 ; OF RAD50 WORDS TO/FROM ASCII STRINGS.
10508 ;
10509 026636 .PSECT
KLITR -- ASCII-RAD50 CONVERSION MACRO M1113 03-APR-86 20:55 PAGE 221
$TRR2B -- TRANSLATE ASCII TO RAD50 WORD
10511 .SBTTL $TRR2B -- TRANSLATE ASCII TO RAD50 WORD
10512 ;+
10513 ; TRANSLATE 3 OR LESS CHARACTERS POINTED TO BY R5 INTO A RAD50 WORD
10514 ; AND PLACE IT IN R0. IF A CHARACTER IS ENCOUNTERED DURING TRANSLATION
10515 ; WHICH IS NOT ALPHANUMERIC, SPACES ARE SUBSTITUTED FOR THE REMAINING
10516 ; CHARACTERS OF THE THREE. R5 IS INCREMENTED PAST ANY CHARACTERS
10517 ; WHICH WERE ACCEPTED.
10518 ; **NOTE** THIS ROUTINE ONLY TRANSLATES ALPHANUMERIC CHARACTERS, NOT
10519 ; THE FULL RAD50 CHARACTER SET.
10520 ;
10521 ; INPUTS:
10522 ; R5 - POINTER TO CHARACTERS TO BE USED IN TRANSLATION.
10523 ;
10524 ; OUTPUTS:
10525 ; R0 - RAD50 WORD CONTAINING CHARACTERS TRANSLATED.
10526 ; R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS
10527 ; INSERTED INTO THE RAD50 WORD.
10528 ;-
10529
10530 026636 $TRR2B::PUSH <R2,R1> ; SAVE REGISTERS AND
026636 010246 MOV R2,-(SP)
026640 010146 MOV R1,-(SP)
10531 026642 005000 CLR R0 ; INITIALIZE RETURN VALUE.
10532 026644 012702 000003 MOV #3.,R2 ; GET 3 CHARACTERS.
10533 026650 112501 10$: MOVB (R5)+,R1 ; PICK UP THE NEXT
10534 026652 162701 000100 SUB #100,R1 ; AND CHECK FOR ALPHAMERIC.
10535 026656 003404 BLE 20$
10536 026660 022701 000032 CMP #32,R1 ; WITHIN A-Z ?
10537 026664 002014 BGE 50$ ; YES, STICK IT IN.
10538 026666 000406 BR 30$
10539 026670 062701 000020 20$: ADD #<100-60>,R1 ; CHECK FOR NUMERIC.
10540 026674 002403 BLT 30$
10541 026676 022701 000011 CMP #9.,R1 ; WITHIN 0-9 ?
10542 026702 002003 BGE 40$
10543 026704 005305 30$: DEC R5 ; INVALID CHARACTER, IGNORE.
10544 026706 012701 177742 MOV #-36,R1 ; INSERT A NULL.
10545 026712 062701 000036 40$: ADD #36,R1 ; INCREASE FOR NUMERIC.
10546 026716 006300 50$: ASL R0 ; MULTIPLY BY 50
10547 026720 006300 ASL R0
10548 026722 006300 ASL R0
10549 026724 060001 ADD R0,R1 ; WHILE ADDING IN
10550 026726 006300 ASL R0
10551 026730 006300 ASL R0
10552 026732 060100 ADD R1,R0 ; THE NEW CHARACTER.
10553 026734 077233 SOB R2,10$ ; DO FOR 3 CHARACTERS
10554 026736 POP <R1,R2> ; AND...
026736 012601 MOV (SP)+,R1
026740 012602 MOV (SP)+,R2
10555 026742 RETURN
026742 000207 RTS PC
KLITR -- ASCII-RAD50 CONVERSION MACRO M1113 03-APR-86 20:55 PAGE 222
$TRB2R -- TRANSLATE RAD50 WORD TO ASCII
10557 .SBTTL $TRB2R -- TRANSLATE RAD50 WORD TO ASCII
10558 ;+
10559 ; TRANSLATE THE RAD50 WORD IN R0 TO AN ASCIZ STRING AND INSERT THE
10560 ; STRING AT THE AREA POINTED TO BY R5. INCREMENT R5 TO POINT PAST
10561 ; THE INSERTED STRING. THE INVALID RAD50 CODE IS REPRESENTED BY
10562 ; THE UNDERLINE CHARACTER. THE BLANK CHARACTER IS NOT INSERTED.
10563 ;
10564 ; INPUTS:
10565 ; R5 - POINTER TO BYTES TO RECIEVE ASCII STRING.
10566 ; R0 - RAD50 WORD FROM WHICH TO EXTRACT THE CHARACTERS.
10567 ;
10568 ; OUTPUTS:
10569 ; R5 IS UPDATED TO POINT TO THE BYTE FOLLOWING THE CHARACTERS
10570 ; INSERTED.
10571 ;-
10572
10573 026744 $TRB2R::PUSH <R2,R1,R0>
026744 010246 MOV R2,-(SP)
026746 010146 MOV R1,-(SP)
026750 010046 MOV R0,-(SP)
10574 026752 012702 000002 MOV #2.,R2 ; I DON'T UNDERSTAND THIS ROUTINE.
10575 026756 10$: PUSH R0 ; BUT IT DEFINITELY WORKS.
026756 010046 MOV R0,-(SP)
10576 026760 005000 CLR R0
10577 026762 011601 20$: MOV (SP),R1
10578 026764 152701 000002 BISB #2,R1
10579 026770 010146 MOV R1,-(SP)
10580 026772 006016 ROR (SP)
10581 026774 006216 ASR (SP)
10582 026776 162601 SUB (SP)+,R1
10583 027000 042701 000037 BIC #37,R1
10584 027004 160116 SUB R1,(SP)
10585 027006 006001 ROR R1
10586 027010 006001 ROR R1
10587 027012 160116 SUB R1,(SP)
10588 027014 060100 ADD R1,R0
10589 027016 021627 000047 CMP (SP),#47
10590 027022 101357 BHI 20$ ; NOTE: CARRY IS CLEAR ON BRANCH.
10591 027024 006200 ASR R0
10592 027026 006200 ASR R0
10593 027030 006200 ASR R0
10594 027032 077227 SOB R2,10$
10595 027034 012702 000003 MOV #3.,R2
10596 027040 022700 000047 CMP #47,R0
10597 027044 103405 BLO 40$
10598 027046 105700 TSTB R0
10599 027050 001422 30$: BEQ 90$
10600 027052 122700 000035 CMPB #35,R0
10601 027056 001002 BNE 50$
10602 027060 012700 000115 40$: MOV #115,R0
10603 027064 122700 000033 50$: CMPB #33,R0
10604 027070 001403 BEQ 60$
10605 027072 103404 BLO 70$
10606 027074 062700 000040 ADD #40,R0
10607 027100 062700 000016 60$: ADD #16,R0
10608 027104 062700 000011 70$: ADD #11,R0
10609 027110 062700 000011 80$: ADD #11,R0
KLITR -- ASCII-RAD50 CONVERSION MACRO M1113 03-APR-86 20:55 PAGE 222-1
$TRB2R -- TRANSLATE RAD50 WORD TO ASCII
10610 027114 110025 MOVB R0,(R5)+
10611 027116 90$: POP R0
027116 012600 MOV (SP)+,R0
10612 027120 077225 SOB R2,30$
10613 027122 POP <R1,R2>
027122 012601 MOV (SP)+,R1
027124 012602 MOV (SP)+,R2
10614 027126 RETURN
027126 000207 RTS PC
KLITR -- ASCII-RAD50 CONVERSION MACRO M1113 03-APR-86 20:55 PAGE 223
$TRB2R -- TRANSLATE RAD50 WORD TO ASCII
10616
10617 .TITLE KLITT -- TTY I/O FUNCTIONS
10618 027130 IDENT$ 5,1
.IDENT /005010/
10619 ;
10620 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
10621 ; ALL RIGHTS RESERVED.
10622 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
10623 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
10624 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
10625 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
10626 ;
10627 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
10628 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
10629 ; EQUIPMENT CORPORATION.
10630 ;
10631 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
10632 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
10633 ;
10634 ; VERSION 05-00
10635 ;
10636 ; ALAN D. PECKHAM 15-APR-77
10637 ;
10638 ; MODIFIED BY:
10639 ;
10640 ; FUNCTION: ALL ROUTINES ACCESS THE CONSOLE THROUGH THIS MODULE
10641 ; TO PROVIDE A UNIFORM INTERFACE TO THE OPERATOR.
10642 ;
10643 ; EQUATED SYMBOLS
10644 ;
10645 000015 CR = 15 ; CARRIAGE RETURN CHARACTER.
10646 000012 LF = 12 ; LINE FEED CHARACTER.
10647 ;
10648 ; LOCAL MACROS
10649 ;
10650 .MCALL QIOW$,WTSE$S,EXIT$S
10651 ;
10652 ; LOCAL DATA
10653 ;
10654 002244 .PSECT DATA,D
10655 002244 DTTRLB: QIOW$ IO.RLB,TTILUN,1,,DTTSTA,,<.TTIBF,T.TIL>
002244 003 010 .BYTE 3,$$$ARG
002246 000000G .WORD IO.RLB
002250 000001 .WORD TTILUN
002252 001 000 .BYTE 1,
002254 002336' .WORD DTTSTA
002256 000000 .WORD
002260 000304' .WORD .TTIBF
002262 000040 .WORD T.TIL
10656 002264 DTTWLB: QIOW$ IO.WLB,TTOLUN,1,,DTTSTA,,<0,0,0>
002264 003 011 .BYTE 3,$$$ARG
002266 000000G .WORD IO.WLB
002270 000002 .WORD TTOLUN
002272 001 000 .BYTE 1,
002274 002336' .WORD DTTSTA
002276 000000 .WORD
002300 000000 .WORD 0
KLITT -- TTY I/O FUNCTIONS MACRO M1113 03-APR-86 20:55 PAGE 223-1
$TRB2R -- TRANSLATE RAD50 WORD TO ASCII
002302 000000 .WORD 0
002304 000000 .WORD 0
10657 002306 ATLST: QIOW$ IO.ATT,LPOLUN,1,0,0,0
002306 003 006 .BYTE 3,$$$ARG
002310 000000G .WORD IO.ATT
002312 000003 .WORD LPOLUN
002314 001 000 .BYTE 1,0
002316 000000 .WORD 0
002320 000000 .WORD 0
10658 002322 DTLST: QIOW$ IO.DET,LPOLUN,1,0,0,0
002322 003 006 .BYTE 3,$$$ARG
002324 000000G .WORD IO.DET
002326 000003 .WORD LPOLUN
002330 001 000 .BYTE 1,0
002332 000000 .WORD 0
002334 000000 .WORD 0
10659 002336 000000 000000 DTTSTA: .WORD 0,0
10660 002342 000000 000000 000000 TMPLOG: .WORD 0,0,0
10662 002350 000000 SAVMSG: .WORD 0
10663 002352 000000 SAVLEN: .WORD 0
10665 006002 .PSECT TEXT,D
10666 006002 040 TTSPC: .ASCII / /
10667 006003 011 TTTAB: .ASCII / /
10668 006004 057 TTSLS: .ASCII %/%
10669 006005 007 TTBEL: .BYTE 7
10670 006006 015 012 TTTNLN: .ASCII <CR><LF>
10671 006010 113 114 111 TTTPRP: .ASCII /KLI>/
006013 076
10672 006014 113 114 111 TTTPRE: .ASCIZ /KLI -- /
006017 040 055 055
006022 040 000
10673 .EVEN
10674 027130 .PSECT
KLITT -- TTY I/O FUNCTIONS MACRO M1113 03-APR-86 20:55 PAGE 224
$TTRD -- READ A LINE FROM THE CONSOLE TTY
10676 .SBTTL $TTRD -- READ A LINE FROM THE CONSOLE TTY
10677 ;+
10678 ; READ A LINE INTO ".TTIBF". IF ESCAPE IS RECIEVED THE TREAT AS ERROR
10679 ; TO RESTART DIALOG. IF OTHER THAN <CR> TERMINATES THE LINE, THEN
10680 ; DO A FAST EXIT.
10682 ; IF 'T+' OR 'T-' IS RECIEVED THEN TURN ON OR OFF TRACKING RESPECTIVELY.
10684 ;
10685 ; NO INPUTS
10686 ;
10687 ; OUTPUTS:
10688 ; .TTIBF - CONTAINS THE CHARACTERS READ IN TERMINATED BY A ZERO BYTE.
10689 ;-
10690
10691 027130 004537 024204' $TTRD:: JSR R5,$RSAVE
10693 027134 013737 002300' 002350' MOV DTTWLB+Q.IOPL+0,SAVMSG ; [5.1005]SAVE QUESTION MESSAGE
10694 027142 013737 002302' 002352' MOV DTTWLB+Q.IOPL+2,SAVLEN ; [5.1005]SAVE QUESTION LENGTH
10696 027150 012737 006010' 002300' 10$: MOV #TTTPRP,DTTWLB+Q.IOPL+0 ; PROMPT WITH KLI>
10697 027156 012737 000004 002302' MOV #4,DTTWLB+Q.IOPL+2
10698 027164 DIR$ #DTTWLB
027164 012746 002264' MOV #DTTWLB,-(SP)
027170 104375 EMT 375
10700 027172 CALL $ECHO1 ; [5.1005]ECHO CTY TO LP
027172 004737 030020' JSR PC,$ECHO1
10702 027176 DIR$ #DTTRLB ; PERFORM GIVEN FUNCTION
027176 012746 002244' MOV #DTTRLB,-(SP)
027202 104375 EMT 375
10703 027204 013701 002340' MOV DTTSTA+2,R1 ; SAVE LINE LENGTH
10704 027210 013700 002336' MOV DTTSTA,R0 ; AND STATUS.
10705 027214 100003 BPL 20$
10706 027216 122700 000000G CMPB #IE.EOF,R0 ; IF CONTROL-Z
10707 027222 001415 BEQ 30$ ; CRLF IS AUTOMATIC, OTHERWISE
10708 027224 20$:
10710 027224 CALL $ECHO ; [5.1005]ECHO INPUT TO LP
027224 004737 030004' JSR PC,$ECHO
10712 027230 012737 006006' 002300' MOV #TTTNLN,DTTWLB+Q.IOPL+0 ; PRINT A CRLF
10713 027236 112737 000002 002302' MOVB #2,DTTWLB+Q.IOPL+2
10714 027244 DIR$ #DTTWLB
027244 012746 002264' MOV #DTTWLB,-(SP)
027250 104375 EMT 375
10716 027252 CALL $ECHO1 ; [5.1005]ECHO CTY TO LP
027252 004737 030020' JSR PC,$ECHO1
10718 027256 022700 000000G 30$: CMP #IS.ESC,R0 ; DID HE TYPE AN ESCAPE ?
10719 027262 001501 BEQ 60$ ; RESTART DIALOG.
10720 027264 022700 000000G CMP #IS.CR,R0 ; DID HE END WITH A CR ?
10721 027270 001100 BNE 70$ ; NO, EXIT.
10722 027272 105061 000304' CLRB .TTIBF(R1) ; WITH A NULL BYTE.
10724 027276 022737 026524 000304' CMP #"T-,.TTIBF ; TURN OFF TRACK ?
10725 027304 001422 BEQ 50$ ; YES, GO DO IT.
10726 027306 022737 025524 000304' CMP #"T+,.TTIBF ; TURN ON TRACK ?
10727 027314 001411 BEQ 40$ ; YES, GO DO IT.
10728 027316 022737 025514 000304' CMP #"L+,.TTIBF ; [5.1005]TURN ON LP ?
10729 027324 001415 BEQ 80$ ; [5.1005]YES, GO DO IT.
10730 027326 022737 026514 000304' CMP #"L-,.TTIBF ; [5.1005]TURN OFF LP ?
10731 027334 001433 BEQ 90$ ; [5.1005]YES, GO DO IT.
10733 027336 RETURN
027336 000207 RTS PC
10735 027340 105237 000037' 40$: INCB .TRKTT ; TURN ON TT
KLITT -- TTY I/O FUNCTIONS MACRO M1113 03-APR-86 20:55 PAGE 224-1
$TTRD -- READ A LINE FROM THE CONSOLE TTY
10736 027344 105237 000036' 45$: INCB .TRKSW ; [5.1005]TURN ON TRACK AND
10737 027350 000677 BR 10$ ; GET ANOTHER LINE.
10738 027352 105037 000037' 50$: CLRB .TRKTT ; TURN OFF TRACK AND
10739 027356 000432 BR 95$ ; [5.1005]CHECK FOR CLEARING .TRKSW
10740 027360 105737 000040' 80$: TSTB .TRKLP ; [5.1005]IS LP ON?
10741 027364 001271 BNE 10$ ; [5.1005]YES, GET ANOTHER LINE
10742 027366 105237 000040' INCB .TRKLP ; [5.1005]TURN ON LP
10743 027372 DIR$ #ATLST ; [5.1005]ATTACH LP
027372 012746 002306' MOV #ATLST,-(SP)
027376 104375 EMT 375
10744 027400 103411 BCS 90$ ; [5.1005]ERROR, CLEAR LP TRACK
10745 027402 013737 002350' 002300' MOV SAVMSG,DTTWLB+Q.IOPL+0 ; [5.1005]QUESTION MESSAGE
10746 027410 013737 002352' 002302' MOV SAVLEN,DTTWLB+Q.IOPL+2 ; [5.1005]QUESTION LENGTH
10747 027416 CALL $ECHO1 ; [5.1005]ECHO MESSAGE
027416 004737 030020' JSR PC,$ECHO1
10748 027422 000750 BR 45$ ; TURN ON TRACK
10749 027424 105737 000040' 90$: TSTB .TRKLP ; [5.1005]IS LP OFF?
10750 027430 001647 BEQ 10$ ; [5.1005]YES, GET ANOTHER LINE
10751 027432 105037 000040' CLRB .TRKLP ; [5.1005]TURN OFF LP
10752 027436 DIR$ #DTLST ; [5.1005]DETATCH LP
027436 012746 002322' MOV #DTLST,-(SP)
027442 104375 EMT 375
10753 027444 105737 000040' 95$: TSTB .TRKLP ; [5.1005]LP ON ?
10754 027450 001237 BNE 10$ ; [5.1005]YES, GET ANOTHER LINE
10755 027452 105737 000037' TSTB .TRKTT ; [5.1005]TT ON ?
10756 027456 001234 BNE 10$ ; [5.1005]YES, GET ANOTHER LINE
10757 027460 105037 000036' CLRB .TRKSW ; [5.1005]NOTHING ON, CLEAR TRACK
10758 027464 000631 BR 10$ ; [5.1005]GET ANOTHER LINE
10760 027466 000137 024012' 60$: JMP $ERROR ; AND RESTART DIALOG.
10761 027472 70$: EXIT$S ; WE WANT OUT !
027472 012746 MOV (PC)+,-(SP)
027474 063 001 .BYTE 51.,1
027476 104375 EMT 375
KLITT -- TTY I/O FUNCTIONS MACRO M1113 03-APR-86 20:55 PAGE 225
$TTRD -- READ A LINE FROM THE CONSOLE TTY
10763 .ENABL LSB
10764
10765 027500 $TTSPC::
10766 027500 PUSH R0 ; SAVE R0
027500 010046 MOV R0,-(SP)
10767 027502 012700 006002' MOV #TTSPC,R0 ; <SPACE> TO R0
10768 027506 000417 BR 10$ ; PRINT AND RETURN
10769 ;
10770 027510 $TTBEL::
10771 027510 PUSH R0 ; SAVE R0
027510 010046 MOV R0,-(SP)
10772 027512 012700 006005' MOV #TTBEL,R0 ; <BELL> TO R0
10773 027516 000413 BR 10$ ; PRINT AND RETURN
10774 ;
10782 027520 $TTTAB::
10783 027520 PUSH R0 ; SAVE R0
027520 010046 MOV R0,-(SP)
10784 027522 012700 006003' MOV #TTTAB,R0 ; <TAB> TO R0
10785 027526 000407 BR 10$ ; PRINT AND RETURN
10786 ;
10787 027530 $TCRLF::
10788 027530 PUSH <R0,R1> ; SAVE R0 AND R1
027530 010046 MOV R0,-(SP)
027532 010146 MOV R1,-(SP)
10789 027534 012700 006006' MOV #TTTNLN,R0 ; <CR><LF> TO R0
10790 027540 012701 000002 MOV #2,R1 ; LENGTH TO R1
10791 027544 000403 BR 20$ ; PRINT AND RETURN
10792 ;
10793 027546 10$:
10794 027546 PUSH R1 ; SAVE R1
027546 010146 MOV R1,-(SP)
10795 027550 012701 000001 MOV #1,R1 ; LENGTH TO R1
10796 027554 20$:
10797 027554 CALL $TTWR ; PRINT THE CHARACTER(S)
027554 004737 027714' JSR PC,$TTWR
10798 027560 POP <R1,R0> ; RESTORE REGISTERS
027560 012601 MOV (SP)+,R1
027562 012600 MOV (SP)+,R0
10799 027564 RETURN ; EXIT
027564 000207 RTS PC
10800
10801 .DSABL LSB
KLITT -- TTY I/O FUNCTIONS MACRO M1113 03-APR-86 20:55 PAGE 226
$TTMSG -- WRITE A MESSAGE TO THE CONSOLE TTY
10803 .SBTTL $TTMSG -- WRITE A MESSAGE TO THE CONSOLE TTY
10804 ;+
10805 ; COPY A MESSAGE INTO THE OUTPUT BUFFER WITH THE 'KLI -- ' PREFIX
10806 ; AND WRITE IT TO THE CONSOLE.
10807 ;
10808 ; "$TTDMS" WILL STRIP THE DIAGNOSTIC CARRIAGE CONTROL CHARACTERS FROM
10809 ; A TEXT STRING IN ORDER TO TRANSLATE THE MESSAGE.
10810 ;
10811 ;
10812 ; INPUTS:
10813 ; R0 - ADDRESS OF ASCIZ MESSAGE.
10814 ;
10815 ; NO OUTPUTS
10816 ;-
10817
10818 027566 $TTDMS::
10819 027566 CALL R5,$RSAVE ; SAVE THE REGISTERS
027566 004537 024204' JSR R5,$RSAVE
10820 027572 012705 000344' MOV #.TTOBF,R5 ; OUTPUT BUFFER POINTER TO R5
10821 027576 010504 MOV R5,R4 ; COPY TO R4
10822 027600 10$:
10823 027600 112001 MOVB (R0)+,R1 ; GET A BYTE FOM THE INPUT STRING
10824 027602 001436 BEQ $TTDWR ; DONE IF <NULL>
10825 027604 122701 000137 CMPB #'_,R1 ; IS IT AN <UNDERSCORE>??
10826 027610 001773 BEQ 10$ ; YES -- THROW IT AWAY
10827 027612 122701 000134 CMPB #'\,R1 ; NO -- IS IS A <BACKSLASH>??
10828 027616 001004 BNE 20$ ; NO -- GO ON
10829 027620 112725 000015 MOVB #15,(R5)+ ; YES -- SUBSTITUTE A <CR>
10830 027624 012701 000012 MOV #12,R1 ; AND A <LF> FOR IT
10831 027630 20$:
10832 027630 110125 MOVB R1,(R5)+ ; LOAD THIS CHARACTER
10833 027632 000762 BR 10$ ; AND GET THE NEXT
10834 ;
10835 027634 $TTMSG::
10836 027634 004537 024204' JSR R5,$RSAVE ;THIS ROUTINE IS SPECIAL
10837 027640 005002 CLR R2 ; MARK NORMAL CALL
10838 027642 012705 000344' MOV #.TTOBF,R5 ;FOR THE MESSAGE MACROS.
10839 027646 010504 MOV R5,R4
10840 027650 010003 MOV R0,R3 ;(SAVE MESSAGE ADDRESS)
10841 027652 012700 006014' MOV #TTTPRE,R0 ;INSERT KLI IDENTIFIER
10842 027656 CALL $ASCIZ ; 'KLI -- '
027656 004737 024240' JSR PC,$ASCIZ
10843 027662 010300 MOV R3,R0 ;AND THEN MESSAGE.
10844 027664 CALL $ASCIZ
027664 004737 024240' JSR PC,$ASCIZ
10845 027670 112725 000015 MOVB #CR,(R5)+ ;FOLLOW BY CRLF.
10846 027674 112725 000012 MOVB #LF,(R5)+
10847 027700 $TTDWR::
10848 027700 160405 SUB R4,R5 ;COMPUTE LENGTH
10849 027702 010437 002300' MOV R4,DTTWLB+Q.IOPL+0 ;AND PRINT.
10850 027706 010537 002302' MOV R5,DTTWLB+Q.IOPL+2
10851 027712 000404 BR LTTDIR ;DO THE WRITE.
10852 ;
KLITT -- TTY I/O FUNCTIONS MACRO M1113 03-APR-86 20:55 PAGE 227
$TTWR -- WRITE A LINE TO THE CONSOLE TTY
10854 .SBTTL $TTWR -- WRITE A LINE TO THE CONSOLE TTY
10855 ;+
10856 ; WRITE OUT AN ASCII STRING TO THE CONSOLE.
10857 ;
10858 ; INPUTS:
10859 ; R1 - LENGTH OF STRING.
10860 ; R0 - ADDRESS OF STRING.
10861 ;
10862 ; NO OUTPUTS
10863 ;-
10864
10865 027714 010037 002300' $TTWR:: MOV R0,DTTWLB+Q.IOPL+0 ;INSERT MESSAGE ADDRESS,
10866 027720 010137 002302' MOV R1,DTTWLB+Q.IOPL+2 ;LENGTH,
10867 027724 LTTDIR: DIR$ #DTTWLB ;AND PRINT.
027724 012746 002264' MOV #DTTWLB,-(SP)
027730 104375 EMT 375
10869 027732 CALL $ECHO1 ; [5.1005]ECHO CTY TO LP
027732 004737 030020' JSR PC,$ECHO1
10871 027736 005737 000056' TST $LGOPN ; [4.1.1073]LOG TO ERROR FILE?
10872 027742 001417 BEQ 10$ ; [4.1.1073]NO -- GO ON
10873 027744 PUSH <R1,R2> ; [4.1.1073]YES -- SAVE REGISTERS
027744 010146 MOV R1,-(SP)
027746 010246 MOV R2,-(SP)
10874 027750 013702 002300' MOV DTTWLB+Q.IOPL+0,R2 ; [4.1.1073]ADDRESS TO R0
10875 027754 013701 002302' MOV DTTWLB+Q.IOPL+2,R1 ; [4.1.1073]MESSAGE LENGTH TO R1
10876 027760 CALL .WRITR ; [4.1.1073]WRITE TO FILE
027760 004737 000000G JSR PC,.WRITR
10877 027764 POP <R2,R1> ; [4.1.1073]RESTORE R2
027764 012602 MOV (SP)+,R2
027766 012601 MOV (SP)+,R1
10878 027770 005737 000054' TST $LGERR ; [4.1.1073]LOGGING ERROR?
10879 027774 001402 BEQ 10$ ; [4.1.1073]NO -- GO ON
10880 027776 CALL $CLLOG ; [4.1.1073]YES -- CLOSE LOG FILE
027776 004737 000000G JSR PC,$CLLOG
10881 030002 10$: RETURN
030002 000207 RTS PC
KLITT -- TTY I/O FUNCTIONS MACRO M1113 03-APR-86 20:55 PAGE 228
$ECHO -- ECHO CTY OUTPUT TO LP
10884 .SBTTL $ECHO -- ECHO CTY OUTPUT TO LP
10885
10886 ;+
10887 ; WRITE CTY OUTPUT TO LP IF TRACKING ON CTY ENABLED
10888 ; THIS ROUTINE ADDED FOR TCO 5.1005
10889 ;
10890 ; NO INPUTS
10891 ;
10892 ; NO OUTPUTS
10893 ;-
10894
10895 030004 $ECHO:: ; ECHO CTY INPUT
10896 030004 012737 000304' 002300' MOV #.TTIBF,DTTWLB+Q.IOPL+0 ; MESSAGE
10897 030012 013737 002340' 002302' MOV DTTSTA+2,DTTWLB+Q.IOPL+2 ; LENGTH
10898 030020 $ECHO1:: ; ECHO CTY OUTPUT
10899 030020 105737 000040' TSTB .TRKLP ; TRACK ON LP ?
10900 030024 001411 BEQ 10$ ; NO -- EXIT
10901 030026 012737 000003 002270' MOV #LPOLUN,DTTWLB+Q.IOLU ; YES -- SET LP LUN
10902 030034 DIR$ #DTTWLB ; OUTPUT IT
030034 012746 002264' MOV #DTTWLB,-(SP)
030040 104375 EMT 375
10903 030042 012737 000002 002270' MOV #TTOLUN,DTTWLB+Q.IOLU ; RESET TT LUN
10904 030050 10$: RETURN ; DONE
030050 000207 RTS PC
10906
10907 .TITLE KLIXB -- LOAD THE KL BOOT
10908 030052 IDENT$ 11,1 ; ADP01
.IDENT /011010/
10909 ;
10910 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
10911 ; ALL RIGHTS RESERVED.
10912 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
10913 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
10914 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
10915 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
10916 ;
10917 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
10918 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
10919 ; EQUIPMENT CORPORATION.
10920 ;
10921 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
10922 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
10923 ;
10924 ; VERSION 11-01 ; ADP01
10925 ;
10926 ; ALAN D. PECKHAM 8-APR-77
10927 ;
10928 ; MODIFIED BY:
10929 ;
10930 ; FUNCTION: THIS MODULE CONTAINS THE ROUTINES WHICH LOAD THE KL BOOT
10931 ; FROM THE FILE 'BOOT.EXB' OR AN OPERATOR SPECIFIED FILE.
10932 ;
10933 ; EQUATED SYMBOLS
10934 ;
10935 000000 APR = 0 ; KL DEVICE.
10936 000004 CONO = 4 ; KL I/O SUBFUNCTION CODE.
10937 001000 PAGE = 1000 ; PAGE SIZE (POWER OF 2).
KLIXB -- LOAD THE KL BOOT MACRO M1113 03-APR-86 20:55 PAGE 228-1
$ECHO -- ECHO CTY OUTPUT TO LP
10938 000777 PGBTS = PAGE-1 ; PAGE BITS USED IN MASK.
10939 ;
10940 ; LOCAL DATA
10941 ;
10942 .MCALL ALUN$
10943
10944 002354 .PSECT DATA,D
10945 002354 007 004 DNIBOO: .BYTE 7,4
10946 002356 000004 .WORD SYILUN
10947 002360 104 .ASCII /D/
10949 002361 124 .ASCII /T/
10953 002362 000001 .WORD 1
10954 002364 DXBFNM:
10955 002364 007347 076400 000000 .RAD50 /BOOT EXB/ ; BOOT DEFAULT FILE NAME.
002372 021402
10956 002374 000000 .WORD 0 ; GET LATEST VERSION.
10957 002376 005 005 .BYTE 5,5
10958 002400 054523 000000 DXBLOC: .WORD "SY,0
10959 002404 DXBADR:
10960 002404 000000 000000 .WORD 0,0 ; CURRENT DEPOSIT ADDRESS.
10961 002410 DXBDAT:
10962 002410 000000 000000 000000 .WORD 0,0,0 ; DATA WORD TO DEPOSIT.
10963 002416 DXBCNM:
10964 002416 IO10$ CONO APR,,22000 ; TO CLEAR THE NXM BIT.
002416 000 044 000 .BYTE BY$$0,BY$$1,BY$$2
002421 002 016 .BYTE BY$$3,BY$$4
10965 .EVEN
10966 006024 .PSECT TEXT,D
10967 006024 TXBIMM:
10968 006024 ERROR <INSUFFICIENT MEMORY FOR BOOTSTRAP>
006024 077 040 111 .ASCIZ \? INSUFFICIENT MEMORY FOR BOOTSTRAP\
006027 116 123 125
006032 106 106 111
006035 103 111 105
006040 116 124 040
006043 115 105 115
006046 117 122 131
006051 040 106 117
006054 122 040 102
006057 117 117 124
006062 123 124 122
006065 101 120 000
10969 030052 .PSECT
KLIXB -- LOAD THE KL BOOT MACRO M1113 03-APR-86 20:55 PAGE 229
$EXBLD -- LOAD THE BOOT
10971 .SBTTL $EXBLD -- LOAD THE BOOT
10972 ;+
10973 ; PROCESS THE KL BOOTSTRAP FILE (.EXB)
10974 ; THIS ROUTINE READS IN A FILE OF BINARY RECORDS.
10975 ; *DATA RECORDS:
10976 ; .WORD 4+<5*N> ; BYTE COUNT.
10977 ; .BLKW 2 ; KL ADDRESS.
10978 ; .BLKB 5*N ; KL WORDS.
10979 ; THE KL WORDS WHICH ARE PLACED IN THE FIRST 36 BITS OF 5 -11 BYTES
10980 ; ARE STORED SEQUENTIALLY STARTING AT THE GIVEN ADDRESS.
10981 ; *END OF FILE:
10982 ; .WORD 4 ; BYTE COUNT.
10983 ; .BLKW 2 ; KL ADDRESS.
10984 ; THE ADDRESS IS THE START ADDRESS OF THE BOOTSTRAP PROGRAM.
10985 ; THE DATA RECORDS ARE ASSUMED TO BE SORTED BY ADDRESS,
10986 ; SO THAT PAGE CLEARING IS DONE PROPERLY.
10987 ;
10988 ; THE PAGE CLEARING FEATURE REQUIRES THAT ANY PAGES WHICH RECIEVE
10989 ; DATA SHOULD BE CLEARED BEFORE ANY DATA IS STORED. THE PRESENT
10990 ; ALGORITHM AVOIDS WRITING TWICE TO ANY LOCATION (CLEAR & DEPOSIT).
10991 ; A POINTER IS KEPT OF WHERE THE NEXT KL WORD WOULD BE DEPOSITED,
10992 ; AND IS USED TO DETECT GAPS IN DATA/INSTRUCTION STORAGE SO THAT
10993 ; INTERVENING WORDS MAY BE CLEARED.
10994 ;
10995 ; A CHECK IS ALSO MADE TO SEE IF ANY OF THE BOOT IS LOADED INTO
10996 ; NON-EXISTANT MEMORY BY TURNING OFF THE NXM INDICTOR BEFORE THE
10997 ; LOAD AND TESTING IT AFTER THE LOAD TO SEE IF A NXM OCCURRED.
10998 ;
10999 ; INPUTS:
11000 ; .DBSW - IF <>0 THEN USE USER FILE NAME.
11001 ; .DBFNM - POINTER TO 5 WORD USER FILE NAME.
11002 ;
11003 ; OUTPUTS:
11004 ; CARRY IS SET IF ERROR OCCURS, OTHERWISE BOOT IS STARTED AND
11005 ; RETURN IS TO "$EXIT".
11006 ;-
11007
11008 030052 $EXBLD::
11009 030052 105737 000024' TSTB .DLGSW ; ARE WE IN DIALOG MODE??
11010 030056 100004 BPL 10$ ; YES -- GO ON
11011 030060 032737 000000G 000060' BIT #KL.LVB,.KLISV ; NO -- MUST BOOT BE LOADED??
11012 030066 001430 BEQ 30$ ; NO -- JUST EXIT
11013 030070 10$:
11015 030070 CALL $SWEEP ; CLEAR CACHE.
030070 004737 006502' JSR PC,$SWEEP
11016 030074 103425 BCS 30$
11017 030076 012700 002364' MOV #DXBFNM,R0 ; FILE NAME: BOOT.EXB
11021 030102 105737 000026' TSTB .UFNSW ; OR
11022 030106 003402 BLE 20$
11023 030110 012700 000476' MOV #.USRFN,R0 ; USER FILE NAME. ; ADP01
11024 030114 20$:
11025 030114 CALL $LOOKUP ; FIND THE FILE.
030114 004737 007562' JSR PC,$LOOKUP
11026 030120 103416 BCS 40$
11027 030122 012703 002410' 25$: MOV #DXBDAT,R3 ; INITIALIZE DATA WORD POINTER
11028 030126 012702 002406' MOV #DXBADR+2,R2 ; AND NEXT WORD POINTER.
11029 030132 005012 CLR (R2) ; SET TO ZERO.
KLIXB -- LOAD THE KL BOOT MACRO M1113 03-APR-86 20:55 PAGE 229-1
$EXBLD -- LOAD THE BOOT
11030 030134 005042 CLR -(R2)
11031 030136 012700 002416' MOV #DXBCNM,R0 ; NOW TURN OFF THE NXM BIT BY
11032 030142 CALL $EXCT ; DOING A CONO APR,,22000.
030142 004737 030636' JSR PC,$EXCT
11033 030146 103052 BCC LXBRC
11034 030150 30$:
11035 030150 CALL REDOSY ; [**]
030150 004737 030600' JSR PC,REDOSY
11036 030154 RETURN
030154 000207 RTS PC
11037 030156 40$:
11038 030156 112737 177777 000064' MOVB #-1,.NCACH ; SET UP TO CONFIGURE CACHE IF "BOOT"
11039 030164 122737 000000G 000526' CMPB #IE.NSF,.SYSTA ; IF FILE NOT FOUND
11040 030172 001025 BNE 50$ ; [**]
11041 030174 DIR$ #DNIBOO ;[**]
030174 012746 002354' MOV #DNIBOO,-(SP)
030200 104375 EMT 375
11042 030202 005237 002356' INC DNIBOO+2 ;[**]
11043 030206 DIR$ #DNIBOO ;[**]
030206 012746 002354' MOV #DNIBOO,-(SP)
030212 104375 EMT 375
11044 030214 005237 002356' INC DNIBOO+2 ;[**]
11045 030220 DIR$ #DNIBOO ;[**]
030220 012746 002354' MOV #DNIBOO,-(SP)
030224 104375 EMT 375
11047 030226 012737 052104 002400' MOV #"DT,DXBLOC ;[**]
11051 030234 005237 002402' INC DXBLOC+2 ;[**]
11052 030240 CALL $LOOKUP ;[**]
030240 004737 007562' JSR PC,$LOOKUP
11053 030244 103326 BCC 25$ ;[**]
11054 030246 50$: CALLR $IOERR ; DECLARE THE ERROR.
030246 000137 007346' JMP $IOERR
11055
11056 ;+
11057 ; READ 5 BYTES INTO THE AREA POINTED TO BY R3.
11058 ; R5, R4 AND R0 GET DESTROYED.
11059 ;-
11060
11061 030252 LXB5B:
11062 030252 012705 000005 MOV #5,R5
11063 030256 010304 MOV R3,R4
11064 030260 10$:
11065 030260 CALL $READB ; READ A BYTE AND
030260 004737 010420' JSR PC,$READB
11066 030264 103402 BCS 20$
11067 030266 110024 MOVB R0,(R4)+ ; STICK IN ASSEMBLED WORD.
11068 030270 077505 SOB R5,10$
11069 030272 20$:
11070 030272 RETURN
030272 000207 RTS PC
KLIXB -- LOAD THE KL BOOT MACRO M1113 03-APR-86 20:55 PAGE 230
$EXBLD -- LOAD THE BOOT
11072 ;+
11073 ; READ RECORD FROM FILE.
11074 ;-
11075
11076 030274 LXBRC: CALL $READC ; GET ADDRESS.
030274 004737 010216' JSR PC,$READC
11077 030300 103534 BCS 90$
11078 030302 010037 000516' MOV R0,.BTADR
11079 030306 CALL $READW
030306 004737 010324' JSR PC,$READW
11080 030312 103527 BCS 90$
11081 030314 010037 000520' MOV R0,.BTADR+2
11082 030320 005737 000534' TST .SYIRC ; IF MORE BYTES IN RECORD
11083 030324 003072 BGT 60$ ; GO TO LOAD DATA INTO KL.
11084
11085 ;+
11086 ; END OF FILE REACHED. CLEAR THE REST OF THE PAGE,
11087 ; DE-ACCESS THE FILE, AND START THE BOOT.
11088 ;-
11089
11090 030326 032712 000777 10$: BIT #PGBTS,(R2) ; MUST CLEAR REST OF PAGE.
11091 030332 001413 BEQ 20$
11092 030334 012701 000000' MOV #.ZERO,R1 ; IF NOT AT BOUNDRY
11093 030340 010200 MOV R2,R0
11094 030342 CALL $DPOS ; CLEAR WORD,
030342 004737 013074' JSR PC,$DPOS
11095 030346 103511 BCS 90$
11096 030350 062712 000001 ADD #1,(R2) ; BUMP POINTER,
11097 030354 005562 000002 ADC 2(R2)
11098 030360 000762 BR 10$ ; AND GO FOR MORE.
11099 030362 010301 20$: MOV R3,R1
11100 030364 012700 110000 MOV #<110*1000>,R0 ; GET 'APR NXM ER IN'
11101 030370 CALL $DFRD
030370 004737 013444' JSR PC,$DFRD
11102 030374 103476 BCS 90$
11103 030376 132761 000020 000003 BITB #20,3(R1) ; TO TEST FOR NXM.
11104 030404 001004 BNE 30$
11105 030406 CALL $CLOSE ; CLOSE BOOT FILE.
030406 004737 007056' JSR PC,$CLOSE
11106 030412 000137 024524' JMP $TENST ; GO TO START THE BOOT.
11107 030416 30$: PRINT #TXBIMM ; BOOT LOADED IN NONEXISTANT MEMORY !
030416 012700 006024' MOV #TXBIMM,R0
030422 004737 027634' JSR PC,$TTMSG
11108 030426 CALL REDOSY ;[**]
030426 004737 030600' JSR PC,REDOSY
11109 030432 000261 SEC
11110 030434 RETURN
030434 000207 RTS PC
KLIXB -- LOAD THE KL BOOT MACRO M1113 03-APR-86 20:55 PAGE 231
$EXBLD -- LOAD THE BOOT
11112 ;+
11113 ; PROCESS DATA RECORD.
11114 ;-
11115
11116 030436 032712 000777 40$: BIT #PGBTS,(R2) ; IF ON A NEW PAGE
11117 030442 001011 BNE 50$
11118 030444 013722 000516' MOV .BTADR,(R2)+ ; PUT US ON THE PAGE
11119 030450 013712 000520' MOV .BTADR+2,(R2) ; OF THE TARGET ADDRESS
11120 030454 042742 000777 BIC #PGBTS,-(R2) ; AT THE TOP.
11121 030460 023712 000516' CMP .BTADR,(R2)
11122 030464 001421 BEQ 70$
11123 030466 012701 000000' 50$: MOV #.ZERO,R1 ; STORE A ZERO
11124 030472 010200 MOV R2,R0
11125 030474 CALL $DPOS
030474 004737 013074' JSR PC,$DPOS
11126 030500 103434 BCS 90$
11127 030502 062712 000001 ADD #1,(R2) ; AND BUMP ADDRESS.
11128 030506 005562 000002 ADC 2(R2)
11129 030512 023712 000516' 60$: CMP .BTADR,(R2) ; WE MUST CLEAR
11130 030516 001347 BNE 40$ ; UP TO THE
11131 030520 023762 000520' 000002 CMP .BTADR+2,2(R2) ; RECORD ADDRESS.
11132 030526 001343 BNE 40$
11133 030530 70$: CALL LXB5B
030530 004737 030252' JSR PC,LXB5B
11134 030534 103416 BCS 90$
11135 030536 010301 MOV R3,R1
11136 030540 010200 MOV R2,R0
11137 030542 CALL $DPOS ; STICK IT IN
030542 004737 013074' JSR PC,$DPOS
11138 030546 103411 BCS 90$
11139 030550 062712 000001 ADD #1,(R2) ; BUMP ADDRESS AND
11140 030554 005562 000002 ADC 2(R2)
11141 030560 005737 000534' TST .SYIRC
11142 030564 001361 BNE 70$
11143 030566 000137 030274' JMP LXBRC ; GO TO PICK UP NEW RECORD.
11144 030572 90$:
11145 030572 CALL REDOSY ;[**]
030572 004737 030600' JSR PC,REDOSY
11146 030576 RETURN
030576 000207 RTS PC
11147
11148 030600 REDOSY:
11149 030600 012737 054523 002400' MOV #"SY,DXBLOC ;[**]
11150 030606 005037 002402' CLR DXBLOC+2 ;[**]
11151 030612 DIR$ #DNISYI ;[**]
030612 012746 001504' MOV #DNISYI,-(SP)
030616 104375 EMT 375
11152 030620 DIR$ #DNISYO ;[**]
030620 012746 001514' MOV #DNISYO,-(SP)
030624 104375 EMT 375
11153 030626 DIR$ #DNISYF ;[**]
030626 012746 001524' MOV #DNISYF,-(SP)
030632 104375 EMT 375
11154 030634 RETURN ;[**]
030634 000207 RTS PC
KLIXB -- LOAD THE KL BOOT MACRO M1113 03-APR-86 20:55 PAGE 232
$EXBLD -- LOAD THE BOOT
11156
11157 .TITLE KLIXC -- KL INSTRUCTION EXECUTION
11158 030636 IDENT$ 5,0
.IDENT /005000/
11159 ;
11160 ; COPYRIGHT (C) 1977, 1984, 1985 DIGITAL EQUIPMENT CORP., MAYNARD, MASS.
11161 ; ALL RIGHTS RESERVED.
11162 ; THIS SOFTWARE IS FURNISHED TO PURCHASER UNDER A LICENSE FOR USE
11163 ; ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED (WITH INCLUSION
11164 ; OF DEC'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH SYSTEM, EXCEPT
11165 ; AS MAY OTHERWISE BE PROVIDED IN WRITING BY DEC.
11166 ;
11167 ; THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT
11168 ; NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL
11169 ; EQUIPMENT CORPORATION.
11170 ;
11171 ; DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS
11172 ; SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC.
11173 ;
11174 ; VERSION 05-00
11175 ;
11176 ; ALAN D. PECKHAM 30-MAR-77
11177 ;
11178 ; MODIFIED BY:
11179 ;
11180 ; R. BELANGER 06-DEC-78 NEW KEEP-ALIVE ERROR PROCESSING
11181 ; TCO 4.2107
11182 ;
11183 ; FUNCTION: THIS MODULE CONTAINS ROUTINES TO ALLOW EXECUTION OF
11184 ; SINGLE KL INSTRUCTIONS OR THE STARTING OF KL PROGRAMS.
11185 ;
11186 ; LOCAL DATA
11187 ;
11188 002424 .PSECT DATA,D
11189 002424 DXCAD:
11190 002424 WD36$ 0 0 ; START ADDRESS BUFFER.
002424 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
002427 000 000 .BYTE BY$$3,BY$$4
11191 002431 DXCBF:
11192 002431 WD36$ 0 0 ; GENERAL BIT BUCKET.
002431 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
002434 000 000 .BYTE BY$$3,BY$$4
11193 002436 DXCBRC:
11194 002436 WD36$ 0 0 ; BURST COUNT BUFFER.
002436 000 000 000 .BYTE BY$$0,BY$$1,BY$$2
002441 000 000 .BYTE BY$$3,BY$$4
11195 .EVEN
11196 006070 .PSECT TEXT,D
11197 006070 TXCHLE:
11198 006070 ERROR <CANNOT FIND HALT LOOP>
006070 077 040 103 .ASCIZ \? CANNOT FIND HALT LOOP\
006073 101 116 116
006076 117 124 040
006101 106 111 116
006104 104 040 110
006107 101 114 124
006112 040 114 117
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1113 03-APR-86 20:55 PAGE 232-1
$EXBLD -- LOAD THE BOOT
006115 117 120 000
11199 006120 TXCSFL:
11200 006120 ERROR <CANNOT START KL>
006120 077 040 103 .ASCIZ \? CANNOT START KL\
006123 101 116 116
006126 117 124 040
006131 123 124 101
006134 122 124 040
006137 113 114 000
11201 030636 .PSECT
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1113 03-APR-86 20:55 PAGE 233
$EXCT -- EXECUTE KL INSTRUCTION
11203 .SBTTL $EXCT -- EXECUTE KL INSTRUCTION
11204 ;+
11205 ; EXECUTE A SINGLE KL INSTRUCTION BY GETTING THE KL INTO THE
11206 ; HALT LOOP, LOADING THE AR WITH THE INSTRUCTION, PUSHING THE
11207 ; CONTINUE BUTTON, AND STARTING UP THE CLOCK. THE ROUTINE
11208 ; COMPLETES WHEN THE MICROCODE REACHES THE HALT LOOP AGAIN.
11209 ;
11210 ; INPUTS:
11211 ; R0 - POINTER TO INSTRUCTION TO EXECUTE.
11212 ;
11213 ; OUTPUTS:
11214 ; CARRY IS SET IF ERROR OCCURS AND MESSAGE IS DISPLAYED.
11215 ;-
11216
11217 030636 $EXCT::
11218 030636 004537 024204' JSR R5,$RSAVE
11219 030642 TRACK XC
030642 004037 030654' JSR R0,64$
030646 041530 .WORD "XC
030650 000000 .WORD
030652 000000 .WORD
030654 004737 024252' 64$: JSR PC,$TRACK
030660 012600 MOV (SP)+,R0
11220 030662 CALL $LDAR ; LOAD THE AR WITH THE INSTRUCTION.
030662 004737 031176' JSR PC,$LDAR
11221 030666 103416 BCS 90$
11222 030670 012700 012000 MOV #.CONBT,R0 ; PUSH THE CONTINUE BUTTON
11223 030674 CALL $DFXC
030674 004737 013760' JSR PC,$DFXC
11224 030700 103411 BCS 90$
11225 030702 012700 001000 MOV #.STRCL,R0 ; AND START THE CLOCK
11226 030706 CALL $DFXC
030706 004737 013760' JSR PC,$DFXC
11227 030712 103404 BCS 90$
11228 030714 012703 001750 MOV #1000.,R3
11229 030720 CALLR $WTKL ; WAIT FOR THE HALT LOOP.
030720 000137 031116' JMP $WTKL
11230 ;
11231 030724 90$:
11232 030724 RETURN
030724 000207 RTS PC
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1113 03-APR-86 20:55 PAGE 234
$STRKL -- START THE KL PROCESSOR
11234 .SBTTL $STRKL -- START THE KL PROCESSOR
11235 ;+
11236 ; START THE KL AT THE 22 BIT ADDRESS POINTED TO BY R0.
11237 ; THIS IS DONE BY LOADING THE AR WITH THE ADDRESS, PUSHING
11238 ; THE RUN AND CONTINUE BUTTONS, AND STARTING THE CLOCK.
11239 ; WE STEP THE MICROCODE OUT OF THE HALT LOOP TO MAKE SURE IT
11240 ; IS RUNNING BEFORE WE LEAVE.
11241 ;
11242 ; INPUTS:
11243 ; R0 - POINTER TO 22 BIT KL ADDRESS.
11244 ;
11245 ; OUTPUTS:
11246 ; CARRY IS SET ON ERROR AND A MESSAGE IS DISPLAYED.
11247 ;-
11248
11249 030726 $STRKL::
11250 030726 004537 024204' JSR R5,$RSAVE
11251 030732 TRACK ST
030732 004037 030744' JSR R0,64$
030736 052123 .WORD "ST
030740 000000 .WORD
030742 000000 .WORD
030744 004737 024252' 64$: JSR PC,$TRACK
030750 012600 MOV (SP)+,R0
11252 030752 012701 002424' MOV #DXCAD,R1 ; POINT TO A SCRATCH AREA
11253 030756 112021 MOVB (R0)+,(R1)+ ; LOAD THE ADDRESS
11254 030760 112021 MOVB (R0)+,(R1)+
11255 030762 111011 MOVB (R0),(R1) ; AS A PC WORD
11256 030764 142711 177700 BICB #^C77,(R1) ; ONLY 22 BITS PLEASE
11257 030770 012700 002424' MOV #DXCAD,R0 ; GET OUR ADDRESS
11258 030774 CALL $LDAR ; AND LOAD IT INTO THE AR.
030774 004737 031176' JSR PC,$LDAR
11259 031000 103440 BCS 80$
11260 031002 012700 011000 MOV #.SETRN,R0 ; SET THE RUN FLOP
11261 031006 CALL $DFXC
031006 004737 013760' JSR PC,$DFXC
11262 031012 103433 BCS 80$
11263 031014 012700 012000 MOV #.CONBT,R0 ; SET THE CONTINUE BUTTON
11264 031020 CALL $DFXC
031020 004737 013760' JSR PC,$DFXC
11265 031024 103426 BCS 80$
11266 031026 012701 001750 MOV #1000.,R1 ; LOOP COUNT TO R1
11267 031032 10$:
11268 031032 012700 002000 MOV #.SSCLK,R0 ; SINGLE STEP THE M-BOX CLOCK
11269 031036 CALL $DFXC
031036 004737 013760' JSR PC,$DFXC
11270 031042 103417 BCS 80$
11271 031044 CALL $DTRW1 ; READ DIAG WORD 1
031044 004737 024114' JSR PC,$DTRW1
11272 031050 103414 BCS 80$
11273 031052 032700 001000 BIT #DS06,R0 ; STILL IN THE HALT LOOP?
11274 031056 001402 BEQ 20$ ; NO -- GO ON
11275 031060 077114 SOB R1,10$ ; YES -- TRY AGAIN
11276 031062 000407 BR 80$ ; TIMED OUT -- COMPLAIN
11277 ;
11278 031064 20$:
11279 031064 032700 002000 BIT #DS05,R0 ; OUT OF HALT LOOP -- IS RUN ON?
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1113 03-APR-86 20:55 PAGE 234-1
$STRKL -- START THE KL PROCESSOR
11280 031070 001404 BEQ 80$ ; NO -- COMPLAIN
11281 031072 012700 001000 MOV #.STRCL,R0 ; YES -- START THE CLOCK
11282 031076 CALLR $DFXC ; AND EXIT.
031076 000137 013760' JMP $DFXC
11283 ;
11284 031102 80$:
11285 031102 PRINT #TXCSFL ; NO -- PRINT ERROR MESSAGE
031102 012700 006120' MOV #TXCSFL,R0
031106 004737 027634' JSR PC,$TTMSG
11286 031112 000261 SEC
11287 031114 90$:
11288 031114 RETURN ; AND EXIT
031114 000207 RTS PC
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1113 03-APR-86 20:55 PAGE 235
$WTKL -- WAIT FOR KL PROGRAM TO HALT
11290 .SBTTL $WTKL -- WAIT FOR KL PROGRAM TO HALT
11291 ;+
11292 ; WAIT FOR THE KL TO REENTER THE HALT LOOP.
11293 ;
11294 ; INPUTS:
11295 ; R0 - A TIMEOUT VALUE.
11296 ;
11297 ; OUTPUTS:
11298 ; CARRY IS SET IF THE KL DOES NOT ENTER THE HALT LOOP
11299 ; BEFORE THE -11 HAS CHECKED THE DTE20 THE NUMBER OF TIMES
11300 ; SPECIFIED IN R0.
11301 ;-
11302
11303 031116 $WTKL::
11304 031116 TRACK WT
031116 004037 031130' JSR R0,64$
031122 052127 .WORD "WT
031124 000000 .WORD
031126 000000 .WORD
031130 004737 024252' 64$: JSR PC,$TRACK
031134 012600 MOV (SP)+,R0
11305 031136 PUSH <R2,R1,R0>
031136 010246 MOV R2,-(SP)
031140 010146 MOV R1,-(SP)
031142 010046 MOV R0,-(SP)
11306 031144 010002 MOV R0,R2
11307 031146 10$:
11308 031146 CALL $DTRW1 ; READ DTE DIAG 1
031146 004737 024114' JSR PC,$DTRW1
11309 031152 103404 BCS 80$
11310 031154 032700 001000 BIT #DS06,R0 ; ARE WE AT THE HALT LOOP ?
11311 031160 001002 BNE 90$ ; YES, RETURN.
11312 031162 077207 SOB R2,10$ ; NO, TRY AGAIN
11313 031164 80$:
11314 031164 000261 SEC ; OR GIVE UP.
11315 031166 90$:
11316 031166 POP <R0,R1,R2>
031166 012600 MOV (SP)+,R0
031170 012601 MOV (SP)+,R1
031172 012602 MOV (SP)+,R2
11317 031174 RETURN
031174 000207 RTS PC
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1113 03-APR-86 20:55 PAGE 236
$LDAR -- LOAD THE AR REGISTER
11319 .SBTTL $LDAR -- LOAD THE AR REGISTER
11320 ;+
11321 ; PUT THE MICROCODE INTO THE HALT LOOP, STOP IT, PHASE THE CLOCKS,
11322 ; AND LOAD THE AR REGISTER WITH AN INSTRUCTION OR STARTING ADDRESS.
11323 ;
11324 ; INPUTS:
11325 ; R0 - ADDRESS OF 36 BIT WORD TO LOAD INTO THE AR.
11326 ;
11327 ; OUTPUTS:
11328 ; CARRY IS SET IF ERROR OCCURS.
11329 ;-
11330
11331 031176 $LDAR::
11332 031176 004537 024204' JSR R5,$RSAVE ; SAVE THE REGISTERS.
11333 031202 CALL STPKL ; STOP THE MICROCODE.
031202 004737 031232' JSR PC,STPKL
11334 031206 103410 BCS 90$
11335 031210 CALL $MBPHS ; PHASE THE CLOCKS FOR THE LOAD.
031210 004737 031444' JSR PC,$MBPHS
11336 031214 103405 BCS 90$
11337 031216 010001 MOV R0,R1 ; GET DATA
11338 031220 012700 077000 MOV #.LDAR,R0 ; AND
11339 031224 CALLR $DFWR ; STORE IN THE AR.
031224 000137 013556' JMP $DFWR
11340 ;
11341 031230 90$:
11342 031230 RETURN
031230 000207 RTS PC
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1113 03-APR-86 20:55 PAGE 237
STPKL -- HALT THE KL CPU
11344 .SBTTL STPKL -- HALT THE KL CPU
11345 ;+
11346 ; GET THE KL INTO THE HALT LOOP. THIS IS DONE MERCIFULLY IN CASE
11347 ; IT IS RUNNING.
11348 ;
11349 ; NO INPUTS.
11350 ;
11351 ; OUTPUTS:
11352 ; CARRY IS SET IF UNABLE TO COMPLY, AND ERROR MESSAGE
11353 ; IS DISPLAYED.
11354 ;-
11355
11356 031232 STPKL:
11357 031232 TRACK HA
031232 004037 031244' JSR R0,64$
031236 040510 .WORD "HA
031240 000000 .WORD
031242 000000 .WORD
031244 004737 024252' 64$: JSR PC,$TRACK
031250 012600 MOV (SP)+,R0
11358 031252 PUSH <R0,R1> ; SAVE R0 AND R1
031252 010046 MOV R0,-(SP)
031254 010146 MOV R1,-(SP)
11359 031256 012700 010000 MOV #.CLRUN,R0 ; CLEAR RUN
11360 031262 CALL $DFXC ; CLEAR RUN
031262 004737 013760' JSR PC,$DFXC
11361 031266 103455 BCS 90$
11362 031270 012700 000024 MOV #20.,R0 ; SET A WAIT VALUE
11363 031274 CALL $WTKL ; AND SEE IF WE FALL
031274 004737 031116' JSR PC,$WTKL
11364 031300 103037 BCC 20$ ; INTO THE HALT LOOP.
11365 031302 012701 000024 MOV #^D20,R1 ; LOOP COUNT TO R4
11366 031306 10$:
11367 031306 012700 000310 MOV #^D200,R0 ; BURST COUNT TO R0
11368 031312 CALL $BURST ; BURST THE CLOCK
031312 004737 031612' JSR PC,$BURST
11369 031316 103441 BCS 90$
11370 031320 CALL $DTRW1 ; READ DTE-20 DIAG 1
031320 004737 024114' JSR PC,$DTRW1
11371 031324 103436 BCS 90$
11372 031326 032700 001000 BIT #DS06,R0 ; ARE WE IN THE HALT LOOP NOW?
11373 031332 001022 BNE 20$ ; YES -- GO ON
11374 031334 077114 SOB R1,10$ ; NO -- TRY AGAIN
11375 031336 032737 000000G 000060' BIT #KL.KAC,.KLISV ; [4.2107] KEEP-ALIVE RETRY??
11376 031344 001031 BNE 80$ ; [4.2107] YES -- COMPLANI AND EXIT
11377 031346 CALL $KLMR ; NO -- KL IS IN TROUBLE - RESET
031346 004737 015232' JSR PC,$KLMR
11378 031352 103423 BCS 90$
11379 031354 012700 001000 MOV #.STRCL,R0 ; BY RESTARTING MICROCODE.
11380 031360 CALL $DFXC
031360 004737 013760' JSR PC,$DFXC
11381 031364 103416 BCS 90$
11382 031366 012700 001750 MOV #1000.,R0 ; WAIT FOR IT TO ENTER HALT LOOP
11383 031372 CALL $WTKL ; AND IF THIS FAILS,
031372 004737 031116' JSR PC,$WTKL
11384 031376 103414 BCS 80$ ; THEN DIE A MISERABLE DEATH.
11385 031400 20$:
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1113 03-APR-86 20:55 PAGE 237-1
STPKL -- HALT THE KL CPU
11386 031400 012700 000000 MOV #.STPCL,R0 ; STOP THE CLOCK
11387 031404 CALL $DFXC
031404 004737 013760' JSR PC,$DFXC
11388 031410 103404 BCS 90$
11389 031412 012700 004000 MOV #.CECLK,R0 ; MAKES EBOX CLOCK FALSE
11390 031416 CALL $DFXC
031416 004737 013760' JSR PC,$DFXC
11391 031422 90$:
11392 031422 POP <R1,R0> ; RESTORE REGISTERS
031422 012601 MOV (SP)+,R1
031424 012600 MOV (SP)+,R0
11393 031426 RETURN ; TO CALLER
031426 000207 RTS PC
11394
11395 031430 80$:
11396 031430 PRINT #TXCHLE ; CANNOT FIND HALT LOOP !
031430 012700 006070' MOV #TXCHLE,R0
031434 004737 027634' JSR PC,$TTMSG
11397 031440 000261 SEC
11398 031442 000767 BR 90$
11399 ;
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1113 03-APR-86 20:55 PAGE 238
$MBPHS -- PHASE THE KL CLOCKS
11401 .SBTTL $MBPHS -- PHASE THE KL CLOCKS
11402 ;+
11403 ; PHASE THE CLOCKS TO LOAD THE AR
11404 ; $MBPHS WAITS FOR THREE TEST POINTS TO MATCH UP AND
11405 ; THEN SETS UP FOR A CHANGE COMING A L. THIS MAKES
11406 ; THE AR LOA FUNCTION STRICTLY REPEATABLE.
11407 ;
11408 ; NO INPUTS
11409 ;
11410 ; OUTPUTS:
11411 ; CARRY IS SET IF ERROR OCCURS.
11412 ;-
11413
11414 031444 $MBPHS::
11415 031444 004537 024204' JSR R5,$RSAVE ; SAVE THE REGISTERS.
11416 031450 012702 000030 MOV #24.,R2 ; DO THIS A MAXIMUM OF 24 TIMES.
11417 031454 012701 002431' MOV #DXCBF,R1 ; SET UP A READ BUFFER.
11418 031460 10$:
11419 031460 012700 102000 MOV #<102*1000>,R0 ; READ 102
11420 031464 CALL $DFRD
031464 004737 013444' JSR PC,$DFRD
11421 031470 103432 BCS 80$
11422 031472 132711 000004 BITB #4,(R1) ; CHECK "CLK SYNCH H"
11423 031476 001421 BEQ 20$ ; MUST BE HIGH
11424 031500 012700 144000 MOV #<144*1000>,R0 ; READ 144
11425 031504 CALL $DFRD
031504 004737 013444' JSR PC,$DFRD
11426 031510 103422 BCS 80$
11427 031512 132761 000100 000003 BITB #100,3(R1) ; CHECK "CR ADR 10"
11428 031520 001010 BNE 20$ ; MUST BE EVEN
11429 031522 012700 164000 MOV #<164*1000>,R0 ; READ 164
11430 031526 CALL $DFRD
031526 004737 013444' JSR PC,$DFRD
11431 031532 103411 BCS 80$
11432 031534 132711 000040 BITB #40,(R1) ; CHECK "PHASE CHANGE COMING L"
11433 031540 001410 BEQ 30$ ; MUST BE LOW
11434 031542 20$:
11435 031542 012700 002000 MOV #.SSCLK,R0 ; STEP THE MBOX CLOCK.
11436 031546 CALL $DFXC
031546 004737 013760' JSR PC,$DFXC
11437 031552 103401 BCS 80$
11438 031554 077237 SOB R2,10$ ; AVOID TRYING AD INFINITUM.
11439 031556 80$:
11440 031556 000261 SEC ; ERROR....
11441 031560 90$:
11442 031560 RETURN
031560 000207 RTS PC
11443 031562 30$:
11444 031562 012700 162000 MOV #<162*1000>,R0 ; READ 162
11445 031566 CALL $DFRD
031566 004737 013444' JSR PC,$DFRD
11446 031572 103771 BCS 80$
11447 031574 132711 000010 BITB #10,(R1) ; CHECK "A CHANGE COMING A L"
11448 031600 001767 BEQ 90$ ; IF HIGH, THEN
11449 031602 012700 000012 MOV #10.,R0 ; WE MUST CLOCK THE MBOX
11450 031606 CALLR $BURST ; 10. TIMES.
031606 000137 031612' JMP $BURST
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1113 03-APR-86 20:55 PAGE 238-1
$MBPHS -- PHASE THE KL CLOCKS
11451 ;
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1113 03-APR-86 20:55 PAGE 239
$BURST -- BURST THE M-BOX CLOCK
11453 .SBTTL $BURST -- BURST THE M-BOX CLOCK
11454 ;+
11455 ; STEP THE M-BOX A GIVEN NUMBER OF TICKS USING THE BURST
11456 ; DIAGNOSTIC INSTRUCTION.
11457 ;
11458 ; INPUTS:
11459 ; R0 - NUMBER OF STEPS TO BURST.
11460 ;
11461 ; OUTPUTS:
11462 ; CARRY IS SET IF OPERATION WAS UNSUCCESSFUL.
11463 ;-
11464
11465 031612 004537 024204' $BURST:: JSR R5,$RSAVE
11466 031616 010002 MOV R0,R2 ; SAVE BURST COUNT.
11467 031620 012700 000000 MOV #.STPCL,R0 ; STOP CLOCK FOR SAFETY.
11468 031624 CALL $DFXC
031624 004737 013760' JSR PC,$DFXC
11469 031630 103464 BCS 90$
11470 031632 012701 002436' MOV #DXCBRC,R1
11471 031636 012711 000017 MOV #17,(R1)
11472 031642 162702 000377 SUB #255.,R2 ; MORE THAN 255 BURSTS ?
11473 031646 002422 BLT 20$
11474 031650 10$:
11475 031650 012700 042000 MOV #.LDBRR,R0 ; YES, DO A BURST
11476 031654 CALL $DFWR
031654 004737 013556' JSR PC,$DFWR
11477 031660 103450 BCS 90$
11478 031662 012700 043000 MOV #.LDBRL,R0 ; WITH 255, AND
11479 031666 CALL $DFWR
031666 004737 013556' JSR PC,$DFWR
11480 031672 103443 BCS 90$
11481 031674 012700 005000 MOV #.BRCLK,R0
11482 031700 CALL $DFXC
031700 004737 013760' JSR PC,$DFXC
11483 031704 103436 BCS 90$
11484 031706 162702 000377 SUB #255.,R2 ; COUNT DOWN UNTIL
11485 031712 002356 BGE 10$ ; LESS THAN 255.
11486 031714 20$:
11487 031714 062702 000377 ADD #255.,R2 ; ANY LEFT TO DO ?
11488 031720 001430 BEQ 90$
11489 031722 110211 MOVB R2,(R1) ; YES, DO LAST BURST.
11490 031724 142711 177760 BICB #^C17,(R1)
11491 031730 012700 042000 MOV #.LDBRR,R0
11492 031734 CALL $DFWR
031734 004737 013556' JSR PC,$DFWR
11493 031740 103420 BCS 90$
11494 031742 SR R2,4
031742 006202 ASR R2
031744 006202 ASR R2
031746 006202 ASR R2
031750 006202 ASR R2
11495 031752 110211 MOVB R2,(R1)
11496 031754 142711 177760 BICB #^C17,(R1)
11497 031760 012700 043000 MOV #.LDBRL,R0
11498 031764 CALL $DFWR
031764 004737 013556' JSR PC,$DFWR
11499 031770 103404 BCS 90$
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1113 03-APR-86 20:55 PAGE 239-1
$BURST -- BURST THE M-BOX CLOCK
11500 031772 012700 005000 MOV #.BRCLK,R0
11501 031776 CALLR $DFXC
031776 000137 013760' JMP $DFXC
11502 ;
11503 032002 90$:
11504 032002 RETURN
032002 000207 RTS PC
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1113 03-APR-86 20:55 PAGE 240
$BURST -- BURST THE M-BOX CLOCK
11506
11507 023516' .END $START
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1113 03-APR-86 20:55 PAGE 240-1
SYMBOL TABLE
AAX = 000020 CIMNXC 001136R 003 DDNCRE 000604R 002 DMABM = ****** GX DS05 = 002000
APR = 000000 CIMNXM 001167R 003 DDNDEL 000706R 002 DMANXM= ****** GX DS06 = 001000
ATLST 002306R 002 CLRMR = 000006 DDNENA 000630R 002 DMA2TS= ****** GX DTECMD= 000451
A.LULU= 000002 CM = 000004 DDNGLN 000576R 002 DMA20 = ****** GX DTEFLG= 000444
A.LUNA= 000004 CNUPE = 000002 DDNRAT 000722R 002 DMRBF 001434R 002 DTEF11= 000450
A.LUNU= 000006 CNVCHK 015146R DDPDAI 000734R 002 DMRKW2 001446R 002 DTEMTD= 000455
BAF0 = ****** GX CNVWRD 015154R DDPDAO 000764R 002 DMRMMR 001414R 002 DTEMTI= 000456
BITTBL= ****** GX COMCSE 005552RG 003 DDPDEL 000750R 002 DMRMOS 001441R 002 DTLST 002322R 002
BIT0 = 000001 CONBUT= 000012 DDPRNA 001000R 002 DMRMRT 001322R 002 DTNRB 002236R 002
BIT1 = 000002 CONFGR= ****** GX DDXEXT 001030R 002 DMRSRL= 000005 DTNXP 002230R 002
BIT10 = 002000 CONFIG= ****** GX DEP = 010000 DMRSRT 001422R 002 DTTRLB 002244R 002
BIT11 = 004000 CONO = 000004 DEX = 000400 DNIBOO 002354R 002 DTTSTA 002336R 002
BIT12 = 010000 CONTI = ****** GX DEXDON= 000004 DNILPO 001474R 002 DTTWLB 002264R 002
BIT13 = 020000 CPUNUM= 000002 DEXWD1= 174406 DNISYF 001524RG 002 DUPE = 000020
BIT14 = 040000 CR = 000015 DEXWD2= 174404 DNISYI 001504RG 002 DURE = 000004
BIT15 = 100000 CS.EXP= 177670 DEXWD3= 174402 DNISYO 001514RG 002 DXBADR 002404R 002
BIT2 = 000004 CTLS = 000040 DFCABF 001103R 002 DNITTI 001454R 002 DXBCNM 002416R 002
BIT3 = 000010 CXMDOL 001504R 003 DFCBF 001074R 002 DNITTO 001464R 002 DXBDAT 002410R 002
BIT4 = 000020 CXMIBM 001677R 003 DFCFL2 001101R 002 DON10C= 040000 DXBFNM 002364R 002
BIT5 = 000040 C.ACHE= 000000 DFCFL3 001102R 002 DON10S= 100000 DXBLOC 002400R 002
BIT6 = 000100 DACAB 000000R 002 DFCRFL 001054R 002 DON11C= 000100 DXCAD 002424R 002
BIT7 = 000200 DACAD 000012R 002 DFCWFL 001064R 002 DON11S= 000200 DXCBF 002431R 002
BIT8 = 000400 DACBF 000015R 002 DFDABF 001115R 002 DPS4 = 040000 DXCBRC 002436R 002
BIT9 = 001000 DACBI 000005R 002 DFDDBF 001110R 002 DQBFNM 001534RG 002 DXWRD1= 002000
BLKI = 000000 DATAI = 000001 DFEAD 001146R 002 DQSAPR 001670R 002 D$$H11= 000010
BLKO = 000002 DATAO = 000003 DFEBF 001152R 002 DQSCBF 001640R 002 D1011 = 000040
BMMSTB 000236RG 004 DBEFRC= ****** GX DFEDPB 001122R 002 DQSCF3 001654R 002 EBSEL = 000100
BPARER= 000020 DCAPGM 000023R 002 DFEEXB 001134R 002 DQSCSW 001620R 002 EBUSPC= 000020
BRCLK = 000005 DCARCA 000040R 002 DFRRDB 001160R 002 DQSHWT 001676R 002 EBUSPS= 000004
BY$$0 = 000000 DCARFL 000101R 002 DFUNC = 000200 DQSMKT 001626R 002 EDONES= 040000
BY$$1 = 000000 DCASIA 000033R 002 DFWBF 001216R 002 DQSP0 001554RG 002 ED.PHY= 000200
BY$$2 = 000000 DCAWRF 000064R 002 DFWEDB 001204R 002 DQSP01 001604RG 002 EF.CRI= ****** GX
BY$$3 = 000000 DCBADR 000134R 002 DFWWDB 001172R 002 DQSP1 001570RG 002 EF.PR1= ****** GX
BY$$4 = 000000 DCBCBF 000156R 002 DFXXDB 001224R 002 DRESET= 000100 EPTR = 000000
CCA = 000014 DCBCNT 000152R 002 DF.DMG= 000004 DRSCEN 001714R 002 ERRORX 020314R
CCFAIL= ****** GX DCBDAT 000136R 002 DF.DMN= 000007 DRSDBL 001712RG 002 ERR10C= 010000
CDD = 000020 DCBDBF 000172R 002 DF.DOR= 000001 DRSFCR 001736R 002 ERR10S= 020000
CECLK = 000004 DCBFIX 000154R 002 DF.EHG= 000010 DRSPEN 001726R 002 ERR11C= 000001
CFGEXT 006076R DCBFNM 000114R 002 DF.EHM= 000011 DRSPFR 001733R 002 ERR11S= 000002
CFGINM 001222R 003 DCFCFN 000210R 002 DF.EMG= 000005 DRSPLD 001721R 002 E.FFIL= 000006
CFGINT 005624R DCFLFN 000230R 002 DF.EMN= 000006 DRSSCR 001741R 002 FITMEM= ****** GX
CFGMAC 001441R 003 DCFRJT 000250R 002 DF.KLR= 000012 DRTBF 002110R 002 FM = 000010
CFGMNM 001370R 003 DCOMST= 000001 DF.KLW= 000013 DRTBUF 002000R 002 FMRECN= ****** GX
CFGMOS 006234R DCSRCA 000273R 002 DF.KLX= 000014 DRTDTE 024150R FORPRO= 000020
CFGXMC 004270R DCSSIA 000266R 002 DF.OFF= 000002 DRTSTA 001774R 002 FS = 000001
CFGXNM 001305R 003 DDCDAI 000300R 002 DF.ON = 000003 DRTWLB 001752R 002 FTKLI = 000001
CFIMIL 004702R DDCDAO 000314R 002 DF.PDP= 000016 DRTX71 001744R 002 F.TRCK= 000001
CFIMQ1 000632R 003 DDCWAT 000334R 002 DF.PEX= 000015 DR.DTE= 000011 GAPCNT= ****** GX
CFIMQ2 000752R 003 DDDDEL 000402R 002 DGCFNM 001236R 002 DSEND = 000004 GAPTAB= ****** GX
CFIMQ3 001024R 003 DDDFNA 000352R 002 DGMFNM 001256R 002 DSTBF 002166R 002 G.LUBA= 000004
CFIMQ4 001051R 003 DDDRNA 000420R 002 DGPFNM 001276R 002 DSTCEN 002142R 002 G.LUCW= 000004
CFMMQ1 000707R 003 DDLACR 000506R 002 DIAG1 = 174430 DSTRT 002116R 002 G.LUFB= 000003
CFXMQ1 001547R 003 DDLFNA 000456R 002 DIAG2 = 174432 DSTRTL= 000004 G.LULU= 000002
CFXMQ2 001620R 003 DDLGLN 000450R 002 DIAG3 = 174436 DST1B0 002147R 002 G.LUNA= 000000
CHKIMC 005070R DDLRAT 000564R 002 DIKL10= 000010 DST1B1 002154R 002 G.LUNU= 000002
CHKMMC 005314R DDLRNA 000534R 002 DLYCNT= 174400 DST3B1 002161R 002 HDTAB 002200R 002
CHNPNT= 000001 DDNACE 000660R 002 DM = 000002 DS04 = 004000 HIBYTE= 177400
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1113 03-APR-86 20:55 PAGE 240-2
SYMBOL TABLE
HLTNOE 022266R KL.SSC= ****** GX LRSTKL 023332R Q.IOFN= 000002 TCBMLF 000203R 003
HRR = 000540 KL.VBD= ****** GX LTNCHR 026434R Q.IOLU= 000004 TCBMRE 000446R 003
H.KCAC= ****** GX KL.VBN= ****** GX LTNMV 026374R Q.IOPL= 000014 TCBMVF 000233R 003
H.KEXT= ****** GX KS.FCF= ****** GX LTNROL 026420R Q.IOPR= 000007 TCBMVL 000314R 003
H.KMOS= ****** GX LCARPT 000754R LTTDIR 027724R Q.IOSB= 000010 TCBMVV 000357R 003
H.KPWR= ****** GX LCBCRM 001630R LXBRC 030274R RAMIS0= 010000 TCBXOR 000440R 003
H.KUDF= ****** GX LCBDRM 002172R LXB5B 030252R RDATIM 014706RG TCFCFA 000536R 003
IE.DFU= ****** GX LCBFL 002636R L$$P20= 000002 RDDONE= ****** GX TCFCFE 000571R 003
IE.EBX= ****** GX LCBRC 001372R MABRD = ****** GX RDMCV 001502R TDEDFU 002154R 003
IE.EOF= ****** GX LCBRME 002516R MAJVER 000106R 002 REDOSY 030600R TDEDR 001722R 003
IE.NSF= ****** GX LCBVFY 002572R MA20 = ****** GX REPCON= ****** GX TDEIO 002014R 003
IE.UPN= ****** GX LCBVR 002674R MBINI = ****** GX REPFIT= ****** GX TDENSF 002100R 003
IFLOP = 100000 LCB3W 001216R MB20 = ****** GX RESDET= ****** GX TDRRDE 002201R 003
INIDMA= ****** GX LCB6W 001224R MF20 = ****** GX RFMAD0= 100000 TDRRLE 002216R 003
INTMOD= ****** GX LCFCPY 003204R MPE11 = 001000 RFMAD1= 040000 TDWRLE 002270R 003
INTROF= 000010 LCFERR 003502R MXTYP = 000005 RFMAD2= 020000 TDWWRE 002252R 003
INTRON= 000040 LCFNXT 003152R M.KTAE= 000010 RFMAD3= 010000 TENAD1= 174410
INTSON= 000001 LCFPRG 003476R M.KTEF= 000002 RM = 000010 TENAD2= 174412
INT10S= 000400 LCFRBF 003256R M.KTMG= 000004 RTFERR 015126R TFEDFL 002325R 003
INT11C= 002000 LCFRCA 003276R M.KTUN= 000006 RTFERX 015136R TFEEFL 002346R 003
INT11S= 004000 LCFREF 003314R NULSTP= 000040 RTFXIT 015142R TFREMS 002367R 003
IO.ACE= ****** GX LCFRMC 003516R NUPE = 000002 R$$11D= 000001 TFWEMS 002410R 003
IO.ACR= ****** GX LCFRMM 003176R PAG = 000010 SAVLEN 002352R 002 TFXEMS 002432R 003
IO.ATT= ****** GX LCFRPA 003266R PAGE = 001000 SAVMSG 002350R 002 TGCNFL 002456R 003
IO.CRE= ****** GX LCFRTN 003474R PCERRM 003225R 003 SCD = 000040 TGMNFL 002525R 003
IO.DAC= ****** GX LCFSKP 003304R PERCLR= 001000 SECLK = 000003 TGPNFL 002575R 003
IO.DEL= ****** GX LCFWBF 003526R PGBTS = 000777 SETIMF 000264R 002 TGTCKE 002607R 003
IO.DET= ****** GX LCFWCA 003772R PHYS = 100000 SETMMF 000265R 002 TGTIFF 002677R 003
IO.ENA= ****** GX LCFWEF 003642R PI = 000004 SETMR = 000007 TGTNFL 002651R 003
IO.EXT= ****** GX LCFWMC 004060R PIDENT= 000000 SETRUN= 000011 TGTRFE 002741R 003
IO.FNA= ****** GX LCFWMM 003664R PRI7 = 000340 SETZ = 000400 TMFLNM= ****** GX
IO.RLB= ****** GX LCFWPA 004142R PROPNT= 000021 SPC = 000040 TMPLOG 002342R 002
IO.RNA= ****** GX LDAR = 000077 PRTOFF= 004000 SSCLK = 000002 TMRMFL 002777R 003
IO.RVB= ****** GX LDEIDV 007536R PR0 = 000000 STAT = 174434 TNINDV 003025R 003
IO.WLB= ****** GX LDRER 010460R PR1 = 000040 STATUS= 000022 TNIN55 003052R 003
IO.WVB= ****** GX LDWER 010722R PR2 = 000100 STPCLK= 000000 TNIPRI 003110R 003
IS.CR = ****** GX LF = 000012 PR3 = 000140 STPKL 031232R TNIVER 003174R 003
IS.ESC= ****** GX LFCSAB 012274R PR4 = 000200 STRCLK= 000001 TOBM = 000004
I.10L = 000005 LFDWFN 012460R PR5 = 000240 SUBVER 000110R 002 TOIP = 000002
JCOMM 002174R 002 LFECKN 013354R PR6 = 000300 SWITCH 002176R 002 TOIT = 000001
JRST = 000254 LFEMVA 013330R PR7 = 000340 SWR = 177570 TO10 = 000200
JUMPE = 000322 LFWCKF 013676R PS = 177776 SWSLLT= 100000 TO10AD= 174420
KEEPBB= ****** GX LMRDFN 015430R PSWW1 = 000005 SYFLUN= 000006 TO10BC= 174414
KLI$$E= 000050 LOAD11= 000004 PSWW10= 000014 SYILUN= 000004 TO10BM= 000001
KLI$$F= 000101 LOGLUN= 000006 PSWW11= 000015 SYOLUN= 000005 TO10DB= 000400
KLI$$K= 000126 LPOLUN= 000003 PSWW12= 000016 S.YIL = 001000 G TO10DN= 100000
KLI$$V= 000015 LQBRBF 016656RG PSWW13= 000017 S.YOL = 001000 G TO10DT= 174424
KLPWRF= 000010 LQCCM 017244R PSWW2 = 000006 TAB = 000011 TO10ER= 020000
KL.ABO= ****** GX LQMRFN 001246R PSWW3 = 000007 TCAACD 000077R 003 TO11 = 000100
KL.CFL= ****** GX LQRBPS 021144R PSWW4 = 000010 TCAACE 000026R 003 TO11AD= 174422
KL.CFM= ****** GX LQSBPS 021532R PSWW5 = 000011 TCACEF 000000R 003 TO11BC= 174416
KL.DEF= ****** GX LQSCHE 022052R PSWW6 = 000012 TCASCE 000051R 003 TO11BM= 020000
KL.KAC= ****** GX LQSCHO 022026R PSWW7 = 000013 TCBBAD 000424R 003 TO11DB= 004000
KL.LCA= ****** GX LQSCSW 022434R PULSE = 000020 TCBDCW 000117R 003 TO11DN= 000200
KL.LRM= ****** GX LQSHDW 022072R QSIZE = 000023 TCBDDW 000151R 003 TO11DT= 174426
KL.LVB= ****** GX LQSHWE 021556R Q.IOAE= 000012 TCBFXF 000265R 003 TO11ER= 000002
KL.SPF= ****** GX LQSHWO 022312RG Q.IOEF= 000006 TCBGOD 000432R 003 TQBNFL 003363R 003
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1113 03-APR-86 20:55 PAGE 240-3
SYMBOL TABLE
TQBOOT 003246R 003 TXBOTH 004165R 003 $DLGIM 020344RG $OPLOG= ****** GX $WRITE 011072RG
TQBWCF 003320R 003 TXCHLE 006070R 003 $DLGMB 020360RG $POWER 022540RG $WRITS 010666RG
TQCACH 003421R 003 TXCSFL 006120R 003 $DLGMF 020354RG $PURGE 010124RG $WRITW 010736RG
TQCCEN 003466R 003 TXPTS 004127R 003 $DLGMM 017556RG $RCRAM 011564RG $WRMRS 023022RG
TQEXIT 003532R 003 TYPNUM= ****** GX $DLGMV 023662RG $RDERA= 000000 $WTKL 031116RG
TQMCF0 003556R 003 T.TIL = 000040 G $DLGMX 023666RG $RDRAM 012474RG $XCDT 000206RG
TQMCF1 003635R 003 T.TOL = 000111 G $DLGPA 020410RG $READ 010474RG $ZERAC 000112RG
TQMNM0 003722R 003 UEDIT 000112R 002 $DLGRM 020700RG $READB 010420RG $$ = 000037
TQMPCA 003757R 003 UNASG1= 000032 $DLGRV 023674RG $READC 010216RG $$APRI= 000000
TQRLMC 004172R 003 UNASG2= 000033 $DLGXM 020350RG $READS 010254RG $$RDER= 000004
TQSABO 004712R 003 UNASG3= 000034 $DLMB1 020364RG $READW 010324RG $$SBDI= 000004
TQSCAC 004564R 003 UNASG4= 000035 $DLMB2 020372RG $RP04 = 000001 $$$ARG= 000006
TQSCDH 004603R 003 UNASG5= 000036 $DLWCF 016530RG $RSAVE 024204RG $$$OST= 000014
TQSCHN 004531R 003 UNASG6= 000037 $DPOS 013074RG $RSTRT 022622RG $$$T1 = 000014
TQSDLG 004240R 003 WAIT1S 023430R $DPOST 013056RG $SBDIA= 000002 .BRCLK= 005000
TQSEXT 004474R 003 WEP = 000010 $DSPPT 020040RG $SETCA 000356RG .BTADR 000516RG 004
TQSHRZ 004337R 003 W.10L = 000005 $DSW = ****** GX $SETFN 007304RG .BTSW 000050RG 004
TQSHWP 004347R 003 XCONMP= ****** GX $DTA = 000001 $SETIM 005056RG .CACHN 000065RG 004
TQSKSN 004301R 003 XCT = 000256 $DTE = 000001 $SETMM 005302RG .CASW 000043RG 004
TQSMCA 004402R 003 XCT71 023554RG $DTRWS 024132RG $START 023516RG .CECLK= 004000
TQSMDL 004324R 003 ZSTOP = 040000 $DTRW1 024114RG $STRKL 030726RG .CFGTB 000134RG 004
TQSMMA 004745R 003 $ACRAM 012166RG $DTRW2 024122RG $SWEEP 006502RG .CFMRV 000234RG 004
TQSMMO 004435R 003 $ADRAM 012704RG $DTRW3 024142RG $TCRLF 027530RG .CKSW 000041RG 004
TQSPT 004064R 003 $APRID= 000000 $ECHO 030004RG $TDB2C 026466RG .CLRMR= 006000
TQSWRN 004657R 003 $ASCIZ 024240RG $ECHO1 030020RG $TDB2I 025264RG .CLRUN= 010000
TROCT 026074R $BURST 031612RG $ENTER 007734RG $TDB2O 026450RG .COMEF= ****** GX
TRSCEF 005323R 003 $CD11 = 000001 $ERROR 024012RG $TDI2B 025402RG .CONBT= 012000
TRSCES 005057R 003 $CFGBT 023714RG $EXAM 013224RG $TENST 024524RG .CPUSN= ****** GX
TRSDER 005211R 003 $CFGCA 023640RG $EXAMD 013214RG $TENS1 024532RG .CSDN 000030RG 004
TRSFCF 005267R 003 $CFGMM 020060RG $EXAMT 013176RG $TOP10= 000001 .CSHRG= 164000
TRSFCS 005515R 003 $CFGRM 023626RG $EXBLD 030052RG $TRACK 024252RG .CTLTP 000072RG 004
TRSFHL 005400R 003 $CFGXX 020232RG $EXCT 030636RG $TRB2F 025044RG .DATE3= ****** GX
TRSHLT 005124R 003 $CFIMD 004232RG $EXIT 024022RG $TRB2I 025306RG .DBSW 000033RG 004
TRSPRF 005023R 003 $CFMMD 004200RG $EXIT1 024030RG $TRB2O 026500RG .DCSW 000031RG 004
TRSRSM 005252R 003 $CFXMD 006544RG $EXTEN 011242RG $TRB2R 026744RG .DESW 000042RG 004
TRSSEF 005444R 003 $CHKIM 005064RG $FATAL 024036RG $TRCRM 025512RG .DFBLK 000256RG 004
TRSTMO 005155R 003 $CHKMM 005310RG $FE = 000001 $TRDRM 025656RG .DFRBK 000264RG 004
TRTBTF 005635R 003 $CLLOG= ****** GX $FILE 003036RG $TRF2B 025146RG .DFRG1 000272RG 004
TRTEND 005742R 003 $CLOSE 007056RG $F11 = 000001 $TRI2B 025424RG .DFRG2 000274RG 004
TRTFME 005665R 003 $CONFG 005514RG $GETCA 014112RG $TRO2B 026562RG .DFRG3 000300RG 004
TRTMMF 005577R 003 $DBDTE= 000001 $GETMM 014312RG $TRR2B 026636RG .DFSTA 000276RG 004
TSTBSM 005744R 003 $DDFRD 013440RG $GETPA 014562RG $TTBEL 027510RG .DFWBK 000256RG 004
TTA 002210R 002 $DDFWR 013552RG $GETTF 014706RG $TTDMS 027566RG .DLGSW 000024RG 004
TTB 002214R 002 $DDFXC 013754RG $INIT 015564RG $TTDWR 027700RG .DMSW 000032RG 004
TTBEL 006005R 003 $DELET 007214RG $IOERR 007346RG $TTMSG 027634RG .DREG 000272RG 004
TTILUN= 000001 $DFPC 016134RG $KLMR 015232RG $TTRD 027130RG .DRLTC= 015000
TTJ 002224R 002 $DFRD 013444RG $KLSR 015504RG $TTSPC 027500RG .DRSW 000027RG 004
TTOLUN= 000002 $DFWR 013556RG $LDAR 031176RG $TTTAB 027520RG .DSACF= 066000
TTP 002220R 002 $DFXC 013760RG $LDNGO 000000RG $TTWR 027714RG .DSIOJ= 065000
TTSLS 006004R 003 $DH11 = 000001 $LGERR 000054RG 004 $WCRAM 011304RG .DTEDT 000302RG 004
TTSPC 006002R 003 $DLGBT 016334RG $LGOPN 000056RG 004 $WDD22 026124RG .EASW 000044RG 004
TTTAB 006003R 003 $DLGBV 023670RG $LOG 000052RG 004 $WDD36 026236RG .EIOJA= 067000
TTTNLN 006006R 003 $DLGCA 017066RG $LOOKU 007562RG $WDRAM 012314RG .ERRCD= ****** GX
TTTPR 000200R 002 $DLGCT 020320RG $LP20 = 000001 $WRD22 026154RG .ERRPC= ****** GX
TTTPRE 006014R 003 $DLGCV 023634RG $MAPMM 006436RG $WRD36 026266RG .FEMOD= ****** GX
TTTPRP 006010R 003 $DLGEN 021170RG $MBPHS 031444RG $WRITB 011032RG .FILSW 000047RG 004
TXBIMM 006024R 003 $DLGEX 017422RG $MCBLD 001066RG $WRITC 010624RG .GFNR = 102000
KLIXC -- KL INSTRUCTION EXECUTI MACRO M1113 03-APR-86 20:55 PAGE 240-4
SYMBOL TABLE
.HRDWR= ****** GX .LDCK1= 046000 .PCAB2= 151000 .SSCLK= 002000 .SYOSW 000533RG 004
.INICL= 070000 .LDCK2= 047000 .PCAB3= 152000 .STPCL= 000000 .SYOVB 001614RG 004
.IRLTC= 014000 .LDDIS= 045000 .PCAB4= 153000 .STRCL= 001000 .SYSTA 000526RG 004
.KLCPU= ****** GX .LDRJD= 064000 .PRDCT= ****** GX .SYATT 002652RG 004 .TKTN = ****** GX
.KLFCF= ****** GX .LDRJV= 063000 .PTSEL 000524RG 004 .SYFID= 002620RG 004 .TPSHI 016270RG
.KLISV 000060RG 004 .LDRM1= 060000 .PTSW 000034RG 004 .SYFNB 002620RG 004 .TRKLP 000040RG 004
.KLITK= ****** GX .LDRM2= 061000 .RCRM1= 147000 .SYFNM= 002626RG 004 .TRKSW 000036RG 004
.KLIWD= ****** GX .LDRM3= 062000 .RCRM2= 146000 .SYIBA 000536RG 004 .TRKTT 000037RG 004
.KLREG 000244RG 004 .LDSEL= 044000 .RCRM3= 145000 .SYIBC 000540RG 004 .TTIBF 000304RG 004
.LCRDL= 052000 .MCA25 000035RG 004 .RCRM4= 144000 .SYIBF 000566RG 004 .TTOBF 000344RG 004
.LCRDR= 051000 .MCBFN 000456RG 004 .RCSPF= 141000 .SYIFN 000542RG 004 .UFNSW 000026RG 004
.LCRM1= 057000 .MCBSW 000025RG 004 .RDJ14= 134000 .SYIRC 000534RG 004 .USRFN 000476RG 004
.LCRM2= 056000 .MCSW 000051RG 004 .RDJ71= 135000 .SYISW 000532RG 004 .WORK 000014RG 004
.LCRM3= 055000 .MEMRS= 076000 .RDMAB= 133000 .SYIVB 000562RG 004 .WRITR= ****** GX
.LCRM4= 054000 .MFCT 000046RG 004 .SECLK= 003000 .SYOBA 001570RG 004 .WRMBX= 071000
.LCRM5= 053000 .MFSW 000045RG 004 .SETMR= 007000 .SYOBC 001572RG 004 .ZERO 000000RG 004
.LDAR = 077000 .NCACH 000064RG 004 .SETRN= 011000 .SYOBF 001620RG 004 ..DSEV= ****** GX
.LDBRL= 043000 .NOERR= ****** GX .SNSAV 000062RG 004 .SYOFN 001574RG 004 ..DTP2= ****** GX
.LDBRR= 042000 .PCAB1= 150000 .SPSAV 000022RG 004 .SYORC 001566RG 004 ..DTSP= ****** GX
. ABS. 000000 000
032004 001
DATA 002444 002
TEXT 006142 003
GLBL 002670 004
ERRORS DETECTED: 0
VIRTUAL MEMORY USED: 18265 WORDS ( 72 PAGES)
DYNAMIC MEMORY: 19718 WORDS ( 75 PAGES)
ELAPSED TIME: 00:06:39
,[50,20]KLIMON/CR/-SP=[50,30]KLIMON.TMP
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 1
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
AAX = 000020 #199-9527
APR = 000000 11-566 #55-1952 55-1974 55-1974 #58-2157 #199-9528 199-9543 199-9543 #228-10935
228-10964 228-10964
ATLST 002306 R #223-10657 224-10743
A.LULU = 000002 #156-7000 #156-7002 #156-7005 #156-7008 #156-7010 #156-7012
A.LUNA = 000004 #156-7000 #156-7002 #156-7005 #156-7008 #156-7010 #156-7012
A.LUNU = 000006 #156-7000 #156-7002 #156-7005 #156-7008 #156-7010 #156-7012
BAF0 = ****** GX 81-3718 81-3718 87-4055 87-4055
BITTBL = ****** GX 78-3412 80-3647 81-3753 87-4059
BIT0 = 000001 #4-196 #8-472 178-8363 199-9534
BIT1 = 000002 #4-196 #8-472 199-9532
BIT10 = 002000 #4-196 #8-472
BIT11 = 004000 #4-196 #8-472
BIT12 = 010000 #4-196 #8-472
BIT13 = 020000 #4-196 #8-472
BIT14 = 040000 #4-196 #8-472
BIT15 = 100000 #4-196 #8-472 62-2344 78-3329 78-3392 80-3637 81-3738 84-3895 85-3959
86-4011 91-4216 103-4722 105-4809 105-4811 121-5346 146-6393 154-6821 154-6822
154-6829 154-6833 154-6834 173-7843
BIT2 = 000004 #4-196 #8-472 199-9530
BIT3 = 000010 #4-196 #8-472 199-9533
BIT4 = 000020 #4-196 #8-472 199-9527
BIT5 = 000040 #4-196 #8-472
BIT6 = 000100 #4-196 #8-472
BIT7 = 000200 #4-196 #8-472
BIT8 = 000400 #4-196 #8-472
BIT9 = 001000 #4-196 #8-472
BLKI = 000000 11-565 11-567 #58-2158
BLKO = 000002 11-563 #55-1953 55-1974 55-1974 #175-8121 175-8139 175-8139
BMMSTB 000236 RG 85-3969 91-4249 #192-9082
BPARER = 000020 #4-196 #8-472
BRCLK = 000005 #11-558
BY$$0 = 000000 #51-1776 51-1776 51-1776 #51-1776 51-1776 51-1776 #51-1776 51-1776 51-1776
#51-1776 51-1776 51-1776 #51-1776 51-1776 51-1776 #51-1776 51-1776 51-1776
#51-1776 51-1776 #51-1777 51-1777 51-1777 #51-1777 51-1777 #51-1778 51-1778
51-1778 #51-1778 51-1778 #51-1779 51-1779 51-1779 #51-1779 51-1779 #55-1968
55-1968 55-1968 #55-1968 55-1968 #55-1969 55-1969 55-1969 #55-1969 55-1969
#55-1970 55-1970 55-1970 #55-1970 55-1970 #55-1971 55-1971 55-1971 #55-1971
55-1971 #55-1972 55-1972 55-1972 #55-1972 55-1972 #55-1973 55-1973 55-1973
#55-1973 55-1973 #55-1974 55-1974 55-1974 #55-1974 55-1974 #55-1975 55-1975
55-1975 #55-1975 55-1975 #88-4106 88-4106 88-4106 #88-4106 88-4106 #88-4107
88-4107 88-4107 #88-4107 88-4107 #123-5411 123-5411 123-5411 #123-5411 123-5411
#123-5414 123-5414 123-5414 #123-5414 123-5414 #127-5655 127-5655 127-5655 #127-5655
127-5655 #127-5656 127-5656 127-5656 #127-5656 127-5656 #131-5852 131-5852 131-5852
#131-5852 131-5852 #131-5854 131-5854 131-5854 #131-5854 131-5854 #137-6091 137-6091
137-6091 #137-6091 137-6091 #154-6839 154-6839 154-6839 #154-6839 154-6839 154-6839
#154-6839 154-6839 #154-6848 154-6848 154-6848 #154-6848 154-6848 #154-6849 154-6849
154-6849 #154-6849 154-6849 154-6849 #154-6849 154-6849 #154-6850 154-6850 154-6850
#154-6850 154-6850 #175-8139 175-8139 175-8139 #175-8139 175-8139 #175-8148 175-8148
175-8148 #175-8148 175-8148 #183-8590 183-8590 183-8590 #183-8590 183-8590 183-8590
#183-8590 183-8590 183-8590 #183-8590 183-8590 183-8590 #183-8590 183-8590 183-8590
#183-8590 183-8590 183-8590 #183-8590 183-8590 #183-8592 183-8592 183-8592 #183-8592
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 2
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
183-8592 #183-8593 183-8593 183-8593 #183-8593 183-8593 183-8593 #183-8593 183-8593
#183-8594 183-8594 183-8594 #183-8594 183-8594 183-8594 #183-8594 183-8594 #183-8595
183-8595 183-8595 #183-8595 183-8595 183-8595 #183-8595 183-8595 #183-8596 183-8596
183-8596 #183-8596 183-8596 183-8596 #183-8596 183-8596 183-8596 #183-8596 183-8596
#190-8913 190-8913 190-8913 #190-8913 190-8913 190-8913 #190-8913 190-8913 #190-8923
190-8923 190-8923 #190-8923 190-8923 #199-9543 199-9543 199-9543 #199-9543 199-9543
199-9543 #199-9543 199-9543 199-9543 #199-9543 199-9543 199-9543 #199-9543 199-9543
199-9543 #199-9543 199-9543 199-9543 #199-9543 199-9543 #199-9544 199-9544 199-9544
#199-9544 199-9544 199-9544 #199-9544 199-9544 199-9544 #199-9544 199-9544 199-9544
#199-9544 199-9544 199-9544 #199-9544 199-9544 #199-9545 199-9545 199-9545 #199-9545
199-9545 #199-9546 199-9546 199-9546 #199-9546 199-9546 #199-9550 199-9550 199-9550
#199-9550 199-9550 199-9550 #199-9550 199-9550 199-9550 #199-9550 199-9550 199-9550
#199-9550 199-9550 199-9550 #199-9550 199-9550 199-9550 #199-9550 199-9550 #199-9553
199-9553 199-9553 #199-9553 199-9553 #199-9555 199-9555 199-9555 #199-9555 199-9555
#199-9557 199-9557 199-9557 #199-9557 199-9557 #199-9560 199-9560 199-9560 #199-9560
199-9560 #228-10964 228-10964 228-10964 #228-10964 228-10964 228-10964 #228-10964 228-10964
228-10964 #228-10964 228-10964 228-10964 #228-10964 228-10964 228-10964 #228-10964 228-10964
#232-11190 232-11190 232-11190 #232-11190 232-11190 #232-11192 232-11192 232-11192 #232-11192
232-11192 #232-11194 232-11194 232-11194 #232-11194 232-11194
BY$$1 = 000000 #51-1776 51-1776 51-1776 #51-1776 51-1776 51-1776 #51-1776 51-1776 51-1776
#51-1776 51-1776 51-1776 #51-1776 51-1776 51-1776 #51-1776 51-1776 51-1776
#51-1776 51-1776 #51-1777 51-1777 51-1777 #51-1777 51-1777 #51-1778 51-1778
51-1778 #51-1778 51-1778 #51-1779 51-1779 51-1779 #51-1779 51-1779 #55-1968
55-1968 55-1968 #55-1968 55-1968 #55-1969 55-1969 55-1969 #55-1969 55-1969
#55-1970 55-1970 55-1970 #55-1970 55-1970 #55-1971 55-1971 55-1971 #55-1971
55-1971 #55-1972 55-1972 55-1972 #55-1972 55-1972 #55-1973 55-1973 55-1973
#55-1973 55-1973 #55-1974 55-1974 55-1974 #55-1974 55-1974 #55-1975 55-1975
55-1975 #55-1975 55-1975 #88-4106 88-4106 88-4106 #88-4106 88-4106 #88-4107
88-4107 88-4107 #88-4107 88-4107 #123-5411 123-5411 123-5411 #123-5411 123-5411
#123-5414 123-5414 123-5414 #123-5414 123-5414 #127-5655 127-5655 127-5655 #127-5655
127-5655 #127-5656 127-5656 127-5656 #127-5656 127-5656 #131-5852 131-5852 131-5852
#131-5852 131-5852 #131-5854 131-5854 131-5854 #131-5854 131-5854 #137-6091 137-6091
137-6091 #137-6091 137-6091 #154-6839 154-6839 154-6839 #154-6839 154-6839 154-6839
#154-6839 154-6839 #154-6848 154-6848 154-6848 #154-6848 154-6848 #154-6849 154-6849
154-6849 #154-6849 154-6849 154-6849 #154-6849 154-6849 #154-6850 154-6850 154-6850
#154-6850 154-6850 #175-8139 175-8139 175-8139 #175-8139 175-8139 #175-8148 175-8148
175-8148 #175-8148 175-8148 #183-8590 183-8590 183-8590 #183-8590 183-8590 183-8590
#183-8590 183-8590 183-8590 #183-8590 183-8590 183-8590 #183-8590 183-8590 183-8590
#183-8590 183-8590 183-8590 #183-8590 183-8590 #183-8592 183-8592 183-8592 #183-8592
183-8592 #183-8593 183-8593 183-8593 #183-8593 183-8593 183-8593 #183-8593 183-8593
#183-8594 183-8594 183-8594 #183-8594 183-8594 183-8594 #183-8594 183-8594 #183-8595
183-8595 183-8595 #183-8595 183-8595 183-8595 #183-8595 183-8595 #183-8596 183-8596
183-8596 #183-8596 183-8596 183-8596 #183-8596 183-8596 183-8596 #183-8596 183-8596
#190-8913 190-8913 190-8913 #190-8913 190-8913 190-8913 #190-8913 190-8913 #190-8923
190-8923 190-8923 #190-8923 190-8923 #199-9543 199-9543 199-9543 #199-9543 199-9543
199-9543 #199-9543 199-9543 199-9543 #199-9543 199-9543 199-9543 #199-9543 199-9543
199-9543 #199-9543 199-9543 199-9543 #199-9543 199-9543 #199-9544 199-9544 199-9544
#199-9544 199-9544 199-9544 #199-9544 199-9544 199-9544 #199-9544 199-9544 199-9544
#199-9544 199-9544 199-9544 #199-9544 199-9544 #199-9545 199-9545 199-9545 #199-9545
199-9545 #199-9546 199-9546 199-9546 #199-9546 199-9546 #199-9550 199-9550 199-9550
#199-9550 199-9550 199-9550 #199-9550 199-9550 199-9550 #199-9550 199-9550 199-9550
#199-9550 199-9550 199-9550 #199-9550 199-9550 199-9550 #199-9550 199-9550 #199-9553
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 3
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
199-9553 199-9553 #199-9553 199-9553 #199-9555 199-9555 199-9555 #199-9555 199-9555
#199-9557 199-9557 199-9557 #199-9557 199-9557 #199-9560 199-9560 199-9560 #199-9560
199-9560 #228-10964 228-10964 228-10964 #228-10964 228-10964 228-10964 #228-10964 228-10964
228-10964 #228-10964 228-10964 228-10964 #228-10964 228-10964 228-10964 #228-10964 228-10964
#232-11190 232-11190 232-11190 #232-11190 232-11190 #232-11192 232-11192 232-11192 #232-11192
232-11192 #232-11194 232-11194 232-11194 #232-11194 232-11194
BY$$2 = 000000 #51-1776 51-1776 51-1776 #51-1776 51-1776 51-1776 #51-1776 51-1776 51-1776
#51-1776 51-1776 51-1776 #51-1776 51-1776 51-1776 #51-1776 51-1776 51-1776
#51-1776 51-1776 #51-1776 51-1776 #51-1776 51-1776 #51-1776 51-1776 #51-1776
51-1776 #51-1776 51-1776 #51-1776 51-1776 #51-1777 51-1777 #51-1777 51-1777
#51-1777 51-1777 #51-1778 51-1778 #51-1778 51-1778 #51-1779 51-1779 51-1779
#51-1779 51-1779 #51-1779 51-1779 #55-1968 55-1968 55-1968 #55-1968 55-1968
#55-1968 55-1968 #55-1969 55-1969 #55-1969 55-1969 #55-1969 55-1969 #55-1970
55-1970 #55-1970 55-1970 #55-1970 55-1970 #55-1971 55-1971 #55-1971 55-1971
#55-1971 55-1971 #55-1972 55-1972 #55-1972 55-1972 #55-1972 55-1972 #55-1973
55-1973 #55-1973 55-1973 #55-1973 55-1973 #55-1974 55-1974 #55-1974 55-1974
#55-1974 55-1974 #55-1975 55-1975 #55-1975 55-1975 #55-1975 55-1975 #88-4106
88-4106 #88-4106 88-4106 #88-4106 88-4106 #88-4107 88-4107 #88-4107 88-4107
#88-4107 88-4107 #123-5411 123-5411 123-5411 #123-5411 123-5411 #123-5411 123-5411
#123-5414 123-5414 123-5414 #123-5414 123-5414 #123-5414 123-5414 #127-5655 127-5655
127-5655 #127-5655 127-5655 #127-5655 127-5655 #127-5656 127-5656 127-5656 #127-5656
127-5656 #127-5656 127-5656 #131-5852 131-5852 #131-5852 131-5852 #131-5854 131-5854
131-5854 #131-5854 131-5854 #131-5854 131-5854 #137-6091 137-6091 137-6091 #137-6091
137-6091 #137-6091 137-6091 #154-6839 154-6839 154-6839 #154-6839 154-6839 #154-6839
154-6839 #154-6839 154-6839 #154-6848 154-6848 154-6848 #154-6848 154-6848 #154-6848
154-6848 #154-6849 154-6849 154-6849 #154-6849 154-6849 #154-6849 154-6849 #154-6849
154-6849 #154-6850 154-6850 154-6850 #154-6850 154-6850 #154-6850 154-6850 #175-8139
175-8139 #175-8139 175-8139 #175-8139 175-8139 #175-8148 175-8148 175-8148 #175-8148
175-8148 #175-8148 175-8148 #183-8590 183-8590 #183-8590 183-8590 #183-8590 183-8590
#183-8590 183-8590 #183-8590 183-8590 #183-8590 183-8590 #183-8590 183-8590 #183-8590
183-8590 #183-8592 183-8592 183-8592 #183-8592 183-8592 #183-8592 183-8592 #183-8593
183-8593 183-8593 #183-8593 183-8593 #183-8593 183-8593 #183-8593 183-8593 #183-8594
183-8594 #183-8594 183-8594 #183-8594 183-8594 #183-8595 183-8595 #183-8595 183-8595
#183-8595 183-8595 #183-8596 183-8596 #183-8596 183-8596 #183-8596 183-8596 #183-8596
183-8596 #190-8913 190-8913 #190-8913 190-8913 #190-8913 190-8913 #190-8913 190-8913
#190-8923 190-8923 190-8923 #190-8923 190-8923 #190-8923 190-8923 #199-9543 199-9543
#199-9543 199-9543 #199-9543 199-9543 #199-9543 199-9543 #199-9543 199-9543 #199-9543
199-9543 #199-9543 199-9543 #199-9543 199-9543 #199-9544 199-9544 #199-9544 199-9544
#199-9544 199-9544 #199-9544 199-9544 #199-9544 199-9544 #199-9544 199-9544 #199-9544
199-9544 #199-9545 199-9545 #199-9545 199-9545 #199-9545 199-9545 #199-9546 199-9546
#199-9546 199-9546 #199-9546 199-9546 #199-9550 199-9550 #199-9550 199-9550 #199-9550
199-9550 #199-9550 199-9550 #199-9550 199-9550 #199-9550 199-9550 #199-9550 199-9550
#199-9550 199-9550 #199-9553 199-9553 199-9553 #199-9553 199-9553 199-9553 #199-9553
199-9553 199-9553 #199-9553 199-9553 199-9553 #199-9553 199-9553 199-9553 #199-9553
199-9553 199-9553 #199-9553 199-9553 #199-9553 199-9553 #199-9555 199-9555 199-9555
#199-9555 199-9555 199-9555 #199-9555 199-9555 199-9555 #199-9555 199-9555 199-9555
#199-9555 199-9555 199-9555 #199-9555 199-9555 199-9555 #199-9555 199-9555 #199-9555
199-9555 #199-9557 199-9557 199-9557 #199-9557 199-9557 199-9557 #199-9557 199-9557
199-9557 #199-9557 199-9557 199-9557 #199-9557 199-9557 199-9557 #199-9557 199-9557
199-9557 #199-9557 199-9557 #199-9557 199-9557 #199-9560 199-9560 199-9560 #199-9560
199-9560 #199-9560 199-9560 #228-10964 228-10964 #228-10964 228-10964 #228-10964 228-10964
#228-10964 228-10964 #228-10964 228-10964 #228-10964 228-10964 #228-10964 228-10964 #232-11190
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 4
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
232-11190 232-11190 #232-11190 232-11190 #232-11190 232-11190 #232-11192 232-11192 232-11192
#232-11192 232-11192 #232-11192 232-11192 #232-11194 232-11194 232-11194 #232-11194 232-11194
#232-11194 232-11194
BY$$3 = 000000 #51-1776 51-1776 51-1776 #51-1776 51-1776 51-1776 #51-1776 51-1776 51-1776
#51-1776 51-1776 51-1776 #51-1776 51-1776 51-1776 #51-1776 51-1776 51-1776
#51-1776 51-1776 #51-1777 51-1777 #51-1779 51-1779 51-1779 #51-1779 51-1779
#55-1968 55-1968 55-1968 #55-1968 55-1968 #55-1969 55-1969 #55-1970 55-1970
#55-1971 55-1971 #55-1972 55-1972 #55-1973 55-1973 #55-1974 55-1974 #55-1975
55-1975 #88-4106 88-4106 #88-4107 88-4107 #123-5411 123-5411 123-5411 #123-5411
123-5411 #123-5414 123-5414 123-5414 #123-5414 123-5414 #127-5655 127-5655 127-5655
#127-5655 127-5655 #127-5656 127-5656 127-5656 #127-5656 127-5656 #131-5854 131-5854
131-5854 #131-5854 131-5854 #137-6091 137-6091 137-6091 #137-6091 137-6091 #154-6839
154-6839 154-6839 #154-6839 154-6839 #154-6848 154-6848 154-6848 #154-6848 154-6848
#154-6849 154-6849 154-6849 #154-6849 154-6849 #154-6850 154-6850 154-6850 #154-6850
154-6850 #175-8139 175-8139 #175-8148 175-8148 175-8148 #175-8148 175-8148 #183-8590
183-8590 #183-8592 183-8592 183-8592 #183-8592 183-8592 #183-8593 183-8593 183-8593
#183-8593 183-8593 #190-8913 190-8913 #190-8923 190-8923 190-8923 #190-8923 190-8923
#199-9543 199-9543 #199-9544 199-9544 #199-9545 199-9545 #199-9546 199-9546 #199-9550
199-9550 #199-9553 199-9553 199-9553 #199-9553 199-9553 199-9553 #199-9553 199-9553
199-9553 #199-9553 199-9553 199-9553 #199-9553 199-9553 199-9553 #199-9553 199-9553
199-9553 #199-9553 199-9553 #199-9555 199-9555 199-9555 #199-9555 199-9555 199-9555
#199-9555 199-9555 199-9555 #199-9555 199-9555 199-9555 #199-9555 199-9555 199-9555
#199-9555 199-9555 199-9555 #199-9555 199-9555 #199-9557 199-9557 199-9557 #199-9557
199-9557 199-9557 #199-9557 199-9557 199-9557 #199-9557 199-9557 199-9557 #199-9557
199-9557 199-9557 #199-9557 199-9557 199-9557 #199-9557 199-9557 #199-9560 199-9560
199-9560 #199-9560 199-9560 #228-10964 228-10964 #232-11190 232-11190 232-11190 #232-11190
232-11190 #232-11192 232-11192 232-11192 #232-11192 232-11192 #232-11194 232-11194 232-11194
#232-11194 232-11194
BY$$4 = 000000 #51-1776 51-1776 #51-1776 51-1776 #51-1776 51-1776 #51-1776 51-1776 #51-1776
51-1776 #51-1776 51-1776 #51-1776 51-1776 #51-1777 51-1777 #51-1779 51-1779
#51-1779 51-1779 #55-1968 55-1968 #55-1968 55-1968 #55-1969 55-1969 #55-1970
55-1970 #55-1971 55-1971 #55-1972 55-1972 #55-1973 55-1973 #55-1974 55-1974
#55-1975 55-1975 #88-4106 88-4106 #88-4107 88-4107 #123-5411 123-5411 #123-5411
123-5411 #123-5414 123-5414 #123-5414 123-5414 #127-5655 127-5655 #127-5655 127-5655
#127-5656 127-5656 #127-5656 127-5656 #131-5854 131-5854 #131-5854 131-5854 #137-6091
137-6091 #137-6091 137-6091 #154-6839 154-6839 #154-6839 154-6839 #154-6848 154-6848
#154-6848 154-6848 #154-6849 154-6849 #154-6849 154-6849 #154-6850 154-6850 #154-6850
154-6850 #175-8139 175-8139 #175-8148 175-8148 #175-8148 175-8148 #183-8590 183-8590
#183-8592 183-8592 #183-8592 183-8592 #183-8593 183-8593 #183-8593 183-8593 #190-8913
190-8913 #190-8923 190-8923 #190-8923 190-8923 #199-9543 199-9543 #199-9544 199-9544
#199-9545 199-9545 #199-9546 199-9546 #199-9550 199-9550 #199-9553 199-9553 #199-9553
199-9553 #199-9553 199-9553 #199-9553 199-9553 #199-9553 199-9553 #199-9553 199-9553
#199-9553 199-9553 #199-9555 199-9555 #199-9555 199-9555 #199-9555 199-9555 #199-9555
199-9555 #199-9555 199-9555 #199-9555 199-9555 #199-9555 199-9555 #199-9557 199-9557
#199-9557 199-9557 #199-9557 199-9557 #199-9557 199-9557 #199-9557 199-9557 #199-9557
199-9557 #199-9557 199-9557 #199-9560 199-9560 #199-9560 199-9560 #228-10964 228-10964
#232-11190 232-11190 #232-11190 232-11190 #232-11192 232-11192 #232-11192 232-11192 #232-11194
232-11194 #232-11194 232-11194
CCA = 000014 #55-1954 55-1969 55-1969 #88-4098 88-4106 88-4106 #175-8120 175-8139 175-8139
CCFAIL = ****** GX 172-7798 172-7806
CDD = 000020 #4-196 #8-472
CECLK = 000004 #11-555
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 5
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
CFGEXT 006076 R 83-3849 83-3849 #85-3948
CFGINM 001222 R #82-3825 84-3934
CFGINT 005624 R 83-3844 83-3844 #84-3873
CFGMAC 001441 R #82-3831 86-3998
CFGMNM 001370 R #82-3829 86-4036
CFGMOS 006234 R 83-3855 83-3855 #86-3989
CFGXMC 004270 R 78-3264 #78-3287
CFGXNM 001305 R #82-3827 85-3972
CFIMIL 004702 R 78-3437 #78-3459
CFIMQ1 000632 R #77-3231 78-3281 78-3448
CFIMQ2 000752 R #77-3235 78-3362
CFIMQ3 001024 R #77-3237 78-3366
CFIMQ4 001051 R #77-3239 78-3471
CFMMQ1 000707 R #77-3233 78-3263 78-3451
CFXMQ1 001547 R #90-4177 91-4198
CFXMQ2 001620 R #90-4179 91-4227
CHKIMC 005070 R 80-3592 #80-3603
CHKMMC 005314 R 81-3692 #81-3705
CHNPNT = 000001 #4-196 #8-472
CIMNXC 001136 R #79-3550 80-3611 81-3711
CIMNXM 001167 R #79-3552 80-3656 81-3758
CLRMR = 000006 #11-556
CM = 000004 #199-9530 200-9640
CNUPE = 000002 #4-196 #8-472
CNVCHK 015146 R 151-6712 151-6712 #152-6756
CNVWRD 015154 R 151-6690 151-6690 151-6697 151-6697 151-6703 151-6703 #152-6760
COMCSE 005552 RG 78-3315 78-3444 78-3503 91-4209 91-4256 161-7324 162-7361 165-7497 166-7543
168-7601 171-7721 174-7963 175-8028 176-8219 #190-8927
CONBUT = 000012 #11-560
CONFGR = ****** GX *171-7753 *172-7790
CONFIG = ****** GX 172-7827 172-7827
CONO = 000004 #55-1955 55-1970 55-1970 #88-4099 88-4107 88-4107 #183-8577 183-8590 183-8590
#199-9529 199-9543 199-9543 199-9544 199-9544 199-9545 199-9545 199-9550 199-9550
#228-10936 228-10964 228-10964
CONTI = ****** GX 80-3618 80-3671 *80-3676 84-3905 86-3996
CPUNUM = 000002 #4-196 #8-472
CR = 000015 #190-8899 199-9472 #223-10645 223-10670 226-10845
CS.EXP = 177670 #4-196 #8-472
CTLS = 000040 #8-436 73-3112 146-6389 173-7839 192-9074 192-9078
CXMDOL 001504 R #90-4175 91-4192
CXMIBM 001677 R #90-4181 91-4252
C.ACHE = 000000 #3-186 55-1949 68-2735 70-2862 70-2940 70-2956 70-3002 74-3123 88-4095
142-6261 164-7466 171-7724 175-8044 183-8589 187-8805 191-8966 191-8992 191-9023
192-9045 195-9256 199-9548 200-9599 229-11014
DACAB 000000 R #51-1776 *52-1815 52-1818 *52-1820 52-1822 *53-1853 53-1854
DACAD 000012 R #51-1778 52-1825 53-1860
DACBF 000015 R #51-1779 54-1899
DACBI 000005 R #51-1777 52-1821 53-1855
DATAI = 000001 #55-1956 55-1969 55-1969 #88-4100 88-4106 88-4106
DATAO = 000003 #51-1770 51-1777 51-1777 #199-9531 199-9546 199-9546
DBEFRC = ****** GX *171-7744 *172-7808
DCAPGM 000023 R #55-1967 56-1999
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 6
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
DCARCA 000040 R #55-1970
DCARFL 000101 R #55-1977 56-2021 56-2048 56-2050 56-2052 56-2054
DCASIA 000033 R #55-1969
DCAWRF 000064 R #55-1974 56-2004 56-2062
DCBADR 000134 R #58-2170 *62-2341 *62-2344 62-2349 64-2428 64-2436 65-2512 *65-2535 65-2545
65-2568
DCBCBF 000156 R #58-2174 63-2382 64-2442 64-2473 64-2480 64-2486
DCBCNT 000152 R #58-2172 *60-2249 62-2350 *64-2457 *65-2533 *66-2598 66-2599
DCBDAT 000136 R #58-2171 60-2250
DCBDBF 000172 R #58-2175 65-2519 65-2550 65-2556 65-2562
DCBFIX 000154 R #58-2173 *64-2425 64-2455 *64-2458 64-2464 *64-2496 *65-2509 65-2531 *65-2534
65-2540 *65-2572
DCBFNM 000114 R #58-2166 60-2237
DCFCFN 000210 R #68-2722 70-2874 70-2881
DCFLFN 000230 R #68-2727 70-2996
DCFRJT 000250 R #68-2732 68-2743 70-2896
DCOMST = 000001 #4-196 #8-472
DCSRCA 000273 R #88-4107 89-4129
DCSSIA 000266 R #88-4106 89-4126
DDCDAI 000300 R #92-4301 93-4325
DDCDAO 000314 R #92-4302 93-4341
DDCWAT 000334 R 92-4302 #92-4303
DDDDEL 000402 R #94-4389 98-4530
DDDFNA 000352 R #94-4388 98-4526
DDDRNA 000420 R #94-4390 98-4535
DDLACR 000506 R #103-4722 104-4753
DDLFNA 000456 R #103-4721 104-4749
DDLGLN 000450 R #103-4720 104-4745
DDLRAT 000564 R 103-4722 #103-4724
DDLRNA 000534 R #103-4723 104-4765
DDNACE 000660 R #105-4811 106-4845
DDNCRE 000604 R #105-4809 106-4837
DDNDEL 000706 R #105-4812 106-4859
DDNENA 000630 R #105-4810 106-4841
DDNGLN 000576 R #105-4808 106-4833
DDNRAT 000722 R 105-4811 #105-4813
DDPDAI 000734 R #107-4899 108-4916
DDPDAO 000764 R #107-4901 108-4921
DDPDEL 000750 R #107-4900 108-4920
DDPRNA 001000 R #107-4902 108-4926
DDXEXT 001030 R #121-5346 122-5359
DEP = 010000 #4-196 #8-472
DEX = 000400 #4-196 #8-472
DEXDON = 000004 #4-196 #8-472
DEXWD1 = 174406 #4-196 #8-472
DEXWD2 = 174404 #4-196 #8-472
DEXWD3 = 174402 #4-196 #8-472
DFCABF 001103 R #123-5414 126-5601 *126-5617 *126-5619
DFCBF 001074 R #123-5411 124-5438 124-5446 *124-5452 124-5453 124-5454 *124-5454 *124-5469 *124-5470
124-5472 *124-5477 *124-5478 *124-5479 *124-5480 *124-5481 124-5482 125-5511 125-5515
125-5516 *125-5535 *125-5536 125-5537 125-5561 125-5562 125-5566
DFCFL2 001101 R #123-5412 125-5539 *125-5543 *125-5564
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 7
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
DFCFL3 001102 R #123-5413 125-5557 *125-5559 *125-5563
DFCRFL 001054 R #123-5402 125-5509
DFCWFL 001064 R #123-5406 124-5471
DFDABF 001115 R #127-5656 130-5782 130-5783 130-5806
DFDDBF 001110 R #127-5655 *128-5709 128-5710 129-5736
DFEAD 001146 R 131-5850 131-5851 #131-5852 132-5891 133-5934 134-5950 134-5955
DFEBF 001152 R 131-5850 131-5851 #131-5854 132-5886 132-5891 133-5934 133-5937
DFEDPB 001122 R #131-5850 132-5892
DFEEXB 001134 R #131-5851 133-5933
DFRRDB 001160 R #135-6013 *136-6038 136-6039 136-6040
DFUNC = 000200 #4-196 #8-472
DFWBF 001216 R 137-6090 #137-6091
DFWEDB 001204 R #137-6090 139-6145
DFWWDB 001172 R #137-6089 *138-6117 138-6127 138-6128
DFXXDB 001224 R #140-6191 *141-6223 141-6224 141-6225
DF.DMG = 000004 #4-196 #8-472
DF.DMN = 000007 #4-196 #8-472
DF.DOR = 000001 #4-196 #8-472
DF.EHG = 000010 #4-196 #8-472
DF.EHM = 000011 #4-196 #8-472
DF.EMG = 000005 #4-196 #8-472
DF.EMN = 000006 #4-196 #8-472
DF.KLR = 000012 #4-196 #8-472 135-6013
DF.KLW = 000013 #4-196 #8-472 137-6089
DF.KLX = 000014 #4-196 #8-472 140-6191
DF.OFF = 000002 #4-196 #8-472
DF.ON = 000003 #4-196 #8-472
DF.PDP = 000016 #4-196 #8-472 131-5850
DF.PEX = 000015 #4-196 #8-472 131-5851 137-6090
DGCFNM 001236 R #142-6265 143-6288
DGMFNM 001256 R #145-6365 146-6397
DGPFNM 001276 R #148-6496 149-6516
DIAG1 = 174430 #4-196 #8-472
DIAG2 = 174432 #4-196 #8-472
DIAG3 = 174436 #4-196 #8-472
DIKL10 = 000010 #4-196 #8-472
DLYCNT = 174400 #4-196 #8-472
DM = 000002 #199-9532 200-9640
DMABM = ****** GX *85-3983
DMANXM = ****** GX 85-3969 91-4250
DMA2TS = ****** GX 85-3963 91-4190
DMA20 = ****** GX 83-3847 91-4188 173-7864
DMRBF 001434 R #154-6848 155-6886
DMRKW2 001446 R 154-6819 #154-6850
DMRMMR 001414 R 154-6837 #154-6839
DMRMOS 001441 R #154-6849 155-6913
DMRMRT 001322 R #154-6820 155-6878
DMRSRL = 000005 #154-6847 155-6925
DMRSRT 001422 R #154-6842 154-6847 155-6926
DNIBOO 002354 R #228-10945 229-11041 *229-11042 229-11043 *229-11044 229-11045
DNILPO 001474 R #156-7004 157-7050
DNISYF 001524 RG #156-7011 157-7059 231-11153
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 8
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
DNISYI 001504 RG #156-7007 157-7055 231-11151
DNISYO 001514 RG #156-7009 157-7057 231-11152
DNITTI 001454 R #156-6999 157-7045
DNITTO 001464 R #156-7001 157-7047
DON10C = 040000 #4-196 #8-472 155-6874
DON10S = 100000 #4-196 #8-472
DON11C = 000100 #4-196 #8-472 155-6874
DON11S = 000200 #4-196 #8-472
DPS4 = 040000 #4-196 #8-472
DQBFNM 001534 RG 62-2291 #160-7257 163-7384
DQSAPR 001670 R #175-8147 179-8406 179-8409 179-8412 179-8416
DQSCBF 001640 R #175-8143 181-8479 181-8501
DQSCF3 001654 R #175-8145 181-8483
DQSCSW 001620 R #175-8138 182-8525
DQSHWT 001676 R #175-8150 178-8364
DQSMKT 001626 R #175-8141 182-8536
DQSP0 001554 RG 174-7925 #175-8132
DQSP01 001604 RG 174-7939 #175-8136
DQSP1 001570 RG 174-7928 #175-8134
DRESET = 000100 #4-196 #8-472 155-6871
DRSCEN 001714 R #183-8590 187-8811
DRSDBL 001712 RG #183-8588 *184-8636 *185-8666 185-8682 *186-8754 186-8770
DRSFCR 001736 R #183-8595 186-8756
DRSPEN 001726 R #183-8593 187-8818
DRSPFR 001733 R #183-8594 184-8638
DRSPLD 001721 R #183-8592 187-8815
DRSSCR 001741 R #183-8596 185-8668
DRTBF 002110 R #190-8922 199-9448 199-9459
DRTBUF 002000 R 190-8917 #190-8920 199-9431 199-9437 199-9474
DRTDTE 024150 R 196-9357 196-9361 196-9365 #196-9369
DRTSTA 001774 R 190-8917 #190-8918
DRTWLB 001752 R #190-8916 *199-9475 *199-9478 199-9479 *199-9482 199-9483
DRTX71 001744 R #190-8912 195-9235
DR.DTE = 000011 #4-196 #8-472 131-5850 131-5851 135-6013 137-6089 137-6090 140-6191
DSEND = 000004 #4-196 #8-472
DSTBF 002166 R #199-9559 200-9635
DSTCEN 002142 R #199-9549
DSTRT 002116 R #199-9542 199-9547 200-9593
DSTRTL = 000004 #199-9547 200-9592
DST1B0 002147 R #199-9552 200-9615
DST1B1 002154 R #199-9554 200-9629
DST3B1 002161 R #199-9556 200-9619
DS04 = 004000 #4-196 #8-472 185-8677 186-8765
DS05 = 002000 #4-196 #8-472 234-11279
DS06 = 001000 #4-196 #8-472 134-5972 185-8680 186-8768 234-11273 235-11310 237-11372
DTECMD = 000451 #4-196 #8-472
DTEFLG = 000444 #4-196 #8-472
DTEF11 = 000450 #4-196 #8-472
DTEMTD = 000455 #4-196 #8-472
DTEMTI = 000456 #4-196 #8-472
DTLST 002322 R #223-10658 224-10752
DTNRB 002236 R #211-10149 216-10308
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 9
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
DTNXP 002230 R #211-10148
DTTRLB 002244 R #223-10655 224-10702
DTTSTA 002336 R 223-10655 223-10656 #223-10659 224-10703 224-10704 228-10897
DTTWLB 002264 R #223-10656 224-10693 224-10694 *224-10696 *224-10697 224-10698 *224-10712 *224-10713 224-10714
*224-10745 *224-10746 *226-10849 *226-10850 *227-10865 *227-10866 227-10867 227-10874 227-10875
*228-10896 *228-10897 *228-10901 228-10902 *228-10903
DUPE = 000020 #4-196 #8-472
DURE = 000004 #4-196 #8-472
DXBADR 002404 R #228-10959 229-11028
DXBCNM 002416 R #228-10963 229-11031
DXBDAT 002410 R #228-10961 229-11027
DXBFNM 002364 R #228-10954 229-11017
DXBLOC 002400 R #228-10958 *229-11047 *229-11051 *231-11149 *231-11150
DXCAD 002424 R #232-11189 234-11252 234-11257
DXCBF 002431 R #232-11191 238-11417
DXCBRC 002436 R #232-11193 239-11470
DXWRD1 = 002000 #4-196 #8-472
D$$H11 = 000010 #1-44
D1011 = 000040 #4-196 #8-472
EBSEL = 000100 #4-196 #8-472
EBUSPC = 000020 #4-196 #8-472
EBUSPS = 000004 #4-196 #8-472
EDONES = 040000 #4-196 #8-472
ED.PHY = 000200 #8-428 131-5850 131-5851 137-6090
EF.CRI = ****** GX 157-7092
EF.PR1 = ****** GX 157-7084
EPTR = 000000 #4-196 #8-472
ERRORX 020314 R 172-7784 172-7824 #172-7832
ERR10C = 010000 #4-196 #8-472 155-6874
ERR10S = 020000 #4-196 #8-472
ERR11C = 000001 #4-196 #8-472 155-6874
ERR11S = 000002 #4-196 #8-472
E.FFIL = 000006 #8-427
FITMEM = ****** GX 172-7817 172-7817
FM = 000010 #199-9533 200-9640
FMRECN = ****** GX *172-7769 *172-7788
FORPRO = 000020 #4-196 #8-472
FS = 000001 #199-9534
FTKLI = 000001 #3-190
F.TRCK = 000001 #3-188 124-5432 125-5501 126-5598 128-5674 129-5727 130-5781 132-5891 133-5934
136-6040 138-6128 141-6224 155-6867 155-6924 156-7003 157-7049 190-8915 191-8980
198-9412 223-10661 224-10681 224-10692 224-10699 224-10709 224-10715 224-10723 227-10868
228-10883 233-11219 234-11251 235-11304 237-11357
GAPCNT = ****** GX 172-7819
GAPTAB = ****** GX 172-7821
G.LUBA = 000004 #103-4720 #105-4808
G.LULU = 000002 #103-4720 #105-4808
G.LUNA = 000000 103-4720 105-4808
HDTAB 002200 R #207-9943 209-10062
HIBYTE = 177400 #4-196 #8-472
HLTNOE 022266 R 176-8273 176-8273 178-8325 178-8325 #180-8450
HRR = 000540 #55-1957 55-1972 55-1972
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 10
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
H.KCAC = ****** GX 179-8422
H.KEXT = ****** GX 179-8438
H.KMOS = ****** GX 179-8432
H.KPWR = ****** GX 178-8355 178-8366
H.KUDF = ****** GX 179-8427
IE.DFU = ****** GX 101-4639
IE.EBX = ****** GX 139-6147
IE.EOF = ****** GX 120-5301 224-10706
IE.NSF = ****** GX 60-2256 70-2877 101-4635 104-4762 104-4766 143-6291 146-6400 149-6519 151-6633
163-7387 229-11039
IE.UPN = ****** GX 188-8837
IFLOP = 100000 #4-196 #8-472
INIDMA = ****** GX 85-3954
INTMOD = ****** GX *84-3923
INTROF = 000010 #4-196 #8-472
INTRON = 000040 #4-196 #8-472
INTSON = 000001 #4-196 #8-472
INT10S = 000400 #4-196 #8-472
INT11C = 002000 #4-196 #8-472 155-6874
INT11S = 004000 #4-196 #8-472
IO.ACE = ****** GX 105-4811
IO.ACR = ****** GX 103-4722
IO.ATT = ****** GX 223-10657
IO.CRE = ****** GX 105-4809
IO.DAC = ****** GX 92-4301 92-4302 107-4899 107-4901
IO.DEL = ****** GX 94-4389 105-4812 107-4900
IO.DET = ****** GX 223-10658
IO.ENA = ****** GX 105-4810
IO.EXT = ****** GX 121-5346
IO.FNA = ****** GX 94-4388 103-4721 157-7068
IO.RLB = ****** GX 223-10655
IO.RNA = ****** GX 94-4390 103-4723 107-4902
IO.RVB = ****** GX 114-5104
IO.WLB = ****** GX 190-8917 223-10656
IO.WVB = ****** GX 120-5291
IS.CR = ****** GX 224-10720
IS.ESC = ****** GX 224-10718
I.10L = 000005 #6-322 199-9547 200-9597
JCOMM 002174 R #207-9941 *209-10054 209-10073
JRST = 000254 #55-1958 55-1975 55-1975
JUMPE = 000322 #55-1959 55-1971 55-1971
KEEPBB = ****** GX *171-7691
KLI$$E = 000050 #2-154 156-7021
KLI$$F = 000101 #3-179 58-2124 77-3195 79-3510 82-3788 90-4140 144-6332 150-6562 156-6937
156-7021 167-7550 169-7632 183-8544 189-8854 199-9489
KLI$$K = 000126 #2-157 156-7021
KLI$$V = 000015 #2-153 156-7021
KLPWRF = 000010 #4-196 #8-472
KL.ABO = ****** GX 195-9226
KL.CFL = ****** GX 165-7503 171-7757
KL.CFM = ****** GX 171-7739
KL.DEF = ****** GX 175-8038
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 11
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
KL.KAC = ****** GX 157-7053 195-9232 237-11375
KL.LCA = ****** GX 165-7500
KL.LRM = ****** GX 175-8036 176-8233
KL.LVB = ****** GX 163-7391 172-7804 229-11011
KL.SPF = ****** GX 168-7611 171-7689 172-7803 175-8038
KL.SSC = ****** GX 168-7614
KL.VBD = ****** GX 172-7803 200-9613 200-9623
KL.VBN = ****** GX 172-7804 200-9611
KS.FCF = ****** GX 186-8779
LCARPT 000754 R 56-2087 #57-2096
LCBCRM 001630 R 62-2346 #64-2425
LCBDRM 002172 R 62-2343 #65-2509 65-2537
LCBFL 002636 R 60-2259 62-2359 64-2498 65-2574 #66-2631
LCBRC 001372 R 60-2253 #62-2339 64-2462 65-2538
LCBRME 002516 R 64-2471 64-2471 65-2547 65-2547 #66-2588
LCBVFY 002572 R 64-2476 64-2476 64-2479 64-2479 64-2489 64-2489 65-2552 65-2552 65-2555
65-2555 65-2565 65-2565 #66-2614
LCBVR 002674 R 62-2358 #67-2645
LCB3W 001216 R #61-2272 65-2510 65-2510
LCB6W 001224 R #61-2274 64-2437 64-2437
LCFCPY 003204 R 70-2894 #70-2907 70-2929 70-2937 70-2946 70-3024
LCFERR 003502 R 70-2878 70-2883 #70-3017
LCFNXT 003152 R #70-2889 70-2917 70-2954
LCFPRG 003476 R 70-2891 70-2911 70-2914 70-2919 70-2921 70-2953 70-2964 70-2973 70-2978
70-2983 70-2988 70-2991 70-2993 #70-3015
LCFRBF 003256 R 68-2740 #70-2927
LCFRCA 003276 R 68-2736 #70-2944
LCFREF 003314 R 68-2733 70-2885 #70-2960
LCFRMC 003516 R 68-2741 #70-3022
LCFRMM 003176 R 68-2734 #70-2901
LCFRPA 003266 R 68-2742 #70-2935
LCFRTN 003474 R 70-2857 70-2871 #70-3010
LCFSKP 003304 R 70-2903 70-2930 70-2938 #70-2951 70-3025
LCFWBF 003526 R 70-2977 70-2977 #71-3037
LCFWCA 003772 R 70-2963 70-2963 #74-3125
LCFWEF 003642 R 70-2990 70-2990 #72-3072
LCFWMC 004060 R 70-2982 70-2982 #75-3155
LCFWMM 003664 R 70-2972 70-2972 #73-3088
LCFWPA 004142 R 70-2987 70-2987 #76-3181
LDAR = 000077 #11-561
LDEIDV 007536 R 101-4661 101-4661 #102-4678
LDRER 010460 R 110-4987 112-5043 113-5069 #113-5081
LDWER 010722 R 116-5174 117-5200 #117-5211 118-5237 119-5264
LF = 000012 #190-8900 199-9473 #223-10646 223-10670 226-10846
LFCSAB 012274 R 126-5602 126-5602 126-5610 126-5610 #126-5616
LFDWFN 012460 R 128-5694 128-5704 128-5704 #128-5709
LFECKN 013354 R 132-5884 132-5884 133-5931 133-5931 #134-5962
LFEMVA 013330 R 132-5883 132-5883 133-5930 133-5930 #134-5950
LFWCKF 013676 R 138-6114 138-6114 #139-6141
LMRDFN 015430 R 155-6883 155-6883 155-6896 155-6896 #155-6902
LOAD11 = 000004 #4-196 #8-472
LOGLUN = 000006 #8-435
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 12
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
LPOLUN = 000003 #8-431 156-7005 190-8917 199-9478 223-10657 223-10658 228-10901
LQBRBF 016656 RG 161-7301 161-7301 #163-7382 176-8272 176-8272
LQCCM 017244 R 165-7492 #166-7510 166-7544
LQMRFN 001246 R 60-2234 60-2234 #62-2290
LQRBPS 021144 R 175-8050 175-8050 #175-8068 175-8071
LQSBPS 021532 R 176-8259 176-8259 #177-8306 177-8310
LQSCHE 022052 R 176-8277 176-8277 178-8328 178-8330 #178-8392
LQSCHO 022026 R 176-8281 176-8281 178-8334 #178-8383
LQSCSW 022434 R 176-8235 176-8235 176-8274 176-8274 #182-8522
LQSHDW 022072 R 176-8275 176-8275 178-8329 178-8329 #179-8405
LQSHWE 021556 R 176-8240 176-8240 #178-8325
LQSHWO 022312 RG 174-7944 174-7944 179-8407 179-8407 #181-8475
LRSTKL 023332 R 184-8637 184-8637 185-8667 185-8667 186-8755 186-8755 #187-8804
LTNCHR 026434 R 214-10256 214-10256 215-10283 215-10283 215-10290 215-10290 #216-10346
LTNMV 026374 R 214-10250 214-10250 215-10278 215-10278 #216-10307
LTNROL 026420 R 214-10254 214-10254 215-10281 215-10281 215-10288 215-10288 #216-10326 216-10330
LTTDIR 027724 R 226-10851 #227-10867
LXBRC 030274 R 229-11033 #230-11076 231-11143
LXB5B 030252 R #229-11061 231-11133 231-11133
L$$P20 = 000002 #1-38
MABRD = ****** GX *84-3927
MAJVER 000106 R #58-2163 *63-2409 67-2656
MA20 = ****** GX 78-3273 83-3839 173-7867
MBINI = ****** GX 171-7688 171-7688
MB20 = ****** GX 78-3275 83-3841 173-7869
MF20 = ****** GX 78-3258 83-3853 172-7796
MPE11 = 001000 #4-196 #8-472
MXTYP = 000005 #68-2717 68-2743 70-2893
M.KTAE = 000010 #175-8142
M.KTEF = 000002 #175-8142
M.KTMG = 000004 #175-8142
M.KTUN = 000006 #175-8142
NULSTP = 000040 #4-196 #8-472
NUPE = 000002 #4-196 #8-472
PAG = 000010 #51-1771 51-1777 51-1777 #55-1960 55-1970 55-1970 #88-4101 88-4107 88-4107
#183-8578 183-8590 183-8590 #199-9535 199-9545 199-9545 199-9546 199-9546 199-9550
199-9550
PAGE = 001000 #228-10937 228-10938
PCERRM 003225 R #157-7130 158-7189
PERCLR = 001000 #4-196 #8-472 155-6874
PGBTS = 000777 #228-10938 230-11090 231-11116 231-11120
PHYS = 100000 #4-196 #8-472
PI = 000004 11-564 11-568 #199-9536 199-9544 199-9544
PIDENT = 000000 #4-196 #8-472
PRI7 = 000340 #4-196 #8-472
PROPNT = 000021 #4-196 #8-472
PRTOFF = 004000 #4-196 #8-472
PR0 = 000000 #4-196 #8-472
PR1 = 000040 #4-196 #8-472
PR2 = 000100 #4-196 #8-472
PR3 = 000140 #4-196 #8-472
PR4 = 000200 #4-196 #8-472
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 13
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
PR5 = 000240 #4-196 #8-472
PR6 = 000300 #4-196 #8-472
PR7 = 000340 #4-196 #8-472
PS = 177776 #4-196 #8-472
PSWW1 = 000005 #4-196 #8-472
PSWW10 = 000014 #4-196 #8-472
PSWW11 = 000015 #4-196 #8-472
PSWW12 = 000016 #4-196 #8-472
PSWW13 = 000017 #4-196 #8-472
PSWW2 = 000006 #4-196 #8-472
PSWW3 = 000007 #4-196 #8-472
PSWW4 = 000010 #4-196 #8-472
PSWW5 = 000011 #4-196 #8-472
PSWW6 = 000012 #4-196 #8-472
PSWW7 = 000013 #4-196 #8-472
PULSE = 000020 #4-196 #8-472
QSIZE = 000023 #4-196 #8-472
Q.IOAE = 000012 #92-4301 #92-4302 #94-4388 #94-4389 #94-4390 #103-4721 #103-4722 #103-4723 #105-4809
#105-4810 #105-4811 #105-4812 #107-4899 #107-4900 #107-4901 #107-4902 #121-5346 #190-8917
#223-10655 #223-10656 #223-10657 #223-10658
Q.IOEF = 000006 #92-4301 #92-4302 #94-4388 #94-4389 #94-4390 #103-4721 #103-4722 #103-4723 #105-4809
#105-4810 #105-4811 #105-4812 #107-4899 #107-4900 #107-4901 #107-4902 #121-5346 #190-8917
#223-10655 #223-10656 #223-10657 #223-10658
Q.IOFN = 000002 #92-4301 #92-4302 #94-4388 #94-4389 #94-4390 #103-4721 #103-4722 #103-4723 #105-4809
#105-4810 #105-4811 #105-4812 #107-4899 #107-4900 #107-4901 #107-4902 #121-5346 #190-8917
#223-10655 #223-10656 #223-10657 #223-10658
Q.IOLU = 000004 #92-4301 #92-4302 #94-4388 #94-4389 #94-4390 #103-4721 #103-4722 #103-4723 #105-4809
#105-4810 #105-4811 #105-4812 #107-4899 #107-4900 #107-4901 #107-4902 #121-5346 #190-8917
*199-9478 *199-9482 #223-10655 #223-10656 #223-10657 #223-10658 *228-10901 *228-10903
Q.IOPL = 000014 #92-4301 #92-4302 #94-4388 #94-4389 #94-4390 #103-4721 #103-4722 #103-4723 #105-4809
#105-4810 #105-4811 #105-4812 #107-4899 #107-4900 #107-4901 #107-4902 #121-5346 #190-8917
*199-9475 #223-10655 #223-10656 #223-10657 #223-10658 224-10693 224-10694 *224-10696 *224-10697
*224-10712 *224-10713 *224-10745 *224-10746 *226-10849 *226-10850 *227-10865 *227-10866 227-10874
227-10875 *228-10896 *228-10897
Q.IOPR = 000007 #92-4301 #92-4302 #94-4388 #94-4389 #94-4390 #103-4721 #103-4722 #103-4723 #105-4809
#105-4810 #105-4811 #105-4812 #107-4899 #107-4900 #107-4901 #107-4902 #121-5346 #190-8917
#223-10655 #223-10656 #223-10657 #223-10658
Q.IOSB = 000010 #92-4301 #92-4302 #94-4388 #94-4389 #94-4390 #103-4721 #103-4722 #103-4723 #105-4809
#105-4810 #105-4811 #105-4812 #107-4899 #107-4900 #107-4901 #107-4902 #121-5346 #190-8917
#223-10655 #223-10656 #223-10657 #223-10658
RAMIS0 = 010000 #4-196 #8-472
RDATIM 014706 RG #151-6623
RDDONE = ****** GX *84-3928
RDMCV 001502 R 62-2347 62-2347 #63-2381
REDOSY 030600 R 229-11035 229-11035 230-11108 230-11108 231-11145 231-11145 #231-11148
REPCON = ****** GX 172-7771 172-7771
REPFIT = ****** GX 172-7818 172-7818
RESDET = ****** GX 172-7770 172-7770 172-7791 172-7791 172-7809 172-7809 172-7816 172-7816
RFMAD0 = 100000 #4-196 #8-472
RFMAD1 = 040000 #4-196 #8-472
RFMAD2 = 020000 #4-196 #8-472
RFMAD3 = 010000 #4-196 #8-472
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 14
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
RM = 000010 #4-196 #8-472
RTFERR 015126 R 151-6664 151-6678 #152-6729 152-6766
RTFERX 015136 R 151-6671 151-6717 #152-6734
RTFXIT 015142 R 151-6636 151-6691 151-6698 151-6704 151-6713 #152-6736
R$$11D = 000001 #1-47
SAVLEN 002352 R #223-10663 *224-10694 224-10746
SAVMSG 002350 R #223-10662 *224-10693 224-10745
SCD = 000040 #4-196 #8-472
SECLK = 000003 #11-554
SETIMF 000264 R #79-3545 *80-3591 *80-3599 80-3638 80-3674
SETMMF 000265 R #79-3547 *81-3691 *81-3698 81-3739 81-3769
SETMR = 000007 #11-557
SETRUN = 000011 #11-559
SETZ = 000400 #55-1961 55-1973 55-1973
SPC = 000040 #190-8901 199-9436
SSCLK = 000002 #11-553
STAT = 174434 #4-196 #8-472
STATUS = 000022 #4-196 #8-472
STPCLK = 000000 #11-551
STPKL 031232 R 236-11333 236-11333 #237-11356
STRCLK = 000001 #11-552
SUBVER 000110 R #58-2164 *63-2405 67-2663
SWITCH 002176 R #207-9942 *209-10055 209-10087 *209-10089
SWR = 177570 #4-196 #8-472
SWSLLT = 100000 #4-196 #8-472
SYFLUN = 000006 #8-434 94-4388 94-4389 94-4390 103-4721 103-4723 105-4809 105-4810 107-4902
156-7012
SYILUN = 000004 #8-432 92-4301 103-4720 103-4722 107-4899 114-5104 156-7008 157-7068 228-10946
SYOLUN = 000005 #8-433 92-4302 105-4808 105-4811 105-4812 107-4900 107-4901 120-5291 121-5346
156-7010
S.YIL = 001000 G 114-5104 #194-9158 194-9164 194-9172 194-9180
S.YOL = 001000 G 106-4853 117-5202 120-5291 120-5298 #194-9174 194-9188
TAB = 000011 #190-8902 199-9433
TCAACD 000077 R #55-1983 57-2096
TCAACE 000026 R #55-1981 57-2099
TCACEF 000000 R #55-1980 56-2088
TCASCE 000051 R #55-1982 57-2102
TCBBAD 000424 R #58-2190 64-2474 65-2551
TCBDCW 000117 R #58-2183 64-2470
TCBDDW 000151 R #58-2184 65-2546
TCBFXF 000265 R #58-2187 64-2466 65-2542
TCBGOD 000432 R #58-2191 64-2478 65-2554
TCBMLF 000203 R #58-2185 66-2632
TCBMRE 000446 R #58-2193 60-2236
TCBMVF 000233 R #58-2186 66-2635
TCBMVL 000314 R #58-2188 67-2647
TCBMVV 000357 R #58-2189 67-2649
TCBXOR 000440 R #58-2192 64-2487 65-2563
TCFCFA 000536 R #68-2747 70-2999
TCFCFE 000571 R #68-2749 70-3018
TDEDFU 002154 R #100-4610 101-4637
TDEDR 001722 R #100-4607 101-4628
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 15
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
TDEIO 002014 R #100-4608 101-4641
TDENSF 002100 R #100-4609 101-4633
TDRRDE 002201 R #109-4965 114-5113
TDRRLE 002216 R #109-4967 113-5082
TDWRLE 002270 R #115-5155 117-5212
TDWWRE 002252 R #115-5153 120-5307
TENAD1 = 174410 #4-196 #8-472
TENAD2 = 174412 #4-196 #8-472
TFEDFL 002325 R #131-5857 132-5894
TFEEFL 002346 R #131-5858 133-5942
TFREMS 002367 R #135-6016 136-6051
TFWEMS 002410 R #137-6094 138-6130
TFXEMS 002432 R #140-6194 141-6228
TGCNFL 002456 R #142-6270 143-6293
TGMNFL 002525 R #145-6371 146-6402
TGPNFL 002575 R #148-6502 149-6521
TGTCKE 002607 R #150-6595 151-6716
TGTIFF 002677 R #150-6599 151-6670
TGTNFL 002651 R #150-6597 151-6635
TGTRFE 002741 R #150-6601 152-6730
TMFLNM = ****** GX 151-6625
TMPLOG 002342 R #223-10660
TMRMFL 002777 R #154-6853 155-6898
TNINDV 003025 R #156-7014 157-7062
TNIN55 003052 R #156-7016 157-7073
TNIPRI 003110 R #156-7018 157-7088
TNIVER 003174 R #156-7020 157-7095
TOBM = 000004 #4-196 #8-472
TOIP = 000002 #4-196 #8-472
TOIT = 000001 #4-196 #8-472
TO10 = 000200 #4-196 #8-472
TO10AD = 174420 #4-196 #8-472
TO10BC = 174414 #4-196 #8-472
TO10BM = 000001 #4-196 #8-472
TO10DB = 000400 #4-196 #8-472
TO10DN = 100000 #4-196 #8-472
TO10DT = 174424 #4-196 #8-472
TO10ER = 020000 #4-196 #8-472
TO11 = 000100 #4-196 #8-472
TO11AD = 174422 #4-196 #8-472
TO11BC = 174416 #4-196 #8-472
TO11BM = 020000 #4-196 #8-472
TO11DB = 004000 #4-196 #8-472
TO11DN = 000200 #4-196 #8-472
TO11DT = 174426 #4-196 #8-472
TO11ER = 000002 #4-196 #8-472
TQBNFL 003363 R #160-7254 163-7394
TQBOOT 003246 R #160-7250 161-7285
TQBWCF 003320 R #160-7252 162-7350
TQCACH 003421 R #164-7470 165-7482
TQCCEN 003466 R #164-7471 166-7510
TQEXIT 003532 R #167-7579 168-7590
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 16
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
TQMCF0 003556 R #170-7673 171-7697
TQMCF1 003635 R #170-7675 171-7700
TQMNM0 003722 R #170-7677 172-7823
TQMPCA 003757 R #170-7679 172-7805
TQRLMC 004172 R #174-8002 175-8013
TQSABO 004712 R #175-8184 176-8292
TQSCAC 004564 R 175-8155 #175-8178
TQSCDH 004603 R #175-8180 178-8393
TQSCHN 004531 R 175-8154 #175-8176
TQSDLG 004240 R #175-8160 176-8202
TQSEXT 004474 R 175-8153 #175-8174
TQSHRZ 004337 R #175-8166 178-8360
TQSHWP 004347 R #175-8168 178-8362
TQSKSN 004301 R #175-8162 178-8336
TQSMCA 004402 R 175-8151 #175-8170
TQSMDL 004324 R #175-8164 178-8340
TQSMMA 004745 R #175-8186 178-8388
TQSMMO 004435 R 175-8152 #175-8172
TQSPT 004064 R #174-7890 174-7903
TQSWRN 004657 R #175-8182 176-8244 176-8284
TROCT 026074 R 208-9995 208-9995 208-9998 208-9998 208-10011 208-10011 208-10012 208-10012 209-10067
209-10067 209-10082 209-10082 #210-10108
TRSCEF 005323 R #183-8606 186-8764
TRSCES 005057 R #183-8600 185-8676
TRSDER 005211 R #183-8603 185-8662 185-8673 185-8684
TRSFCF 005267 R #183-8605 186-8737
TRSFCS 005515 R #183-8609 186-8791
TRSFHL 005400 R #183-8607 186-8767
TRSHLT 005124 R #183-8601 185-8679
TRSPRF 005023 R #183-8599 184-8632
TRSRSM 005252 R #183-8604 185-8696
TRSSEF 005444 R #183-8608 186-8761 186-8772
TRSTMO 005155 R #183-8602 185-8689
TRTBTF 005635 R #190-8931 195-9311
TRTEND 005742 R #190-8935 195-9329
TRTFME 005665 R #190-8933 195-9324
TRTMMF 005577 R #190-8929 195-9284
TSTBSM 005744 R #199-9564 200-9655
TTA 002210 R 207-9946 #207-9947
TTB 002214 R 207-9945 #207-9948
TTBEL 006005 R #223-10669 225-10772
TTILUN = 000001 #8-429 156-7000 223-10655
TTJ 002224 R 207-9943 #207-9950
TTOLUN = 000002 #8-430 156-7002 199-9482 223-10656 228-10903
TTP 002220 R 207-9944 #207-9949
TTSLS 006004 R #223-10668
TTSPC 006002 R #223-10666 225-10767
TTTAB 006003 R #223-10667 225-10784
TTTNLN 006006 R #223-10670 224-10712 225-10789
TTTPR 000200 R #58-2180 66-2615
TTTPRE 006014 R #223-10672 226-10841
TTTPRP 006010 R #223-10671 224-10696
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 17
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
TXBIMM 006024 R #228-10967 230-11107
TXBOTH 004165 R #174-7893 174-7952
TXCHLE 006070 R #232-11197 237-11396
TXCSFL 006120 R #232-11199 234-11285
TXPTS 004127 R #174-7892 174-7948
TYPNUM = ****** GX 78-3344 78-3360 80-3607 80-3609 *80-3640 81-3709 *81-3746 84-3882 84-3884
84-3893 84-3900 85-3952 85-3957 86-4004 86-4009 173-7842
T.TIL = 000040 G #193-9120 193-9122 223-10655
T.TOL = 000111 G #193-9123 193-9125
UEDIT 000112 R #58-2165 *63-2401 67-2666
UNASG1 = 000032 #4-196 #8-472
UNASG2 = 000033 #4-196 #8-472
UNASG3 = 000034 #4-196 #8-472
UNASG4 = 000035 #4-196 #8-472
UNASG5 = 000036 #4-196 #8-472
UNASG6 = 000037 #4-196 #8-472
WAIT1S 023430 R 184-8634 184-8634 185-8664 185-8664 185-8686 185-8686 186-8752 186-8752 186-8774
186-8774 #188-8834 188-8840
WEP = 000010 #4-196 #8-472
W.10L = 000005 #6-323
XCONMP = ****** GX 172-7800
XCT = 000256 #190-8904 190-8913 190-8913
XCT71 023554 RG #195-9234
ZSTOP = 040000 #4-196 #8-472
$ACRAM 012166 RG 62-2352 62-2352 124-5434 124-5434 125-5502 125-5502 #126-5597
$ADRAM 012704 RG 128-5679 128-5679 129-5731 129-5731 #130-5780
$APRID = 000000 #11-565
$ASCIZ 024240 RG #198-9405 198-9407 226-10842 226-10842 226-10844 226-10844
$BURST 031612 RG 54-1896 54-1896 237-11368 237-11368 238-11450 #239-11465
$CD11 = 000001 #1-39
$CFGBT 023714 RG 162-7377 176-8286 #195-9290
$CFGCA 023640 RG 165-7506 166-7540 166-7542 #195-9263
$CFGMM 020060 RG 171-7762 #172-7780
$CFGRM 023626 RG 175-8062 #195-9253
$CFGXX 020232 RG 78-3267 78-3438 #172-7813
$CFIMD 004232 RG #78-3272 78-3500 173-7849
$CFMMD 004200 RG #78-3257 173-7855
$CFXMD 006544 RG #91-4187 173-7852
$CHKIM 005064 RG 78-3424 78-3424 #80-3598
$CHKMM 005310 RG 78-3429 78-3429 #81-3697
$CLLOG = ****** GX 62-2357 62-2357 66-2631 66-2631 227-10880 227-10880
$CLOSE 007056 RG 62-2304 62-2304 62-2356 62-2356 70-2992 70-2992 #93-4323 143-6311 143-6311
143-6324 146-6419 146-6419 146-6455 149-6540 149-6540 149-6550 151-6723 152-6735
152-6735 163-7406 163-7406 163-7431 230-11105 230-11105
$CONFG 005514 RG #83-3837 172-7814 172-7814
$DBDTE = 000001 #1-45
$DDFRD 013440 RG #136-6032
$DDFWR 013552 RG #138-6109
$DDFXC 013754 RG #141-6208
$DELET 007214 RG 70-2997 70-2997 #98-4525
$DFPC 016134 RG #158-7155
$DFRD 013444 RG 54-1901 54-1901 125-5512 125-5512 125-5567 125-5567 129-5738 129-5738 129-5746
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 18
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
129-5746 129-5759 129-5759 #136-6035 155-6888 155-6888 158-7170 158-7170 181-8499
181-8499 230-11101 230-11101 238-11420 238-11420 238-11425 238-11425 238-11430 238-11430
238-11445 238-11445
$DFWR 013556 RG 54-1916 54-1916 124-5473 124-5473 124-5484 126-5604 126-5604 126-5612 126-5612
128-5711 130-5808 130-5808 #138-6112 155-6915 155-6915 187-8817 187-8817 187-8820
187-8820 200-9638 200-9638 200-9642 200-9642 236-11339 239-11476 239-11476 239-11479
239-11479 239-11492 239-11492 239-11498 239-11498
$DFXC 013760 RG 54-1893 54-1893 54-1906 54-1906 54-1912 54-1912 54-1919 62-2355 62-2355
125-5505 125-5505 129-5734 129-5734 130-5811 134-5967 134-5967 139-6152 139-6152
#141-6211 155-6869 155-6869 155-6893 155-6893 155-6905 155-6905 155-6928 155-6928
180-8454 180-8454 181-8491 181-8491 181-8493 181-8493 182-8529 182-8529 182-8532
182-8532 187-8822 195-9239 195-9239 195-9242 195-9242 200-9645 200-9645 233-11223
233-11223 233-11226 233-11226 234-11261 234-11261 234-11264 234-11264 234-11269 234-11269
234-11282 237-11360 237-11360 237-11380 237-11380 237-11387 237-11387 237-11390 237-11390
238-11436 238-11436 239-11468 239-11468 239-11482 239-11482 239-11501
$DH11 = 000001 #1-43
$DLGBT 016334 RG #161-7278 162-7360 195-9278
$DLGBV 023670 RG 171-7748 #195-9277
$DLGCA 017066 RG #165-7476 166-7521 175-8045 195-9258
$DLGCT 020320 RG 172-7772 172-7812 #173-7838
$DLGCV 023634 RG 171-7728 #195-9257
$DLGEN 021170 RG 168-7608 174-7966 175-8034 #176-8193 195-9248 195-9315
$DLGEX 017422 RG 162-7374 #168-7585 195-9307
$DLGIM 020344 RG #173-7848 173-7868 173-7870
$DLGMB 020360 RG 78-3306 #173-7857 173-7871
$DLGMF 020354 RG 91-4262 #173-7854
$DLGMM 017556 RG 165-7502 #171-7685 173-7858 195-9273 195-9335
$DLGMV 023662 RG 161-7298 #195-9272
$DLGMX 023666 RG 172-7830 #195-9275
$DLGPA 020410 RG #174-7896 175-8032 176-8248
$DLGRM 020700 RG 165-7499 174-7961 #175-8007 176-8250 195-9281
$DLGRV 023674 RG 171-7731 #195-9280
$DLGXM 020350 RG 78-3277 78-3497 #173-7851 173-7865
$DLMB1 020364 RG 78-3309 #173-7863
$DLMB2 020372 RG 91-4213 #173-7866
$DLWCF 016530 RG 161-7321 #162-7345 168-7605
$DPOS 013074 RG 52-1830 52-1830 53-1862 53-1862 56-2072 56-2072 132-5877 132-5877 #132-5881
200-9632 200-9632 230-11094 230-11094 231-11125 231-11125 231-11137 231-11137
$DPOST 013056 RG #132-5873 186-8742 186-8742 186-8749 186-8749
$DSPPT 020040 RG 171-7754 #172-7768
$DSW = ****** GX 101-4630 106-4858 *106-4860 139-6147 188-8837
$DTA = 000001 #1-55 228-10948 229-11046
$DTE = 000001 #1-46
$DTRWS 024132 RG 155-6876 155-6876 #196-9363
$DTRW1 024114 RG 134-5970 134-5970 185-8674 185-8674 186-8762 186-8762 #196-9355 234-11271 234-11271
235-11308 235-11308 237-11370 237-11370
$DTRW2 024122 RG 155-6872 155-6872 #196-9359
$DTRW3 024142 RG #196-9367
$ECHO 030004 RG 224-10710 224-10710 #228-10895
$ECHO1 030020 RG 224-10700 224-10700 224-10716 224-10716 224-10747 224-10747 227-10869 227-10869 #228-10898
$ENTER 007734 RG 70-2882 70-2882 #106-4832
$ERROR 024012 RG 84-3941 85-3976 86-4044 161-7328 172-7833 185-8693 195-9255 195-9267 195-9270
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 19
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
195-9285 195-9296 195-9300 #195-9313 195-9319 200-9661 224-10760
$EXAM 013224 RG 133-5916 133-5916 133-5921 133-5921 #133-5928
$EXAMD 013214 RG #133-5920
$EXAMT 013176 RG #133-5912
$EXBLD 030052 RG 195-9303 195-9303 #229-11008
$EXCT 030636 RG 89-4127 89-4127 89-4130 89-4130 187-8812 187-8812 195-9236 195-9236 200-9595
200-9595 200-9604 200-9604 229-11032 229-11032 #233-11217
$EXIT 024022 RG 157-7089 168-7618 176-8298 185-8697 195-9306 #195-9317
$EXIT1 024030 RG 186-8782 186-8792 195-9229 195-9245 #195-9320 200-9664
$EXTEN 011242 RG 120-5303 120-5303 #122-5359
$FATAL 024036 RG #195-9323
$FE = 000001 #1-41
$FILE 003036 RG #70-2854 184-8629 184-8629 185-8660 185-8660 195-9318 195-9318 200-9587 200-9587
$F11 = 000001 #1-42
$GETCA 014112 RG #143-6286 195-9266 195-9266 195-9295 195-9295
$GETMM 014312 RG #146-6387 172-7783 172-7783
$GETPA 014562 RG #149-6515 174-7933 174-7933
$GETTF 014706 RG #151-6622
$INIT 015564 RG #157-7029 195-9231 195-9231
$IOERR 007346 RG 60-2258 60-2258 93-4351 98-4541 #101-4626 104-4771 106-4861 122-5368 151-6639
229-11054
$KLMR 015232 RG 60-2252 60-2252 134-5964 134-5964 139-6149 #155-6866 179-8435 179-8435 181-8477
181-8477 187-8804 187-8804 237-11377 237-11377
$KLSR 015504 RG 126-5599 126-5599 130-5804 130-5804 #155-6923
$LDAR 031176 RG 54-1890 54-1890 182-8526 182-8526 233-11220 233-11220 234-11258 234-11258 #236-11331
$LDNGO 000000 RG #52-1813 56-2000 56-2000
$LGERR 000054 RG #191-9013 227-10878
$LGOPN 000056 RG #191-9015 227-10871
$LOG 000052 RG #191-9011
$LOOKU 007562 RG 60-2247 60-2247 62-2292 62-2292 70-2875 70-2875 #104-4744 143-6289 143-6289
146-6398 146-6398 149-6517 149-6517 151-6631 151-6631 163-7385 163-7385 229-11025
229-11025 229-11052 229-11052
$LP20 = 000001 #1-37
$MAPMM 006436 RG 86-4016 86-4016 #87-4049
$MBPHS 031444 RG 236-11335 236-11335 #238-11414
$MCBLD 001066 RG #60-2231 195-9254 195-9254
$OPLOG = ****** GX 64-2463 64-2463 65-2539 65-2539
$POWER 022540 RG 168-7621 #184-8629
$PURGE 010124 RG 62-2324 62-2324 66-2637 66-2637 70-3016 70-3016 #108-4914 143-6325 143-6325
146-6458 146-6458 149-6552 149-6552 163-7434 163-7434 195-9310 195-9310
$RCRAM 011564 RG 63-2385 63-2385 64-2443 64-2443 #125-5500 181-8481 181-8481
$RDERA = 000000 #11-567
$RDRAM 012474 RG 65-2520 65-2520 #129-5726
$READ 010474 RG 104-4761 111-5014 111-5014 112-5046 112-5046 113-5072 113-5072 #114-5098
$READB 010420 RG 62-2311 62-2311 70-2918 70-2918 #113-5067 143-6313 143-6313 143-6319 143-6319
146-6426 146-6426 146-6429 146-6429 152-6765 152-6765 163-7415 163-7415 163-7418
163-7418 229-11065 229-11065
$READC 010216 RG 62-2297 62-2297 62-2339 62-2339 70-2890 70-2890 #110-4985 143-6305 143-6305
146-6414 146-6414 146-6450 146-6450 149-6534 149-6534 151-6662 151-6662 163-7400
163-7400 230-11076 230-11076
$READS 010254 RG 62-2307 62-2307 70-2952 70-2952 #111-5010 111-5015 143-6303 143-6303 146-6411
146-6411 146-6447 146-6447 149-6531 149-6531 151-6677 151-6677 163-7410 163-7410
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 20
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
$READW 010324 RG 61-2276 61-2276 62-2318 62-2318 110-4990 110-4990 110-4994 #112-5035 146-6432
146-6432 149-6547 149-6547 163-7425 163-7425 230-11079 230-11079
$RP04 = 000001 #1-40
$RSAVE 024204 RG 52-1813 53-1850 54-1888 63-2381 66-2588 101-4626 124-5431 125-5500 128-5673
129-5726 130-5780 132-5882 133-5929 151-6624 155-6866 158-7156 #197-9387 199-9427
208-9988 209-10048 224-10691 226-10819 226-10836 233-11218 234-11250 236-11332 238-11415
239-11465
$RSTRT 022622 RG 168-7625 #185-8658
$SBDIA = 000002 #11-563
$SETCA 000356 RG #56-1999 195-9269 195-9269 195-9299 195-9299
$SETFN 007304 RG 98-4525 98-4525 98-4534 98-4534 #99-4561 104-4744 104-4744 104-4764 104-4764
106-4832 106-4832 108-4924 108-4924
$SETIM 005056 RG #80-3590 84-3888 84-3888 84-3910 84-3910
$SETMM 005302 RG #81-3690 86-4024 86-4024
$START 023516 RG #195-9225 240-11507
$STRKL 030726 RG 52-1836 184-8639 184-8639 185-8669 185-8669 186-8757 186-8757 200-9652 200-9652
#234-11249
$SWEEP 006502 RG #89-4122 229-11015 229-11015
$TCRLF 027530 RG 66-2624 66-2624 78-3368 78-3368 174-7959 174-7959 178-8378 178-8378 195-9332
195-9332 #225-10787
$TDB2C 026466 RG 205-9831 #218-10404
$TDB2I 025264 RG 174-7957 174-7957 178-8339 178-8339 178-8359 178-8359 #205-9826
$TDB2O 026450 RG 78-3365 78-3365 #218-10399
$TDI2B 025402 RG #206-9875
$TENST 024524 RG #200-9586 230-11106
$TENS1 024532 RG 162-7373 162-7373 #200-9589
$TOP10 = 000001 #1-35 1-53 3-174 3-178 168-7613 168-7623 191-9029
$TOP20 = ****** 1-61 3-174 3-182
$TRACK 024252 RG 124-5432 125-5501 126-5598 128-5674 129-5727 130-5781 132-5891 133-5934 136-6040
138-6128 141-6224 155-6867 155-6924 #199-9426 233-11219 234-11251 235-11304 237-11357
$TRB2F 025044 RG 101-4654 101-4654 #202-9715
$TRB2I 025306 RG 205-9830 205-9830 #205-9834 206-9879 206-9879
$TRB2O 026500 RG 66-2595 66-2595 67-2657 67-2657 67-2664 67-2664 67-2667 67-2667 101-4646
101-4646 199-9442 199-9442 202-9733 202-9733 218-10403 218-10403 #218-10409
$TRB2R 026744 RG 202-9723 202-9723 202-9725 202-9725 202-9727 202-9727 202-9730 202-9730 #222-10573
$TRCRM 025512 RG 66-2623 66-2623 #208-9987
$TRDRM 025656 RG 66-2621 66-2621 #209-10047
$TRF2B 025146 RG 151-6629 151-6629 161-7314 161-7314 175-8056 175-8056 176-8265 176-8265 #203-9752
$TRI2B 025424 RG 78-3479 78-3479 91-4237 91-4237 166-7522 166-7522 174-7917 174-7917 #206-9883
$TRO2B 026562 RG 78-3407 78-3407 203-9775 203-9775 #219-10460
$TRR2B 026636 RG 203-9757 203-9757 203-9759 203-9759 203-9761 203-9761 203-9768 203-9768 #221-10530
$TTBEL 027510 RG #225-10770
$TTDMS 027566 RG 66-2616 66-2616 66-2618 66-2618 78-3363 78-3363 78-3367 78-3367 174-7949
174-7949 174-7953 174-7953 178-8337 178-8337 178-8341 178-8341 178-8361 178-8361
178-8373 178-8373 195-9325 195-9325 209-10063 209-10063 #226-10818
$TTDWR 027700 RG 214-10244 214-10244 215-10272 215-10272 218-10405 218-10405 226-10824 #226-10847
$TTMSG 027634 RG 56-2088 57-2116 60-2236 64-2467 64-2467 65-2543 65-2543 66-2597 66-2636
67-2672 70-2999 70-3018 78-3291 78-3291 78-3315 78-3444 78-3471 78-3503
80-3611 80-3656 81-3711 81-3758 84-3934 85-3972 86-3998 86-4036 91-4192
91-4198 91-4209 91-4227 91-4252 91-4256 101-4662 113-5082 114-5113 117-5212
120-5307 132-5894 133-5942 136-6051 138-6130 141-6228 143-6293 146-6402 149-6521
151-6635 151-6670 151-6716 152-6730 155-6898 157-7062 157-7073 157-7088 157-7095
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 21
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
158-7189 161-7285 161-7324 162-7350 162-7361 163-7394 165-7482 165-7497 166-7510
166-7543 168-7590 168-7601 171-7702 171-7702 171-7721 172-7805 172-7823 174-7903
174-7963 175-8013 175-8028 176-8202 176-8219 176-8244 176-8284 176-8292 178-8362
178-8388 178-8393 185-8691 185-8696 186-8784 186-8791 195-9284 195-9311 200-9655
#226-10835 230-11107 234-11285 237-11396
$TTRD 027130 RG 78-3292 78-3292 78-3369 78-3369 78-3472 78-3472 91-4199 91-4199 91-4228
91-4228 161-7286 161-7286 162-7351 162-7351 165-7483 165-7483 166-7511 166-7511
168-7591 168-7591 171-7703 171-7703 174-7904 174-7904 175-8014 175-8014 176-8203
176-8203 206-9878 206-9878 #224-10691
$TTSPC 027500 RG 178-8353 178-8353 #225-10765
$TTTAB 027520 RG #225-10782
$TTWR 027714 RG 178-8349 178-8349 178-8351 178-8351 195-9328 195-9328 195-9331 195-9331 208-10003
208-10003 208-10015 208-10015 209-10070 209-10070 209-10086 209-10086 225-10797 225-10797
#227-10865
$T1091 = ****** 1-49 1-54
$WCRAM 011304 RG 64-2432 64-2432 64-2453 64-2453 64-2494 64-2494 #124-5431 181-8488 181-8488
181-8503
$WDD22 026124 RG #214-10239
$WDD36 026236 RG #215-10267
$WDRAM 012314 RG 65-2516 65-2516 65-2570 65-2570 #128-5673
$WRD22 026154 RG 199-9455 199-9455 214-10243 214-10243 #214-10248
$WRD36 026266 RG 199-9470 199-9470 215-10271 215-10271 #215-10276
$WRITB 011032 RG 70-2920 70-2920 71-3049 71-3049 71-3052 71-3052 73-3100 73-3100 73-3103
73-3103 74-3135 74-3135 74-3142 74-3142 75-3163 75-3163 117-5206 117-5206
#119-5262
$WRITC 010624 RG 70-2910 70-2910 71-3043 71-3043 72-3074 72-3074 73-3094 73-3094 74-3129
74-3129 75-3157 75-3157 76-3183 76-3183 #116-5172
$WRITE 011072 RG 118-5240 118-5240 119-5267 119-5267 #120-5290 120-5304
$WRITS 010666 RG 93-4339 93-4339 #117-5198
$WRITW 010736 RG 70-2913 70-2913 71-3046 71-3046 71-3060 71-3060 72-3077 73-3097 73-3097
73-3108 73-3108 74-3132 74-3132 75-3160 75-3160 75-3169 75-3169 76-3186
76-3186 76-3189 76-3189 116-5180 116-5180 #118-5229
$WRMRS 023022 RG 185-8659 185-8659 #186-8730 195-9302 195-9302
$WTKL 031116 RG 233-11229 #235-11303 237-11363 237-11363 237-11383 237-11383
$XCDT 000206 RG 52-1823 52-1823 53-1856 53-1856 #54-1888
$ZERAC 000112 RG #53-1850 184-8631 184-8631 200-9590 200-9590
$$ = 000037 #52-1823 52-1823 #52-1830 52-1830 #53-1856 53-1856 #53-1862 53-1862 #54-1890
54-1890 #54-1893 54-1893 #54-1896 54-1896 #54-1901 54-1901 #54-1906 54-1906
#54-1912 54-1912 #54-1916 54-1916 #56-2000 56-2000 #56-2072 56-2072 #60-2234
60-2234 #60-2247 60-2247 #60-2252 60-2252 #60-2258 60-2258 #61-2276 61-2276
#62-2292 62-2292 #62-2297 62-2297 #62-2304 62-2304 #62-2307 62-2307 #62-2311
62-2311 #62-2318 62-2318 #62-2324 62-2324 #62-2339 62-2339 #62-2347 62-2347
#62-2352 62-2352 #62-2355 62-2355 #62-2356 62-2356 #62-2357 62-2357 #63-2385
63-2385 #64-2432 64-2432 #64-2437 64-2437 #64-2443 64-2443 #64-2453 64-2453
#64-2463 64-2463 #64-2467 64-2467 #64-2471 64-2471 #64-2476 64-2476 #64-2479
64-2479 #64-2489 64-2489 #64-2494 64-2494 #65-2510 65-2510 #65-2516 65-2516
#65-2520 65-2520 #65-2539 65-2539 #65-2543 65-2543 #65-2547 65-2547 #65-2552
65-2552 #65-2555 65-2555 #65-2565 65-2565 #65-2570 65-2570 #66-2595 66-2595
#66-2616 66-2616 #66-2618 66-2618 #66-2621 66-2621 #66-2623 66-2623 #66-2624
66-2624 #66-2631 66-2631 #66-2637 66-2637 #67-2657 67-2657 #67-2664 67-2664
#67-2667 67-2667 #70-2875 70-2875 #70-2882 70-2882 #70-2890 70-2890 #70-2910
70-2910 #70-2913 70-2913 #70-2918 70-2918 #70-2920 70-2920 #70-2952 70-2952
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 22
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
#70-2963 70-2963 #70-2972 70-2972 #70-2977 70-2977 #70-2982 70-2982 #70-2987
70-2987 #70-2990 70-2990 #70-2992 70-2992 #70-2997 70-2997 #70-3016 70-3016
#71-3043 71-3043 #71-3046 71-3046 #71-3049 71-3049 #71-3052 71-3052 #71-3060
71-3060 #72-3074 72-3074 #73-3094 73-3094 #73-3097 73-3097 #73-3100 73-3100
#73-3103 73-3103 #73-3108 73-3108 #74-3129 74-3129 #74-3132 74-3132 #74-3135
74-3135 #74-3142 74-3142 #75-3157 75-3157 #75-3160 75-3160 #75-3163 75-3163
#75-3169 75-3169 #76-3183 76-3183 #76-3186 76-3186 #76-3189 76-3189 #78-3291
78-3291 #78-3292 78-3292 #78-3363 78-3363 #78-3365 78-3365 #78-3367 78-3367
#78-3368 78-3368 #78-3369 78-3369 #78-3407 78-3407 #78-3424 78-3424 #78-3429
78-3429 #78-3472 78-3472 #78-3479 78-3479 #81-3718 81-3718 #83-3844 83-3844
#83-3849 83-3849 #83-3855 83-3855 #84-3886 84-3886 #84-3888 84-3888 #84-3896
84-3896 #84-3902 84-3902 #84-3910 84-3910 #84-3914 84-3914 #86-4012 86-4012
#86-4016 86-4016 #86-4024 86-4024 #86-4026 86-4026 #87-4055 87-4055 #89-4127
89-4127 #89-4130 89-4130 #91-4199 91-4199 #91-4228 91-4228 #91-4237 91-4237
#93-4339 93-4339 #98-4525 98-4525 #98-4534 98-4534 #101-4646 101-4646 #101-4654
101-4654 #101-4661 101-4661 #104-4744 104-4744 #104-4764 104-4764 #106-4832 106-4832
#108-4924 108-4924 #110-4990 110-4990 #111-5014 111-5014 #112-5046 112-5046 #113-5072
113-5072 #116-5180 116-5180 #117-5206 117-5206 #118-5240 118-5240 #119-5267 119-5267
#120-5303 120-5303 #124-5434 124-5434 #124-5473 124-5473 #125-5502 125-5502 #125-5505
125-5505 #125-5512 125-5512 #125-5567 125-5567 #126-5599 126-5599 #126-5602 126-5602
#126-5604 126-5604 #126-5610 126-5610 #126-5612 126-5612 #128-5679 128-5679 #128-5682
128-5682 #128-5685 128-5685 #128-5704 128-5704 #129-5731 129-5731 #129-5734 129-5734
#129-5738 129-5738 #129-5746 129-5746 #129-5759 129-5759 #130-5804 130-5804 #130-5808
130-5808 #132-5877 132-5877 #132-5883 132-5883 #132-5884 132-5884 #133-5916 133-5916
#133-5921 133-5921 #133-5930 133-5930 #133-5931 133-5931 #134-5964 134-5964 #134-5967
134-5967 #134-5970 134-5970 #138-6114 138-6114 #139-6152 139-6152 #143-6289 143-6289
#143-6303 143-6303 #143-6305 143-6305 #143-6311 143-6311 #143-6313 143-6313 #143-6319
143-6319 #143-6325 143-6325 #146-6398 146-6398 #146-6411 146-6411 #146-6414 146-6414
#146-6419 146-6419 #146-6426 146-6426 #146-6429 146-6429 #146-6432 146-6432 #146-6447
146-6447 #146-6450 146-6450 #146-6458 146-6458 #149-6517 149-6517 #149-6531 149-6531
#149-6534 149-6534 #149-6540 149-6540 #149-6547 149-6547 #149-6552 149-6552 #151-6624
151-6624 #151-6629 151-6629 #151-6631 151-6631 #151-6662 151-6662 #151-6677 151-6677
#151-6690 151-6690 #151-6697 151-6697 #151-6703 151-6703 #151-6712 151-6712 #152-6735
152-6735 #152-6765 152-6765 #155-6869 155-6869 #155-6872 155-6872 #155-6876 155-6876
#155-6883 155-6883 #155-6888 155-6888 #155-6893 155-6893 #155-6896 155-6896 #155-6905
155-6905 #155-6915 155-6915 #155-6928 155-6928 #158-7156 158-7156 #158-7170 158-7170
#158-7177 158-7177 #161-7286 161-7286 #161-7301 161-7301 #161-7314 161-7314 #162-7351
162-7351 #162-7373 162-7373 #163-7385 163-7385 #163-7400 163-7400 #163-7406 163-7406
#163-7410 163-7410 #163-7415 163-7415 #163-7418 163-7418 #163-7425 163-7425 #163-7434
163-7434 #165-7483 165-7483 #166-7511 166-7511 #166-7522 166-7522 #168-7591 168-7591
#171-7688 171-7688 #171-7702 171-7702 #171-7703 171-7703 #172-7770 172-7770 #172-7771
172-7771 #172-7783 172-7783 #172-7791 172-7791 #172-7809 172-7809 #172-7814 172-7814
#172-7816 172-7816 #172-7817 172-7817 #172-7818 172-7818 #172-7827 172-7827 #174-7904
174-7904 #174-7917 174-7917 #174-7933 174-7933 #174-7944 174-7944 #174-7949 174-7949
#174-7953 174-7953 #174-7957 174-7957 #174-7959 174-7959 #175-8014 175-8014 #175-8050
175-8050 #175-8056 175-8056 #176-8203 176-8203 #176-8235 176-8235 #176-8240 176-8240
#176-8259 176-8259 #176-8265 176-8265 #176-8272 176-8272 #176-8273 176-8273 #176-8274
176-8274 #176-8275 176-8275 #176-8277 176-8277 #176-8281 176-8281 #178-8325 178-8325
#178-8329 178-8329 #178-8337 178-8337 #178-8339 178-8339 #178-8341 178-8341 #178-8349
178-8349 #178-8351 178-8351 #178-8353 178-8353 #178-8359 178-8359 #178-8361 178-8361
#178-8373 178-8373 #178-8378 178-8378 #179-8407 179-8407 #179-8435 179-8435 #180-8452
180-8452 #180-8454 180-8454 #181-8477 181-8477 #181-8481 181-8481 #181-8488 181-8488
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 23
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
#181-8491 181-8491 #181-8493 181-8493 #181-8499 181-8499 #182-8526 182-8526 #182-8529
182-8529 #182-8532 182-8532 #184-8629 184-8629 #184-8631 184-8631 #184-8633 184-8633
#184-8634 184-8634 #184-8637 184-8637 #184-8639 184-8639 #185-8659 185-8659 #185-8660
185-8660 #185-8663 185-8663 #185-8664 185-8664 #185-8667 185-8667 #185-8669 185-8669
#185-8674 185-8674 #185-8686 185-8686 #186-8742 186-8742 #186-8749 186-8749 #186-8751
186-8751 #186-8752 186-8752 #186-8755 186-8755 #186-8757 186-8757 #186-8762 186-8762
#186-8774 186-8774 #186-8780 186-8780 #187-8804 187-8804 #187-8812 187-8812 #187-8817
187-8817 #187-8820 187-8820 #195-9231 195-9231 #195-9236 195-9236 #195-9239 195-9239
#195-9242 195-9242 #195-9254 195-9254 #195-9266 195-9266 #195-9269 195-9269 #195-9295
195-9295 #195-9299 195-9299 #195-9302 195-9302 #195-9303 195-9303 #195-9310 195-9310
#195-9318 195-9318 #195-9325 195-9325 #195-9328 195-9328 #195-9331 195-9331 #195-9332
195-9332 #199-9442 199-9442 #199-9455 199-9455 #199-9470 199-9470 #200-9587 200-9587
#200-9590 200-9590 #200-9595 200-9595 #200-9604 200-9604 #200-9632 200-9632 #200-9638
200-9638 #200-9642 200-9642 #200-9645 200-9645 #200-9652 200-9652 #200-9656 200-9656
#202-9723 202-9723 #202-9725 202-9725 #202-9727 202-9727 #202-9730 202-9730 #202-9733
202-9733 #203-9757 203-9757 #203-9759 203-9759 #203-9761 203-9761 #203-9768 203-9768
#203-9775 203-9775 #205-9830 205-9830 #206-9878 206-9878 #206-9879 206-9879 #208-9988
208-9988 #208-9995 208-9995 #208-9998 208-9998 #208-10003 208-10003 #208-10011 208-10011
#208-10012 208-10012 #208-10015 208-10015 #209-10048 209-10048 #209-10063 209-10063 #209-10067
209-10067 #209-10070 209-10070 #209-10082 209-10082 #209-10086 209-10086 #214-10243 214-10243
#214-10244 214-10244 #214-10250 214-10250 #214-10254 214-10254 #214-10256 214-10256 #215-10271
215-10271 #215-10272 215-10272 #215-10278 215-10278 #215-10281 215-10281 #215-10283 215-10283
#215-10288 215-10288 #215-10290 215-10290 #218-10403 218-10403 #218-10405 218-10405 #224-10700
224-10700 #224-10710 224-10710 #224-10716 224-10716 #224-10747 224-10747 #225-10797 225-10797
#226-10819 226-10819 #226-10842 226-10842 #226-10844 226-10844 #227-10869 227-10869 #227-10876
227-10876 #227-10880 227-10880 #229-11015 229-11015 #229-11025 229-11025 #229-11032 229-11032
#229-11035 229-11035 #229-11052 229-11052 #229-11065 229-11065 #230-11076 230-11076 #230-11079
230-11079 #230-11094 230-11094 #230-11101 230-11101 #230-11105 230-11105 #230-11108 230-11108
#231-11125 231-11125 #231-11133 231-11133 #231-11137 231-11137 #231-11145 231-11145 #233-11220
233-11220 #233-11223 233-11223 #233-11226 233-11226 #234-11258 234-11258 #234-11261 234-11261
#234-11264 234-11264 #234-11269 234-11269 #234-11271 234-11271 #235-11308 235-11308 #236-11333
236-11333 #236-11335 236-11335 #237-11360 237-11360 #237-11363 237-11363 #237-11368 237-11368
#237-11370 237-11370 #237-11377 237-11377 #237-11380 237-11380 #237-11383 237-11383 #237-11387
237-11387 #237-11390 237-11390 #238-11420 238-11420 #238-11425 238-11425 #238-11430 238-11430
#238-11436 238-11436 #238-11445 238-11445 #239-11468 239-11468 #239-11476 239-11476 #239-11479
239-11479 #239-11482 239-11482 #239-11492 239-11492 #239-11498 239-11498
$$APRI = 000000 #11-566
$$RDER = 000004 #11-568
$$SBDI = 000004 #11-564
$$$ARG = 000006 #92-4301 92-4301 #92-4302 92-4302 #92-4302 92-4302 #92-4302 92-4302 #94-4388
94-4388 #94-4388 94-4388 #94-4388 94-4388 #94-4388 94-4388 #94-4388 94-4388
#94-4388 94-4388 #94-4388 94-4388 #94-4389 94-4389 #94-4389 94-4389 #94-4390
94-4390 #94-4390 94-4390 #94-4390 94-4390 #94-4390 94-4390 #94-4390 94-4390
#94-4390 94-4390 #94-4390 94-4390 #103-4721 103-4721 #103-4721 103-4721 #103-4721
103-4721 #103-4721 103-4721 #103-4721 103-4721 #103-4721 103-4721 #103-4721 103-4721
#103-4722 103-4722 #103-4722 103-4722 #103-4722 103-4722 #103-4722 103-4722 #103-4722
103-4722 #103-4722 103-4722 #103-4723 103-4723 #103-4723 103-4723 #103-4723 103-4723
#103-4723 103-4723 #103-4723 103-4723 #103-4723 103-4723 #103-4723 103-4723 #105-4809
105-4809 #105-4809 105-4809 #105-4809 105-4809 #105-4809 105-4809 #105-4809 105-4809
#105-4810 105-4810 #105-4810 105-4810 #105-4810 105-4810 #105-4810 105-4810 #105-4810
105-4810 #105-4810 105-4810 #105-4810 105-4810 #105-4811 105-4811 #105-4811 105-4811
#105-4811 105-4811 #105-4811 105-4811 #105-4811 105-4811 #105-4811 105-4811 #105-4812
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 24
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
105-4812 #107-4899 107-4899 #107-4900 107-4900 #107-4901 107-4901 #107-4902 107-4902
#107-4902 107-4902 #107-4902 107-4902 #107-4902 107-4902 #107-4902 107-4902 #107-4902
107-4902 #107-4902 107-4902 #114-5104 114-5104 114-5104 114-5104 114-5104 114-5104
114-5104 114-5104 114-5104 114-5104 114-5104 114-5104 #120-5291 120-5291 120-5291
120-5291 120-5291 120-5291 120-5291 120-5291 120-5291 120-5291 120-5291 120-5291
#121-5346 121-5346 #121-5346 121-5346 #121-5346 121-5346 #121-5346 121-5346 #121-5346
121-5346 #156-7000 156-7000 #156-7000 156-7000 #156-7000 156-7000 #156-7002 156-7002
#156-7002 156-7002 #156-7002 156-7002 #156-7005 156-7005 #156-7005 156-7005 #156-7005
156-7005 #156-7008 156-7008 #156-7008 156-7008 #156-7008 156-7008 #156-7010 156-7010
#156-7010 156-7010 #156-7010 156-7010 #156-7012 156-7012 #156-7012 156-7012 #156-7012
156-7012 #157-7068 157-7068 157-7068 157-7068 157-7068 157-7068 157-7068 157-7068
157-7068 157-7068 157-7068 157-7068 #188-8835 188-8835 188-8835 188-8835 188-8835
188-8835 188-8835 188-8835 188-8835 188-8835 188-8835 #190-8917 190-8917 #190-8917
190-8917 #190-8917 190-8917 #190-8917 190-8917 #223-10655 223-10655 #223-10655 223-10655
#223-10655 223-10655 #223-10656 223-10656 #223-10656 223-10656 #223-10656 223-10656 #223-10656
223-10656 #223-10657 223-10657 #223-10658 223-10658
$$$GLB = ****** 92-4301 92-4301 92-4301 92-4301 92-4301 92-4301 92-4301 92-4301 92-4302
92-4302 92-4302 92-4302 92-4302 92-4302 92-4302 92-4302 94-4388 94-4388
94-4388 94-4388 94-4388 94-4388 94-4388 94-4388 94-4389 94-4389 94-4389
94-4389 94-4389 94-4389 94-4389 94-4389 94-4390 94-4390 94-4390 94-4390
94-4390 94-4390 94-4390 94-4390 103-4720 103-4720 103-4720 103-4721 103-4721
103-4721 103-4721 103-4721 103-4721 103-4721 103-4721 103-4722 103-4722 103-4722
103-4722 103-4722 103-4722 103-4722 103-4722 103-4723 103-4723 103-4723 103-4723
103-4723 103-4723 103-4723 103-4723 105-4808 105-4808 105-4808 105-4809 105-4809
105-4809 105-4809 105-4809 105-4809 105-4809 105-4809 105-4810 105-4810 105-4810
105-4810 105-4810 105-4810 105-4810 105-4810 105-4811 105-4811 105-4811 105-4811
105-4811 105-4811 105-4811 105-4811 105-4812 105-4812 105-4812 105-4812 105-4812
105-4812 105-4812 105-4812 107-4899 107-4899 107-4899 107-4899 107-4899 107-4899
107-4899 107-4899 107-4900 107-4900 107-4900 107-4900 107-4900 107-4900 107-4900
107-4900 107-4901 107-4901 107-4901 107-4901 107-4901 107-4901 107-4901 107-4901
107-4902 107-4902 107-4902 107-4902 107-4902 107-4902 107-4902 107-4902 121-5346
121-5346 121-5346 121-5346 121-5346 121-5346 121-5346 121-5346 156-7000 156-7000
156-7000 156-7000 156-7002 156-7002 156-7002 156-7002 156-7005 156-7005 156-7005
156-7005 156-7008 156-7008 156-7008 156-7008 156-7010 156-7010 156-7010 156-7010
156-7012 156-7012 156-7012 156-7012 175-8142 175-8142 175-8142 175-8142 175-8142
190-8917 190-8917 190-8917 190-8917 190-8917 190-8917 190-8917 190-8917 223-10655
223-10655 223-10655 223-10655 223-10655 223-10655 223-10655 223-10655 223-10656 223-10656
223-10656 223-10656 223-10656 223-10656 223-10656 223-10656 223-10657 223-10657 223-10657
223-10657 223-10657 223-10657 223-10657 223-10657 223-10658 223-10658 223-10658 223-10658
223-10658 223-10658 223-10658 223-10658
$$$OST = 000014 #92-4301 92-4301 92-4301 #92-4301 92-4301 92-4301 #92-4301 92-4301 92-4301
#92-4301 92-4301 92-4301 #92-4301 92-4301 92-4301 #92-4301 92-4301 92-4301
#92-4301 92-4301 #92-4302 92-4302 92-4302 #92-4302 92-4302 92-4302 #92-4302
92-4302 92-4302 #92-4302 92-4302 92-4302 #92-4302 92-4302 92-4302 #92-4302
92-4302 92-4302 #92-4302 92-4302 #94-4388 94-4388 94-4388 #94-4388 94-4388
94-4388 #94-4388 94-4388 94-4388 #94-4388 94-4388 94-4388 #94-4388 94-4388
94-4388 #94-4388 94-4388 94-4388 #94-4388 94-4388 #94-4389 94-4389 94-4389
#94-4389 94-4389 94-4389 #94-4389 94-4389 94-4389 #94-4389 94-4389 94-4389
#94-4389 94-4389 94-4389 #94-4389 94-4389 94-4389 #94-4389 94-4389 #94-4390
94-4390 94-4390 #94-4390 94-4390 94-4390 #94-4390 94-4390 94-4390 #94-4390
94-4390 94-4390 #94-4390 94-4390 94-4390 #94-4390 94-4390 94-4390 #94-4390
94-4390 #103-4720 103-4720 103-4720 #103-4720 103-4720 103-4720 #103-4720 #103-4721
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 25
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
103-4721 103-4721 #103-4721 103-4721 103-4721 #103-4721 103-4721 103-4721 #103-4721
103-4721 103-4721 #103-4721 103-4721 103-4721 #103-4721 103-4721 103-4721 #103-4721
103-4721 #103-4722 103-4722 103-4722 #103-4722 103-4722 103-4722 #103-4722 103-4722
103-4722 #103-4722 103-4722 103-4722 #103-4722 103-4722 103-4722 #103-4722 103-4722
103-4722 #103-4722 103-4722 #103-4723 103-4723 103-4723 #103-4723 103-4723 103-4723
#103-4723 103-4723 103-4723 #103-4723 103-4723 103-4723 #103-4723 103-4723 103-4723
#103-4723 103-4723 103-4723 #103-4723 103-4723 #105-4808 105-4808 105-4808 #105-4808
105-4808 105-4808 #105-4808 #105-4809 105-4809 105-4809 #105-4809 105-4809 105-4809
#105-4809 105-4809 105-4809 #105-4809 105-4809 105-4809 #105-4809 105-4809 105-4809
#105-4809 105-4809 105-4809 #105-4809 105-4809 #105-4810 105-4810 105-4810 #105-4810
105-4810 105-4810 #105-4810 105-4810 105-4810 #105-4810 105-4810 105-4810 #105-4810
105-4810 105-4810 #105-4810 105-4810 105-4810 #105-4810 105-4810 #105-4811 105-4811
105-4811 #105-4811 105-4811 105-4811 #105-4811 105-4811 105-4811 #105-4811 105-4811
105-4811 #105-4811 105-4811 105-4811 #105-4811 105-4811 105-4811 #105-4811 105-4811
#105-4812 105-4812 105-4812 #105-4812 105-4812 105-4812 #105-4812 105-4812 105-4812
#105-4812 105-4812 105-4812 #105-4812 105-4812 105-4812 #105-4812 105-4812 105-4812
#105-4812 105-4812 #107-4899 107-4899 107-4899 #107-4899 107-4899 107-4899 #107-4899
107-4899 107-4899 #107-4899 107-4899 107-4899 #107-4899 107-4899 107-4899 #107-4899
107-4899 107-4899 #107-4899 107-4899 #107-4900 107-4900 107-4900 #107-4900 107-4900
107-4900 #107-4900 107-4900 107-4900 #107-4900 107-4900 107-4900 #107-4900 107-4900
107-4900 #107-4900 107-4900 107-4900 #107-4900 107-4900 #107-4901 107-4901 107-4901
#107-4901 107-4901 107-4901 #107-4901 107-4901 107-4901 #107-4901 107-4901 107-4901
#107-4901 107-4901 107-4901 #107-4901 107-4901 107-4901 #107-4901 107-4901 #107-4902
107-4902 107-4902 #107-4902 107-4902 107-4902 #107-4902 107-4902 107-4902 #107-4902
107-4902 107-4902 #107-4902 107-4902 107-4902 #107-4902 107-4902 107-4902 #107-4902
107-4902 #121-5346 121-5346 121-5346 #121-5346 121-5346 121-5346 #121-5346 121-5346
121-5346 #121-5346 121-5346 121-5346 #121-5346 121-5346 121-5346 #121-5346 121-5346
121-5346 #121-5346 121-5346 #156-7000 156-7000 156-7000 #156-7000 156-7000 156-7000
#156-7000 156-7000 156-7000 #156-7000 #156-7002 156-7002 156-7002 #156-7002 156-7002
156-7002 #156-7002 156-7002 156-7002 #156-7002 #156-7005 156-7005 156-7005 #156-7005
156-7005 156-7005 #156-7005 156-7005 156-7005 #156-7005 #156-7008 156-7008 156-7008
#156-7008 156-7008 156-7008 #156-7008 156-7008 156-7008 #156-7008 #156-7010 156-7010
156-7010 #156-7010 156-7010 156-7010 #156-7010 156-7010 156-7010 #156-7010 #156-7012
156-7012 156-7012 #156-7012 156-7012 156-7012 #156-7012 156-7012 156-7012 #156-7012
#175-8142 175-8142 175-8142 #175-8142 175-8142 175-8142 #175-8142 175-8142 175-8142
#175-8142 175-8142 175-8142 #175-8142 #190-8917 190-8917 190-8917 #190-8917 190-8917
190-8917 #190-8917 190-8917 190-8917 #190-8917 190-8917 190-8917 #190-8917 190-8917
190-8917 #190-8917 190-8917 190-8917 #190-8917 190-8917 #223-10655 223-10655 223-10655
#223-10655 223-10655 223-10655 #223-10655 223-10655 223-10655 #223-10655 223-10655 223-10655
#223-10655 223-10655 223-10655 #223-10655 223-10655 223-10655 #223-10655 223-10655 #223-10656
223-10656 223-10656 #223-10656 223-10656 223-10656 #223-10656 223-10656 223-10656 #223-10656
223-10656 223-10656 #223-10656 223-10656 223-10656 #223-10656 223-10656 223-10656 #223-10656
223-10656 #223-10657 223-10657 223-10657 #223-10657 223-10657 223-10657 #223-10657 223-10657
223-10657 #223-10657 223-10657 223-10657 #223-10657 223-10657 223-10657 #223-10657 223-10657
223-10657 #223-10657 223-10657 #223-10658 223-10658 223-10658 #223-10658 223-10658 223-10658
#223-10658 223-10658 223-10658 #223-10658 223-10658 223-10658 #223-10658 223-10658 223-10658
#223-10658 223-10658 223-10658 #223-10658 223-10658
$$$T1 = 000014 #114-5104 114-5104 #120-5291 120-5291 #156-7000 156-7000 156-7000 #156-7000 156-7000
156-7000 #156-7000 156-7000 156-7000 #156-7002 156-7002 156-7002 #156-7002 156-7002
156-7002 #156-7002 156-7002 156-7002 #156-7005 156-7005 156-7005 #156-7005 156-7005
156-7005 #156-7005 156-7005 156-7005 #156-7008 156-7008 156-7008 #156-7008 156-7008
156-7008 #156-7008 156-7008 156-7008 #156-7010 156-7010 156-7010 #156-7010 156-7010
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 26
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
156-7010 #156-7010 156-7010 156-7010 #156-7012 156-7012 156-7012 #156-7012 156-7012
156-7012 #156-7012 156-7012 156-7012 #157-7068 157-7068
.BRCLK = 005000 #4-196 #8-472 239-11481 239-11500
.BTADR 000516 RG #193-9142 200-9649 *230-11078 *230-11081 231-11118 231-11119 231-11121 231-11129 231-11131
.BTSW 000050 RG 70-2858 70-2928 70-2975 *70-3000 71-3048 *161-7279 *161-7306 *161-7319 162-7371
*163-7396 *163-7417 #191-9004 200-9608 200-9647
.CACHN 000065 RG 56-2008 56-2055 57-2108 74-3139 143-6295 143-6318 166-7526 #192-9052
.CASW 000043 RG 89-4123 165-7476 171-7726 *179-8421 *179-8424 187-8807 #191-8993 195-9291 200-9600
.CECLK = 004000 #4-196 #8-472 54-1911 154-6833 154-6845 237-11389
.CFGTB 000134 RG 73-3106 *78-3348 78-3462 78-3489 *80-3679 *81-3779 84-3880 *84-3895 *84-3913
85-3950 *85-3959 86-4002 *86-4011 *86-4027 *91-4222 *91-4260 146-6390 *146-6435
173-7840 #192-9077
.CFMRV 000234 RG *171-7687 *171-7751 171-7753 172-7790 #192-9079
.CKSW 000041 RG 139-6142 *141-6217 *141-6220 *141-6227 #191-8988
.CLRMR = 006000 #4-196 #8-472 154-6834 154-6846
.CLRUN = 010000 #4-196 #8-472 155-6868 180-8453 237-11359
.COMEF = ****** GX 157-7084 *157-7092
.CONBT = 012000 #4-196 #8-472 54-1892 182-8528 195-9241 233-11222 234-11263
.CPUSN = ****** GX 157-7093 *157-7094 *176-8297 178-8326 178-8338 *178-8394 179-8418
.CSDN 000030 RG *182-8523 #191-8967
.CSHRG = 164000 #4-196 #8-472
.CTLTP 000072 RG 73-3091 73-3102 84-3884 84-3900 *146-6391 *146-6394 *146-6431 146-6438 *173-7842
#192-9073
.DATE3 = ****** GX 178-8333
.DBSW 000033 RG *161-7280 *176-8256 #191-8974
.DCSW 000031 RG 70-2863 70-2945 70-2961 *70-3003 143-6286 *143-6294 *165-7478 *165-7505 *166-7539
*166-7541 #191-8969 195-9264
.DESW 000042 RG 134-5962 *134-5977 *139-6141 *141-6218 *141-6221 #191-8990
.DFBLK 000256 RG 135-6013 137-6089 140-6191 #193-9098
.DFRBK 000264 RG 136-6040 136-6042 158-7172 #193-9101
.DFRG1 000272 RG #193-9104
.DFRG2 000274 RG #193-9106
.DFRG3 000300 RG #193-9110
.DFSTA 000276 RG #193-9108
.DFWBK 000256 RG 138-6118 138-6128 #193-9099
.DLGSW 000024 RG 83-3860 84-3939 85-3974 86-4040 *157-7030 *157-7038 157-7082 161-7282 162-7347
163-7389 165-7479 168-7586 171-7693 172-7792 174-7900 175-8009 176-8195 *176-8197
*176-8226 176-8242 178-8331 #191-8958 195-9305 *195-9314 *195-9334 229-11009
.DMSW 000032 RG 70-2865 70-2902 70-2966 *70-3005 78-3289 78-3460 *83-3838 83-3858 *83-3859
*83-3865 *84-3938 *85-3973 *86-4039 91-4196 91-4225 *146-6404 *171-7686 *171-7760
172-7781 172-7785 172-7811 #191-8972
.DREG 000272 RG 135-6013 137-6089 140-6191 193-9095 #193-9103 *196-9371 196-9375
.DRLTC = 015000 #4-196 #8-472 129-5733
.DRSW 000027 RG 64-2426 64-2440 64-2490 65-2513 65-2566 66-2633 67-2645 *175-8007 *175-8061
#191-8964
.DSACF = 066000 #4-196 #8-472
.DSIOJ = 065000 #4-196 #8-472
.DTEDT 000302 RG *155-6871 *155-6874 193-9094 #193-9113 196-9370 *196-9374
.EASW 000044 RG 60-2240 125-5576 178-8345 178-8384 *179-8437 *179-8440 #191-8996
.EIOJA = 067000 #4-196 #8-472 154-6835
.ERRCD = ****** GX 186-8733 186-8741 *186-8781 *186-8786 *186-8789
.ERRPC = ****** GX 186-8748
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 27
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
.FEMOD = ****** GX 157-7086
.FILSW 000047 RG 70-2855 *162-7346 *162-7365 *162-7369 *176-8194 *176-8257 #191-9002
.GFNR = 102000 #4-196 #8-472
.HRDWR = ****** GX 178-8355 178-8365
.INICL = 070000 #4-196 #8-472 154-6830
.IRLTC = 014000 #4-196 #8-472 130-5810
.KLCPU = ****** GX 186-8735 186-8744
.KLFCF = ****** GX 186-8731
.KLISV 000060 RG *157-7031 157-7053 163-7391 165-7500 165-7503 168-7611 168-7614 171-7689 171-7739
171-7757 *172-7803 *172-7804 175-8036 175-8038 176-8233 #191-9040 195-9232 200-9610
229-11011 237-11375
.KLITK = ****** GX *186-8779
.KLIWD = ****** GX 157-7031 *157-7037 195-9226 *195-9228
.KLREG 000244 RG #193-9091 *196-9356 *196-9360 *196-9364 *196-9368 *196-9370 196-9372
.LCRDL = 052000 #4-196 #8-472 126-5603
.LCRDR = 051000 #4-196 #8-472 126-5611
.LCRM1 = 057000 #4-196 #8-472 123-5406
.LCRM2 = 056000 #4-196 #8-472 123-5407
.LCRM3 = 055000 #4-196 #8-472 123-5408
.LCRM4 = 054000 #4-196 #8-472 123-5409
.LCRM5 = 053000 #4-196 #8-472 124-5483
.LDAR = 077000 #4-196 #8-472 54-1915 130-5807 236-11338
.LDBRL = 043000 #4-196 #8-472 154-6827 239-11478 239-11497
.LDBRR = 042000 #4-196 #8-472 154-6826 154-6831 239-11475 239-11491
.LDCK1 = 046000 #4-196 #8-472 154-6823 187-8819 200-9641
.LDCK2 = 047000 #4-196 #8-472 154-6824 187-8816 200-9637
.LDDIS = 045000 #4-196 #8-472 154-6828
.LDRJD = 064000 #4-196 #8-472 128-5697
.LDRJV = 063000 #4-196 #8-472 128-5700
.LDRM1 = 060000 #4-196 #8-472 128-5699
.LDRM2 = 061000 #4-196 #8-472 128-5696
.LDRM3 = 062000 #4-196 #8-472 128-5691
.LDSEL = 044000 #4-196 #8-472 154-6820 155-6909
.MCA25 000035 RG 175-8030 176-8246 *179-8426 *179-8429 #191-8978
.MCBFN 000456 RG 60-2246 62-2316 75-3166 175-8052 #193-9132
.MCBSW 000025 RG 60-2232 60-2244 *62-2313 70-2860 70-2980 *70-3001 70-3023 75-3162 *175-8008
*175-8060 #191-8960
.MCSW 000051 RG *174-7943 *174-7945 181-8484 181-8495 #191-9006
.MEMRS = 076000 #4-196 #8-472 154-6836
.MFCT 000046 RG *146-6388 *146-6440 172-7794 #191-9000
.MFSW 000045 RG 155-6879 155-6911 171-7698 178-8386 *179-8431 *179-8434 #191-8998
.NCACH 000064 RG 56-2002 56-2017 56-2056 57-2097 74-3126 *143-6301 *143-6323 *166-7538 187-8809
#192-9050 195-9293 195-9297 200-9602 *229-11038
.NOERR = ****** GX *180-8451 *185-8695 *186-8777 *186-8790 *195-9234 *195-9244 *200-9654 *200-9663
.PCAB1 = 150000 #4-196 #8-472
.PCAB2 = 151000 #4-196 #8-472
.PCAB3 = 152000 #4-196 #8-472
.PCAB4 = 153000 #4-196 #8-472
.PRDCT = ****** GX 184-8636 185-8666 185-8682 186-8754 186-8770
.PTSEL 000524 RG 76-3188 *174-7898 *174-7929 *174-7940 174-7950 174-7956 #193-9144
.PTSW 000034 RG 70-2870 70-2936 70-2985 *70-3006 *149-6524 *174-7897 *174-7932 *174-7942 #191-8976
.RCRM1 = 147000 #4-196 #8-472 123-5402
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 28
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
.RCRM2 = 146000 #4-196 #8-472 123-5403
.RCRM3 = 145000 #4-196 #8-472 123-5404
.RCRM4 = 144000 #4-196 #8-472 123-5405
.RCSPF = 141000 #4-196 #8-472 125-5565
.RDJ14 = 134000 #4-196 #8-472 129-5758
.RDJ71 = 135000 #4-196 #8-472 129-5737
.RDMAB = 133000 #4-196 #8-472 129-5745
.SECLK = 003000 #4-196 #8-472 125-5504 181-8490
.SETMR = 007000 #4-196 #8-472 141-6215 154-6822 154-6842
.SETRN = 011000 #4-196 #8-472 195-9238 234-11260
.SNSAV 000062 RG *157-7093 176-8297 #191-9042
.SPSAV 000022 RG #191-8956 *195-9230 195-9333
.SSCLK = 002000 #4-196 #8-472 54-1905 155-6892 234-11268 238-11435
.STPCL = 000000 #4-196 #8-472 139-6151 154-6821 154-6844 237-11386 239-11467
.STRCL = 001000 #4-196 #8-472 54-1918 62-2354 134-5966 141-6213 154-6829 154-6843 182-8531
187-8821 200-9644 233-11225 234-11281 237-11379
.SYATT 002652 RG 92-4304 *93-4335 *93-4336 *93-4337 *93-4338 *106-4855 116-5175 *116-5177 *122-5363
*122-5364 #194-9211
.SYFID = 002620 RG 94-4389 103-4722 105-4809 105-4811 #194-9203
.SYFNB 002620 RG 94-4388 94-4390 99-4562 103-4721 103-4723 105-4810 107-4902 157-7068 157-7076
*157-7076 157-7077 *157-7077 157-7078 *157-7078 #194-9194 194-9203 194-9204
.SYFNM = 002626 RG #194-9204
.SYIBA 000536 RG *111-5018 112-5036 *112-5039 112-5049 *112-5050 113-5075 *113-5076 *114-5108 #194-9161
.SYIBC 000540 RG 111-5011 111-5013 *111-5019 *112-5040 112-5044 *112-5051 113-5070 *113-5077 *114-5109
#194-9163
.SYIBF 000566 RG 103-4720 104-4747 104-4748 114-5104 114-5108 194-9162 #194-9171 194-9178
.SYIFN 000542 RG 93-4348 103-4725 103-4727 *104-4747 *104-4748 #194-9165
.SYIRC 000534 RG 62-2345 64-2460 65-2536 70-2908 70-2916 *104-4760 110-4986 *110-4989 *110-4992
111-5011 *111-5013 111-5018 111-5019 *111-5020 *112-5038 *112-5042 *113-5068 152-6757
#194-9159 230-11082 231-11141
.SYISW 000532 RG 93-4323 *93-4329 *104-4757 108-4914 *108-4917 #194-9153
.SYIVB 000562 RG *104-4758 *104-4759 *114-5099 *114-5100 114-5104 114-5104 #194-9169
.SYOBA 001570 RG 93-4337 *106-4852 118-5230 *118-5233 118-5243 *118-5244 119-5270 *119-5271 *120-5297
#194-9177
.SYOBC 001572 RG *106-4853 117-5202 *118-5234 118-5238 *118-5245 119-5265 *119-5272 *120-5298 #194-9179
.SYOBF 001620 RG 93-4338 105-4808 106-4835 106-4836 106-4852 120-5291 120-5297 #194-9187
.SYOFN 001574 RG 92-4306 92-4308 93-4350 105-4814 105-4816 *106-4835 *106-4836 108-4923 122-5367
#194-9181
.SYORC 001566 RG 71-3054 *106-4854 116-5173 *116-5179 *116-5182 117-5199 *117-5204 *118-5232 *118-5236
*119-5263 #194-9175
.SYOSW 000533 RG 93-4330 *93-4345 *106-4849 108-4918 *108-4927 #194-9155
.SYOVB 001614 RG 93-4335 93-4336 *106-4850 *106-4851 120-5291 120-5291 *120-5295 *120-5296 #194-9185
.SYSTA 000526 RG 60-2256 70-2877 92-4301 92-4302 93-4327 93-4343 94-4388 94-4389 94-4390
98-4528 98-4532 98-4537 101-4632 103-4721 103-4722 104-4751 104-4755 104-4762
104-4766 105-4809 105-4810 105-4811 106-4839 106-4843 106-4847 114-5104 114-5106
114-5109 120-5291 120-5293 120-5301 121-5346 122-5361 143-6291 146-6400 149-6519
151-6633 157-7068 157-7070 163-7387 #194-9151 229-11039
.TKTN = ****** GX *186-8778
.TPSHI 016270 RG 158-7177 158-7177 #159-7194
.TRKLP 000040 RG #191-8985 199-9476 224-10740 *224-10742 224-10749 *224-10751 224-10753 228-10899
.TRKSW 000036 RG #191-8981 199-9429 *224-10736 *224-10757
.TRKTT 000037 RG #191-8983 199-9480 *224-10735 *224-10738 224-10755
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 29
SYMBOL CROSS REFERENCE CREF
SYMBOL VALUE REFERENCES
.TTIBF 000304 RG 78-3293 78-3370 78-3473 91-4200 91-4230 161-7287 162-7352 165-7484 166-7512
168-7592 171-7704 *174-7899 174-7905 175-8015 176-8204 #193-9121 206-9877 223-10655
*224-10722 224-10724 224-10726 224-10728 224-10730 228-10896
.TTOBF 000344 RG #193-9124 205-9828 208-9993 208-10001 208-10010 208-10013 209-10066 209-10068 209-10081
209-10084 214-10241 215-10269 218-10401 226-10820 226-10838
.UFNSW 000026 RG 71-3039 71-3051 *161-7281 *161-7317 *163-7383 *163-7420 *163-7429 *176-8258 *176-8269
#191-8962 229-11021
.USRFN 000476 RG 71-3057 151-6627 161-7310 163-7423 176-8261 #193-9137 229-11023
.WORK 000014 RG #191-8949
.WRITR = ****** GX 227-10876 227-10876
.WRMBX = 071000 #4-196 #8-472 154-6837
.ZERO 000000 RG 53-1859 56-2071 64-2430 137-6090 154-6820 154-6823 154-6824 154-6826 154-6827
154-6828 154-6830 154-6831 154-6835 154-6836 #191-8946 200-9625 200-9631 230-11092
231-11123
..DSEV = ****** GX 186-8780 186-8780
..DTP2 = ****** GX 184-8633 184-8633 185-8663 185-8663 186-8751 186-8751 200-9656 200-9656
..DTSP = ****** GX 180-8452 180-8452
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 30
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
ALUN$ #156-6970 156-7000 156-7002 156-7005 156-7008 156-7010 156-7012 #228-10942
BURST #24-992
CALL #4-251 #9-474 52-1823 52-1830 53-1856 53-1862 54-1890 54-1893 54-1896 54-1901
54-1906 54-1912 54-1916 56-2000 56-2072 60-2234 60-2247 60-2252 60-2258 61-2276
62-2292 62-2297 62-2304 62-2307 62-2311 62-2318 62-2324 62-2339 62-2347 62-2352
62-2355 62-2356 62-2357 63-2385 64-2432 64-2437 64-2443 64-2453 64-2463 64-2467
64-2471 64-2476 64-2479 64-2489 64-2494 65-2510 65-2516 65-2520 65-2539 65-2543
65-2547 65-2552 65-2555 65-2565 65-2570 66-2595 66-2616 66-2618 66-2621 66-2623
66-2624 66-2631 66-2637 67-2657 67-2664 67-2667 70-2875 70-2882 70-2890 70-2910
70-2913 70-2918 70-2920 70-2952 70-2963 70-2972 70-2977 70-2982 70-2987 70-2990
70-2992 70-2997 70-3016 71-3043 71-3046 71-3049 71-3052 71-3060 72-3074 73-3094
73-3097 73-3100 73-3103 73-3108 74-3129 74-3132 74-3135 74-3142 75-3157 75-3160
75-3163 75-3169 76-3183 76-3186 76-3189 78-3291 78-3292 78-3363 78-3365 78-3367
78-3368 78-3369 78-3407 78-3424 78-3429 78-3472 78-3479 81-3718 83-3844 83-3849
83-3855 84-3886 84-3888 84-3896 84-3902 84-3910 84-3914 86-4012 86-4016 86-4024
86-4026 87-4055 89-4127 89-4130 91-4199 91-4228 91-4237 93-4339 98-4525 98-4534
101-4646 101-4654 101-4661 104-4744 104-4764 106-4832 108-4924 110-4990 111-5014 112-5046
113-5072 116-5180 117-5206 118-5240 119-5267 120-5303 124-5434 124-5473 125-5502 125-5505
125-5512 125-5567 126-5599 126-5602 126-5604 126-5610 126-5612 128-5679 128-5682 128-5685
128-5704 129-5731 129-5734 129-5738 129-5746 129-5759 130-5804 130-5808 132-5877 132-5883
132-5884 133-5916 133-5921 133-5930 133-5931 134-5964 134-5967 134-5970 138-6114 139-6152
143-6289 143-6303 143-6305 143-6311 143-6313 143-6319 143-6325 146-6398 146-6411 146-6414
146-6419 146-6426 146-6429 146-6432 146-6447 146-6450 146-6458 149-6517 149-6531 149-6534
149-6540 149-6547 149-6552 151-6624 151-6629 151-6631 151-6662 151-6677 151-6690 151-6697
151-6703 151-6712 152-6735 152-6765 155-6869 155-6872 155-6876 155-6883 155-6888 155-6893
155-6896 155-6905 155-6915 155-6928 158-7156 158-7170 158-7177 161-7286 161-7301 161-7314
162-7351 162-7373 163-7385 163-7400 163-7406 163-7410 163-7415 163-7418 163-7425 163-7434
165-7483 166-7511 166-7522 168-7591 171-7688 171-7702 171-7703 172-7770 172-7771 172-7783
172-7791 172-7809 172-7814 172-7816 172-7817 172-7818 172-7827 174-7904 174-7917 174-7933
174-7944 174-7949 174-7953 174-7957 174-7959 175-8014 175-8050 175-8056 176-8203 176-8235
176-8240 176-8259 176-8265 176-8272 176-8273 176-8274 176-8275 176-8277 176-8281 178-8325
178-8329 178-8337 178-8339 178-8341 178-8349 178-8351 178-8353 178-8359 178-8361 178-8373
178-8378 179-8407 179-8435 180-8452 180-8454 181-8477 181-8481 181-8488 181-8491 181-8493
181-8499 182-8526 182-8529 182-8532 184-8629 184-8631 184-8633 184-8634 184-8637 184-8639
185-8659 185-8660 185-8663 185-8664 185-8667 185-8669 185-8674 185-8686 186-8742 186-8749
186-8751 186-8752 186-8755 186-8757 186-8762 186-8774 186-8780 187-8804 187-8812 187-8817
187-8820 195-9231 195-9236 195-9239 195-9242 195-9254 195-9266 195-9269 195-9295 195-9299
195-9302 195-9303 195-9310 195-9318 195-9325 195-9328 195-9331 195-9332 199-9442 199-9455
199-9470 200-9587 200-9590 200-9595 200-9604 200-9632 200-9638 200-9642 200-9645 200-9652
200-9656 202-9723 202-9725 202-9727 202-9730 202-9733 203-9757 203-9759 203-9761 203-9768
203-9775 205-9830 206-9878 206-9879 208-9988 208-9995 208-9998 208-10003 208-10011 208-10012
208-10015 209-10048 209-10063 209-10067 209-10070 209-10082 209-10086 214-10243 214-10244 214-10250
214-10254 214-10256 215-10271 215-10272 215-10278 215-10281 215-10283 215-10288 215-10290 218-10403
218-10405 224-10700 224-10710 224-10716 224-10747 225-10797 226-10819 226-10842 226-10844 227-10869
227-10876 227-10880 229-11015 229-11025 229-11032 229-11035 229-11052 229-11065 230-11076 230-11079
230-11094 230-11101 230-11105 230-11108 231-11125 231-11133 231-11137 231-11145 233-11220 233-11223
233-11226 234-11258 234-11261 234-11264 234-11269 234-11271 235-11308 236-11333 236-11335 237-11360
237-11363 237-11368 237-11370 237-11377 237-11380 237-11383 237-11387 237-11390 238-11420 238-11425
238-11430 238-11436 238-11445 239-11468 239-11476 239-11479 239-11482 239-11492 239-11498
CALLR #4-260 #9-483 52-1836 54-1919 56-2087 72-3077 78-3267 78-3277 78-3306 78-3309
78-3438 78-3497 78-3500 85-3954 91-4213 91-4262 93-4351 98-4541 104-4761 104-4771
106-4861 110-4994 122-5368 124-5484 128-5711 130-5811 139-6149 143-6324 146-6455 149-6550
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 31
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
151-6639 151-6723 163-7431 172-7830 173-7849 173-7852 173-7855 173-7858 181-8503 187-8822
205-9831 229-11054 233-11229 234-11282 236-11339 238-11450 239-11501
CLEF$S #156-6970 #175-8125 182-8534
DFPC #23-962
DFRD #12-599
DFRDT #13-620
DFSCLK #22-952
DFWRT #14-661
DFWRTT #15-701
DFXCT #16-740
DFXCTT #17-772
DIR$ #4-195 #93-4325 #93-4341 #98-4526 #98-4530 #98-4535 #104-4745 #104-4749 #104-4753 #104-4765
#106-4833 #106-4837 #106-4841 #106-4845 #106-4859 #108-4916 #108-4920 #108-4921 #108-4926 #114-5104
#114-5104 #120-5291 #120-5291 #122-5359 #132-5892 #133-5933 #136-6039 #138-6127 #139-6145 #141-6225
#157-7045 #157-7047 #157-7050 #157-7055 #157-7057 #157-7059 #157-7063 #157-7063 #157-7068 #157-7068
#157-7074 #157-7074 #175-8125 #182-8534 #182-8534 #182-8536 #182-8538 #182-8538 #188-8835 #188-8835
#188-8839 #188-8839 #188-8843 #188-8843 #195-9321 #195-9321 #196-9372 #199-9479 #199-9483 #224-10698
#224-10702 #224-10714 #224-10743 #224-10752 #224-10761 #224-10761 #227-10867 #228-10902 #229-11041 #229-11043
#229-11045 #231-11151 #231-11152 #231-11153
DPOS #18-805
DPOST #19-845
DTEBAS #25-1006
ERROR #7-400 #55-1980 #58-2183 #58-2184 #58-2185 #58-2186 #58-2187 #68-2750 #79-3551 #79-3553
#90-4182 #100-4607 #100-4608 #100-4609 #100-4610 #109-4966 #109-4968 #115-5154 #115-5156 #131-5857
#131-5858 #135-6016 #137-6094 #140-6194 #150-6596 #150-6598 #150-6600 #150-6602 #154-6853 #156-7015
#156-7017 #156-7019 #157-7131 #170-7678 #175-8181 #175-8187 #183-8599 #183-8600 #183-8601 #183-8602
#183-8603 #183-8605 #183-8606 #183-8607 #183-8608 #190-8930 #190-8932 #190-8934 #228-10968 #232-11198
#232-11200
ERROR$ #5-313
ERR$ #93-4325 #93-4341 #98-4526 #98-4530 #98-4535 #104-4745 #104-4749 #104-4753 #104-4765 #106-4833
#106-4837 #106-4841 #106-4845 #106-4859 #108-4916 #108-4920 #108-4921 #108-4926 #114-5104 #120-5291
#122-5359 #132-5892 #133-5933 #136-6039 #138-6127 #139-6145 #141-6225 #157-7045 #157-7047 #157-7050
#157-7055 #157-7057 #157-7059 #157-7063 #157-7068 #157-7074 #182-8534 #182-8536 #182-8538 #188-8835
#188-8839 #188-8843 #195-9321 #196-9372 #199-9479 #199-9483 #224-10698 #224-10702 #224-10714 #224-10743
#224-10752 #224-10761 #227-10867 #228-10902 #229-11041 #229-11043 #229-11045 #231-11151 #231-11152 #231-11153
EXAM #20-884
EXAMT #21-930
EXCT #28-1068
EXIT$S #156-6970 #157-7063 #157-7074 #190-8907 #195-9321 #223-10650 #224-10761
EXOR #10-535
FATAL #50-1727
GLUN$ #103-4715 103-4720 #105-4803 105-4808
IDENT$ #4-210 #51-1741 #51-1741 #55-1924 #55-1924 #58-2124 #58-2124 #67-2679 #67-2679 #77-3195
#77-3195 #79-3510 #79-3510 #82-3788 #82-3788 #88-4071 #88-4071 #90-4140 #90-4140 #92-4268
#92-4268 #94-4356 #94-4356 #100-4578 #100-4578 #103-4688 #103-4688 #105-4776 #105-4776 #107-4866
#107-4866 #109-4932 #109-4932 #115-5120 #115-5120 #121-5314 #121-5314 #123-5373 #123-5373 #127-5625
#127-5625 #131-5817 #131-5817 #135-5982 #135-5982 #137-6058 #137-6058 #140-6158 #140-6158 #142-6236
#142-6236 #144-6332 #144-6332 #147-6464 #147-6464 #150-6562 #150-6562 #153-6789 #153-6789 #156-6937
#156-6937 #160-7222 #160-7222 #164-7441 #164-7441 #167-7550 #167-7550 #169-7632 #169-7632 #174-7877
#174-7877 #174-7969 #174-7969 #175-8077 #175-8077 #183-8544 #183-8544 #189-8854 #189-8854 #199-9489
#199-9489 #201-9671 #201-9671 #204-9782 #204-9782 #207-9910 #207-9910 #211-10120 #211-10120 #217-10354
#217-10354 #220-10484 #220-10484 #223-10618 #223-10618 #228-10908 #228-10908 #232-11158 #232-11158
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 32
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
IO10$ #6-341 51-1777 55-1969 55-1970 55-1974 88-4106 88-4107 175-8139 183-8590 199-9543
199-9544 199-9545 199-9546 199-9550 228-10964
I10$ #6-325 #55-1971 #55-1972 #55-1973 #55-1975 #190-8913
KLDR$ #135-6008 135-6013
KLDW$ #137-6084 137-6089
KLDX$ #140-6186 140-6191
KLIVR$ #156-6971 #156-7021 #156-7021
LODAR #26-1037
MESSAG #7-392 55-1981 55-1982 55-1983 58-2188 58-2189 58-2190 58-2191 58-2192 68-2748
77-3232 77-3234 77-3236 77-3238 77-3240 156-7021 160-7251 160-7253 164-7470 164-7471
167-7580 170-7674 170-7676 174-7890 174-7892 174-7893 174-8002 175-8161 175-8163 175-8165
175-8169 183-8604 183-8609 190-8928 199-9564
MOV$ #114-5104 #114-5104 #114-5104 #114-5104 #114-5104 #114-5104 #114-5104 #114-5104 #114-5104 #114-5104
#114-5104 #120-5291 #120-5291 #120-5291 #120-5291 #120-5291 #120-5291 #120-5291 #120-5291 #120-5291
#120-5291 #120-5291 #157-7068 #157-7068 #157-7068 #157-7068 #157-7068 #157-7068 #157-7068 #157-7068
#157-7068 #157-7068 #157-7068 #157-7068 #182-8534 #182-8534 #182-8538 #182-8538 #188-8835 #188-8835
#188-8835 #188-8835 #188-8835 #188-8843 #188-8843
MRESET #31-1159
MRKT$ #175-8125 175-8142
MRKT$S #183-8582 188-8835 #199-9524
MVB$ #114-5104 114-5104 #120-5291 120-5291 #157-7068 157-7068
NBL$ #156-7000 #156-7000 #156-7002 #156-7002 #156-7005 #156-7005 #156-7008 #156-7008 #156-7010 #156-7010
#156-7012 #156-7012
OFF$ #92-4301 92-4301 92-4301 92-4301 92-4301 92-4301 92-4301 92-4301 92-4301 #92-4302
92-4302 92-4302 92-4302 92-4302 92-4302 92-4302 92-4302 92-4302 #94-4388 94-4388
94-4388 94-4388 94-4388 94-4388 94-4388 94-4388 94-4388 #94-4389 94-4389 94-4389
94-4389 94-4389 94-4389 94-4389 94-4389 94-4389 #94-4390 94-4390 94-4390 94-4390
94-4390 94-4390 94-4390 94-4390 94-4390 #103-4720 103-4720 103-4720 103-4720 #103-4721
103-4721 103-4721 103-4721 103-4721 103-4721 103-4721 103-4721 103-4721 #103-4722 103-4722
103-4722 103-4722 103-4722 103-4722 103-4722 103-4722 103-4722 #103-4723 103-4723 103-4723
103-4723 103-4723 103-4723 103-4723 103-4723 103-4723 #105-4808 105-4808 105-4808 105-4808
#105-4809 105-4809 105-4809 105-4809 105-4809 105-4809 105-4809 105-4809 105-4809 #105-4810
105-4810 105-4810 105-4810 105-4810 105-4810 105-4810 105-4810 105-4810 #105-4811 105-4811
105-4811 105-4811 105-4811 105-4811 105-4811 105-4811 105-4811 #105-4812 105-4812 105-4812
105-4812 105-4812 105-4812 105-4812 105-4812 105-4812 #107-4899 107-4899 107-4899 107-4899
107-4899 107-4899 107-4899 107-4899 107-4899 #107-4900 107-4900 107-4900 107-4900 107-4900
107-4900 107-4900 107-4900 107-4900 #107-4901 107-4901 107-4901 107-4901 107-4901 107-4901
107-4901 107-4901 107-4901 #107-4902 107-4902 107-4902 107-4902 107-4902 107-4902 107-4902
107-4902 107-4902 #121-5346 121-5346 121-5346 121-5346 121-5346 121-5346 121-5346 121-5346
121-5346 #156-7000 156-7000 156-7000 156-7000 156-7000 #156-7002 156-7002 156-7002 156-7002
156-7002 #156-7005 156-7005 156-7005 156-7005 156-7005 #156-7008 156-7008 156-7008 156-7008
156-7008 #156-7010 156-7010 156-7010 156-7010 156-7010 #156-7012 156-7012 156-7012 156-7012
156-7012 #175-8142 175-8142 175-8142 175-8142 175-8142 175-8142 #190-8917 190-8917 190-8917
190-8917 190-8917 190-8917 190-8917 190-8917 190-8917 #223-10655 223-10655 223-10655 223-10655
223-10655 223-10655 223-10655 223-10655 223-10655 #223-10656 223-10656 223-10656 223-10656 223-10656
223-10656 223-10656 223-10656 223-10656 #223-10657 223-10657 223-10657 223-10657 223-10657 223-10657
223-10657 223-10657 223-10657 #223-10658 223-10658 223-10658 223-10658 223-10658 223-10658 223-10658
223-10658 223-10658
PBELL #45-1586
PCRLF #45-1594
PFORCE #33-1212
PMSG #42-1495
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 33
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
PNORML #33-1215
PNTADR #35-1270
PNTAL #43-1526
PNTBAK #33-1218
PNTDEC #40-1416
PNTNBR #36-1297
PNTOCS #39-1384
PNTOCT #38-1352
PNTODT #41-1449
PNT36 #34-1242
PNT36B #37-1325
POP #4-278 #9-501 #66-2617 #80-3681 #80-3682 #81-3781 #81-3782 #81-3783 #84-3911 #84-3935
#87-4063 #87-4064 #87-4065 #89-4132 #99-4573 #106-4860 #108-4925 #126-5613 #128-5705 #136-6053
#138-6132 #139-6153 #141-6230 #151-6630 #155-6931 #159-7216 #197-9390 #202-9734 #203-9777 #205-9857
#206-9880 #206-9905 #210-10115 #214-10245 #214-10259 #215-10273 #215-10293 #218-10406 #218-10432 #219-10478
#221-10554 #222-10611 #222-10613 #225-10798 #227-10877 #235-11316 #237-11392
PRDP$ #131-5845 #131-5850
PREX$ #131-5845 #131-5851 #137-6084 #137-6090
PRINT #7-404 #56-2088 #57-2116 #60-2236 #66-2597 #66-2636 #67-2672 #70-2999 #70-3018 #78-3315
#78-3444 #78-3471 #78-3503 #80-3611 #80-3656 #81-3711 #81-3758 #84-3934 #85-3972 #86-3998
#86-4036 #91-4192 #91-4198 #91-4209 #91-4227 #91-4252 #91-4256 #101-4662 #113-5082 #114-5113
#117-5212 #120-5307 #132-5894 #133-5942 #136-6051 #138-6130 #141-6228 #143-6293 #146-6402 #149-6521
#151-6635 #151-6670 #151-6716 #152-6730 #155-6898 #157-7062 #157-7073 #157-7088 #157-7095 #158-7189
#161-7285 #161-7324 #162-7350 #162-7361 #163-7394 #165-7482 #165-7497 #166-7510 #166-7543 #168-7590
#168-7601 #171-7721 #172-7805 #172-7823 #174-7903 #174-7963 #175-8013 #175-8028 #176-8202 #176-8219
#176-8244 #176-8284 #176-8292 #178-8362 #178-8388 #178-8393 #185-8691 #185-8696 #186-8784 #186-8791
#195-9284 #195-9311 #200-9655 #230-11107 #234-11285 #237-11396
PSLASH #45-1582
PSPACE #45-1578
PTAB #45-1590
PUSH #4-272 #9-495 #66-2614 #80-3604 #80-3605 #81-3706 #81-3707 #81-3708 #84-3909 #84-3933
#87-4050 #87-4051 #89-4125 #99-4561 #106-4858 #108-4922 #126-5597 #128-5703 #132-5875 #133-5914
#136-6036 #138-6113 #139-6150 #141-6212 #151-6628 #152-6769 #155-6923 #158-7161 #159-7195 #197-9388
#202-9715 #203-9752 #205-9827 #206-9876 #206-9884 #210-10108 #214-10240 #214-10249 #215-10268 #215-10277
#218-10400 #218-10410 #219-10461 #221-10530 #222-10573 #222-10575 #225-10766 #225-10771 #225-10783 #225-10788
#225-10794 #227-10873 #235-11305 #237-11358
QDPB$ #92-4301 92-4301 #92-4302 92-4302 #94-4388 94-4388 #94-4389 94-4389 #94-4390 94-4390
#103-4721 103-4721 #103-4722 103-4722 #103-4723 103-4723 #105-4809 105-4809 #105-4810 105-4810
#105-4811 105-4811 #105-4812 105-4812 #107-4899 107-4899 #107-4900 107-4900 #107-4901 107-4901
#107-4902 107-4902 #121-5346 121-5346 #190-8917 190-8917 #223-10655 223-10655 #223-10656 223-10656
#223-10657 223-10657 #223-10658 223-10658
QDPB$S #114-5104 114-5104 #120-5291 120-5291 #157-7068 157-7068
QIOW$ #92-4296 #92-4301 #92-4302 #94-4383 #94-4388 #94-4389 #94-4390 #103-4715 #103-4721 #103-4722
#103-4723 #105-4803 #105-4809 #105-4810 #105-4811 #105-4812 #107-4894 #107-4899 #107-4900 #107-4901
#107-4902 #121-5341 #121-5346 #190-8907 #190-8917 #223-10650 #223-10655 #223-10656 #223-10657 #223-10658
QIOW$S #109-4960 114-5104 #115-5148 120-5291 #156-6970 157-7068
REGRST #32-1196
REGSAV #32-1192
RETURN #4-264 #9-487 52-1838 53-1869 54-1910 56-2090 57-2118 60-2254 61-2280 62-2327
63-2410 66-2600 66-2625 66-2639 67-2676 70-3011 70-3020 71-3064 72-3080 73-3115
74-3146 75-3173 76-3191 80-3683 81-3784 83-3869 84-3929 84-3944 85-3985 86-4032
86-4042 87-4066 89-4134 93-4346 98-4539 99-4574 101-4664 102-4683 104-4769 106-4856
KLIMON CREATED BY MACRO ON 3-APR-86 AT 20:58 PAGE 34
MACRO CROSS REFERENCE CREF
MACRO NAME REFERENCES
108-4928 110-4997 111-5016 111-5021 112-5054 113-5079 113-5084 114-5110 114-5115 116-5184
117-5209 117-5214 118-5248 119-5274 120-5299 120-5305 120-5309 122-5365 124-5485 125-5584
126-5614 126-5620 128-5695 129-5767 130-5812 132-5879 132-5896 133-5924 133-5941 133-5944
134-5956 134-5976 134-5978 136-6054 138-6133 139-6154 141-6231 143-6302 143-6327 146-6406
146-6460 149-6526 149-6554 152-6738 152-6782 155-6900 155-6919 155-6932 157-7097 158-7187
159-7217 163-7437 175-8075 177-8316 178-8397 179-8444 180-8455 181-8505 182-8540 186-8787
187-8823 188-8848 196-9377 199-9486 200-9658 202-9735 203-9778 205-9858 206-9881 206-9906
208-10016 209-10092 210-10116 214-10246 214-10260 215-10274 215-10294 216-10313 216-10331 216-10349
218-10407 218-10433 219-10479 221-10555 222-10614 224-10733 225-10799 227-10881 228-10904 229-11036
229-11070 230-11110 231-11146 231-11154 233-11232 234-11288 235-11317 236-11342 237-11393 238-11442
239-11504
RVP$ #114-5104 #114-5104 #120-5291 #120-5291 #157-7068 #157-7068 #188-8835 #188-8835
SL #5-287 #10-507 #179-8411
SM #29-1098
SR #5-300 #10-521 179-8414 239-11494
TRACK #7-413 #124-5432 #125-5501 #126-5598 #128-5674 #129-5727 #130-5781 #132-5891 #133-5934 #136-6040
#138-6128 #141-6224 #155-6867 #155-6924 #233-11219 #234-11251 #235-11304 #237-11357
TTIDEC #47-1650
TTILIN #48-1676
TTILNW #49-1702
TTIOCT #46-1622
WARNIN #7-396 #58-2193 #82-3826 #82-3828 #82-3830 #82-3832 #90-4176 #142-6270 #145-6372 #148-6503
#160-7255 #170-7680 #175-8183 #175-8185
WD22$ #6-357 51-1778 131-5852 183-8594 183-8595 183-8596
WD36$ #6-369 #51-1776 #51-1779 #55-1968 #123-5411 #123-5414 #127-5655 #127-5656 #131-5854 #137-6091
#154-6839 #154-6848 #154-6849 #154-6850 #175-8148 #183-8592 #183-8593 #190-8923 #199-9553 #199-9555
#199-9557 #199-9560 #232-11190 #232-11192 #232-11194
WSIG$S #183-8582 188-8839
WTSE$S #175-8125 #182-8538 #183-8582 #188-8843 #199-9524 #223-10650
WWADR #30-1127
$DEF #4-195 #4-196 #8-470 #8-472
$PMSG #44-1547