9 22FL SEG READFALE,866 4 22_= # 12 23DW SEGENTRY K1READFALE,Z1READFALE 12 23YG SEGENTRY K2READFALE,Z2READFALE 4 24D6 # 18 24XQ # THIS SEGMENT IS ENTERED ACROSS FROM READFAIL TO COMPLETE 11 25CB # THE HANDLING OF CORRUPT FILES 14 25X2 # AWORK1 INDICATES ENTRY POINT TO READFAIL 10 26BL [ B0 SET TRANFAIL CASE 10 26W= [ B1 SET CHAPTER FILE 13 27*W [ B2 SET NON-AUTONOMOUS TRANSFER 10 27TG [ B3 SET BMAP ENTRY 13 28*6 [ B4 SET GEOERR ENTRY POINT (5) 11 28SQ [ B16 SET SWAP FILE FAIL 14 29#B [ AWORK2 IS RESIDENCE NUMBER FROM PARAMETER 16 29S2 [ IF CHAPTER FAIL THEN = 1 IF SCF, = 0 OTHERWISE. 13 2=?L [ AWORK3 IS BLOCK NUMBER FROM PARAMATER 15 2=R= [ AWORK4 HAS BITS SET INDICATING VARIOUS THINGS 14 2?=W [ BIT 0 SET FILE IS VITAL SYSTEM FILE 12 2?QG [ BI T 1 SET LISTFILE ACTIVITY 16 2#=6 [ BIT 2 SET CONTENTS OF BLOCK ALREADY OUTPUT 14 2#PQ [ BIT 23 SET 2ND HALF OF BLOCK OUTPUT 16 2*9B [ X7 CONTAINS DEPTH OF FILE , X6 IS SUBROUTINE LINK 17 2*P2 [ X2->CURENT ACTIVITY X3->ACTIVITY ISSUING TRANFAIL 4 2B8L [ 9 2BN= XMASK #00077777 17 2C7W XGEN #60000000 [ACTIVITY BLOCK TYPE 9 2CMG XFRB #44600000 8 2D76 XFAILED +4 8 2DLQ 4HHAS 9 2F6B 4HFAIL 8 2FL2 4HED 8 2G5L XCORRUPT +4 9 2GK= 4HIS C 9 2H4W 4HORRU 8 2HJG 4HPT 9 2J46 XASWAP +ASWAPFILE 5 2JHQ XFWBGOUT 12 2K3B HUNT2J 2,GOUT,INFO,3,MHUNT 7 2KH2 LDX 3 2 8 2L2L BRN MM 5 2LG= MHUNT 12 2L_W HUNT2J 3,GOUT,GUPDATE,3,MN 4 2MFG MM 8 2M_6 EXIT 6 0 4 2NDQ MN 4 2NYB [ 5 2PD2 [ **** 13 2PXL [ CANT FIND CORRECT GOUT/GUPDATE BLOCK 5 2QC= [ **** 4 2QWW [ 9 2RBG GEOERR 1,REMOTE 5 2RW6 XSUBMESS 8 2S*Q SBX 6 FX1 5 2STB REHUNT 9 2T*2 MHUNT 2,GMON,AOUT 8 2TSL LDX 3 A1(2) 7 2W#= ADN 3 3 7 2WRW SRL 3 2 19 2X?G OUTPACK A1+2(2),0(3),VARCHAR,REHUNT [OUTPACK SUBMESS 8 2XR6 ADX 6 FX1 7 2Y=Q EXIT 6 0 19 2YQB [ THIS OUTPUTS THE CORRUPT BLOCK IN TWO PARTS TO SYSTEM JOURNAL 5 2_=2 SJBLOCK1 8 2_PL LDCT 0 #100 9 329= ANDX 0 AWORK4(2) 19 32NW BNZ 0 SEXIT [J IF BLOCK ALREADY OUTPUT 5 338G SJBLOCK 8 33N6 LDCT 0 #100 18 347Q ORS 0 AWORK4(2) [INDICATE BLOCK OUTPUT 7 34MB LDN 3 1 8 3572 SBX 4 FX1 14 35LL TRACEIF K6READFAIL,199,999,4,SJBLOCK 5 366= XOUTPAC 20 36KW CALL 6 XMESS [ OUTPUT BLK AND RES NO (X5->FDA) 17 375G CALL 6 XOUT [OUTPACK PART NUMBER 18 37K6 CALL 6 XGETBREAD [ X3-> BSTB/BREAD BLOCK 21 384Q LDX 1 5 [ -> FDA (SET UP BY XMESS ROUTINE) 15 38JB LDX 5 ALOGLEN(3) [ BLOCK SIZE 14 3942 TRACEIF K6READFAIL,199,999,1,FDA PTR 14 39HL TRACEIF K6READFAIL,199,999,5,BLK SIZE 18 3=3= DATUMBLK AWORK3(2),1,5 [ CALCULATE HARDWARE ADDR 7 3=GW LDX 3 1 14 3?2G TRACEIF K6READFAIL,199,999,3,HARD ADD 17 3?G6 OUTPACK 3,1,OCTB [ HARDWARE ADDRESS 14 3?_Q TRACEIF K6READFAIL,199,999,5,BLK SIZE 15 3#FB OUTPACK 5,1,NUMC [ BLOCK SIZE 4 3#_2 [ 5 3*DL TRYAGAIN 18 3*Y= CALL 6 XGETBREAD [ X3-> BSTB/BREAD BLOCK 7 3BCW LDN 0 1 9 3BXG ANDX 0 AWORK4(2) 19 3CC6 BZE 0 PTRFIRST [J IF NOT OUTPUT FIRST HALF 8 3CWQ ADN 3 256 5 3DBB PTRFIRST 17 3DW2 ADN 3 A1 [X2->1ST HALF OF BLK 19 3F*L OUTPACK 0(3),256,VAROCT,TRYAGAIN [OUTPACK HALF OF BLOCK 14 3FT= MONOUT BLOKRUPT,,NONAUT,IGOPTRACE 7 3G#W LDN 0 1 9 3GSG ANDX 0 AWORK4(2) 18 3H#6 BNZ 0 SEXIT2 [J IF BOTH HALVES OUTPUT 7 3HRQ LDN 0 1 20 3J?B ORS 0 AWORK4(2) [INDICATE 2ND HALF BEING OUTPUT 7 3JR2 LDN 3 2 19 3K=L BRN XOUTPAC [RETURN FOR MESSAGE OUTPUT 5 3KQ= SEXIT2 8 3L9W ADX 4 FX1 5 3LPG SEXIT 7 3M96 EXIT 4 0 21 3MNQ [ THIS ROUTINE SETS UP FIRST PART OF MESSAGE TO OPS CONSOLE AND SYSTEM J 12 3N8B [ WE OUTPACK 4 OF THE PARAMS HERE :- 17 3NN2 [ BLOCK NUMBER, RESIDENCE NUMBER, UNIT NUMBER AND CSN. 16 3P7L [ EXITING WITH A POINTER TO THE FILE DESCRIPTION ARE 11 3PM= [ IN THE FDTABLE IN X5 FOR THE 8 3Q6W [ SJBLOCK ROUTINE. 5 3QLG XMESS 8 3R66 SBX 6 FX1 13 3RKQ TRACEIF K6READFAIL,199,999,6,XMESS 2 3S5B 17 3SK2 OUTBLOCN 27 [ 27 WORD GMON.ASET 17 3T4L OUTPACK AWORK3(2),1,OCTA [PACK BLK NO PARAM 17 3TJ= OUTPACK AWORK2(2),1,NUMA [PACK RES NO PARAM 8 3W3W LDCT 0 #200 9 3WHG ANDX 0 AWORK1(2) 8 3X36 BZE 0 PLFN 8 3XGQ STO 6 GEN0 9 3Y2B CALL 6 PICUPACT 8 3YG2 LDX 6 GEN0 10 3Y_L LDX 2 ACOMMUNE8(3) 8 3_F= LGEOG ,2 8 3_YW BRN PLFN1 4 42DG PLFN 10 42Y6 LFNTOGEOG 2,AWORK2(2) 5 43CQ PLFN1 17 43XB OUTPACK 2,1,GEOPER [ UNIT NUMBER PARAM 8 44C2 LDCT 0 #200 9 44WL ANDX 0 AWORK1(2) 17 45B= BZE 0 XNOTCH [ NOT CHAPTER FAIL 16 45TW LDX 1 BINDEX [ CCTABLE POINTER 15 46*G LDX 0 AWORK2(2) [ 1 IF SCF 14 46T6 BZE 0 XCCTP [ NOT SCF 9 47#Q [ STEP OVER FIRST FDA 8 47SB LDCH 0 A1(1) 15 48#2 SBN 0 #32 [ EDS 60/30 8 48RL BZE 0 XXEDS 8 49?= LDCH 0 A1(1) 14 49QW SBN 0 #6 [ EDS 8 8 4==G BZE 0 XXEDS 15 4=Q6 ADN 1 3 [ H/S DRUM 8 4?9Q BRN XCCTP 5 4?PB XXEDS 7 4#92 ADN 1 6 8 4#NL BRN XCCTP 2 4*8= 5 4*MW XNOTCH 21 4B7G [ TO GET TO CSN FROM RESIDENCE NUMBER ( THERE SHOULD BE A MACRO TO DO TH 2 4BM6 9 4C6Q LDX 1 AWORK2(2) 7 4CLB SLL 1 1 18 4D62 ADX 1 ALFTP [ BSTB.ALFTABLE POINTER 8 4DKL LDX 1 A1(1) 8 4F5= ANDN 1 #7777 18 4FJW ADX 1 AFDTP [ BSTB.FDTABLE POINTER 5 4G4G XCCTP 21 4GJ6 LDX 5 1 [ PTR TO FDTABLE FOR SJBLOCK ROUTINE 16 4H3Q LDCH 0 A1(1) [ TYPE OF DEVICE 17 4HHB SBN 0 #32 [ EDS 30 OR EDS 60 2 4J32 16 4JGL BZE 0 XEDS [ J IF EDS DEVICE 8 4K2= LDCH 0 A1(1) 14 4KFW SBN 0 #6 [ EDS 8 15 4K_G BZE 0 XEDS [ EDS DEVICE 7 4LF6 [ NON EDS DEVICE 9 4LYQ [ DEFAULT TO ZERO CSN 7 4MDB LDN 2 0 9 4MY2 BRN XHSDRUM 4 4NCL XEDS 13 4NX= LDX 2 A1+5(1) [ CSN 9 4PBW [ X1 CONTAINS THE CSN 5 4PWG XHSDRUM 15 4QB6 OUTPACK 2,1,CSN [ CSN OF DISC 8 4QTQ LDCT 0 #100 9 4R*B ANDX 0 AWORK4(2) 18 4RT2 BNZ 0 SEXIT1 [J IF ENTERED FOR SJBLOCK 9 4S#L BRN XOUTPACK3 6 4SS= XOUTPACK2 8 4T?W SBX 6 FX1 6 4TRG XOUTPACK3 9 4W?6 LDX 0 AWORK1(2) 17 4WQQ BNZ 0 XFAIL [J IF TRANFAIL ACT 10 4X=B LDN 3 XCORRUPT(1) 9 4XQ2 BRN XOUTPACK1 5 4Y9L XFAIL 10 4YP= LDN 3 XFAILED(1) 9 4_8W BRN XOUTPACK1 5 4_NG XOUTPACK 18 5286 SBX 6 FX1 [2ND ENTRY TO SUBROUTINE 6 52MQ XOUTPACK1 21 537B OUTPACK 0(3),V,VARCHAR [PACK ^HAS FAILED^,^IS CORRUPT ^PARAM 19 53M2 [ OR FILENAME FOR SUBMESSAGE. 5 546L SEXIT1 8 54L= ADX 6 FX1 7 555W EXIT 6 0 4 55KG XOUT 8 5656 SBX 6 FX1 19 56JQ OUTPACK 3,1,NUMB [RELATIVE BLOCK NO IN FILE 8 574B ADX 6 FX1 7 57J2 EXIT 6 0 2 583L 21 58H= [ THIS ROUTINE GETS X3->CURRENT ACTIVITY OR THE ACTIVITY ISSUING THE TR 9 592W [ IN THE TRANFAIL CASE 6 59GG [ X6 = LINK 5 5=26 PICUPACT 8 5=FQ LDX 2 FX2 9 5=_B LDXC 0 AWORK1(2) 18 5?F2 BCC X3FX2 [J IF NOT TRANFAIL ENTRY 8 5?YL LDCT 0 #040 9 5#D= ANDX 0 AWORK1(2) 16 5#XW BNZ 0 X3FX2 [ BMAP TRANFAIL 15 5*CG LDX 3 BSCHANAD(2) [X2->Q BLOCK 9 5*X6 SBN 3 CHAINADD 9 5BBQ LDX 0 ATYPE(3) 8 5BWB SBX 0 BSP10 17 5CB2 BNZ 0 X [ NOT A BSTB/BQBLK 5 5CTL OUTINF 15 5D*= LDX 3 BPTR(3) [X2->ACTIVITY 9 5DSW LDX 0 ATYPE(3) 8 5F#G TXL 0 CACT 9 5FS6 BCS OUTINF 4 5G?Q X 7 5GRB EXIT 6 0 5 5H?2 X3FX2 8 5HQL LDX 3 FX2 7 5J== EXIT 6 0 12 5JPW [ THIS ROUTINE GETS A POINTER IN X3 12 5K9G [ TO THE CORRECT BSTB/BREAD BLOCK. 6 5KP6 [ X6 = LINK. 6 5L8Q XGETBREAD 15 5LNB STO 6 GEN0 [ STORE LINK 20 5M82 CALL 6 PICUPACT [X3->ACTIVITY ISSUING TRANSFER 5 5MML NXTBL 19 5N7= LDX 3 FPTR(3) [X3->NEXT BLOCK IN ACT.CH. 9 5NLW LDX 0 ATYPE(3) 16 5P6G BXE 0 BJREAD,XCHRES [J IF BSTB/BREAD 11 5PL6 BXE 0 XFRB(1),XCHRES 18 5Q5Q BXL 0 XGEN(1),NXTBL [J IF NOT ACTIVITY BLOCK 15 5QKB CALL 0 ZGEOERR4 [ NO BREAD 5 5R52 XCHRES 9 5RJL LDX 0 BACK1(3) 18 5S4= BXU 0 AWORK2(2),NXTBL [J IF NOT CORRECT RES NO 9 5SHW LDX 0 BACK2(3) 18 5T3G BXU 0 AWORK3(2),NXTBL [J IF NOT CORRECT BLK NO 8 5TH6 LDX 6 GEN0 7 5W2Q EXIT 6 0 17 5WGB [ ROUTINE TO RENAME CORRECT FLOUR BLOCK A BREAD BLOCK. 21 5X22 [ IF WE CAN'T FIND THE FLOUR BLOCK THEN IT MAY BE BECAUSE WE HAVE DONE 21 5XFL [ A SETCORE TRANSFER, SO WE DON'T BOTHER TO GEOERR SINCE IF SOMETHING IS 16 5X_= [ WRONG THEN THE ACCESS ROUTINES WILL GEOERR ANYWAY. 13 5YDW [ (ONLY CALLED IN THE CASE OF TRANFAILS) 15 5YYG [ X4 = LINK, GEOERRS IF NO FLOUR BLOCK THERE. 5 5_D6 RNFLOUR 9 5_XQ CALL 6 PICUPACT 5 62CB RNFLOOP 21 62X2 HUNT2J 3,BSTB,FLOUR,3,RNEXIT [ EXIT IF WE CANT FIND THE BLOCK 9 63BL LDX 0 BACK2(3) 17 63W= BXU 0 AWORK3(2), RNFLOOP [ NOT RIGHT BLOCK NO 9 64*W LDX 0 BACK1(3) 18 64TG BXU 0 AWORK2(2),RNFLOOP [ NOT RIGHT RESIDENCE NO 18 65*6 STOZ A1(3) [ ENSURE BLOCK IS VALID ! 10 65SQ NAMETOP 3,BSTB,BREAD 5 66#B RNEXIT 7 66S2 EXIT 4 0 12 67?L [ ROUTINE TO WAIT 2 MINS X6 = LINK 5 67R= WAIT2M 15 68=W BSON EMSBIT,WAITXIT [ BACKMAP ! 10 68QG LDN 3 120/FONINTP 8 69=6 SBX 6 FX1 4 69PQ Y 8 6=9B COOR3 #62 7 6=P2 BCT 3 Y 8 6?8L ADX 6 FX1 5 6?N= WAITXIT 7 6#7W EXIT 6 0 2 6#MG 17 6*76 [ THIS ROUTINE IS CALLED BEFORE A GEOERR TO ENSURE THAT 14 6*LQ [ THE CORRUPT BLOCK IS ON THE FILE CHAIN. 14 6B6B [ X7 = DEPTH OF CORRUPT FILE, X3-> ACTIVITY 6 6BL2 [ X4=LINK. 5 6C5L SYSFGEO 7 6CK= LDX 1 3 7 6D4W LDX 2 3 14 6DJG LDX 3 7 [ DEPTH 15 6F46 FFCA [ X2-> FCA 16 6FHQ PSTAC 3,2 [ X3->FSTACK BLK 8 6G3B LDX 2 FX2 5 6GH2 SYSFLOOP 20 6H2L LDX 1 FPTR(1) [ NEXT BLOCK IN ACTIVITY CHAIN 9 6HG= LDX 0 ATYPE(1) 18 6H_W TXL 0 CACT [ REACHED NEXT ACTIVITY 14 6JFG BCC SYSFXIT [ EXIT 14 6J_6 LDX 0 BACK1(1) [ RES NO 12 6KDQ BXU 0 AWORK2(2),SYSFLOOP 15 6KYB LDX 0 BACK2(1) [ BLOCK NO 12 6LD2 BXU 0 AWORK3(2),SYSFLOOP 19 6LXL [ X1 NOW POINTS TO CORRECT BSTB/BREAD BLOCK SO WE RENAME IT A 18 6MC= [ FILE/FURB SO THAT PM PRINTS IT OUT CORRECTLY & RECHAIN IT 14 6MWW [ ONTO THE FILE CHAIN AT THE CORRECT PLACE. 10 6NBG NAMETOP 1,FILE,FURB 8 6NW6 CHAIN 1,3 5 6P*Q SYSFXIT 8 6PTB EXIT 4 0 9 6Q*2 # MAIN ENTRY POINT 6 6QSL Z1READFALE 9 6R#= LDXC 0 AWORK4(2) 15 6RRW BCS XEND [J IF V S F 20 6S?G CALL 6 PICUPACT [X3->ACTIVITY ISSUING TRANSFER 9 6SR6 LDCH 0 ATYPE(3) 9 6T=Q SBN 0 CPAT/64 9 6TQB BNZ 0 NOCPAT 12 6W=2 JBS XDUMPER,3,EXDUMPER 5 6WPL NOCPAT 9 6X9= LDCH 0 ATYPE(3) 9 6XNW SBN 0 ACTLF/64 16 6Y8G BZE 0 XLIST [J IF LISTFILE 9 6YN6 LDX 6 JOBNO(3) 17 6_7Q BZE 6 XEND [J IF ZERO JOB NO. 8 6_MB JOBLOCK 6,1 7 7272 LDN 0 3 9 72LL ANDX 0 JPRIV(1) 20 736= BZE 0 XUSER [J IF NOT SYSTEM ISSUED/STARTED 4 73KW XEND 9 745G LDXC 0 AWORK1(2) 9 74K6 BCS ZTRFAIL 16 754Q CALL 4 SJBLOCK1 [OUTPUT BLK TO SJ 5 75JB ZTRFAIL 8 7642 LDCT 0 #040 9 76HL ANDX 0 AWORK1(2) 21 773= BZE 0 ZGEOERR3 [ J - IF NOT BMAP ENTRY TO GEOERR SFC 20 77GW BRN UP5 [ IN THE CASE OF BMAP JUST GO UP 2 782G 5 78G6 ZGEOERR3 15 78_Q CALL 6 WAIT2M [ WAIT 2MINS 9 79FB CALL 6 PICUPACT 20 79_2 CALL 4 SYSFGEO [ CHAIN CORRUPT BLK TO FILE CHAIN 4 7=DL [ 5 7=Y= [ **** 13 7?CW [ VITAL SYSTEM FILE (VSF) IS CORRUPT. 10 7?XG [ A VERY POPULAR GEOERR ! 5 7#C6 [ **** 4 7#WQ [ 10 7*BB GEOERR 1,SFCORRUP 5 7*W2 XDUMPER 14 7B*L TRACEIF K6READFAIL,199,999,3,DUMPFAIL 19 7BT= BS 3,EXDUMPFAIL [SET CLOSEAB MARK FOR DUMPER 9 7C#W LDX 0 AWORK1(2) 16 7CSG BNZ 0 UP [J IF TRANFAIL 9 7D#6 CALL 4 SJBLOCK 8 7DRQ BRN UP5 4 7F?B UP 17 7FR2 CALL 4 RNFLOUR [ RENAME FLOUR BLOCK 4 7G=L UP5 8 7GQ= BRN UP1 5 7H9W XUSER 15 7HPG LDX 5 JOBNO(3) [X5=JOB NO 8 7J96 LDN 0 #200 9 7JNQ ANDX 0 AWORK1(2) 16 7K8B BNZ 0 PFRF [J IF SWAP FILE 16 7KN2 CALL 6 XSUBMESS [ASSEMBLE MESSAGE 21 7L7L CALL 6 XOUTPACK2 [ASSEMBLE MESSAGE---FAILED/CORRUPT 9 7LM= BRN USERTOG 4 7M6W [ 5 7MLG [ **** 13 7N66 [ CANNOT FIND JOB BLOCK OF JOB NUMBER X6 5 7NKQ [ **** 4 7P5B [ 5 7PK2 ZGEOERR6 9 7Q4L GEOERR 1, NO JOB 4 7QJ= PFRF 8 7R3W SMO FX1 9 7RHG LDX 6 XASWAP 7 7S36 ASSMESS 6 21 7SGQ CALL 6 XSUBMESS [ASSEMBLE MESSAGE----PROG FILE READ F 5 7T2B USERTOG 4 7TG2 [ 14 7T_L [ OBTAIN A POINTER TO THE JOB'S CPAT TO TEST 15 7WF= [ WHETHER WE HAVE ALREADY SET THE ABANDON MARKER 7 7WYW [ IN THIS JOB. 4 7XDG [ 15 7XY6 LDX 6 5 [ JOB NUMBER 14 7YCQ TRACEIF K6READFAIL,199,999,6,JOB NO 16 7YXB FINDJOBQ 3,6,ZGEOERR6 [ X3-> JOB BLK 16 7_C2 FCAJO 3 [ X3-> CPA BLK 18 7_WL JBS YFREE,3,BRREADFAIL [ ALREADY BEING ABANDONED 8 82B= FSHCODE AORB 4 82TW ( 18 83*G MHUNTW 1,GMON,ASET [PTR TO GMON/ASET BLOCK 19 83T6 CHAIN 1,2 [CHAIN AFTER CURRENT ACTIVITY 4 84#Q ) 11 84SB [ JOB NUMBER IN X6 FOR PROCONTX 17 85#2 DOWN PROCONTX,18 [DOWN TO ABANDON JOB 9 85RL BRN UPPLUS2 9 86?= BRN UPPLUS1 9 86QW BRN UPPLUS2 5 87=G YFREE 9 87Q6 MFREE GMON,ASET 8 889Q LDCT 0 #200 9 88PB ERS 0 CLONG1(2) 5 8992 UPPLUS2 14 89NL TRACEIF K6READFAIL,199,999,3,JOBABAND 8 8=8= LDN 0 #200 9 8=MW ANDX 0 AWORK1(2) 17 8?7G BZE 0 XLIST1 [J IF NOT SWAP FILE 10 8?M6 LDX 3 BSCHANAD(2) 9 8#6Q SBN 3 CHAINADD 9 8#LB LDX 1 ATYPE(3) 15 8*62 SBX 1 BSP10 [ BSTB.BQBLK 20 8*KL LDN 0 BOBJ+BSET+BPAGE [ OBJECT PROG, SETCORE OR PAGE 9 8B5= BNZ 1 QBLKBA1 9 8BJW ANDX 0 ATRAN(3) 9 8C4G BNZ 0 NOTLOOK 9 8CJ6 BRN YESLOOK 5 8D3Q QBLKBA1 9 8DHB ANDX 0 BA1(3) 9 8F32 BNZ 0 NOTLOOK 5 8FGL YESLOOK 17 8G2= CALL 4 RNFLOUR [ RENAME FLOUR BLOCK 5 8GFW NOTLOOK 8 8G_G BRN UP1 5 8HF6 UPPLUS1 18 8HYQ COOR3 #62 [JOB NOT ABANDONABLE:WAIT 16 8JDB BRN USERTOG [AND TRY AGAIN 5 8JY2 XLIST 8 8KCL LDCT 0 #200 17 8KX= ORS 0 AWORK4(2) [SET LISTFILE MARKER 14 8LBW TRACEIF K6READFAIL,199,999,3,LISTFAIL 8 8LWG LFBITSET M,3 5 8MB6 XLIST1 9 8MTQ CALL 6 PICUPACT 21 8N*B LDX 2 3 [X2->ACT ISSUING TRANFAIL OR CURRENT 14 8NT2 LDX 3 7 [X3=DEPTH 14 8P#L FFCA [X2->FCA 10 8PS= LDX 4 FREADBLOCK(2) 19 8Q?W SBN 4 BSPRE [ BLK NO RELATIVE TO BSPRE 18 8QRG BS 2,BAJABAND [SET UP ABANDON MARKER 8 8R?6 PSTAC 2,2 14 8RQQ BFCBX 2,2 [X2->FCB 10 8S=B FSHCODE B,XFSHBFCB 4 8SQ2 ( 21 8T9L LDX 6 BACK2(2) [REMEMBER FCB NUMBER OF REQUIRED FCB 5 8TP= XFSHBFCB 4 8W8W ) 18 8WNG BS 2,BFCLOSEAB [SET CLOSE ABANDON MARKER 14 8X86 LDX 3 2 [ -> FCB 19 8XMQ JMBC NOTCAREF,2,BFCARE [ J-NOT CAREFULLY OPEN FILE 10 8Y7B FSHCODE B,XFSHBFMAPP 4 8YM2 ( 20 8_6L # THERE MAY NOT BE A FILE/FMAPP BLOCK IN MACHINE B SO WE MUST FIRST 20 8_L= # FOR ITS EXISTENCE BEFORE OBEYING THE 'MAPBCH' MACRO, SINCE THIS 17 925W # WILL LOOP IF THE FILE/FMAPP BLOCK DOES NOT EXIST. 5 92KG XFMAPP 20 9356 LDX 2 FPTR(2) [PTR TO NEXT BLOCK ON FILE CHAIN 19 93JQ BXE 2 CXFI,NOTCAREF [J IF REACHED END-OF-CHAIN 16 944B LDX 0 ATYPE(2) [TYPE OF BLOCK 21 94J2 BXE 0 FILEPLUSFCB,NOTCAREF [J IF REACHED NEXT FILE/FCB BLOCK 21 953L BXU 0 FFSFMAPP,XFMAPP [J IF NOT REQUIRED FILE/FMAPP BLOCK 6 95H= XFSHBFMAPP 4 962W ) 18 96GG MAPBCH 4,3 [ CHECKS BIT IN FMAPP BLK 17 9726 BNZ 0 NOTOFFLINE [ J IF SWAPPED BLOCK 4 97FQ [ 18 97_B [ IF THE FILE IS OPEN CAREFULLY AND THE CORRUPT OR FAILING 16 98F2 [ BLOCK IN THE FILE IS A SWAPPED BLOCK THEN WE ONLY 16 98YL [ CLOSEABANDON THE FILE AND DO NOT THROW IT OFFLINE. 4 99D= [ 5 99XW NOTCAREF 17 9=CG BS 3,BFCLOSEABOF [ THROW FILE OFFLINE 6 9=X6 NOTOFFLINE 10 9?BQ FSHCODE B,XFSHBTRAN 4 9?WB ( 20 9#B2 # BITS 'BFCLOSEAB' (AND POSSIBLY 'BFCLOSEABOF') MUST BE SET IN BOTH 7 9#TL # MACHINES 21 9**= # BUT WE DON'T NEED TO WAIT FOR THEM SO AUTONOMOUS SUPERVISORY TRANSBEG 20 9*SW TRANSBEG FSHREADFAIL,RITEFAIL,9,NOBLOCKS,,ACOMMUNE4,,SUP,AUT 6 9B#G XFSHBTRAN 4 9BS6 ) 8 9C?Q LDX 2 FX2 9 9CRB LDXC 0 AWORK1(2) 16 9D?2 BCS YTRAFAI [J IF TRANFAIL 17 9DQL CALL 4 SJBLOCK1 [OUTPUT CORRUPT BLOCK 5 9F== YTRAFAI 8 9FPW LDCT 0 #200 9 9G9G ANDX 0 AWORK4(2) 17 9GP6 BZE 0 PTFSTACK [J IF NOT LISTFILE 9 9H8Q ERS 0 AWORK4(2) 19 9HNB OUTBLOCN 23 [ SET UP 23 WORD GMON.ASET 11 9J82 MHUNTW 3,ADATA,CREADL 9 9JML ADN 3 CPDATA-1 17 9K7= OUTPACK 0(3),V,ENTRANT [OUTPACK ENTRANT NAME 9 9KLW CALL 6 PICUPACT 9 9L6G CALL 6 XFWBGOUT 17 9LL6 OUTPACK GUSER(3),3,USERNAME [OUTPACK USER NAME 9 9M5Q CALL 6 PICUPACT 9 9MKB CALL 6 XFWBGOUT 12 9N52 OUTPACK GJOBN(3),3,JOBNAME 19 9NJL INFORM 2,CORRUPTLF,1,,NONAUT [OUTPUT COTRUPT L F MESSAGE 5 9P4= PTFSTACK 9 9PHW CALL 6 PICUPACT 7 9Q3G LDX 2 3 7 9QH6 LDX 3 7 14 9R2Q FFCA [X2->FCA 15 9RGB PSTAC 1,2 [X1->FSTACK 8 9S22 BFCBX 3,1 10 9SFL LDX 4 FREADBLOCK(2) 7 9S_= STO 3 6 8 9TDW SMO FX1 8 9TYG LDX 5 XMASK 18 9WD6 ANDX 5 ARINGNO(1) [X5=NO OF ELEMENTS IN FCA 7 9WXQ SBN 5 2 18 9XCB BNG 5 NXPA [J IF ONLY ONE ELEMENT 7 9XX2 ADN 5 2 17 9YBL ADN 1 A1 [X1->FIRST ELEMENT 5 9YW= XCHECAB 18 9_*W JBS XDECRECT,1,BAJABAND [J IF ALREADY DEALT WITH 17 9_TG BS 1,BAJABAND [SET ABANDON MARKER 8 =2*6 LDCT 0 #774 10 =2SQ ANDX 0 FGENERAL1(1) 17 =3#B BZE 0 XDECRECT [J IF FILE NOT OPEN 17 =3S2 JBC NBLOCK,3,BFSER [J IF NOT SERIAL FILE 21 =4?L BXU 4 FREADBLOCK(1),NBLOCK[J IF THIS ELEMENT NOT READING OUR BL 10 =4R= NGS 1 FREADWORD(1) 5 =5=W NBLOCK 7 =5QG LDX 3 1 5 =6=6 ROUNDAG 9 =6PQ LDX 3 FPTRF(3) 10 =79B SMO FBACKPOINT(3) 9 =7P2 LDX 0 ATYPE(3) 8 =88L SMO FX1 10 =8N= BXL 0 XGEN,ROUNDAG 10 =97W ADX 3 FBACKPOINT(3) 9 =9MG BRN NOCPAT 5 ==76 XDECRECT 16 ==LQ ADN 1 FELLEN [X1->NEXT ELEMENT 16 =?6B BCT 5 XCHECAB [ NEXT FSTACK ELT 4 =?L2 [ 15 =#5L [ WE HAVE ABANDONED ALL JOBS WITH THIS FILE OPEN 4 =#K= [ 4 =*4W NXPA 8 =*JG LDX 2 FX2 7 =B46 LDX 1 6 9 =BHQ LDXC 0 AWORK1(2) 16 =C3B BCS SBREAD [J IF TRANFAIL 10 =CH2 HUNTW 2,BSTB,BREAD 15 =D2L BPZ 2 SERIAL [J IF FOUND 5 =DG= ZGEOERR4 4 =D_W [ 5 =FFG [ **** 10 =F_6 [ CANT FIND BSTB/BREAD BLOCK 5 =GDQ [ **** 4 =GYB [ 10 =HD2 GEOERR 1,NO BREAD 5 =HXL SBREAD 17 =JC= CALL 4 RNFLOUR [ RENAME FLOUR BLK 5 =JWW SERIAL 17 =KBG JBC UP1,1,BFSER [J IF FILE NOT SERIAL 16 =KW6 STOZ A1(2) [ ZEROISE BLOCK 15 =L*Q NGS 1 CMOD(1) [NEGATE CMOD 4 =LTB UP1 9 =M*2 VFREE GMON,AOUT 10 =MSL VFREE ADATA,CREADL 9 =N#= #SKI K6READFAIL>999-999 19 =NRW CALL 6 WAIT2M [ ****** FRIG TO WAIT ****** 5 =P?G UP 4 =PR6 # 9 =Q=Q # SECOND ENTRY POINT 6 =QQB Z2READFALE 9 =R=2 CALL 6 PICUPACT 8 =RPL BRN XUSER 4 =S9= # 4 =SNW #END 6 ____ ...164017610001