{{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]]
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