9 22FL #OPT K0WLF = 0 8 22_= #LIS K0WLF 8 23DW #SEG WLF 6 23YG 8HWLF 4 24D6 [ 20 24XQ SEGENTRY K1WLF,WLFK1 [ STOPLIST END OF :SYSTEM.OUTPUT ACTION 17 25CB SEGENTRY K2WLF,WLFK2 [ LF SCHEDULER DELETE ENTRY 4 25X2 [ 4 26BL [ 19 26W= [************************************************************ 4 27*W [ 7 27TG [ PRESET DATA 4 28*6 [ 19 28SQ [************************************************************ 4 29#B [ 4 29S2 [ 13 2=?L #DEF WGOUTKEY1 = GOUTKEY1 - A1 13 2=R= #DEF WGOUTKEY2 = GOUTKEY2 - A1 12 2?=W #DEF WGMODE = GMODE - A1 10 2?QG WORKFILE 12HWORKFILE 4 2#=6 [ 4 2#PQ [ 19 2*9B [************************************************************ 4 2*P2 [ 6 2B8L SFILECOMP 4 2BN= [ 19 2C7W [************************************************************ 4 2CMG [ 16 2D76 [ SUBROUTINE TO COMPARE A FABSNB WITH A FILE RECORD. 12 2DLQ [ FGN ONLY CHECKED IF SET IN FABSNB 4 2F6B [ 13 2FL2 [ LINK X6 MUST BE PRESERVED THROUGHOUT 4 2G5L [ 9 2GK= [ ENVIRONMENT REQUIRED:- 8 2H4W [ X2 -> 10 WD FABSNB 19 2HJG [ X3 -> FILE RECORD = FABSNB ANY LENGTH BUT ONLY ONE LOCAL NAME 4 2J46 [ 9 2JHQ [ ENVIRONMENT CHANGES:- 9 2K3B [ X2, X3, X5 DESTROYED 11 2KH2 [ X0 = 0 IF MATCHED, 1 IF DIDN'T 4 2L2L [ 7 2L#H ... LDX 4 0(3) 7 2LLD ... SBN 4 10 14 2LY* ... ADX 3 4 [ POINT TO LAST 10 WORDS 19 2M=? ... IF EITHER,+A1+8(2),ZE [ IF GEN. NO. NOT TO BE CHECKED 17 2MMG ... OR +A1+8(2),E,8(3) [ GENERATION NO. MATCHES 17 2N4P ... AND +A1+9(2),E,9(3) [ LANGUAGE CODE MATCHES 7 2NFY ... LDN 5 3 15 2NX7 ... WHILE +A1+4(2),E,4(3) [ NAMES MATCH 5 2P#B ... DO 8 2PPK ... ADN 2 1 8 2Q6S ... ADN 3 1 8 2QJ3 ... REPEAT CT 5 12 2Q_= ... AND 5,ZE [ FILENAME MATCH 7 2R2= ... SBN 3 3 13 2R3= ... IF 4,NZ [ LONG FILE/FABSNB 6 2R4= ... THEN 19 2R5= ... SBN 3 2 [ TWO EXTRA WORDS ON ADDTIONAL USERNAMES 5 2R6= ... FI 7 2R7= ... LDN 5 3 15 2R8= ... WHILE +A1+1-3(2),E,1(3) [ NAMES MATCH 5 2R9= ... DO 8 2R== ... ADN 2 1 8 2R?= ... ADN 3 1 8 2R#= ... REPEAT CT 5 12 2R*= ... AND 5,ZE [ USERNAME MATCH 5 2RBG THEN 7 2RW6 LDN 0 0 5 2S*Q ELSE 7 2STB LDN 0 1 5 2T*2 FI 7 2TSL EXIT 6 0 4 2W#= [ 19 2WRW [************************************************************ 4 2X?G [ 6 2XR6 STEPWRITE 4 2Y=Q [ 19 2YQB [************************************************************ 4 2_=2 [ 4 2_PL [ 18 329= [ ENSURE ALTERED RECORD IN :SYSTEM.OUTPUT IS WRITTEN AWAY 4 32NW [ 9 338G [ X3 -> ALTERED RECORD 10 33N6 [ ACCS X0,X2 USED - LINK X5 4 347Q [ 6 34MB STEPWRITE 7 3572 EXIT 5 0 4 35LL [ 4 366= [ 19 36KW [************************************************************ 4 375G [ 5 37K6 STHAW 4 384Q [ 19 38JB [************************************************************ 4 3942 [ 4 39HL [ 10 3=3= [ THAW FILE IN BLOCK <- X2 4 3=GW [ 6 3?2G [ LINK X6 4 3?G6 [ 7 3?_Q SBX 6 FX1 10 3#FB NAME 2,FILE,FABSNB 7 3#_2 LDX 1 FX1 18 3*DL IF +A1+1(2),E,WORKFILE(1) [ USERNAME IS WORKFILE 12 3*Y= AND +A1+2(2),E,WORKFILE+1(1) 12 3BCW AND +A1+3(2),E,WORKFILE+2(1) 5 3BXG THEN 17 3CC6 THAWWF STHAW1 [ J IF NO FILE/FCB FOR WORKFILE 5 3CWQ ELSE 5 3DBB STHAW1 13 3DW2 OPENDIR (GEOERR),GENERAL,ERASING 5 3F*L STHAW2 9 3FT= THAW STHAW2 7 3G#W CLOSETOP 9 3GSG MFREE FILE,ENT 5 3H#6 FI 9 3HRQ MFREE FILE,FABSNB 7 3J?B ADX 6 FX1 7 3JR2 EXIT 6 0 4 3JRC ...[ 4 3JRS ...[ 19 3JS9 ...[************************************************************ 4 3JSL ...[ 6 3JT3 ...SHORTFABS 4 3JTD ...[ 19 3JTT ...[************************************************************ 4 3JW= ...[ 4 3JWM ...[ 16 3JX4 ...[ CHECKS THAT THE FIRST FILE/FRB, WHICH IS IN FABSNB 17 3JXF ...[ FORMAT, IS A TEN-WORD ONE. IF NOT, IT IS SHORTENED ON 17 3JXW ...[ THE ASSUMPTION THAT ALL FABSNBS IN :SYSTEM.OUTPUT HAVE 16 3JY? ...[ USERNAME, LOCALNAME AS THEIR LAST TWO ELEMENTS. 4 3JYN ...[ 6 3J_5 ...[ LINK X4 8 3J_G ...[ X0,1,3 CORRUPTED 4 3J_X ...[ 7 3K2# ... SBX 4 FX1 9 3K2P ... MHUNTW 3,FILE,FRB 8 3K36 ... LDEX 0 HDREC(3) 7 3K3H ... SBN 0 10 7 3K3Y ... IF 0,NZ 5 3K4* ... THEN 9 3K4Q ... LDN 0 HDREC(3) 9 3K57 ... ADX 0 HDREC(3) 19 3K5J ... SBN 0 11 [X0 -> PENULTIMATE ELEMENT 10 3K5_ ... LDN 1 HDREC+1(3) 16 3K6B ... MOVE 0 3 [MOVE UP USERNAME 7 3K6R ... ADN 0 5 7 3K78 ... ADN 1 3 17 3K7K ... MOVE 0 6 [MOVE UP LOCALNAME 8 3K82 ... LDN 0 10 9 3K8C ... DEX 0 HDREC(3) 16 3K8S ... ALTLENGD 3,10 [SHORTEN BLOCK 5 3K99 ... FI 7 3K9L ... ADX 4 FX1 7 3K=3 ... EXIT 4 0 4 3K=L [ 4 3KQ= [ 19 3L9W [************************************************************ 4 3LPG [ 5 3M96 SEARCH 4 3MNQ [ 19 3N8B [************************************************************ 4 3NN2 [ 4 3P7L [ 4 3PM= [ 13 3Q6W [ SEARCH FOR ENTRY WHICH IS PART OF SAME 12 3QLG [ MULTIFILE LISTING AS CURRENT ENTRY 11 3R66 [ AND MAKE IT THE LAST ELEMENT 16 3RKQ [ THAWING MAIN AND( IF NOT MATCH FOUND ) SETUP FILES 4 3S5B [ 19 3SK2 [ LINK X7 - ALSO USED BY LISTFILE SCHEDULER VIA ENTRY POINT 4 16 3SM9 ...[ ON ENTRY, LAST RECORD READ MUST BE AN INFO RECORD 15 3SPD ...[ AWORK1 WILL HOLD NUMBER OF RECORDS IN ENTRY 19 3SRM ...[ AWORK2 WILL HOLD NUMBER OF RECORDS FROM CURRENT TO NEXT HEADER 12 3STW ...[ AWORK3 WILL HOLD FGN OF MAIN FILE 10 3SY5 ...[ AWORK4 WILL HOLD MAIN KEYS 15 3T2# ...[ MAIN FILE FABSNB IS LEFT IN A FILE-FRB ON EXIT 4 3T4L [ 7 3TJ= SBX 7 FX1 6 3W3W STEPAGAIN 10 3WHG ... BSXD 5,BLFRPROPREC 17 3X36 ... ANDX 5 WGMODE(3) [ X5 NONZERO IF PROPERTY RECORD 9 3XGQ LDX 0 WGOUTKEY1(3) 13 3Y2B STO 0 AWORK4(2) [ SAVE MAIN KEY 9 3YG2 LFRECNUM 1,WGMODE(3) 7 3Y_L SBN 1 1 14 3_F= SKIP ,0(1) [ TO SETUP FILE RECORD 12 3_YW READAGAIN [ SETUP FILE DES. 17 428N ... CALL 4 SHORTFABS [ ENSURE IT IS A TEN-WD FABSNB 6 42DG DELETE 11 42Y6 READAGAIN [ MAIN FILE DES. 16 437Y ... CALL 4 SHORTFABS [ ENSURE IT IS TEN-WD TOO 9 43CQ MHUNTW 1,FILE,FRB 8 43XB LDX 0 A1+8(1) 16 44C2 STO 0 AWORK3(2) [ SAVE GENERATION FOR THAW 18 44WL STOZ A1+8(1) [ CLEAR GENERATION NO. FOR COMPARISON 6 45B= DELETE 12 45TW IF 5,NZ [ PROPERTY RECORD 5 46*G THEN 6 46T6 DELETE 5 47#Q FI 6 47SB DELETE 6 48#2 REWIND 5 48RL STEP 11 49?= LDN 6 #40 [ URGENCY A-1 18 49QW WHILE 6,NZ [ NOT FOUND ANOTHER ELEMENT OF MULTIFILE 12 4==G AND 3,NZ [ NOT END OF FILE 13 4=Q6 ADN 6 1 [ INCREMENT URGENCY 8 4?9Q LDN 0 #73 12 4?PB AND 6,L,0 [ URGENCY A -> Z 14 4#NL DCH 6 AWORK4(2) [ NEW MAIN KEY 10 4*8= LDN 5 0 [ SUB KEY 17 4*MW GETSOUT ,AWORK4(2),5 [ FIND ENTRY FROM SAME JOB 7 4*XN ... STEPAGAIN 7 4B7G ... AND 3,NZ 5 4BC# ... DO 10 4BM6 LDCH 0 WGOUTKEY1(3) 14 4C6Q IF 0,E,6 [ SAME URGENCY FOUND 6 4CLB THEN 14 4D62 WHILE 3,NZ [ NOT END OF FILE 20 4DKL AND +WGOUTKEY1(3),E,AWORK4(2) [ ENTRY FOR SAME JOB 11 4GJ6 ... LFRECNUM 6,WGMODE(3) 18 4H3Q ... STO 6 AWORK1(2) [ RECORDS IN THIS ENTRY 18 4K#L ... STO 6 AWORK2(2) [ RECORDS TILL NEXT ENTRY 18 4K*4 ... IF BS,3,BLFRMULTI [ MULTIFILE ELEMENT 18 4K*G ... AND BS,3,BLFRNLASTEL [ NOT LAST ELEMENT 16 4K*Y ... AND BS,3,BLFRSETUP [ SETUP FILE 18 4KBB ... IF BS,3,BLFRPROPREC [ PROPERTY RECORD 8 4KBS ... THEN 10 4KC= ... LDN 0 1 12 4KCN ... SBS 0 AWORK2(2) 12 4KD6 ... STEP [ OVER IT 8 4KDJ ... FI 10 4KF2 ... LDN 0 1 12 4KFD ... SBS 0 AWORK2(2) 14 4KFW STEP [ OVER MAIN RECORD 20 4K_G MHUNTW 2,FILE,FRB [ MAIN FILE DES. FOR LAST EL. 12 4LF6 CALL 6 SFILECOMP 17 4LYQ AND 0,ZE [ SAME AS MAIN FILE IN ENTRY 8 4MDB STEP 10 4MKJ ... LDN 0 1 12 4MQQ ... SBS 0 AWORK2(2) 12 4MY2 MHUNTW 2,FILE,FRB 21 4NCL HUNT2 2,FILE,FRB,2 [ SETUP FILE DES. FOR LAST EL. 12 4NX= CALL 6 SFILECOMP 18 4PBW AND 0,ZE [ SAME AS SETUP FILE IN ENTRY 7 4PWG THEN 12 4QB6 LDN 6 0 [ FOUND 7 4QTQ ELSE 10 4R*B LDX 2 FX2 19 4RT2 LDCH 6 AWORK4(2) [ RESET URGENCY - NOT FOUND 7 4S#L FI 18 4SS= AND 6,NZ [ NOT ANOTHER ELEMENT OF MULTIFILE 6 4T?W DO 11 4THN ... LDX 1 AWORK2(2) 10 4TRG ... IF 1,NZ 7 4W3# ... THEN 13 4W?6 ... SKIP ,0(1) [ ENTRY 7 4WGY ... FI 7 4WQQ REPEAT 6 4X=B ELSE 8 4XQ2 SBN 0 1 18 4Y9L LDX 6 0 [ MAKE URGENCY FOUND NEXT ONE SCANNED 5 4YP= FI 6 4_8W REPEAT 18 4_NG IF 6,ZE [ ANOTHER ELEMENT OF SAME MULTIFILE FOUND 18 5286 ... THEN [ WE HAVE JUST READ SETUP LINE OF ENTRY 8 52MQ LDX 2 FX2 9 537B ... LDX 6 AWORK1(2) 7 53M2 SBN 6 1 5 546L DO 13 54L= BACKSPACE [ TO MAIN RECORD 8 555W REPEAT CT 6 7 55KG STEPAGAIN 16 5656 BC 3,BLFRNLASTEL [ SET AS LAST ELEMENT 15 56JQ CALL 5 STEPWRITE [ WRITE BLOCK AWAY 10 574B MHUNTW 2,FILE,FRB 10 57J2 HUNT2 2,FILE,FRB 14 583L FREECORE 2 [ DO NOT THAW SETUP FILE 5 58H= ELSE 10 592W MHUNTW 2,FILE,FRB 10 59GG HUNT2 2,FILE,FRB 13 5=26 CALL 6 STHAW [ THAW SETUP FILE 5 5=FQ FI 7 5=_B ADX 7 FX1 7 5?F2 EXIT 7 0 4 5?YL [ 4 5#D= [ 8 5#XW ...[ WW WW W 8 5*CG [ WW WW WW 8 5*X6 [ WW WW WWW 8 5BBQ [ WWWW WW 8 5BWB [ WWWWW WW 8 5CB2 [ WW WW WW 8 5CTL [ WW WW WW 8 5D*= [ WW WW WW 4 5DSW [ 4 5F#G [ 5 5FS6 WLFK1 4 5G?Q [ 4 5GRB [ 19 5H?2 [************************************************************ 4 5HQL [ 13 5J== [ STOPLIST END OF :SYSTEM.OUTPUT ACTION 4 5JPW [ 19 5K9G [************************************************************ 4 5KP6 [ 4 5L8Q [ 7 5LNB WHILE TRUE 10 5M82 MHUNTW 1,FILE,FTAB 15 5MML AND +FTREAD(1),L,FTAPP(1) [ MORE TABS 5 5N7= DO 18 5NLW LDN 0 2 [ TAB TO LAST ELEMENT OF MULTIFILE ENTRY 9 5P6G ADS 0 FTREAD(1) 9 5PL6 ADX 1 FTREAD(1) 11 5Q5Q GETSOUT ,A1(1),A1+1(1) 9 5QKB CALL 7 SEARCH 10 5R52 MHUNTW 2,FILE,FRB 8 5RJL SMO FX2 9 5S4= LDX 0 AWORK3 14 5SHW STO 0 A1+8(2) [ RESET GENERATION 13 5T3G CALL 6 STHAW [ THAW MAIN FILE 6 5TH6 REPEAT 5 5W2Q UP 4 5WGB [ 4 5X22 [ 8 5XFL [ WW WW WWWWW 8 5X_= [ WW WW WW WW 8 5YDW [ WW WW WW 8 5YYG [ WWWW WW 8 5_D6 [ WWWWW WWWWW 7 5_XQ [ WW WW WW 7 62CB [ WW WW WW 8 62X2 [ WW WW WWWWWWWW 4 63BL [ 4 63W= [ 5 64*W WLFK2 4 64TG [ 4 65*6 [ 19 65SQ [************************************************************ 4 66#B [ 16 66S2 [ LF SCHEDULER DELETING ENTRY FROM :SYSTEM.OUTPUT 4 67?L [ 19 67R= [************************************************************ 4 68=W [ 4 68QG [ 6 69=6 STEPAGAIN 20 69PQ IF MBAS,3,BLFRMULTI,BLFRSETUP [ MULTIFILE AND SETUP FILE 18 6=9B AND BC,3,BLFRNLASTEL [ LAST ELEMENT OF MULTIFILE 5 6=P2 THEN 9 6?8L CALL 7 SEARCH 9 6?N= MFREE FILE,FRB 5 6#7W ELSE 10 6#MG LFRECNUM 7,GMODE-A1(3) 7 6*76 LDX 1 7 7 6*LQ SBN 1 1 17 6*T2 ... IF 1,NZ [ MORE THAN ONE RECORD IN ENTRY 15 6B3= ... THEN [ SKIP SO DELETE IN REVERSE ORDER 9 6B9G ... SKIP ,0(1) 5 6BCQ ... FI 12 6BL2 DO [ DELETE ENTRY 7 6C5L DELETE 8 6CK= REPEAT CT 7 5 6D4W FI 5 6DJG UP 4 6F46 [ 4 6FHQ #END 6 ____ ...652614430006