READFAIL866

(George Source)

Macros used: ACROSS, ASSMESS, BFCBX, BSON, BXE, BXU, CHAIN, COOR3, FFCA, GEOERR, HUNT2, HUNT2J, INFORM, JBC, JBS, JMBAC, LFNTOGEOG, LGEOG, MFREEW, MHUNT, MHUNTW, NAMETOP, OUTBLOCN, OUTPACK, PSTAC, SEG, SEGENTRY, SETNCORE, SFCB, TOPFCAV, TOPFCBV, TRACEIF, UNNORM

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
  • Last modified: 17/01/2024 11:55
  • by 127.0.0.1