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