IMD 1.16: 2/09/2008 13:45:21 84-93720-03 f72003 listings of hft:ufdc:2 hft:ufdc:2.lst  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIOS4 ME681081702193500810817021935 810817021935#F72003 VOLLISTING OF HFT:UFDC:2   IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIM@jjggg@ o G`k_C# b# }B u[ ]e JRiCCp@<;: F8P@ G;NPCHC C GTqE'ɞ * Cϟx @0DAJL )‘ЀЀΎQBx"  i+ fEB)3 `jmBBI,v  BI,m  @EEFF)D^EF% jH@pOğv g7g4]X] PhV+s=胾c_N GF֞ؾ “@ALS)"$ C k1/j-h p vRw ppwp ki 15 !^\d X %'+Ns愾Q)s ED|{ @$ o O m J K i g. V tsFn`"FED) E`Cnrgy w"N{Rq1H }L2`0tG- Bc (>=0 PROCESS AS AN ERROR 0055 JMP  #(3) SKIPPED IF NOT LOOP ON ERROR MODE 0056 JMP !XIT SKIP OVER THE MESSAGE 0057 LPOOL JUST FOR GOOD MEASURE 0058 !MSG BYTE CR,LF  0059 BYTE 'TEST ##(1) - ',#(2) 0060 !LEN EQU $-!MSG*2 0061 !XIT EQU $ 0062 ENDM 0064 CHECK MACRO 0065  COPY #(2),A FETCH WORD TO TEST 0066 TBIT #(1),A CHECK FOR BIT SET  0067 JT OV,!XIT3 SET, SO PRINT ERROR 0068 JMP !XIT5 ELSE EXIT 0069 !XIT3 TEXT #(3) 0070 IFT #(4,?) 0071  TEXT ' (FATAL ERROR)',CR,LF 0072 JSK FATAL 0073 ENDC  0074 IFF #(4,?) 0075 TEXT ' (SOFT ERROR) ',CR,LF 0076  JSK NONFATAL 0077 ENDC 0078 !XIT5 EQU $ 0079  ENDM 1PAGE 0004 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:30:59.75 ERROR HANDLING S UBROUTINES 0000 0082 NAM FAULT 00000000 0083 FAULT EQU $ 0000 4309 0084  PUSH :40 SAVE REGISTERS 0001 0040 0002 C39D 0020 0085 COPY TECHTEST,Q TECH TEST MODE? 0003 5141 0005 0086 JEQ Q,$+2 NO 0004 9EC3 0048 0087 JMP FLTLOOP YES, DO TEST AGAIN 0005 11C1 0007 0088 JNE A,DOFAULT 0006 9EC4 004B 0089 JMP FLTLESS 0090 *  00000007 0091 DOFAULT EQU $ 0007 C021 0021 0092 COPY BSTAT:1,Q GET STATUS REG 0008 4B01  0093 ADD =1,Q BUMP ERROR COUNT 0009 40FC 0094 SBIT 15,Q TURN ON MSB 000A C421 0021 0095 COPY Q,BSTAT:1 NEW STATUS REG 000B 8020 0020 0096 COPY MODEREG,A ERROR, GET MODE REG 000C 009F 0097 TBIT ACTNFLG1,A TECH TEST ON ERROR? 000D 36C2 0010 0098 JF  OV,NOTECH NO 000E DF91 0020 0099 IMS TECHTEST YES, ENTER TECH TEST MODE 000F 0000 0100  NOP 0010 008F 0101 NOTECH TBIT MODEFLAG,A USE CRT? 0011 36F0 0042 0102 JF OV,FLT2 NO 0012 6070 0103 COPY K,Y YES, DO MSG 18C3 18C7 0104 CALL O:MSG,=CO,XREG,QREG 0026 8020 0020 0105 FLT1 COPY MODEREG,A RESTORE MODE REG 0027 00DF 0106 TBIT MSGFLAG,A EXTENDED MSG? 0028 36C1 002A 0107 JF OV,$+2 NO 0029 FEAD 0057 0108 JSK DUMP YES, PRINT EXTENDED ERROR MESSAGES 002A 00CF 0109 TBIT ALRMFLAG,A RING BELL? 002B 36D6 0042 0110  JF OV,FLT2 NO 003E 9E83 0042 0111 TEXT BEL,BEL 003F 0040 0707 0111+ 0041 0002 0111+ 0112 * 0042 8020 0020 0113 FLT2 COPY MODEREG,A HALT ON ERROR? 0043 00AF 0114  TBIT ACTNFLG2,A 0044 36C1 0046 0115 JF OV,FLT3 NOPE 0045 0E0D 0116 HLT  0117 * 0046 8359 0020 0118 FLT3 COPY TECHTEST,A TECH TEST MODE? 0047 1149 0051 0119 JEQ A,FLTEXIT NO, DO NEXT TEST 0048 6309 0120 FLTLOOP POP YES, DO THE TEST AGAIN 1PAGE 0005 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:31:05.00 ERROR HANDLING SUBROUTINES 0049 0E15 0121  SBIT 1,S SET OVERFLOW FOR ERROR FOUND FLAG 004A 2309 0122 RSK ERROR RETURN (P+1) 004B 6309 0123 FLTLESS POP DO NEXT TEST 004C 2070 0124 COPY K,X  BUMP 004D DC80 0000 0125 IMS 0(X) RETURN ADR 004E 0000 0126 NOP 004F 0E17 0127 RBIT 1,S CLEAR OVERFLOW - NO ERROR FOUND 0050 2309 0128 RSK NORMAL RETURN (P+2) 0129 * 0051 6309 0130 FLTEXIT POP RESTORE REGS 0052 2070 0131 COPY K,X BUMP RETURN ADDRESS 0053 DC80 0000 0132 IMS 0(X) 0054 0000 0133   NOP 0055 0E15 0134 SBIT 1,S FLAG ERROR FOUND 0056 2309 0135 RSK 1PAGE 0006 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:31:05.50 ERROR HANDLING SUBROUTINES 0057  0137 NAM DUMP 00000057 0138 DUMP EQU $ 0057 4309 0139 PUSH :40 0058 0040 0069 9E86 0070 0140 TEXT CR,LF,' ST0=' PRINT STATUS REG ZERO 006A 006B 0D0A 0140+ 006C 2053 006D 5430 006E 3D20 006F 0008 0140+ 0070 A38D 007E 0141 COPY YSAVE,X 0071 808B 000B 0142 HEX UF:ST0(X) 0072 8457 0017 0142+ 0143 * 0092 9E85 0098 0144 TEXT ' ST1=' 0093 0094 2020  0144+ 0095 5354 0096 313D 0097 0006 0144+ 0098 A365 007E 0145 COPY YSAVE,X 0099 808C 000C 0146  HEX UF:ST1(X) 009A 8457 0017 0146+ 0147 * 00B9 9E85 00BF 0148 TEXT ' ST2=' 00BA  00BB 2020 0148+ 00BC 5354 00BD 323D 00BE 0006 0148+ 00BF A33E 007E 0149 COPY YSAVE,X 00C0 808D 000D 0150 HEX UF:ST2(X) 00C1 8457 0017 0150+ 0151 * 00DF 9E86 00E6 0152 TEXT  ' ERR=' 00E0 0001 O:MSG 00E1 00E2 2020 0152+ 00E3 4552 00E4 523D 00E5 0006 0152+ 00E6 A317 007E 0153  COPY YSAVE,X 1PAGE 0007 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:31:17.25 ERROR HANDLING SUBROUTINES 00E7 8096 0016 0154 HEX UF:ERR(X) 00E8 8457 0017 0154+ 0155 * 0106 9E86 010D 0156 TEXT ' UNIT=' 0107 0108 2020 0156+ 0109 554E 010A 4954 010B 3D20 010C 0008 0156+ 010D A38F 011D 0157 COPY YSAVE,X 010E 808B 000B 0158 COPY UF:ST0(X),A 010F 1803 0159  AND =:3,A 0110 0000 0160 HEX A 0111 8457 0017 0160+ 0161 * 0132 9E86 0139 0162 TEXT ' HEAD=' 0133 0134 2020 0162+ 0135 4845 0136 4144 0137 3D20 0138 0008 0162+ 0139 A363 011D 0163 COPY YSAVE,X 013A 808B 000B 0164 COPY UF:ST0(X),A 013B 0E19 0165 SHIFT  A,RO,2 013C 1801 0166 AND =:1,A 013D 0000 0167 HEX A 013E 8457 0017 0167+ 015C 9E83 0160 0168 TEXT CR,LF 015D 015E 0D0A 0168+ 015F 0002 0168+ 0169 * 0160 A33C 011D 0170 COPY YSAVE,X CHECK ERROR CODE 0161 8096 0016 0171 COPY UF:ERR(X),A AND SEE IF ERROR IS REPORTED THERE 0162 18FF 0172 AND =:FF,A MASK MANAGER ERROR CODE 0163 11C1 0165 0173  JNE A,MANGERR MANAGER ERROR 0164 9F90 0175 0174 JMP CHIPOK OTHERWISE A REGULAR CHIP ERROR 0175 * 00000165 0176 MANGERR EQU $ 0165 FF90 0176 0177 JSK FATAL ANY MANAGER ERROR IS FATAL 0178 * 1PAGE 0008 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14  01:31:27.25 ERROR HANDLING SUBROUTINES 0166 0CF0 0179 CLSN =UFDC:REP,A TOO MANY REPEATS 0167 9EB2 01 9A 0180 JMP CHEKNIA 017B 9E9D 0199 0181 TEXT ' PROPER RESPONSE NOT DETECTED FROM BOARD - TIMEOUT',CR,LF 017C 0001 O:MSG 017D 017E 2050 0181+ 017F 524F 0180 5045 0181 5220 0182 5245 0183 5350 0184 4F4E 0185 5345 0186 204E 0187 4F54 0188 2044 0189 4554 018A 4543 018B 5445 018C 4420 018D 4652 018E 4F4D 018F 2042 0190 4F41 0191 5244 0192 202D 0193 2054 0194 494D 0195 454F 0196 5554 0197 0D0A 0198 0034 0181+ 0199 9F8F 01A9 0182 JMP DOBITS 0183 * 019A 0CF1 0184 CHEKNIA CLSN =UFDC:NIA,A NO INTERRUPT IN TIME 019B 9EAD 01C9 0185 JMP UNKNOWN 01AE 9E99 01C8 0186 TEXT ' NO INTERRUPT FROM BOARD WITHIN ALLOTED TIME',CR,LF 01AF 01B0 204E 0186+ 01B1 4F20 01B2 494E 01B3 5445 01B4 5252 1PAGE 0009 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:31:31.50 ERROR HANDLING SUBROUTINES 01B5 5550 01B6 5420 01B7 4652 01B8 4F4D 01B9 2042 01BA 4F41 01BB 5244 01BC 2057 01BD 4954 01BE 4849 01BF 4E20 01C0 414C 01C1 4C4F 01C2 5445 01C3 4420 01C4 5449 01C5 4D45 01C6 0D0A 01C7 002E 0186+ 01C8 9F60 01A9 0187 JMP DOBITS 0188 * 01DA 9E9B 01F6 0189 UNKNOWN TEXT ' UNKNOWN ERROR CODE RETURNED FROM ACCESS MANAGER',CR,LF 01DB 01DC 2055 0189+ 01DD 4E4B 01DE 4E4F 01DF 574E 01E0 2045 01E1 5252 01E2 4F52 01E3 2043 01E4 4F44 01E5 4520 01E6 5245 01E7 5455 01E8 524E 01E9 4544 01EA 2046 01EB 524F 01EC 4D20 01ED 4143 01EE 4345 01EF 5353 1PAGE 0010 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000)  1981/08/14 01:31:33.75 ERROR HANDLING SUBROUTINES 01F0 204D 01F1 414E 01F2 4147 01F3 4552 01F4 0D0A 01F5 0032 0189+ 01F6 9F32 01A9 0190 JMP DOBITS 0191 * 01F7 A394 020C 0192 CHIPOK COPY YSAVE,X 01F8 808B 000B 0193 COPY UF:ST0(X),A GET ST0 01F9 18C0 0194 AND =:C0,A MASK ERROR BITS 01FA 1176 0231 0195 JEQ A,NORMSTS 01FB 0C80 0196 CLSN =:80,A 01FC 9EFE 027B 0197  JMP INVCMD INVALID COMMAND 01FD 0C40 0198 CLSN =:40,A 01FE 9EDA 0259 0199 JMP ABNORMAL ABNORMAL TERMINATION 0200 * 0212 9E9C 022F 0201 TEXT ' ABNORMAL TERMINATION - READY LINE CHANGED STATE',CR,LF 0213 0001 O:MSG 0214 0215 2041 0201+ 0216 424E 0217 4F52 0218 4D41 0219 4C20  021A 5445 021B 524D 021C 494E 021D 4154 021E 494F 021F 4E20 0220 2D20 0221 5245 0222 4144 0223 5920 0224 4C49 0225 4E45 0226 2043 0227 4841 0228 4E47 0229 4544 022A 2053 022B 5441 1PAGE 0011 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:31:36.50 ERROR HANDLING SUBROUTINES 022C 5445 022D 0D0A 022E 0032 0201+ 022F FF8E 023E 0202 JSK FATAL THIS IS A FATAL TYPE ERROR 0230 9EF4 02A5 0203 JMP DOBITS 0204 * 0243 9E93 0257 0205 NORMSTS TEXT ' MISCELLANEOUS OR UNKNOWN ERROR ',CR,LF 0244 0245 204D 0205+ 0246 4953 0247 4345 0248 4C4C 0249 414E 024A 454F 024B 5553 024C 204F 024D 5220 024E 554E 024F 4B4E 0250 4F57 0251 4E20 0252  4552 0253 524F 0254 5220 0255 0D0A 0256 0022 0205+ 0257 FF8F 0267 0206 JSK NONFATAL FATAL ERRORS WILL BE CAUGHT ELSEWHERE 0258 9ECC 02A5 0207 JMP DOBITS 0208 * 026B 9E8E 027A 0209 ABNORMAL TEXT ' ABNORMAL TERMINATION ',CR,LF 026C 026D 2041 0209+ 026E 424E 026F 4F52 0270 4D41 0271 4C20 0272 5445  0273 524D 0274 494E 0275 4154 0276 494F 0277 4E20 0278 0D0A 1PAGE 0012 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:31:41.00 ERROR HANDLING SUBROUTINES 0279 0018 0209+ 027A 9EAA 02A5 0210 JMP DOBITS 0211 * 028B 9E98 02A4 0212 INVCMD TEXT ' IC - INVALID COMMAND WAS SENT TO FDC CHIP',CR,LF 028C 028D 2049 0212+ 028E 4320 028F 2D20 0290 494E 0291 5641 0292 4C49 0293 4420 0294 434F 0295 4D4D 0296 414E 0297 4420 0298 5741 0299 5320 029A 5345 029B 4E54 029C 2054 029D 4F20 029E 4644 029F 4320 02A0 4348 02A1 4950 02A2 0D0A 02A3 002C 0212+ 02A4 FF19 023E 0213 JSK FATAL THIS IS REALLY BAD NEWS 0214 *  000002A5 0215 DOBITS EQU $ TELL WHAT EACH OF THE OTHER BITS MEANS 02A5 A391 02B7 0216 COPY  YSAVE,X 02A6 808B 000B 0217 CHECK 5,UF:ST0(X),' SE - SEEK END',FATAL 02A7 005F 0217+ 02A8 3641 02AA 0217+ 02A9 9EB9 02E3 0217+ 02BC 9E8A 02C7 0217+ 02BD 0001 O:MSG 02BE 02BF 2053 0217+ 02C0 4520 02C1 2D20 02C2 5345 1PAGE 0013 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:31:45.50 ERROR HANDLING SUBROUTINES 02C3 454B 02C4 2045 02C5 4E44 02C6 000E 0217+ 02D7 9E8A 02E2 0217+ 02D8 02D9 2028 0217+ 02DA 4641 02DB 5441 02DC 4C20 02DD 4552 02DE 524F 02DF 5229 02E0 0D0A 02E1 0010 0217+ 02E2 FF92 02F5 0217+ 02E3 A353 02B7 0218  COPY YSAVE,X 02E4 808B 000B 0219 CHECK 4,UF:ST0(X),' EC - EQUIPMENT CHECK',FATAL 02E5 004F 0219+ 02E6 3641 02E8 0219+ 02E7 9EBD 0325 0219+ 02FB 9E8D 0309 0219+ 02FC 02FD 2045 0219+ 02FE 4320 02FF 2D20 0300 4551  0301 5549 0302 504D 0303 454E 0304 5420 0305 4348 0306 4543 0307 4B20 0308 0016 0219+ 0319 9E8A 0324 0219+ 031A 031B 2028 0219+ 031C 4641 031D 5441 031E 4C20 031F 4552 0320 524F 1PAGE 0014 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:31:51.50 ERROR HANDLING SUBROUTINES 0321 5229 0322 0D0A 0323 0010 0219+ 0324 FF50 02F5 0219+ 0325 A311 02B7 0220 COPY YSAVE,X 0326 808B 000B 0221 CHECK 3,UF:ST0(X),' NR - DRIVE NOT READY',FATAL 0327 003F 0221+ 0328 3641 032A 0221+ 0329 9EBC 0366 0221+ 033B 9E8D 0349 0221+ 033C 033D 204E  0221+ 033E 5220 033F 2D20 0340 4452 0341 4956 0342 4520 0343 4E4F 0344 5420 0345 5245 0346 4144 0347 5920 0348 0016 0221+ 0359 9E8B 0365 0221+ 035A 0001 O:MSG 035B 035C 2028 0221+ 035D 4641 035E 5441 035F 4C20 0360 4552  0361 524F 0362 5229 0363 0D0A 0364 0010 0221+ 0365 FF0F 02F5 0221+ 0223 ***  0224 * 1PAGE 0015 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:31:56.00 ERROR HANDLING SUBROUT INES 0225 * EXPLAIN WHAT ST1 IS ALL ABOUT 0226 * 0227 *** 0366 A391 0378 0228 COPY YSAVE,X 0367 808C 000C 0229 CHECK 7,UF:ST1(X),' EN - END-OF-CYLINDER',FATAL 0368 007F 0229+ 0369 3641 036B 0229+ 036A 9EBD 03A8 0229+ 037E 9E8D 038C 0229+ 037F 0380 2045 0229+ 0381 4E20 0382 2D20 0383 454E 0384 442D 0385 4F46 0386 2D43 0387 594C 0388 494E 0389 4445 038A 5220 038B 0016 0229+ 039C 9E8A 03A7 0229+ 039D 039E 2028 0229+ 039F 4641 03A0 5441 03A1 4C20 03A2 4552 03A3 524F 03A4 5229 03A5 0D0A 03A6 0010  0229+ 03A7 FF92 03BA 0229+ 03A8 A34F 0378 0230 COPY YSAVE,X 03A9 808C 000C 0231 CHECK 6,UF:ST1(X),' BIT 6 IS HIGH - SHOULD ALWAYS BE LOW',FATAL 03AA 006F 0231+ 03AB 3641 03AD 0231+ 03AC 9EC5 03F2 0231+ 03BF 9E95 03D5 0231+ 03C0 03C1 2042 0231+ 03C2 4954 1PAGE 0016 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:32:02.25 ERROR HANDLING SUBROUTINES 03C3 2036 03C4 2049 03C5 5320 03C6 4849 03C7 4748 03C8 202D 03C9 2053 03CA 484F 03CB 554C 03CC 4420 03CD 414C 03CE 5741 03CF 5953 03D0 2042 03D1 4520 03D2 4C4F 03D3 5720 03D4 0026  0231+ 03E5 9E8B 03F1 0231+ 03E6 0001 O:MSG 03E7 03E8 2028 0231+ 03E9 4641 03EA 5441 03EB 4C20 03EC 4552 03ED 524F 03EE 5229 03EF 0D0A 03F0 0010 0231+ 03F1 FF48 03BA 0231+ 03F2 A305 0378 0232 COPY YSAVE,X 03F3 808C 000C 0233 CHECK 5,UF:ST1(X),' DE - CRC ERROR (ERROR IN DISK READ)' 03F4 005F 0233+ 03F5 3641 03F7 0233+ 03F6 9EC3 043A 0233+ 0409 9E94 041E 0233+ 040A 040B 2044 0233+ 040C 4520 040D 2D20 040E 4352 040F 4320 1PAGE 0017 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:32:06.75 ERROR HANDLING SUBROUTINES 0410 4552 0411 524F 0412 5220 0413 2845 0414 5252 0415 4F52 0416 2049 0417 4E20 0418 4449 0419 534B 041A 2052 041B 4541 041C 4429 041D 0024 0233+ 042E 9E8A 0439 0233+ 042F 0430 2028 0233+ 0431 534F 0432 4654 0433 2045 0434 5252 0435 4F52 0436 2920 0437 0D0A 0438 0010 0233+ 0439 FF93 044D 0233+ 043A A391 044C 0234 COPY YSAVE,X 043B 808C 000C 0235 CHECK 4,UF:ST1(X),' OR - OVER-RUN ERROR OR DMA INTO UN-INSTALLED RAM',F 043C 004F 0235+ 043D 3641 043F 0235+ 043E 9ECC 048B 0235+ 0452 9E9B 046E 0235+ 0453 0454 204F 0235+ 0455 5220 0456 2D20 0457 4F56 0458 4552 0459 2D52 045A 554E 045B 2045 045C 5252 045D 4F52 1PAGE 0018 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:32:11.00 ERROR HANDLING SUBROUTINES 045E 204F 045F 5220 0460 444D 0461 4120 0462 494E 0463 544F 0464 2055 0465 4E2D 0466 494E 0467 5354 0468 414C 0469 4C45 046A 4420 046B 5241 046C 4D20 046D 0032 0235+ 047E 9E8B 048A 0235+ 047F 0001 O:MSG 0480 0481 2028 0235+ 0482 4641 0483 5441 0484 4C20 0485 4552 0486 524F 0487 5229 0488 0D0A 0489 0010 0235+ 048A FF92 049D 0235+ 048B A340 044C 0236 COPY YSAVE,X 048C 808C 000C 0237  CHECK 3,UF:ST1(X),' BIT 3 IS HIGH - SHOULD ALWAYS BE LOW',FATAL 048D 003F 0237+ 048E 3641 0490 0237+ 048F 9E C5 04D5 0237+ 04A3 9E95 04B9 0237+ 04A4 04A5 2042 0237+ 04A6 4954 04A7 2033 04A8 2049 04A9 5320 04AA 4849 04AB 4748 1PAGE 0019 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:32:15.50 ERROR HANDLING SUBROUTINES 04AC 202D 04AD 2053 04AE 484F 04AF 554C 04B0 4420 04B1 414C 04B2 5741 04B3 5953 04B4 2042 04B5 4520 04B6 4C4F 04B7 5720 04B8 0026 0237+ 04C9 9E8A 04D4 0237+ 04CA 04CB 2028 0237+ 04CC 4641 04CD 5441 04CE 4C20 04CF 4552 04D0 524F 04D1 5229 04D2 0D0A 04D3 0010 0237+ 04D4 FF48 049D 0237+ 04D5 A391 04E7 0238 COPY YSAVE,X 04D6 808C 000C 0239 CHECK 2,UF:ST1(X),' ND - CANNOT FIND DESIRED SECTOR' 04D7 002F 0239+ 04D8 3641 04DA 0239+  04D9 9EC2 051C 0239+ 04EC 9E92 04FF 0239+ 04ED 04EE 204E 0239+ 04EF 4420 04F0 2D20 04F1 4341 04F2 4E4E 04F3 4F54 04F4 2046 04F5 494E 04F6 4420 04F7 4445 04F8 5349 1PAGE 0020 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:32:19.75 ERROR HANDLING SUBROUTINES 04F9 5245 04FA 4420 04FB 5345 04FC 4354 04FD 4F52 04FE 0020 0239+ 050F 9E8B 051B 0239+ 0510 0001 O:MSG 0511 0512 2028 0239+ 0513 534F 0514 4654 0515 2045 0516 5252 0517 4F52 0518 2920 0519 0D0A 051A 0010 0239+ 051B FF92 052E 0239+ 051C A34A 04E7 0240 COPY YSAVE,X 051D 808C 000C 0241 CHECK 1,UF:ST1(X),' NW - DRIVE IS WRITE PROTECTED',FATAL 051E 001F 0241+ 051F 3641 0521 0241+ 0520 9EC1 0562 0241+ 0534 9E91 0546 0241+ 0535 0536 204E 0241+ 0537 5720 0538 2D20 0539 4452 053A 4956 053B 4520 053C 4953 053D 2057 053E 5249 053F 5445 0540 2050 0541 524F 0542 5445 0543 4354 0544 4544 0545 001E 0241+ 0556 9E8A 0561 0241+ 1PAGE 0021 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:32:26.00 ERROR HANDLING SUBROUTINES 0557 0558 2028 0241+ 0559 4641 055A 5441 055B 4C20 055C 4552 055D 524F 055E 5229 055F 0D0A 0560 0010  0241+ 0561 FF92 0574 0241+ 0562 A304 04E7 0242 COPY YSAVE,X 0563 808C 000C 0243 CHECK 0,UF:ST1(X),' MA - MISSING ADDRESS MARK' 0564 000F 0243+ 0565 3641 0567 0243+ 0566 9EBF 05A6 0243+ 0579 9E8F 0589 0243+  057A 057B 204D 0243+ 057C 4120 057D 2D20 057E 4D49 057F 5353 0580 494E 0581 4720 0582 4144 0583 4452 0584 4553  0585 5320 0586 4D41 0587 524B 0588 001A 0243+ 0599 9E8B 05A5 0243+ 059A 0001 O:MSG 059B 059C 2028 0243+ 059D 534F 059E 4654 059F 2045 05A0 5252 05A1 4F52 05A2 2920 05A3 0D0A 1PAGE 0022 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:32:30.50 ERROR HANDLING SUBROUTINES 05A4 0010 0243+ 05A5 FF08 052E 0243+  0245 *** 0246 * 0247 * EXPLAIN WHAT ST2 IS ALL ABOUT 0248 *  0249 *** 05A6 A391 05B8 0250 COPY YSAVE,X 05A7 808D 000D 0251 CHECK 7,UF:ST2(X),' BIT 7 IS HIGH - SHOULD ALWAYS BE LOW',FATAL 05A8 007F 0251+ 05A9 3641 05AB 0251+ 05AA 9EC5 05F0 0251+ 05BE 9E95 05D4 0251+ 05BF 05C0 2042 0251+ 05C1 4954 05C2 2037 05C3 2049 05C4 5320 05C5 4849 05C6 4748 05C7 202D 05C8 2053   05C9 484F 05CA 554C 05CB 4420 05CC 414C 05CD 5741 05CE 5953 05CF 2042 05D0 4520 05D1 4C4F 05D2 5720 05D3 0026 0251+ 05E4 9E8A 05EF 0251+ 05E5 05E6 2028 0251+ 05E7 4641 1PAGE 0023 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:32:34.75 ERROR HANDLING SUBROUTINES 05E8 5441 05E9 4C20 05EA 4552 05EB 524F 05EC 5229 05ED 0D0A  05EE 0010 0251+ 05EF FF04 0574 0251+ 05F0 A347 05B8 0252 COPY YSAVE,X 05F1 808D 000D 0253 CHECK 6,UF:ST2(X),' CM - DELETED DATA ADDRESS MARK FOUND' 05F2 006F 0253+ 05F3 3641 05F5 0253+ 05F4 9EC4 0639 0253+ 0606 9E95 061C 0253+ 0607 0608 2043 0253+ 0609 4D20 060A 2D20 060B 4445 060C 4C45 060D 5445 060E 4420 060F 4441 0610 5441 0611 2041 0612 4444 0613 5245 0614 5353 0615 204D 0616 4152 0617 4B20 0618 464F 0619 554E 061A 4420 061B 0026 0253+ 062C 9E8B 0638 0253+ 062D 0001 O:MSG 062E 062F 2028 0253+ 0630 534F 0631 4654 0632 2045 0633 5252 1PAGE 0024 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:32:39.25 ERROR HANDLING SUBROUTINES 0634 4F52 0635 2920 0636 0D0A 0637 0010 0253+ 0638 FF92 064B 0253+ 0639 A392 064C 0254 COPY YSAVE,X 063A 808D 000D 0255 CHECK 5,UF:ST2(X),' DD - CRC ERROR WAS IN DATA FIELD' 063B 005F 0255+ 063C 3641 063E 0255+ 063D 9EC4 0682 0255+ 0652 9E93 0666 0255+ 0653 0654 2044 0255+ 0655 4420 0656 2D20 0657 4352 0658 4320 0659 4552 065A 524F 065B 5220 065C 5741 065D 5320 065E 494E 065F 2044 0660 4154 0661 4120 0662 4649 0663 454C 0664 4420 0665 0022 0255+ 0676 9E8A 0681 0255+ 0677 0678 2028 0255+ 0679 534F 067A 4654 067B 2045 067C 5252 067D 4F52 067E 2920 067F 0D0A 0680 0010 0255+ 0681 FF49 064B 0255+ 0682 A349 064C 0256 COPY YSAVE,X 1PAGE 0025 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:32:43.75 ERROR HANDLING SUBROUTINES 0683 808D 000D  0257 CHECK 4,UF:ST2(X),' WC - WRONG CYLINDER NUMBER WAS FOUND' 0684 004F 0257+ 0685 3641 0687 0257+ 0686 9EC4 06CB 0257+ 0698 9E95 06AE 0257+ 0699 069A 2057 0257+ 069B 4320 069C 2D20 069D 5752 069E 4F4E 069F 4720 06A0 4359 06A1 4C49 06A2 4E44 06A3 4552 06A4 204E 06A5 554D 06A6 4245 06A7 5220 06A8 5741 06A9 5320 06AA 464F 06AB 554E 06AC 4420 06AD 0026 0257+ 06BE 9E8B 06CA 0257+ 06BF 0001 O:MSG 06C0 06C1 2028 0257+ 06C2 534F 06C3 4654 06C4 2045 06C5 5252 06C6 4F52 06C7 2920 06C8 0D0A 06C9 0010 0257+ 06CA FF00 064B 0257+ 06CB A391 06DD 0258  COPY YSAVE,X 06CC 808D 000D 0259 CHECK 3,UF:ST2(X),' SH - SCAN EQUAL COMMAND FOUND DATA MATCH OK' 06CD 003F 0259+ 06CE 3641 06D0 0259+ 1PAGE 0026 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:32:48.25 ERROR HANDLING SUBROUTINES 06CF 9EC8 0718 0259+ 06E3 9E98 06FC 0259+ 06E4 06E5 2053 0259+ 06E6 4820 06E7 2D20 06E8 5343 06E9 414E 06EA 2045 06EB 5155 06EC 414C 06ED 2043 06EE 4F4D 06EF 4D41 06F0 4E44 06F1 2046 06F2 4F55 06F3 4E44 06F4 2044 06F5 4154 06F6 4120 06F7 4D41 06F8 5443 06F9 4820 06FA 4F4B 06FB 002C 0259+ 070C 9E8A 0717 0259+   070D 070E 2028 0259+ 070F 534F 0710 4654 0711 2045 0712 5252 0713 4F52 0714 2920 0715 0D0A 0716 0010 0259+ 0717 FF92 072A 0259+ 0718 A344 06DD 0260 COPY YSAVE,X 0719 808D 000D 0261 CHECK 2,UF:ST2(X),' SN - SCAN COMMAND DATA PATTERN NOT FOUND' 071A 002F 0261+ 071B 3641 071D 0261+ 071C 9EC7 0764 0261+ 1PAGE 0027 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:32:54.50 ERROR HANDLING SUBROUTINES 072F 9E97 0747 0261+  0730 0731 2053 0261+ 0732 4E20 0733 2D20 0734 5343 0735 414E 0736 2043 0737 4F4D 0738 4D41 0739 4E44 073A 2044  073B 4154 073C 4120 073D 5041 073E 5454 073F 4552 0740 4E20 0741 4E4F 0742 5420 0743 464F 0744 554E 0745 4420 0746 002A 0261+ 0757 9E8B 0763 0261+ 0758 0001 O:MSG 0759 075A 2028 0261+ 075B 534F 075C 4654 075D 2045 075E 5252 075F 4F52 0760 2920 0761 0D0A 0762 0010 0261+ 0763 FF46 072A 0261+ 0764 A391 0776 0262 COPY YSAVE,X 0765 808D 000D 0263 CHECK 1,UF:ST2(X),' BC - BAD CYLINDER FLAG WAS READ',FATAL 0766 001F 0263+ 0767 3641 0769 0263+ 0768 9EC2 07AB 0263+ 077C 9E92 078F 0263+ 1PAGE 0028 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:32:58.75 ERROR HANDLING SUBROUTINES 077D 077E 2042 0263+ 077F 4320 0780 2D20 0781 4241 0782 4420 0783 4359 0784 4C49 0785 4E44 0786 4552 0787 2046 0788 4C41 0789 4720 078A 5741 078B 5320 078C 5245 078D 4144 078E 0020 0263+ 079F 9E8A 07AA 0263+ 07A0 07A1 2028 0263+ 07A2 4641 07A3 5441 07A4 4C20 07A5 4552 07A6 524F 07A7 5229 07A8 0D0A 07A9 0010 0263+ 07AA FF92 07BD 0263+ 07AB A34A 0776 0264 COPY YSAVE,X 07AC 808D 000D 0265 CHECK 0,UF:ST2(X),' MD - CANNOT FIND ADDRESS MARK' 07AD 000F 0265+ 07AE 3641 07B0 0265+ 07AF 9EC1 07F1 0265+ 07C2 9E91 07D4 0265+ 07C3 07C4 204D 0265+ 07C5 4420 07C6 2D20 07C7 4341 07C8 4E4E 07C9 4F54 1PAGE 0029  MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:03.25 ERROR HANDLING SUBROUTINES 07CA 2046 07CB 494E 07CC 4420 07CD 4144 07CE 4452 07CF 4553 07D0 5320 07D1 4D41 07D2 524B 07D3 001E 0265+ 07E4 9E8B 07F0 0265+ 07E5 0001 O:MSG 07E6 07E7 2028 0265+ 07E8 534F 07E9 4654 07EA 2045 07EB 5252 07EC 4F52 07ED 2920 07EE 0D0A 07EF 0010 0265+ 07F0 FF93 0804 0265+ 0267 *** 0268 * 0269 *  TELL ABOUT SECTOR ID INFO 0270 * 0271 *** 07F1 A304 0776 0272 COPY YSAVE,X  WAS LAST COMMAND A S.I.S. 07F2 8095 0015 0273 COPY UF:FC(X),A 07F3 0AF2 0274 SUB =UF:SIS,A 07F4 11C1 07F6 0275 JNE A,NOTSIS 07F5 9F8F 0805 0276 JMP PRTCYL 0277 * 0809 9E8A 0814 0278 NOTSIS TEXT CR,LF,' COMMAND CYL =' 080A 080B 0D0A 0278+ 080C 2043 1PAGE 0030 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:07.75 ERROR HANDLING SUBROUTINES 080D 4F4D 080E 4D41 080F 4E44 0810 2043 0811 594C 0812 203D 0813 0010 0278+ 0814 838C 0821 0279 HEX TRM 0815 8457 0017 0279+   0835 9E8A 0840 0280 TEXT ' RESULT CYL =' 0836 0837 2020 0280+ 0838 2052 0839 4553 083A 554C 083B 5420 083C 4359 083D 4C20 083E 3D20 083F 0010 0280+ 0840 A38D 084E 0281 COPY YSAVE,X 0841 808E 000E 0282 HEX UF:C2(X) 0842 8457 0017 0282+ 0283 * 0861 9E8A 086C 0284 TEXT CR,LF,' COMMAND HEAD=' 0862 0863 0D0A 0284+ 0864 2043 0865 4F4D 0866 4D41 0867 4E44 0868 2048 0869 4541 086A 443D 086B 0010 0284+ 086C A361 084E 0285 COPY YSAVE,X 086D 8081 0001 0286 HEX UF:H(X) 086E 8457 0017 0286+ 088D 9E8B 0899 0287 TEXT ' RESULT HEAD=' 088E 0001 O:MSG 088F 0890 2020 0287+ 0891 2052 1PAGE 0031 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:17.50 ERROR HANDLING SUBROUTINES 0892 4553 0893 554C 0894 5420 0895 4845 0896 4144 0897 3D20 0898 0010 0287+ 0899 A334 084E 0288 COPY YSAVE,X 089A 808F 000F 0289 HEX UF:H2(X) 089B 8457 0017 0289+ 0290 * 08B9 9E8A 08C4 0291  TEXT CR,LF,' COMMAND SEC =' 08BA 08BB 0D0A 0291+ 08BC 2043 08BD 4F4D 08BE 4D41 08BF 4E44 08C0 2053 08C1 4543 08C2 203D 08C3 0010 0291+ 08C4 A309 084E 0292 COPY YSAVE,X 08C5 8082 0002 0293 HEX UF:R(X) 08C6 8457 0017 0293+ 08E5 9E8A 08F0 0294 TEXT ' RESULT SEC =' 08E6 08E7 2020 0294+ 08E8 2052 08E9 4553 08EA 554C 08EB 5420 08EC 5345 08ED 4320 08EE 3D20 08EF 0010 0294+ 08F0 A38D 08FE 0295 COPY  YSAVE,X 08F1 8090 0010 0296 HEX UF:R2(X) 08F2 8457 0017 0296+ 0901 9ED9 095B 0297 JMP DUMPXIT LEAVE 0298 * 0914 9E8B 0920 0299 PRTCYL TEXT CR,LF,' DESIRED CYL =' 0915 0001 O:MSG 1PAGE 0032 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:27.50 ERROR HANDLING SUBROUTINES 0916 0917 0D0A 0299+ 0918 2044 0919 4553 091A 4952 091B 4544 091C 2043 091D 594C 091E 203D 091F 0010 0299+ 0920 838C 092D 0300 HEX TRM 0921 8457 0017 0300+ 0940 9E8A 094B 0301 TEXT ' PRESENT CYL =' 0941 0942 2020 0301+ 0943 2050 0944 5245 0945 5345 0946 4E54 0947 2043 0948 594C 0949 203D 094A 0010 0301+ 094B A332 08FE 0302 COPY YSAVE,X 094C 8093 0013 0303 HEX UF:PCN(X) 094D 8457 0017 0303+  0304 * 096B 9E83 096F 0305 DUMPXIT TEXT CR,LF 096C 096D 0D0A 0305+ 096E 0002 0305+ 096F 8023 0023 0306 COPY BSTAT:3,A CLEAR SOFT ERROR FLAG BIT 0970 00FD 0307 RBIT 15,A 0971 8423 0023 0308 COPY A,BSTAT:3 SO THAT NEXT SOFT FAILURE CAN BUMP COUNTER 0972 6309 0309 POP 0973 2309  0310 RSK RETURN TO CALLER 1PAGE 0033 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:34.75 MAIN LINE 18C3 18C7 0312 DEFINE FDC:0 0974 0002 0313 ENDEF  0974 0315 NAM FDC:0 18C3 18C7 0316 FDC:0 ENTRY 0983 0900 0317 COPY =0,  A CLEAR FATAL/SOFT ERROR COUNTERS 0984 8422 0022 0318 COPY A,BSTAT:2 FATAL ERROR COUNTER 0985 8423 0023 0319 COPY A,BSTAT:3 SOFT ERROR COUNTER 0320 * INITIALIZE THE UFDC 18C3 18C7 0321 CALL FDC:1 0992 1141 0994 0322 JEQ A,$+2 NO ERROR 0993 9F9A 09AE 0323 JMP ALLDONE INIT ERROR 0324 * DO EACH TEST IN THE TEST TABLE (NTESTS WORDS) 0994 2932 0325  COPY =TESTS,X ADR OF TESTS 0995 48F5 0326 COPY =-NTESTS,Q -COUNT OF TESTS 0996 8080 0000 0327 TESTLP COPY 0(X),A GET A TEST 0997 11C1 0999 0328 JNE A,$+2 NOT ZERO, DO TEST 0998 9F96 09AF 0329 JMP TESTED IF ZERO, NO TEST 0999 030A 0330 XNX A 099A 9F7F 099A 0331 JMP *$ SPLATTER TO CORRECT TEST 099B 09A6 0332 WORD TEST:A 099C 09B4 0333 WORD TEST:B 099D 09C0 0334 WORD TEST:C 099E 09CC 0335 WORD TEST:D 099F 09D8 0336 WORD TEST:E 09A0 09E4 0337 WORD TEST:F 09A1 09E4 0338 WORD TEST:G 09A2 09F0 0339 WORD TEST:H 09A3 09FC 0340 WORD TEST:I 09A4 0A08 0341 WORD TEST:J 09A5 0A14 0342 WORD TEST:K 0343 * 18C3 18C7 0344 TEST:A CALL FDC:A 09B3 9EEC 0A20 0345 JMP TESTED 18C3 18C7 0346 TEST:B CALL FDC:B 09BF 9EE0 0A20 0347 JMP TESTED 18C3 18C7 0348 TEST:C CALL FDC:C 09CB 9ED4 0A20 0349 JMP TESTED 18C3 18C7 0350 TEST:D CALL FDC:D 09D7 9EC8 0A20 0351 JMP TESTED 18C3 18C7 0352 TEST:E CALL FDC:E 1PAGE 0034 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:39.00 MAIN LINE 09E3 9EBC 0A20 0353 JMP TESTED 000009E4 0354 TEST:F EQU $ TEST F AND TEST G ARE CURRENTLY THE SAME TEST!! 18C3 18C7 0355 TEST:G CALL FDC:F 09EF 9EB0 0A20 0356 JMP TESTED 18C3 18C7 0357 TEST:H CALL FDC:H 09FB 9EA4 0A20 0358 JMP TESTED 18C3 18C7 0359 TEST:I CALL FDC:I  0A07 9E98 0A20 0360 JMP TESTED 18C3 18C7 0361 TEST:J CALL FDC:J 0A13 9E8C 0A20 0362 JMP TESTED 18C3 18C7 0363 TEST:K CALL FDC:K 0A1F 9E80 0A20 0364 JMP TESTED 0365 * 0A20 2B01 0366 TESTED ADD =1,X POINT TO NEXT TEST 0A21 54C1 0A23 0367 IJNE Q,$+2  0A22 9E81 0A24 0368 JMP ALLDONE 0A23 9F85 0A29 0369 JMP TESTLP 18C3 18C7 0370 ALLDONE  EXIT 1PAGE 0035 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:42.50 INITIALIZE UFDC 18C3 18C7 0372 DEFINE FDC:1 0A2A 0002 0373 ENDEF 0A2A 0375 NAM FDC:1  18C3 18C7 0376 FDC:1 ENTRY 0A39 0800 0377 ERRCODE :FF00 0A3A 0404 0377+ 0A3B 0900 0377  + 0A3C 8798 0A55 0377+ 0A3D 0E1F 0378 ONE1 SIN 2 0A3E 0E87 0379 RBIT 8,S NO INTERRUPTS! 0A3F 0309 0380 UIS 0A40 E291 0A52 0381 COPY =Y1,Y 0A41 E794 0A56 0382 COPY Y,YSAVE 0383 * COMPUTE NUMBER OF BYTES/SECTOR = 128, 256, 512 0A42 C394 0A57 0384 COPY N,Q N= 0, 1, 2 0A43 8294 0A58 0385 COPY =512,A N=2 OR OTHER 0A44 4C00 0386 CLSN Q,=0 0A45 0980 0387 COPY =128,A N=0 0A46 4C01 0388 CLSN Q,=1 0A47 8291 0A59 0389 COPY =256,A N=1 0A48 8791 0A5A 0390 COPY A,NBYTES BYTES/SECTOR  0391 * COMPUTE SECTORS/TRACK AND GAP LENGTH (READ/WRITE) 18C3 18C7 0392 CALL FMT,=0 GET FORMAT PARAMETERS FOR CORRECT DENSITY, ETC 0A5D 1366 0A84 0393 JGE A,VALFMT IF OK 0A5E C286 0A65 0394 ERROR INIT,'INVALID SECTOR SIZE/DENSITY COMBINATION',INITXIT 0A5F 2936 0394+ 0A60 FF82 0A63 0394+ 0A61 9F84 0A66 0394+ 0A62 9EA1 0A84 0394+ 0A63 0000 FAULT 0A64 1AF3 FMT 0A65 0A69 !MSG025F 0A66 0B15 INITXIT 0A67 0A68 0A69 0D0A 0394+ 0A6A 5445 0394+ 0A6B 5354 0A6C 2049 0A6D 4E49 1PAGE 0036 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:44.50 INITIALIZE UFDC 0A6E 5420 0A6F 2D20 0A70 494E 0A71 5641 0A72 4C49 0A73 4420 0A74 5345 0A75 4354 0A76 4F52 0A77 2053 0A78 495A 0A79 452F 0A7A 4445 0A7B 4E53 0A7C 4954 0A7D 5920 0A7E 434F 0A7F 4D42 0A80 494E 0A81 4154 0A82 494F 0A83 4E20 0A84 87B0 0AB5 0395 VALFMT COPY A,SC SECTORS/TRACK 0A85 4E79 0396  SHIFT Q,RO,8 UPPER BYTE IS GPL (1) 0A86 C7AF 0AB6 0397 COPY Q,GPL GAP LENGTH (READ/WRITE)  0A87 E24A 0A52 0398 COPY =Y1,Y SCRATCHPAD #1 0A88 83AE 0AB7 0399 COPY DEVADR,A UFDC DEVICE ADR 0A89 8454 0014 0400 COPY A,UF:DA(Y) STORE DEVICE ADR 0A8A 0901 0401 COPY =UF:INIT,A INITIALIZE UFDC (RESET,SPECIFY) 0A8B 8455 0015 0402 COPY A,UF:FC(Y) FUNCTION CODE  0403 * COMPUTE MODE REGISTER 0A8C 0908 0404 COPY =8,A MODE=RESET 0A8D C03D 003D 0405  COPY INTDIS,Q INTERRUPTS? 0A8E 5146 0A95 0406 JEQ Q,INITDRV NO 0A8F 000C 0407 SBIT 0,A YES, INTDIS=1 0A90 0E3F 0408 SIN 4 NEXT 4 INDIVISIBLE 0A91 0E85 0409 SBIT 8,S ALLOW INTERRUPTS 0A92 0EC5 0410 SBIT 12,S NO EOB INTS 0A93 0ED5 0411 SBIT 13,S NO DATA INTS 0A94 0309 0412 UIS 0A95 C03E 003E 0413 INITDRV COPY DRIVE,Q MINIFLOPPY? 0A96 5142 0A99 0414 JEQ Q,$+3 NO 0A97 001C 0415 SBIT 1,A YES, 5"=1 1PAGE 0037 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:45.75 INITIALIZE UFDC 0A98 004C 0416 SBIT 4,A YES, MOTOR=1 0A99 C03F 003F 0417 COPY STEPIN  V,Q STEP INVERT? 0A9A 5141 0A9C 0418 JEQ Q,$+2 NO 0A9B 002C 0419 SBIT 2,A  YES, STEPINV=1 0A9C 845B 001B 0420 COPY A,UF:MODE(Y) MODE REGISTER 0421 *  0422 * DRIVE TIMING CONSTANTS 0423 * 0A9D C39A 0AB8 0424 COPY SRT,Q SRT USER SPECIFIED 0A9E 5147 0AA6 0425 JEQ Q,SRTMAX IF ZERO USE MAX VALUE 0A9F 4AFF 0426 SUB =1,Q GET INTO RANGE OF 0 -> :(1)F 0AA0 001F 0427 TBIT 1,A MINIFLOPPY??? 0AA1 36C5 0AA7 0428 JF OV,SRT8INCH NOPE, OK AS IS 0AA2 4E0B 0429 ROTATE Q,RO,1 DIVIDE BY 2 0AA3 36C3 0AA7 0430 JF OV,SRT8INCH IF EVEN NUMBER THEN OK 0AA4 4B01 0431 ADD =1,Q ROUND UP 0AA5 51C1 0AA7 0432 JNE Q,SRT8INCH OVERFLOW ON ROUND-UP DID NOT OCCUR 0AA6 490F 0433 SRTMAX COPY =:F,Q FORCE MAX IF OVERFLOW 0AA7 580F 0434 SRT8INCH AND =:F,Q MASK LOWER NIBBLE 0AA8 570F  0435 XOR =:F,Q AND FLIP THE BITS 0AA9 C460 0020 0436 COPY Q,UF:SRT(Y) STEP RATE TIME 0AAA 090F 0437 COPY =15,A 15*16 = 240 MILLISEC 0AAB 8461 0021 0438 COPY A,UF:HUT(Y) HEAD UNLD TIME 0AAC 0919 0439 COPY =25,A 25*2 = 50 MILLISEC 0AAD 8462 0022 0440 COPY A,UF:HLT(Y) HEAD LOAD TIME 0AAE FF8A 0AB9 0441 JSK UFDC 0442 * CHECK FOR ERRORS! RETURN ERROR CODE IN A REG 0AAF 8056 0016 0443 COPY UF:ERR(Y),A GET ERROR CODE 0AB0 C289 0ABA 0444 ERROR INIT,'TIMER SPECIFY COMMAND FAILED',ONE1 0AB1 292A 0444+ 0AB2 FF30 0A63 0444+ 0AB3 9E09 0A3D 0444+ 0AB4 9E9D 0AD2 0444+ 0AB5 0051 SC 0AB6 0052 GPL 0AB7 004D DEVADR 0AB8 0040 SRT 0AB9 0002 UFDC 0ABA 0ABD !MSG0260 0ABB 0ABC 0ABD 0D0A 0444+ 0ABE 5445 0444+ 1PAGE 0038 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:47.25 INITIALIZE UFDC 0ABF 5354 0AC0 2049 0AC1 4E49 0AC2 5420 0AC3 2D20 0AC4 5449 0AC5 4D45 0AC6 5220 0AC7 5350 0AC8 4543 0AC9 4946 0ACA 5920 0ACB 434F 0ACC 4D4D 0ACD 414E 0ACE 4420 0ACF 4641 0AD0 494C 0AD1 4544 0445 * WHICH UNITS NEEDED? 0AD2 4900 0446 COPY =0,Q NONE SO FAR 0AD3 08FC 0447 COPY  =-4,A 0AD4 87A2 0AF7 0448 COPY A,PTR UNITS COUNT 4 0AD5 2941 0449 COPY =UNITS,X  ADR OF UNITS 0AD6 8080 0000 0450 INITLP COPY 0(X),A GET UNIT 0AD7 1145 0ADD 0451 JEQ A,INITSK NOT A UNIT 0AD8 0AFF 0452 SUB =1,A ACTUAL UNIT 0AD9 1803 0453 AND =3,A 0 TO 3 0ADA 0E31 0454 SHIFT A,LO,4 LEFT 1 NYBLE 0ADB 030A 0455 XNX A UNIT NUMBER 0ADC 400C 0456 SBIT 0,Q BIT SET 0ADD 2B01 0457 INITSK ADD  =1,X BUMP ADR 0ADE DF98 0AF7 0458 IMS PTR BUMP COUNT 0ADF 9E76 0AD6 0459 JMP   INITLP REPEAT 0460 * DO TESTS INCLUDE B OR D (UNITS 0,1)? 0AE0 08F5 0461 COPY =-NTESTS,A 0AE1 8795 0AF7 0462 COPY A,PTR TESTS COUNT 0AE2 2932 0463 COPY =TESTS,X  ADR OF TESTS 0AE3 8080 0000 0464 INITEST COPY 0(X),A GET TEST 0AE4 1147 0AEC 0465 JEQ A,INITESK NOT A TEST 0AE5 0C02 0466 CLSN A,=2 TEST B? 0AE6 9E83 0AEA 0467 JMP INITSET YES 0AE7 0C04 0468 CLSN A,=4 TEST D? 1PAGE 0039 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:48.50 INITIALIZE UFDC 0AE8 9E81 0AEA 0469 JMP INITSET YES 0AE9 9E82 0AEC 0470 JMP INITESK NO 0AEA 400C 0471 INITSET SBIT 0,Q UNIT 0 0AEB 401C 0472 SBIT 1,Q UNIT 1 0AEC 2B01 0473 INITESK ADD =1,X BUMP ADR 0AED DF89 0AF7 0474 IMS PTR BUMP COUNT 0AEE 9E74 0AE3 0475 JMP INITEST REPEAT 0476 * ARE ALL REQUIRED UNITS ON LINE? 0AEF 0040 0477 COPY Q,A REQD UNITS 0AF0 9458 0018 0478  AND UF:STAT(Y),A AND WITH ON LINE 0AF1 0045 0479 XOR Q,A EQUAL TO REQD UNITS? 0AF2 C286 0AF9 0480 ERROR INIT,'ALL REQUESTED UNITS ARE NOT READY',ONE1 0AF3 2930 0480+ 0AF4 FF83 0AF8 0480+ 0AF5 9F84 0AFA 0480+ 0AF6 9E9E 0B15 0480+ 0AF7 004E PTR 0AF8 0000 FAULT 0AF9 0AFD !MSG0261 0AFA 0A3D ONE1 0AFB 0AFC 0AFD 0D0A 0480+ 0AFE 5445 0480+ 0AFF 5354 0B00 2049 0B01 4E49 0B02 5420 0B03 2D20 0B04 414C 0B05 4C20 0B06 5245 0B07 5155 0B08 4553 0B09 5445 0B0A 4420 0B0B 554E 0B0C 4954 0B0D 5320 0B0E 4152 0B0F 4520 0B10 4E4F 0B11 5420 1PAGE 0040 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:49.50 INITIALIZE UFDC 0B12 5245 0B13 4144 0B14 5920 0B15 2070 0481 INITXIT COPY K,X 0B16 8482 0002 0482 COPY A,AREG(X) SAVE A REG  18C3 18C7 0483 EXIT 1PAGE 0041 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:50.25 TEST A SEEK 18C3 18C7 0485 DEFINE FDC:A 0B1B 0002 0486 ENDEF 0B1B 0488  NAM FDC:A 18C3 18C7 0489 FDC:A ENTRY 0490 * LOOP OVER UNITS 0B2A 0900 0491  COPY =0,A 0B2B 874B 0AF7 0492 COPY A,PTR UNITS PTR 0B2C 2941 0493 ABEGIN COPY =UNITS,X ADR OF UNITS 0B2D 8349 0AF7 0494 COPY PTR,A GET UNITS PTR 0B2E 030A 0495 XNX A 0B2F 8080 0000 0496 COPY 0(X),A GET UNIT ENTRY 0B30 1141 0B32 0497 JEQ A,$+2 0B31 9E81 0B33 0498 JMP $+2 0B32 9F9C 0B4F 0499 JMP AEND IF UNIT=0 , NO TEST 0B33 0AFF 0500 SUB =1,A 0B34 8795 0B4A 0501 COPY A,UNIT STORE CURRENT UNIT 0502 * LOOP OVER HEADS 0B35 0900 0503 HEADLP AHEAD,HEADA 0B36 8794 0B4B 0503+ 0B37 8393 0B4B 0503+ 0B38  C397 0B50 0503+ 0B39 4C02 0503+ 0B3A 9E83 0B3E 0503+ 0B3B 400A 0503+ 0B3C 9E81 0B3E 0503+ 0B3D 9F93 0B51 0503+ 0B3E 8293 0B52 0504 ERRCODE :0100 0B3F 0404 0504+ 0B40 0900 0504+ 0B41 878A 0B4C 0504+ 18C3 18C7 0505 A0 CALL RECAL 0B55 C285 0B5B 0506 ERROR A,'RECALIBRATE COMMAND FAILED',A0 0B56 2926  0506+ 0B57 FF20 0AF8 0506+ 0B58 9E69 0B42 0506+ 0B59 9E97 0B71 0506+ 0B5A 1B34 RECAL 0B5B 0B5E !MSG0264 0B5C 0B5D 1PAGE 0042 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:52.25 TEST A SEEK 0B5E 0D0A 0506+ 0B5F 5445 0506+ 0B60 5354 0B61 2041 0B62 202D 0B63 2052 0B64 4543 0B65 414C 0B66 4942 0B67 5241 0B68 5445 0B69 2043 0B6A 4F4D 0B6B 4D41 0B6C 4E44 0B6D 2046 0B6E 4149 0B6F 4C45 0B70 4420 0507 * LOOP OVER TRACKS 0B71 2945 0508 ATBEGIN COPY =TRACKS,X ADR OF TRACKS 0B72 8080 0000 0509 COPY 0(X),A L TRACK 0B73 8796 0B8A 0510 COPY A,TRM CURRENT TRACK 0B74 0000 0511 ATLOOP NOP 0B75 8298 0B8E 0512  ERRCODE :0101 0B76 0404 0512+ 0B77 0900 0512+ 0B78 8753 0B4C 0512+ 0513 * SEEK 0B79 E295 0B8F 0514 A1 COPY =Y1,Y SCRATCHPAD #1 0B7A 090C 0515 COPY =UF:SEEK,A SEEK 0B7B 8455 0015 0516 COPY A,UF:FC(Y) FUNCTION CODE 0B7C 834E 0B4B 0517 COPY HEAD,A 0 OR 1  0B7D 8441 0001 0518 COPY A,UF:HD(Y) HEAD ADR 0B7E 834B 0B4A 0519 COPY UNIT,A 0B7F 845C 001C  0520 COPY A,UF:US(Y) UNIT SELECT 0B80 8389 0B8A 0521 COPY TRM,A 0B81 844A 000A 0522  COPY A,UF:NCN(Y) NEW CYL NUMBER 0B82 FF88 0B8B 0523 JSK UFDC 0B83 E788 0B8C 0524 COPY Y,YSAVE 0B84 8056 0016 0525 COPY UF:ERR(Y),A 0B85 C28A 0B90 0526 ERROR A,'SEEK COMMAND FAILED',A1  0B86 291E 0526+ 1PAGE 0043 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:53.50 TEST A SEEK  0B87 FF85 0B8D 0526+ 0B88 9E70 0B79 0526+ 0B89 9E98 0BA2 0526+ 0B8A 004F TRM 0B8B 0002 UFDC 0B8C 0359 YSAVE 0B8D 0000 FAULT 0B8E 0101 0B8F 035B Y1 0B90 0B93 !MSG0265 0B91 0B92 0B93 0D0A 0526+ 0B94 5445 0526+ 0B95 5354 0B96 2041 0B97 202D 0B98 2053 0B99 4545 0B9A 4B20 0B9B 434F 0B9C 4D4D 0B9D 414E 0B9E 4420 0B9F 4641 0BA0 494C 0BA1 4544 0BA2 8290 0BB3 0527 ERRCODE :0102 0BA3 0404 0527+ 0BA4 0900 0527+ 0BA5 8726 0B4C 0527+  0528 * S.I.S. 0BA6 090E 0529 A2 COPY =UF:SIS,A S.I.S 0BA7 8455 0015 0530 COPY A,UF:FC(Y) FUNCTION CODE 0BA8 FF62 0B8B 0531 JSK UFDC 0BA9 E762 0B8C 0532 COPY Y,YSAVE  0533 * CHECK FOR ERRORS! 0BAA 804B 000B 0534 GETERR 0BAB 18C0 0534+ 0BAC 0E71 0534+ 0BAD B456 0016 0534+ 0BAE C285 0BB4 0535 ERROR A,'SENSE INTERRUPT STATUS COMMAND FAILED',A2 0BAF 2930 0535+ 1PAGE 0044 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:54.50 TEST A SEEK 0BB0 FF5C 0B8D 0535+ 0BB1 9 E74 0BA6 0535+ 0BB2 9E9C 0BCF 0535+ 0BB3 0102 0BB4 0BB7 !MSG0266 0BB5 0BB6 0BB7 0D0A 0535+ 0BB8 5445 0535+  0BB9 5354 0BBA 2041 0BBB 202D 0BBC 2053 0BBD 454E 0BBE 5345 0BBF 2049 0BC0 4E54 0BC1 4552 0BC2 5255 0BC3 5054 0BC4 2053 0BC5 5441 0BC6 5455 0BC7 5320 0BC8 434F 0BC9 4D4D 0BCA 414E 0BCB 4420 0BCC 4641 0BCD 494C 0BCE 4544 0BCF 3665 0BF5 0536 JT OV,A3 DONT CHECK CYLS IF SIS FAILED 0BD0 8053 0013 0537 COPY UF:PCN(Y),A PRESENT CYL NUMBER 0BD1 9B38 0B8A 0538 XOR TRM,A =TRACK? 0BD2 C284 0BD7 0539 ERROR A,'CYLINDER NUMBER MISMATCH ON S.I.S. COMMAND',A1 0BD3 2936 0539+ 0BD4 FF38 0B8D 0539+ 0BD5 9E23 0B79 0539+ 0BD6 9E9E 0BF5  0539+ 0BD7 0BDA !MSG0267 0BD8 0BD9 0BDA 0D0A 0539+ 1PAGE 0045 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:55.25 TEST A SEEK 0BDB 5445 0539+ 0BDC 5354 0BDD 2041 0BDE 202D 0BDF 2043 0BE0 594C 0BE1 494E 0BE2 4445 0BE3 5220 0BE4 4E55 0BE5 4D42 0BE6 4552 0BE7 204D 0BE8 4953 0BE9 4D41 0BEA 5443 0BEB 4820 0BEC 4F4E 0BED 2053 0BEE 2E49 0BEF 2E53 0BF0 2E20 0BF1 434F 0BF2 4D4D 0BF3 414E 0BF4 4420 0BF5 8314 0B8A 0540 A3 COPY TRM,A GET TRACK 0BF6 2945 0541 COPY =TRACKS,X ADR OF TRACKS 0BF7 B881 0001 0542 CSK  A,1(X) EQUAL TO H TRACK? 0BF8 9E82 0BFB 0543 JMP $+3 NO, TRY AGAIN 0BF9 0000 0544  NOP 0BFA 9E83 0BFE 0545 JMP ATEND YES, DONE 0BFB DF0E 0B8A 0546 IMS TRM  BUMP TRACK 0BFC 0000 0547 NOP 0BFD 9F93 0C11 0548 JMP ATLOOP REPEAT 0BFE 0000  0549 ATEND NOP 0BFF 8390 0C10 0550 LPHEAD HEADA,AHEAD 0C00 0C01 0550+ 0C01 9E83 0C05 0550+ 0C02 DF8D 0C10 0550+ 0C03 0000 0550+ 0C04 9F8D 0C12 0550+ 0C05 838D 0C13 0551 AEND COPY PTR,A UNIT PTR 1PAGE 0046 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:56.25 TEST A SEEK 0C06 0C03 0552  CLSN A,=3 EQUAL TO MAX VALUE 3? 0C07 9E83 0C0B 0553 JMP AOUT YES, EXIT 0C08 DF8A 0C13 0554 IMS PTR NO, BUMP COUNT 0C09 0000 0555 NOP 0C0A 9F89 0C14 0556 JMP ABEGIN REPEAT 0C0B 0000 0557 AOUT NOP ALL DONE 18C3 18C7 0558 EXIT 1PAGE 0047 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:57.00 TEST B SEEK OVERLAPPED ON UNITS 0 AND 1 18C3 18C7 0560 DEFINE FDC:B 0C15 0002 0561 ENDEF 0C15 0563  NAM FDC:B 18C3 18C7 0564 FDC:B ENTRY 0565 * LOOP OVER HEADS 0C24 0900 0566  HEADLP BHEAD,HEADB 0C25 876A 0C10 0566+ 0C26 8369 0C10 0566+ 0C27 C397 0C3F 0566+ 0C28 4C02 0566+ 0C29 9E83 0C2D 0566+ 0C2A 400A 0566+ 0C2B 9E81 0C2D 0566+ 0C2C 9F93 0C40 0566+ 0C2D 8293 0C41 0567 ERRCODE :0200 0C2E 0404 0567+ 0C2F 0900 0567+ 0C30 878A 0C3B 0567+ 0C31 0900 0568 B0 COPY =0,A 0C32 8789 0C3C  0569 COPY A,UNIT 18C3 18C7 0570 CALL RECAL 0C44 C286 0C4B 0571 ERROR B,'RECALIBRATE COMMAND FAILED - UNIT 0',B0 0C45 292E 0571+ 0C46 FF83 0C4A 0571+ 0C47 9E69 0C31 0571+ 0C48 9E9C 0C65 0571+  0C49 1B34 RECAL 0C4A 0000 FAULT 0C4B 0C4E !MSG026A 0C4C 0C4D 0C4E 0D0A 0571+ 0C4F 5445 0571+ 0C50 5354 0C51 2042 0C52 202D 0C53 2052 0C54 4543 0C55 414C 0C56 4942 1PAGE 0048 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000)  1981/08/14 01:33:58.75 TEST B SEEK OVERLAPPED ON UNITS 0 AND 1 0C57 5241 0C58 5445 0C59 2043 0C5A 4F4D 0C5B 4D41 0C5C 4E44 0C5D 2046 0C5E 4149 0C5F 4C45 0C60 4420 0C61 2D20 0C62 554E 0C63 4954 0C64 2030 0C65 0901 0572 COPY =1,A 0C66 8755 0C3C 0573 COPY A,UNIT 18C3 18C7 0574 CALL RECAL 0C71 C284 0C76 0575 ERROR B,'RECALIBRATE COMMAND FAILED - UNIT 1',B0 0C72 292E 0575+ 0C73 FF56 0C4A 0575+ 0C74 9E3C 0C31 0575+ 0C75 9E9A 0C90 0575+ 0C76 0C79 !MSG026C 0C77 0C78 0C79 0D0A 0575+ 0C7A 5445 0575+ 0C7B 5354 0C7C 2042 0C7D 202D 0C7E 2052 0C7F 4543 0C80 414C 0C81 4942 0C82 5241 0C83 5445 0C84 2043 0C85 4F4D 0C86 4D41 0C87 4E44 0C88 2046 0C89 4149 0C8A 4C45 1PAGE 0049 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:33:59.75 TEST B SEEK OVERLAPPED ON UNITS 0 AND 1 0C8B 4420 0C8C 2D20 0C8D 554E 0C8E 4954 0C8F 2031 0576 * LOOP OVER TRACKS 0C90 2945 0577 BTBEGIN COPY =TRACKS,X ADR OF TRACKS 0C91 8080 0000 0578 COPY 0(X),A L TRACK 0C92 8796 0CA9 0579 COPY A,TRM CURRENT TRACK 0C93 0000 0580 BTLOOP NOP 0C94 8299 0CAE 0581 ERRCODE :0201 0C95 0404 0581+ 0C96 0900 0581+ 0C97 8723 0C3B 0581+ 0582 * SEEK TO UNIT 0 0C98 E291 0CAA 0583 B1 COPY =Y1,Y SCRATCHPAD #1 0C99 090C 0584 COPY =UF:SEEK,A SEEK 0C9A 8455 0015 0585 COPY A,UF:FC(Y) FUNCTION CODE 0C9B 838F 0CAB 0586 COPY HEAD,A  0 OR 1 0C9C 8441 0001 0587 COPY A,UF:HD(Y) HEAD ADR 0C9D 0900 0588 COPY =0,A 0C9E 845C 001C 0589 COPY A,UF:US(Y) UNIT SELECT 0 0C9F 8389 0CA9 0590 COPY TRM,A 0CA0 844A 000A  0591 COPY A,UF:NCN(Y) NEW CYL NUMBER 0CA1 FF8A 0CAC 0592 JSK UFDC 0CA2 E78A 0CAD 0593  COPY Y,YSAVE 0CA3 8056 0016 0594 COPY UF:ERR(Y),A 0CA4 C28A 0CAF 0595 ERROR B,'SEEK COMMAND FAILED - UNIT 0',B1 0CA5 2928 0595+ 0CA6 FF23 0C4A 0595+ 0CA7 9E70 0C98 0595+ 0CA8 9E9D 0CC6 0595+ 0CA9 004F TRM 0CAA 035B Y1 0CAB 0056 HEAD 0CAC 0002 UFDC 0CAD 0359 YSAVE 0CAE 0201 0CAF 0CB2 !MSG026D 0CB0 0CB1 0CB2 0D0A 0595+ 0CB3 5445 0595+ 1PAGE 0050 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:01.25 TEST B SEEK OVERLAPPED ON UNITS 0 AND 1 0CB4 5354 0CB5 2042 0CB6 202D 0CB7 2053 0CB8 4545 0CB9 4B20 0CBA 434F 0CBB 4D4D 0CBC 414E 0CBD 4420 0CBE 4641 0CBF 494C 0CC0 4544 0CC1 202D 0CC2 2055 0CC3 4E49 0CC4 5420 0CC5 3020 0CC6 829B 0CE2 0596   ERRCODE :0202 0CC7 0404 0596+ 0CC8 0900 0596+ 0CC9 8795 0CDF 0596+ 0597 * SEEK TO UNIT 1 0CCA 805B 001B 0598 B2 COPY UF:MODE(Y),A GET MODE REGISTER 0CCB E294 0CE0 0599 COPY =Y2,Y  SCRATCHPAD #2 0CCC 845B 001B 0600 COPY A,UF:MODE(Y) STORE MODE REGISTER 0CCD 8395 0CE3 0601 COPY DEVADR,A 0CCE 8454 0014 0602 COPY A,UF:DA(Y) STORE DEVICE ADR 0CCF 090C 0603 COPY =UF:SEEK,A SEEK 0CD0 8455 0015 0604 COPY A,UF:FC(Y) FUNCTION CODE 0CD1 8359 0CAB 0605 COPY HEAD,A 0 OR 1 0CD2 8441 0001 0606 COPY A,UF:HD(Y) HEAD ADR 0CD3 0901 0607 COPY =1,A 0CD4 845C 001C 0608 COPY A,UF:US(Y) UNIT SELECT 1 0CD5 8353 0CA9 0609 COPY TRM,A 0CD6 844A 000A 0610 COPY A,UF:NCN(Y) NEW CYL NUMBER 0CD7 FF54 0CAC 0611 JSK UFDC 0CD8 E754 0CAD 0612 COPY Y,YSAVE 0CD9 8056 0016 0613 COPY UF:ERR(Y),A 0CDA C289 0CE4 0614 ERROR B,'SEEK COMMAND FAILED - UNIT 1',B2 0CDB 2928 0614+ 0CDC FF84 0CE1 0614+ 0CDD 9E6C 0CCA 0614+ 1PAGE 0051 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:02.50 TEST B SEEK OVERLAPPED ON UNITS 0 AND 1 0CDE 9E9C 0CFB 0614+ 0CDF 0357 TECHTEST 0CE0 039B Y2 0CE1 0000 FAULT 0CE2 0202 0CE3 004D DEVADR 0CE4 0CE7 !MSG026E 0CE5 0CE6 0CE7 0D0A  0614+ 0CE8 5445 0614+ 0CE9 5354 0CEA 2042 0CEB 202D 0CEC 2053 0CED 4545 0CEE 4B20 0CEF 434F 0CF0 4D4D 0CF1 414E 0CF2 4420 0CF3 4641 0CF4 494C 0CF5 4544 0CF6 202D 0CF7 2055 0CF8 4E49 0CF9 5420 0CFA 3120 0CFB 8291 0D0D 0615  ERRCODE :0203 0CFC 0404 0615+ 0CFD 0900 0615+ 0CFE 8760 0CDF 0615+ 0616 * S.I.S. UNIT 0  0CFF E22A 0CAA 0617 B3 COPY =Y1,Y 0D00 090E 0618 COPY =UF:SIS,A S.I.S. 0D01 8455 0015 0619 COPY A,UF:FC(Y) FUNCTION CODE 0D02 FF29 0CAC 0620 JSK UFDC 0D03 E729 0CAD 0621 COPY Y,YSAVE 0622 * CHECK FOR ERRORS! 0D04 804B 000B 0623 GETERR 0D05 18C0 0623+ 0D06 0E71 0623+ 1PAGE 0052 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:03.50 TEST B SEEK OVERLAPPED ON UNITS 0 AND 1 0D07 B456 0016 0623+ 0D08 C285 0D0E 0624 ERROR B,'SENSE INTERRUPT STATUS FAILED - UNIT 0',B3 0D09 2932 0624+ 0D0A FF56 0CE1 0624+ 0D0B 9E73 0CFF 0624+ 0D0C 9E9D 0D2A 0624+ 0D0D 0203 0D0E 0D11 !MSG026F 0D0F 0D10 0D11 0D0A 0624+ 0D12 5445 0624+ 0D13 5354 0D14 2042 0D15 202D 0D16 2053 0D17 454E 0D18 5345 0D19 2049 0D1A 4E54 0D1B 4552 0D1C 5255 0D1D 5054 0D1E 2053 0D1F 5441 0D20 5455 0D21 5320 0D22 4641 0D23 494C 0D24 4544 0D25 202D 0D26 2055 0D27 4E49 0D28 5420 0D29 3020 0D2A 3668 0D53 0625 JT OV,B35 IF SIS FAILED 0D2B 8053 0013 0626 COPY UF:PCN(Y),A PRESENT CYL NUMBER 0D2C 9B85 0D32 0627 XOR TRM,A =TRACK? 0D2D C285 0D33 0628 ERROR B,'CYL NUMBER MISMATCH ON S.I.S. COMMAND - UNIT 0',B3 0D2E 293A 0628+ 0D2 F FF31 0CE1 0628+ 0D30 9E4E 0CFF 0628+ 0D31 9EA1 0D53 0628+ 1PAGE 0053 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:04.25 TEST B SEEK OVERLAPPED ON UNITS 0 AND 1 0D32 004F TRM 0D33 0D36 !MSG0270 0D34 0D35 0D36 0D0A 0628+ 0D37 5445 0628+ 0D38 5354 0D39 2042 0D3A 202D 0D3B 2043 0D3C 594C 0D3D 204E 0D3E 554D 0D3F 4245 0D40 5220 0D41 4D49 0D42 534D 0D43 4154 0D44 4348 0D45 204F 0D46 4E20 0D47 532E 0D48 492E 0D49 532E 0D4A 2043 0D4B 4F4D 0D4C 4D41 0D4D 4E44 0D4E 202D 0D4F 2055 0D50 4E49 0D51 5420 0D52 3020 0D53 8292 0D66 0629 B35 ERRCODE :0204 0D54 0404 0629+ 0D55 0900 0629+ 0D56 8708 0CDF 0629+ 0630 * S.I.S. UNIT 1 0D57 E208 0CE0 0631 B4 COPY =Y2,Y 0D58 090E 0632 COPY =UF:SIS,A S.I.S. 0D59 8455 0015 0633 COPY A,UF:FC(Y) FUNCTION CODE 0D5A FF8C 0D67 0634 JSK UFDC 0D5B E78C 0D68 0635 COPY Y,YSAVE 1PAGE  0054 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:05.25 TEST B SEEK OVERLAPPED ON UNITS 0 AND 1  0636 * CHECK FOR ERRORS! 0D5C 804B 000B 0637 GETERR 0D5D 18C0 0637+ 0D5E 0E71 0637+ 0D5F B456 0016 0637+ 0D60 C288 0D69 0638 ERROR B,'SENSE INTERRUPT STATUS FAILED - UNIT 1',B4 0D61 2932 0638+ 0D62 FF82 0D65 0638+ 0D63 9E73 0D57 0638+ 0D64 9EA0 0D85 0638+ 0D65 0000 FAULT 0D66 0204 0D67 0002 UFDC 0D68 0359 YSAVE 0D69 0D6C !MSG0271 0D6A 0D6B 0D6C 0D0A 0638+ 0D6D 5445 0638+ 0D6E 5354 0D6F 2042 0D70 202D 0D71 2053 0D72 454E 0D73 5345 0D74 2049 0D75 4E54 0D76 4552 0D77 5255 0D78 5054 0D79 2053 0D7A 5441 0D7B 5455 0D7C 5320 0D7D 4641 0D7E 494C 0D7F 4544 0D80 202D 0D81 2055 0D82 4E49 0D83 5420 0D84 3120 0D85 3667 0DAD 0639 JT OV,B5 IS SIS FAILED 1PAGE 0055 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:06.00 TEST B SEEK OVERLAPPED ON UNITS 0 AND 1 0D86 8053 0013 0640 COPY UF:PCN(Y),A PRESENT CYL NUMBER 0D87 9B2A 0D32 0641  XOR TRM,A =TRACK? 0D88 C284 0D8D 0642 ERROR B,'CYL NUMBER MISMATCH ON S.I.S. COMMAND - UNIT 1',B4 0D89 293A 0642+ 0D8A FF5A 0D65 0642+ 0D8B 9E4B 0D57 0642+ 0D8C 9EA0 0DAD 0642+ 0D8D 0D90 !MSG0272 0D8E 0D8F 0D90 0D0A 0642+ 0D91 5445 0642+ 0D92 5354 0D93 2042 0D94 202D 0D95 2043 0D96 594C 0D97 204E 0D98 554D 0D99 4245 0D9A 5220 0D9B 4D49 0D9C 534D 0D9D 4154 0D9E 4348 0D9F 204F 0DA0 4E20 0DA1 532E 0DA2 492E 0DA3 532E 0DA4 2043 0DA5 4F4D 0DA6 4D41 0DA7 4E44 0DA8 202D 0DA9 2055 0DAA 4E49 0DAB 5420 0DAC 3120 0DAD 8304 0D32 0643 B5 COPY  TRM,A GET TRACK 0DAE 2945 0644 COPY =TRACKS,X ADR OF TRACKS 0DAF B881 0001 0645 CSK A,1(X) EQUAL TO H TRACK? 0DB0 9E82 0DB3 0646 JMP $+3 NO, TRY AGAIN 1PAGE 0056 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:07.00 TEST B SEEK OVERLAPPED ON UNITS 0 AND 1 0DB1 0000  0647 NOP 0DB2 9E83 0DB6 0648 JMP BTEND YES, DONE 0DB3 DF8D 0DC1 0649 IMS   TRM BUMP TRACK 0DB4 0000 0650 NOP 0DB5 9F8D 0DC3 0651 JMP BTLOOP REPEAT 0DB6 0000 0652 BTEND NOP 0DB7 838A 0DC2 0653 LPHEAD HEADB,BHEAD 0DB8 0C01 0653+ 0DB9 9E83 0DBD 0653+ 0DBA DF87 0DC2 0653+ 0DBB 0000 0653+ 0DBC 9F87 0DC4 0653+ 18C3 18C7 0654 EXIT 1PAGE 0057 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:07.75 TEST C SEEK AND READ ID 18C3 18C7 0656  DEFINE FDC:C 0DC5 0002 0657 ENDEF 0DC5 0659 NAM FDC:C 18C3 18C7  0660 FDC:C ENTRY 0661 * LOOP OVER UNITS 0DD4 0900 0662 COPY =0,A 0DD5 87A2 0DF8 0663 COPY A,PTR UNITS PTR 0DD6 2941 0664 CBEGIN COPY =UNITS,X ADR OF UNITS 0DD7 83A0 0DF8 0665 COPY PTR,A GET UNITS PTR 0DD8 030A 0666 XNX A 0DD9 8080 0000 0667  COPY 0(X),A GET UNIT ENTRY 0DDA 1141 0DDC 0668 JEQ A,$+2 0DDB 9E81 0DDD 0669 JMP $+2 0DDC 9F9C 0DF9 0670 JMP CEND IF UNIT=0, NO TEST 0DDD 0AFF 0671 SUB =1,A 0DDE 8795 0DF4 0672 COPY A,UNIT STORE CURRENT UNIT 0673 * LOOP OVER HEADS 0DDF 0900 0674 HEADLP CHEAD,HEADC 0DE0 8761 0DC2 0674+ 0DE1 8360 0DC2 0674+ 0DE2 C397 0DFA 0674+ 0DE3 4C02 0674+  0DE4 9E83 0DE8 0674+ 0DE5 400A 0674+ 0DE6 9E81 0DE8 0674+ 0DE7 9F93 0DFB 0674+ 0DE8 8293 0DFC 0675 ERRCODE :0300 0DE9 0404 0675+ 0DEA 0900 0675+ 0DEB 8789 0DF5 0675+ 18C3 18C7 0676 C0 CALL RECAL 0DFF C286 0E06 0677 ERROR C,'RECALIBRATE ERROR',C0 0E00 291C 0677+ 0E01 FF82 0E04 0677+ 0E02 9E69 0DEC 0677+ 0E03 9E93 0E17 0677+ 0E04 0000 FAULT 0E05 1B34 RECAL 0E06 0E09 !MSG0275 0E07 1PAGE 0058 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:09.75 TEST C SEEK AND READ ID 0E08 0E09 0D0A 0677+ 0E0A 5445 0677+ 0E0B 5354 0E0C 2043 0E0D 202D 0E0E 2052 0E0F 4543 0E10 414C 0E11 4942 0E12 5241 0E13 5445 0E14 2045 0E15 5252 0E16 4F52 0678 * LOOP OVER TRACKS 0E17 2945 0679 CTBEGIN COPY =TRACKS,X ADR OF TRACKS 0E18 8080 0000 0680 COPY 0(X),A L TRACK 0E19 8727 0DC1 0681 COPY A,TRM CURRENT TRACK 0E1A 0000 0682 CTLOOP NOP 0E1B 8296 0E32 0683 ERRCODE :0301 0E1C 0404 0683+ 0E1D 0900 0683+ 0E1E 8756 0DF5 0683+ 0684 * SEEK 0E1F E293 0E33 0685 C1 COPY =Y1,Y SCRATCHPAD #1 0E20 090C 0686 COPY =UF:SEEK,A SEEK 0E21 8455 0015 0687 COPY A,UF:FC(Y) FUNCTION CODE 0E22 831F 0DC2 0688 COPY HEAD,A 0 OR 1 0E23 8441 0001 0689 COPY A,UF:HD(Y) HEAD ADR 0E24 834F 0DF4 0690 COPY UNIT,A 0E25 845C 001C 0691 COPY A,UF:US(Y) UNIT SELECT 0E26 831A 0DC1 0692  COPY TRM,A 0E27 844A 000A 0693 COPY A,UF:NCN(Y) NEW CYL NUMBER 0E28 FF87 0E30 0694 JSK  UFDC 0E29 E787 0E31 0695 COPY Y,YSAVE 0E2A 8056 0016 0696 COPY UF:ERR(Y),A 0E2B C288 0E34 0697 ERROR C,'SEEK COMMAND FAILED',C1 0E2C 291E 0697+ 0E2D FF56 0E04 0697+ 0E2E 9E70 0E1F 0697+ 0E2F 9E96 0E46 0697+ 0E30 0002 UFDC 1PAGE 0059 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:11.25 TEST C SEEK AND READ ID 0E31 0359 YSAVE 0E32 0301 0E33 035B Y1 0E34 0E37 !MSG0276 0E35 0E36 0E37 0D0A 0697+ 0E38 5445 0697+ 0E39 5354 0E3A 2043 0E3B 202D 0E3C 2053 0E3D 4545 0E3E 4B20 0E3F 434F 0E40 4D4D 0E41 414E 0E42 4420 0E43 4641 0E44 494C 0E45 4544 0E46 8290 0E57 0698 ERRCODE :0302 0E47 0404 0698+ 0E48 0900 0698+ 0E49 872B 0DF5 0698+ 0699 * S.I.S. 0E4A 090E 0700 C2 COPY =UF:SIS,A S.I.S. 0E4B 8455 0015 0701 COPY A,UF:FC(Y) FUNCTION CODE 0E4C FF63 0E30 0702 JSK UFDC 0E4D E763 0E31 0703  COPY Y,YSAVE 0704 * CHECK FOR ERRORS! 0E4E 804B 000B 0705 GETERR 0E4F 18C0 0705+ 0E50 0E71 0705+ 0E51 B456 0016 0705+ 0E52 C285 0E58 0706 ERROR C,'SENSE INTERRUPT STATUS COMMAND FAILED',C2 0E53 2930 0706+ 0E54 FF2F 0E04 0706+ 0E55 9E74 0E4A 0706+ 0E56 9E9C 0E73 0706+ 0E57 0302 0E58 0E5B !MSG0277 0E59 1PAGE 0060 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:12.25 TEST C SEEK AND READ ID 0E5A  0E5B 0D0A 0706+ 0E5C 5445 0706+ 0E5D 5354 0E5E 2043 0E5F 202D 0E60 2053 0E61 454E 0E62 5345 0E63 2049 0E64 4E54 0E65 4552 0E66 5255 0E67 5054 0E68 2053 0E69 5441 0E6A 5455 0E6B 5320 0E6C 434F 0E6D 4D4D 0E6E 414E 0E6F 4420 0E70 4641 0E71 494C 0E72 4544 0E73 3666 0E9A 0707 JT OV,C25 IF SIS FAILED 0E74 8053 0013 0708  COPY UF:PCN(Y),A PRESENT CYL NUMBER 0E75 9B85 0E7B 0709 XOR TRM,A =TRACK? 0E76 C285 0E7C 0710 ERROR C,'CYLINDER NUMBER MISMATCH ON S.I.S. COMMAND',C2 0E77 2936 0710+ 0E78 FF0B 0E04 0710+ 0E79 9E50 0E4A 0710+ 0E7A 9E9F 0E9A 0710+ 0E7B 004F TRM 0E7C 0E7F !MSG0278 0E7D 0E7E 0E7F 0D0A 0710+ 0E80 5445 0710+ 0E81 5354 0E82 2043 0E83 202D 0E84 2043 1PAGE 0061 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:13.25 TEST C SEEK AND READ ID 0E85 594C 0E86 494E 0E87 4445 0E88 5220 0E89 4E55 0E8A 4D42 0E8B 4552 0E8C 204D 0E8D 4953 0E8E 4D41 0E8F 5443 0E90 4820 0E91 4F4E 0E92 2053 0E93 2E49 0E94 2E53 0E95 2E20 0E96 434F 0E97 4D4D 0E98 414E 0E99 4420 0E9A 829A 0EB5 0711 C25 ERRCODE :0303 0E9B 0404 0711+ 0E9C 0900 0711+ 0E9D 8793 0EB1 0711+  0712 * READ ID 0E9E 0904 0713 C3 COPY =UF:RDID,A READ ID 0E9F 8455 0015 0714 COPY A,UF:FC(Y) FUNCTION CODE 0EA0 8395 0EB6 0715 COPY DENSITY,A 0EA1 845E 001E 0716 COPY  A,UF:MF(Y) DENSITY 0EA2 838F 0EB2 0717 COPY HEAD,A 0EA3 8441 0001 0718 COPY A,UF:HD(Y) HEAD ADR 0EA4 838E 0EB3 0719 COPY UNIT,A 0EA5 845C 001C 0720 COPY A,UF:US(Y) UNIT SELECT 0EA6  FF09 0E30 0721 JSK UFDC 0EA7 E709 0E31 0722 COPY Y,YSAVE 0723 * CHECK FOR ERRORS! 0EA8 804B 000B 0724 GETERR 0EA9 18C0 0724+ 0EAA 0E71 0724+ 0EAB B456 0016 0724+ 0EAC C28A 0EB7  0725 ERROR C,'READ ID COMMAND FAILED',C3 0EAD 2922 0725+ 1PAGE 0062 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:14.25 TEST C SEEK AND READ ID 0EAE FF85 0EB4 0725+ 0EAF 9E6E 0E9E 0725+ 0EB0 9E9A 0ECB 0725+ 0EB1 0357 TECHTEST 0EB2 0056 HEAD 0EB3 0053 UNIT 0EB4 0000 FAULT 0EB5 0303 0EB6 004A DENSITY 0EB7 0EBA !MSG0279 0EB8 0EB9 0EBA 0D0A 0725+ 0EBB 5445 0725+ 0EBC 5354 0EBD 2043 0EBE 202D 0EBF 2052 0EC0 4541 0EC1 4420 0EC2 4944 0EC3 2043 0EC4 4F4D 0EC5 4D41 0EC6 4E44 0EC7 2046 0EC8 4149 0EC9 4C45 0ECA 4420 0ECB 3665 0EF1 0726 JT OV,C35 IF READ ID FAILED 0ECC 804E 000E 0727 COPY UF:C2(Y),A CYL NUMBER 0ECD 9B2D 0E7B 0728 XOR TRM,A =TRACK? 0ECE C284 0ED3 0729 ERROR C,'CYLINDER NUMBER MISMATCH ON READ ID COMMAND',C3 0ECF 2936 0729+ 0ED0 FF63 0EB4 0729+ 0ED1 9E4C 0E9E 0729+ 0ED2 9E9E 0EF1 0729+ 0ED3 0ED6 !MSG027A 0ED4 0ED5 0ED6 0D0A 0729+ 0ED7 5445 0729+ 0ED8 5354 1PAGE 0063 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:15.00 TEST C SEEK AND READ ID 0ED9 2043 0EDA 202D 0EDB 2043 0EDC 594C 0EDD 494E 0EDE 4445 0EDF 5220 0EE0 4E55 0EE1 4D42 0EE2 4552 0EE3 204D 0EE4 4953 0EE5 4D41 0EE6 5443 0EE7 4820 0EE8 4F4E 0EE9 2052 0EEA 4541 0EEB 4420 0EEC 4944 0EED 2043 0EEE 4F4D 0EEF 4D41 0EF0 4E44 0EF1 8309 0E7B 0730 C35 COPY TRM,A GET TRACK 0EF2 2945 0731 COPY =TRACKS,X ADR OF TRACKS 0EF3 B881 0001 0732 CSK A,1(X) EQUAL TO H TRACK? 0EF4 9E82 0EF7 0733 JMP $+3 NO, TRY AGAIN 0EF5 0000 0734 NOP 0EF6 9E83 0EFA 0735 JMP CTEND YES, DONE 0EF7 DF03 0E7B 0736 IMS TRM BUMP TRACK 0EF8 0000  0737 NOP 0EF9 9F92 0F0C 0738 JMP CTLOOP REPEAT 0EFA 0000 0739 CTEND NOP 0EFB 8336 0EB2 0740 LPHEAD HEADC,CHEAD 0EFC 0C01 0740+ 0EFD 9E83 0F01 0740+ 0EFE DF33 0EB2 0740+ 0EFF 0000  0740+ 0F00 9F8C 0F0D 0740+ 0F01 838C 0F0E 0741 CEND COPY PTR,A UNIT PTR 0F02 0C03 0742  CLSN A,=3 EQUAL TO MAX VALUE 3? 0F03 9E83 0F07 0743 JMP COUT YES, EXIT 1PAGE 0064 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:16.25 TEST C SEEK AND READ ID 0F04 DF89 0F0E 0744  IMS PTR NO, BUMP COUNT 0F05 0000 0745 NOP 0F06 9F88 0F0F 0746 JMP CBEGIN REPEAT 0F07 0000 0747 COUT NOP ALL DONE 18C3 18C7 0748 EXIT 1PAGE 0065 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:16.75 TEST D SEEK AND READ ID OVERLAPPED ON UNITS 0 AND 1 18C3 18C7 0750 DEFINE FDC:D 0F10 0002 0751 ENDEF 0F10 0753   NAM FDC:D 18C3 18C7 0754 FDC:D ENTRY 0755 * LOOP OVER HEADS 0F1F 0900 0756  HEADLP DHEAD,HEADD 0F20 8711 0EB2 0756+ 0F21 8310 0EB2 0756+ 0F22 C395 0F38 0756+ 0F23 4C02 0756+ 0F24 9E83 0F28 0756+ 0F25 400A 0756+ 0F26 9E81 0F28 0756+ 0F27 9F91 0F39 0756+ 0F28 8291 0F3A 0757 ERRCODE :0400 0F29 0404 0757+ 0F2A 0900 0757+ 0F2B 8705 0EB1 0757+ 0F2C 0900 0758 D0 COPY =0,A 0F2D 8705 0EB3  0759 COPY A,UNIT 18C3 18C7 0760 CALL RECAL 0F3D C286 0F44 0761 ERROR D,'RECALIBRATE COMMAND FAILED - UNIT 0',D0 0F3E 292E 0761+ 0F3F FF83 0F43 0761+ 0F40 9E6B 0F2C 0761+ 0F41 9E9C 0F5E 0761+ 0F42 1B34 RECAL 0F43 0000 FAULT 0F44 0F47 !MSG027D 0F45 0F46 0F47 0D0A 0761+ 0F48 5445 0761+ 0F49 5354 0F4A 2044 0F4B 202D 0F4C 2052 0F4D 4543 0F4E 414C 0F4F 4942 1PAGE 0066 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:18.50 TEST D SEEK AND READ ID OVERLAPPED ON UNITS 0 AND 1 0F50 5241 0F51 5445 0F52 2043 0F53 4F4D 0F54 4D41 0F55 4E44 0F56 2046 0F57 4149 0F58 4C45 0F59 4420 0F5A 2D20 0F5B 554E 0F5C 4954 0F5D 2030 0F5E 0901 0762  COPY =1,A 0F5F 8788 0F68 0763 COPY A,UNIT 18C3 18C7 0764 CALL RECAL 0F6B C284 0F70 0765 ERROR D,'RECALIBRATE COMMAND FAILED - UNIT 1',D0 0F6C 292E 0765+ 0F6D FF55 0F43 0765+ 0F6E 9E3D 0F2C 0765+ 0F6F 9E9A 0F8A 0765+ 0F70 0F73 !MSG027F 0F71 0F72 0F73 0D0A 0765+ 0F74 5445 0765+ 0F75 5354 0F76 2044 0F77 202D 0F78 2052 0F79 4543 0F7A 414C 0F7B 4942 0F7C 5241 0F7D 5445 0F7E 2043 0F7F 4F4D 0F80 4D41 0F81 4E44 0F82 2046 0F83 4149 0F84 4C45 1PAGE 0067 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:19.75  TEST D SEEK AND READ ID OVERLAPPED ON UNITS 0 AND 1 0F85 4420 0F86 2D20 0F87 554E 0F88 4954 0F89 2031 0766 * LOOP OVER TRACKS 0F8A 2945 0767 DTBEGIN COPY =TRACKS,X ADR OF TRACKS 0F8B 8080 0000 0768 COPY 0(X),A L TRACK 0F8C 8796 0FA3 0769 COPY A,TRM CURRENT TRACK 0F8D 0000 0770 DTLOOP  NOP 0F8E 829A 0FA9 0771 ERRCODE :0401 0F8F 0404 0771+ 0F90 0900 0771+ 0F91 8792 0FA4 0771+  0772 * SEEK TO UNIT 0 0F92 E292 0FA5 0773 D1 COPY =Y1,Y SCRATCHPAD #1 0F93 090C 0774  COPY =UF:SEEK,A SEEK 0F94 8455 0015 0775 COPY A,UF:FC(Y) FUNCTION CODE 0F95 8390 0FA6 0776  COPY HEAD,A 0 OR 1 0F96 8441 0001 0777 COPY A,UF:HD(Y) HEAD ADR 0F97 0900 0778  COPY =0,A 0F98 845C 001C 0779 COPY A,UF:US(Y) UNIT SELECT 0 0F99 8389 0FA3 0780 COPY  TRM,A 0F9A 844A 000A 0781 COPY A,UF:NCN(Y) NEW CYL NUMBER 0F9B FF8B 0FA7 0782 JSK UFDC 0F9C E78B 0FA8 0783 COPY Y,YSAVE 0F9D 8056 0016 0784 COPY UF:ERR(Y),A 0F9E C28B 0FAA 0785  ERROR D,'SEEK COMMAND FAILED - UNIT 0',D1 0F9F 2928 0785+ 0FA0 FF22 0F43 0785+ 0FA1 9E70 0F92 0785+ 0FA2 9E9E 0F C1 0785+ 0FA3 004F TRM 0FA4 0357 TECHTEST 0FA5 035B Y1 0FA6 0056 HEAD 0FA7 0002 UFDC 0FA8 0359 YSAVE 0FA9 0401 0FAA 0FAD !MSG0280 0FAB 0FAC 0FAD 0D0A 0785+ 1PAGE 0068 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:21.00 TEST D SEEK AND READ ID OVERLAPPED ON UNITS 0 AND 1 0FAE 5445 0785+ 0FAF 5354 0FB0 2044 0FB1 202D 0FB2 2053 0FB3 4545 0FB4 4B20 0FB5 434F 0FB6 4D4D 0FB7 414E 0FB8 4420 0FB9 4641 0FBA 494C 0FBB 4544 0FBC 202D 0FBD 2055 0FBE 4E49 0FBF 5420 0FC0 3020 0FC1 829A 0FDC 0786 ERRCODE :0402 0FC2 0404 0786+ 0FC3 0900 0786+ 0FC4 875F 0FA4 0786+ 0787 * SEEK TO UNIT 1 0FC5 805B 001B 0788 D2 COPY UF:MODE(Y),A GET MODE REGISTER 0FC6 E293 0FDA 0789 COPY =Y2,Y SCRATCHPAD #2 0FC7 845B 001B 0790 COPY A,UF:MODE(Y) STORE MODE REGISTER 0FC8 8394 0FDD 0791 COPY DEVADR,A 0FC9 8454 0014 0792 COPY A,UF:DA(Y) STORE DEVICE ADR 0FCA 090C 0793 COPY =UF:SEEK,A SEEK 0FCB 8455 0015 0794 COPY A,UF:FC(Y) FUNCTION CODE 0FCC 8359 0FA6 0795 COPY HEAD,A 0 OR 1 0FCD 8441 0001 0796 COPY A,UF:HD(Y)  HEAD ADR 0FCE 0901 0797 COPY =1,A 0FCF 845C 001C 0798 COPY A,UF:US(Y) UNIT SELECT 1 0FD0 8352 0FA3 0799 COPY TRM,A 0FD1 844A 000A 0800 COPY A,UF:NCN(Y) NEW CYL NUMBER 0FD2 FF54 0FA7 0801 JSK UFDC 0FD3 E754 0FA8 0802 COPY Y,YSAVE 0FD4 8056 0016 0803 COPY UF:ERR(Y),A 0FD5 C288 0FDE 0804 ERROR D,'SEEK COMMAND FAILED - UNIT 1',D2 0FD6 2928 0804+ 0FD7 FF83 0FDB 0804+ 1PAGE 0069 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:22.50 TEST D SEEK AND READ ID OVERLAPPED ON UNITS 0 AND 1 0FD8 9E6C 0FC5 0804+ 0FD9 9E9B 0FF5 0804+ 0FDA 039B Y2 0FDB 0000 FAULT 0FDC 0402 0FDD 004D DEVADR  0FDE 0FE1 !MSG0281 0FDF 0FE0 0FE1 0D0A 0804+ 0FE2 5445 0804+ 0FE3 5354 0FE4 2044 0FE5 202D 0FE6 2053 0FE7 4545 0FE8 4B20 0FE9 434F 0FEA 4D4D 0FEB 414E 0FEC 4420 0FED 4641 0FEE 494C 0FEF 4544 0FF0 202D 0FF1 2055 0FF2 4E49 0FF3 5420 0FF4 3120 0FF5 8291 1007 0805 ERRCODE :0403 0FF6 0404 0805+ 0FF7 0900 0805+ 0FF8 872B 0FA4 0805+ 0806 * S.I.S. UNIT 0 0FF9 E22B 0FA5 0807 D3 COPY =Y1,Y 0FFA 090E 0808 COPY =UF:SIS,A S.I.S. 0FFB 8455 0015 0809 COPY A,UF:FC(Y) FUNCTION CODE 0FFC FF2A 0FA7 0810  JSK UFDC 0FFD E72A 0FA8 0811 COPY Y,YSAVE 0812 * CHECK FOR ERRORS! 0FFE 804B 000B 0813 GETERR 0FFF 18C0 0813+ 1000 0E71 0813+ 1PAGE 0070 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:23.50 TEST D SEEK AND READ ID OVERLAPPED ON UNITS 0 AND 1 1001 B456 0016 0813+ 1002 C285 1008 0814  ERROR D,'SENSE INTERRUPT STATUS COMMAND FAILED - UNIT 0',D3 1003 293A 0814+ 1004 FF56 0FDB 0814+ 1005 9E73 0FF9 0814+ 1006 9EA1 1028 0814+ 1007 0403 1008 100B !MSG0282 1009 100A 100B 0D0A 0814+ 100C 5445 0814+ 1 00D 5354 100E 2044 100F 202D 1010 2053 1011 454E 1012 5345 1013 2049 1014 4E54 1015 4552 1016 5255 1017 5054 1018 2053 1019 5441 101A 5455 101B 5320 101C 434F 101D 4D4D 101E 414E 101F 4420 1020 4641 1021 494C 1022 4544 1023 202D 1024 2055 1025 4E49 1026 5420 1027 3020 1028 3668 1051 0815 JT OV,D35 IF SIS FAILED 1029 8053 0013 0816 COPY UF:PCN(Y),A PRESENT CYL NUMBER 102A 9B85 1030 0817 XOR TRM,A =TRACK? 102B C285 1031 0818 ERROR D,'CYL NUMBER MISMATCH ON S.I.S. COMMAND - UNIT 0',D3 1PAGE 0071 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:24.50 TEST D SEEK AND READ ID OVERLAPPED ON UNITS 0 AND 1 102C 293A 0818+ 102D FF2D 0FDB 0818+ 102E 9E4A 0FF9 0818+ 102F 9EA1 1051 0818+ 1030 004F TRM 1031 1034 !MSG0283 1032 1033 1034 0D0A  0818+ 1035 5445 0818+ 1036 5354 1037 2044 1038 202D 1039 2043 103A 594C 103B 204E 103C 554D 103D 4245 103E 5220 103F 4D49 1040 534D 1041 4154 1042 4348 1043 204F 1044 4E20 1045 532E 1046 492E 1047 532E 1048 2043 1049 4F4D 104A 4D41 104B 4E44 104C 202D 104D 2055 104E 4E49 104F 5420 1050 3020 1051 8295 1067 0819 D35 ERRCODE :0404 1052 0404 0819+ 1053 0900 0819+ 1054 878E 1063 0819+ 0820 * S.I.S. UNIT 1 1055 E204 0FDA 0821 D4  COPY =Y2,Y 1PAGE 0072 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:25.25 TEST D SEEK AND READ ID OVERLAPPED ON UNITS 0 AND 1 1056 090E 0822 COPY =UF:SIS,A S.I.S. 1057 8455 0015 0823  COPY A,UF:FC(Y) FUNCTION CODE 1058 FF8B 1064 0824 JSK UFDC 1059 E78B 1065 0825 COPY Y,YSAVE 0826 * CHECK FOR ERRORS! 105A 804B 000B 0827 GETERR 105B 18C0 0827+ 105C 0E71  0827+ 105D B456 0016 0827+ 105E C289 1068 0828 ERROR D,'SENSE INTERRUPT STATUS COMMAND FAILED - UNIT 1',D4 105F 293A 0828+ 1060 FF85 1066 0828+ 1061 9E73 1055 0828+ 1062 9EA5 1088 0828+ 1063 0357 TECHTEST 1064 0002 UFDC 1065 0359 YSAVE 1066 0000 FAULT 1067 0404 1068 106B !MSG0284 1069 106A 106B 0D0A 0828+ 106C 5445 0828+ 106D 5354 106E 2044 106F 202D 1070 2053 1071 454E 1072 5345 1073 2049 1074 4E54 1075 4552 1076 5255 1077 5054 1078 2053 1079 5441 107A 5455 107B 5320 107C 434F 107D 4D4D 107E 414E 107F 4420 1PAGE 0073 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:26.00 TEST D SEEK AND READ ID OVERLAPPED ON UNITS 0 AND 1 1080 4641 1081 494C 1082 4544 1083 202D 1084 2055 1085 4E49 1086 5420 1087 3120 1088 3667 10B0 0829 JT OV,D45 IF SIS FAILED 1089 K? 108B C284 1090 0832 ERROR D,'CYL NUMBER MISMATCH ON S.I.S. COMMAND - UNIT 1',D4 108C 293A 0832+ 108D FF58 1066 0832+ 108E 9E46 1055 0832+ 108F 9EA0 10B0 0832+ 1090 1093 !MSG0285 1091 1092 1093 0D0A 0832+ 1094 5445  0832+ 1095 5354 1096 2044 1097 202D 1098 2043 1099 594C 109A 204E 109B 554D 109C 4245 109D 5220 109E 4D49 109F  534D 10A0 4154 10A1 4348 10A2 204F 10A3 4E20 10A4 532E 10A5 492E 10A6 532E 10A7 2043 10A8 4F4D 10A9 4D41 10AA 4E44 1PAGE 0074 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:26.75 TEST D SEEK AND READ ID OVERLAPPED ON UNITS 0 AND 1 10AB 202D 10AC 2055 10AD 4E49 10AE 5420 10AF 3120 10B0 8299 10CA 0833 D45 ERRCODE :0405 10B1 0404 0833+ 10B2 0900 0833+ 10B3 872F 1063 0833+ 0834 * READ ID UNIT 0 10B4 E296 10CB 0835 D5  COPY =Y1,Y 10B5 0904 0836 COPY =UF:RDID,A READ ID 10B6 8455 0015 0837 COPY A,UF:FC(Y) FUNCTION CODE 10B7 8390 10C8 0838 COPY DENSITY,A 10B8 845E 001E 0839 COPY A,UF:MF(Y)  DENSITY 10B9 838F 10C9 0840 COPY HEAD,A 10BA 8441 0001 0841 COPY A,UF:HD(Y) HEAD ADR 10BB 0900 0842 COPY =0,A 10BC 845C 001C 0843 COPY A,UF:US(Y) UNIT SELECT 0 10BD FF26 1064 0844 JSK UFDC 10BE E726 1065 0845 COPY Y,YSAVE 0846 * CHECK FOR ERRORS! 10BF 804B 000B 0847 GETERR 10C0 18C0 0847+ 10C1 0E71 0847+ 10C2 B456 0016 0847+ 10C3 C288 10CC 0848  ERROR D,'READ ID COMMAND FAILED - UNIT 0',D5 10C4 292A 0848+ 10C5 FF20 1066 0848+ 10C6 9E6D 10B4 0848+ 10C7 9E9C 10E4 0848+ 10C8 004A DENSITY 10C9 0056 HEAD 10CA 0405 10CB 035B Y1 10CC 10CF !MSG0286 10CD 10CE 10CF 0D0A 0848+ 10D0 5445 0848+ 10D1 5354 10D2 2044 10D3 202D 1PAGE 0075 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:28.00 TEST D SEEK AND READ ID OVERLAPPED ON UNITS 0 AND 1 10D4 2052 10D5 4541 10D6 4420 10D7 4944 10D8 2043 10D9 4F4D 10DA 4D41 10DB 4E44 10DC 2046 10DD 4149 10DE 4C45 10DF 4420 10E0 2D20 10E1 554E 10E2 4954 10E3 2030 10E4 3669 110E 0849 JT OV,D55 IF SIS FAILED 10E5 804E 000E 0850 COPY UF:C2(Y),A CYL NUMBER 10E6 9B85 10EC 0851 XOR TRM,A =TRACK? 10E7 C286 10EE 0852 ERROR D,'CYL NUMBER MISMATCH ON READ ID COMMAND - UNIT 0',D5 10E8 293A 0852+ 10E9 FF83 10ED 0852+ 10EA 9E49 10B4 0852+ 10EB 9EA2 110E 0852+ 10EC 004F TRM 10ED 0000 FAULT 10EE 10F1 !MSG0287 10EF 10F0 10F1 0D0A 0852+ 10F2 5445 0852+ 10F3 5354 10F4 2044 10F5 202D 10F6 2043 10F7 594C 10F8 204E 10F9 554D 10FA 4245 10FB 5220 10FC 4D49 10FD 534D 10FE 4154 1PAGE 0076 MAC 10FF 4348 1100 204F 1101 4E20 1102 5245 1103 4144 1104 2049 1105 4420 1106 434F 1107 4D4D 1108 414E 1109 4420 110A 2D20 110B 554E 110C 4954 110D 2030 110E 8297 1126 0853 D55 ERRCODE :0406 110F 0404 0853+ 1110 0900 0853+ 1111 8795 1127 0853+ 0854 * READ ID UNIT 1 1112 E295 1128 0855 D6 COPY =Y2,Y 1113 0904 2 10C8 0858 COPY DENSITY,A 1116 845E 001E 0859 COPY A,UF:MF(Y) DENSITY 1117 8331 10C9 0860   COPY HEAD,A 1118 8441 0001 0861 COPY A,UF:HD(Y) HEAD ADR 1119 0901 0862 COPY  =1,A 111A 845C 001C 0863 COPY A,UF:US(Y) UNIT SELECT 1 111B FF8D 1129 0864 JSK UFDC 111C E78D 112A 0865 COPY Y,YSAVE 0866 * CHECK FOR ERRORS! 111D 804B 000B 0867 GETERR 111E 18C0 0867+ 111F 0E71 0867+ 1120 B456 0016 0867+ 1121 C289 112B 0868 ERROR D,'READ ID COMMAND FAILED - UNIT 1',D6 1122 292A 0868+ 1123 FF49 10ED 0868+ 1124 9E6D 1112 0868+ 1125 9E9D 1143 0868+ 1126 0406 1127 0357 TECHTEST 1PAGE 0077 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:30.00 TEST D SEEK AND READ ID OVERLAPPED ON UNITS 0 AND 1 1128 039B Y2 1129 0002 UFDC 112A 0359 YSAVE 112B 112E !MSG0288 112C 112D 112E 0D0A 0868+ 112F 5445 0868+ 1130 5354 1131 2044 1132 202D 1133 2052 1134 4541 1135 4420 1136 4944 1137 2043 1138 4F4D  1139 4D41 113A 4E44 113B 2046 113C 4149 113D 4C45 113E 4420 113F 2D20 1140 554E 1141 4954 1142 2031 1143 3667 116B 0869 JT OV,D8 1144 804E 000E 0870 COPY UF:C2(Y),A CYL NUMBER 1145 9B26 10EC 0871 XOR TRM,A =TRACK? 1146 C284 114B 0872 ERROR D,'CYL NUMBER MISMATCH ON READ ID COMMAND - UNIT 1',D6 1147 293A 0872+ 1148 FF24 10ED 0872+ 1149 9E48 1112 0872+ 114A 9EA0 116B 0872+ 114B 114E !MSG0289 114C 114D 114E 0D0A 0872+ 114F 5445 0872+ 1150 5354 1151 2044 1152 202D 1PAGE 0078 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:30.75 TEST D SEEK AND READ ID OVERLAPPED ON UNITS 0 AND 1 1153 2043 1154 594C 1155 204E 1156 554D 1157 4245 1158 5220 1159 4D49 115A 534D 115B 4154 115C 4348 115D 204F 115E 4E20 115F 5245 1160 4144 1161 2049 1162 4420 1163 434F 1164 4D4D 1165 414E 1166 4420 1167 2D20 1168 554E 1169 4954 116A 2031 116B 8300 10EC 0873 D8  COPY TRM,A GET TRACK 116C 2945 0874 COPY =TRACKS,X ADR OF TRACKS 116D B881 0001 0875  CSK A,1(X) EQUAL TO H TRACK? 116E 9E82 1171 0876 JMP $+3 NO, TRY AGAIN 116F 0000 0877 NOP 1170 9E83 1174 0878 JMP DTEND YES, DONE 1171 DF8D 117F 0879 IMS TRM BUMP TRACK 1172 0000 0880 NOP 1173 9F8D 1181 0881 JMP DTLOOP REPEAT 1174 0000 0882 DTEND NOP 1175 838A 1180 0883 LPHEAD HEADD,DHEAD 1176 0C01 0883+ 1177 9E83 117B 0883+ 1178 DF87 1180 0883+ 1179 0000 0883+ 117A 9F87 1182 0883+ 18C3 18C7 0884 EXIT 1PAGE 0079 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:32.25 TEST E SCAN EQUAL 18C3 18C7 0886  DEFINE FDC:E 1183 0002 0887 ENDEF 1183 0889 NAM FDC:E 18C3 18C7 0890 FDC:E ENTRY 0891 * INITIALIZE BUFFER TO USER PATTERN (1 SECTOR) 18C3 18C7 0892 CALL  BUFUSER 0893 * LOOP OVER UNITS 119E 0900 0894 COPY =0,A 119F 87A1 11C1 0895   COPY A,PTR UNITS PTR 11A0 2941 0896 EBEGIN COPY =UNITS,X ADR OF UNITS 11A1 839F 11C1 0897  COPY PTR,A GET UNITS PTR 11A2 030A 0898 XNX A 11A3 8080 0000 0899 COPY 0(X),A GET UNIT ENTRY 11A4 1141 11A6 0900 JEQ A,$+2 11A5 9E81 11A7 0901 JMP $+2 11A6 9F9B 11C2 0902 JMP EEND IF UNIT=0 , NO TEST 11A7 0AFF 0903 SUB =1,A 11A8 879A 11C3 0904 COPY A,UNIT STORE CURRENT UNIT 0905 * LOOP OVER HEADS 11A9 0900 0906  HEADLP EHEAD,HEADE 11AA 8755 1180 0906+ 11AB 8354 1180 0906+ 11AC C391 11BE 0906+ 11AD 4C02 0906+ 11AE 9E83 11B2 0906+ 11AF 400A 0906+ 11B0 9E81 11B2 0906+ 11B1 9F92 11C4 0906+ 11B2 8292 11C5 0907 ERRCODE :0500  11B3 0404 0907+ 11B4 0900 0907+ 11B5 8789 11BF 0907+ 18C3 18C7 0908 E0 CALL RECAL 11C8 C286 11CF 0909 ERROR E,'RECALIBRATE COMMAND FAILED',E0 11C9 2926 0909+ 11CA FF82 11CD 0909+ 11CB 9E6A 11B6 0909+ 11CC 9E98 11E5 0909+ 11CD 0000 FAULT 11CE 1B34 RECAL 1PAGE 0080 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000)  1981/08/14 01:34:34.75 TEST E SCAN EQUAL 11CF 11D2 !MSG028D 11D0 11D1 11D2 0D0A 0909+ 11D3 5445 0909+ 11D4 5354 11D5 2045 11D6 202D 11D7 2052 11D8 4543 11D9 414C 11DA 4942 11DB 5241 11DC 5445 11DD 2043 11DE 4F4D 11DF 4D41  11E0 4E44 11E1 2046 11E2 4149 11E3 4C45 11E4 4420 0910 * LOOP OVER TRACKS 11E5 2945 0911 ETBEGIN  COPY =TRACKS,X ADR OF TRACKS 11E6 8080 0000 0912 COPY 0(X),A L TRACK 11E7 8717 117F 0913  COPY A,TRM CURRENT TRACK 11E8 0000 0914 ETLOOP NOP 11E9 828B 11F5 0915 ERRCODE :0503 11EA 0404 0915+ 11EB 0900 0915+ 11EC 8752 11BF 0915+ 18C3 18C7 0916 E3 CALL SEEK 11F8 C285 11FE  0917 ERROR E,'SEEK COMMAND FAILED',E3 11F9 291E 0917+ 11FA FF52 11CD 0917+ 11FB 9E71 11ED 0917+ 11FC 9E93 1210 0917+ 11FD 1B5F SEEK 11FE 1201 !MSG028F 11FF 1200 1201 0D0A 0917+ 1202 5445 0917+ 1PAGE 0081 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:36.25 TEST E SCAN EQUAL 1203 5354 1204 2045 1205 202D  1206 2053 1207 4545 1208 4B20 1209 434F 120A 4D4D 120B 414E 120C 4420 120D 4641 120E 494C 120F 4544 0OPY 0(X),A L SECTOR 1212 8791 1224 0921 COPY A,SECTOR CURRENT SECTOR 1213 0000 0922 ESLP NOP 1214 8329 11BE 0923 COPY HEADS,A REQUIRED HEADS 1215 0C02 0924 CLSN A,=2  BOTH HEADS? 1216 9EB5 124C 0925 JMP SCMT YES, SCAN BOTH SIDES, MT=1 0926 * MT= 8724 11BF 0927+ 18C3 18C7 0928 E1 CALL SCAN,=0 SCAN EQUAL 1 SECTOR 0929 * CHECK FOR  ERRORS! 1229 C285 122F 0930 ERROR D,'SINGLE SECTOR SCAN EQUAL COMMAND FAILED',E1 122A 2932 0930+ 122B FF21 11CD 0930+ 122C 9E6E 121B 0930+ 122D 9E9D 124B 0930+ 122E 1B8D SCAN 122F 1232 !MSG0291 1230 1231 1232 0D0A 0930+ 1233 5445 0930+ 1234 5354 1235 2044 1236 202D 1237 2053 1PAGE 0082 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:38.00 TEST E SCAN EQUAL 1238 494E 1239 474C 123A 4520 123B 5345 123C 4354 123D 4F52 123E 2053 123F 4341 1240 4E20 1241 4551 1242 5541 1243 4C20 1244 434F 1245 4D4D 1246 414E 1247 4420 1248 4641 1249 494C 124A 4544 124B 9EBC 1288 0931 JMP SCEND 124C 8393 1260 0932 SCMT COPY HEAD,A CURRENT HEAD 124D 1141 124F 0933 JEQ A,$+2 124E 9EB9 1288 0934 JMP SCEND IF NOT ZERO, SKIP 124F 8354 1224 0935 COPY SECTOR,A CURRENT SECTOR 1250 BB90 1261 0936 CSK A,SC EQUAL TO SECTORS/TRACK? 1251 9EB6 1288 0937 JMP SCEND NO, SKIP 1252 0000 0938 NOP DO SCAN WITH MT=1 0939 * MT=1 ON LAST SECTOR HEAD 0, FIRST SECTOR HEAD 1 1253 828E 1262 0940 ERRCODE :0502 1254 0404 0940+ 1255 0900 0940+ 1256 878C 1263 0940+ 18C3 18C7 0941 E2 CALL SCAN,=1  SCAN EQUAL 2 SECTORS 0942 * CHECK FOR ERRORS! 1267 C285 126D 0943 ERROR E,'TWO SECTOR SCAN EQUAL COMMAND FAILED',E2 1268 2930 0943+ 1269 FF82 126C 0943+ 126A 9E6C 1257 0943+ 126B 9E9C 1288 0943+ 126C 0000 FAULT 126D 1270 !MSG0293 126E 126F 1PAGE 0083 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:39.50 TEST E SCAN EQUAL 1270 0D0A 0943+ 1271 5445 0943+ 1272 5354 1273 2045 1274 202D 1275 2054 1276 574F 1277 2053 1278 4543 1279 544F 127A 5220 127B 5343 127C 414E 127D 2045 127E 5155 127F 414C 1280 2043 1281 4F4D 1282 4D41 1283 4E44 1284 2046 1285 4149 1286 4C45 1287 4420 1288 0000 0944 SCEND NOP 1289 831A 1224 0945 COPY SECTOR,A CURRENT SECTOR 128A 2947 0946 COPY =SECTORS,X ADR OF SECTORS 128B B881 0001 0947  CSK A,1(X) EQUAL TO H SECTOR? 128C 9E82 128F 0948 JMP $+3 NO, TRY AGAIN 128D 0000 0949 NOP 128E 9E83 1292 0950 JMP ESDONE YES, DONE 128F DF14 1224 0951 IMS  SECTOR BUMP SECTOR 1290 0000 0952 NOP 1291 9E01 1213 0953 JMP ESLP REPEAT 1292 0000 0954 ESDONE NOP END OF SECTORS LOOP 1293 839B 12AF 0955 COPY TRM,A  GET TRACK 1294 2945 0956 COPY =TRACKS,X ADR OF TRACKS 1295 B881 0001 0957 CSK A,1(X) EQUAL TO H TRACK? 1296 9E82 1299 0958 JMP $+3 NO, TRY AGAIN 1297 0000 0959 NOP 1298 9E83 129C 0960 JMP ETEND YES, DONE 1299 DF95 12AF 0961 IMS TRM BUMP TRACK 129A 0000 0962 NOP 1PAGE 0084 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34 :40.75 TEST E SCAN EQUAL 129B 9F94 12B0 0963 JMP ETLOOP REPEAT 129C 0000 0964 ETEND NOP 129D 8342 1260 0965 LPHEAD HEADE,EHEAD 129E 0C01 0965+ 129F 9E83 12A3 0965+ 12A0 DF3F 1260 0965+ 12A1 0000 0965+ 12A2 9F8E 12B1 0965+ 12A3 838A 12AE 0966 EEND COPY PTR,A UNIT PTR 12A4 0C03 0967  CLSN A,=3 EQUAL TO MAX VALUE 3? 12A5 9E83 12A9 0968 JMP EOUT YES, EXIT 12A6 DF87 12AE 0969 IMS PTR NO, BUMP COUNT 12A7 0000 0970 NOP 12A8 9F89 12B2 0971 JMP EBEGIN REPEAT 12A9 0000 0972 EOUT NOP ALL DONE 18C3 18C7 0973 EXIT 1PAGE 0085 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:41.75 TEST F FORMAT SINGLE DENSITY  18C3 18C7 0975 DEFINE FDC:F 0001 0976 RES 2 12B3 0002 0977 ENDEF  12B3 0979 NAM FDC:F 18C3 18C7 0980 FDC:F ENTRY 18C3 18C7 0981 CALL  FMT,=0 LOOK UP SC AND GPL (FORMAT) 12CF 1364 12F4 0982 JGE A,DOFMT 12D0 C286 12D7 0983 ERROR F,'INVALID DENSITY/SECTOR SIZE COMBINATION',FOUT 12D1 2932 0983+ 12D2 FF19 126C 0983+ 12D3 9F81 12D5 0983+ 12D4 9E9E 12F3 0983+ 12D5 13AC FOUT 12D6 1AF3 FMT 12D7 12DA !MSG0296 12D8 12D9 12DA 0D0A 0983+ 12DB 5445 0983+ 12DC 5354 12DD 2046 12DE 202D 12DF 2049 12E0 4E56 12E1 414C 12E2 4944 12E3 2044 12E4 454E 12E5 5349 12E6 5459 12E7 2F53 12E8 4543 12E9 544F 12EA 5220 12EB 5349 12EC 5A45 12ED 2043 12EE 4F4D 12EF 4249 12F0 4E41 1PAGE 0086 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:43.25 TEST F FORMAT SINGLE DENSITY 12F1 5449 12F2 4F4E 12F3 9F61 12D5 0984 JMP FOUT INVALID 12F4 8441 0001 0985 DOFMT COPY A,1(Y) SC 12F5 58FF  0986 AND =:FF,Q LOWER BYTE IS GPL (2) 12F6 C442 0002 0987 COPY Q,2(Y) GPL (FORMAT) 0988 * LOOP OVER UNITS 12F7 0900 0989 COPY =0,A 12F8 8735 12AE 0990 COPY  A,PTR UNITS PTR 12F9 2941 0991 FBEGIN COPY =UNITS,X ADR OF UNITS 12FA 8333 12AE 0992 COPY PTR,A GET UNITS PTR 12FB 030A 0993 XNX A 12FC 8080 0000 0994 COPY 0(X),A  GET UNIT ENTRY 12FD 1141 12FF 0995 JEQ A,$+2 12FE 9E81 1300 0996 JMP $+2 12FF 9F98 1318  0997 JMP FEND IF UNIT=0 , NO TEST 1300 0AFF 0998 SUB =1,A 1301 8797 1319 0999  COPY A,UNIT STORE CURRENT UNIT 1000 * LOOP OVER HEADS 1302 0900 1001 HEADLP FHEAD,HEADF 1303 8796 131A 1001+ 1304 8395 131A 1001+ 1305 C395 131B 1001+ 1306 4C02 1001+ 1307 9E83 130B 1001+ 1308 400A 1001+ 1309 9E81 130B 1001+ 130A 9F91 131C 1001+ 130B 8291 131D 1002 ERRCODE :0600 130C 0404 1002+ 130D 0900 1002+ 130E 8788 1317 1002+ 18C3 18C7 1003 F0 CALL RECAL 1320 C286 1327 100 4 ERROR F,'RECALIBRATE COMMAND FAILED',F0 1321 2926 1004+ 1322 FF82 1325 1004+ 1323 9E6B 130F 1004+ 1324 9E98 133D 1004+ 1325 0000 FAULT 1326 1B34 RECAL 1327 132A !MSG0298 1328 1329 1PAGE 0087 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:45.50 TEST F FORMAT SINGLE DENSITY 132A 0D0A 1004+ 132B 5445 1004+ 132C 5354 132D 2046 132E 202D 132F 2052 1330 4543 1331 414C 1332 4942 1333 5241 1334 5445 1335 2043 1336 4F4D 1337 4D41 1338 4E44 1339 2046 133A 4149 133B 4C45 133C 4420 1005 * LOOP OVER TRACKS 133D 2945 1006 FTBEGIN COPY =TRACKS,X ADR OF TRACKS 133E 8080 0000 1007 COPY 0(X),A L TRACK 133F 878D 134D 1008  COPY A,TRM CURRENT TRACK 1340 0000 1009 FTLOOP NOP 1341 828C 134E 1010 ERRCODE :0602  1342 0404 1010+ 1343 0900 1010+ 1344 8752 1317 1010+ 18C3 18C7 1011 F2 CALL SEEK 1351 C285 1357 1012 ERROR F,'SEEK COMMAND FAILED',F2 1352 291E 1012+ 1353 FF51 1325 1012+ 1354 9E70 1345 1012+ 1355 9E93 1369 1012+ 1356 1B5F SEEK 1357 135A !MSG029A 1358 1359 135A 0D0A 1012+ 135B 5445 1012+ 135C 5354 135IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII  IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII! IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII" IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII# IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII$ IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII% IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII& IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIe810817021935810817021935810817022011e 810817021935810817021935810817022215e' 810817021935810817021935810817021935e810817021935810817021935810817021935810817021935810817021935810817021935e 8108110244342581081401361800810814023123 ( . HFT:UFDC:2 LSTD 2046 135E 202D 1PAGE 0088 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:46.75 TEST F FORMAT SINGLE DENSITY 135F 2053 1360 4545 1361 4B20 1362 434F 1363 4D4D 1364 414E 1365 4420 1366 4641 1367 494C 1368 4544 1369 8290 137A 1013 ERRCODE :0601 136A 0404 1013+ 136B 0900 1013+ 136C 872A 1317 1013+ 18C3 18C7  1014 F1 CALL FORMAT,=0,1,2 FORMAT A TRACK, CORRECT DENSITY 1015 * CHECK FOR ERRORS! 137D C285 1383 1016 ERROR F,'FORMAT COMMAND FAILED',F1 137E 2920 1016+ 137F FF25 1325 1016+ 1380 9E6C 136D 1016+ 1381 9E94 1396 1016+ 1382 1BCD FORMAT 1383 1386 !MSG029C 1384 1385 1386 0D0A 1016+ 1387 5445 1016+ 1388 5354 1389 2046 138A 202D 138B 2046 138C 4F52 138D 4D41 138E 5420 138F 434F 1390 4D4D 1391 414E 1392 4420 1393 4641 1394 494C 1395 4544 1396 8336 134D 1017 COPY TRM,A GET TRACK 1397 2945 1018 COPY =TRACKS,X ADR OF TRACKS 1PAGE 0089 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:49.25 TEST F FORMAT SINGLE DENSITY 1398 B881 0001 1019 CSK A,1(X) EQUAL TO H TRACK? 1399 9E82 139C 1020 JMP  $+3 NO, TRY AGAIN 139A 0000 1021 NOP 139B 9E83 139F 1022 JMP FTEND YES, DONE 139C DF30 134D 1023 IMS TRM BUMP TRACK 139D 0000 1024 NOP 139E 9E21 1340 1025  JMP FTLOOP REPEAT 139F 0000 1026 FTEND NOP 13A0 8390 13B1 1027 LPHEAD HEADF,FHEAD  13A1 0C01 1027+ 13A2 9E83 13A6 1027+ 13A3 DF8D 13B1 1027+ 13A4 0000 1027+ 13A5 9F8D 13B3 1027+ 13A6 838B 13) B2 1028 FEND COPY PTR,A UNIT PTR 13A7 0C03 1029 CLSN A,=3 EQUAL TO MAX VALUE 3?  13A8 9E83 13AC 1030 JMP FOUT YES, EXIT 13A9 DF88 13B2 1031 IMS PTR NO, BUMP COUNT 13AA 0000 1032 NOP 13AB 9F88 13B4 1033 JMP FBEGIN REPEAT 13AC 0000 1034 FOUT NOP ALL DONE 18C3 18C7 1035 EXIT 1PAGE 0090 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:50.50 TEST H WRITE DATA AND READ DATA : USER DATA PATTERN 18C3 18C7 1037  DEFINE FDC:H 13B5 0002 1038 ENDEF 13B5 1040 NAM FDC:H 18C3 18C7 1041 FDC:H ENTRY 1042 * INITIALIZE BUFFER TO USER PATTERN (1 SECTOR) 18C3 18C7 1043 CALL BUFUSER 1044 * LOOP OVER UNITS 13D0 0900 1045 COPY =0,A 13D1 8760 13B2 1046 COPY A,PTR UNITS PTR 13D2 2941 1047 HBEGIN COPY =UNITS,X ADR OF UNITS 13D3 835E 13B2 1048  COPY PTR,A GET UNITS PTR 13D4 030A 1049 XNX A 13D5 8080 0000 1050 COPY 0(X),A GET UNIT ENTRY 13D6 1141 13D8 1051 JEQ A,$+2 13D7 9E81 13D9 1052 JMP $+2 13D8 9F99 13F2 1053 JMP HEND IF UNIT=0, NO TEST 13D9 0AFF 1054 SUB =1,A 13DA 8798 13F3 1055 COPY A,UNIT STORE CURRENT UNIT 1056 * LOOP OVER HEADS 13DB 0900 1057  HEADLP HHEAD,HEADH 13DC 8754 13B1 1057+ 13DD 8353 13B1 1057+ 13DE C395 13F4 1057+ 13DF 4C02 1057+ 13E0 9E83 13E4 1057+ 13E1 400A 1057+ 13E2 9E81 13E4 1057+ 13E3 9F91 13F5 1057+ 13E4 8291 13F6 1058 ERRCODE :0800 13E5 0404 1058+ 13E6 0900 1058+ 13E7 8788 13F0 1058+ 18C3 18C7 1059 H0 CALL RECAL 13F9 C286 1400 1060 ERROR H,'RECALIBRATE COMMAND FAILED',H0 13FA 2926 1060+ 13FB FF82 13FE 1060+ 13FC 9E6B 13E8 1060+ 13FD 9E98 1416 1060+ 13FE 0000 FAULT 13FF 1B34 RECAL 1PAGE 0091 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:53.50 TEST H WRITE DATA AND READ DATA : USER DATA PATTERN 1400 1403 !MSG02A0 1401 1402 1403 0D0A 1060+ 1404 5445 1060+ 1405 5354 1406 2048 1407 202D 1408 2052 1409 4543 140A 414C 140B 4942 140C 5241 140D 5445 140E 2043 140F 4F4D 1410 4D41 1411 4E44 1412 2046 1413 4149 1414 4C45 1415 4420 1061 * LOOP OVER TRACKS  1416 2945 1062 HTBEGIN COPY =TRACKS,X ADR OF TRACKS 1417 8080 0000 1063 COPY 0(X),A L TRACK 1418 878D 1426 1064 COPY A,TRM CURRENT TRACK 1419 0000 1065 HTLOOP NOP 141A 828C 1427 1066 ERRCODE :0803 141B 0404 1066+ 141C 0900 1066+ 141D 8752 13F0 1066+ 18C3 18C7 1067 H3  CALL SEEK 142A C285 1430 1068 ERROR H,'SEEK COMMAND FAILED',H3 142B 291E 1068+ 142C FF51 13FE 1068+ 142D 9E70 141E 1068+ 142E 9E93 1442 1068+ 142F 1B5F SEEK 1430 1433 !MSG02A2 1431 1432 1433 0D0A 1068+ 1434 5445*  1068+ 1PAGE 0092 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:54.75 TEST H WRITE DATA AND READ DATA : USER DATA PATTERN 1435 5354 1436 2048 1437 202D 1438 2053 1439 4545 143A 4B20 143B 434F 143C 4D4D 143D 414E 143E 4420 143F 4641 1440 494C 1441 4544 1069 * LOOP OVER SECTORS - WRITE DATA 1442 2947 1070  COPY =SECTORS,X ADR OF SECTORS 1443 8080 0000 1071 COPY 0(X),A L SECTOR 1444 878E 1453 1072 COPY A,SECTOR CURRENT SECTOR 1445 0000 1073 HSWLP NOP SECTORS WRITE LOOP 1446 828D 1454 1074 ERRCODE :0801 1447 0404 1074+ 1448 0900 1074+ 1449 8726 13F0 1074+ 18C3 18C7 1075 H1 CALL OUTPUT,=128 WRITE SECTOR 1076 * CHECK FOR ERRORS! 1457 C285 145D 1077 ERROR H,'WRITE SECTOR COMMAND FAILED',H1 1458 2926 1077+ 1459 FF24 13FE 1077+ 145A 9E6F 144A 1077+ 145B 9E97 1473 1077+ 145C 1C16 OUTPUT 145D 1460 !MSG02A4 145E 145F 1460 0D0A 1077+ 1461 5445 1077+ 1462 5354 1463 2048 1464 202D 1465 2057 1466 5249 1467 5445 1468 2053 1469 4543 1PAGE 0093 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:56.50 TEST H WRITE DATA AND READ DATA : USER DATA PATTERN 146A 544F 146B 5220 146C 434F 146D 4D4D 146E 414E 146F 4420 1470 4641 1471 494C 1472 4544 1473 835F 1453 1078 COPY SECTOR,A CURRENT SECTOR 1474 2947 1079 COPY =SECTORS,X ADR OF SECTORS 1475 B881 0001 1080 CSK A,1(X) EQUAL TO H SECTOR? 1476 9E82 1479 1081 JMP $+3 NO, TRY AGAIN 1477 0000 1082 NOP 1478 9E83 147C 1083 JMP HSWDONE YES, DONE 1479 DF59 1453 1084 IMS SECTOR BUMP SECTOR 147A 0000 1085 NOP 147B 9E49 1445 1086 JMP HSWLP REPEAT 147C 0000 1087 HSWDONE NOP  END OF SECTORS WRITE LOOP 1088 * LOOP OVER SECTORS - READ DATA 147D 2947 1089  COPY =SECTORS,X ADR OF SECTORS 147E 8080 0000 1090 COPY 0(X),A L SECTOR 147F 8753 1453 1091  COPY A,SECTOR CURRENT SECTOR 1480 0000 1092 HSRLP NOP SECTORS READ LOOP 1481 828B 148D 1093 ERRCODE :0802 1482 0404 1093+ 1483 0900 1093+ 1484 8789 148E 1093+ 18C3 18C7 1094 H2 CALL INPUT READ SECTOR 1095 * CHECK FOR ERRORS! 1491 C286 1498 1096 ERROR  H,'READ SECTOR COMMAND FAILED',H2 1492 2926 1096+ 1493 FF82 1496 1096+ 1494 9E70 1485 1096+ 1495 9E98 14AE 1096+ 1496 0000 FAULT 1497 1C54 INPUT 1498 149B !MSG02A6 1499 149A 149B 0D0A 1096+ 149C 5445 1096+ 149D 5354 1PAGE 0094 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:58.25 TEST H WRITE DATA AND READ DATA : USER DATA PATTERN 149E 2048 149F 202D 14A0 2052 14A1 4541 14A2 4420 14A3 5345 14A4 4354 14A5 4F52 14A6 2043 14A7 4F4D 14A8 4D41 14A9 4E44 14AA 2046 14AB 4149 14AC 4C45 14AD 4420 14AE 366C 14DB 1097 JT OV,H4 18C3 18C7 1+ 098 CALL BUFCOMP,=0 COMPARE TO OUTPUT BUFR 14BA C285 14C0 1099 ERROR H,'DATA BUFFER DOES NOT MATCH DISK DATA',H2 14BB 2930 1099+ 14BC FF59 1496 1099+ 14BD 9E47 1485 1099+ 14BE 9E9C 14DB 1099+ 14BF 1A37 BUFCOMP  14C0 14C3 !MSG02A8 14C1 14C2 14C3 0D0A 1099+ 14C4 5445 1099+ 14C5 5354 14C6 2048 14C7 202D 14C8 2044 14C9 4154 14CA 4120 14CB 4255 14CC 4646 14CD 4552 14CE 2044 14CF 4F45 14D0 5320 14D1 4E4F 14D2 5420 1PAGE 0095 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:34:59.50 TEST H WRITE DATA AND READ DATA : USER DATA PATTERN 14D3 4D41 14D4 5443 14D5 4820 14D6 4449 14D7 534B 14D8 2044 14D9 4154 14DA 4120 14DB 83A7 1503 1100 H4 COPY SECTOR,A CURRENT SECTOR 14DC 2947 1101 COPY =SECTORS,X ADR OF SECTORS 14DD B881 0001 1102 CSK A,1(X) EQUAL TO H SECTOR? 14DE 9E82 14E1 1103 JMP $+3 NO, TRY AGAIN 14DF 0000 1104 NOP 14E0 9E83 14E4 1105 JMP HSRDONE YES, DONE 14E1 DFA1 1503 1106 IMS SECTOR BUMP SECTOR 14E2 0000 1107 NOP 14E3 9E1C 1480 1108 JMP HSRLP REPEAT 14E4 0000 1109 HSRDONE NOP END OF SECTORS READ LOOP 14E5 839A 1500 1110 COPY TRM,A GET TRACK 14E6 2945 1111 COPY =TRACKS,X ADR OF TRACKS 14E7 B881 0001 1112 CSK A,1(X)  EQUAL TO H TRACK? 14E8 9E82 14EB 1113 JMP $+3 NO, TRY AGAIN 14E9 0000 1114 NOP  14EA 9E83 14EE 1115 JMP HTEND YES, DONE 14EB DF94 1500 1116 IMS TRM BUMP TRACK 14EC 0000 1117 NOP 14ED 9F96 1504 1118 JMP HTLOOP REPEAT 14EE 0000 1119 HTEND NOP 14EF 8391 1501 1120 LPHEAD HEADH,HHEAD 14F0 0C01 1120+ 14F1 9E83 14F5 1120+ 14F2 DF8E 1501 1120+ 14F3 0000 1120+ 14F4 9F90 1505 1120+ 14F5 838C 1502 1121 HEND COPY PTR,A UNIT PTR 14F6 0C03  1122 CLSN A,=3 EQUAL TO MAX VALUE 3? 14F7 9E83 14FB 1123 JMP HOUT YES, EXIT 14F8 DF89 1502 1124 IMS PTR NO, BUMP COUNT 14F9 0000 1125 NOP 14FA 9F8B 1506 1126  JMP HBEGIN REPEAT 14FB 0000 1127 HOUT NOP ALL DONE 18C3 18C7 1128  EXIT 1PAGE 0096 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:01.50 TEST I WRITE DATA AND READ DATA : PARTIAL SECTOR I/O 18C3 18C7 1130 DEFINE FDC:I 1507 0002 1131 ENDEF  1507 1133 NAM FDC:I 18C3 18C7 1134 FDC:I ENTRY 1135 * INITIALIZE BUFFER TO INCREMENTING DATA PATTERN (2 SECTORS) 18C3 18C7 1136 CALL BUFINCR,=66 1137 * LOOP OVER UNITS 1523 0900 1138 COPY =0,A 1524 875D 1502 1139 COPY A,PTR UNITS PTR 1525 2941  1140 IBEGIN COPY =UNITS,X ADR OF UNITS 1526 835B 1502 1141 COPY PTR,A GET UNITS PTR 1527 , 030A 1142 XNX A 1528 8080 0000 1143 COPY 0(X),A GET UNIT ENTRY 1529 1141 152B 1144 JEQ A,$+2 152A 9E81 152C 1145 JMP $+2 152B 9F99 1545 1146 JMP IEND IF UNIT=0, NO TEST 152C 0AFF 1147 SUB =1,A 152D 8798 1546 1148 COPY A,UNIT STORE CURRENT UNIT 1149 * LOOP OVER HEADS 152E 0900 1150 HEADLP IHEAD,HEADI 152F 8751 1501 1150+ 1530 8350 1501 1150+ 1531 C395 1547 1150+ 1532 4C02 1150+ 1533 9E83 1537 1150+ 1534 400A 1150+ 1535 9E81 1537 1150+ 1536 9F91 1548 1150+ 1537 8291 1549 1151 ERRCODE :0900 1538 0404 1151+ 1539 0900 1151+ 153A 8788 1543 1151+ 18C3 18C7 1152 I0 CALL RECAL 154C C286 1553 1153 ERROR I,'RECALIBRATE COMMAND FAILED',I0 154D 2926 1153+ 154E FF82 1551 1153+ 154F 9E6B 153B 1153+ 1550 9E98 1569 1153+ 1551 0000 FAULT 1552 1B34 RECAL 1PAGE 0097 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:04.25 TEST I WRITE DATA AND READ DATA : PARTIAL SECTOR I/O 1553 1556 !MSG02AC 1554 1555 1556 0D0A 1153+ 1557 5445 1153+ 1558 5354 1559 2049 155A 202D 155B 2052 155C 4543 155D 414C 155E 4942 155F 5241 1560 5445 1561 2043 1562 4F4D 1563 4D41 1564 4E44 1565 2046 1566 4149 1567 4C45 1568 4420 1154 * LOOP OVER TRACKS 1569 2945 1155 ITBEGIN COPY =TRACKS,X ADR OF TRACKS 156A 8080 0000 1156 COPY 0(X),A L TRACK 156B 8714 1500 1157 COPY A,TRM CURRENT TRACK 156C 0000 1158 ITLOOP NOP 156D 828B 1579 1159 ERRCODE :0903 156E 0404 1159+ 156F 0900 1159+ 1570 8752 1543 1159+ 18C3 18C7 1160 I3 CALL SEEK 157C C285 1582 1161  ERROR I,'SEEK COMMAND FAILED',I3 157D 291E 1161+ 157E FF52 1551 1161+ 157F 9E71 1571 1161+ 1580 9E93 1594 1161+ 1581 1B5F SEEK 1582 1585 !MSG02AE 1583 1584 1585 0D0A 1161+ 1586 5445 1161+ 1PAGE 0098 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:05.75 TEST I WRITE DATA AND READ DATA : PARTIAL SECTOR I/O 1587 5354 1588 2049 1589 202D 158A 2053 158B 4545 158C 4B20 158D 434F 158E 4D4D 158F 414E 1590 4420 1591 4641 1592 494C 1593 4544 1162 * LOOP OVER SECTORS - WRITE DATA 1594 2947 1163 COPY =SECTORS,X ADR OF SECTORS  1595 8080 0000 1164 COPY 0(X),A L SECTOR 1596 878E 15A5 1165 COPY A,SECTOR CURRENT SECTOR 1597 0000 1166 ISWLP NOP SECTORS WRITE LOOP 1598 828D 15A6 1167 ERRCODE :0901 1599 0404 1167+ 159A 0900 1167+ 159B 8727 1543 1167+ 18C3 18C7 1168 I1 CALL OUTPUT,=66 WRITE SECTOR 1169 * CHECK FOR ERRORS! 15A9 C285 15AF 1170 ERROR I,'PARTIAL SECTOR WRITE COMMAND FAILED',I1 15AA 292E 1170+ 15AB FF25 1551 1170+ 15AC 9E6F 159C 1170+ 15AD 9E9B 15C9 1170+ 15AE 1C16 OUTPUT 15AF 15B2 !MSG02B0 15B0 15B1 15B2 0D0A 1170+ 15B3 5445 1170+ 15B4 5354 15B5 2049 15B6 202D 15B7 2050 15B8 4152 15B9 - 5449 15BA 414C 15BB 2053 1PAGE 0099 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:07.25 TEST I WRITE DATA AND READ DATA : PARTIAL SECTOR I/O 15BC 4543 15BD 544F 15BE 5220 15BF 5752 15C0 4954 15C1 4520 15C2 434F 15C3 4D4D 15C4 414E 15C5 4420 15C6 4641 15C7 494C 15C8 4544 1171 * 000015C9 1172 ISWCHK EQU $ 15C9 835B 15A5 1173 COPY SECTOR,A CURRENT SECTOR 15CA 2947 1174 COPY =SECTORS,X ADR OF SECTORS 15CB B881 0001 1175 CSK A,1(X) EQUAL TO H SECTOR? 15CC 9E82 15CF 1176 JMP  $+3 NO, TRY AGAIN 15CD 0000 1177 NOP 15CE 9E83 15D2 1178 JMP ISWDONE YES, DONE 15CF DF55 15A5 1179 IMS SECTOR BUMP SECTOR 15D0 0000 1180 NOP 15D1 9E45 1597 1181  JMP ISWLP REPEAT 15D2 0000 1182 ISWDONE NOP END OF SECTORS WRITE LOOP  1183 * LOOP OVER SECTORS - READ DATA 15D3 2947 1184 COPY =SECTORS,X ADR OF SECTORS 15D4 8080 0000 1185 COPY 0(X),A L SECTOR 15D5 874F 15A5 1186 COPY A,SECTOR CURRENT SECTOR 15D6 0000 1187 ISRLP NOP SECTORS READ LOOP 15D7 828B 15E3 1188 ERRCODE :0902 15D8 0404  1188+ 15D9 0900 1188+ 15DA 8789 15E4 1188+ 18C3 18C7 1189 I2 CALL INPUT READ SECTOR  1190 * CHECK FOR ERRORS! 15E7 C286 15EE 1191 ERROR I,'PARTIAL SECTOR READ COMMAND FAILED',I2 15E8 292E 1191+ 15E9 FF82 15EC 1191+ 15EA 9E70 15DB 1191+ 15EB 9E9C 1608 1191+ 15EC 0000 FAULT 15ED 1C54 INPUT 1PAGE 0100 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:09.00 TEST I WRITE DATA AND READ DATA : PARTIAL SECTOR I/O 15EE 15F1 !MSG02B2 15EF 15F0 15F1 0D0A 1191+ 15F2 5445 1191+ 15F3 5354 15F4 2049 15F5 202D 15F6 2050 15F7 4152 15F8 5449 15F9 414C 15FA 2053 15FB 4543 15FC 544F 15FD 5220 15FE 5245 15FF 4144 1600 2043 1601 4F4D 1602 4D41 1603 4E44 1604 2046 1605 4149 1606 4C45 1607 4420 1608 366C 1635 1192 JT OV,I4 18C3 18C7 1193 CALL BUFCOMP,=0 COMPARE TO OUTPUT BUFR 1614 C285 161A 1194 ERROR I,'DATA BUFFER DOES NOT MATCH DISK DATA',I2 1615 2930 1194+ 1616 FF55 15EC 1194+ 1617 9E43 15DB 1194+ 1618 9E9C 1635 1194+ 1619 1A37 BUFCOMP 161A 161D !MSG02B4 161B 161C 161D 0D0A 1194+ 161E 5445 1194+ 161F 5354 1620 2049 1621 202D 1622 2044 1PAGE 0101 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:10.25 TEST I WRITE DATA AND READ DATA : PARTIAL SECTOR I/O 1623 4154 1624 4120 1625 4255 1626 4646 1627 4552 1628 2044 1629 4F45 162A 5320 162B 4E4F 162C 5420 162D 4D41 162E 5443 162F 4820 1630 4449 1631 534B 1632 2044 1633 4154 1634 4120 1635 83A7 165D 1195 I4 COPY SECTOR,A CURRENT SECTOR 1636 2947 1196 COPY =SECTORS,X ADR OF SECTORS 1637 B881 0001 1197  CSK A,1(X) EQUAL TO H SECTOR? 1638 9E82 163B 1198 JMP $+3 NO, TRY AGAIN 1639 0000 .  1199 NOP 163A 9E83 163E 1200 JMP ISRDONE YES, DONE 163B DFA1 165D 1201 IMS SECTOR BUMP SECTOR 163C 0000 1202 NOP 163D 9E18 15D6 1203 JMP ISRLP REPEAT 163E 0000 1204 ISRDONE NOP END OF SECTORS READ LOOP 163F 839A 165A 1205 COPY TRM,A  GET TRACK 1640 2945 1206 COPY =TRACKS,X ADR OF TRACKS 1641 B881 0001 1207 CSK A,1(X)  EQUAL TO H TRACK? 1642 9E82 1645 1208 JMP $+3 NO, TRY AGAIN 1643 0000 1209 NOP 1644 9E83 1648 1210 JMP ITEND YES, DONE 1645 DF94 165A 1211 IMS TRM BUMP TRACK 1646 0000 1212 NOP 1647 9F96 165E 1213 JMP ITLOOP REPEAT 1648 0000 1214 ITEND NOP 1649 8391 165B 1215 LPHEAD HEADI,IHEAD 164A 0C01 1215+ 164B 9E83 164F 1215+ 164C DF8E 165B 1215+ 164D 0000 1215+ 1PAGE 0102 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:11.75 TEST I WRITE DATA AND READ DATA : PARTIAL SECTOR I/O 164E 9F90 165F 1215+ 164F 838C 165C 1216 IEND COPY PTR,A UNIT PTR 1650 0C03 1217 CLSN A,=3 EQUAL TO MAX VALUE 3? 1651 9E83 1655 1218 JMP IOUT YES, EXIT 1652 DF89 165C 1219 IMS PTR NO, BUMP COUNT 1653 0000 1220 NOP 1654 9F8B 1660 1221 JMP IBEGIN REPEAT 1655 0000 1222 IOUT NOP ALL DONE  18C3 18C7 1223 EXIT 1PAGE 0103 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:12.50 TEST J WRITE DATA AND READ DATA : MULTIPLE SECTOR I/O 18C3 18C7 1225 DEFINE FDC:J 1661 0002 1226  ENDEF 1661 1228 NAM FDC:J 18C3 18C7 1229 FDC:J ENTRY 1230 * INITIALIZE BUFFER TO INCREMENTING DATA PATTERN (2 SECTORS) 18C3 18C7 1231 CALL BUFINCR,=180  1232 * LOOP OVER UNITS 167D 0900 1233 COPY =0,A 167E 875D 165C 1234 COPY A,PTR UNITS PTR 167F 2941 1235 JBEGIN COPY =UNITS,X ADR OF UNITS 1680 835B 165C 1236 COPY PTR,A  GET UNITS PTR 1681 030A 1237 XNX A 1682 8080 0000 1238 COPY 0(X),A GET UNIT ENTRY 1683 1141 1685 1239 JEQ A,$+2 1684 9E81 1686 1240 JMP $+2 1685 9F99 169F 1241 JMP JEND IF UNIT=0, NO TEST 1686 0AFF 1242 SUB =1,A 1687 8798 16A0 1243 COPY A,UNIT STORE CURRENT UNIT 1244 * LOOP OVER HEADS 1688 0900 1245 HEADLP JHEAD,HEADJ 1689 8751 165B 1245+ 168A 8350 165B 1245+ 168B C395 16A1 1245+ 168C 4C02 1245+ 168D 9E83 1691 1245+ 168E 400A  1245+ 168F 9E81 1691 1245+ 1690 9F91 16A2 1245+ 1691 8291 16A3 1246 ERRCODE :0A00 1692 0404 1246+ 1693 0900 1246+ 1694 8788 169D 1246+ 18C3 18C7 1247 J0 CALL RECAL 16A6 C286 16AD 1248 ERROR /  J,'RECALIBRATE COMMAND FAILED',J0 16A7 2926 1248+ 16A8 FF82 16AB 1248+ 16A9 9E6B 1695 1248+ 16AA 9E98 16C3 1248+ 16AB 0000 FAULT 16AC 1B34 RECAL 1PAGE 0104 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:15.25 TEST J WRITE DATA AND READ DATA : MULTIPLE SECTOR I/O 16AD 16B0 !MSG02B8 16AE 16AF 16B0 0D0A 1248+ 16B1 5445 1248+ 16B2 5354 16B3 204A 16B4 202D 16B5 2052 16B6 4543 16B7 414C 16B8 4942 16B9 5241 16BA 5445 16BB 2043 16BC 4F4D 16BD 4D41 16BE 4E44 16BF 2046 16C0 4149 16C1 4C45 16C2 4420 1249 * LOOP OVER TRACKS 16C3 2945 1250 JTBEGIN COPY =TRACKS,X ADR OF TRACKS 16C4 8080 0000 1251 COPY 0(X),A L TRACK 16C5 8714 165A 1252 COPY A,TRM CURRENT TRACK 16C6 0000 1253 JTLOOP NOP 16C7 828B 16D3 1254 ERRCODE  :0A03 16C8 0404 1254+ 16C9 0900 1254+ 16CA 8752 169D 1254+ 18C3 18C7 1255 J3 CALL SEEK 16D6 C285 16DC 1256 ERROR J,'SEEK COMMAND FAILED',J3 16D7 291E 1256+ 16D8 FF52 16AB 1256+ 16D9 9E71 16CB 1256+ 16DA 9E93 16EE 1256+ 16DB 1B5F SEEK 16DC 16DF !MSG02BA 16DD 16DE 16DF 0D0A 1256+ 16E0 5445 1256+ 1PAGE 0105 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:16.75 TEST J WRITE DATA AND READ DATA : MULTIPLE SECTOR I/O 16E1 5354 16E2 204A 16E3 202D 16E4 2053 16E5 4545 16E6 4B20 16E7 434F 16E8 4D4D 16E9 414E 16EA 4420 16EB 4641 16EC 494C 16ED 4544 1257 * LOOP OVER SECTORS - WRITE DATA (ALTERNATE SECTORS) 16EE 2947 1258  COPY =SECTORS,X ADR OF SECTORS 16EF 8080 0000 1259 COPY 0(X),A L SECTOR 16F0 8795 1706 1260 COPY A,SECTOR CURRENT SECTOR 16F1 0900 1261 COPY =0,A 16F2 8794 1707 1262  COPY A,SECOUNT SECTOR COUNT=0 16F3 0000 1263 JSWLP NOP SECTORS WRITE LOOP - FIRST SECTOR WRITTEN 16F4 DF92 1707 1264 IMS SECOUNT BUMP COUNT 16F5 0000 1265 NOP 16F6 8390 1707 1266 COPY SECOUNT,A SECTOR COUNT 16F7 000F 1267 TBIT 0,A ODD/EVEN BIT 16F8 36F1 172A 1268 JF OV,JSWSKIP SKIP EVEN COUNTS 16F9 828E 1708 1269 ERRCODE :0A01 16FA 0404 1269+ 16FB 0900 1269+ 16FC 8720 169D 1269+ 18C3 18C7 1270 J1 CALL OUTPUT,=180 WRITE ALTERNATE SECTORS 1271 * CHECK FOR ERRORS! 170B C285 1711 1272 ERROR J,'WRITE MULTI SECTOR COMMAND FAILED',J1 170C 292C 1272+ 170D FF1D 16AB 1272+ 170E 9E6E 16FD 1272+ 170F 9E9A 172A 1272+ 1710 1C16 OUTPUT 1711 1714 !MSG02BC 1712 1713 1714 0D0A 1272+ 1715 5445 1272+ 1716 5354 1PAGE 0106 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:18.75 TEST J WRITE DATA AND READ DATA : MULTIPLE SECTOR I/O 1717 204A 1718 202D 1719 2057 171A 5249 171B 5445 171C 204D 171D 554C 171E 5449 171F 2053 1720 4543 1721 544F 1722 5220 1723 434F 1724 4D4D 1725 414E  1726 4420 1727 4641 1728 494C 1729 4544 172A 835B 1706 1273 JSWSKIP COPY SECTOR,A CURRENT SECTOR 172B 2947 0  1274 COPY =SECTORS,X ADR OF SECTORS 172C B881 0001 1275 CSK A,1(X) EQUAL TO H SECTOR? 172D 9E82 1730 1276 JMP $+3 NO, TRY AGAIN 172E 0000 1277 NOP 172F 9E83 1733 1278 JMP JSWDONE YES, DONE 1730 DF55 1706 1279 IMS SECTOR BUMP SECTOR 1731 0000 1280 NOP 1732 9E40 16F3 1281 JMP JSWLP REPEAT 1733 0000 1282 JSWDONE NOP  END OF SECTORS WRITE LOOP 1283 * LOOP OVER SECTORS - READ DATA (EVERY SECTOR) 1734 2947 1284  COPY =SECTORS,X ADR OF SECTORS 1735 8080 0000 1285 COPY 0(X),A L SECTOR 1736 874F 1706 1286 COPY A,SECTOR CURRENT SECTOR 1737 0900 1287 COPY =0,A 1738 874E 1707 1288  COPY A,SECOUNT SECTOR COUNT=0 1739 0000 1289 JSRLP NOP SECTORS READ LOOP 173A DF4C 1707 1290 IMS SECOUNT BUMP COUNT 173B 0000 1291 NOP 173C 828B 1748 1292 ERRCODE :0A02 173D 0404 1292+ 173E 0900 1292+ 173F 8789 1749 1292+ 18C3 18C7 1293 J2 CALL INPUT  READ SECTOR 1PAGE 0107 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:20.50 TEST J WRITE DATA AND READ DATA : MULTIPLE SECTOR I/O 1294 * CHECK FOR ERRORS! 174C C286 1753 1295 ERROR J,'MULTI SECTOR READ COMMAND FAILED',J2 174D 292C 1295+ 174E FF82 1751 1295+ 174F 9E70 1740 1295+ 1750 9E9B 176C 1295+ 1751 0000 FAULT 1752 1C54 INPUT 1753 1756 !MSG02BE 1754 1755 1756 0D0A 1295+ 1757 5445 1295+ 1758 5354 1759 204A 175A 202D 175B 204D 175C 554C 175D 5449 175E 2053 175F 4543 1760 544F 1761 5220 1762 5245 1763 4144 1764 2043 1765 4F4D 1766 4D41 1767 4E44 1768 2046 1769 4149 176A 4C45 176B 4420 176C 36C1 176E 1296 JF OV,J7 NO ERROR IN READ 176D 9EBD 17AB 1297 JMP J4 IF ERROR OCCURED IN READ DONT CHECK BUFFER  1298 * 0000176E 1299 J7 EQU $ 176E 8318 1707 1300 COPY SECOUNT,A SECTOR COUNT 176F 000F 1301 TBIT 0,A ODD/EVEN BIT 1770 36CD 177E 1302 JF OV,JSRCH1 ALTERNATE SECTOR - EVEN COUNT 18C3 18C7 1303 CALL BUFCOMP,=0 COMPARE TO FIRST OUTPUT BUFFER 177D 9E8D 178B 1304  JMP JSRCHK 18C3 18C7 1305 JSRCH1 CALL BUFCOMP,=1 COMPARE TO SECND OUTPUT BUFFER 1PAGE 0108 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:22.50 TEST J WRITE DATA AND READ DATA : MULTIPLE SECTOR I/O 178B C284 1790 1306 JSRCHK ERROR J,'DATA BUFFER DOES NOT MATCH DISK DATA',J2 178C 2930 1306+ 178D FF43 1751 1306+ 178E 9E31 1740 1306+ 178F 9E9B 17AB 1306+ 1790 1793 !MSG02C1 1791 1792 1793 0D0A 1306+ 1794 5445 1306+ 1795 5354 1796 204A 1797 202D 1798 2044 1799 4154 179A 4120 179B 4255 179C 4646 179D 4552 179E 2044 179F 4F45 17A0 5320 17A1 4E4F 17A2 5420 17A3 4D41 17A4 5443 17A5 4820 17A6 4449 17A7 534B 17A8 2044 17A9 4154 17AA 4120 17AB 83A7 11 7D3 1307 J4 COPY SECTOR,A CURRENT SECTOR 17AC 2947 1308 COPY =SECTORS,X ADR OF SECTORS  17AD B881 0001 1309 CSK A,1(X) EQUAL TO H SECTOR? 17AE 9E82 17B1 1310 JMP $+3  NO, TRY AGAIN 17AF 0000 1311 NOP 17B0 9E83 17B4 1312 JMP JSRDONE YES, DONE 17B1 DFA1 17D3 1313 IMS SECTOR BUMP SECTOR 17B2 0000 1314 NOP 17B3 9E05 1739 1315 JMP  JSRLP REPEAT 17B4 0000 1316 JSRDONE NOP END OF SECTORS READ LOOP 17B5 839A 17D0 1317  COPY TRM,A GET TRACK 1PAGE 0109 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:23.50 TEST J WRITE DATA AND READ DATA : MULTIPLE SECTOR I/O 17B6 2945 1318 COPY =TRACKS,X ADR OF TRACKS 17B7 B881 0001 1319 CSK A,1(X) EQUAL TO H TRACK? 17B8 9E82 17BB 1320 JMP $+3  NO, TRY AGAIN 17B9 0000 1321 NOP 17BA 9E83 17BE 1322 JMP JTEND YES, DONE 17BB DF94 17D0 1323 IMS TRM BUMP TRACK 17BC 0000 1324 NOP 17BD 9F96 17D4 1325 JMP JTLOOP REPEAT 17BE 0000 1326 JTEND NOP 17BF 8391 17D1 1327 LPHEAD HEADJ,JHEAD 17C0 0C01  1327+ 17C1 9E83 17C5 1327+ 17C2 DF8E 17D1 1327+ 17C3 0000 1327+ 17C4 9F90 17D5 1327+ 17C5 838C 17D2 1328 JEND COPY PTR,A UNIT PTR 17C6 0C03 1329 CLSN A,=3 EQUAL TO MAX VALUE 3? 17C7 9E83 17CB 1330 JMP JOUT YES, EXIT 17C8 DF89 17D2 1331 IMS PTR NO, BUMP COUNT 17C9 0000 1332 NOP 17CA 9F8B 17D6 1333 JMP JBEGIN REPEAT 17CB 0000 1334 JOUT NOP ALL DONE 18C3 18C7 1335 EXIT 1PAGE 0110 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:25.00 TEST K WRITE DATA AND READ DATA : CROSS CYL INTERFERENCE 18C3 18C7 1337 DEFINE FDC:K 17D7 0002 1338 ENDEF 17D7 1340 NAM FDC:K 18C3 18C7 1341 FDC:K ENTRY 1342 * LOOP OVER UNITS 17E6 0900 1343 COPY =0,A 17E7 876A 17D2 1344  COPY A,PTR UNITS PTR 17E8 2941 1345 KBEGIN COPY =UNITS,X ADR OF UNITS 17E9 8368 17D2 1346  COPY PTR,A GET UNITS PTR 17EA 030A 1347 XNX A 17EB 8080 0000 1348 COPY 0(X),A GET UNIT ENTRY 17EC 1141 17EE 1349 JEQ A,$+2 17ED 9E81 17EF 1350 JMP $+2 17EE 9F9A 1809 1351 JMP KEND IF UNIT=0, NO TEST 17EF 0AFF 1352 SUB =1,A 17F0 8799 180A  1353 COPY A,UNIT STORE CURRENT UNIT 1354 * LOOP OVER HEADS 17F1 0900 1355  HEADLP KHEAD,HEADK 17F2 875E 17D1 1355+ 17F3 835D 17D1 1355+ 17F4 C396 180B 1355+ 17F5 4C02 1355+ 17F6 9E83 17FA 1355+ 17F7 400A 1355+ 17F8 9E81 17FA 1355+ 17F9 9F92 180C 1355+ 17FA 8292 180D 1356 ERRCODE :0B00 2 17FB 0404 1356+ 17FC 0900 1356+ 17FD 8788 1806 1356+ 18C3 18C7 1357 K0 CALL RECAL 1810 C286 1817 1358 ERROR K,'RECALIBRATE COMMAND FAILED',K0 1811 2926 1358+ 1812 FF82 1815 1358+ 1813 9E6A 17FE 1358+ 1814 9E98 182D 1358+ 1815 0000 FAULT 1816 1B34 RECAL 1817 181A !MSG02C4 1818 1PAGE 0111 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:27.25 TEST K WRITE DATA AND READ DATA : CROSS CYL INTERFERENCE 1819 181A 0D0A  1358+ 181B 5445 1358+ 181C 5354 181D 204B 181E 202D 181F 2052 1820 4543 1821 414C 1822 4942 1823 5241 1824 5445 1825 2043 1826 4F4D 1827 4D41 1828 4E44 1829 2046 182A 4149 182B 4C45 182C 4420 1359 * LOOP OVER TRACKS - WRITE 182D 2945 1360 KTWBEGIN COPY =TRACKS,X ADR OF TRACKS 182E 8080 0000 1361 COPY 0(X),A L TRACK 182F 8720 17D0 1362 COPY A,TRM CURRENT TRACK 1830 0901 1363 COPY  =1,A NOT ZERO 1831 878D 183F 1364 COPY A,BUFR FIRST WORD OF BUFFER 1832 0000 1365 KTWLOOP NOP 1833 828C 1840 1366 ERRCODE :0B03 1834 0404 1366+ 1835 0900 1366+ 1836 874F 1806 1366+  18C3 18C7 1367 K3 CALL SEEK 1843 C285 1849 1368 ERROR K,'SEEK COMMAND FAILED',K3 1844 291E 1368+ 1845 FF4F 1815 1368+ 1846 9E70 1837 1368+ 1847 9E93 185B 1368+ 1848 1B5F SEEK 1849 184C !MSG02C6 184A 184B 184C 0D0A 1368+ 184D 5445 1368+ 1PAGE 0112 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:28.75 TEST K WRITE DATA AND READ DATA : CROSS CYL INTERFERENCE 184E 5354 184F 204B 1850 202D 1851 2053 1852 4545 1853 4B20 1854 434F 1855 4D4D 1856 414E 1857 4420 1858 4641 1859 494C 185A 4544 1369 * CHANGE STATE OF BUFFER. FIRST BUFFER IS ZEROS 18C3 18C7 1370 CALL BUFALT 1371 * LOOP OVER SECTORS - WRITE DATA 1865 2947 1372 COPY =SECTORS,X ADR OF SECTORS 1866 8080 0000 1373 COPY 0(X),A L SECTOR 1867 878E 1876 1374 COPY A,SECTOR CURRENT SECTOR 1868 0000 1375 KSWLP NOP  SECTORS WRITE LOOP 1869 828E 1878 1376 ERRCODE :0B01 186A 0404 1376+ 186B 0900 1376+ 186C 8719 1806 1376+ 18C3 18C7 1377 K1 CALL OUTPUT,=128 WRITE SECTOR 1378 * CHECK FOR ERRORS! 187B C285 1881 1379 ERROR K,'WRITE SECTOR COMMAND FAILED',K1 187C 2926 1379+ 187D FF17 1815 1379+ 187E 9E6E 186D 1379+ 187F 9E97 1897 1379+ 1880 1C16 OUTPUT 1881 1884 !MSG02C9 1882 1883 1884 0D0A 1379+ 1885 5445 1379+ 1886 5354 1887 204B 1888 202D 1889 2057 188A 5249 188B 5445 1PAGE 0113 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:30.75 TEST K WRITE DATA AND READ DATA : CROSS CYL INTERFERENCE 188C 2053 188D 4543 188E 544F 188F 5220 1890 434F 1891 4D4D 1892 414E 1893 4420 1894 4641 1895 494C 1896 4544 1897 835E 1876 1380 COPY SECTOR,A CURRENT SECTOR 1898 2947 1381 COPY =SECTORS,X ADR OF SECTORS 1899 B881 0001 1382 CS3 K A,1(X) EQUAL TO H SECTOR? 189A 9E82 189D 1383 JMP $+3 NO, TRY AGAIN 189B 0000 1384 NOP 189C 9E83 18A0 1385 JMP KSWDONE YES, DONE 189D DF58 1876 1386 IMS SECTOR BUMP SECTOR 189E 0000 1387 NOP 189F 9E48 1868 1388 JMP KSWLP REPEAT 18A0 0000 1389 KSWDONE NOP END OF SECTORS WRITE LOOP 18A1 8395 18B7 1390 COPY TRM,A GET TRACK 18A2 2945 1391 COPY =TRACKS,X ADR OF TRACKS 18A3 B881 0001 1392 CSK A,1(X)  EQUAL TO H TRACK? 18A4 9E82 18A7 1393 JMP $+3 NO, TRY AGAIN 18A5 0000 1394 NOP  18A6 9E83 18AA 1395 JMP KWEND YES, DONE 18A7 DF8F 18B7 1396 IMS TRM BUMP TRACK 18A8 0000 1397 NOP 18A9 9E08 1832 1398 JMP KTWLOOP REPEAT 18AA 0000 1399 KWEND NOP END OF TRACKS WRITE 18AB 828D 18B9 1400 ERRCODE :1B00 18AC 0404 1400+ 18AD 0900 1400+ 18AE 8789 18B8 1400+ 18C3 18C7 1401 K00 CALL RECAL 18BC C286 18C3 1402 ERROR K,'RECALIBRATE COMMAND FAILED',K00 18BD 2926 1402+ 18BE FF82 18C1 1402+ 18BF 9E6F 18AF 1402+ 18C0 9E98 18D9 1402+ 18C1 0000 FAULT 18C2 1B34 RECAL 1PAGE 0114 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:33.00 TEST K WRITE DATA AND READ DATA : CROSS CYL INTERFERENCE 18C3 18C6 !MSG02CB 18C4 18C5 18C6 0D0A 1402+ 18C7 5445 1402+ 18C8 5354 18C9 204B 18CA 202D 18CB 2052 18CC 4543 18CD 414C 18CE 4942 18CF 5241 18D0 5445 18D1 2043 18D2 4F4D 18D3 4D41 18D4 4E44 18D5 2046 18D6 4149 18D7 4C45 18D8 4420 1403 * LOOP OVER TRACKS - READ 18D9 2945 1404 KTRBEGIN COPY =TRACKS,X ADR OF TRACKS 18DA 8080 0000 1405 COPY 0(X),A L TRACK 18DB 875B 18B7 1406 COPY A,TRM CURRENT TRACK 18DC 0901 1407 COPY =1,A NOT ZERO 18DD 878D 18EB 1408 COPY A,BUFR FIRST WORD OF BUFFER 18DE 0000 1409 KTRLOOP NOP 18DF 828C 18EC 1410  ERRCODE :1B03 18E0 0404 1410+ 18E1 0900 1410+ 18E2 8755 18B8 1410+ 18C3 18C7 1411 K30 CALL SEEK 18EF C285 18F5 1412 ERROR K,'SEEK COMMAND FAILED',K30 18F0 291E 1412+ 18F1 FF4F 18C1 1412+ 18F2 9E70 18E3 1412+ 18F3 9E93 1907 1412+ 18F4 1B5F SEEK 18F5 18F8 !MSG02CD 18F6 18F7 1PAGE 0115 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:34.50 TEST K WRITE DATA AND READ DATA : CROSS CYL INTERFERENCE 18F8 0D0A  1412+ 18F9 5445 1412+ 18FA 5354 18FB 204B 18FC 202D 18FD 2053 18FE 4545 18FF 4B20 1900 434F 1901 4D4D 1902 414E 1903 4420 1904 4641 1905 494C 1906 4544 1413 * CHANGE STATE OF BUFFER. FIRST BUFFER IS ZEROS 18C3 18C7 1414 CALL BUFALT 1415 * LOOP OVER SECTORS - READ DATA 1911 2947 1416 COPY =SECTORS,X ADR OF SECTORS 1912 8080 0000 1417 COPY 0(X),A L SECTOR 1913 878D 1921 1418 4  COPY A,SECTOR CURRENT SECTOR 1914 0000 1419 KSRLP NOP SECTORS READ LOOP 1915 828D 1923 1420 ERRCODE :0B02 1916 0404 1420+ 1917 0900 1420+ 1918 871F 18B8 1420+ 18C3 18C7 1421 K2 CALL INPUT READ SECTOR 1926 C285 192C 1422 ERROR K,'READ SECTOR COMMAND FAILED',K2 1927 2926  1422+ 1928 FF18 18C1 1422+ 1929 9E6F 1919 1422+ 192A 9E97 1942 1422+ 192B 1C54 INPUT 192C 192F !MSG02D0 192D 192E 192F 0D0A 1422+ 1930 5445 1422+ 1931 5354 1932 204B 1933 202D 1934 2052 1935 4541 1PAGE 0116 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:36.50 TEST K WRITE DATA AND READ DATA : CROSS CYL INTERFERENCE 1936 4420 1937 5345 1938 4354 1939 4F52 193A 2043 193B 4F4D 193C 4D41 193D 4E44 193E 2046 193F 4149 1940 4C45 1941 4420 1942 366D 1970 1423 JT OV,K4 1424 * CHECK FOR ERRORS! 18C3 18C7 1425 CALL BUFCOMP,=0 COMPARE TO OUTPUT BUFFER 194E C285 1954 1426 ERROR K,'DATA BUFFER DOES NOT MATCH DISK DATA',K2 194F 2930 1426+ 1950 FF84 1955 1426+ 1951 9E47 1919 1426+ 1952 9E9D 1970 1426+ 1953 1A37 BUFCOMP 1954 1958 !MSG02D2 1955 0000 FAULT 1956 1957 1958 0D0A 1426+ 1959 5445 1426+ 195A 5354 195B 204B 195C 202D 195D 2044 195E 4154 195F 4120 1960 4255 1961 4646 1962 4552 1963 2044 1964 4F45 1965 5320 1966 4E4F 1967 5420 1968 4D41 1969 5443 1PAGE 0117 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:37.75 TEST K WRITE DATA AND READ DATA : CROSS CYL INTERFERENCE 196A 4820 196B 4449 196C 534B 196D 2044 196E 4154 196F 4120 1970 8330 1921 1427 K4 COPY  SECTOR,A CURRENT SECTOR 1971 2947 1428 COPY =SECTORS,X ADR OF SECTORS 1972 B881 0001 1429  CSK A,1(X) EQUAL TO H SECTOR? 1973 9E82 1976 1430 JMP $+3 NO, TRY AGAIN 1974 0000  1431 NOP 1975 9E83 1979 1432 JMP KSRDONE YES, DONE 1976 DF2A 1921 1433 IMS  SECTOR BUMP SECTOR 1977 0000 1434 NOP 1978 9E1B 1914 1435 JMP KSRLP REPEAT 1979 0000 1436 KSRDONE NOP END OF SECTORS READ LOOP 197A 839A 1995 1437 COPY TRM,A  GET TRACK 197B 2945 1438 COPY =TRACKS,X ADR OF TRACKS 197C B881 0001 1439 CSK A,1(X) EQUAL TO H TRACK? 197D 9E82 1980 1440 JMP $+3 NO, TRY AGAIN 197E 0000 1441  NOP 197F 9E83 1983 1442 JMP KREND YES, DONE 1980 DF94 1995 1443 IMS TRM BUMP TRACK 1981 0000 1444 NOP 1982 9F93 1996 1445 JMP KTRLOOP REPEAT 1983 0000 1446 KREND NOP END OF TRACKS READ 1984 8392 1997 1447 LPHEAD HEADK,KHEAD 1985 0C01 1447+ 1986 9E83 198A 1447+ 1987 DF8F 1997 1447+ 1988 0000 1447+ 1989 9F8E 1998 1447+ 198A 838E 1999 1448 KEND COPY PTR,A UNIT PTR 198B 0C03 1449 CLSN A,=3 EQUAL TO MAX VALUE 3? 198C 9E83 1990 14505  JMP KOUT YES, EXIT 198D DF8B 1999 1451 IMS PTR NO, BUMP COUNT 198E 0000  1452 NOP 198F 9F8A 199A 1453 JMP KBEGIN REPEAT 1990 0000 1454 KOUT NOP  ALL DONE 18C3 18C7 1455 EXIT 1PAGE 0118 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:39.75 BUFFER INITIALIZATION ROUTINES 18C3 18C7 1457 SYSDEF BUFUSER 199B 0002 1458  ENDEF 199B 1459 NAM BUFUSER 18C3 18C7 1460 BUFUSER ENTRY 1461 * INITIALIZE BUFFER TO USER PATTERN (1 SECTOR) 19AA 8390 19BB 1462 COPY PATTERN,A ONE BYTE 19AB 0E71 1463 SHIFT A,LO,8 IN LEFT BYTE 19AC B78E 19BB 1464 OR PATTERN,A BOTH BYTES 19AD C38C 19BA 1465 COPY NBYTES,Q BYTES/SECTOR 19AE 4E09 1466 SHIFT Q,RO,1 DIVIDE BY 2 19AF 4041 1467 NEG Q,Q -WORDS/SECTOR 19B0 2957 1468 COPY =BUFR,X ADR OF BUFR  19B1 8480 0000 1469 COPY A,0(X) WRITE PATTERN WORD 19B2 2B01 1470 ADD =1,X  BUMP X 19B3 54BD 19B1 1471 IJNE Q,$-2 REPEAT 18C3 18C7 1472 EXIT 18C3 18C7 1474 SYSDEF BUFCON 19BC 0002 1475 ENDEF 19BC 1476 NAM BUFCON 18C3 18C7 1477 BUFCON ENTRY 1478 * INITIALIZE BUFFER TO A CONSTANT (1 SECTOR) 1479 * CONSTANT BYTE PASSED IN A REG 19CB 4000 1480 COPY A,Q CONSTANT IN Q REG 19CC 0E71 1481 SHIFT A,LO,8 CONSTANT IN LEFT BYTE 19CD 0047 1482 OR Q,A BOTH BYTES OF A REG = CONSTANT 19CE C36B 19BA 1483 COPY NBYTES,Q 19CF 4E09 1484 SHIFT Q,RO,1 DIVIDE BY 2 19D0 4041 1485 NEG Q,Q -WORDS/SECTOR 19D1 2957 1486 COPY =BUFR,X ADR OF BUFR 19D2 8480 0000 1487 COPY A,0(X) WRITE CONSTANT WORD 19D3 2B01 1488 ADD =1,X  BUMP X 19D4 54BD 19D2 1489 IJNE Q,$-2 REPEAT 18C3 18C7 1490 EXIT 18C3 18C7 1492 SYSDEF BUFINCR 19D9 0002 1493 ENDEF 19D9 1494 NAM BUFINCR 18C3 18C7 1495 BUFINCR ENTRY 1496 * INITIALIZE BUFFER TO INCREMENTING DATA PATTERN 1497 * THE ENTIRE BUFFER IS ZEROED (2 SECTORS) 1PAGE 0119 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:42.75 BUFFER INITIALIZATION ROUTINES 1498 * A REG = NUMBER OF BYTES TO FILL 1499 *  1500 * ZERO THE BUFFER 19E8 0900 1501 COPY =0,A 19E9 C350 19BA 1502 COPY NBYTES,Q 19EA 4041 1503 NEG Q,Q -2 * WORDS/SECTOR 19EB 2957 1504 COPY =BUFR,X ADR OF BUFFER 19EC 8480 0000 1505 COPY A,0(X) ZERO THE BUFFER 19ED 2B01 1506 ADD =1,6 X BUMP X 19EE 54BD 19EC 1507 IJNE Q,$-2 REPEAT 1508 * 1509 * FILL IN WITH PATTERN (:0-:FF) 19EF 2070 1510 COPY K,X 19F0 C082 0002 1511 COPY AREG(X),Q  GET RECORD LENGTH 19F1 8395 1A07 1512 COPY N,A BYTES/SECTOR CODE 19F2 0C00 1513 CLSN A,=0 19F3 4E09 1514 SHIFT Q,RO,1 N=0, DIVIDE BY 2 19F4 0C01 1515 CLSN A,=1 19F5 0000 1516 NOP N=1, OK 19F6 0C02 1517 CLSN A,=2 19F7 4E01  1518 SHIFT Q,LO,1 N=2, MULTIPLY BY 2 19F8 0901 1519 COPY =1,A START WITH :0001 19F9 4041 1520 NEG Q,Q -COUNT OF WORDS 19FA 2957 1521 COPY =BUFR,X ADR OF BUFFER 19FB 8480 0000 1522 INCRWR COPY A,0(X) WRITE PATTERN 19FC 0CFF 1523 CLSN A,=:FF END OF PATTERN? 19FD 9E82 1A00 1524 JMP INCRST YES, RESTART 19FE 8A89 1A08 1525 ADD =:0202,A NO, INCREMENT EACH BYTE BY 2 19FF 9E81 1A01 1526 JMP $+2 1A00 0901 1527 INCRST COPY =1,A START WITH :0001 1A01 2B01 1528 ADD =1,X BUMP X 1A02 54B8 19FB 1529  IJNE Q,INCRWR REPEAT 18C3 18C7 1530 EXIT 18C3 18C7 1532 SYSDEF BUFALT  1A09 0002 1533 ENDEF 1A09 1534 NAM BUFALT 18C3 18C7 1535 BUFALT ENTRY  1536 * ALTERNATE BUFFER ZEROS, ONES, ETC. (1 SECTOR) 1A18 838A 1A23 1537 COPY BUFR,A FIRST WORD OF BUFFER 1A19 114D 1A27 1538 JEQ A,BUFONE ZERO? 18C3 18C7 1539 CALL BUFCON,=:00 NO , MAKE BUFFER ZEROS 1PAGE 0120 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:45.50 BUFFER INITIALIZATION ROUTINES 1A26 9E8C 1A33 1540 JMP BUFOUT 18C3 18C7 1541 BUFONE CALL BUFCON,=:FF YES, MAKE BUFFER ONES 18C3 18C7 1542 BUFOUT EXIT 18C3 18C7 1544 SYSDEF BUFCOMP 1A37 0002 1545 ENDEF 1A37 1546 NAM BUFCOMP 18C3 18C7 1547 BUFCOMP ENTRY 1548 * COMPARE OUTPUT BUFFER TO INPUT BUFFER (1 SECTOR) 1549 * A REG = NUMBER OF OUTPUT BUFFER (0 OR 1) - ON RETURN IS 1550 * 0 = EQUAL, 1 = NOT EQUAL. 1A46 C3A5 1A6C 1551 COPY NBYTES,Q BYTES/SECTOR 1A47 4E09 1552 SHIFT Q,RO,1 WORDS/SECTOR 1A48 2957 1553 COPY =BUFR,X ADR OF OUTPUT BUFFER 1A49 1141 1A4B 1554 JEQ A,$+2 BUFFER 0 1A4A 2042 1555 ADD Q,X  BUFFER 1, ADD RECORD OFFSET 1A4B E2A1 1A6D 1556 COPY =INBUFR,Y ADR OF INPUT BUFFER 1A4C 4041 1557  NEG Q,Q -COUNT OF WORDS 1558 * COMPARE THE BUFFERS 1A4D 8080 0000 1559 COPY 0(X),A BUFR WORD 1A4E 9840 0000 1560 XOR 0(Y),A COMPARE TO INBUFR WORD 1A4F 11CA 1A5A 15617  JNE A,BUFDIF DIFFERENT? 1A50 2B01 1562 ADD =1,X BUMP X 1A51 6B01 1563 ADD =1,Y BUMP Y 1A52 54BA 1A4D 1564 IJNE Q,$-5 REPEAT 1565 *  1A53 0900 1566 COPY =0,A FLAG DATA BUFFER MATCHED WITHOUT ERROR 1A54 2070 1567 COPY K,X 1A55 8482 0002 1568 COPY A,AREG(X) SAVE A REG 18C3 18C7 1569 EXIT  1570 * 1571 * TELL WHAT DIDN'T MATCH 1572 * 1A5A 4309 1573 BUFDIF PUSH :40 SAVE ALL REGS 1A5B 0040 1A71 9E91 1A83 1574 TEXT CR,LF,'*** DATA WRITTEN TO DISK (' 1A72 0001 O:MSG 1A73 1A74 0D0A 1574+ 1A75 2A2A 1A76 2A20 1A77 4441 1PAGE 0121 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:49.75 BUFFER INITIALIZATION ROUTINES 1A78 5441 1A79 2057 1A7A 5249 1A7B 5454 1A7C 454E 1A7D 2054 1A7E 4F20 1A7F 4449 1A80 534B 1A81 2028 1A82 001C 1574+ 1A83 6309 1575 POP GET REGS 1A84 4309 1576 PUSH :40 AND SAVE THEM AGAIN 1A85 0040 1A86 0C00 1577 CLSN  =0,A WHAT BYTE WAS WRONG 1A87 9E82 1A8A 1578 JMP DOUPPER UPPER BYTE IN ERROR 1A88 8080 0000  1579 COPY 0(X),A 1A89 9E82 1A8C 1580 JMP PRTWRTN PRINT LOWER BYTE 1581 * 1A8A 8080 0000 1582 DOUPPER COPY 0(X),A 1A8B 0E79 1583 SHIFT A,RO,8 PRINT UPPER BYTE 1A8C 18FF 1584 PRTWRTN AND =:FF,A ISOLATE BYTE 1A8D 0000 1585 HEX A PRINT IT 1A8E 8457 0017 1585+ 1AAD 9E90 1ABE 1586 TEXT ') DOES NOT MATCH DATA READ (' 1AAE 1AAF 2920 1586+ 1AB0 444F 1AB1 4553 1AB2 204E 1AB3 4F54 1AB4 204D 1AB5 4154 1AB6 4348 1AB7 2044 1AB8 4154 1AB9 4120 1ABA 5245 1ABB 4144 1ABC 2028 1ABD 001C 1586+ 1ABE 6309 1587 POP RESTORE REGS 1588 * 1PAGE 0122 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:53.75 BUFFER INITIALIZATION ROUTINES 1ABF 0C00 1589 CLSN =0,A WHAT BYTE WAS IN ERROR 1AC0 9E82 1AC3 1590 JMP DOUPPER2 UPPER BYTE 1AC1 8040 0000 1591 COPY 0(Y),A GET DATA READS FROM DISK 1AC2 9E82 1AC5 1592 JMP  PRTREAD 1AC3 8040 0000 1593 DOUPPER2 COPY 0(Y),A PRINT UPPER BYTE 1AC4 0E79 1594 SHIFT A,RO,8 1595 * 1AC5 18FF 1596 PRTREAD AND =:FF,A GET LOWER BYTE ONLY 1AC6 0000 1597 4455 1AE9 5249 1AEA 4E47 1AEB 0008 1598+ 1599 * 1AEC 0901 1600 COPY =1,A  FLAG BAD NEWS 1AED 2070 1601 COPY K,X 1AEE 8482 0002 1602 COPY A,AREG(X) 18C3 18C7  1603 EXIT 1PAGE 0123 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:35:58.00 FMT - LOOK UP 8 SC AND GPL FORMAT 18C3 18C7 1605 SYSDEF FMT 1AF3 0002 1606 ENDEF 1AF3 1607  NAM FMT 18C3 18C7 1608 FMT ENTRY 1609 * COMPUTE SECTORS/TRACK AND GAP LENGTHS  1610 * ON RETURN A REG = SC Q REG = GPL 1B02 83AD 1B30 1611 COPY DENSITY,A GET DENSITY FLAG 1B03 11C2 1B06 1612 JNE A,FMTDD DOUBLE 1B04 A2AC 1B31 1613 COPY =SDTABLE,X POINT TO SINGLE DENSITY TABLE 1B05 9E81 1B07 1614 JMP FMT2 1615 * 1B06 A2AB 1B32 1616 FMTDD COPY =DDTABLE,X POINT TO DOUBLE DENSITY TABLE 00001B07 1617 FMT2 EQU $ 1B07 83AB 1B33 1618 COPY N,A BYTES/SECTOR CODE 0,1,2 1B08 0E11 1619 SHIFT A,LO,2 *4 1B09 2002 1620 ADD A,X CORRECT BYTES/SECTOR 1B0A 803E 003E 1621 COPY DRIVE,A 0=FLOPPY 1=MINIFLOPPY 1B0B 0E01 1622 SHIFT A,LO,1 *2 1B0C 2002 1623 ADD A,X CORRECT DRIVE 1B0D 8080 0000 1624 COPY 0(X),A GET SECTORS/TRACK 1B0E C081 0001 1625 COPY 1(X),Q GAP LENGTHS 1B0F 2070 1626 COPY K,X 1B10 8482 0002 1627 COPY A,AREG(X) SAVE A REG 1B11 C483 0003 1628 COPY Q,QREG(X) SAVE Q REG 18C3 18C7 1629 EXIT 1630 * 1B16 001A  1631 SDTABLE WORD 26 8" 128 SINGLE DENSITY 1B17 071B 1632 WORD :071B 1B18 0010 1633 WORD 16 5" 128 1B19 071B 1634 WORD :071B 1B1A 000F 1635 WORD  15 8" 256 1B1B 0E2A 1636 WORD :0E2A 1B1C 0008 1637 WORD 8 5" 256 1B1D 0E2A 1638 WORD :0E2A 1B1E 0008 1639 WORD 8 8" 512 1B1F 1B3A  1640 WORD :1B3A 1B20 0004 1641 WORD 4 5" 512 1B21 1B3A 1642 WORD :1B3A 1643 * 00001B22 1644 DDTABLE EQU $ 1B22 FFFF 1645 WORD -1  INVALID DOUBLE DENSITY 1B23 FFFF 1646 WORD -1 1B24 FFFF 1647 WORD -1 1PAGE 0124 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:36:00.00 FMT - LOOK UP SC AND GPL FORMAT 1B25 FFFF 1648 WORD -1 1B26 001A 1649 WORD 26 8" 256 1B27 0E36 1650  WORD :0E36 1B28 0010 1651 WORD 16 5" 256 1B29 0E36 1652 WORD :0E36 1B2A 000F 1653 WORD 15 8" 512 1B2B 1B54 1654 WORD :1B54 1B2C 0009 1655  WORD 9 5" 512 1B2D 1B54 1656 WORD :1B54 1PAGE 0125 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:36:00.50 RECALIBRATE CURRENT UNIT 18C3 18C7 1658 SYSDEF RECAL  1B34 0002 1659 ENDEF 1B34 1660 NAM RECAL 18C3 18C7 1661 RECAL ENTRY 1B43 E9 297 1B5B 1662 COPY =Y1,Y SCRATCHPAD #1 1B44 090B 1663 COPY =UF:RECAL,A RECALIBRATE 1B45 8455 0015 1664 COPY A,UF:FC(Y) FUNCTION CODE 1B46 0900 1665 COPY =0,A ZERO 1B47 8441 0001 1666 COPY A,UF:HD(Y) HEAD ADR 1B48 8393 1B5C 1667 COPY UNIT,A CURRENT 1B49 845C 001C 1668 COPY A,UF:US(Y) UNIT SELECT 1B4A FF92 1B5D 1669 JSK UFDC 1B4B 8056 0016 1670 COPY UF:ERR(Y),A 1B4C 11C7 1B54 1671 JNE A,RECALOUT 1672 * S.I.S. 1B4D 090E 1673 COPY =UF:SIS,A S.I.S. 1B4E 8455 0015 1674 COPY A,UF:FC(Y) FUNCTION CODE 1B4F FF8D 1B5D 1675 JSK UFDC 1676 * CHECK FOR ERRORS! RETURN ERROR CODE IN A REG 1B50 804B 000B 1677 GETERR 1B51 18C0 1677+ 1B52 0E71 1677+ 1B53 B456 0016 1677+ 1B54 2070 1678 RECALOUT COPY K,X 1B55 8482 0002 1679 COPY A,AREG(X) SAVE A REG 1B56 E787 1B5E 1680 COPY Y,YSAVE  18C3 18C7 1681 EXIT 1PAGE 0126 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:36:02.00 SEEK CURRENT TRACK 18C3 18C7 1683 SYSDEF SEEK 1B5F 0002 1684 ENDEF 1B5F 1685  NAM SEEK 18C3 18C7 1686 SEEK ENTRY 1B6E E26C 1B5B 1687 COPY =Y1,Y SCRATCHPAD #1 1B6F 090C 1688 COPY =UF:SEEK,A SEEK 1B70 8455 0015 1689 COPY A,UF:FC(Y) FUNCTION CODE 1B71 8399 1B8B 1690 COPY HEAD,A 0 OR 1 1B72 8441 0001 1691 COPY A,UF:HD(Y) HEAD ADR 1B73 8368 1B5C 1692 COPY UNIT,A CURRENT 1B74 845C 001C 1693 COPY A,UF:US(Y) UNIT SELECT 1B75 8396 1B8C 1694 COPY TRM,A 1B76 844A 000A 1695 COPY A,UF:NCN(Y) NEW CYL NUMBER 1B77 FF65 1B5D 1696 JSK UFDC 1B78 8056 0016 1697 COPY UF:ERR(Y),A 1B79 11CA 1B84 1698 JNE  A,SEEKOUT 1699 * S.I.S. 1B7A 090E 1700 COPY =UF:SIS,A S.I.S. 1B7B 8455 0015 1701 COPY A,UF:FC(Y) FUNCTION CODE 1B7C FF60 1B5D 1702 JSK UFDC 1703 * CHECK FOR ERRORS! RETURN ERROR CODE IN A REG 1B7D 804B 000B 1704 GETERR 1B7E 18C0 1704+ 1B7F 0E71 1704+ 1B80 B456 0016 1704+ 1B81 11C2 1B84 1705 JNE A,SEEKOUT 1B82 8053 0013 1706 COPY UF:PCN(Y),A PRESENT CYL NUMBER 1B83 9B88 1B8C 1707 XOR TRM,A =TRACK? 1B84 2070 1708 SEEKOUT COPY K,X 1B85 8482 0002 1709 COPY A,AREG(X) SAVE A REG 1B86 E757 1B5E 1710 COPY Y,YSAVE 18C3 18C7 1711 EXIT 1PAGE 0127 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:36:04.00 SCAN EQUAL 1 OR 2 SECTORS (MT=1) 18C3 18C7 1713 SYSDEF SCAN 1B8D 0002 1714 ENDEF 1B8D 1715  NAM SCAN 18C3 18C7 1716 SCAN ENTRY 1717 * SCAN EQUAL. 1 SECTOR IF MT=0 AND 2 SECTORS IF:  MT=1 1718 * A REG = MT = 0 OR 1 1719 * ON RETURN IS ERROR CODE 1B9C E23E 1B5B 1720  COPY =Y1,Y SCRATCHPAD #1 1B9D 0908 1721 COPY =UF:SCEQ,A SCAN EQUAL 1B9E 8455 0015 1722 COPY A,UF:FC(Y) FUNCTION CODE 1B9F 0957 1723 COPY =BUFR,A BUFFER IN RAM 1BA0 8459 0019 1724 COPY A,UF:DMA(Y) DMA ADR 1BA1 2070 1725 COPY K,X 1BA2 8082 0002 1726  COPY AREG(X),A RESTORE A REG 1BA3 845D 001D 1727 COPY A,UF:MT(Y) MT= 0 OR 1 (ONE SIDE OR BOTH) 1BA4 C3A7 1BCC 1728 COPY NBYTES,Q BYTES/SECTOR 1BA5 1141 1BA7 1729 JEQ A,$+2 MT=0 ? 1BA6 4042 1730 ADD Q,Q NO, DOUBLE BYTE COUNT, 2 SECTORS 1BA7 C45A 001A 1731 COPY Q,UF:BCT(Y) DMA BYTE COUNT 1BA8 8307 1B30 1732 COPY DENSITY,A 1BA9 845E 001E 1733 COPY A,UF:MF(Y) DENSITY 1BAA 0901 1734 COPY =1,A 1BAB 845F 001F 1735 COPY A,UF:SK(Y) SCAN ALL SECTORS 1BAC 835E 1B8B 1736 COPY HEAD,A 1BAD 8441 0001 1737 COPY A,UF:HD(Y) HEAD ADR 0 OR 1 1BAE 832D 1B5C 1738 COPY UNIT,A 1BAF 845C 001C 1739 COPY A,UF:US(Y) UNIT SELECT 1BB0 835B 1B8C 1740 COPY TRM,A 1BB1 8440 0000 1741 COPY A,UF:C(Y) CYL NUMBER 1BB2 8395 1BC8 1742 COPY SECTOR,A 1BB3 8442 0002 1743 COPY A,UF:R(Y) START SECTOR 1BB4 8394 1BC9 1744 COPY N,A 1BB5 8443 0003 1745 COPY A,UF:N(Y) BYTES/SECTOR CODE 1BB6 8393 1BCA 1746 COPY SC,A 1BB7 8444 0004 1747 COPY A,UF:EOT(Y) SECTORS/TRACK 1BB8 8392 1BCB 1748 COPY GPL,A 1BB9 8445 0005 1749 COPY A,UF:GPL(Y) GAP LENGTH 1BBA 0901 1750 COPY =1,A 1BBB 8449 0009 1751 COPY A,UF:STP(Y) SCAN EACH SECTOR 1BBC FF20 1B5D 1752 JSK UFDC 1753 * CHECK FOR ERRORS! RETURN ERROR CODE IN A REG 1BBD 804B 000B 1754 GETERR 1BBE 18C0 1754+ 1PAGE 0128 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:36:06.50 SCAN EQUAL 1 OR 2 SECTORS (MT=1) 1BBF 0E71 1754+ 1BC0 B456 0016 1754+ 1BC1 2070 1755 COPY K,X 1BC2 8482 0002 1756 COPY A,AREG(X) SAVE A REG 1BC3 E71A 1B5E 1757 COPY Y,YSAVE 18C3 18C7 1758 EXIT 1PAGE 0129 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:36:07.00 FORMAT A TRACK 18C3 18C7 1760 SYSDEF FORMAT,DENFMT,SCFMT,GPLFMT  1BCD 0002 1761 ENDEF 1BCD 1762 NAM FORMAT 18C3 18C7 1763 FORMAT ENTRY  1764 * FORMAT A TRACK. SECTORS TABLE IS IN BUFR 1765 * A REG = 0 (SINGLE DENSITY) OR 1 (DOUBLE DENSITY) 1766 * ON RETURN IS ERROR CODE 1767 * 1768 * BUILD FORMAT TABLE 1BDC 4900 1769 COPY =0,Q SECTOR COUNTER 1BDD 2957 1770 COPY =BUFR,X ADR OF TAB; LE 1BDE 4B01 1771 FBUILD ADD =1,Q BUMP COUNT 1BDF 832C 1B8C 1772 COPY TRM,A CYL NUMBER 1BE0 0E71 1773 SHIFT A,LO,8 IN LEFT BYTE 1BE1 B729 1B8B 1774 OR HEAD,A  CYL/HEAD 1BE2 8480 0000 1775 COPY A,0(X) FIRST WORD 1BE3 0040 1776 COPY Q,A  SECTOR NUMBER 1BE4 0E71 1777 SHIFT A,LO,8 IN LEFT BYTE 1BE5 B763 1BC9 1778 OR N,A BYTES/SECTOR IN RIGHT BYTE 1BE6 8481 0001 1779 COPY A,1(X) SECOND WORD 1BE7 2B02 1780 ADD =2,X POINT TO NEXT ENTRY 1BE8 F841 0001 1781 CSK Q,SCFMT(Y) DONE ALL SECTORS FOR TRACK? 1BE9 9E74 1BDE 1782 JMP FBUILD NO, DO ANOTHER 1BEA 0000 1783 NOP  YES, TABLE COMPLETE 1784 * FORMAT 1BEB 2060 1785 COPY Y,X X REG = STACK FRAME 1BEC E2A3 1C10 1786 COPY =Y1,Y SCRATCHPAD #1 1BED 090F 1787 COPY =UF:FMT,A  FORMAT 1BEE 8455 0015 1788 COPY A,UF:FC(Y) FUNCTION CODE 1BEF 0957 1789 COPY =BUFR,A  BUFFER IN RAM 1BF0 8459 0019 1790 COPY A,UF:DMA(Y) DMA ADR 1BF1 8081 0001 1791 COPY SCFMT(X),A SECTORS/TRACK 1BF2 0E11 1792 SHIFT A,LO,2 *4 1BF3 845A 001A 1793 COPY A,UF:BCT(Y) DMA BYTE COUNT 1BF4 8316 1B8B 1794 COPY HEAD,A 0 OR 1 1BF5 8441 0001 1795 COPY A,UF:HD(Y) HEAD ADR 1BF6 839A 1C11 1796 COPY UNIT,A 1BF7 845C 001C 1797 COPY A,UF:US(Y) UNIT SELECT 1BF8 8350 1BC9 1798 COPY N,A 1BF9 8443 0003 1799 COPY A,UF:N(Y) BYTES/SECTOR CODE 1BFA 8081 0001 1800 COPY SCFMT(X),A 1BFB 8447 0007 1801 COPY A,UF:SC(Y) SECTORS/TRACK 1BFC 8082 0002 1802 COPY GPLFMT(X),A 1PAGE 0130 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:36:09.25 FORMAT A TRACK 1BFD 8445 0005 1803 COPY A,UF:GPL(Y) GAP LENGTH 1BFE 8396 1C15 1804 COPY  PATTERN,A 1BFF 8448 0008 1805 COPY A,UF:D(Y) DATA PATTERN 1C00 8391 1C12 1806 COPY DENSITY,A DENSITY = 0 (SINGLE) OR 1 (DOUBLE) 1C01 845E 001E 1807 COPY A,UF:MF(Y) DENSITY = 0 OR 1 1C02 FF90 1C13 1808 JSK UFDC 1809 * CHECK FOR ERRORS! RETURN ERROR CODE IN A REG 1C03 804B 000B 1810  GETERR 1C04 18C0 1810+ 1C05 0E71 1810+ 1C06 B456 0016 1810+ 1C07 2070 1811 COPY K,X 1C08 8482 0002 1812 COPY A,AREG(X) SAVE A REG 1C09 E78A 1C14 1813 COPY Y,YSAVE 18C3 18C7 1814 EXIT 1PAGE 0131 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:36:10.25 BUFFER OUTPUT ROUTINE - WRITE A SECTOR 18C3 18C7 1816 SYSDEF OUTPUT 1C16 0002 1817 ENDEF 1C16 1818 NAM OUTPUT 18C3 18C7 1819 OUTPUT ENTRY 1820 * WRITE SECTOR FROM BUFR <  1821 * A REG = RECORD LENGTH - ON RETURN IS ERROR CODE 1C25 4000 1822 COPY A,Q RECORD LENGTH 1C26 E269 1C10 1823 COPY =Y1,Y SCRATCHPAD #1 1C27 0906 1824 COPY =UF:WD,A WRITE DATA 1C28 8455 0015 1825 COPY A,UF:FC(Y) FUNCTION CODE 1C29 0957 1826 COPY =BUFR,A BUFFER IN RAM 1C2A 8459 0019 1827 COPY A,UF:DMA(Y) DMA ADR 1C2B 0040 1828 COPY  Q,A GET RECORD LENGTH 1C2C C31C 1BC9 1829 COPY N,Q 0,1,2 1C2D C443 0003 1830 COPY Q,UF:N(Y) BYTES/SECTOR CODE 1C2E 5144 1C33 1831 JEQ Q,$+5 RECORD LENGTH OK, N=0 1C2F 4C01 1832 CLSN Q,=1 1C30 0E01 1833 SHIFT A,LO,1 N=1, RECD LENGTH *2 1C31 4C02 1834 CLSN Q,=2 1C32 0E11 1835 SHIFT A,LO,2 N=2, RECD LENGTH *4 1C33 845A 001A 1836  COPY A,UF:BCT(Y) DMA BYTE COUNT 1C34 835D 1C12 1837 COPY DENSITY,A 0 OR 1 1C35 845E 001E 1838 COPY A,UF:MF(Y) DENSITY 1C36 0900 1839 COPY =0,A 1C37 845D 001D 1840 COPY  A,UF:MT(Y) SINGLE SIDE 1C38 8399 1C52 1841 COPY HEAD,A 1C39 8441 0001 1842 COPY A,UF:HD(Y)  HEAD ADR 0 OR 1 1C3A 8356 1C11 1843 COPY UNIT,A 1C3B 845C 001C 1844 COPY A,UF:US(Y) UNIT SELECT 1C3C 8396 1C53 1845 COPY TRM,A 1C3D 8440 0000 1846 COPY A,UF:C(Y) CYL NUMBER 1C3E 8309 1BC8 1847 COPY SECTOR,A 1C3F 8442 0002 1848 COPY A,UF:R(Y) SECTOR NUMBER 1C40 8309 1BCA 1849 COPY SC,A 1C41 8444 0004 1850 COPY A,UF:EOT(Y) SECTORS/TRACK 1C42 8308 1BCB 1851  COPY GPL,A 1C43 8445 0005 1852 COPY A,UF:GPL(Y) GAP LENGTH 1C44 0980 1853 COPY =128,A 1C45 8446 0006 1854 COPY A,UF:DTL(Y) 128 BYTES/SECTOR (IF N=0) 1C46 FF4C 1C13 1855 JSK UFDC 1856 * CHECK FOR ERRORS! RETURN ERROR CODE IN A REG 1C47 804B 000B 1857 GETERR 1C48 18C0 1857+ 1PAGE 0132 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:36:12.75 BUFFER OUTPUT ROUTINE - WRITE A SECTOR 1C49 0E71 1857+ 1C4A B456 0016 1857+ 1C4B 2070 1858 COPY K,X 1C4C 8482 0002 1859  COPY A,AREG(X) SAVE A REG 1C4D E746 1C14 1860 COPY Y,YSAVE 18C3 18C7 1861 EXIT 1PAGE 0133 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:36:13.25 BUFFER INPUT ROUTINE - READ A SECTOR  18C3 18C7 1863 SYSDEF INPUT 1C54 0002 1864 ENDEF 1C54 1865 NAM INPUT 18C3 18C7 1866 INPUT ENTRY 1867 * READ SECTOR INTO INBUFR 1868 * THE RECORD LENGTH IS 128,256,512 FOR N=0,1,2 1869 * A REG = RETURNED ERROR CODE 1C63 E22C 1C10 1870 COPY  =Y1,Y SCRATCHPAD #1 1C64 0902 1871 COPY =UF:RD,A READ DATA 1C65 8455 0015 1872 CO= PY A,UF:FC(Y) FUNCTION CODE 1C66 82B9 1CA0 1873 COPY =INBUFR,A INPUT BUFFER IN RAM 1C67 8459 0019 1874 COPY A,UF:DMA(Y) DMA ADR 1C68 83B8 1CA1 1875 COPY NBYTES,A RECORD LENGTH 1C69 845A 001A 1876 COPY A,UF:BCT(Y) DMA BYTE COUNT 1C6A 8327 1C12 1877 COPY DENSITY,A 0 OR 1 1C6B 845E 001E 1878 COPY A,UF:MF(Y) DENSITY 1C6C 83B5 1CA2 1879 COPY N,A 0,1,2 1C6D 8443 0003 1880 COPY A,UF:N(Y) BYTES/SECTOR CODE 1C6E 0900 1881 COPY =0,A 1C6F 845D 001D 1882  COPY A,UF:MT(Y) SINGLE SIDE 1C70 0900 1883 COPY =0,A 1C71 845F 001F 1884 COPY  A,UF:SK(Y) DO NOT SKIP THIS SECTOR! 1C72 835F 1C52 1885 COPY HEAD,A 1C73 8441 0001 1886 COPY  A,UF:HD(Y) HEAD ADR 0 OR 1 1C74 831C 1C11 1887 COPY UNIT,A 1C75 845C 001C 1888 COPY A,UF:US(Y) UNIT SELECT 1C76 835C 1C53 1889 COPY TRM,A 1C77 8440 0000 1890 COPY A,UF:C(Y) CYL NUMBER 1C78 83AA 1CA3 1891 COPY SECTOR,A 1C79 8442 0002 1892 COPY A,UF:R(Y) SECTOR NUMBER 1C7A 83A9 1CA4 1893 COPY SC,A 1C7B 8444 0004 1894 COPY A,UF:EOT(Y) SECTORS/TRACK 1C7C 83A8 1CA5 1895 COPY GPL,A 1C7D 8445 0005 1896 COPY A,UF:GPL(Y) GAP LENGTH 1C7E 0980 1897 COPY =128,A 1C7F 8446 0006 1898 COPY A,UF:DTL(Y) 128 BYTES/SECTOR (IF N=0) 1C80 FF12 1C13 1899  JSK UFDC 1900 * CHECK FOR ERRORS! RETURN ERROR CODE IN A REG 1C81 804B 000B 1901 GETERR 1C82 18C0 1901+ 1C83 0E71 1901+ 1C84 B456 0016 1901+ 1C85 2070 1902 COPY K,X 1PAGE 0134 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:36:15.50 BUFFER INPUT ROUTINE - READ A SECTOR 1C86 8482 0002 1903 COPY A,AREG(X) SAVE A REG 1C87 E70C 1C14 1904 COPY Y,YSAVE 18C3 18C7 1905  EXIT 1PAGE 0135 MACRO (F100) UFDC TEST SCHEDULER (84-93720-21) (A000) 1981/08/14 01:36:16.00 MISC SUBROUTINES 1C8C 4309 1907 FATAL PUSH :40 SAVE REGS 1C8D 0040 1C8E 8022 0022 1908 COPY BSTAT:2,A BUMP FATAL ERROR COUNTER 1C8F 0B01 1909 ADD =1,A 1C90 11C1 1C92 1910 JNE A,NEWFATL 1C91 0AFF 1911 SUB =1,A DO NOT WRAP AROUND 1C92 8422 0022 1912 NEWFATL COPY A,BSTAT:2 1C93 6309  1913 POP 1C94 2309 1914 RSK 1C95 4309 1916 NONFATAL PUSH :40 SAVE REGS 1C96 0040 1C97 8023 0023 1917 COPY BSTAT:3,A BUMP SOFT ERROR COUNTER IF FIRST SOFT ERROR IN OPER 1C98 13C5 1C9E 1918 JLT A,SAMESOFT IF ERROR FLAG IS SET THEN DONT BUMP 1C99 0B01 1919 ADD  =1,A 1C9A 11C1 1C9C 1920 JNE A,NOWRAP 1C9B 0AFF 1921 SUB =1,A DO NOT WRAP AROUND 1C9C 00FC 1922 NOWRAP SBIT 15,A FLAG THAT A SOFT ERROR OCCURED IN OPERATION 1C9D 8423 0023 1923 >  COPY A,BSTAT:3 1C9E 6309 1924 SAMESOFT POP 1C9F 2309 1925 RSK 1CA0 0257 INBUFR 1CA1 0050 NBYTES 1CA2 004B N 1CA3 0054 SECTOR 1CA4 0051 SC 1CA5 0052 GPL 1926 END 0000 ERRORS (0000/0000) 0000 WARNINGS (0000/0000) JNE A,NOWRAP 1C9B 0AFF 1921 SUB =1,A DO NOT WRAP AROUND 1C9C 00FC 1922 NOWRAP SBIT 15,A FLAG THAT A SOFT ERROR OCCURED IN OPERATION 1C9D 8423 0023 1923 IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII? IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII@ IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIA IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIB IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIC IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIID IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIE IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIF IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIG IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIH IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIJ IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIK IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIL IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII