16 22FL SEG READFAIL,860,P.R. CRUICKSHANK,FILESTORE 12 22_= SEGENTRY K1READFAIL,Z1READFAIL 12 23DW SEGENTRY K2READFAIL,Z2READFAIL 12 23YG SEGENTRY K3READFAIL,Z3READFAIL 12 24D6 SEGENTRY K4READFAIL,Z4READFAIL 12 24XQ SEGENTRY K5READFAIL,Z5READFAIL 2 25CB 12 25X2 [ THIS SEGMENT HANDLES CORRUPT FILES 11 26BL [ AWORK1 INDICATES ENTRY POINT 10 26W= [ B0 SET TRANFAIL CASE 10 27*W [ B1 SET CHAPTER FILE 13 27TG [ B2 SET NON-AUTONOMOUS TRANSFER 10 28*6 [ B3 SET BMAP ENTRY 13 28SQ [ B4 SET GEOERR ENTRY POINT (5) 11 29#B [ B16 SET SWAP FILE FAIL 14 29S2 [ AWORK2 IS RESIDENCE NUMBER FROM PARAMETER 16 2=?L [ IF CHAPTER FAIL THEN = 1 IF SCF, = 0 OTHERWISE. 13 2=R= [ AWORK3 IS BLOCK NUMBER FROM PARAMATER 15 2?=W [ AWORK4 HAS BITS SET INDICATING VARIOUS THINGS 14 2?QG [ BIT 0 SET FILE IS VITAL SYSTEM FILE 12 2#=6 [ BI T 1 SET LISTFILE ACTIVITY 16 2#PQ [ BIT 2 SET CONTENTS OF BLOCK ALREADY OUTPUT 14 2*9B [ BIT 23 SET 2ND HALF OF BLOCK OUTPUT 16 2*P2 [ X7 CONTAINS DEPTH OF FILE , X6 IS SUBROUTINE LINK 17 2B8L [ X2->CURENT ACTIVITY X3->ACTIVITY ISSUING TRANFAIL 4 2BN= [ 8 2C7W [ ENTRY POINTS :- 17 2CMG [ 1 ... CORRUPT BLOCK (NOT TRANFAIL CASE) NOT BMAP 12 2D76 [ 2 ... TRANFAIL CASE, NOT BMAP 13 2DLQ [ 3 ... BMAP ENTRY FOR CORRUPT BLOCK 13 2F6B [ 4 ... BMAP ENTRY FOR TRANFAIL CASE 18 2FL2 [ 5 ... ENTRY POINT TO CHAIN CORRUPT BLOCK TO FILE RING 13 2G5L [ BEFORE GEOERRING. 4 2GK= [ 9 2H4W XBIT116 #20000200 9 2HJG XSWAPFIL +4 9 2J46 4HSWAP 9 2JHQ 4H FIL 8 2K3B 4HE 8 2KH2 XCHAPFIL +4 9 2L2L 4HCHAP 8 2LG= 4HTER 9 2L_W 4HFILE 8 2MFG XFAILED +4 8 2M_6 4HHAS 9 2NDQ 4HFAIL 8 2NYB 4HED 8 2PD2 XCORRUPT +4 9 2PXL 4HIS C 9 2QC= 4HORRU 8 2QWW 4HPT 9 2RBG SPACES #20202020 9 2RW6 SFILEFAIL +FILEFAIL 5 2S*Q XSUBMESS 8 2STB SBX 6 FX1 5 2T*2 REHUNT 9 2TSL MHUNT 2,GMON,AOUT 8 2W#= LDX 3 A1(2) 7 2WRW ADN 3 3 7 2X?G SRL 3 2 19 2XR6 OUTPACK A1+2(2),0(3),VARCHAR,REHUNT [OUTPACK SUBMESS 8 2Y=Q ADX 6 FX1 7 2YQB EXIT 6 0 5 2_=2 SETUPFAB 8 2_PL SBX 6 FX1 11 329= SETNCORE 10,1,FILE,FABSNB 8 32NW LDN 0 10 9 338G STO 0 HDREC(1) 8 33N6 LDX 1 FX1 8 347Q ADX 6 FX1 7 34MB EXIT 6 0 5 3572 XINFORM 8 35LL SBX 6 FX1 21 366= INFORM 2,BLOKFAIL,1,,NONAUT[ BLK NO,RES NO, UNIT NO, CSN, ... ME 8 36KW ADX 6 FX1 7 375G EXIT 6 0 21 37K6 [ THIS ROUTINE SETS UP FIRST PART OF MESSAGE TO OPS CONSOLE AND SYSTEM J 12 384Q [ WE OUTPACK 4 OF THE PARAMS HERE :- 17 38JB [ BLOCK NUMBER, RESIDENCE NUMBER, UNIT NUMBER AND CSN. 16 3942 [ EXITING WITH A POINTER TO THE FILE DESCRIPTION ARE 11 39HL [ IN THE FDTABLE IN X5 FOR THE 8 3=3= [ SJBLOCK ROUTINE. 5 3=GW XMESS 8 3?2G SBX 6 FX1 13 3?G6 TRACEIF K6READFAIL,199,999,6,XMESS 2 3?_Q 17 3#FB OUTBLOCN 27 [ 27 WORD GMON.ASET 17 3#_2 OUTPACK AWORK3(2),1,OCTA [PACK BLK NO PARAM 17 3*DL OUTPACK AWORK2(2),1,NUMA [PACK RES NO PARAM 8 3*Y= LDCT 0 #200 9 3BCW ANDX 0 AWORK1(2) 8 3BXG BZE 0 PLFN 8 3CC6 STO 6 GEN0 9 3CWQ CALL 6 PICUPACT 8 3DBB LDX 6 GEN0 10 3DW2 LDX 2 ACOMMUNE8(3) 8 3F*L LGEOG ,2 8 3FT= BRN PLFN1 4 3G#W PLFN 10 3GSG LFNTOGEOG 2,AWORK2(2) 5 3H#6 PLFN1 17 3HRQ OUTPACK 2,1,GEOPER [ UNIT NUMBER PARAM 8 3J?B LDCT 0 #200 9 3JR2 ANDX 0 AWORK1(2) 17 3K=L BZE 0 XNOTCH [ NOT CHAPTER FAIL 16 3KQ= LDX 1 BINDEX [ CCTABLE POINTER 15 3L9W LDX 0 AWORK2(2) [ 1 IF SCF 14 3LPG BZE 0 XCCTP [ NOT SCF 9 3M96 [ STEP OVER FIRST FDA 8 3MNQ LDCH 0 A1(1) 15 3N8B SBN 0 #32 [ EDS 60/30 8 3NN2 BZE 0 XXEDS 8 3P7L LDCH 0 A1(1) 14 3PM= SBN 0 #6 [ EDS 8 8 3Q6W BZE 0 XXEDS 15 3QLG ADN 1 3 [ H/S DRUM 8 3R66 BRN XCCTP 5 3RKQ XXEDS 7 3S5B ADN 1 6 8 3SK2 BRN XCCTP 2 3T4L 5 3TJ= XNOTCH 21 3W3W [ TO GET TO CSN FROM RESIDENCE NUMBER ( THERE SHOULD BE A MACRO TO DO TH 2 3WHG 9 3X36 LDX 1 AWORK2(2) 7 3XGQ SLL 1 1 18 3Y2B ADX 1 ALFTP [ BSTB.ALFTABLE POINTER 8 3YG2 LDX 1 A1(1) 8 3Y_L ANDN 1 #7777 18 3_F= ADX 1 AFDTP [ BSTB.FDTABLE POINTER 5 3_YW XCCTP 21 42DG LDX 5 1 [ PTR TO FDTABLE FOR SJBLOCK ROUTINE 16 42Y6 LDCH 0 A1(1) [ TYPE OF DEVICE 17 43CQ SBN 0 #32 [ EDS 30 OR EDS 60 2 43XB 16 44C2 BZE 0 XEDS [ J IF EDS DEVICE 8 44WL LDCH 0 A1(1) 14 45B= SBN 0 #6 [ EDS 8 15 45TW BZE 0 XEDS [ EDS DEVICE 7 46*G [ NON EDS DEVICE 9 46T6 [ DEFAULT TO ZERO CSN 7 47#Q LDN 2 0 9 47SB BRN XHSDRUM 4 48#2 XEDS 13 48RL LDX 2 A1+5(1) [ CSN 9 49?= [ X1 CONTAINS THE CSN 5 49QW XHSDRUM 15 4==G OUTPACK 2,1,CSN [ CSN OF DISC 8 4=Q6 LDCT 0 #100 9 4?9Q ANDX 0 AWORK4(2) 18 4?PB BNZ 0 SEXIT1 [J IF ENTERED FOR SJBLOCK 9 4#92 BRN XOUTPACK3 6 4#NL XOUTPACK2 8 4*8= SBX 6 FX1 6 4*MW XOUTPACK3 9 4B7G LDX 0 AWORK1(2) 17 4BM6 BNZ 0 XFAIL [J IF TRANFAIL ACT 10 4C6Q LDN 3 XCORRUPT(1) 9 4CLB BRN XOUTPACK1 5 4D62 XFAIL 10 4DKL LDN 3 XFAILED(1) 9 4F5= BRN XOUTPACK1 5 4FJW XOUTPACK 18 4G4G SBX 6 FX1 [2ND ENTRY TO SUBROUTINE 6 4GJ6 XOUTPACK1 21 4H3Q OUTPACK 0(3),V,VARCHAR [PACK ^HAS FAILED^,^IS CORRUPT ^PARAM 19 4HHB [ OR FILENAME FOR SUBMESSAGE. 5 4J32 SEXIT1 8 4JGL ADX 6 FX1 7 4K2= EXIT 6 0 4 4KFW XOUT 8 4K_G SBX 6 FX1 19 4LF6 OUTPACK 3,1,NUMB [RELATIVE BLOCK NO IN FILE 8 4LYQ ADX 6 FX1 7 4MDB EXIT 6 0 2 4MY2 21 4NCL [ THIS ROUTINE GETS X3->CURRENT ACTIVITY OR THE ACTIVITY ISSUING THE TR 9 4NX= [ IN THE TRANFAIL CASE 6 4PBW [ X6 = LINK 5 4PWG PICUPACT 8 4QB6 LDX 2 FX2 9 4QTQ LDXC 0 AWORK1(2) 18 4R*B BCC X3FX2 [J IF NOT TRANFAIL ENTRY 8 4RT2 LDCT 0 #040 9 4S#L ANDX 0 AWORK1(2) 16 4SS= BNZ 0 X3FX2 [ BMAP TRANFAIL 15 4T?W LDX 3 BSCHANAD(2) [X2->Q BLOCK 9 4TRG SBN 3 CHAINADD 9 4W?6 LDX 0 ATYPE(3) 8 4WQQ SBX 0 BSP10 17 4X=B BNZ 0 X [ NOT A BSTB/BQBLK 5 4XQ2 OUTINF 15 4Y9L LDX 3 BPTR(3) [X2->ACTIVITY 9 4YP= LDX 0 ATYPE(3) 8 4_8W TXL 0 CACT 9 4_NG BCS OUTINF 4 5286 X 7 52MQ EXIT 6 0 5 537B X3FX2 8 53M2 LDX 3 FX2 7 546L EXIT 6 0 12 54L= [ ROUTINE TO WAIT 2 MINS X6 = LINK 5 555W WAIT2M 15 55KG BSON EMSBIT,WAITXIT [ BACKMAP ! 10 5656 LDN 3 120/FONINTP 8 56JQ SBX 6 FX1 4 574B Y 8 57J2 COOR3 #62 7 583L BCT 3 Y 8 58H= ADX 6 FX1 5 592W WAITXIT 7 59GG EXIT 6 0 2 5=26 17 5=FQ [ THIS ROUTINE IS CALLED BEFORE A GEOERR TO ENSURE THAT 14 5=_B [ THE CORRUPT BLOCK IS ON THE FILE CHAIN. 14 5?F2 [ X7 = DEPTH OF CORRUPT FILE, X3-> ACTIVITY 6 5?YL [ X4=LINK. 5 5#D= SYSFGEO 7 5#XW LDX 1 3 7 5*CG LDX 2 3 14 5*X6 LDX 3 7 [ DEPTH 15 5BBQ FFCA [ X2-> FCA 16 5BWB PSTAC 3,2 [ X3->FSTACK BLK 8 5CB2 LDX 2 FX2 5 5CTL SYSFLOOP 20 5D*= LDX 1 FPTR(1) [ NEXT BLOCK IN ACTIVITY CHAIN 9 5DSW LDX 0 ATYPE(1) 18 5F#G TXL 0 CACT [ REACHED NEXT ACTIVITY 14 5FS6 BCC SYSFXIT [ EXIT 14 5G?Q LDX 0 BACK1(1) [ RES NO 12 5GRB BXU 0 AWORK2(2),SYSFLOOP 15 5H?2 LDX 0 BACK2(1) [ BLOCK NO 12 5HQL BXU 0 AWORK3(2),SYSFLOOP 19 5J== [ X1 NOW POINTS TO CORRECT BSTB/BREAD BLOCK SO WE RENAME IT A 18 5JPW [ FILE/FURB SO THAT PM PRINTS IT OUT CORRECTLY & RECHAIN IT 14 5K9G [ ONTO THE FILE CHAIN AT THE CORRECT PLACE. 10 5KP6 NAMETOP 1,FILE,FURB 8 5L8Q CHAIN 1,3 5 5LNB SYSFXIT 8 5M82 EXIT 4 0 4 5MML [ 10 5N7= [ ********************** 10 5NLW [ BACKMAP TRANFAIL ENTRY 10 5P6G [ ********************** 4 5PL6 [ 6 5Q5Q Z4READFAIL 14 5QKB TRACEIF K6READFAIL,199,999,2,Z4READFA 17 5R52 LDCT 0 #540 [ NON-AUTO TRANFAIL 19 5RJL STO 0 AWORK1(2) [ INDICATES BMAP ENTRY POINT 9 5S4= STOZ AWORK4(2) 9 5SHW CALL 6 SETUPFAB 4 5T3G [ 17 5TH6 [ RESIDENCE NUMBER AND BLOCK NUMBER IN ACOMMUNE WORDS 4 5W2Q [ 8 5WGB LDN 0 #377 16 5X22 ANDX 0 ACOMMUNE2(2) [ RESIDENCE NO 9 5XFL STO 0 AWORK2(2) 2 5X_= 15 5YDW LDX 0 ACOMMUNE3(2) [ BLOCK NO 9 5YYG STO 0 AWORK3(2) 17 5_D6 LDX 3 2 [ FOR FILE DEPTH CODE 16 5_XQ BRN RFTOG [ GET FILE DEPTH 2 62CB 4 62X2 [ 10 63BL [ ********************* 10 63W= [ NORMAL TRANFAIL ENTRY 10 64*W [ ********************* 4 64TG [ 6 65*6 Z2READFAIL 14 65SQ TRACEIF K6READFAIL,199,999,2,Z2READFA 8 66#B LDX 0 GSIGN 18 66S2 STO 0 AWORK1(2) [TRANFAIL ENTRY MARKER 9 67?L STOZ AWORK4(2) 9 67R= CALL 6 SETUPFAB 15 68=W LDX 3 BSCHANAD(2) [X3->Q BLOCK 9 68QG SBN 3 CHAINADD 9 69=6 LDX 0 ATYPE(3) 8 69PQ SBX 0 BSP10 18 6=9B BNZ 0 PICUPRES [J IF NOT A BSTB/BQBLK 4 6=P2 [ 11 6?8L [ CODE FOR AUTONOMOUS TRANSFERS. 4 6?N= [ 14 6#7W [ GET REPLY, RESIDENCE NO & BLK NO FROM 14 6#MG [ ATRAN, ALENLFN & BLKNO RESPECTIVELY. 8 6*76 LDN 0 #377 10 6*LQ ANDX 0 ALENLFN(3) 15 6B6B STO 0 AWORK2(2) [STORE RES NO 9 6BL2 LDX 0 BLKNO(3) 15 6C5L STO 0 AWORK3(2) [STORE BLK NO 10 6CK= LDX 0 XBIT116(1) 19 6D4W ANDX 0 ATRAN(3) [TRANSFER BITS 1,16 OF ATRAN 20 6DJG ORS 0 AWORK1(2) [TO AWORK1 I.E.SWAP OR CHAP FILE 19 6F46 BNZ 0 SETUPPAR [J IF SWAP OR CHAPTER FILE 5 6FHQ ONTINUE 9 6G3B LDX 3 BPTR(3) 9 6GH2 LDX 0 ATYPE(3) 8 6H2L TXL 0 CACT 9 6HG= BCS ONTINUE 20 6H_W BRN RFTOG [X2->ACTIVITY ISSUING TRANFAIL 4 6JFG [ 12 6J_6 [ CODE FOR NON-AUTONOMOUS TRANSFERS. 4 6KDQ [ 16 6KYB [ GET REPLY, RESIDENCE NO & BLK NO FROM BA WORDS 5 6LD2 PICUPRES 8 6LXL LDCT 0 #100 21 6MC= ORS 0 AWORK1(2) [ SET MARKER TO INDICATE NON-AUTO TRA 8 6MWW LDN 0 #377 16 6NBG ANDX 0 BA2(3) [ RESIDENCE NO 9 6NW6 STO 0 AWORK2(2) 15 6P*Q LDX 0 BA3(3) [ BLOCK NO 9 6PTB STO 0 AWORK3(2) 10 6Q*2 LDX 0 XBIT116(1) 15 6QSL ANDX 0 BA1(3) [ REPLY WORD 20 6R#= ORS 0 AWORK1(2) [INDICATE SWAP OR CHAPTER FILE 19 6RRW BZE 0 RFTOG [J IF NOT SWAP OR CHAP FILE 5 6S?G SETUPPAR 8 6SR6 LDCT 0 #200 9 6T=Q ANDX 0 AWORK1(2) 18 6TQB BZE 0 SETUPAR [ J IF NOT CHAPTER FILE 4 6W=2 [ 16 6WPL [ DETERMINE THE B.S. ADDRESS FOR THE FAILING CHAPTER 4 6X9= [ 9 6XNW LDX 0 ALINK1(3) 8 6Y8G SRL 0 12 7 6YN6 SMO 0 8 6_7Q LDX 0 KTAB 9 6_MB BPZ 0 XMESSAGE 8 7272 ERX 0 GSIGN 8 72LL SBN 0 A1 7 736= SMO 0 8 73KW LDX 0 BACK2 5 745G XMESSAGE 8 74K6 SLL 70 11 8 754Q SRL 0 11 7 75JB ANDN 7 1 16 7642 STO 0 AWORK3(2) [ CHAPTER ADDRESS 18 76HL STO 7 AWORK2(2) [ 1 IF SCF, 0 OTHERWISE 5 773= SETUPAR 16 77GW CALL 6 XMESS [SET UP MESSAGE 8 782G LDN 0 #200 9 78G6 ANDX 0 AWORK1(2) 17 78_Q BNZ 0 XSWAP [ J IF SWAP FAILURE 10 79FB LDN 3 XCHAPFIL(1) 9 79_2 BRN PACKCHAP 5 7=DL XSWAP 10 7=Y= LDN 3 XSWAPFIL(1) 5 7?CW PACKCHAP 9 7?XG CALL 6 XOUTPACK 19 7#C6 CALL 6 XINFORM [OUTPUT TO S.J. +OPS CONSOLE 8 7#WQ LDCT 0 #200 9 7*BB ANDX 0 AWORK1(2) 17 7*W2 BZE 0 XPICKUP [J IF NOT CHAP FILE 18 7B*L CALL 6 WAIT2M [ WAIT 2 MINS THEN .... 4 7BT= [ 5 7C#W [ **** 8 7CSG [ CHAPTER FAILURE 5 7D#6 [ **** 4 7DRQ [ 9 7F?B GEOERR 1,CHAPFAIL 5 7FR2 XPICKUP 10 7G=L ACROSS READFALE,2 2 7GQ= 4 7H9W [ 11 7HPG [ ************************ 11 7J96 [ BACKMAP CORRUPTION ENTRY 11 7JNQ [ ************************ 4 7K8B [ 6 7KN2 Z3READFAIL 14 7L7L TRACEIF K6READFAIL,199,999,2,Z3READFA 8 7LM= LDCT 0 #040 19 7M6W STO 0 AWORK1(2) [ INDICATES BMAP ENTRY POINT 9 7MLG BRN Z3BMAP 2 7N66 4 7NKQ [ 10 7P5B [ *********************** 10 7PK2 [ NORMAL CORRUPTION ENTRY 10 7Q4L [ *********************** 4 7QJ= [ 6 7R3W Z1READFAIL 14 7RHG TRACEIF K6READFAIL,199,999,2,Z1READFA 9 7S36 STOZ AWORK1(2) 5 7SGQ Z3BMAP 9 7T2B STOZ AWORK4(2) 10 7TG2 LDX 0 ACOMMUNE2(2) 10 7T_L LDX 1 ACOMMUNE3(2) 16 7WF= STO 0 AWORK2(2) [STORE RES. NO. 16 7WYW STO 1 AWORK3(2) [STORE BLK. NO. 9 7XDG CALL 6 SETUPFAB 15 7XY6 CALL 6 PICUPACT [X3->ACTIVITY 16 7YCQ [ FIND THE DEPTH OF THE FILE WHICH IS CORRUPT OR HAS 13 7YXB [ A BLOCK FAILING AND STORE IT IN X7. 5 7_C2 RFTOG 7 7_WL LDN 7 0 8 82B= TOPFCAV 1,3 8 82TW STO 1 GEN0 10 83*G LDN 5 FILERING(3) 5 83T6 RFTOG1 18 84#Q BXU 1 5,SFCB [J IF NOT END OF FILERING 9 84SB LDCH 0 ATYPE(3) 9 85#2 SBN 0 CPAT/64 16 85RL BNZ 0 ZGEOERR1 [J IF NOT CPAT 15 86?= JBS SHFULLB,3,EXDUMPER [J IF DUMPER 5 86QW ZGEOERR1 4 87=G [ 5 87Q6 [ **** 12 889Q [ CANT FIND A FILE OPEN CONTAINING 10 88PB [ SPECIFIED CORRUPT BLOCK 5 8992 [ **** 4 89NL [ 18 8=8= GEOERR 1,NO FILE [CORRUPT FILE NOT FOUND 4 8=MW SFCB 8 8?7G PSTAC 1,1 14 8?M6 BFCBX 1,1 [X1->FCB 9 8#6Q LDX 0 BSPRE(1) 18 8#LB BXU 0 AWORK2(2),RFTOG2 [J IF NOT CORRECT RES NO 9 8*62 LDX 4 FUSBL(1) 8 8*KL ADN 4 A1 18 8B5= SBN 4 FBLKS [X4=NO. OF BLKS IN FILE 5 8BJW NEXTBLK 7 8C4G SMO 4 18 8CJ6 LDX 0 BSPRE(1) [THIS CODE CHECKS THROUGH 9 8D3Q ERX 0 AWORK3(2) 17 8DHB ORN 0 3 [SET BLOCKLET BITS 17 8F32 ERN 0 3 [CLEAR BLOCKLET BITS 16 8FGL BZE 0 SETFFM [J IF BLOCK FOUND 20 8G2= BCT 4 NEXTBLK [BLOCK GIVEN BY PARAM. IS FOUND 5 8GFW RFTOG2 14 8G_G SMO GEN0 [NEXT FCA 8 8HF6 LDX 1 FPTR 8 8HYQ STO 1 GEN0 15 8JDB ADN 7 1 [GET X7=DEPTH 16 8JY2 BRN RFTOG1 [OK BLOCK FOUND 5 8KCL SETFFM 8 8KX= LDCT 0 #020 9 8LBW ANDX 0 AWORK1(2) 16 8LWG BNZ 0 XBREAK [ ENTRY POINT 5 9 8MB6 JBC VSF,1,BFREV 9 8MTQ CALL 6 PICUPACT 17 8N*B CALL 4 SYSFGEO [ CHAIN BLOCK ON FILE 4 8NT2 [ 5 8P#L [ **** 10 8PS= [ CURRENT SJFILE IS CORRUPT 5 8Q?W [ **** 4 8QRG [ 20 8R?6 GEOERR 1,SJOURNAL [ CURRENT :SYSTEM.JOURNAL CORRUPT 4 8RQQ VSF 15 8S=B JMBAC NOSETFM,1,BFVSF,BFDIR[J IF NOT VSF 8 8SQ2 LDX 0 GSIGN 17 8T9L ORS 0 AWORK4(2) [SET FILE FOUND MARK 17 8TP= [ THIS SECTION OUTPUTS MESSAGES TO SJ AND OPS CONSOLE 5 8W8W NOSETFM 18 8WNG SBN 4 1 [X4=NO OF BLOCK IN FILE 7 8X86 LDX 3 4 10 8XMQ MHUNT 2,FILE,FABSNB 10 8Y7B JBS SDIRECT,1,BFDIR 9 8YM2 ADN 1 FUSER1 9 8_6L ADN 2 HDREC+1 7 8_L= MOVE 1 9 8 925W BRN TEXT 5 92KG SDIRECT 7 9356 LDN 0 4 9 93JQ STO 0 HDREC(2) 8 944B ADN 1 FREEL 9 94J2 ADN 2 HDREC+1 7 953L MOVE 1 3 4 95H= TEXT 19 962W CALL 6 XOUT [PACK IT (THE SUBMESSAGE) 9 96GG BRN SETADATA 5 9726 SHFULLB 21 97FQ HUNT2J 1,BSTB,FULLB,3,ZGEOERR2 [X1 ->FULLB AFTER DUMPER A 9 97_B LDX 0 A1+1(1) 19 98F2 BXU 0 AWORK2(2),ZGEOERR2 [J IF FULLB HAS WRONG RES NO 8 98YL LDX 4 A1(1) 7 99D= SBN 4 2 5 99XW NEXTBLX 7 9=CG SMO 4 9 9=X6 LDX 0 A1+1(1) 19 9?BQ BXE 0 AWORK3(2),XOUTPACL [J IF BLOC AS IN PARAM FOUND 9 9?WB BCT 4 NEXTBLX 5 9#B2 ZGEOERR2 4 9#TL [ 5 9**= [ **** 14 9*SW [ BSTB/FULLB CONTAINING FILE'S BLOCKS RECORD 12 9B#G [ (IN THE DUMPER CASE) IS MISSING 5 9BS6 [ **** 4 9C?Q [ 10 9CRB GEOERR 1,NO FULLB 5 9D?2 XOUTPACL 18 9DQL SBN 4 1 [X4=NO OF BLOCK IN FILE 7 9F== LDX 3 4 17 9FPW CALL 6 XOUT [PACK IT (SUBMESSAGE) 10 9G9G MHUNT 1,FILE,FABSNB 7 9GP6 LDX 5 1 9 9H8Q CALL 6 PICUPACT 8 9HNB TOPFCBV 2,3 7 9J82 LDX 4 2 8 9JML LDX 2 FX2 9 9K7= ADN 5 HDREC+1 8 9KLW ADN 4 FREEL 20 9L6G MOVE 4 3 [MOVE DIRECTORY NAME TO FABSNB 10 9LL6 HUNT2 3,FILE,ENT,3 17 9M5Q JMBAC NOSETM,3,BECARE,BECOOR,BEINDEX,BEREVERE 8 9MKB LDX 0 GSIGN 9 9N52 ORS 0 AWORK4(2) 5 9NJL NOSETM 7 9P4= LDX 4 5 7 9PHW ADN 4 3 8 9Q3G ADN 3 ELOC1 19 9QH6 MOVE 3 5 [ MOVE LOCAL NAME INTO FABSNB 10 9R2Q LDX 0 ELAN-ELOC1(3) 18 9RGB STO 0 HDREC+9(1) [MOVE DETAILS TO FABSNB 5 9S22 SETADATA 17 9SFL SETNCORE 11,1,ADATA,CREADL [SET UP ADATA/CREADL 8 9S_= STOZ A1(1) 18 9TDW UNNORM [UNNORM FABSNB TO CREADL 11 9TYG MHUNTW 3,ADATA,CREADL 18 9WD6 LDX 0 A1(3) [X0=NO OF CHARS IN CREADL 7 9WXQ SRC 0 2 7 9XCB ADX 3 0 17 9XX2 ADN 3 CPDATA [X3->LAT WORD OF DATA 7 9YBL LDN 6 4 19 9YW= SRL 0 22 [X0=NO OF CHARS IN LAST WORD 15 9_*W BZE 0 NOSPACES [J IF IT = 0 18 9_TG SBX 6 0 [X6=NO OF UNUSED CHARS 9 =2*6 LDN 2 SPACES(1) 7 =2SQ SMO 6 18 =3#B MVCH 2 0 [SPACEFILL UNUSED CHARS 5 =3S2 NOSPACES 11 =4?L MHUNTW 3,ADATA,CREADL 8 =4R= LDX 0 A1(3) 7 =5=W ADN 0 3 7 =5QG SRL 0 2 7 =6=6 ADN 0 1 18 =6PQ STO 0 CPDATA-1(3) [X0=NO OF WORDS IN CREADL 16 =79B ADN 3 CPDATA-1 [STORE IT IN RH 16 =7P2 CALL 6 XOUTPACK [OUTPACK PARAM 10 =88L LDX 5 SFILEFAIL(1) 20 =8N= ASSMESS 5 [ASSEMBLE SUBMESS IN GMON/AOUT 16 =97W CALL 6 XMESS [SET UP MESSAGE 17 =9MG CALL 6 XSUBMESS [OUTPACK SUBMESSAGE 9 ==76 CALL 6 XINFORM 10 ==LQ MFREEW FILE,FABSNB 10 =?6B ACROSS READFALE,1 16 =?L2 [ ENTRY POINT TO ATTEMPT TO CHAIN CORRUPT BLOCK ONTO 16 =#5L [ FILE CHAIN AT THE CORRECT PLACE BEFORE GEOERRING. 21 =#K= [ THE BLOCK IN QUESTION SHOULD EITHER BE CHAINED TO THE CURRENT ACTIVITY 18 =*4W [ OR IF THE FIRST BLOCK IS A BLINK THEN THE SECOND BLOCK. 4 =*JG [ 9 =B46 [ ******************* 9 =BHQ [ CORRUPT BLOCK ENTRY 9 =C3B [ ******************* 4 =CH2 [ 6 =D2L Z5READFAIL 14 =DG= TRACEIF K6READFAIL,199,999,2,Z5READFA 8 =D_W LDCT 0 #020 17 =FFG STO 0 AWORK1(2) [ GEOERR ENTRY MKR 18 =F_6 LDX 3 FPTR(2) [ MAY BE A BLINK BLOCK 9 =GDQ LDCH 0 ATYPE(3) 9 =GYB SBN 0 BLINK/64 18 =HD2 BNZ 0 NOTBLINK [ J IF NOT BLINK BLOCK 15 =HXL LDX 3 FPTR(3) [ NEXT BLOCK 5 =JC= NOTBLINK 9 =JWW LDX 0 BACK1(3) 14 =KBG STO 0 AWORK2(2) [ RES NO 9 =KW6 LDX 0 BACK2(3) 16 =L*Q STO 0 AWORK3(2) [ BLOCK NUMBER 8 =LTB LDX 3 FX2 16 =M*2 BRN RFTOG [ GET DEPTH IN X7 5 =MSL XBREAK 8 =N#= LDX 3 FX2 17 =NRW CALL 4 SYSFGEO [ CHAIN CORRUPT BLOCK 4 =P?G [ 5 =PR6 [ **** 10 =Q=Q [ MISCELLANEOUS CORRUPTIONS. 15 =QQB [ EG FILEWRITE MACRO HAS DETECTED A CORRUPTION 8 =R=2 [ UPON WRITING AWAY. 5 =RPL [ **** 4 =S9= [ 10 =SNW GEOERR 1,WRITE ! 4 =T8G #END 6 ____ ...273473070001