ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:10 2020
Source File: \u6disc.asm
NON-SYST DISK CART INITIALIZATION
2 | *************************************************** U6C00020
3 | * * U6C00030
4 | *STATUS - VERSION 2, MODIFICATION LEVEL 12 * U6C00040
5 | * PROGRAM NAME- NON-SYSTEM DISK CARTRIDGE * U6C00050
6 | * INITIALIZATION * U6C00060
7 | * CODE NAME- DISC * U6C00070
8 | * FUNCTION/OPERATION- * U6C00080
9 | * THIS PROGRAM INITIALIZES UP TO FOUR SATEL- * U6C00090
10 | * LITE CARTRIDGES -- ALL BUT THE MASTER CAR- * U6C00100
11 | * TRIDGE ON LOGICAL DRIVE 0. IT WRITES THE * U6C00110
12 | * SECTOR ADDRESSES, DEFECTIVE CYLINDER AD- * U6C00120
13 | * DRESSES, CARTRIDGE ID, A LET, A DCOM, AND A* U6C00130
14 | * CIB ON EACH CARTRIDGE INITIALIZED. THE * U6C00140
15 | * SYSUP SUBROUTINE IS CALLED TO UPDATE THE * U6C00150
16 | * MASTER CARTRIDGE WITH THE LABELS AND DCOM * U6C00160
17 | * INFORMATION FROM ALL SATELLITE CARTRIDGES * U6C00170
18 | * SUCCESSFULLY INITIALIZED BY DISC. * U6C00180
19 | * ENTRY POINTS- * U6C00190
20 | * DISC HAS ONLY ONE ENTRY POINT. THE PROGRAM* U6C00200
21 | * IS ENTERED AS FOLLOWS-- * U6C00210
22 | * // XEQ DISC * U6C00220
23 | * *IDXXX1,YYY1,XXX2,YYY2,...,XXX4,YYY4* U6C00230
24 | * WHERE XXXN IS THE CURRENT CARTRIDGE LABEL * U6C00240
25 | * AND YYYN IS THE DESIRED LABEL. * U6C00250
26 | * INPUT- AN *ID RECORD AS SPECIFIED UNDER ENTRY * U6C00260
27 | * POINTS. * U6C00270
28 | * OUTPUT- A LIST OF CARTRIDGES ON THE SYSTEM AND* U6C00280
29 | * THEIR LOGICAL AND PHYSICAL SEQUENCE AFTER * U6C00290
30 | * THE EXECUTION OF DISC IS PRINTED ON THE * U6C00300
31 | * PRINCIPAL PRINT DEVICE. A SIGN-OFF MESSAGE* U6C00310
32 | * IS ALSO PRINTED CONTAINING ONE LINE FOR * U6C00320
33 | * EACH PAIR OF FROM-TO CARTRIDGE LABELS AND * U6C00330
34 | * THE WORDS NOT DONE OR COMPLETE. ANY ONE OF* U6C00340
35 | * FOUR ERROR MESSAGES MAY ALSO BE PRINTED AS * U6C00350
36 | * FOLLOWS-- * U6C00360
37 | * CARTRIDGE XXXN IS DEFECTIVE * U6C00370
38 | * CARTRIDGE XXXN IS NOT AVAILABLE * U6C00380
39 | * CARTRIDGE XXXN INVALID...LOGICAL 0 ID * U6C00390
40 | * CARTRIDGE XXXN NEW LABEL IS INVALID * U6C00400
41 | * EXTERNAL REFERENCES- * U6C00410
42 | * DZ000 -- ENTRY POINT FOR THE SYSTEM DISK * U6C00420
43 | * I/O SUBROUTINE. * U6C00430
44 | * $PBSY -- PRINCIPAL PRINTER BUSY INDICATOR * U6C00440
45 | * $EXIT -- ADDRESS OF CALL EXIT ENTRY POINT * U6C00450
46 | * $DUMP -- ADDRESS OF CALL DUMP ENTRY POINT * U6C00460
47 | * $CYLN -- ARM POSITION FOR LOGICAL DRIVE 0 * U6C00470
48 | * $ACDE -- AREA CODE FOR LOGICAL DRIVE 0 * U6C00480
49 | * $DCYL -- 1ST DEF CYL ADDR, LOGICAL DRIVE 0 * U6C00490
50 | * $DBSY -- DISK BUSY INDICATOR * U6C00500
51 | * $IBT2 -- ADDR OF IBT FOR LEVEL 2 * U6C00510
52 | * $IREQ -- ADDR OF INTRPT REQUEST SUBROUTINE * U6C00520
53 | * $I410 -- ILS04 ENTRY POINT * U6C00530
54 | * $ZEND -- ADDR LAST WORD OF DISKZ +1 * U6C00540
55 | * #ACIN -- AVAILABLE CARTRIDGES INDICATOR * U6C00550
56 | * #ANDU -- BLK ADDR END UA+1 (ADJ), LOG DR 0 * U6C00560
57 | * #BNDU -- BLD ADDR END UA+1 (BASE), LOG DR 0* U6C00570
58 | * #FPAD -- FILE PROTET ADDR (BASE), LOG DR 0 * U6C00580
59 | * #PCID -- CARTRIDGE ID, PHYSICAL DRIVE 0 * U6C00590
60 | * #CIDN -- CARTRIDGE ID, LOGICAL DRIVE 0 * U6C00600
61 | * #CIBA -- ADDR OF CORE IMAGE BUFFER LOG DR 0* U6C00610
62 | * #ULET -- ADDR OF LET, LOGICAL DRIVE 0 * U6C00620
63 | * EXITS- * U6C00630
64 | * NORMAL- * U6C00640
65 | * BR TO CALL EXIT ENTRY POINT * U6C00650
66 | * ERROR- * U6C00660
67 | * NOT APPLICABLE * U6C00670
68 | * TABLES/WORK AREAS- * U6C00680
69 | * COMMA AND DCOM AS SHOWN UNDER EXTERNAL REF-* U6C00690
70 | * ERENCES. * U6C00700
71 | * ATTRIBUTES- * U6C00710
72 | * NONE * U6C00720
73 | * NOTES- * U6C00730
74 | * PROGRAM REVISED IN MOD 2 * U6C00740
75 | * * U6C00750
76 | *************************************************** U6C00760
NON-SYST DISK CART INITIALIZATION
78 | * U6C00780
79 | * RELATIVE DCOM LOCATION EQUATE STMNTS U6C00790
80 | * U6C00800
001C 81 | #ACIN EQU 28 U6C00810
0023 82 | #ANDU EQU 35 U6C00820
0028 83 | #BNDU EQU 40 U6C00830
002D 84 | #FPAD EQU 45 U6C00840
0032 85 | #PCID EQU 50 U6C00850
0037 86 | #CIDN EQU 55 U6C00860
003C 87 | #CIBA EQU 60 U6C00870
0050 88 | #ULET EQU 80 U6C00880
0000 89 | #IDAD EQU /0000 2-11 U6C00890
90 | * U6C00900
91 | * RESIDENT MONITOR EQUATE STMNTS U6C00910
92 | * U6C00920
0036 93 | $PBSY EQU /36 U6C00930
0038 94 | $EXIT EQU /38 U6C00940
003F 95 | $DUMP EQU /3F U6C00950
009A 96 | $CYLN EQU /9A U6C00960
009F 97 | $ACDE EQU /9F U6C00970
00A4 98 | $DCYL EQU /A4 U6C00980
00EE 99 | $DBSY EQU /EE U6C00990
00B9 100 | $IBT2 EQU /B9 U6C01000
000A 101 | $LEV2 EQU /A 2-11 U6C01010
002C 102 | $IREQ EQU /2C U6C01020
00D5 103 | $I410 EQU /D5 U6C01030
01E0 104 | $ZEND EQU /1E0 U6C01040
00F2 105 | DZ000 EQU /F2 U6C01050
00D0 106 | CLDST EQU /D0 U6C01060
107 | * U6C01070
108 | * READ AN *ID RECORD, PRINT THE RECORD U6C01080
109 | * ON THE PRINCIPAL OUTPUT DEVICE, CON- U6C01090
110 | * VERT AND STORE RECORD INFORMATION IN U6C01100
111 | * A FROM-TO TABLE AND A PACKED EBC U6C01110
112 | * TABLE FOR OUTPUT OF SIGN-OFF MESSAGE. U6C01120
113 | * U6C01130
0000 C400 012BR 114 | IC000 LD L IC920 ADDR OF FROM-TO BUFFER U6C01140
0002 1911*9143 115 | CALL RDREC READ ID RECORD U6C01150
0004 D400 012DR 116 | STO L IC922 ADDR PRINCIPAL OUTPUT SUBR U6C01160
117 | * 2-11 U6C01170
118 | * GO BUILD AVAILABLE CART LIST 2-11 U6C01180
119 | * 2-11 U6C01190
0006 4400 0420R 120 | BSI L IT200 2-11 U6C01200
121 | * U6C01210
122 | * READ DCOM FROM MASTER CARTRIDGE U6C01220
123 | * U6C01230
0008 CC00 0118R 124 | LDD L IC900 READ FUNC AND BUFFER ADDR U6C01240
000A 4400 00F2 125 | BSI L DZ000 READ DCOM U6C01250
126 | * U6C01260
127 | * CHECK FOR DISK READ COMPLETE U6C01270
128 | * U6C01280
000C 7400 00EE 129 | IC010 MDX L $DBSY,0 SKIP IF DISK NOT BUSY 2-11 U6C01290
000E 70FD 130 | MDX IC010 LOOP ON BUSY 2-11 U6C01300
131 | * 2-11 U6C01310
132 | * U6C01320
133 | * INITIALIZE U6C01330
134 | * U6C01340
135 | * ONE INSTRUCTION REMOVED 2-11 U6C01350
000F 1010 136 | SLA 16 ZERO ACC 2-11 U6C01360
0010 9400 03B3R 137 | S L IC980+1 NEGATE CART INITIALIZE CTR U6C01370
0012 D030 138 | STO IC065+1 SET UP SIGN-OFF LINE COUNT U6C01380
0013 7401 03B3R 139 | MDX L IC980+1,1 CART INIT COUNTER U6C01390
0015 6100 140 | LDX 1 0 INIT FROM-TO TABLE POINTER U6C01400
0016 6D00 0136R 141 | STX L1 IC931 FROM-TO TABLE POINTER U6C01410
0018 C400 043CR 142 | LD L IC992+2+#ACIN U6C01420
001A D400 013BR 143 | STO L IC936 AVAILABLE CART INDR WORD U6C01430
144 | * U6C01440
145 | * SAVE $IREQ -POINT TO INTRPT REQUEST U6C01450
146 | * U6C01460
001C C400 002C 147 | LD L $IREQ U6C01470
001E D400 0137R 148 | STO L IC932 SAVE $IREQ U6C01480
0020 6600 01F6R 149 | LDX L2 IC380 ADDR OF KB ROUTINE U6C01490
0022 6E00 002C 150 | STX L2 $IREQ SET UP KEYBOARD REQUEST KEY U6C01500
151 | * U6C01510
152 | * SAVE $IBT2 -POINT TO DIO ERROR SEQ U6C01520
153 | * U6C01530
0024 C400 00B9 154 | LD L $IBT2 U6C01540
0026 D400 0133R 155 | STO L IC928 TEMPORARY U6C01550
0028 6600 04A0R 156 | LDX L2 DIO-3 DISK INTERRUPT ADDR U6C01560
002A 6E00 00B9 157 | STX L2 $IBT2 SET UP INTERRUPT ADDRESS U6C01570
158 | * 212 U6C01571
159 | * SAVE $LEV2 - POINT TO $I200 212 U6C01572
160 | * 212 U6C01573
002C C400 000A 161 | LD L $LEV2 SAVE $LEV2 TEMPORARILY 212 U6C01574
002E D400 013CR 162 | STO L IC937 212 U6C01575
0030 C400 013DR 163 | LD L IC938 SET $LEV2 = $I200 212 U6C01576
0032 D400 000A 164 | STO L $LEV2 212 U6C01577
165 | * U6C01580
166 | * TEST FOR LAST CARTRIDGE INITIALIZED U6C01590
167 | * U6C01600
0034 74FF 03B3R 168 | IC050 MDX L IC980+1,-1 SKIP NEXT IF DONE U6C01610
0036 7026 169 | MDX IC200 BR TO PROCESS NEXT CART U6C01620
170 | * U6C01630
171 | * RESTORE LEVEL 2 INTERRUPT U6C01640
172 | * U6C01650
0037 C400 0133R 173 | IC060 LD L IC928 U6C01660
0039 D400 00B9 174 | STO L $IBT2 U6C01670
003B C400 013CR 175 | LD L IC937 212 U6C01673
003D D400 000A 176 | STO L $LEV2 212 U6C01676
177 | * U6C01680
178 | * CALL SYSUP U6C01690
179 | * U6C01700
003F 22A2*2917 180 | CALL SYSUP U6C01710
0041 0457R 181 | DC IC992+2+#CIDN CART ID TABLE U6C01720
182 | * U6C01730
183 | * PRINT SIGN-OFF MESSAGE U6C01740
184 | * U6C01750
0042 6600 0000 185 | IC065 LDX L2 *-* SET UP LINE COUNT U6C01760
0044 6700 03BDR 186 | LDX L3 IC980+11 ADDR OF FIRST LINE WD COUNT U6C01770
0046 6F00 0261R 187 | IC070 STX L3 IC950+1 U6C01780
0048 CC00 0260R 188 | LDD L IC950 FUNC CODE AND WD CNT ADDR U6C01790
004A 4480 012DR 189 | BSI I IC922 BR TO PRINT ROUTINE U6C01800
004C 7400 0036 190 | MDX L $PBSY,0 SKIP IF PRNTR NOT BUSY 2-11 U6C01810
004E 70FD 191 | MDX *-3 LOOP ON BUSY 2-11 U6C01820
192 | * ONE INSTRUCTION REMOVED 2-11 U6C01830
004F 7310 193 | MDX 3 16 INCR TO NEXT LINE WD COUNT U6C01840
0050 7201 194 | MDX 2 1 INCR LINE COUNT U6C01850
0051 70F4 195 | MDX IC070 BR TO PRINT ANOTHER LINE U6C01860
196 | * U6C01870
197 | * RESTORE INTERRUPT REQUEST ADDRESS U6C01880
198 | * U6C01890
0052 C400 0137R 199 | LD L IC932 U6C01900
0054 D400 002C 200 | STO L $IREQ POINT TO ILS ROUTINE U6C01910
201 | * U6C01920
202 | * EXIT TO MONITOR OR KEYBOARD REQUEST U6C01930
203 | * U6C01940
0056 7400 01F6R 204 | MDX L IC380,0 SKIP IF NO KEYBOARD REQUEST U6C01950
0058 7001 205 | MDX IC100 BR IF KEYBOARD REQUEST U6C01960
0059 6038 206 | EXIT EXIT TO MONITOR 2-11 U6C01970
005A 4400 003F 207 | IC100 BSI L $DUMP EXIT VIA KEYBOARD REQUEST U6C01980
005C FFFE 208 | DC -2 U6C01990
209 | * U6C02000
210 | * ERROR IF LABEL IS MASTER CARTRIDGE U6C02010
211 | * U6C02020
005D C500 03B4R 212 | IC200 LD L1 IC980+2 CURRENT CART LABEL U6C02030
005F 4C08 0092R 213 | BSC L IC226,+ BR IF CUR ID INVALID 2-11 U6C02032
0061 9400 0457R 214 | S L IC992+2+#CIDN 2-11 U6C02034
0063 4C18 0077R 215 | BSC L IC205,+- BR IF MASTER CARTRIDGE 2-11 U6C02036
0065 C500 03B4R 216 | LD L1 IC980+2 LOAD CURRENT ID 2-11 U6C02038
0067 D00E 217 | STO IC905 *AND SAVE FOR SEARCH 2-11 U6C02040
0068 63FB 218 | LDX 3 -5 INITIALIZE POINTER 2-11 U6C02042
0069 C700 045CR 219 | IC201 LD L3 IC992+2+#CIDN+5 FETCH ID FROM 2-11 U6C02044
006B 900A 220 | S IC905 *DCOM 2-11 U6C02046
006C 4C18 007BR 221 | BSC L IC208,+- BR IF MATCH OCCURS 2-11 U6C02048
006E 7301 222 | MDX 3 1 INCRE POINTER-SKIP ON 02-11 U6C02050
006F 70F9 223 | MDX IC201 BR TO CONTINUE 2-11 U6C02052
0070 C005 224 | LD IC905 BR IF SEARCHING FOR AN 2-11 U6C02054
0071 4C18 0092R 225 | BSC L IC226,+- *AVAILABLE ENTRY 2-11 U6C02056
0073 1010 226 | SLA 16 SET ID TO ZERO AND GO 2-11 U6C02058
0074 D001 227 | STO IC905 *SEARCH FOR AN EMPTY 2-11 U6C02060
0075 70F2 228 | MDX IC201-1 *ENTRY IN DCOM 2-11 U6C02062
229 | * 2-11 U6C02064
0076 0000 230 | IC905 DC *-* CURRENT ID SAVE AREA 2-11 U6C02066
231 | * 2-11 U6C02068
232 | * PRINT ERROR MSG -INVALID-SYST CART ID U6C02070
233 | * U6C02080
0077 6700 0250R 234 | IC205 LDX L3 IC943 SUB-MSG ADDR 2-11 U6C02090
0079 4400 0206R 235 | BSI L IC400 BR TO PRINT U6C02100
236 | * U6C02110
237 | * INITIALIZE SECTOR 0 - CARTRIDGE ID U6C02120
238 | * U6C02130
007B C400 0120R 239 | IC208 LD L IC910 SET DM2 INITIALIZED 2-11 U6C02140
007D D400 0277R 240 | STO L IC970+9 *STATUS WORD (WORD 7 = -2) U6C02150
007F C500 03B5R 241 | LD L1 IC980+3 U6C02160
0081 D400 0273R 242 | STO L IC970+5 NEW CARTRIDGE LABEL U6C02170
0083 4C30 0089R 243 | BSC L IC220-1,-Z INVALID LABEL IF NOT PLUS U6C02180
244 | * U6C02190
245 | * PRINT ERROR MSG -NEW LABEL IS INVALID U6C02200
246 | * U6C02210
0085 6700 0254R 247 | LDX L3 IC944 SUB-MSG ADDRESS U6C02220
0087 4400 0206R 248 | BSI L IC400 BR TO PRINT U6C02230
249 | * U6C02240
250 | * FIND PHYSICAL DRIVE NUMBER U6C02250
251 | * U6C02260
0089 63F5 252 | LDX 3 -11 INITIALIZE POINTER 2-11 U6C02270
008A C700 048ER 253 | IC220 LD L3 IT904+11 FETCH ID FROM ID LIST 2-11 U6C02280
008C 9500 03B4R 254 | S L1 IC980+2 CURRENT CART LABEL U6C02290
008E 4C18 0097R 255 | BSC L IC230,+- BR IF LABEL FOUND U6C02300
0090 7301 256 | IC225 MDX 3 1 INCR POINTER- SKIP IF END U6C02310
0091 70F8 257 | MDX IC220 U6C02320
258 | * U6C02330
259 | * PRINT ERROR MSG -IS NOT AVAILABLE U6C02340
260 | * U6C02350
0092 6700 0245R 261 | IC226 LDX L3 IC942 SUB-MSG ADDR 2-11 U6C02360
0094 4400 0206R 262 | BSI L IC400 BR TO PRINT U6C02370
0096 7016 263 | MDX IC236 BR TO CHK FOR ERROR U6C02380
264 | * U6C02390
265 | * CHECK DRIVE READY INDICATOR U6C02400
266 | * U6C02410
0097 730B 267 | IC230 MDX 3 11 CNVRT PNTR TO DR NO 2-11 U6C02420
0098 1000 268 | NOP MAY SKIP U6C02430
0099 C400 013BR 269 | LD L IC936 DRIVE READY INDR WORD U6C02440
009B 1300 270 | SLA 3 SHIFT READY INDR INTO SIGN U6C02450
009C 4810 271 | BSC - SKIP NEXT IF READY U6C02460
009D 7005 272 | MDX IC232 BR TO GET NEXT PCID ENTRY U6C02470
273 | * U6C02480
274 | * CHK FOR DRIVE PREVIOUSLY INITIALIZED U6C02490
275 | * U6C02500
009E C400 013AR 276 | LD L IC935 DRIVE INIT INDR U6C02510
00A0 1300 277 | SLA 3 SHIFT TO SIGN U6C02520
00A1 4C10 00A6R 278 | BSC L IC234,- BR IF DRIVE NOT INITIALIZED U6C02530
279 | * U6C02540
280 | * RESTORE XR3 AND GET NEXT PCID ENTRY U6C02550
281 | * U6C02560
00A3 73F5 282 | IC232 MDX 3 -11 SET TO NEXT AVAIL ID 2-11 U6C02570
00A4 1000 283 | NOP MAY SKIP U6C02580
00A5 70EA 284 | MDX IC225 BR TO CONTINUE PCID SEARCH U6C02590
285 | * U6C02600
286 | * SET DRIVE INITIALIZED INDR BIT ON U6C02610
287 | * U6C02620
00A6 C400 0122R 288 | IC234 LD L IC912 SIGN BIT U6C02630
00A8 1B00 289 | SRA 3 SHIFT TO RELATIVE DRIVE BIT U6C02640
00A9 EC00 013AR 290 | OR L IC935 *(0-4) AND STORE AS DRIVE U6C02650
00AB D400 013AR 291 | STO L IC935 *INITIALIZED INDICATOR. U6C02660
292 | * U6C02670
293 | * GET NEXT CART ID IF ANY ERROR U6C02680
294 | * U6C02690
00AD C400 0138R 295 | IC236 LD L IC933 ERROR INDR U6C02700
00AF 4C20 01E8R 296 | BSC L IC370,Z BR IF ANY ERROR U6C02710
297 | * U6C02720
298 | * SAVE PHYSICAL DRIVE NUMBER U6C02730
299 | * U6C02740
00B1 6F00 0139R 300 | STX L3 IC934 PHYSICAL DRIVE INDEX VALUE U6C02750
00B3 C400 0139R 301 | LD L IC934 U6C02760
00B5 100C 302 | SLA 12 SHIFT TO DRIVE NO. POSITION U6C02770
00B6 D077 303 | STO IC923 SAVE U6C02780
00B7 D400 054BR 304 | STO L IC990+1 U6C02790
305 | * U6C02800
306 | * SEEK HOME CURRENT CARTRIDGE U6C02810
307 | * U6C02820
00B9 4400 04A2R 308 | BSI L DIO-1 CALL DISK ROUTINE U6C02830
00BB 0300 309 | DC /0300 SEEK HOME FUNCTION U6C02840
00BC 054AR 310 | DC IC990 U6C02850
311 | * U6C02860
312 | * INITIALIZE DEFECTIVE CYLINDER TABLE U6C02870
313 | * U6C02880
00BD 62FD 314 | LDX 2 -3 LOOP COUNT - 3 WORDS U6C02890
00BE 6A70 315 | STX 2 IC924 INITIALIZE DEF CYL COUNT U6C02900
00BF C063 316 | LD IC913 INITIALIZE VALUE U6C02910
00C0 D600 0273R 317 | IC210 STO L2 IC970+2+3 DEF CYL TBL U6C02920
00C2 7201 318 | MDX 2 1 INCR COUNT U6C02930
00C3 70FC 319 | MDX IC210 REPEAT U6C02940
320 | * U6C02950
321 | * WRITE PATTERN TO ONE CARTRIDGE U6C02960
322 | * U6C02970
00C4 6A6B 323 | STX 2 IC925 INITIALIZE SECTOR ADDRESS U6C02980
00C5 63FA 324 | IC235 LDX 3 -6 PATTERN INDEX VALUE U6C02990
00C6 6A6D 325 | IC240 STX 2 IC929 INIT RETRY COUNTER U6C03000
00C7 C052 326 | LD IC901 NEGATIVE VALUE U6C03010
00C8 D069 327 | STO IC927 INIT BAD CYLINDER INDR U6C03020
328 | * U6C03030
329 | * FILL BUFFER WITH PATTERN U6C03040
330 | * U6C03050
00C9 6600 FEC0 331 | LDX L2 -320 BUFFER FILL COUNTER U6C03060
00CB CF00 0120R 332 | LDD L3 IC901+6 PATTERN TO WRITE U6C03070
00CD DE00 068CR 333 | IC245 STD L2 IC990+322 FILL BUFFER WITH PATTERN U6C03080
00CF 7202 334 | MDX 2 2 INCR COUNTER- SKIP IF ZERO U6C03090
00D0 70FC 335 | MDX IC245 U6C03100
336 | * U6C03110
337 | * SET UP SECTOR ADDRESS U6C03120
338 | * U6C03130
00D1 C05E 339 | LD IC925 SECTOR 0 ADDR FOR THIS CYL U6C03140
00D2 E85B 340 | OR IC923 DRIVE NO. FOR THIS CART U6C03150
00D3 D05D 341 | STO IC926 SCTR ADDR TEMP U6C03160
342 | * U6C03170
343 | * WRITE PATTERN TO EIGHT SECTORS U6C03180
344 | * U6C03190
00D4 6208 345 | LDX 2 8 INIT SCTR WRITE COUNT U6C03200
00D5 D400 054BR 346 | IC250 STO L IC990+1 BUFFER SCTR ADDR U6C03210
00D7 4400 04A2R 347 | BSI L DIO-1 CALL DISK ROUTINE U6C03220
00D9 0200 348 | DC /0200 WRITE FUNCTION U6C03230
00DA 054AR 349 | DC IC990 BUFFER WD CNT ADDR U6C03240
00DB 4400 04A2R 350 | BSI L DIO-1 TEST FOR BUSY U6C03250
00DD 0000 351 | DC /0000 SENSE FUNCTION CODE U6C03260
00DE 0130R 352 | DC IC926-1 U6C03270
00DF 7400 0134R 353 | MDX L IC929,0 SKIP NEXT IF NO RETRY U6C03280
00E1 7063 354 | MDX IC280 BR IF RETRY U6C03290
00E2 803E 355 | IC255 A IC911 DECR SECTOR ADDR U6C03300
00E3 72FF 356 | MDX 2 -1 DECR SCTR WRITE CTR U6C03310
00E4 70F0 357 | MDX IC250 BR TO WRITE A SECTOR U6C03320
358 | * U6C03330
359 | * READ BACK AND COMPARE EIGHT SECTORS U6C03340
360 | * U6C03350
00E5 6A46 361 | STX 2 IC921 CLEAR COMPARE ERROR INDR U6C03360
00E6 6A4E 362 | STX 2 IC930 CLEAR SCTR ADDR ERROR INDR U6C03370
00E7 6208 363 | LDX 2 8 INIT SCTR READ COUNT U6C03380
00E8 7407 0131R 364 | MDX L IC926,7 POINT TO SECTOR 7 U6C03390
00EA C046 365 | IC260 LD IC926 ADDR OF SCTR TO READ U6C03400
00EB D400 054BR 366 | STO L IC990+1 BUFFER SCTR ADDR U6C03410
00ED 4400 04A2R 367 | BSI L DIO-1 CALL DISK ROUTINE U6C03420
00EF 0100 368 | DC /0100 READ FUNCTION U6C03430
00F0 054AR 369 | DC IC990 BUFFER WD CNT ADDR U6C03440
00F1 4400 04A2R 370 | BSI L DIO-1 TEST FOR BUSY U6C03450
00F3 0000 371 | DC /0000 SENSE FUNCTION CODE U6C03460
00F4 0130R 372 | DC IC926-1 U6C03470
00F5 7400 0134R 373 | MDX L IC929,0 SKIP NEXT IF NO RETRY U6C03480
00F7 7051 374 | MDX IC285 BR IF RETRY U6C03490
375 | * U6C03500
376 | * COMPARE SECTOR ADDR U6C03510
377 | * U6C03520
00F8 E02B 378 | IC265 AND IC916 EXTRACT SCTR ADDR U6C03530
00F9 F400 054BR 379 | EOR L IC990+1 COMPARE W/ BUFFER SCTR ADDR U6C03540
00FB 4C20 014DR 380 | BSC L IC300,Z BR IF SCTR ADDR ERROR U6C03550
381 | * U6C03560
382 | * COMPARE BUFFER CONTENTS WITH PATTERN U6C03570
383 | * U6C03580
00FD 6500 0140 384 | LDX L1 320 INITIALIZE BUFFER POINTER U6C03590
00FF CD00 054AR 385 | IC270 LDD L1 IC990 TWO WDS OF BUFFER U6C03600
0101 9F00 0120R 386 | SD L3 IC901+6 COMPARE W/ PATTERN WRITTEN U6C03610
0103 4818 387 | BSC +- SKIP IF NOT SAME U6C03620
0104 18D0 388 | RTE 16 FLIP SECOND WORD INTO ACC U6C03630
0105 4C20 0156R 389 | BSC L IC301,Z BR IF NOT SAME U6C03640
0107 71FE 390 | MDX 1 -2 DECR BUFFER POINTER U6C03650
0108 70F6 391 | MDX IC270 BR TO COMPARE TWO MORE WDS U6C03660
0109 1010 392 | SLA 16 CLEAR ACC U6C03670
010A D021 393 | IC271 STO IC921 CLEAR COMPARE ERROR FLAG U6C03680
010B 74FF 0131R 394 | MDX L IC926,-1 DECR SCTR ADDR U6C03690
010D 1000 395 | NOP MAY SKIP U6C03700
010E 72FF 396 | MDX 2 -1 DECR SCTR READ COUNT U6C03710
010F 70DA 397 | MDX IC260 BR TO READ A SECTOR U6C03720
398 | * U6C03730
399 | * NEXT PATTERN U6C03740
400 | * U6C03750
0110 7302 401 | MDX 3 2 INCR PATTERN POINTER U6C03760
0111 70B4 402 | MDX IC240 BR TO WRITE NEXT PATTERN U6C03770
403 | * U6C03780
404 | * CHECK FOR BAD CYLINDER U6C03790
405 | * U6C03800
0112 C01F 406 | LD IC927 BAD CYLINDER INDR U6C03810
0113 4C30 0165R 407 | BSC L IC310,Z- BR IF BAD CYLINDER U6C03820
0115 4C10 0169R 408 | BSC L IC315,- BR IF CYL ZERO DEFECTIVE U6C03830
0117 7026 409 | MDX IC275 BR TO INCR SCTR POINTER U6C03840
410 | * U6C03850
411 | * CONSTANTS AND WORK AREA U6C03860
412 | * U6C03870
0118 413 | BSS E 0 MAKE ADDR EVEN U6C03880
0118 7000 414 | IC900 DC /7000 DISK READ FUNCTION U6C03890
0119 041ER 415 | DC IC992 DCOM BUFFER ADDR U6C03900
011A AAAA 416 | IC901 DC /AAAA FIRST PATTERN U6C03910
011B AAAA 417 | DC /AAAA U6C03920
011C 5555 418 | DC /5555 SECOND PATTERN U6C03930
011D 5555 419 | DC /5555 U6C03940
011E 0000 420 | DC 0 THIRD PATTERN U6C03950
011F 0000 421 | DC 0 U6C03960
0120 FFFE 422 | IC910 DC -2 DM2 INITIALIZED STATUS WORD U6C03970
0121 0001 423 | IC911 DC 1 DECIMAL ONE CONSTANT U6C03980
0122 8000 424 | IC912 DC /8000 SIGN BIT CONSTANT U6C03990
0123 0658 425 | IC913 DC /0658 INITIAL VALUE DEF CYL TBL U6C04000
0124 0FFF 426 | IC916 DC /0FFF SECTOR ADDR EXTRACT MASK U6C04010
0123R 427 | IC917 EQU IC913 NO. OF SCTRS/CART CONSTANT U6C04020
0125 0180 428 | IC918 DC /0180 DCOM INITIALIZE CONSTANT U6C04030
0126 0008 429 | DC /0008 DCOM INITIALIZE CONSTANT U6C04040
0127 C3D6 D4D7 D3C5 E3C5 430 | IC919 EBC .COMPLETE. U6C04050
012B 03B2R 431 | IC920 DC IC980 ADDR OF FROM-TO TABLE U6C04060
012C 0000 432 | IC921 DC *-* COMPARE ERROR INDR U6C04070
012D 0000 433 | IC922 DC *-* ADDR PRINCIPAL OUTPUT SUBR U6C04080
012E 0000 434 | IC923 DC *-* PHYSICAL DR NUMBER U6C04090
012F 0000 435 | IC924 DC *-* DEFECTIVE CYLINDER COUNTER U6C04100
0130 436 | BSS E 0 IC926-1 MUST BE EVEN U6C04110
0130 0000 437 | IC925 DC *-* SECTOR ZERO ADDRESS TEMP U6C04120
0131 0000 438 | IC926 DC *-* SECTOR ADDR TEMPORARY U6C04130
0132 0000 439 | IC927 DC *-* BAD CYLINDER INDR U6C04140
0133 0000 440 | IC928 DC *-* TEMPORARY FOR $IBT2 U6C04150
0134 0000 441 | IC929 DC *-* RETRY COUNTER U6C04160
0135 0000 442 | IC930 DC *-* SCTR ADDR ERROR INDR U6C04170
0136 0000 443 | IC931 DC *-* FROM-TO TABLE POINTER U6C04180
0137 0000 444 | IC932 DC *-* TEMPORARY FOR $IREQ U6C04190
0138 0000 445 | IC933 DC *-* ID RECORD ERROR INDR U6C04200
0139 0000 446 | IC934 DC *-* PHYSICAL DRIVE INDEX VALUE U6C04210
013A 0000 447 | IC935 DC *-* DRIVE INITIALIZED INDR U6C04220
013B 0000 448 | IC936 DC *-* DRIVE READY INDR WORD U6C04230
013C 0000 449 | IC937 DC *-* TEMP STORAGE FOR $LEV2 212 U6C04235
013D 00B3 450 | IC938 DC /B3 $I200 LOCATION 212 U6C04238
451 | * U6C04240
452 | * INCR TO CHECK NEXT CYLINDER U6C04250
453 | * U6C04260
013E 7408 0130R 454 | IC275 MDX L IC925,8 POINT SCTR ADDR TO NEXT CYL U6C04270
0140 C0EF 455 | LD IC925 U6C04280
0141 90E1 456 | S IC917 END CONSTANT U6C04290
0142 4C18 0175R 457 | BSC L IC330,+- BR IF ALL CYLINDERS TESTED U6C04300
0144 7080 458 | MDX IC235 BR TO INIT TO FIRST PATTERN U6C04310
459 | * U6C04320
460 | * RETRY WRITE U6C04330
461 | * U6C04340
0145 74FF 0134R 462 | IC280 MDX L IC929,-1 DECR RETRY CTR U6C04350
0147 708D 463 | MDX IC250 BR TO RETRY U6C04360
0148 7099 464 | MDX IC255 BR TO DECR SCTR ADDR U6C04370
465 | * U6C04380
466 | * RETRY READ U6C04390
467 | * U6C04400
0149 74FF 0134R 468 | IC285 MDX L IC929,-1 DECR RETRY COUNTER U6C04410
014B 709E 469 | MDX IC260 BR TO RETRY U6C04420
014C 70AB 470 | MDX IC265 BR TO COMPARE U6C04430
471 | * U6C04440
472 | * SECTOR ADDRESS ERROR U6C04450
473 | * U6C04460
014D C0E2 474 | IC300 LD IC925 SECTOR 0 ADDR FOR THIS CYL U6C04470
014E F400 054BR 475 | EOR L IC990+1 CURRENT SCTR ADDR FR BUFFER U6C04480
0150 4C20 0156R 476 | BSC L IC301,Z BR IF NOT SECTOR ZERO U6C04490
0152 7400 0135R 477 | MDX L IC930,0 SKIP IF FIRST SCTR ZERO ERR U6C04500
0154 7014 478 | MDX IC315 BR IF DEFECTIVE CARTRIDGE U6C04510
0155 68DF 479 | STX IC930 SET SCTR ADDR ERROR INDR ON U6C04520
480 | * U6C04530
481 | * COMPARE ERROR U6C04540
482 | * U6C04550
0156 7400 012CR 483 | IC301 MDX L IC921,0 CHK FOR PREVIOUS CMP ERROR U6C04560
0158 7007 484 | MDX IC305 BR IF SECOND COMPARE ERROR U6C04570
0159 68D2 485 | STX IC921 SET COMPARE ERROR INDR ON U6C04580
015A 7400 0134R 486 | MDX L IC929,0 SKIP NEXT IF NO RETRY SET U6C04590
015C 708D 487 | MDX IC260 BR TO RETRY U6C04600
015D 7432 0134R 488 | MDX L IC929,50 INCR TO RETRY 50 TIMES U6C04610
015F 708A 489 | MDX IC260 BR TO RETRY U6C04620
0160 C0CF 490 | IC305 LD IC925 CURRENT CYL SCTR 0 ADDR U6C04630
0161 D0D0 491 | STO IC927 SET BAD CYL INDR ON U6C04640
0162 1010 492 | SLA 16 CLEAR ACC U6C04650
0163 D0D0 493 | STO IC929 RESET RETRY COUNTER U6C04660
0164 70A5 494 | MDX IC271 BR TO TEST NEXT SECTOR U6C04670
495 | * U6C04680
496 | * CHECK DEFECTIVE CYLINDER COUNT U6C04690
497 | * U6C04700
0165 6780 012FR 498 | IC310 LDX I3 IC924 DEFECTIVE CYLINDER COUNT U6C04710
0167 7300 499 | MDX 3 0 SKIP IF MORE THAN 3 BAD CYL U6C04720
0168 7006 500 | MDX IC316 U6C04730
501 | * U6C04740
502 | * DEFECTIVE CARTRIDGE U6C04750
503 | * U6C04760
0169 6700 023AR 504 | IC315 LDX L3 IC941 SUB-MSG ADDRESS U6C04770
016B 4400 0206R 505 | BSI L IC400 BR TO PRINT U6C04780
016D 4C00 01E8R 506 | BSC L IC370 BR TO GET NEXT CART ID U6C04790
507 | * U6C04800
508 | * PUT DEFECTIVE CYL ADDR INTO TABLE U6C04810
509 | * U6C04820
016F D700 0273R 510 | IC316 STO L3 IC970+2+3 DEFECTIVE CYL TABLE U6C04830
0171 7401 012FR 511 | MDX L IC924,1 INCR DEFECTIVE CYL COUNT U6C04840
0173 1000 512 | NOP MAY SKIP U6C04850
0174 70C9 513 | MDX IC275 BR TO CHECK NEXT CYLINDER U6C04860
514 | * U6C04870
515 | * INITIALIZE SECTOR 1 - DCOM U6C04880
516 | * U6C04890
0175 6580 0136R 517 | IC330 LDX I1 IC931 FROM-TO TABLE POINTER U6C04900
0177 63FB 518 | LDX 3 -5 INITIALIZE TABLE POINTER U6C04910
0178 C700 045CR 519 | IC340 LD L3 IC992+2+#CIDN+5 NEXT LABEL IN #CIDN U6C04920
017A 9500 03B4R 520 | S L1 IC980+2 U6C04930
017C 4C18 0184R 521 | BSC L IC350,+- BR IF LABEL FOUND U6C04940
017E 7301 522 | MDX 3 1 INCR POINTER- SKIP IF END U6C04950
017F 70F8 523 | MDX IC340 BR TO GET NEXT TBL ENTRY U6C04960
0180 1010 524 | SLA 16 U6C04970
0181 D500 03B4R 525 | STO L1 IC980+2 SET UP TO LOOK FOR 1ST ZERO U6C04980
0183 70F3 526 | MDX IC340-1 BR TO SEARCH AGAIN U6C04990
0184 62AF 527 | IC350 LDX 2 -81 CLEAR BUFFER COUNT U6C05000
0185 D600 0451R 528 | STO L2 IC993+2+81 CLEAR SCTR 1 BUFFER U6C05010
0187 7201 529 | MDX 2 1 DECR COUNTER U6C05020
0188 70FC 530 | MDX IC350+1 BR TO CONTINUE CLEARING U6C05030
0189 C400 0273R 531 | LD L IC970+5 NEW CARTRIDGE LABEL U6C05040
018B D700 045CR 532 | STO L3 IC992+2+#CIDN+5 MASTER DCOM U6C05050
018D D400 0437R 533 | STO L IC993+2+#CIDN SATELLITE DCOM U6C05060
018F C095 534 | LD IC918 HEX VALUE 0180 U6C05070
0190 D400 0423R 535 | STO L IC993+2+#ANDU INIT #ANDU U6C05080
0192 D400 0428R 536 | STO L IC993+2+#BNDU INIT #BNDU U6C05090
0194 1804 537 | SRA 4 = HEX VALUE 0018 U6C05100
0195 D400 042DR 538 | STO L IC993+2+#FPAD INIT #FPAD U6C05110
0197 C08E 539 | LD IC918+1 HEX VALUE 0008 U6C05120
0198 D400 043CR 540 | STO L IC993+2+#CIBA INIT #CIBA U6C05130
019A 1802 541 | SRA 2 = HEX VALUE 0002 U6C05140
019B D400 0450R 542 | STO L IC993+2+#ULET U6C05150
543 | * U6C05160
544 | * SET UP AREA CODE FOR DZ000 U6C05170
545 | * U6C05180
019D 6680 0139R 546 | LDX I2 IC934 PHYSICAL DRIVE INDEX VALUE U6C05190
019F C600 0262R 547 | LD L2 IC960 AREA CODE - CURRENT CART U6C05200
01A1 D700 00A4 548 | STO L3 $ACDE+5 U6C05210
549 | * U6C05220
550 | * SET UP CURRENT ARM POSITION U6C05230
551 | * U6C05240
01A3 74F8 0130R 552 | MDX L IC925,-8 CURRENT ARM POSITION U6C05250
01A5 C400 0130R 553 | LD L IC925 U6C05260
01A7 D700 009F 554 | STO L3 $CYLN+5 CURRENT ARM POSITION-DZ000 U6C05270
555 | * U6C05280
556 | * SET UP DRIVE CODE FOR DISK WRITE U6C05290
557 | * U6C05300
01A9 7305 558 | MDX 3 5 LOGICAL DRIVE NUMBER IN XR3 U6C05310
01AA 1000 559 | NOP MAY SKIP U6C05320
01AB 6F00 026FR 560 | STX L3 IC970+1 TEMPORARY U6C05330
01AD C400 026FR 561 | LD L IC970+1 U6C05340
01AF 100C 562 | SLA 12 SHIFT TO DRIVE CODE POSITN U6C05350
01B0 D400 026FR 563 | STO L IC970+1 SET UP SECTOR 0 ADDR U6C05360
01B2 8400 0121R 564 | A L IC911 ONE U6C05370
01B4 D400 03FFR 565 | STO L IC993+1 SET UP SECTOR 1 ADDR U6C05380
01B6 8400 0121R 566 | A L IC911 ONE U6C05390
01B8 D400 03A9R 567 | STO L IC978+1 SET UP SECTOR 2 ADDR U6C05400
568 | * U6C05410
569 | * SET UP DEFECTIVE CYLINDER TABLE U6C05420
570 | * U6C05430
01BA 180B 571 | SRA 11 LOG DR NO. X2 RT JUSTIFIED U6C05440
01BB D004 572 | STO IC351-2 TEMPORARY U6C05450
01BC 1801 573 | SRA 1 LOG DR NO. RIGHT JUSTIFIED U6C05460
01BD 8002 574 | A IC351-2 LOG DR NO. TIMES 3 U6C05470
01BE D001 575 | STO IC351-2 STORE TO LOAD XR3 U6C05480
01BF 6700 0000 576 | LDX L3 *-* XR3 = LOG DR NO. TIMES 3 U6C05490
01C1 62FD 577 | LDX 2 -3 NEW DEFECTIVE CYL POINTER U6C05500
01C2 C600 0273R 578 | IC351 LD L2 IC970+2+3 NEXT ENTRY OF NEW TABLE U6C05510
01C4 D700 00A4 579 | STO L3 $DCYL SET UP DEFECTIVE CYL TABLE U6C05520
01C6 7301 580 | MDX 3 1 INCR DEFECTIVE CYL TBL PT U6C05530
01C7 7201 581 | MDX 2 1 INCR NEW TABLE POINTER U6C05540
01C8 70F9 582 | MDX IC351 BR TO MOVE NEXT WD OF TBL U6C05550
583 | * U6C05560
584 | * WRITE SECTORS 0,1, AND 2 TO SATELLITE U6C05570
585 | * U6C05580
01C9 C400 0133R 586 | LD L IC928 U6C05590
01CB D400 00B9 587 | STO L $IBT2 RESTORE INTERRUPT ADDR U6C05600
01CD 6600 026ER 588 | LDX L2 IC970 ADDR OF SECTOR 0 BUFFER U6C05610
01CF 402C 589 | BSI IC355 BR TO WRITE ONE SCTR U6C05620
01D0 6600 03FER 590 | LDX L2 IC993 SECTOR 1 BUFFER ADDR U6C05630
01D2 4029 591 | BSI IC355 BR TO WRITE ONE SCTR U6C05640
01D3 6600 03A8R 592 | LDX L2 IC978 SECTOR 2 BUFFER ADDR U6C05650
01D5 4026 593 | BSI IC355 BR TO WRITE ONE SCTR U6C05660
01D6 6600 04A0R 594 | LDX L2 DIO-3 SET DISK INTERRUPT BACK TO U6C05670
01D8 6E00 00B9 595 | STX L2 $IBT2 *DIO INTERNAL ROUTINE U6C05680
596 | * U6C05690
597 | * STORE COMPLETE IN SIGN-OFF MESSAGE U6C05700
598 | * U6C05710
01DA 62FC 599 | LDX 2 -4 INITIALIZE EBC COMPLETE PT U6C05720
01DB C400 0136R 600 | LD L IC931 FROM-TO TABLE POINTER U6C05730
01DD 1003 601 | SLA 3 MPY BY 8 U6C05740
01DE D001 602 | STO *+1 U6C05750
01DF 6700 0000 603 | LDX L3 *-* SIGN-OFF MESSAGE POINTER U6C05760
01E1 C600 012BR 604 | IC360 LD L2 IC919+4 EBC COMPLETE U6C05770
01E3 D700 03C8R 605 | STO L3 IC980+22 ST COMPLETE OVER NOT DONE U6C05780
01E5 7301 606 | MDX 3 1 INCR MESSAGE POINTER U6C05790
01E6 7201 607 | MDX 2 1 INCR EBC COMPLETE POINTER U6C05800
01E7 70F9 608 | MDX IC360 BR TO MOVE TWO MORE CHARS U6C05810
609 | * U6C05820
610 | * CHECK FOR KEYBOARD INTERRUPT U6C05830
611 | * U6C05840
01E8 7400 01F6R 612 | IC370 MDX L IC380,0 SKIP IF NO INTERRUPT U6C05850
01EA 7009 613 | MDX IC375 BR TO END SEQUENCE U6C05860
614 | * U6C05870
615 | * INCR FROM-TO TABLE POINTER U6C05880
616 | * U6C05890
01EB 1010 617 | SLA 16 U6C05900
01EC D400 0138R 618 | STO L IC933 CLEAR ID ERROR U6C05910
01EE 7402 0136R 619 | MDX L IC931,2 INCR FROM-TO POINTER U6C05920
01F0 6580 0136R 620 | LDX I1 IC931 FROM-TO TABLE POINTER U6C05930
01F2 4C00 0034R 621 | BSC L IC050 BR TO TEST FOR LAST CART U6C05940
01F4 4C00 0037R 622 | IC375 BSC L IC060 BR TO END SEQUENCE U6C05950
623 | * U6C05960
624 | * KEYBOARD INTERRUPT MAKES IC380 NON-0 U6C05970
625 | * U6C05980
01F6 0000 626 | IC380 DC *-* ENTRY PT AND INTERRUPT INDR U6C05990
01F7 0802 627 | XIO IC939 RESET INTERRUPT U6C06000
01F8 4C00 00D5 628 | BSC L $I410 BR TO ILS04 U6C06010
629 | * U6C06020
630 | * IOCC TO RESET KEYBOARD INTERRUPT U6C06030
631 | * U6C06040
01FA 632 | IC939 BSS E 1 EVEN BOUNDARY FOR IOCC U6C06050
01FB 0F01 633 | DC /0F01 SENSE WITH RESET FUNCTION U6C06060
634 | * U6C06070
635 | * WRITE ONE SECTOR SUBROUTINE U6C06080
636 | * U6C06090
01FC 0000 637 | IC355 DC *-* RETURN ADDRESS U6C06100
01FD 6A63 638 | STX 2 IC950+1 SET UP ADDR IN DISC IOCC U6C06110
01FE C861 639 | LDD IC950 WRITE FUNC AND BUFFER ADDR U6C06120
01FF 4400 00F2 640 | BSI L DZ000 WRITE A SECTOR U6C06130
0201 7400 00EE 641 | IC356 MDX L $DBSY,0 SKIP IF DISK NOT BUSY 2-11 U6C06140
0203 70FD 642 | MDX IC356 LOOP ON BUSY 2-11 U6C06150
643 | * 2-11 U6C06160
0204 4C80 01FCR 644 | BSC I IC355 EXIT U6C06170
645 | * U6C06180
646 | * PRINT ERROR MESSAGE SUBROUTINE U6C06190
647 | * U6C06200
0206 0000 648 | IC400 DC *-* RETURN ADDRESS U6C06210
0207 6C00 0138R 649 | STX L IC933 SET ID RECORD ERROR ON U6C06220
0209 C400 0136R 650 | LD L IC931 FROM-TO TABLE POINTER U6C06230
020B 1003 651 | SLA 3 MULTIPLY BY 8 U6C06240
020C D001 652 | STO *+1 U6C06250
020D 6600 0000 653 | LDX L2 *-* SIGN-OFF MESSAGE POINTER U6C06260
020F CE00 03BER 654 | LDD L2 IC980+12 EBC CART ID U6C06270
0211 D81A 655 | STD IC940+6 U6C06280
0212 62F5 656 | LDX 2 -11 INIT MESSAGE POINTER U6C06290
0213 C300 657 | IC410 LD 3 0 FIRST WORD OF MESSAGE TYPE U6C06300
0214 D600 023AR 658 | STO L2 IC940+20 STORE IN ERROR MESSAGE U6C06310
0216 7301 659 | MDX 3 1 INCR TO NEXT WORD U6C06320
0217 7201 660 | MDX 2 1 INCR POINTER U6C06330
0218 70FA 661 | MDX IC410 BR TO MOVE ANOTHER WORD U6C06340
0219 C808 662 | LDD IC940-4 FUNC CODE AND WORD CNT ADDR U6C06350
021A 4480 012DR 663 | BSI I IC922 BR TO PRINT ROUTINE U6C06360
021C C400 0036 664 | LD L $PBSY PRINCIPAL PR BUSY INDR U6C06370
021E 4820 665 | BSC Z SKIP NEXT IF NOT BUSY U6C06380
021F 70FC 666 | MDX *-4 LOOP ON BUSY U6C06390
0220 4C80 0206R 667 | BSC I IC400 EXIT U6C06400
668 | * U6C06410
669 | * ERROR MESSAGE BUFFER U6C06420
670 | * U6C06430
0222 671 | BSS E 0 MAKE ADDR EVEN U6C06440
0222 7001 672 | DC /7001 WRITE FUNCTION CODE U6C06450
0223 0225R 673 | DC IC940-1 BUFFER WORD COUNT ADDR U6C06460
0224 0000 674 | DC 0 BLANK SPACER WORD U6C06470
0225 0014 675 | DC IC941-IC940 WORD COUNT U6C06480
0226 4040 C3C1 D9E3 D9C9 676 | IC940 EBC . CARTRIDGE . U6C06490
C4C7 C540 |
022C 4040 4040 4040 677 | EBC . . CART ID FOLLOWED BY 2 SPACE U6C06500
022F 4040 4040 4040 4040 678 | EBC . . 22 BLANKS U6C06510
4040 4040 4040 4040 |
4040 4040 4040 |
023A C9E2 40C4 C5C6 C5C3 679 | IC941 EBC .IS DEFECTIVE . U6C06520
E3C9 E5C5 4040 4040 |
4040 4040 4040 |
0245 C9E2 40D5 D6E3 40C1 680 | IC942 EBC .IS NOT AVAILABLE . U6C06530
E5C1 C9D3 C1C2 D3C5 |
4040 4040 4040 |
0250 C9D5 E5C1 D3C9 C440 681 | IC943 EBC .INVALID...LOGICAL 0 ID. U6C06540
0254 D5C5 E640 D3C1 C2C5 682 | IC944 EBC .NEW LABEL IS INVALID . U6C06550
D340 C9E2 40C9 D5E5 |
C1D3 C9C4 4040 |
683 | * U6C06560
684 | * DISK WRITE IOCC U6C06570
685 | * U6C06580
0260 686 | BSS E 0 MAKE ADDRESS EVEN U6C06590
0260 7001 687 | IC950 DC /7001 DISK WRITE FUNCTION U6C06600
0261 0000 688 | DC *-* ADDR OF BUFFER TO WRITE U6C06610
689 | * U6C06620
690 | * AREA CODE TABLE U6C06630
691 | * U6C06640
0262 2000 692 | IC960 DC /2000 DRIVE 0 U6C06650
0263 8800 693 | DC /8800 DRIVE 1 U6C06660
0264 9000 694 | DC /9000 DRIVE 2 U6C06670
0265 9800 695 | DC /9800 DRIVE 3 U6C06680
0266 A000 696 | DC /A000 DRIVE 4 U6C06690
0267 B000 697 | DC /B000 DRIVE 5 2-11 U6C06700
0268 B800 698 | DC /B800 DRIVE 6 2-11 U6C06710
0269 B810 699 | DC /B810 DRIVE 7 2-11 U6C06720
026A B820 700 | DC /B820 DRIVE 8 2-11 U6C06730
026B B830 701 | DC /B830 DRIVE 9 2-11 U6C06740
026C B840 702 | DC /B840 DRIVE 10 2-11 U6C06750
703 | * U6C06760
704 | * SATELLITE SECTOR 0 BUFFER U6C06770
705 | * U6C06780
026E 706 | BSS E 0 MAKE ADDRESS EVEN U6C06790
026E 0138 707 | IC970 DC IC977-IC970-1 WORD COUNT U6C06800
026F 0000 708 | DC 0 SECTOR ADDR U6C06810
0270 709 | BSS 3 DEFECTIVE CYLINDER TABLE U6C06820
0273 710 | BSS 1 CARTRIDGE LABEL U6C06830
0274 711 | BSS $ZEND-CLDST-6 RESERVED FOR SYSTEM U6C06840
712 | * U6C06850
713 | * CONSOLE PRINTER PRINT ROUTINE U6C06860
714 | * U6C06870
01E0 715 | A EQU $ZEND COLD START RELATIVE ADDRESS U6C06880
037E 6500 01ED 716 | IC971 LDX L1 IC973-IC971+A XR1 TO INTRPT BR ADDR U6C06890
0380 6D00 000C 717 | STX L1 12 SET UP LOC 12 FOR INTERRUPT U6C06900
0382 6114 718 | LDX 1 IC977-IC976+1 CHARACTER COUNT U6C06910
0383 080C 719 | IC972 XIO IC974 TYPE A CHARACTER U6C06920
0384 7401 01F2 720 | MDX L IC974-IC971+A,1 PT I0CC TO NEXT CHAR U6C06930
0386 3000 721 | WAIT WAIT FOR INTERRUPT U6C06940
0387 71FF 722 | MDX 1 -1 DECR CHAR COUNT U6C06950
0388 70FA 723 | MDX IC972 BR TO TYPE ANOTHER CHAR U6C06960
0389 3000 724 | WAIT HARD WAIT U6C06970
038A 70FE 725 | MDX *-2 GO BACK TO WAIT U6C06980
038B 0000 726 | IC973 DC *-* INTERRUPT ENTRY POINT U6C06990
038C 0805 727 | XIO IC975 SENSE AND RESET U6C07000
038D 4CC0 01ED 728 | BOSC I IC973-IC971+A RETURN U6C07010
729 | * U6C07020
730 | * IOCC WORDS TO PRINT MESSAGE U6C07030
731 | * U6C07040
0390 732 | BSS E 0 MAKE ADDRESS EVEN U6C07050
0390 01F6 733 | IC974 DC IC976-IC971+A ADDR OF MESSAGE BUFFER U6C07060
0391 0900 734 | DC /0900 WRITE FUNCTION CODE U6C07070
0392 0000 735 | IC975 DC 0 BLANK WORD FOR SENSE IOCC U6C07080
0393 0F01 736 | DC /0F01 SENSE AND RESET FUNCTION U6C07090
737 | * U6C07100
738 | * MESSAGE CHARACTERS - CONSOLE PRINTER U6C07110
739 | * U6C07120
0394 8100 740 | IC976 DC /8100 CARRIER RETURN U6C07130
0395 7400 741 | DC /7400 N U6C07140
0396 5000 742 | DC /5000 O U6C07150
0397 7400 743 | DC /7400 N U6C07160
0398 8400 744 | DC /8400 HYPHEN U6C07170
0399 9800 745 | DC /9800 S U6C07180
039A A400 746 | DC /A400 Y U6C07190
039B 9800 747 | DC /9800 S U6C07200
039C 9C00 748 | DC /9C00 T U6C07210
039D 2100 749 | DC /2100 SPACE U6C07220
039E 1C00 750 | DC /1C00 C U6C07230
039F 3C00 751 | DC /3C00 A U6C07240
03A0 6000 752 | DC /6000 R U6C07250
03A1 9C00 753 | DC /9C00 T U6C07260
03A2 2100 754 | DC /2100 SPACE U6C07270
03A3 3400 755 | DC /3400 E U6C07280
03A4 6000 756 | DC /6000 R U6C07290
03A5 6000 757 | DC /6000 R U6C07300
03A6 5000 758 | DC /5000 O U6C07310
03A7 6000 759 | IC977 DC /6000 R U6C07320
760 | * U6C07330
761 | * SATELLITE SECTOR 2 BUFFER- LET HEADER U6C07340
762 | * U6C07350
03A8 763 | BSS E 0 MAKE ADDR EVEN U6C07360
03A8 0008 764 | IC978 DC IC979-IC978-1 BUFFER WORD COUNT U6C07370
03A9 0002 765 | DC /0002 SECTOR ADDR OF LET U6C07380
03AA 0000 766 | DC /0000 RELATIVE LET SCTR NUMBER U6C07390
03AB 0018 767 | DC /0018 USER AREA SCTR ADDRESS U6C07400
03AC 0000 768 | DC /0000 LET HEADER RESERVED WORD U6C07410
03AD 0138 769 | DC /0138 WDS AVAILABLE THIS LET SCTR U6C07420
03AE 0000 770 | DC /0000 LET SCTR CHAIN ADDRESS U6C07430
03AF 7112 771 | DC /7112 1DUMY IN NAME CODE WITH U6C07440
03B0 4528 772 | DC /4528 * 01 AS FIRST TWO BITS. U6C07450
03B1 6280 773 | IC979 DC /6280 DB SIZE OF WORKING STORAGE U6C07460
774 | * U6C07470
775 | * FROM-TO CARTRIDGE ID TABLE AND SIGN- U6C07480
776 | * OFF MESSAGE PASSED FROM RDREC FUNC U6C07490
777 | * U6C07500
03B2 778 | IC980 BSS E 1 MAKE NEXT ADDR ODD U6C07510
03B3 779 | BSS 1 FROM-TO ELEMENT COUNT U6C07520
03B4 780 | BSS 8 4 PAIRS FROM-TO CART IDS U6C07530
781 | * U6C07540
782 | * SIGN-OFF MESSAGE U6C07550
783 | * U6C07560
03BC 784 | BSS E 1 BLANK SPACER WORD U6C07570
03BD 000F 785 | IC981 DC IC982-IC981-1 WORD COUNT U6C07580
03BE 4040 4040 786 | EBC . . FROM U6C07590
03C0 4040 4040 4040 787 | EBC . . SPACES U6C07600
03C3 4040 4040 788 | EBC . . TO U6C07610
03C5 4040 4040 4040 789 | EBC . . SPACES U6C07620
03C8 D5D6 E340 C4D6 D5C5 790 | EBC .NOT DONE. U6C07630
03CC 4040 791 | EBC . . U6C07640
03CD 000F 792 | IC982 DC IC983-IC982-1 WD COUNT U6C07650
03CE 4040 4040 793 | EBC . . FROM U6C07660
03D0 4040 4040 4040 794 | EBC . . SPACES U6C07670
03D3 4040 4040 795 | EBC . . TO U6C07680
03D5 4040 4040 4040 796 | EBC . . SPACES U6C07690
03D8 D5D6 E340 C4D6 D5C5 797 | EBC .NOT DONE. U6C07700
03DC 4040 798 | EBC . . U6C07710
03DD 000F 799 | IC983 DC IC984-IC983-1 WD COUNT U6C07720
03DE 4040 4040 800 | EBC . . FROM U6C07730
03E0 4040 4040 4040 801 | EBC . . SPACES U6C07740
03E3 4040 4040 802 | EBC . . TO U6C07750
03E5 4040 4040 4040 803 | EBC . . SPACES U6C07760
03E8 D5D6 E340 C4D6 D5C5 804 | EBC .NOT DONE. U6C07770
03EC 4040 805 | EBC . . U6C07780
03ED 000F 806 | IC984 DC IC985-IC984-1 WD COUNT U6C07790
03EE 4040 4040 807 | EBC . . FROM U6C07800
03F0 4040 4040 4040 808 | EBC . . SPACES U6C07810
03F3 4040 4040 809 | EBC . . TO U6C07820
03F5 4040 4040 4040 810 | EBC . . SPACES U6C07830
03F8 D5D6 E340 C4D6 D5C5 811 | EBC .NOT DONE. U6C07840
03FC 4040 812 | EBC . . U6C07850
03FDR 813 | IC985 EQU * U6C07860
814 | * U6C07870
815 | * SATELLITE DCOM BUFFER U6C07880
816 | * U6C07890
03FE 817 | BSS E 0 MAKE ADDR EVEN U6C07900
03FE 0051 818 | IC993 DC 81 WORD COUNT U6C07910
03FF 0001 819 | DC /0001 SECTOR ADDR OF DCOM U6C07920
0400 820 | BSS 81-52 RESERVE 81 WORDS U6C07930
821 | * U6C07940
822 | * MASTER DCOM BUFFER U6C07950
823 | * U6C07960
041E 824 | BSS E 0 MAKE ADDR EVEN U6C07970
041E 003C 825 | IC992 DC 60 WORD COUNT U6C07980
041F 0001 826 | DC /0001 SECTOR ADDRESS OF DCOM U6C07990
0420 827 | BSS 60 RESERVE 60 WORDS U6C08000
0420 828 | ORG *-60 BEGIN FOLLOWING SUBR. 2-11 U6C08010
829 | * *IN DCOM DISK BUFFER 2-11 U6C08020
830 | * *TO ALLOW IT TO BE 2-11 U6C08030
831 | * *OVERLAYED AFTER IT IS 2-11 U6C08040
832 | * *USED 2-11 U6C08050
833 | *************************************************** U6C08060
834 | * THIS SUBROUTINE DETERMINES WHICH DRIVES HAVE * U6C08070
835 | * CARTRIDGES MOUNTED AND READY. IT ALSO SAVES THE* U6C08080
836 | * IDS IN PHYSICAL DRIVE ORDER.IF A DRIVE DOES NOT * U6C08090
837 | * HAVE A CARTRIDGE MOUNTED AND READY, ITS ENTRY * U6C08100
838 | * IN THE PHYSICAL DRIVE LIST IS SET TO ZERO * U6C08110
839 | *************************************************** U6C08120
0420 0000 841 | IT200 DC *-* ENTRY/RETURN ADDRESS 2-11 U6C08140
843 | * SAVE VALUES OF $ACDE IN COMMA U6C08160
0421 62FB 845 | LDX 2 -5 XR1 = $ACDE TABLE SIZE 2-11 U6C08180
0422 C600 00A4 846 | IT205 LD L2 $ACDE+5 LOAD FIRST ENTRY 2-11 U6C08190
0424 D600 0483R 847 | STO L2 IT926+5 *AND SAVE 2-11 U6C08200
0426 7201 848 | MDX 2 1 SKIP IF FINISHED 2-11 U6C08210
0427 70FA 849 | MDX IT205 *OTHERWISE, CONTINUE 2-11 U6C08220
0428 61F5 851 | LDX 1 -11 DRIVE COUNT TO XR1 2-11 U6C08240
0429 C400 000A 852 | LD L $LEV2 SAVE CONTENTS 2-11 U6C08250
042B D051 853 | STO IT923 *OF LOCATION 10 2-11 U6C08260
042C C04F 855 | IT210 LD IT922 RESET INTERRUPT 2-11 U6C08280
042D D400 000A 856 | STO L $LEV2 *BRANCH ADDRESS 2-11 U6C08290
042F C500 026DR 857 | LD L1 IC960+11 FETCH AREA CODE 2-11 U6C08300
0431 D400 009F 858 | STO L $ACDE STORE TO COMMA 2-11 U6C08310
0433 E810 859 | OR IT918 OR IN READ FUNC CODE 2-11 U6C08320
0434 D040 860 | STO IT911+1 STO TO 2ND WD OF IOCC 2-11 U6C08330
0435 E845 861 | OR IT921 OR IN SENSE FUNC CODE 2-11 U6C08340
0436 D040 862 | STO IT912+1 STO TO 2ND WD OF IOCC 2-11 U6C08350
0437 083C 863 | XIO IT911 INITIATE DISK READ 2-11 U6C08360
0438 083D 864 | XIO IT912 SENSE DISK 2-11 U6C08370
0439 1003 865 | SLA 3 SHIFT BUSY BIT TO SIGN 2-11 U6C08380
043A 4C28 0445R 866 | BSC L IT230,+Z BR IF DISK BUSY 2-11 U6C08390
868 | * DISK NOT BUSY, NO CARTRIDGE AVAILABLE U6C08410
043C 1010 870 | SLA 16 SET PHY DR LIST ENTRY 2-11 U6C08430
043D D500 048ER 871 | STO L1 IT904+11 *TO ZERO 2-11 U6C08440
043F 701A 872 | MDX IT240 BR TO INCRE DR POINTER 2-11 U6C08450
874 | * OPERATION COMPLETE INTERRUPT PROCESSING U6C08470
0440 0000 876 | IT220 DC *-* INT ENTRY POINT 2-11 U6C08490
0441 0834 877 | XIO IT912 SENSE WITH RESET 2-11 U6C08500
0442 4CC0 0440R 878 | BOSC I IT220 CONTINUE 2-11 U6C08510
0444 0600 879 | IT918 DC /0600 READ FUNC CODE 2-11 U6C08520
881 | * CARTRIDGE AVAILABLE, FETCH CARTRIDGE ID AND U6C08540
882 | * DEFECTIVE CYLINDER ADDRESS U6C08550
0445 C0FA 884 | IT230 LD IT220 CHECK INT ENTRY POINT 2-11 U6C08570
0446 4818 885 | BSC +- *FOR NON-ZERO, AND LOOP2-11 U6C08580
0447 70FD 886 | MDX IT230 *UNTIL INTERRUPT OCCURS2-11 U6C08590
0448 1010 887 | SLA 16 RESET INT ENTRY POINT 2-11 U6C08600
0449 D0F6 888 | STO IT220 *TO ZERO 2-11 U6C08610
044A C032 889 | LD IT923 RESTORE CONTENTS 2-11 U6C08620
044B D400 000A 890 | STO L $LEV2 *OF LOCATION 10 2-11 U6C08630
044D C02B 891 | LD IT915+1 SET ARM POSITION TO 2-11 U6C08640
044E D400 009A 892 | STO L $CYLN *SECTOR ADDR JUST READ 2-11 U6C08650
0450 C029 893 | LD IT917 FETCH ADDR OF I/O AREA 2-11 U6C08660
0451 1890 894 | SRT 16 SHIFT TO EXT, ACC = 0 2-11 U6C08670
0452 4400 00F2 895 | BSI L DZ000 BRANCH TO DISK READ 2-11 U6C08680
0454 7400 00EE 896 | MDX L $DBSY,0 SKIP IF READ COMPLETE 2-11 U6C08690
0456 70FD 897 | MDX *-3 LOOP IF NOT COMPLETE 2-11 U6C08700
0457 C01B 899 | LD IT908+3 FETCH CART ID AND 2-11 U6C08720
0458 D500 048ER 900 | STO L1 IT904+11 *STORE TO CART LIST 2-11 U6C08730
045A C022 901 | IT240 LD IT923 RESTORE CONTENTS OF 2-11 U6C08740
045B D400 000A 902 | STO L $LEV2 *LEVEL 2 INT ADDR 2-11 U6C08750
045D 7202 903 | MDX 2 2 INCRE AVAIL CART PNTR 2-11 U6C08760
045E 7101 904 | MDX 1 1 SKIP IF DR CNT = 0 2-11 U6C08770
045F 70CC 905 | MDX IT210 *OTHERWISE, CONTINUE 2-11 U6C08780
907 | * RESTORE VALUES OF $ACDE IN COMMA, AND SINCE U6C08800
908 | * THIS SUBROUTINE HAS MOVED ALL ARMS TO CYL. 0 U6C08810
909 | * TO READ THE CARTRIDGE ID, SET $CYLN TO ZERO U6C08820
0460 62FB 911 | LDX 2 -5 XR1 = TABLE LENGTH 2-11 U6C08840
0461 C600 0483R 912 | IT250 LD L2 IT926+5 RESTORE ORIGINAL 2-11 U6C08850
0463 D600 00A4 913 | STO L2 $ACDE+5 *CONTENTS OF $ACDE 2-11 U6C08860
0465 1810 914 | SRA 16 SET CURRENT ARM 2-11 U6C08870
0466 D600 009F 915 | STO L2 $CYLN+5 *POSITION TO ZERO 2-11 U6C08880
0468 7201 916 | MDX 2 1 SKIP IF FINISHED 2-11 U6C08890
0469 70F7 917 | MDX IT250 *OTHERWISE, CONTINUE 2-11 U6C08900
046A 4C80 0420R 919 | BSC I IT200 RETURN TO MAINLINE 2-11 U6C08920
921 | * CONSTANTS AND WORK AREA U6C08940
046C 923 | BSS E 1 ASSURE ODD BOUNDARY 2-11 U6C08960
046D FFFF 924 | DC -1 CONSTANT OF -1 2-11 U6C08970
046E 0004 925 | IT906 DC 4 WORD COUNT 2-11 U6C08980
046F 0000 926 | IT907 DC #IDAD SECTOR ADDRESS 2-11 U6C08990
0470 927 | IT908 BSS 4 4 DEF CYL,ID I/O AREA 2-11 U6C09000
**** Warning: Modifier '4' not permitted
0474 0478R 928 | IT911 DC IT915 ADDRESS OF I/O AREA 2-11 U6C09010
0475 0000 929 | DC *-* 2ND WORD OF READ IOCC 2-11 U6C09020
0476 0658 930 | IT912 DC /658 MAXIMUM ARM POSITION 2-11 U6C09030
0477 0000 931 | DC *-* 2ND WORD OF SENSE IOCC 2-11 U6C09040
0478 0001 932 | IT915 DC 1 WORD COUNT 2-11 U6C09050
0479 0000 933 | DC *-* I/O AREA 2-11 U6C09060
047A 046ER 934 | IT917 DC IT906 ADDR OF ID I/O AREA 2-11 U6C09070
047B 0701 935 | IT921 DC /0701 SENSE W/RESET FUNC CODE2-11 U6C09080
047C 0440R 936 | IT922 DC IT220 ADDR OF TEMP INT ROUTN 2-11 U6C09090
047D 0000 937 | IT923 DC *-* $LEV2 SAVE AREA 2-11 U6C09100
047E 938 | IT926 BSS 5 $ACDE SAVE AREA 2-11 U6C09110
0483 939 | IT904 BSS 11 CART LIST-PHY DR ORDER 2-11 U6C09120
940 | * THE FOLLOWING BSS MUST CAUSE DISKN U6C09130
941 | * TO BEGIN ON AN EVEN BOUNDARY U6C09140
942 | * U6C09150
048E 943 | BSS E 1 U6C09160
944 | * U6C09170
945 | * SET READ OR WRITE ERROR U6C09180
946 | * U6C09190
048F 7400 0134R 947 | IC320 MDX L IC929,0 SKIP NEXT IF RETRY NOT SET U6C09200
0491 7003 948 | MDX IC325 BR IF NOT FIRST ERROR U6C09210
0492 7432 0134R 949 | MDX L IC929,50 INCR TO RETRY 50 TIMES U6C09220
0494 7004 950 | MDX IC326 BR TO EXIT U6C09230
0495 C400 0130R 951 | IC325 LD L IC925 CURRENT CYL SCTR 0 ADDR U6C09240
0497 D400 0132R 952 | STO L IC927 SET BAD CYL INDR ON U6C09250
0499 4C00 0000 953 | IC326 BSC L *-* EXIT U6C09260
049B 70F3 954 | MDX IC320 BR TO SET ERROR U6C09270
955 | * U6C09280
956 | * U6C09290
957 | * PATCH AREA REMOVED 2-11 U6C09300
958 | * U6C09310
959 | * U6C09320
DISK READ/WRITE SUBROUTINE
049C 6A4F 961 | DISKN STX 2 D0900+3 SAVE CONTENTS OF XR2 U6C09340
049D 6680 0000 962 | LDX I2 *-* PUT LINK WD FROM TV IN XR2 U6C09350
049F 7035 963 | MDX D0027 BRANCH TO CALL PROCESSING U6C09360
04A0 0000 964 | D0004 DC *-* ENTRY POINT FOR INTERRUPTS U6C09370
04A1 7005 965 | MDX D0600 BR TO CONTINUE U6C09380
04A2 0000 966 | DC *-* DISC ENTRY U6C09390
04A3 6A48 967 | STX 2 D0900+3 SAVE XR2 U6C09400
04A4 6680 04A2R 968 | LDX I2 *-4 U6C09410
04A6 702E 969 | MDX D0027 BRANCH TO CONTINUE U6C09420
04A7 1010 970 | D0600 SLA 16 INITIALIZE PHY DR CODE 2-11 U6C09430
04A8 D009 971 | STO D0620+1 *ACCUMULATOR TO ZERO 2-11 U6C09440
04A9 0C00 052AR 972 | XIO L SENSI-1 SENSE ILSW 2-11 U6C09450
04AB 1001 973 | D0610 SLA 1 2-11 U6C09460
04AC 4C18 04B1R 974 | BSC L D0620,+- BR IF DR CD ACCUMULATED2-11 U6C09470
04AE 7402 04B2R 975 | MDX L D0620+1,2 ACCUMULATE 2*DR CODE 2-11 U6C09480
04B0 70FA 976 | MDX D0610 BR TO CHECK FOR ZERO 2-11 U6C09490
04B1 6500 0000 977 | D0620 LDX L1 *-* XR1 = 2*DRIVE NUMBER 2-11 U6C09500
04B3 7500 0534R 978 | MDX L1 CYLIN ADJUST TO STORAGE AREA U6C09510
04B5 0900 979 | XIO 1 D0950-1-C SENSE WITH RESET 2-11 U6C09520
04B6 4C10 04C1R 980 | BSC L D0698,- BRANCH IF NO DATA ERROR U6C09530
04B8 C879 981 | LDD IOCCN FETCH LAST IOCC 2-11 U6C09540
04B9 40E0 982 | BSI IC326+1 BR TO DISK ERROR RTN 2-9 U6C09550
04BA 4C10 04C8R 983 | BSC L D0697,- BRANCH TO IGNORE ERROR U6C09560
04BC C000 984 | D0696 LD * FETCH NON-ZERO WORD U6C09570
04BD 0874 985 | XIO IOCCN RETRY LAST OPERATION 2-11 U6C09580
04BE D071 986 | D0699 STO DBUSY SET DBUSY AS SWITCH 2-11 U6C09590
04BF 4C80 04A0R 987 | BSC I D0004 RETURN TO INTERRUPT LEVEL U6C09600
988 | * U6C09610
04C1 C071 989 | D0698 LD IOCCN+1 GET 2ND WD LAST IOCC 2-11 U6C09620
04C2 E068 990 | AND SENSI DETERMINE IF LAST OPERATION U6C09630
04C3 4C18 04CAR 991 | BSC L D0695,+- *WAS A SENSE. BR IF IT WAS U6C09640
04C5 C06A 992 | LD DBUSY CHECK DBUSY SIGN 2-11 U6C09650
04C6 4C28 04BCR 993 | BSC L D0696,Z+ U6C09660
04C8 1010 994 | D0697 SLA 16 CLEAR ACC TO SET SWITCH U6C09670
04C9 70F4 995 | MDX D0699 RETURN TO INTERRUPT LEVEL U6C09680
996 | * U6C09690
04CA 74FF 052DR 997 | D0695 MDX L SCNTR,-1 DECREMENT RETRY COUNTER U6C09700
04CC 7002 998 | MDX *+2 BR TO TRY AGAIN U6C09710
04CD 3333 999 | DC /3333 WAIT U6C09720
04CE 70FE 1000 | MDX *-2 U6C09730
04CF 0900 1001 | XIO 1 D0950-1-C SENSE WITH RESET 2-11 U6C09740
04D0 1004 1002 | SLA 4 U6C09750
04D1 4C28 04C8R 1003 | BSC L D0697,Z+ BRANCH IF CARRIAGE HOME U6C09760
04D3 0852 1004 | XIO SEEK INITIATE SEEK U6C09770
04D4 70EA 1005 | MDX D0699+1 BRANCH TO EXIT U6C09780
1006 | * U6C09790
04D5 D852 1007 | D0027 STD SAVAC SAVE ACC AND EXT U6C09800
04D6 6913 1008 | STX 1 D0900+1 SAVE CONTENTS OF XR1 U6C09810
04D7 CE80 0001 1009 | LDD I2 1 FETCH WD CNT, SCTR ADDRESS U6C09820
04D9 1090 1010 | SLT 16 ISOLATE THE DRIVE CODE U6C09830
04DA 18CB 1011 | RTE 11 2-11 U6C09840
04DB D001 1012 | STO SAVE1+1 SAVE TWICE THE U6C09850
04DC 6500 0000 1013 | SAVE1 LDX L1 *-* *DRIVE CODE U6C09860
04DE 7500 0534R 1014 | MDX L1 CYLIN POINT TO BUFFER AREA U6C09870
1015 | * ONE INSTRUCTION REMOVED 2-11 U6C09880
04E0 7400 0530R 1016 | MDX L DBUSY,0 SKIP IF DISK NOT BUSY 2-11 U6C09890
04E2 70FD 1017 | MDX *-3 *BRANCH TO TRY AGAIN U6C09900
04E3 C200 1018 | LD 2 0 LOAD CONTROL PARAMETER U6C09910
04E4 4C20 04F3R 1019 | BSC L D0202,Z BRANCH IF NOT TEST FUNCTION U6C09920
04E6 C841 1020 | D0024 LDD SAVAC RESTORE ACC AND EXT U6C09930
04E7 7202 1021 | MDX 2 2 SET UP FOR RETURN TO CALL+3 U6C09940
04E8 6A05 1022 | D0030 STX 2 D0150 STORE RETURN ADDRESS U6C09950
04E9 6500 0000 1023 | D0900 LDX L1 *-* RESTORE XR1 U6C09960
04EB 6600 0000 1024 | LDX L2 *-* RESTORE XR2 U6C09970
04ED 4C00 0000 1025 | BSC L *-* RETURN TO USER U6C09980
04EER 1026 | D0150 EQU *-1 U6C09990
1027 | * U6C10000
1028 | * PREPARE TO MAKE PRE-OPERATIVE ERROR EXIT U6C10010
1029 | * U6C10020
04EF C03F 1030 | D0550 LD NTRDY LOAD NOT READY ERROR CODE U6C10030
04F0 4400 0028 1031 | BSI L STRAP WAIT AT PRE-OPERATIVE EXIT U6C10040
04F2 7017 1032 | MDX D0203 BR ON STRAP RETURN U6C10050
1033 | * U6C10060
1034 | * PROCESS ALL FUNCTIONS EXCEPT TEST U6C10070
1035 | * U6C10080
04F3 1885 1036 | D0202 SRT 5 RIGHT JUSTIFY SCTR ADDR U6C10090
04F4 C201 1037 | LD 2 1 LOAD AND SAVE ADDRESS U6C10100
04F5 D03C 1038 | STO IOCCN *OF USERS I/O BUFFER 2-11 U6C10110
04F6 C680 0001 1039 | LD I2 1 FETCH WORD COUNT U6C10120
04F8 DE80 0001 1040 | STD I2 1 U6C10130
04FA 1003 1041 | SLA 3 ISOLATE SECTOR NUMBER U6C10140
04FB 18C3 1042 | RTE 3 U6C10150
04FC 180D 1043 | SRA 13 U6C10160
04FD EA00 1044 | OR 2 0 OR IN THE FUNCTION CODE U6C10170
04FE D031 1045 | STO DBUSY SET BUSY INDICATOR 2-11 U6C10180
04FF F101 1046 | EOR 1 D0950-C OR IN AREA CD & SENSE 2-11 U6C10190
0500 F029 1047 | EOR D0001 U6C10200
0501 D031 1048 | STO IOCCN+1 PUT IN 2ND WD OF IOCC 2-11 U6C10210
0502 E028 1049 | AND SENSI CHECK IF REQ FUNC IS A SEEK U6C10220
0503 4C20 050AR 1050 | BSC L D0203,Z BR IF NOT U6C10230
0505 C024 1051 | LD D0001 U6C10240
0506 D100 1052 | STO 1 CYLIN-C SET CURRENT CYLN TO 1 2-11 U6C10250
0507 1008 1053 | SLA 8 U6C10260
0508 D024 1054 | STO SCNTR U6C10270
0509 1090 1055 | SLT 16 U6C10280
050A 0900 1056 | D0203 XIO 1 D0950-1-C SENSE DR N WITH RESET 2-11 U6C10290
050B 1002 1057 | SLA 2 TEST FOR DRIVE READY U6C10300
050C 4C28 04EFR 1058 | BSC L D0550,Z+ *AND BRANCH IF IT IS NOT U6C10310
1059 | * U6C10320
1060 | * CHECK TO SEE IF A SEEK IS NECESSARY U6C10330
1061 | * U6C10340
050E 1090 1062 | SLT 16 SAVE SOUGHT U6C10350
050F D0CD 1063 | STO SAVE1+1 *CYLINDER U6C10360
0510 9100 1064 | S 1 CYLIN-C SUB CURRENT ARM POSN 2-11 U6C10370
0511 4C18 0524R 1065 | BSC L D0042,+- BR IF SEEK NOT NECESSARY U6C10380
1066 | * 2-11 U6C10390
1067 | * 2-11 U6C10400
1068 | * SIX INSTRUCTIONS REMOVED 2-11 U6C10410
1069 | * 2-11 U6C10420
1070 | * BUILD SEEK IOCC 2-11 U6C10430
1071 | * 2-11 U6C10440
0513 1890 1072 | SRT 16 PUT NO. CYLINDERS IN EXT U6C10450
0514 E017 1073 | AND D0940 AND WITH BIT 3 U6C10460
0515 E901 1074 | OR 1 D0950-C CONSTRUCT 2-11 U6C10470
0516 F014 1075 | EOR SENSI *SEEK U6C10480
0517 8016 1076 | A D0917 *IOCC U6C10490
0518 18D0 1077 | RTE 16 U6C10500
0519 4810 1078 | BSC - SKIP IF SEEK TOWARD HOME U6C10510
051A 7002 1079 | MDX *+2 BR TO CONTINUE U6C10520
051B F012 1080 | EOR D0917 GENERATE POSITIVE NO. CYLS U6C10530
051C 800D 1081 | A D0001 *TO SEEK U6C10540
051D D808 1082 | STD SEEK STORE IOCC WORDS U6C10550
1083 | * INST.MOVED AHEAD 4 INST2-10 U6C10560
051E C0BE 1084 | LD SAVE1+1 RESET CURRENT U6C10570
051F D100 1085 | STO 1 CYLIN-C *ARM POSITION 2-11 U6C10580
0520 C00D 1086 | LD D0917 LOAD NEGATIVE NUMBER U6C10590
0521 D00E 1087 | STO DBUSY USE DBUSY AS SEEK FLAG 2-11 U6C10600
0522 0803 1088 | XIO SEEK INITIATE SEEK 2-10 U6C10610
0523 70C2 1089 | MDX D0024 BRANCH TO EXIT U6C10620
0524 080D 1090 | D0042 XIO IOCCN INITIATE READ OR WRITE 2-11 U6C10630
0525 70C0 1091 | MDX D0024 BRANCH TO EXIT U6C10640
1092 | * U6C10650
1093 | * CONSTANTS AND WORK AREAS U6C10660
1094 | * U6C10670
0526 1095 | SEEK BSS E 2 STORAGE FOR SEEK IOCC U6C10680
0528 1096 | SAVAC BSS E 2 ACC AND EXT STORAGE 2-11 U6C10690
052A 0001 1097 | D0001 DC 1 CONSTANT OF ONE U6C10700
052B 0300 1098 | SENSI DC /0300 FUNCTION CODE MASK U6C10710
052C 0004 1099 | D0940 DC 4 SEEK IOCC DIRECTION MASK U6C10720
052D 0000 1100 | SCNTR DC *-* RETRY COUNTER U6C10730
052E FFFF 1101 | D0917 DC -1 CONSTANT U6C10740
052F 5000 1102 | NTRDY DC /5000 DISK NOT READY ERROR CODE U6C10750
0530 0000 1103 | DBUSY DC *-* DISK BUSY/SEEK INDIC 2-11 U6C10760
0532 1104 | IOCCN BSS E 2 IOCC FOR REQUESTED FUNC2-11 U6C10770
0534 00CB 1105 | CYLIN DC 203 CURRENT ARM POSN,DR 0 2-11 U6C10780
0535 2701 1106 | D0950 DC /2701 SENSE IOCC, DR 0 2-11 U6C10790
0536 00CB 1107 | DC 203 CURRENT ARM POSN,DR 1 2-11 U6C10800
0537 8F01 1108 | DC /8F01 SENSE IOCC, DR 1 2-11 U6C10810
0538 00CB 1109 | DC 203 CURRENT ARM POSN,DR 2 2-11 U6C10820
0539 9701 1110 | DC /9701 SENSE IOCC, DR 2 2-11 U6C10830
053A 00CB 1111 | DC 203 CURRENT ARM POSN,DR 3 2-11 U6C10840
053B 9F01 1112 | DC /9F01 SENSE IOCC, DR 3 2-11 U6C10850
053C 00CB 1113 | DC 203 CURRENT ARM POSN,DR 4 2-11 U6C10860
053D A701 1114 | DC /A701 SENSE IOCC, DR 4 2-11 U6C10870
053E 00CB 1115 | DC 203 CURRENT ARM POSN,DR 5 2-11 U6C10880
053F B701 1116 | DC /B701 SENSE IOCC, DR 5 2-11 U6C10890
0540 00CB 1117 | DC 203 CURRENT ARM POSN,DR 6 2-11 U6C10900
0541 BF01 1118 | DC /BF01 SENSE IOCC, DR 6 2-11 U6C10910
0542 00CB 1119 | DC 203 CURRENT ARM POSN,DR 7 2-11 U6C10920
0543 BF11 1120 | DC /BF11 SENSE IOCC, DR 7 2-11 U6C10930
0544 00CB 1121 | DC 203 CURRENT ARM POSN,DR 8 2-11 U6C10940
0545 BF21 1122 | DC /BF21 SENSE IOCC, DR 8 2-11 U6C10950
0546 00CB 1123 | DC 203 CURRENT ARM POSN,DR 9 2-11 U6C10960
0547 BF31 1124 | DC /BF31 SENSE IOCC, DR 9 2-11 U6C10970
0548 00CB 1125 | DC 203 CURRENT ARM POSN,DR 10 2-11 U6C10980
0549 BF41 1126 | DC /BF41 SENSE IOCC, DR 10 2-11 U6C10990
0534R 1127 | C EQU CYLIN TABLE POINTER 2-11 U6C11000
0028 1128 | STRAP EQU 40 ADDRESS OF STRAP IN (COMMA) U6C11010
04A3R 1129 | DIO EQU DISKN+7 TV LINK WORD ADDRESS U6C11020
1130 | * U6C11030
1131 | * DISK SECTOR READ-WRITE BUFFER U6C11040
1132 | * U6C11050
054A 1133 | BSS E 0 MAKE ADDR EVEN U6C11060
054A 0141 1134 | IC990 DC 321 BUFFER WORD COUNT U6C11070
054B 1135 | BSS 321 RESERVE 321 WORDS U6C11080
054C 1136 | ORG *-320 OVERLAY BUFFER WITH NEXT U6C11090
054C 1137 | END IC000 U6C11100
There was 1 warning in this assembly
Program transfer address = 0000
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
#ACIN 001C 81 142
#ANDU 0023 82 535
#BNDU 0028 83 536
#CIBA 003C 87 540
#CIDN 0037 86 181 214 219 519 532 533
#FPAD 002D 84 538
#IDAD 0000 89 926
#PCID 0032 85
#ULET 0050 88 542
$ACDE 009F 97 548 846 858 913
$CYLN 009A 96 554 892 915
$DBSY 00EE 99 129 641 896
$DCYL 00A4 98 579
$DUMP 003F 95 207
$EXIT 0038 94
$I410 00D5 103 628
$IBT2 00B9 100 154 157 174 587 595
$IREQ 002C 102 147 150 200
$LEV2 000A 101 161 164 176 852 856 890 902
$PBSY 0036 93 190 664
$ZEND 01E0 104 711 715
A 01E0 715 716 720 728 733
C 0534R 1127 979 1001 1046 1052 1056 1064 1074 1085
CLDST 00D0 106 711
CYLIN 0534R 1105 978 1014 1052 1064 1085 1127
D0001 052AR 1097 1047 1051 1081
D0004 04A0R 964 987
D0024 04E6R 1020 1089 1091
D0027 04D5R 1007 963 969
D0030 04E8R 1022
D0042 0524R 1090 1065
D0150 04EER 1026 1022
D0202 04F3R 1036 1019
D0203 050AR 1056 1032 1050
D0550 04EFR 1030 1058
D0600 04A7R 970 965
D0610 04ABR 973 976
D0620 04B1R 977 971 974 975
D0695 04CAR 997 991
D0696 04BCR 984 993
D0697 04C8R 994 983 1003
D0698 04C1R 989 980
D0699 04BER 986 995 1005
D0900 04E9R 1023 961 967 1008
D0917 052ER 1101 1076 1080 1086
D0940 052CR 1099 1073
D0950 0535R 1106 979 1001 1046 1056 1074
DBUSY 0530R 1103 986 992 1016 1045 1087
DIO 04A3R 1129 156 308 347 350 367 370 594
DISKN 049CR 961 1129
DZ000 00F2 105 125 640 895
IC000 0000R 114 1137
IC010 000CR 129 130
IC050 0034R 168 621
IC060 0037R 173 622
IC065 0042R 185 138
IC070 0046R 187 195
IC100 005AR 207 205
IC200 005DR 212 169
IC201 0069R 219 223 228
IC205 0077R 234 215
IC208 007BR 239 221
IC210 00C0R 317 319
IC220 008AR 253 243 257
IC225 0090R 256 284
IC226 0092R 261 213 225
IC230 0097R 267 255
IC232 00A3R 282 272
IC234 00A6R 288 278
IC235 00C5R 324 458
IC236 00ADR 295 263
IC240 00C6R 325 402
IC245 00CDR 333 335
IC250 00D5R 346 357 463
IC255 00E2R 355 464
IC260 00EAR 365 397 469 487 489
IC265 00F8R 378 470
IC270 00FFR 385 391
IC271 010AR 393 494
IC275 013ER 454 409 513
IC280 0145R 462 354
IC285 0149R 468 374
IC300 014DR 474 380
IC301 0156R 483 389 476
IC305 0160R 490 484
IC310 0165R 498 407
IC315 0169R 504 408 478
IC316 016FR 510 500
IC320 048FR 947 954
IC325 0495R 951 948
IC326 0499R 953 950 982
IC330 0175R 517 457
IC340 0178R 519 523 526
IC350 0184R 527 521 530
IC351 01C2R 578 572 574 575 582
IC355 01FCR 637 589 591 593 644
IC356 0201R 641 642
IC360 01E1R 604 608
IC370 01E8R 612 296 506
IC375 01F4R 622 613
IC380 01F6R 626 149 204 612
IC400 0206R 648 235 248 262 505 667
IC410 0213R 657 661
IC900 0118R 414 124
IC901 011AR 416 326 332 386
IC905 0076R 230 217 220 224 227
IC910 0120R 422 239
IC911 0121R 423 355 564 566
IC912 0122R 424 288
IC913 0123R 425 316 427
IC916 0124R 426 378
IC917 0123R 427 456
IC918 0125R 428 534 539
IC919 0127R 430 604
IC920 012BR 431 114
IC921 012CR 432 361 393 483 485
IC922 012DR 433 116 189 663
IC923 012ER 434 303 340
IC924 012FR 435 315 498 511
IC925 0130R 437 323 339 454 455 474 490 552 553 951
IC926 0131R 438 341 352 364 365 372 394
IC927 0132R 439 327 406 491 952
IC928 0133R 440 155 173 586
IC929 0134R 441 325 353 373 462 468 486 488 493 947 949
IC930 0135R 442 362 477 479
IC931 0136R 443 141 517 600 619 620 650
IC932 0137R 444 148 199
IC933 0138R 445 295 618 649
IC934 0139R 446 300 301 546
IC935 013AR 447 276 290 291
IC936 013BR 448 143 269
IC937 013CR 449 162 175
IC938 013DR 450 163
IC939 01FAR 632 627
IC940 0226R 676 655 658 662 673 675
IC941 023AR 679 504 675
IC942 0245R 680 261
IC943 0250R 681 234
IC944 0254R 682 247
IC950 0260R 687 187 188 638 639
IC960 0262R 692 547 857
IC970 026ER 707 240 242 317 510 531 560 561 563 578 588
IC971 037ER 716 720 728 733
IC972 0383R 719 723
IC973 038BR 726 716 728
IC974 0390R 733 719 720
IC975 0392R 735 727
IC976 0394R 740 718 733
IC977 03A7R 759 707 718
IC978 03A8R 764 567 592
IC979 03B1R 773 764
IC980 03B2R 778 137 139 168 186 212 216 241 254 431 520 525 605
654
IC981 03BDR 785
IC982 03CDR 792 785
IC983 03DDR 799 792
IC984 03EDR 806 799
IC985 03FDR 813 806
IC990 054AR 1134 304 310 333 346 349 366 369 379 385 475
IC992 041ER 825 142 181 214 219 415 519 532
IC993 03FER 818 528 533 535 536 538 540 542 565 590
IOCCN 0532R 1104 981 985 989 1038 1048 1090
IT200 0420R 841 120 919
IT205 0422R 846 849
IT210 042CR 855 905
IT220 0440R 876 878 884 888 936
IT230 0445R 884 866 886
IT240 045AR 901 872
IT250 0461R 912 917
IT904 0483R 939 253 871 900
IT906 046ER 925 934
IT907 046FR 926
IT908 0470R 927 899
IT911 0474R 928 860 863
IT912 0476R 930 862 864 877
IT915 0478R 932 891 928
IT917 047AR 934 893
IT918 0444R 879 859
IT921 047BR 935 861
IT922 047CR 936 855
IT923 047DR 937 853 889 901
IT926 047ER 938 847 912
NTRDY 052FR 1102 1030
SAVAC 0528R 1096 1007 1020
SAVE1 04DCR 1013 1012 1063 1084
SCNTR 052DR 1100 997 1054
SEEK 0526R 1095 1004 1082 1088
SENSI 052BR 1098 972 990 1049 1075
STRAP 0028 1128 1031