ASM1130 CROSS ASSEMBLER V1.22 -- V2M12 -- Sun Nov 1 19:25:06 2020
Source File: \pmndkrpq.asm
1 | ABS DKN00010
00F0 2 | ORG /00F0 DKN00020
3 | *************************************************** DKN00030
4 | * * DKN00040
5 | * STATUS - VERSION 1, MODIFICATION LEVEL 3 * DKN00050
6 | * * DKN00060
7 | *THIS IS A SPECIAL VERSION OF DISKN FOR 2311 DISK * DKN00070
8 | **DRIVE ATTACHMENT TO THE 1133 MULTIPLEXER * DKN00080
9 | * * DKN00090
10 | *FUNCTION/OPERATION- * DKN00100
11 | * DISKN HAS THE FOLLOWING SIX DISK FUNCTIONS- * DKN00110
12 | * *TEST (TEST FOR 2311 UNIT BUSY) * DKN00120
13 | * *READ * DKN00130
14 | * *WRITE WITHOUT READ-BACK-CHECK * DKN00140
15 | * *WRITE WITH READ-BACK-CHECK * DKN00150
16 | * *WRITE IMMEDIATE * DKN00160
17 | * *SEEK * DKN00170
18 | *ENTRY POINTS- * DKN00180
19 | * DISKN IS ENTERED * DKN00190
20 | * *FROM THE MONITOR AT DN000 (00F2) * DKN00200
21 | * *FROM THE TRANSFER VECTOR AT DN030 - 3 * DKN00210
22 | * AS FOLLOWS- * DKN00220
23 | * LIBF DISKN (OR BSI L DZ000) * DKN00230
24 | * DC /WXYZ CONTROL * DKN00240
25 | * DC AREA I/O AREA ADDRESS * DKN00250
26 | * DC ERROR ERROR ROUTINE * DKN00260
27 | * WHERE- W = I/O FUNCTION CODE * DKN00270
28 | * X = NOT USED * DKN00280
29 | * Y = SEEK OPTION * DKN00290
30 | * Z = DISPLACEMENT OPTION * DKN00300
31 | * * DKN00310
32 | *EXTERNAL REFERENCES- (ALL IN COMMA) * DKN00320
33 | * $ACDE * DKN00330
34 | * $CYLN * DKN00340
35 | * $DBSY * DKN00350
36 | * $DCYL * DKN00360
37 | * $EXIT * DKN00370
38 | * $FPAD * DKN00380
39 | * $IOCT * DKN00390
40 | * $PST2 * DKN00400
41 | * $PRET * DKN00410
42 | * * DKN00420
43 | *EXITS- NORMAL * DKN00430
44 | * *RETURN TO CALL + 3 ON TEST AND WRITE * DKN00440
45 | * IMMEDIATE FUNCTIONS. * DKN00450
46 | * *RETURN TO CALL + 4 ON ALL OTHER FUNCTIONS. * DKN00460
47 | * * DKN00470
48 | *EXITS- ERROR * DKN00480
49 | * *BRANCH TO $PRET WITH /5000 IN ACCUMULATOR * DKN00490
50 | * WHEN DISK NOT READY. * DKN00500
51 | * *BRANCH TO $PRET WITH /5001 IN ACCUMULATOR * DKN00510
52 | * ON BAD CALL. * DKN00520
53 | * *BRANCH TO $PST2 WITH /5003 IN ACCUMULATOR * DKN00530
54 | * ON WRITE SELECT OR POWER UNSAFE. * DKN00540
55 | * ***DRIVE CODE AND SECTOR ADDRESS IN EXT. * DKN00550
56 | * *BRANCH TO $EXIT ON DISK OVERFLOW. * DKN00560
57 | * *BRANCH TO CALLER ERROR ROUTINE ON POST- * DKN00570
58 | * OPERATIVE ERROR. * DKN00580
59 | * * DKN00590
60 | *ATTRIBUTES- * DKN00600
61 | * *DISKN MAY BE CALLED FROM THE MONITOR OR BY * DKN00610
62 | * A LIBF. * DKN00620
63 | * *DISKN WILL OPERATE ON THE 2311 AND THE HOME* DKN00630
64 | * FILE SIMULTANEOUSLY. * DKN00640
65 | * *DISKN ACCEPTS I/O AREAS BEGINNING ON UNEVEN* DKN00650
66 | * BOUNDARIES. * DKN00660
67 | * *DISKN IS NOT RELOCATABLE. * DKN00670
68 | * *DISKN WILL NOT ALLOW OVERLAP WITH THE 2311* DKN00680
69 | * *DISKN IS REUSABLE. * DKN00690
70 | * DRIVE AND WILL TRAP THE SECOND OPERATION * DKN00700
71 | * DIRECTED TO THE 2311 UNTIL THE FIRST OPER- * DKN00710
72 | * TION IS COMPLETED. * DKN00720
73 | * *A SEEK IS NOT PHYSICALLY PERFORMED UNTIL * DKN00730
74 | * A XIO READ OR WRITE IS ISSUED TO THE 2311. * DKN00740
75 | * * DKN00750
76 | *NOTES- NONE * DKN00760
77 | * * DKN00770
78 | *************************************************** DKN00780
00F0 02B1 79 | DC $NEND-* DISKN WORD COUNT DKN00790
00F1 FF68 80 | DC /FF68 -'DNID DKN00800
00F2 02AA 81 | DC $NEND-6-*+1 ADDR OF SLET EXTRACT DKN00810
00F3 0001 82 | DC 1 NO ENTRIES IN SLET EXTRACT DKN00820
00F2 83 | ORG *-2 DKN00830
00F2 0000 84 | DN000 DC *-* ENTRY PT FOR MONITOR PROGS. DKN00840
00F3 6A33 85 | STX 2 DN110+3 SAVE CONTENTS OF XR2. DKN00850
00F4 6600 0166 86 | LDX L2 DN902 FETCH ADDR OF PSEUDO CALL. DKN00860
00F6 7044 87 | MDX DN210 BRANCH AROUND ENTRY POINTS. DKN00870
00F7 0000 88 | DN020 DC *-* ENTRY POINT FOR INTERRUPTS. DKN00880
00F8 7068 89 | MDX DN240 BR TO INTERRUPT PROCESSING. DKN00890
00F9 6A2D 90 | STX 2 DN110+3 SAVE CONTENTS OF XR2. DKN00900
00FA 6680 0000 91 | LDX I2 *-* PUT LINK WD FROM TV IN XR2. DKN00910
00FC 6928 92 | DN030 STX 1 DN110+1 SAVE CONTENTS OF XR1 DKN00920
00FD 6A4D 93 | STX 2 DN230+1 SAVE ADDRESS OF CALL+1. DKN00930
00FE D867 94 | STD DN902 SAVE CONTENTS OF ACC/EXT. DKN00940
00FF 2822 95 | STS DN100 SAVE STATUS OF INDICATORS. DKN00950
0100 C200 96 | DN040 LD 2 0 LOAD CONTROL PARAMETER 2-11 DKN00960
0101 188C 97 | SRT 12 ISOLATE FIRST DIGIT 2-11 DKN00970
0102 4C18 0109 98 | BSC L DN050-3,+- BR IF FUNC IS TEST 2-11 DKN00980
0104 C201 99 | LD 2 1 LOAD ADDR OF USERS BUFFER DKN00990
0105 D400 0001 100 | STO L DNXR1 POINT XR1 TO USERS 2-11 DKN01000
101 | * *BUFFER 2-11 DKN01010
0107 C101 102 | LD 1 1 LOAD USERS SECTOR ADDRESS. DKN01020
0108 1890 103 | SRT 16 SHIFT TO EXTENSION. DKN01030
0109 1085 104 | SLT 5 SET UP XR1 DKN01040
010A 1801 105 | SRA 1 * WITH THE 2-11 DKN01045
010B D001 106 | STO DN050+1 * LOGICAL 2-11 DKN01050
010C 6500 0000 107 | DN050 LDX L1 *-* * DRIVE CODE NUMBER. DKN01060
010E 71FC 108 | MDX 1 -4 SKIP IF DR CODE LEGAL 2-11 DKN01100
010F 7025 109 | MDX DN200 BR TO PRE-OP ERROR EXIT. DKN01110
0110 7104 110 | MDX 1 4 RESET XR1 TO DR CODE 2-11 DKN01120
0111 1000 111 | DN060 NOP IN CASE OF SKIP. DKN01130
0112 2000 112 | DN070 LDS 0 TURN OFF OVERFLOW INDICATOR DKN01140
0113 C200 113 | LD 2 0 LOAD CONTROL PARAMETER. DKN01150
0114 180C 114 | SRA 12 ISOLATE FUNCTION CODE. DKN01160
0115 4C20 016B 115 | BSC L DN250,Z BRANCH IF NOT TEST FUNCTION DKN01170
116 | * DKN01180
117 | * PERFORM THE TEST FUNCTION. DKN01190
118 | * DKN01200
0117 C500 009F 119 | LD L1 $ACDE LOAD AREA CODE OF DR N 2-11 DKN01210
0119 4400 034A 120 | BSI L DN700 UPON RETURN FR DN700 2-11 DKN01220
121 | * *ACC = 0, IF HOME FILE 2-11 DKN01230
122 | * *ACC = 2, IF 1ST 2311 2-11 DKN01240
123 | * *ACC = 4, IF 2ND 2311 2-11 DKN01250
011B 4808 124 | BSC + SKIP IF NOT HOME FILE 2-11 DKN01255
011C 8046 125 | A DN914 ADD 1 2311 DKN01260
011D E0D0 126 | AND $DBSY COMPARE WITH BUSY IND 2311 DKN01270
011E 4820 127 | BSC Z SKIP IF NOT BUSY 2311 DKN01280
011F 72FF 128 | MDX 2 -1 SET UP FOR RETURN TO CALL+3 DKN01290
0120 7203 129 | DN090 MDX 2 3 SET UP FOR RETURN TO CALL+4 DKN01300
130 | * DKN01310
131 | * RESTORE REGISTERS AND INDICATORS DKN01320
132 | * AND SET UP FOR RETURN TO CALLING PROGRAM. DKN01330
133 | * DKN01340
0121 C844 134 | LDD DN902 RESTORE CONTENTS OF ACC/EXT DKN01350
0122 2000 135 | DN100 LDS 0 RESTORE CARRY AND OVERFLOW. DKN01360
0123 6A05 136 | STX 2 DN120 STORE RETURN ADDRESS. DKN01370
0124 6500 0000 137 | DN110 LDX L1 *-* RESET XR1 TO ORIG CONTENTS. DKN01380
0126 6600 0000 138 | LDX L2 *-* RESET XR2 TO ORIG CONTENTS. DKN01390
0128 4C00 0000 139 | BSC L *-* RETURN TO USER. DKN01400
0129 140 | DN120 EQU *-1 DKN01410
141 | * DKN01420
9 142 | * CONSTANTS AND WORK AREAS. DKN01430
143 | * DKN01440
012A 5000 144 | DN900 DC /5000 DISK NOT READY ERROR CODE. DKN01450
012B 5001 145 | DN901 DC /5001 BAD CALL ERROR CODE. DKN01460
146 | * DKN01470
012C 0005 147 | DN903 DC 5 CONSTANT DKN01480
148 | * DKN01490
149 | * PREPARE TO MAKE PRE-OPERATIVE ERROR EXIT. DKN01500
150 | * DKN01510
012D C0FC 151 | DN170 LD DN900 LOAD DISK NOT RDY ERR CODE. DKN01520
012E 7007 152 | MDX DN200+1 BRANCH TO EXIT TO $PRET. DKN01530
012F C10C 153 | DN180 LD 1 DN982-D IS IT A MONITOR CALL DKN01540
0130 9037 154 | S DN902+2 DKN01550
0131 4C18 031B 155 | BSC L DN610,+- BRANCH IF YES DKN01560
0133 4C01 01EC 156 | DN190 BSC L DN380,O BR IF IT IS A POST-OP ERR. DKN01570
0135 C0F5 157 | DN200 LD DN901 FETCH PREOP ERROR CODE. DKN01580
0136 6680 014B 158 | LDX I2 DN230+1 LD XR2 WITH ADDR OF CALL+1. DKN01590
0138 4400 0028 159 | BSI L $PRET BR TO PREOPERATIVE ERR TRAP DKN01600
013A 70C5 160 | MDX DN040 BRANCH TO RE-ENTER DISKN. DKN01610
161 | * DKN01620
162 | * SET UP CONTROL PARAMETER FOR MONITOR CALL. DKN01630
163 | * DKN01640
013B 1008 164 | DN210 SLA 8 DKN01650
013C 4820 165 | BSC Z BRANCH IF READ OPERATION. DKN01660
013D C0D4 166 | LD DN070 SET UP FUNCTION DKN01670
013E 80D2 167 | A DN060 *INDICATOR. DKN01680
013F 70BC 168 | MDX DN030 BR TO CONT PROCESSING CALL. DKN01690
169 | * DKN01700
170 | * SET THE BIT FOR DRIVE N IN THE DISK BUSY DKN01710
171 | * INDICATOR AND INCREMENT THE SYSTEM I/O COUNTER. DKN01720
172 | * DKN01730
0140 C400 0001 173 | DN220 LD L DNXR1 LOAD VALUE IN XR1 2-11 DKN01740
0142 9038 174 | S DN260+1 SET TO 2-11 DKN01750
175 | * * 0, IF HOME FILE 2-11 DKN01760
176 | * * 2, IF 1ST 2311 2-11 DKN01770
177 | * * 4, IF 2ND 2311 2-11 DKN01780
0143 4808 178 | BSC + SKIP IF POSITIVE 2-11 DKN01790
0144 801E 179 | A DN914 ADD 1 2-11 DKN01800
0145 E8A8 180 | OR $DBSY SET APPROPRIATE BIT ON 2-11 DKN01810
0146 D0A7 181 | STO $DBSY *IN DISK BUSY INDICATOR2-11 DKN01820
0147 7401 0032 182 | MDX L $IOCT,1 INCREMENT SYS I/O COUNTER. DKN01830
0149 1000 183 | NOP IN CASE OF SKIP DKN01840
014A 6600 0000 184 | DN230 LDX L2 *-* XR2 = ADDRESS OF CALL+1. DKN01850
014C C10D 185 | LD 1 DN983-D LOAD SEEK FLAG 2311 DKN01860
014D 4C10 0152 186 | BSC L DN235,- BR IF NO SEEK NEEDED 212 DKN01870
014F 0C00 02B8 187 | XIO L DN952 OTHERWISE INITIATE SEEK2311 DKN01880
0151 70CE 188 | MDX DN090 TO RETN TO CALL +4 DKN01881
0152 C1FA 189 | DN235 LD 1 DN970-D LOAD RD-AFTER-SEEK FLAG 212 DKN01882
0153 4C30 0160 190 | BSC L DN236,Z- RETURN 212 DKN01883
0155 C101 191 | LD 1 DN978+1-D HAS SEEK BEEN CHECKED 212 DKN01884
0156 4C10 0160 192 | BSC L DN236,- YES, RETURN 212 DKN01885
0158 C0FF 193 | LD *-1 LOAD NEGATIVE NUMBER 212 DKN01890
194 | * DKN01891
0159 D10D 195 | STO 1 DN983-D STORE IN SEEK FLAG 212 DKN01892
015A 6909 196 | STX 1 DN904 212 DKN01893
015B C400 0218 197 | LD L DN912 LOAD /0101 212 DKN01894
015D F1F5 198 | EOR 1 DN968-D EXCLUSIVE OR WITH SENSE 212 DKN01895
015E D006 199 | STO DN904+1 WD 2 OF READ IOCC 212 DKN01896
015F 0804 200 | XIO DN904 ISSUE READ COMMAND 212 DKN01897
0160 70BF 201 | DN236 MDX DN090 212 DKN01898
202 | * DKN01900
0161 4C00 0224 203 | DN240 BSC L DN440 BR TO INTERRUPT PROCESSING. DKN01910
0163 0001 204 | DN914 DC /0001 WORD USED TO SET $DBSY 2-9 DKN01920
205 | * DKN01940
206 | * PSEUDO CALL TO DISKN FOR MONITOR. DKN01950
207 | * DKN01960
0164 208 | DN904 BSS E 2 READ-CHECK IOCC 212 DKN01965
0166 209 | BSS E 0 DKN01970
0166 0000 210 | DN902 DC *-* WD TO SAVE CONTENTS OF ACC. DKN01980
0167 0000 211 | DC *-* WD TO SAVE CONTENTS OF EXT. DKN01990
0168 0085 212 | DC $PST2 ADDR POSTOPERATIVE ERR TRAP DKN02000
0169 4C80 00F2 213 | BSC I DN000 BRANCH TO RETURN TO MONITOR DKN02010
214 | * DKN02020
215 | * PROCESS ALL FUNCTIONS EXCEPT TEST. DKN02030
216 | * DKN02040
016B C500 009F 217 | DN250 LD L1 $ACDE LOAD DR N AREA CODE 2-11 DKN02050
016D 4C18 0135 218 | BSC L DN200,+- BR IF DR NOT ON SYSTEM 2-11 DKN02055
016F 4400 034A 219 | BSI L DN700 UPON RETURN FR DN700 2-11 DKN02060
220 | * *ACC = 0, IF HOME FILE 2-11 DKN02070
221 | * *ACC = 2, IF 1ST 2311 2-11 DKN02080
222 | * *ACC = 4, IF 2ND 2311 2-11 DKN02085
0171 D007 223 | STO DN255+1 SAVE FOR XR1 SETTING 2-11 DKN02090
0172 4808 224 | BSC + SKIP IF NOT HOME FILE 2-11 DKN02095
0173 80EF 225 | A DN914 SET BIT FOR DRIVE N 2311 DKN02100
0174 E400 00EE 226 | AND L $DBSY COMPARE WITH BUSY IND 212 DKN02110
0176 4C20 016B 227 | BNZ DN250 BRANCH ON BUSY 2311 DKN02120
0178 6500 0000 228 | DN255 LDX L1 *-* XR1 = 2*PHY DEVICE 2-11 DKN02125
017A 7500 036A 229 | DN260 MDX L1 D POINT XR1 TO APPROPRIATE DKN02130
017C C201 230 | LD 2 1 LOAD AND SAVE ADDRESS 2-11 DKN02132
017D D12A 231 | STO 1 DN994-D *OF USERS I/O AREA 2-11 DKN02134
017E C202 232 | LD 2 2 LOAD AND SAVE ADDRESS 2-11 DKN02136
017F D10C 233 | STO 1 DN982-D *OF USERS ERROR SUBR 2-11 DKN02138
0180 C200 234 | LD 2 0 LOAD CONTROL PARAMETER. DKN02140
0181 6680 010D 235 | LDX I2 DN050+1 XR2 = LOGICAL DR NO. 2-11 DKN02142
0183 D112 236 | STO 1 DN984-D SAVE CONTROL PARAMETER 2-11 DKN02144
0184 100C 237 | SLA 12 ISOLATE FOURTH DIGIT. DKN02150
0185 4C18 018B 238 | BSC L DN270,+- BR IF SECT ADDR IS ABSOLUTE DKN02160
0187 108B 239 | SLT 11 SHIFT IN USERS SECTOR ADDR. DKN02170
0188 8600 0095 240 | A L2 $FPAD ADD IN FILE PROT ADDR 2-11 DKN02180
018A 188B 241 | SRT 11 SHIFT SECTOR ADDR INTO EXT. DKN02190
018B 108F 242 | DN270 SLT 15 SHIFT SCT ADDR INTO ACC DKN02200
018C 1804 243 | SRA 4 *AND SHIFT OUT DR NO DKN02210
018D D11E 244 | STO 1 DN990-D STORE INITIAL SECTOR ADDR. DKN02220
018E D11F 245 | STO 1 DN991-D STORE WORKING SECTOR ADDR. DKN02230
018F C112 246 | LD 1 DN984-D LOAD CONTROL PARAMETER 2-11 DKN02280
0190 18CC 247 | RTE 12 ISOLATE FUNCTION CODE DKN02290
0191 D112 248 | STO 1 DN984-D SAVE FUNCTION CDE DKN02300
0192 C400 0002 249 | LD L DNXR2 LOAD LOGICAL DR NO. 2-11 DKN02310
0194 D1FB 250 | STO 1 DN976-D *AND SAVE FOR USE IN 2-11 DKN02320
251 | * *INTERRUPT PROCESSING 2-11 DKN02330
0195 C600 009F 252 | LD L2 $ACDE LOAD AREA CODE OF DR N 2-11 DKN02420
0197 E860 253 | OR DN931 OR IN 2ND WD OF SENSE IOCC. DKN02430
0198 D1F5 254 | STO 1 DN968-D STORE IN SENSE IOCC 2-11 DKN02440
0199 09F4 255 | XIO 1 DN968-1-D SENSE DR N W/RESET 2-11 DKN02450
019A 4C28 01BB 256 | BSC L DN300,Z+ BR IF WR/SEL OR PWR/UNSAFE. DKN02460
019C 1002 257 | SLA 2 TEST NOT READY BIT OF DSW. DKN02470
019D 4C28 012D 258 | BSC L DN170,Z+ BRANCH IF DRIVE N NOT READY DKN02480
019F C112 259 | DN280 LD 1 DN984-D LOAD FUNCTION CODE. DKN02490
01A0 908B 260 | S DN903 SUBTRACT FIVE. DKN02500
01A1 D1FA 261 | STO 1 DN970-D DKN02510
01A2 4C30 0135 262 | BSC L DN200,Z- BR IF FUNCTION CODE ILLEGAL DKN02520
01A4 4C20 02BE 263 | BSC L DN560,Z BR IF FUNCTION IS NOT SEEK. DKN02530
01A6 1088 264 | SLT 8 ISOLATE THIRD DIGIT DKN02540
01A7 100C 265 | SLA 12 *OF CONTROL PARAMETER. DKN02550
01A8 4C18 02E6 266 | BSC L DN580,+- BR IF SEEK OPTION NOT USED. DKN02560
01AA 4C00 02DC 267 | BSC L DN570+1 SET UP SCTR ADDR FOR SK-OPT DKN02570
268 | * DKN02580
269 | * RESET THE BIT FOR DRIVE N IN THE DISK BUSY DKN02590
270 | * INDICATOR AND DECREMENT THE SYSTEM I/O COUNTER. DKN02600
271 | * DKN02610
01AC 0000 272 | DN290 DC *-* DKN02620
01AD C400 0001 273 | LD L DNXR1 LOAD VALUE IN XR1 2-11 DKN02630
01AF 90CB 274 | S DN260+1 SET TO 2-11 DKN02640
275 | * * 0, IF HOME FILE 2-11 DKN02650
276 | * * 2, IF 1ST 2311 2-11 DKN02660
277 | * * 4, IF 2ND 2311 2-11 DKN02670
01B0 4808 278 | BSC + SKIP IF POSITIVE 2-11 DKN02680
01B1 80B1 279 | A DN914 ADD 1 2-11 DKN02690
01B2 74FF 0032 280 | MDX L $IOCT,-1 DECREMENT I/O COUNTER 2-11 DKN02700
01B4 1000 281 | NOP IN CASE OF SKIP 2-11 DKN02710
01B5 F400 00EE 282 | EOR L $DBSY SET OFF BUSY BIT FOR DKN02720
01B7 D400 00EE 283 | STO L $DBSY *DR N AND SAVE DKN02730
01B9 4C80 01AC 284 | BSC I DN290 DKN02740
285 | * DKN02750
01BB C05A 286 | DN300 LD DN911 LD WR/SEL-PWR UNSAFE ERR CD DKN02760
01BC 4C00 0136 287 | BSC L DN200+1 BR TO SET UP ERROR EXIT 212 DKN02770
288 | * DKN02780
289 | * CONSTANTS AND WORK AREAS. DKN02790
290 | * DKN02800
291 | * DKN02810
292 | * DKN02820
293 | * SET UP FOR AND THEN BRANCH TO ERROR DKN02830
294 | * SUBROUTINE OF THE CALLING PROGRAM. DKN02840
295 | * DKN02850
01BE 0000 296 | DN340 DC *-* DKN02860
01BF 1890 297 | SRT 16 SHIFT ERROR CODE TO EXT. DKN02870
01C0 C10C 298 | LD 1 DN982-D TEST FOR MONITOR CALL DKN02880
01C1 90A6 299 | S DN902+2 DKN02890
01C2 4C20 01C6 300 | BSC L DN345,Z BR IF NOT MONITOR CALL DKN02900
01C4 C056 301 | LD DN934 LD ER DISP FOR MON CALL 2-9 DKN02910
01C5 1890 302 | SRT 16 SHIFT ERROR CODE TO EXT. DKN02920
01C6 C04E 303 | DN345 LD DN930 RESET RETRY DKN02930
01C7 D113 304 | STO 1 DN985-D *COUNTER TO 16. DKN02940
01C8 C1FB 305 | LD 1 DN976-D LOAD LOGICAL DRIVE NO. 2-11 DKN02950
01C9 100C 306 | SLA 12 PUT DRIVE CODE IN BITS 0-3. DKN02970
01CA E91F 307 | OR 1 DN991-D OR IN SECTOR ADDRESS. DKN02980
01CB 18D0 308 | RTE 16 DKN02990
01CC 4580 000C 309 | BSI I1 DN982-D BR TO USERS ERROR ROUTINE. DKN03000
01CE 4C80 01BE 310 | BSC I DN340 RETURN TO WHERE ERROR FOUND DKN03010
311 | * DKN03020
01D0 1002 312 | DN350 SLA 2 BR IF NOT WRITE 2-8 DKN03030
01D1 4C10 01D8 313 | BSC L DN356,- *SELECT ERROR 2-8 DKN03040
01D3 C042 314 | LD DN911 ERROR CODE TO ACC 2-8 DKN03050
01D4 4400 0085 315 | BSI L $PST2 BR TO POST ERR TRAP 2-8 DKN03060
01D6 40D5 316 | BSI DN290 RESET $IOCT,$DBSY 2-8 DKN03070
01D7 7018 317 | MDX DN382 BR TO CONTINUE TO EXIT 2-8 DKN03080
01D8 C112 318 | DN356 LD 1 DN984-D LOAD FUNCTION CODE DKN03090
01D9 1802 319 | SRA 2 SEE IF FUNC WRITE IMMEDIATE DKN03100
01DA 4C20 024F 320 | BSC L DN460,Z BR IF FUNC WRITE IMMEDIATE. DKN03110
01DC C12B 321 | LD 1 DN995-D SEE IF ERROR IN RDBCK CHECK DKN03120
01DD 4C04 0200 322 | BSC L DN400,E BRANCH IF READBACK CHECK. DKN03130
01DF C113 323 | LD 1 DN985-D LOAD AND DKN03140
01E0 9039 324 | S DN933 * DECREMENT DKN03150
01E1 D113 325 | STO 1 DN985-D * RETRY COUNTER. DKN03160
01E2 4C20 01EA 326 | BSC L DN370,Z BRANCH TO TRY AGAIN. DKN03170
01E4 C112 327 | DN360 LD 1 DN984-D LOAD FUNCTION CODE. DKN03180
01E5 1801 328 | SRA 1 SET UP DKN03190
01E6 8033 329 | A DN933 *ERROR CODE. DKN03200
01E7 40D6 330 | BSI DN340 BRANCH TO SET UP ERROR EXIT DKN03210
01E8 4C18 024F 331 | BSC L DN460,+- BRANCH TI IGNORE ERROR. DKN03220
01EA 0918 332 | DN370 XIO 1 DN986-D RETRY READ OR WRITE. DKN03230
01EB 705B 333 | MDX DN450-1 BR TO RETRN TO INT LEV 2311 DKN03240
334 | * DKN03250
335 | * SET UP FOR POST-OPERATIVE DISK OVFLO ERROR EXIT. DKN03260
336 | * DKN03270
01EC C400 035E 337 | DN380 LD L DN963 LOAD ERROR CODE DKN03280
01EE 40CF 338 | BSI DN340 BRANCH TO SET UP ERROR EXIT DKN03290
01EF 40BC 339 | BSI DN290 BR TO RESET BUSY INDRS DKN03300
01F0 4C40 01F2 340 | DN382 BOSC L * TURN OFF INTERRUPT LEVEL. DKN03310
01F2 7400 00EE 341 | MDX L $DBSY,0 LOOP UNTIL ALL DISK DKN03320
01F4 70FD 342 | MDX *-3 *OPERATIONS COMPLETE. DKN03330
01F5 6038 343 | EXIT EXECUTE A CALL EXIT DKN03340
344 | * DKN03350
345 | * CONSTANTS AND WORK AREAS. DKN03360
346 | * DKN03370
01F6 0680 347 | DN920 DC /0680 READBACK CHECK IOCC WORD. DKN03380
01F7 2028 348 | DN921 DC /2028 CONSTANT OF HEX 2028. DKN03390
01F8 0701 349 | DN931 DC /0701 2ND WORD OF SENSE W/RESET DKN03400
350 | * DKN03410
01F9 C112 351 | DN390 LD 1 DN984-D LOAD FUNCTION CODE. DKN03420
01FA 9021 352 | S DN932 SUBTRACT THREE. DKN03430
01FB 4C20 0222 353 | BSC L DN430,Z BR IF NOT WR W/RDBCK CHECK. DKN03440
01FD C12B 354 | LD 1 DN995-D SEE IF READBACK CHECK DONE. DKN03450
01FE 4C04 0220 355 | BSC L DN420,E BR IF READBACK CHECK DONE. DKN03460
0200 9019 356 | DN400 S DN933 DECREMENT READBACK DKN03470
0201 D12B 357 | STO 1 DN995-D *CHECK RETRY COUNTER. DKN03480
0202 4C18 021D 358 | BSC L DN415,+- BRANCH IF 16 RETRIES MADE. DKN03490
0204 4C04 020F 359 | BSC L DN410,E BRANCH TO READBACK CHECK. DKN03500
0206 C118 360 | LD 1 DN986-D RESTORE 2-6 DKN03510
0207 D400 0002 361 | STO L DNXR2 *FIRST TWO WORDS 2-9 DKN03520
0209 C106 362 | LD 1 DN980-D * IF 2-6 DKN03530
020A D200 363 | STO 2 0 * ERROR 2-6 DKN03540
020B C107 364 | LD 1 DN980+1-D * IN 2-6 DKN03550
020C D201 365 | STO 2 1 * READ BACK CHECK 2-6 DKN03560
020D C074 366 | LD DN941 LD WD TO SET UP WRITE IOCC. DKN03570
020E 7001 367 | MDX *+1 SKIP OVER NEXT INSTRUCTION. DKN03580
020F C0E6 368 | DN410 LD DN920 LD WD TO SET UP RDBK/CHK. DKN03590
0210 D119 369 | STO 1 DN986+1-D STORE IN 2ND WORD OF IOCC. DKN03600
0211 C11E 370 | LD 1 DN990-D LOAD ORIGINAL SECTOR ADDR. DKN03610
0212 D11F 371 | STO 1 DN991-D STORE AS WORKING SECT ADDR. DKN03620
0213 2001 372 | LDS 1 SET OVERFLOW INDICATOR. DKN03630
0214 708A 373 | MDX DN280 BR TO SET UP FOR RDBACK/CHK DKN03640
374 | * DKN03650
375 | * CONSTANTS AND WORK AREAS. DKN03660
376 | * DKN03670
0215 0011 377 | DN930 DC @TCNT NUMBER OF RETRIES TO MAKE. DKN03680
0216 5002 378 | DN911 DC /5002 WR/SEL-PWR UNSAFE ERROR CODEDKN03690
0218 379 | BSS E 0 DKN03700
0218 0101 380 | DN912 DC /0101 MASK FOR BUILDING READ IOCC DKN03710
0219 0300 381 | DC /0300 2ND WD OF SENSE INTRPT IOCC DKN03720
021A 0001 382 | DN933 DC 1 CONSTANT OF DECIMAL ONE. DKN03730
021B 5003 383 | DN934 DC /5003 MONITOR CALL DISK ERROR CD. DKN03740
021C 0003 384 | DN932 DC 3 WRITE W/RDBCK FUNCTION CODE DKN03750
385 | * DKN03760
021D C063 386 | DN415 LD DN940 RESET READBACK CHECK DKN03770
021E D12B 387 | STO 1 DN995-D *RETRY COUNTER TO 32. DKN03780
021F 70C4 388 | MDX DN360 BRANCH TO ERROR EXIT. DKN03790
389 | * DKN03800
390 | * SET UP FOR RETURN TO INTERRUPT LEVEL. DKN03810
391 | * DKN03820
0220 C060 392 | DN420 LD DN940 RESTORE READBACK CHECK DKN03830
0221 D12B 393 | STO 1 DN995-D *RETRY COUNTER TO 32. DKN03840
0222 4089 394 | DN430 BSI DN290 BRANCH TO RESET $DBSY DKN03850
0223 7023 395 | MDX DN450-1 BR TO RETRN TO INT LEV*2311 DKN03860
396 | * DKN03870
0224 6100 397 | DN440 LDX 1 0 2-11 DKN03880
0225 08F2 398 | XIO DN912 SENSE THE ILSW DKN03890
0226 6205 399 | DN445 LDX 2 5 2-11 DKN03895
0227 4C28 022C 400 | BSC L DN446,+Z SET XR1 AS FOLLOWS 2-11 DKN03900
0229 1240 401 | SLCA 2 * 0,IF HOME FILE INT. 2-11 DKN03910
022A 7102 402 | MDX 1 2 * 2,IF 1ST 2311 INTRPT 2-11 DKN03920
022B 70FA 403 | MDX DN445 * 4,IF 2ND 2311 INTRPT 2-11 DKN03930
022C 7500 036A 404 | DN446 MDX L1 D INCRE POINT. TO TABLES 2-11 DKN03940
022E C1FB 405 | LD 1 DN976-D LOAD LOGICAL DR NO. 2-11 DKN03945
022F D400 0002 406 | STO L DNXR2 XR2 = LOG DR NO. 2-11 DKN03950
0231 CC00 02B8 407 | LDD L DN952 SAVE CONTENTS OF *2311 DKN03960
0233 DC00 02B6 408 | STD L DN942 *WORDS IN CALL PORTION. DKN03970
0235 09F4 409 | XIO 1 DN968-1-D SENSE DR N W/RESET 2-11 DKN03980
0236 E90D 410 | OR 1 DN983-D OR IN SEEK FLAG TO DSW. DKN03990
0237 4C10 024F 411 | BSC L DN460,- BR IF NOT SEEK OR NO ERROR. DKN04000
0239 F10D 412 | EOR 1 DN983-D EXCLUSIVE OR OUT SEEK FLAG. DKN04010
023A 4C28 01D0 413 | BSC L DN350,Z+ BR IF THERE WAS AN ERROR. DKN04020
023C C1FA 414 | LD 1 DN970-D LOAD RD-AFTER-SEEK CHK FLAG DKN04030
023D 4C30 0286 415 | BSC L DN490-1,Z- BRANCH IF NO CHECK NEEDED. DKN04040
023F C101 416 | LD 1 DN978+1-D SEE IF SEEK HAS BEEN CHKD. DKN04050
0240 4C10 0287 417 | BSC L DN490,- BRANCH IF RD HAS BEEN DONE. DKN04060
0242 6975 418 | STX 1 DN952 SET UP BFR ADDR FOR READ. DKN04070
0243 C0D4 419 | LD DN912 SET UP 2ND DKN04080
0244 F1F5 420 | EOR 1 DN968-D * WORD OF 2-11 DKN04090
0245 D073 421 | STO DN952+1 * READ IOCC. DKN04100
0246 0871 422 | XIO DN952 INITIATE READ-AFTER-SEEK. DKN04110
0247 7003 423 | MDX *+3 BRANCH AROUND SEEK 2311 DKN04120
0248 C10D 424 | DN450 LD 1 DN983-D LOAD SEEK FLAG 2311 DKN04130
0249 4828 425 | BSC +Z SKIP IF SEEK NOT NEEDED2311 DKN04140
024A 086D 426 | XIO DN952 OTHERWISE INITIATE SEEK2311 DKN04150
024B C86A 427 | LDD DN942 RESTORE TWO WORDS 2311 DKN04160
024C D86B 428 | STD DN952 *IN CALL PORTION. DKN04170
024D 4C80 00F7 429 | BSC I DN020 RETURN TO INTERRUPT LEVEL. DKN04180
430 | * DKN04190
024F C918 431 | DN460 LDD 1 DN986-D LOAD IOCC OF LAST OPERATION DKN04200
0250 18C3 432 | RTE 3 ADD ONE TO SECTOR NUMBER, DKN04210
0251 80A5 433 | A DN921 *AND 320 TO I/O ADDRESS. DKN04220
0252 18DD 434 | RTE 29 DKN04230
0253 D918 435 | STD 1 DN986-D STO IOCC FOR NEXT OPERATION DKN04240
0254 D400 0002 436 | STO L DNXR2 SET XR2 TO ADDR OF I/O B2-9 DKN04250
0256 C200 437 | LD 2 0 LOAD AND SAVE FIRST DKN04260
0257 D060 438 | STO DN952 *WORD OF I/O BUFFER. DKN04270
0258 C201 439 | LD 2 1 LOAD AND SAVE SECOND DKN04280
0259 D05F 440 | STO DN952+1 *WORD OF I/O BUFFER. DKN04290
025A C125 441 | LD 1 DN993-D LOAD WD CNT FOR NEXT OPER. DKN04300
025B 4808 442 | BSC + SKIP IF POSITIVE. DKN04310
025C 7007 443 | MDX DN470 ALL DONE - BRANCH TO EXIT. DKN04320
025D D200 444 | STO 2 0 STORE WORD COUNT IN BUFFER. DKN04330
025E 4802 445 | BSC C SKIP IF NO SEEK NEEDED. DKN04340
025F D10D 446 | STO 1 DN983-D MAKE SEEK FLAG POSITIVE. DKN04350
0260 C11F 447 | LD 1 DN991-D LOAD AND DKN04360
0261 80B8 448 | A DN933 * INCREMENT WORKING DKN04370
0262 D11F 449 | STO 1 DN991-D * SECTOR ADDRESS. DKN04380
0263 D201 450 | STO 2 1 STORE SECT ADDR IN I/O BUFR DKN04390
0264 C106 451 | DN470 LD 1 DN980-D RESTORE FIRST WORD OF DKN04430
0265 D600 FEC0 452 | STO L2 -320 *LAST I/O BUFFER. DKN04440
0267 C107 453 | LD 1 DN980+1-D RESTORE SECOND WORD OF DKN04450
0268 D600 FEC1 454 | STO L2 -319 *LAST I/O BUFFER. DKN04460
026A 2000 455 | LDS 0 RESET OVERFLOW INDICATOR. DKN04470
026B C84C 456 | LDD DN952 LOAD AND SAVE FIRST TWO DKN04480
026C D906 457 | STD 1 DN980-D *WORDS OF NEW I/O BUFFER. DKN04490
026D C0A7 458 | DN480 LD DN930 RESTORE READ/WRITE DKN04500
026E D113 459 | STO 1 DN985-D *RETRY COUNTER TO 16. DKN04510
026F C118 460 | LD 1 DN986-D SET XR2 TO THE DKN04520
0270 D047 461 | STO DN952 * ADDRESS OF THE DKN04530
0271 6680 02B8 462 | LDX I2 DN952 * DISK BUFFER. DKN04540
0273 C925 463 | LDD 1 DN993-D LOAD WD CNT FOR THIS OPER. DKN04550
0274 4C08 01F9 464 | BSC L DN390,+ BR IF ENTIRE OPERATION DONE DKN04560
0276 D200 465 | STO 2 0 ST WORD CNT IN THE BFR AREA DKN04570
0277 C11F 466 | LD 1 DN991-D SET UP SECTOR ADDRESS DKN04580
0278 D201 467 | STO 2 1 *FOR THIS OPERATION. DKN04590
0279 C10D 468 | LD 1 DN983-D LOAD SEEK FLAG. DKN04600
027A 4C30 02DB 469 | BSC L DN570,Z- BRANCH IF SEEK NECESSARY. DKN04610
027C 09F4 470 | XIO 1 DN968-1-D SENSE DR N W/RESET 2-11 DKN04620
027D 1003 471 | SLA 3 SEE IF DISK N IS BUSY. DKN04630
027E 4810 472 | BSC - SKIP IF DISK N IS BUSY. DKN04640
027F 0918 473 | XIO 1 DN986-D INITIATE NEXT OPERATION. DKN04650
0280 7024 474 | MDX DN520 BR TO SET UP FOR NEXT OPER. DKN04660
475 | * DKN04670
476 | * CONSTANTS AND WORK AREAS. DKN04680
477 | * DKN04690
0281 0022 478 | DN940 DC 2*@TCNT TWICE NO OF RETRIES TO MAKE DKN04700
0282 0500 479 | DN941 DC /0500 WRITE IOCC WORD. DKN04710
480 | * DKN04720
482 | *************************************************** DKN04722
483 | * * DKN04723
484 | *IF A DUMP OPERATION IS REQUIRED, CORE LOCATIONS * DKN04724
485 | * /0284 AND /0285 ARE USED FOR WORD COUNT AND * DKN04725
486 | * SECTOR ADDRESS WHEN WRITING TO THE CORE IMAGE * DKN04726
487 | * BUFFER. THESE LOCATIONS MUST NOT CONTAIN CODE * DKN04727
488 | * WHICH IS EXECUTED IN THAT OPERATION. THUS, THE* DKN04728
489 | * BSS OF 2 WHICH IS SHOWN BELOW MUST RESIDE AT * DKN04729
490 | * THOSE ADDRESSES. * DKN04730
491 | * * DKN04731
492 | *************************************************** DKN04732
0283 7002 494 | MDX *+2 BRANCH AROUND BSS 212 DKN04734
0284 495 | BSS 2 SAVE AREA FOR WC AND SA 212 DKN04735
0286 C11F 496 | LD 1 DN991-D DKN04736
0287 D600 009A 497 | DN490 STO L2 $CYLN SAVE CURRENT ARM POS 2-11 DKN04740
0289 C000 498 | LD * DKN04750
028A D101 499 | STO 1 DN978+1-D DKN04760
028B C113 500 | LD 1 DN985-D LOAD AND DKN04770
028C 908D 501 | S DN933 * DECREMENT DKN04780
028D D113 502 | STO 1 DN985-D RESTORE RETRY COUNTER 212 DKN04796
028E 4C20 02BC 503 | BSC L DN550,Z BRANCH TO TRY AGAIN. DKN04800
0290 C08B 504 | LD DN932 LOAD ERROR CODE. DKN04810
0291 4400 01BE 505 | BSI L DN340 DKN04820
0293 4C20 02BC 506 | BSC L DN550,Z BRANCH TO TRY AGAIN. DKN04830
0295 D10D 507 | STO 1 DN983-D CLEAR SEEK FLAG. DKN04840
0296 1090 508 | DN500 SLT 16 CLEAR EXTENSION. DKN04850
0297 C119 509 | LD 1 DN986+1-D LOAD 2ND WORD OF IOCC. DKN04860
0298 180C 510 | SRA 12 BRANCH IF IOCC AND BUFFER DKN04870
0299 4C20 02AF 511 | BSC L DN530,Z *AREA ALREADY SET UP. DKN04880
029B C1FB 512 | DN510 LD 1 DN976-D LOAD LOGICAL DRIVE NO. 2-11 DKN04886
029C D400 0002 513 | STO L DNXR2 *AND STORE IN XR2 2-11 DKN04888
029E C11F 514 | LD 1 DN991-D LOAD WORKING SECT ADDR 2-11 DKN04890
029F E03A 515 | AND DN954 AND OUT ALL BUT SECTOR NO. DKN04900
02A0 E919 516 | OR 1 DN986+1-D OR IN 2ND WORD OF IOCC. DKN04910
02A1 EE00 009F 517 | OR L2 $ACDE OR IN AREA CODE 2-11 DKN04950
02A3 D119 518 | STO 1 DN986+1-D STORE IN 2ND WORD OF IOCC. DKN04960
02A4 1090 519 | SLT 16 CLEAR EXTENSION. DKN04970
02A5 C124 520 | DN520 LD 1 DN992-D LOAD AND SAVE DKN04980
02A6 D125 521 | STO 1 DN993-D *REMAINING WORD COUNT. DKN04990
02A7 4808 522 | BSC + SKIP IF POSITIVE. DKN05000
02A8 7006 523 | MDX DN530 BR IF OPERATION COMPLETE. DKN05010
02A9 9011 524 | S DN951 SUBTRACT DECIMAL 320. DKN05020
02AA D124 525 | STO 1 DN992-D STORE REMAINING WORD COUNT. DKN05030
02AB 4830 526 | DN525 BSC Z- SKIP IF NOT POSITIVE. DKN05040
02AC 1810 527 | SRA 16 CLEAR ACCUMULATOR. DKN05050
02AD 800C 528 | A DN953 ADD DECIMAL 321. DKN05060
02AE D125 529 | STO 1 DN993-D STORE WORD CNT FOR NEXT OP. DKN05070
02AF 1090 530 | DN530 SLT 16 SHIFT EXTENSION INTO ACC. DKN05080
02B0 E90D 531 | OR 1 DN983-D OR IN SEEK FLAG. DKN05090
02B1 4C01 0140 532 | BSC L DN220,O BRANCH IF CALL PROC. 212 DKN05100
02B3 4C20 0248 533 | BSC L DN450,Z BRANCH IF SEEK IN PROGRESS. DKN05110
02B5 70B7 534 | MDX DN480 BRANCH TO SET UP READ/WRITE DKN05120
535 | * DKN05130
536 | * CONSTANTS AND WORK AREAS. DKN05140
537 | * DKN05150
02B6 538 | DN942 BSS E 2 TWO WORD WORK AREA DKN05160
02B8 539 | DN952 BSS E 2 WORK AREA DKN05170
02BA 0141 540 | DN953 DC 321 1 PLUS NO. WDS PER SECTOR DKN05180
02BB 0140 541 | DN951 DC 320 NO OF WORDS PER SECTOR DKN05190
542 | * DKN05200
02BC 2001 543 | DN550 LDS 1 SET OVERFLOW INDICATOR. DKN05210
02BD 705D 544 | MDX DN610 BRANCH TO SET UP SEEK. DKN05220
545 | * DKN05230
02BE C12A 546 | DN560 LD 1 DN994-D LOAD ADDR OF USERS I/O AREA DKN05240
02BF D118 547 | STO 1 DN986-D STORE IN 1ST WORD OF IOCC. DKN05250
02C0 D0F7 548 | STO DN952 DKN05260
02C1 6680 02B8 549 | LDX I2 DN952 DKN05270
02C3 C200 550 | LD 2 0 LOAD WORD COUNT. DKN05280
02C4 4C08 0135 551 | BSC L DN200,+ BR TO PRE-OP ERR IF NOT +. DKN05290
02C6 D106 552 | STO 1 DN980-D SAVE 1ST WORD OF I/O BUFFER DKN05300
02C7 D124 553 | STO 1 DN992-D SAVE WORD COUNT. DKN05310
02C8 C201 554 | LD 2 1 LOAD AND SAVE SECOND DKN05320
02C9 D107 555 | STO 1 DN980+1-D *WORD OF I/O BUFFER. DKN05330
02CA C112 556 | LD 1 DN984-D LOAD FUNCTION CODE. DKN05340
02CB 1802 557 | SRA 2 SEE IF WRITE IMMEDIATE. DKN05350
02CC 4C08 02E6 558 | BSC L DN580,+ BR IF NOT WRITE IMMEDIATE. DKN05360
02CE C1FB 559 | LD 1 DN976-D LOAD LOGICAL DR NO. 2-11 DKN05364
02CF D400 0002 560 | STO L DNXR2 *AND STORE IN XR2 2-11 DKN05365
02D1 C11F 561 | LD 1 DN991-D LOAD USERS SECTOR ADDRESS. DKN05370
02D2 E007 562 | AND DN954 AND OUT ALL BUT SECTOR NO. DKN05380
02D3 EE00 009A 563 | OR L2 $CYLN OR IN CURRENT ARM POS. 2-11 DKN05390
02D5 D11F 564 | STO 1 DN991-D STORE AS WORKING SCTR ADDR. DKN05400
02D6 74FF 014B 565 | MDX L DN230+1,-1 SET FOR RETURN TO CALL+3. DKN05410
02D8 C0A9 566 | LD DN941 LD 2ND WORD OF WRITE IOCC. DKN05420
02D9 7063 567 | MDX DN630 BRANCH TO SET UP FOR WRITE. DKN05430
568 | * DKN05440
02DA 0007 569 | DN954 DC /0007 MASK TO OBTAIN SCTR NO. DKN05450
570 | * DKN05470
02DB 2001 571 | DN570 LDS 1 SET OVERFLOW INDICATOR. DKN05480
02DC C1FB 572 | LD 1 DN976-D LOAD LOGICAL DR NO. 2-11 DKN05486
02DD D400 0002 573 | STO L DNXR2 *AND STORE IN XR2 2-11 DKN05488
02DF C600 009A 574 | LD L2 $CYLN LOAD CURRENT ARM POS. 2-11 DKN05490
02E1 8079 575 | A DN960 ADD TO IT ONE CYLINDER. DKN05500
02E2 D11F 576 | STO 1 DN991-D STORE AS WORKING SECT ADDR. DKN05510
02E3 C112 577 | LD 1 DN984-D LOAD FUNCTION CODE. DKN05520
02E4 1802 578 | SRA 2 DKN05530
02E5 D1FA 579 | STO 1 DN970-D DKN05540
02E6 C9FA 580 | DN580 LDD 1 DN970-D LOAD FUNCTION CODE 2311 DKN05580
02E7 8073 581 | A DN960 DKN05590
02E8 E072 582 | AND DN960 DKN05600
02E9 D8CE 583 | STD DN952 DKN05610
584 | * DKN05616
585 | * SET UP XR2 WITH ADDR OF DR N DEF CYLN TABLE DKN05618
586 | * DKN05620
02EA 6600 00A4 587 | LDX L2 $DCYL XR2 = BASE DEF CYL TBL 2-11 DKN05622
02EC 7680 02B9 588 | MDX I2 DN952+1 *ADDR. ADD THREE TIMES2-11 DKN05624
02EE 7680 02B9 589 | MDX I2 DN952+1 *THE LOGICAL DRIVE 2-11 DKN05626
02F0 7680 02B9 590 | MDX I2 DN952+1 *NUMBER 2-11 DKN05628
02F2 C069 591 | LD DN961 DKN05630
02F3 1890 592 | SRT 16 DKN05640
02F4 D067 593 | STO DN961 DKN05650
02F5 C11F 594 | LD 1 DN991-D LD WORKING SCTR ADDR DKN05660
02F6 69C2 595 | STX 1 DN952+1 SAVE CONTENTS OF XR1. DKN05670
02F7 6103 596 | LDX 1 3 DKN05680
597 | * DKN05690
598 | * CHECK FOR DEFECTIVE CYLINDERS. DKN05700
599 | * DKN05710
02F8 9200 600 | DN590 S 2 0 SUB A DEFECTIVE CYL LIMIT. DKN05720
02F9 4C28 0300 601 | BSC L DN600,Z+ BR IF NOT DEF CYLN DKN05730
02FB 7408 035C 602 | MDX L DN961,8 COUNTER FOR UNUSED SCTRS DKN05740
02FD 4820 603 | BSC Z DKN05750
02FE 90B9 604 | S DN952 DKN05760
02FF 805B 605 | A DN960 INCREMENT SCTR ADDR BY 8 DKN05770
0300 8200 606 | DN600 A 2 0 ADD THE DEFECTIVE CYL LIMIT DKN05780
0301 7201 607 | MDX 2 1 DKN05790
0302 71FF 608 | MDX 1 -1 DKN05800
0303 70F4 609 | MDX DN590 CHECK NEXT DEFECTIVE ADDR. DKN05810
0304 6580 02B9 610 | LDX I1 DN952+1 RESTORE CONTENTS OF XR1. DKN05820
0306 D11F 611 | STO 1 DN991-D LOAD WORKING SECTOR ADDRESS DKN05830
0307 9054 612 | S DN961 CHECK FOR ADDR ABOVE DKN05840
0308 9059 613 | S DN965 *1600 DKN05850
0309 4C10 0133 614 | BSC L DN190,- BR IF OVERFLOW DKN05860
030B 1090 615 | SLT 16 DKN05870
030C D04F 616 | STO DN961 DKN05880
030D C1FB 617 | LD 1 DN976-D LOAD LOGICAL DRIVE NO. 2-11 DKN05885
030E D400 0002 618 | STO L DNXR2 *AND STORE IN XR2 2-11 DKN05890
0310 C600 0095 619 | LD L2 $FPAD LOAD FILE PROTECT ADDR 2-11 DKN05895
0312 1004 620 | SLA 4 SHIFT OUT DR NO DKN05900
0313 1804 621 | SRA 4 DKN05910
0314 911F 622 | S 1 DN991-D DKN05920
0315 4C08 031B 623 | BSC L DN610,+ BR IF ABOVE FILE PROT ADDR DKN05930
0317 C112 624 | LD 1 DN984-D LOAD FUNCTION CODE. DKN05940
0318 1801 625 | SRA 1 SEE IF FUNCTION IS WRITE. DKN05950
0319 4C04 012F 626 | BSC L DN180,E BRANCH IF FUNCTION IS WRITE DKN05960
627 | * DKN05970
628 | * CHECK TO SEE IF A SEEK IS NECESSARY. DKN05980
629 | * DKN05990
031B 09F4 630 | DN610 XIO 1 DN968-1-D SENSE DR N W/RESET 2-11 DKN05992
031C 1004 631 | SLA 4 HOME BIT TO SIGN 2-11 DKN05994
031D 4828 632 | BSC +Z SKIP IF NOT HOME 2-11 DKN05996
031E 7100 633 | MDX 1 0 SKIP IF PHY DR 0 2-11 DKN05998
031F 7003 634 | MDX DN615 BR TO CHECK FOR SEEK 2-11 DKN06000
0320 1010 635 | SLA 16 PHY DR 0 IS HOME. ZERO 2-11 DKN06002
0321 D600 009A 636 | STO L2 $CYLN *CURRENT ARM POSITION 2-11 DKN06004
0323 C11F 637 | DN615 LD 1 DN991-D LOAD WORKING SECT ADDR 2-11 DKN06006
0324 9600 009A 638 | S L2 $CYLN SUB CURRENT ARM POSITIN2-11 DKN06010
0326 1883 639 | SRT 3 SHIFT IN NO OF CYLS TO SEEK DKN06020
0327 4C18 0335 640 | BSC L DN620,+- BR IF NO SEEK NEEDED DKN06030
641 | * DKN06040
642 | * SEEK DKN06050
643 | * DKN06060
0329 1890 644 | SRT 16 NO OF CYLS INTO EXT 2311 DKN06100
032A E033 645 | AND DN963 AND WITH BIT 13. DKN06110
032B E834 646 | OR DN964 OR IN SEEK IOCC WORD. DKN06120
032C EE00 009F 647 | OR L2 $ACDE OR IN AREA CODE 2-11 DKN06130
032E 18D0 648 | RTE 16 DKN06140
032F 4810 649 | BSC - SKIP IF SEEK TOWARD HOME. DKN06150
0330 7002 650 | MDX *+2 SKIP NEXT TWO INSTRUCTIONS. DKN06160
0331 F02B 651 | EOR DN962 COMPLEMENT NO. CYLINDERS TO DKN06170
0332 902A 652 | S DN962 *BE SOUGHT TO GET POS. NO. DKN06180
0333 D884 653 | STD DN952 STORE IOCC WORDS. DKN06190
0334 C028 654 | LD DN962 LOAD NEGATIVE NUMBER. DKN06230
0335 D10D 655 | DN620 STO 1 DN983-D STORE IN SEEK FLAG DKN06240
0336 4C01 0296 656 | BSC L DN500,O BR IF IN INTERRUPT PROCESS DKN06250
0338 C112 657 | LD 1 DN984-D LOAD FUNCTION CODE. DKN06260
0339 1801 658 | SRA 1 DKN06270
033A 802F 659 | A DN978 DKN06280
033B F09E 660 | EOR DN954 DKN06290
033C 1008 661 | SLA 8 DKN06300
033D D119 662 | DN630 STO 1 DN986+1-D STORE IN 2ND WORD OF IOCC. DKN06310
033E 2001 663 | LDS 1 SET OVERFLOW INDICATOR. DKN06320
033F C124 664 | LD 1 DN992-D LOAD REMAINING WORD COUNT. DKN06330
0340 4C30 029B 665 | BSC L DN510,Z- BR IF OPERATION NOT SEEK. DKN06340
0342 C10D 666 | LD 1 DN983-D LOAD SEEK FLAG. DKN06350
0343 4C18 0140 667 | BSC L DN220,+- BR IF SEEK NOT NECESSARY212 DKN06360
0345 4C20 0140 668 | DN640 BSC L DN220,Z BRANCH IF SEEK NECESSARY. DKN06370
0347 2001 669 | LDS 1 SET OVERFLOW INDICATOR. DKN06380
0348 4C00 026D 670 | BSC L DN480 DKN06390
034A 0000 671 | DN700 DC *-* ENTRY/RETURN ADDR 2-11 DKN06400
034B 6A0B 672 | STX 2 DN720+1 SAVE XR2 2-11 DKN06402
034C 6200 673 | LDX 2 0 SET XR2 TO 0 2-11 DKN06404
034D 4C10 0354 674 | BSC L DN710,- BR IF HOME FILE 2-11 DKN06406
034F E00A 675 | AND DN957 AND WITH /B800 2-11 DKN06408
0350 F009 676 | EOR DN957 EOR WITH /B800 2-11 DKN06410
0351 6204 677 | LDX 2 4 SET XR2 TO 4 2-11 DKN06412
0352 4820 678 | BSC Z SKIP IF 2ND 2311 2-11 DKN06414
0353 72FE 679 | MDX 2 -2 IF 1ST 2311 MAKE XR2=2 2-11 DKN06416
0354 C400 0002 680 | DN710 LD L DNXR2 LOAD XRE VAL TO ACC 2-11 DKN06418
0356 6600 0000 681 | DN720 LDX L2 *-* RESTORE XR2 2-11 DKN06420
0358 4C80 034A 682 | BSC I DN700 RETURN TO MAINLINE 2-11 DKN06422
684 | * DKN06427
685 | * CONSTANTS AND WORK AREAS DKN06428
686 | * DKN06429
687 | * DKN06430
035A B800 688 | DN957 DC /B800 MASK FOR PHY DR DETER 2-11 DKN06437
035B 0008 689 | DN960 DC 8 NO. SECTORS PER CYLINDER . DKN06440
035C 0000 690 | DN961 DC *-* TEMPORARY STORAGE DKN06450
035D FFFF 691 | DN962 DC -1 CONSTANT OF MINUS ONE. DKN06460
035E 692 | BSS E 0 ASSURE EVEN BOUNDARY 2-11 DKN06465
035E 0004 693 | DN963 DC 4 SEEK HOME BIT. DKN06470
035F 0000 694 | DN968 DC *-* 2ND WD SENSE IOCC DR 0 2-11 DKN06475
0360 0400 695 | DN964 DC /0400 SEEK IOCC WORD. DKN06480
0361 0000 696 | DC *-* 2ND WD SENSE IOCC DR 1 2-11 DKN06485
0362 0640 697 | DN965 DC 1600 1+MAX SCTR ADDR DKN06490
0363 0000 698 | DC *-* 2ND WD SENSE IOCC DR 2 2-11 DKN06500
0364 699 | BSS E 0 DKN06510
0364 0000 700 | DN970 DC *-* FUNCTION CODE FOR DRIVE 0 DKN06520
0365 0000 701 | DN976 DC *-* LOG DR = OF HOME FILE 2-11 DKN06530
0366 0000 702 | DC *-* FUNCTION CODE FOR DRIVE 1 DKN06540
0367 0000 703 | DC *-* LOG DR = OF 1ST 2311 2-11 DKN06550
0368 0000 704 | DC *-* FUNCTION CODE FOR DRIVE 2 DKN06560
0369 0000 705 | DC *-* LOG DR = OF 2ND 2311 2-11 DKN06570
036A 0001 706 | DN978 DC 1 DKN06820
036B FFFF 707 | DC -1 CURRENT ARM POSITION - DRIVE 0 DKN06830
036C 0001 708 | DC 1 DKN06840
036D FFFF 709 | DC -1 CURRENT ARM POSITION - DRIVE 1 DKN06850
036E 0001 710 | DC 1 DKN06860
036F FFFF 711 | DC -1 CURRENT ARM POSITION - DRIVE 2 DKN06870
0370 712 | DN980 BSS 6 1ST 2 WDS OF I/O AREA 2-11 DKN06920
0376 0000 713 | DN982 DC *-* ADDR OF USERS ERR SUBR - DRIVE 0 DKN06930
0377 0000 714 | DN983 DC *-* SEEK FLAG - DRIVE 0. DKN06940
0378 0000 715 | DC *-* ADDR OF USERS ERR SUBR - DRIVE 1 DKN06950
0379 0000 716 | DC *-* SEEK FLAG - DRIVE 1. DKN06960
037A 0000 717 | DC *-* ADDR OF USERS ERR SUBR - DRIVE 2 DKN06970
037B 0000 718 | DC *-* SEEK FLAG - DRIVE 2. DKN06980
037C 0000 719 | DN984 DC *-* FUNCTION CODE - DRIVE 0. DKN07030
037D 0032 720 | DN985 DC 50 READ/WRITE RETRY CTR - DRIVE 0. DKN07040
037E 0000 721 | DC *-* FUNCTION CODE - DRIVE 1. DKN07050
037F 0032 722 | DC 50 READ/WRITE RETRY CTR - DRIVE 1. DKN07060
0380 0000 723 | DC *-* FUNCTION CODE - DRIVE 2. DKN07070
0381 0032 724 | DC 50 READ/WRITE RETRY CTR - DRIVE 2. DKN07080
0382 725 | DN986 BSS 6 IOCC FOR NEXT OPER. 2-11 DKN07130
0388 0000 726 | DN990 DC *-* ORIGINAL SECTOR ADDR - DRIVE 0. DKN07140
0389 0000 727 | DN991 DC *-* WORKING SECTOR ADDRESS - DRIVE 0 DKN07150
038A 0000 728 | DC *-* ORIGINAL SECTOR ADDR - DRIVE 1. DKN07160
038B 0000 729 | DC *-* WORKING SECTOR ADDRESS - DRIVE 1 DKN07170
038C 0000 730 | DC *-* ORIGINAL SECTOR ADDR - DRIVE 2. DKN07180
038D 0000 731 | DC *-* WORKING SECTOR ADDRESS - DRIVE 2 DKN07190
038E 0000 732 | DN992 DC *-* INTERMEDIATE WORD CNT - DRIVE 0. DKN07240
038F 0000 733 | DN993 DC *-* WORD COUNT FOR NEXT OP - DRIVE 0 DKN07250
0390 0000 734 | DC *-* INTERMEDIATE WORD CNT - DRIVE 1. DKN07260
0391 0000 735 | DC *-* WORD COUNT FOR NEXT OP - DRIVE 1 DKN07270
0392 0000 736 | DC *-* INTERMEDIATE WORD CNT - DRIVE 2. DKN07280
0393 0000 737 | DC *-* WORD COUNT FOR NEXT OP - DRIVE 2 DKN07290
0394 0000 738 | DN994 DC *-* ADDR OF USERS I/O AREA - DRIVE 0 DKN07340
0395 0064 739 | DN995 DC 100 READBACK CHECK COUNTER - DRIVE 0 DKN07350
0396 0000 740 | DC *-* ADDR OF USERS I/O AREA - DRIVE 1 DKN07360
0397 0064 741 | DC 100 READBACK CHECK COUNTER - DRIVE 1 DKN07370
0398 0000 742 | DC *-* ADDR OF USERS I/O AREA - DRIVE 2 DKN07380
0399 0064 743 | DC 100 READBACK CHECK COUNTER - DRIVE 2 DKN07390
03A2 744 | $NEND EQU /03A2 1 + END OF DISKN 2-11 DKN07440
745 | * DKN07450
039A 746 | BSS $NEND-*-6 PATCH AREA 2-11 DKN07460
747 | * DKN07470
039C 00A0 748 | DC @CIL1 CORE IMAGE LDR-PH 1, PH ID DKN07480
039D 0000 749 | DC *-* CORE ADDRESS DKN07490
039E 0000 750 | DC *-* WORD COUNT DKN07500
039F 0000 751 | DC *-* SECTOR ADDRESS DKN07510
03A0 0000 752 | DC *-* WORD COUNT OF CORE LOAD DKN07520
03A1 0000 753 | DC *-* SCTR ADDR OF CORE LOAD DKN07530
036A 754 | D EQU DN978 DKN07540
0001 755 | DNXR1 EQU /0001 POINT TO XR1 2-9 DKN07550
0002 756 | DNXR2 EQU /0002 POINT TO XR2 2-9 DKN07560
0028 757 | $PRET EQU /0028 DKN07580
0032 758 | $IOCT EQU /0032 DKN07590
0085 759 | $PST2 EQU /0085 DKN07600
00EE 760 | $DBSY EQU /00EE DKN07610
0011 761 | @TCNT EQU /0011 DKN07620
00A0 762 | @CIL1 EQU /00A0 DKN07630
009F 763 | $ACDE EQU /009F DKN07640
009A 764 | $CYLN EQU /009A DKN07650
00A4 765 | $DCYL EQU /00A4 DKN07660
0095 766 | $FPAD EQU /0095 DKN07670
03A2 767 | END DN000 DKN07680
There were no errors in this assembly
Program transfer address = 00F2
=== CROSS REFERENCES ==========================================================
Name Val Defd Referenced
$ACDE 009F 763 119 217 252 517 647
$CYLN 009A 764 497 563 574 636 638
$DBSY 00EE 760 126 180 181 226 282 283 341
$DCYL 00A4 765 587
$FPAD 0095 766 240 619
$IOCT 0032 758 182 280
$NEND 03A2 744 79 81 746
$PRET 0028 757 159
$PST2 0085 759 212 315
'CIL1 00A0 762 748
'TCNT 0011 761 377 478
D 036A 754 153 185 189 191 195 198 229 231 233 236 244 245
246 248 250 254 255 259 261 298 304 305 307 309
318 321 323 325 327 332 351 354 357 360 362 364
369 370 371 387 393 404 405 409 410 412 414 416
420 424 431 435 441 446 447 449 451 453 457 459
460 463 466 468 470 473 496 499 500 502 507 509
512 514 516 518 520 521 525 529 531 546 547 552
553 555 556 559 561 564 572 576 577 579 580 594
611 617 622 624 630 637 655 657 662 664 666
DN000 00F2 84 213 767
DN020 00F7 88 429
DN030 00FC 92 168
DN040 0100 96 160
DN050 010C 107 98 106 235
DN060 0111 111 167
DN070 0112 112 166
DN090 0120 129 188 201
DN100 0122 135 95
DN110 0124 137 85 90 92
DN120 0129 140 136
DN170 012D 151 258
DN180 012F 153 626
DN190 0133 156 614
DN200 0135 157 109 152 218 262 287 551
DN210 013B 164 87
DN220 0140 173 532 667 668
DN230 014A 184 93 158 565
DN235 0152 189 186
DN236 0160 201 190 192
DN240 0161 203 89
DN250 016B 217 115 227
DN255 0178 228 223
DN260 017A 229 174 274
DN270 018B 242 238
DN280 019F 259 373
DN290 01AC 272 284 316 339 394
DN300 01BB 286 256
DN340 01BE 296 310 330 338 505
DN345 01C6 303 300
DN350 01D0 312 413
DN356 01D8 318 313
DN360 01E4 327 388
DN370 01EA 332 326
DN380 01EC 337 156
DN382 01F0 340 317
DN390 01F9 351 464
DN400 0200 356 322
DN410 020F 368 359
DN415 021D 386 358
DN420 0220 392 355
DN430 0222 394 353
DN440 0224 397 203
DN445 0226 399 403
DN446 022C 404 400
DN450 0248 424 333 395 533
DN460 024F 431 320 331 411
DN470 0264 451 443
DN480 026D 458 534 670
DN490 0287 497 415 417
DN500 0296 508 656
DN510 029B 512 665
DN520 02A5 520 474
DN525 02AB 526
DN530 02AF 530 511 523
DN550 02BC 543 503 506
DN560 02BE 546 263
DN570 02DB 571 267 469
DN580 02E6 580 266 558
DN590 02F8 600 609
DN600 0300 606 601
DN610 031B 630 155 544 623
DN615 0323 637 634
DN620 0335 655 640
DN630 033D 662 567
DN640 0345 668
DN700 034A 671 120 219 682
DN710 0354 680 674
DN720 0356 681 672
DN900 012A 144 151
DN901 012B 145 157
DN902 0166 210 86 94 134 154 299
DN903 012C 147 260
DN904 0164 208 196 199 200
DN911 0216 378 286 314
DN912 0218 380 197 398 419
DN914 0163 204 125 179 225 279
DN920 01F6 347 368
DN921 01F7 348 433
DN930 0215 377 303 458
DN931 01F8 349 253
DN932 021C 384 352 504
DN933 021A 382 324 329 356 448 501
DN934 021B 383 301
DN940 0281 478 386 392
DN941 0282 479 366 566
DN942 02B6 538 408 427
DN951 02BB 541 524
DN952 02B8 539 187 407 418 421 422 426 428 438 440 456 461 462
548 549 583 588 589 590 595 604 610 653
DN953 02BA 540 528
DN954 02DA 569 515 562 660
DN957 035A 688 675 676
DN960 035B 689 575 581 582 605
DN961 035C 690 591 593 602 612 616
DN962 035D 691 651 652 654
DN963 035E 693 337 645
DN964 0360 695 646
DN965 0362 697 613
DN968 035F 694 198 254 255 409 420 470 630
DN970 0364 700 189 261 414 579 580
DN976 0365 701 250 305 405 512 559 572 617
DN978 036A 706 191 416 499 659 754
DN980 0370 712 362 364 451 453 457 552 555
DN982 0376 713 153 233 298 309
DN983 0377 714 185 195 410 412 424 446 468 507 531 655 666
DN984 037C 719 236 246 248 259 318 327 351 556 577 624 657
DN985 037D 720 304 323 325 459 500 502
DN986 0382 725 332 360 369 431 435 460 473 509 516 518 547 662
DN990 0388 726 244 370
DN991 0389 727 245 307 371 447 449 466 496 514 561 564 576 594
611 622 637
DN992 038E 732 520 525 553 664
DN993 038F 733 441 463 521 529
DN994 0394 738 231 546
DN995 0395 739 321 354 357 387 393
DNXR1 0001 755 100 173 273
DNXR2 0002 756 249 361 406 436 513 560 573 618 680