8 22FL #OPT K0LISTEND=0 17 22_= #LIS K0LISTEND>K0LISTFILE>K0ALLGEO>K0GREATGEO>K0COMMAND 15 23DW #SEG LISTEND7 [BOB SEWELL 9 23YG 8HLISTEND 15 248# ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983 11 24D6 SETENTRY LISTEND,POINT,6 10 24XQ MENDAREA 30,K95LISTEND 4 25CB [ 19 25X2 [ THIS SEGMENT IMPLEMENTS SOME OF THE INTERFACES BETWEEN THE 20 26BL [ LISTFILE SYSTEM AND OTHER PARTS OF GEORGE(MAINLY FILESTORE) 19 26W= [ IT ALSO CONTAINS THE MODULE FOR INSERTING NEW REQUESTS IN 9 27*W [ :SYSTEM.OUTPUT. 4 27TG [ 20 28*6 [K1LISTEND THIS MODULE UPDATES ENTRIES IN :SYSTEM.OUTPUT WHEN 17 28SQ [ A FROZEN FILE IS CLOSED,OR HAS BEEN LOST. 21 29#B [ THE SCHEDULER HAS FOUND A GOUT/GABSNB OR A FILE/FABSNB 11 29S2 [ IN THE LFCHAIN. 4 2=?L [ 14 2=R= [K2LISTEND IMPLEMENTS THE LFTHAW MACRO. 4 2?=W [ 20 2?QG [K3LISTEND THIS MODULE INSERTS A NEW REQUEST IN :SYSTEM.OUTPUT 4 2#=6 [ 20 2#PQ [K4LISTEND IMPLEMENTS THE LFCLOSE MACRO.IT CONVERTS THE FABSNB 20 2*9B [ SUPPLIED BY CLOSE TO A GOUT/GABSNB,AND CHAINS IT IN 10 2*P2 [ THE LFCHAIN. 4 2B8L [ 19 2BN= [K5LISTEND IMPLEMENTS THE LFAT MACRO.THIS MACRO IS ISSUED BY 20 2C7W [ THE IDF ROUTINES WHEN A PROPERTY HAS BEEN ATTRIBUTED 12 2CMG [ TO A REMOTE DEVICE. 4 2D76 [ 20 2DLQ [K6LISTEND IMPLEMENTS THE LFCCAT MACRO.AS LFAT BUT CC ATTRIBUTE. 20 2F6B [ THE MACRO IS ALSO ISSUED FOLLOWING CC PROPERTY BUT 18 2FL2 [ IN THIS CASE THERE WILL BE NO CPAR/JSCE BLOCK 4 2G5L [ 21 2GK= [*********************************************************************** 6 2H4W [DATA AREA 16 2HJG XATT +ATTRIBUTE [WAITING STYLE 4 2J46 [ 10 2JHQ [SOME BIT POSITIONS IN GMODE 19 2K3B SETUPBIT #10000000 [THERE IS A SETUP PARAMETER 20 2KH2 PROPBIT #4000000 [THERE IS A PROPERTY PARAMETER 19 2L2L SIMPBIT #20000000 [REQUEST BEING IMPLEMENTED 19 2LG= XIMPBIT #21400000 [IMPLEMENTABLE REQUEST MASK 19 2L_W OPENSET #400000 [SETUP FILE OFW OR OFFLINE 18 2MFG OPENMAIN #1000000 [MAIN FILE OFW OR OFFLINE 9 2M_6 XFILOFFBS #1400000 17 2NDQ SMULTSETBIT #10 [MULTIFILE WITH SETUP 4 2NYB [ 4 2PD2 [ 21 2PXL [*********************************************************************** 7 2QC= [SUBROUTINE AREA 8 2QWW PUTR SBX 5 FX1 19 2RBG [THIS S/R PUTS A RECORD IN SYSOUT.IT WILL THROW THE BLOCK AWAY 15 2RW6 [UNLESS THE SUM OF AWORK1 AND AWORK2 IS NON ZERO 20 2S*Q [(WHICH CORRESPONDS TO A MULTIFILE ENTRY WHICH IS NOT YET COMPLETE). 10 2STB NAMETOP 1,FILE,FWB 8 2T*2 LDN 3 #200 9 2TSL ANDX 3 ATYPE(1) 10 2W#= NAME 1,FILE,FWB 6 2WRW INSERT 10 2X?G MHUNTW 1,FILE,FWB 9 2XR6 ORS 3 ATYPE(1) 21 2Y=Q LDXC 3 GSWORK2(2) [B0 MAY HAVE BEEN SET BY HSPACTLF IN 16 2YQB ADX 3 GSWORK1(2) [COPY OF GMULTID 19 2_=2 BNZ 3 NOFRE [J IF COMPLICATED MULTIFILE 7 2_PL FREECORE 1 8 329= NOFRE ADX 5 FX1 7 32NW EXIT 5 0 4 338G [ 5 33N6 RECHAIN 18 347Q [THIS S/R REPLACES A STRING FOR A STILL OPEN MULTIFILE IN 16 34MB [THE LFCHAIN UNLESS X4 IS NEGATIVE,WHEN IT FREES IT. 8 3572 BPZ 4 YEP 7 35LL FREECORE 1 7 366= EXIT 3 0 8 36KW YEP LDX 2 BLF+1 8 375G CHAIN 1,2 7 37K6 EXIT 3 0 12 384Q [ ******** 5 38JB TESTNAME 18 3942 [THIS S/R COMPARES THE NAME IN THE FABSNB IN ACTIVITY CHAIN 20 39HL [(WHICH IS 10 WORDS LONG) WITH THAT INDICATED BY X3(WHICH MAY HAVE 7 3=3= [BEEN EXPANDED) 4 3=GW [ 10 3?2G MHUNT 1,FILE,FABSNB 9 3?G6 LDX 0 HDREC(3) 8 3?_Q SBN 0 10 9 3#FB BNZ 0 NOTTEN 14 3#_2 TESTNAMX 10,HDREC(3),HDREC(1),XERR,2 8 3*DL BRN XT1 5 3*Y= NOTTEN 9 3BCW ADX 3 HDREC(3) 8 3BXG SBN 3 11 14 3CC6 TESTNAMX 3,HDREC(3),HDREC+1(1),XERR,2 15 3CWQ TESTNAMX 6,HDREC+5(3),HDREC+4(1),XERR,2 7 3DBB XT1 ADN 6 1 8 3DW2 XERR LDX 1 FX1 8 3F*L LDX 2 FX2 7 3FT= EXIT 6 0 4 3G#W [ 5 3GSG TESTREQ 19 3H#6 [THIS S/R EXAMINES A REQUEST IN :SYSTEM.OUTPUT TO SEE IF IT IS 18 3HRQ [WAITING FOR A FILE TO BE RETRIEVED.THE FILE IN QUESTION IS 19 3J?B [INDICATED BY A FABSNB IN THE ACTIVITY CHAIN.B0 OF AWORK1 SET 13 3JR2 [INDICATES THAT THE FILE HAS BEEN LOST. 8 3K=L SBX 7 FX1 10 3KQ= LFRECNUM 5,GMODE-A1(3) 18 3L9W STO 5 AWORK3(2) [NO OF RECORDS IN ENTRY 10 3LPG LDX 5 XFILOFFBS(1) 10 3M96 ANDX 5 GMODE-A1(3) 6 3M?* ...#UNS AWLSZ 4 3M*J ...( 10 3MCR ... BSXD 6,BLFMULTI 10 3MG2 ... ANDX 6 GMODE-A1(3) 19 3MJ9 ... BNZ 6 TRYIT [LOOK ANYWAY IF A MULTIFILE 4 3MLD ...) 18 3MNQ BNZ 5 TRYIT [J IF WAITING FOR A FILE 9 3N8B TNEXT LDX 1 AWORK3(2) 8 3NN2 TNX SKIP ,0(1) 8 3P7L TXIT ADX 7 FX1 7 3PM= EXIT 7 0 17 3Q6W TRYIT LDX 4 GOUTKEY1-A1(3) [REMEMBER INDEX KEYS 11 3QLG LDX 0 GOUTKEY2-A1(3) 9 3R66 STO 0 AWORK4(2) 6 3R?# ...#UNS AWLSZ 8 3RDG ... BNZ 6 TNPR2 10 3RKQ LDX 0 OPENMAIN(1) 7 3S5B ANDX 0 5 19 3SK2 BZE 0 TSET [J NOT WAITING FOR MAINFILE 5 3SSS ...TNPR2 10 3T4L LDX 0 PROPBIT(1) 10 3TJ= ANDX 0 GMODE-A1(3) 8 3W3W BZE 0 TNPR 8 3WHG CALL 6 STEP 7 3X36 LDN 0 1 9 3XGQ SBS 0 AWORK3(2) 4 3Y2B TNPR 8 3YG2 CALL 6 STEP 7 3Y_L LDN 0 1 16 3_F= SBS 0 AWORK3(2) [ONE LESS RECORD 17 3_YW SBN 3 A1 [RELATIVISE POINTER 17 42DG CALL 6 TESTNAME [COMPARE FILE NAMES 16 42Y6 BRN TSET [J IF NO MATCH 9 43CQ LDX 0 AWORK1(2) 17 43XB BPZ 0 TNLOST [J IF FILE NOT LOST 14 44C2 LFDEL 4,AWORK4(2),LOSTM [DELETE 9 44WL CALL 6 STEPAGAIN 8 45B= BRN TXIT 5 45TW TNLOST 7 46*G LDN 0 1 17 46T6 SBS 0 AWORK2(2) [UPDATE FREEZECOUNT 10 47#Q LDX 0 OPENMAIN(1) 18 47SB ORS 0 AWORK1(2) [NOTE MAIN FILE MATCHES 10 48#2 TSET LDX 0 OPENSET(1) 7 48RL ANDX 0 5 18 49?= BZE 0 TEND [J IF SETUP NOT OFFLINE 9 49QW LDX 1 AWORK3(2) 7 4==G SBN 1 1 9 4=Q6 SBS 1 AWORK3(2) 18 4?9Q SKIP ,0(1) [POSITION ON LAST RECORD 8 4?PB SBN 3 A1 9 4#92 CALL 6 TESTNAME 16 4#NL BRN TEND [J IF NO MATCH 9 4*8= LDX 0 AWORK1(2) 9 4*MW BPZ 0 TXLOST 14 4B7G LFDEL 4,AWORK4(2),LOSTS [DELETE 9 4BM6 CALL 6 STEPAGAIN 8 4C6Q BRN TXIT 5 4CLB TXLOST 10 4D62 LDX 0 OPENSET(1) 9 4DKL ORS 0 AWORK1(2) 16 4DMT ...[MUST CHECK FOR NON(OR LAST ELEMENT OF A)MULTIFILE 10 4DQ4 ... GETSOUT ,4,AWORK4(2) 9 4DS? ... CALL 6 STEPAGAIN 10 4DWG ... LDX 6 GMODE-A1(3) 11 4DYP ... ANDX 6 SMULTSETBIT(1) 8 4F2Y ... BNZ 6 TEND 7 4F5= LDN 0 1 17 4FJW SBS 0 AWORK2(2) [UPDATE FREEZECOUNT 10 4G4G TEND LDX 6 XFILOFFBS(1) 9 4GJ6 ANDX 6 AWORK1(2) 8 4H3Q BZE 6 TNEXT 10 4H7M ... LDX 0 OPENSET(1) 9 4H?J ... ANDX 0 AWORK1(2) 8 4HCF ... BNZ 0 TENDB 10 4HHB GETSOUT ,4,AWORK4(2) 9 4J32 CALL 6 STEPAGAIN 8 4JGL ...TENDB STEPWRITE 6 4JHD ...#UNS AWLSZ 4 4JJ= ...( 13 4JK4 ...[ PUT SIZE FROM FABSNB INTO GOUT/INFO 4 4JKW ...[ 10 4JLN ... LDX 0 OPENMAIN(1) 9 4JMG ... ANDX 0 AWORK1(2) 8 4JN# ... BZE 0 TNTMN 12 4JP6 ... JBC TNTMN,3,BLFRWLSIZE 9 4JPY ... CALL 4 SLFWLINFO 10 4JQQ ... MHUNT 1,FILE,FABSNB 9 4JRJ ... LDX 0 GASIZE(1) 8 4JR_ ... BNG 0 TNTM2 7 4JSB ... SMO 2 8 4JT8 ... STO 0 0(3) 5 4JTK ...TNTM2 11 4JW2 ... LDX 4 GOUTKEY1-A1(3) 8 4JWS ... LDX 1 FX1 8 4JXL ... LDX 2 FX2 5 4JYD ...TNTMN 4 4J_= ...) 10 4K2= LDX 6 XFILOFFBS(1) 9 4KFW ANDX 6 AWORK1(2) 10 4K_G ORS 6 GMODE-A1(3) 10 4LF6 ERS 6 GMODE-A1(3) 9 4LYQ ERS 6 AWORK1(2) 7 4MDB #SKI K6LISTFILE 9 4MY2 TRACE 6,LFCLOSE 10 4NCL LDX 0 XIMPBIT(1) 10 4NX= ANDX 0 GMODE-A1(3) 18 4PBW BZE 0 TRYPR [J TO TRY FOR PERIPHERAL 10 4PWG ...TRY3 LFRECNUM 1,GMODE-A1(3) 8 4QB6 BRN TNX 10 4QG3 ...TRYPR LDCH 6 GOPTY-A1(3) 14 4QKY ... STO 6 ACOMMUNE7(2) [TYPE 7 4QPT ... LDN 6 0 17 4QTQ ... FINDPERE 1,APFOTY,ACOMMUNE7(2),QNEXTDV,,TRY1,TRY1 14 4Q_M ... BPZ 1 TRY2 [LP EXISTS 8 4R5J ... BZE 6 TRY2 18 4R9F ... BRN TRY3 [ONLY SW OUT OR ANON EXIST 16 4R*B ...TRY1 LDN 6 1 [SW OUT OR ANON DEVICE 9 4RF? ... BRN QNEXTDV 16 4RK8 ...TRY2 LFGETPER 4,AWORK4(2) [PERFORM GETPER 9 4RP5 ... CALL 6 STEPAGAIN 8 4RT2 BRN TXIT 4 4S#L [ 8 4SS= STEP SBX 6 FX1 6 4T?W STEP 8 4TRG ADX 6 FX1 7 4W?6 EXIT 6 0 6 4WQQ STEPAGAIN 8 4X=B SBX 6 FX1 7 4XQ2 STEPAGAIN 8 4Y9L ADX 6 FX1 7 4YP= EXIT 6 0 4 4YPQ ...[ 21 4YQ= ...[ ******************************************************************** 4 4YQQ ...[ 5 4YR= ...SFNDINFO 10 4YRQ ... MHUNTW 2,GOUT,INFO 7 4YS= ... EXIT 1 0 4 4YSQ ...[ 21 4YT= ...[ ********************************************************************* 4 4YTQ ...[ 6 4YW= ...SLFWLINFO 7 4YWQ ... LFWLINFO 7 4YX= ... EXIT 4 0 4 4YXQ ...[ 21 4YY= ...[********************************************************************** 4 4YYQ ...[ 19 4Y_= ...[ SUBROUTINE TO GET THE GENERATION NUMBER FROM A FILE/FABSNB 9 4Y_Q ...[ RENAMED GOUT/INFO2 4 4_2= ...[ 21 4_2Q ...[*********************************************************************** 4 4_3= ...[ 5 4_3Q ...SGETGEN 10 4_4= ... MHUNT 3,GOUT,INFO2 9 4_4Q ... ADX 3 HDREC(3) 7 4_5= ... SBN 3 2 9 4_5Q ... LDX 5 HDREC(3) 7 4_6= ... SBN 5 1 7 4_6Q ... EXIT 6 0 4 4_7= ...[ 4 4_7Q ...[ 12 4_8W [ ******** 4 4_NG [ 21 5286 [*********************************************************************** 9 52MQ [MAIN BODY OF SEGMENT 21 537B [*********************************************************************** 5 53M2 POINT1 18 546L [THIS ENTRY POINT PROCESSES A FABSNB FOR A RECENTLY CLOSED 7 54L= [FROZEN FILE. 17 555W [X4 CONTAINS A GUESS AT INDEX KEY FOR LIKELY CANDIDATE 11 55KG [AWORK2 CONTAINS FREEZE COUNT 10 5656 [AWORK1=0 FOR CLOSED FILE 12 56JQ [AWORK1 HAS B0 SET FOR LOST FILE. 9 574B LDX 0 AWORK1(2) 9 57J2 BNG 0 NOLUCK 17 583L BZE 4 NOLUCK [J IF NO INDEX KEY 7 58H= LDN 5 0 8 592W GETSOUT ,4,5 9 59GG CALL 6 STEPAGAIN 9 5=26 TRYAG BZE 3 NOLUCK 11 5=FQ TXU 4 GOUTKEY1-A1(3) 9 5=_B BCS NOLUCK 9 5?F2 CALL 7 TESTREQ 9 5?YL LDX 0 AWORK2(2) 8 5#D= BNZ 0 TRYAG 10 5#QM ...XUP HUNT 1,FILE,FABSNB 8 5*54 ... BNG 1 XUP1 7 5*CG FREECORE 1 5 5*X6 ...XUP1 UP 6 5*YH ...#UNS AWLSZ 4 5*_Y ...( 9 5B3* ...XUP2 LDX 5 AWORK2(2) 8 5B4Q ... BZE 5 XUP 9 5B67 ... LDX 0 AWORK1(2) 8 5B7J ... BNG 0 XUP 8 5B8_ ... BZE 0 XUP 10 5B=B ... STO 5 ACOMMUNE4(2) 8 5B?R ... BRN XUP1 4 5B*8 ...) 5 5BBQ NOLUCK 18 5BWB [HAVING MADE OUR EDUCATED GUESS WE NOW SLOG THROUGH THE FILE 6 5CB2 REWIND 8 5CTL CALL 6 STEP 6 5CYQ ...#UNS AWLSZ 8 5D3W ...TRYA BZE 3 XUP2 6 5D72 ...#UNS AWLSZ 4 5D=6 ...#SKI 19 5D*= TRYA BZE 3 XUP [END OF FILE IS ACCEPTABLE 9 5DSW CALL 7 TESTREQ 9 5F#G LDX 0 AWORK2(2) 18 5FS6 BZE 0 XUP [SATISFIED FREEZECOUNT 8 5G?Q BRN TRYA 9 5GRB TH LDX 3 ATYPE(3) 8 5H?2 ANDN 3 #200 8 5HQL BZE 3 NOTWF 17 5J== THAWWF NOTWF1 [NO DIRECTORY FOR W/F 7 5JPW BRN Y 5 5K9G NOTWF1 10 5KP6 MHUNT 1,FILE,FABSNB 8 5L8Q LDN 0 #200 9 5LNB ERS 0 ATYPE(1) 5 5M82 NOTWF 13 5MML OPENDIR (GEOERR),GENERAL,ERASING 8 5N7= SBR THAW SBR 7 5NLW CLOSETOP 10 5P6G MHUNTW 1,FILE,ENT 7 5PL6 FREECORE 1 10 5Q5Q Y MHUNT 1,FILE,FABSNB 7 5QKB FREECORE 1 4 5R52 [ 21 5RJL [*********************************************************************** 5 5S4= POINT2 18 5SHW [THIS ENTRY POINT THAWS AS MANY FILES AS THERE ARE FABSNBS. 10 5T3G HUNT 3,FILE,FABSNB 18 5TH6 BPZ 3 TH [J IF ANY FILES TO THAW 5 5W2Q UP 4 5WGB [ 21 5X22 [*********************************************************************** 5 5XFL POINT3 19 5X_= [THIS ENTRY POINT INSERTS A REQUEST IN SYSOUT(PERHAPS SEVERAL 20 5YDW [REQUESTS FOR A MULTIFILE).IT EXPECTS GSWRK1 TO CONTAIN GWAKECOUNT 11 5YYG [AND GSWRK2 TO CONTAIN GMULTID 20 5_D6 [WE NOW USE THE INDEX KEY IN THE GOUT/INFO TO POSITION US CORRECTLY 20 5_XQ [FOR INSERTING THIS REQUEST,SUPPLYING A ZERO SUBKEY SO WE WILL BE 20 62CB [POSITIONED AT THE FRONT OF THOSE ENTRIES WITH THE SAME FIRST KEY. 19 62X2 [WE THEN POSITION AT THE END OF THESE ENTRIES AND CALCULATE A 18 63BL [SUITABLE SUB-KEY BY ADDING 1 TO THAT OF THE LAST OF THEM. 6 63W= [RIGHT THEN! 10 64*W MHUNTW 1,GOUT,INFO 8 64DF ... LDCT 0 #200 9 64H4 ... ANDX 0 GMODE(1) 8 64KM ... BZE 0 XNSET 10 64N= ... GEOERR 0,LISTSIMP 5 64QT ...XNSET 9 64TG LDX 7 GMODE(1) 10 65*6 LDX 4 GOUTKEY1(1) 15 65SQ LDN 5 0 [ZERO SUBKEY 8 66#B GETSOUT ,4,5 9 66S2 OKREP CALL 6 STEPAGAIN 16 67?L XSKI BZE 3 NOW [J IF END OF FILE 17 67R= TXU 4 GOUTKEY1-A1(3) [J IF NOT REQUEST IN 16 68=W BCS NOW [REQUIRED CLASS. 16 68QG LDX 5 GOUTKEY2-A1(3) [UPDATE SUB-KEY 10 69=6 LFRECNUM 1,GMODE-A1(3) 8 69PQ SKIP ,0(1) 8 6=9B BRN XSKI 17 6=P2 NOW ADN 5 1 [CREATE NEW SUBKEY 10 6?8L MHUNTW 1,GOUT,INFO 10 6?N= STO 5 GOUTKEY2(1) 9 6#7W STO 4 AWORK3(2) 7 6#MG LDN 4 1 9 6*76 STO 5 AWORK4(2) 20 6*LQ [IF WE ARE DEALING WITH A MULTIFILE INVOLVING SETUP,THEN THE FLAG 20 6B6B ['SMULTSETBIT' WILL BE SET IN GMODE TO PREVENT THAWING OF THE SETUP 20 6BL2 [FILE AFTER LISTING EACH COMPONENT.(IT IS ONLY FROZEN ONCE!). WHEN 19 6C5L [WE REACH THE LAST COMPONENT OF THE MULTIFILE,WE UNSET THE FLAG. 4 6CK= [ 19 6CP7 ...[IF WE ARRIVED HERE FOLLOWING A CHANGELIST(URGENCY) COMMAND FOR 19 6CT4 ...[A MULTIFILE INVOLVING A SETUP FILE, WE MUST NOT ALTER THE FLAG 15 6CY_ ...['SMULTSETBIT' IN ANY WAY,(REMEMBER FROZEN? !!!) 18 6D4W ...[GSWORK1 (THE COMPONENT COUNT) WILL BE ZERO IN THIS CASE. 10 6D8R ...SMORE LDX 0 GSWORK1(2) 19 6D#N ... BZE 0 NOCLEAR [J IF ARRIVED FROM LFCHANGE. 8 6DDK ... SMO FX1 10 6DJG LDX 3 SMULTSETBIT 9 6F46 ANDX 3 GMODE(1) 21 6FHQ SBS 4 GSWORK1(2) [SUBTRACT 1 FROM NUMBER OF COMPONENTS 9 6G3B BZE 3 NOCLEAR 10 6GH2 LDX 0 GSWORK1(2) 10 6H2L ADXC 0 GSWORK2(2) 17 6HG= BNZ 0 NOCLEAR [NOT LAST COMPONENT 9 6H_W ERS 3 GMODE(1) 5 6JFG NOCLEAR 6 6JFY ...#UNS AWLSZ 4 6JGB ...( 4 6JGS ...[ 21 6JH= ...[ IF WLSIZE MACRO ON THEN MOVE SIZE OF CURRENT GENERATION INTO GOUT/INFO 4 6JHN ...[ 11 6JJ6 ... JBC XNOGS,1,BLFWLSIZE 7 6JJJ ... LDN 5 0 11 6JK2 ... JBC XNMLT,1,BLFMULTI 9 6JKD ... CALL 6 SGETGEN 10 6JKW ...XNMLT HUNTW 3,GOUT,GESIZE 8 6JL# ... BNG 3 XNOGS 7 6JLQ ... SMO 5 8 6JM8 ... LDX 5 A1(3) 7 6JML ... LDN 6 1 8 6JN4 ... ADS 6 A1(1) 10 6JNG ... ADX 6 ALOGLEN(1) 10 6JNY ... ALTLENG 1,6,SFNDINFO 10 6JPB ... LDXC 0 GSWORK2(2) 10 6JPS ... ADX 0 GSWORK1(2) 8 6JQ= ... BNZ 0 XNOFR 16 6JQN ...[ FREE GOUT/GESIZE IF NO MORE ELEMENTS OF MULTIFILE 10 6JQX ... MHUNTW 3,GOUT,GESIZE 7 6JR6 ... FREECORE 3 10 6JRJ ...XNOFR MHUNTW 3,GOUT,INFO 8 6JS2 ... ADN 3 A1 9 6JSD ... CALL 4 SLFWLINFO 11 6JSW ...[ PUT SIZE IN GOUT/INFO BLOCK 7 6JT# ... SMO 2 8 6JTQ ... STO 5 0(3) 7 6JW8 ... LDN 4 1 7 6JWL ... LDX 1 3 8 6JX4 ... SBN 1 A1 5 6JXG ...XNOGS 4 6JXY ...) 16 6J_6 CALL 5 PUTR [INSERT RECORD 20 6KDQ BZE 3 QFRE1 [J IF NOT OPEN MULTIFILE,OR IF 10 6KYB NAME 1,GOUT,INFO 6 6L2# ...#UNS AWLSZ 4 6L4= ...( 12 6L59 ... JBC XNOGS1,1,BLFWLSIZE 7 6L68 ... NGN 5 1 8 6L86 ... ADS 5 A1(1) 10 6L=4 ... ADX 5 ALOGLEN(1) 8 6L#2 ... ALTLENG 1,5 5 6L#_ ...XNOGS1 4 6L*Y ...) 8 6LD2 QFRE1 SMO FX1 9 6LXL LDX 0 PROPBIT 7 6MC= ANDX 0 7 18 6MWW BZE 0 QFRE2 [J IF NO PROPERTY RECORD 10 6NBG MHUNTW 1,GOUT,INFO4 8 6NW6 CALL 5 PUTR 16 6P*Q BZE 3 QFRE2 [J IF BLOCK FREED 10 6PTB NAME 1,GOUT,INFO4 15 6Q*2 QFRE2 BNG 7 QFRE3 [J IF ONLINE 10 6QSL MHUNT 1,GOUT,INFO2 8 6R#= CALL 5 PUTR 15 6RRW BZE 3 QFRE3 [J IF FREED 16 6S?G NAMETOP 1,GOUT,INFO2 [CAVE WORKFILE! 9 6SR6 ADX 1 HDREC(1) 7 6T=Q SBN 1 2 16 6TQB ADS 4 HDREC(1) [ADVANGE GEN. NO. 8 6W=2 QFRE3 SMO FX1 9 6WPL LDX 0 SETUPBIT 7 6X9= ANDX 0 7 17 6XNW BZE 0 QFRE4 [J IF NO SETUP FILE 16 6Y8G MHUNT 1,GOUT,INFO3 [REMEMBER B16! 8 6YN6 CALL 5 PUTR 8 6_7Q BZE 3 QFRE4 10 6_MB NAMETOP 1,GOUT,INFO3 10 7272 QFRE4 LDX 0 GSWORK1(2) 9 72LL BZE 0 THATSALL 20 736= [FOR ALL BUT MULTIFILES ONLY ONE PASS WILL BE MADE THROUGH THE LOOP. 20 73KW [AWORK1 MAY HAVE BEEN INCREMENTED BY HSPACTLF WHILE COORDINATING, 19 745G [ALSO AWORK2 WILL HAVE HAD B0 SET IF THE MULTIFILE IS NOW CLOSED 10 74K6 MHUNTW 1,GOUT,INFO 7 754Q LDN 0 1 18 75JB ADS 0 GOUTKEY2(1) [INCREMENT INDEX SUB-KEY 10 7642 LDXC 0 GSWORK2(2) 8 76HL BCC SMORE 20 773= STOZ GSWORK2(2) [TO SHOW MULTIFILE NOW CLOSED. 8 77GW BRN SMORE 5 782G THATSALL 19 78G6 [IF WE ARE DEALING WITH A MULTIFILE WHICH IS STILL OPEN,THEN WE 19 78_Q [MUST RECHAIN THE STRING IN THE LFCHAIN.IF WE HAVE A PERIPHERAL 12 79FB [THEN WE MUST FIRST COPY THE BLOCKS. 6 79H5 ...#UNS AWLSZ 4 79JS ...( 10 79LH ... HUNTW 1,GOUT,INFO 8 79N= ... BNG 1 NFIN 5 79P5 ...THTSL 4 79P_ ...) 6 79RN ...#UNS AWLSZ 4 79TC ...#SKI 4 79X6 ...( 10 79_2 LDX 4 GSWORK2(2) 16 7=DL BZE 4 NFIN [NOT MULTIFILE 10 7=Y= MHUNTW 1,GOUT,INFO 4 7?84 ...) 18 7?CW LDX 3 GSWORK1(2) [ENSURE WE HAVEN'T MISSED 17 7?XG STO 3 GWAKECOUNT(1) [ANY HSPACTLF UPDATES 6 7#25 ...#UNS AWLSZ 4 7#4N ...( 10 7#7? ... LDX 4 GSWORK2(2) 10 7#9W ... STO 4 GMULTID(1) 4 7##F ...) 8 7#C6 BPZ 4 Q4 10 7#WQ STOZ GMULTID(1) 6 7#XM ...#UNS AWLSZ 4 7#YJ ...( 4 7#_F ...[ 16 7*2B ...[ RECHAIN GOUT/GESIZE BLOCK BACK IN GOUT/INFO CHAIN 4 7*3? ...[ 7 7*48 ...Q4 LDN 6 0 11 7*55 ... JBC XQ4,1,BLFWLSIZE 7 7*62 ... LDN 6 1 9 7*6X ...XQ4 CALL 3 RECHAIN 8 7*7S ... BZE 6 XQ5 10 7*8P ... MHUNTW 1,GOUT,GESIZE 9 7*9L ... CALL 3 RECHAIN 4 7*=H ...XQ5 4 7*?D ...) 6 7*#* ...#UNS AWLSZ 4 7**= ...#SKI 18 7*BB Q4 CALL 3 RECHAIN [RECHAIN BLOCK OR FREE IT 10 7*W2 LDX 0 PROPBIT(1) 7 7B*L ANDX 0 7 8 7BT= BZE 0 Q5 10 7C#W MHUNTW 1,GOUT,INFO4 9 7CSG CALL 3 RECHAIN 10 7D#6 Q5 MHUNT 1,GOUT,INFO2 9 7DRQ CALL 3 RECHAIN 10 7F?B LDX 0 SETUPBIT(1) 7 7FR2 ANDX 0 7 8 7G=L BZE 0 QNM 10 7GQ= MHUNT 1,GOUT,INFO3 9 7H9W CALL 3 RECHAIN 18 7HPG QNM STOZ GSWORK2(2) [AVOID ANY MORE HSPACTLFS 9 7J96 NFIN LDX 0 AWORK3(2) 17 7JNQ STO 0 ACOMMUNE1(2) [TRANSFER INDEX KEYS 9 7K8B LDX 0 AWORK4(2) 10 7KN2 STO 0 ACOMMUNE2(2) 5 7L7L UP 4 7LM= [ 21 7M6W [*********************************************************************** 5 7MLG POINT4 15 7N66 [THIS ENTRY POINT IMPLEMENTS THE LFCLOSE MACRO 15 7NKQ LDX 4 ACOMMUNE1(2) [FREEZECOUNT 6 7NQY ...#UNS AWLSZ 10 7NY6 ... LDX 5 ACOMMUNE2(2) 10 7P5B MHUNT 1,FILE,FABSNB 6 7P=J ...#UNS AWLSZ 13 7PCQ ... ALTLEND 1,GASIZE+1-A1,FILE,FABSNB 6 7PJY ...#UNS AWLSZ 4 7PQ6 ...#SKI 14 7PX# ... ALTLEND 1,GAFREEZE+1-A1,FILE,FABSNB 10 7Q4L MHUNT 3,FILE,FABSNB 10 7QJ= NAMETOP 3,GOUT,GABSNB 10 7R3W STO 4 GAFREEZE(3) 6 7R94 ...#UNS AWLSZ 9 7RB= ... STO 5 GASIZE(3) 9 7RHG LDCH 0 ATYPE(2) 9 7S36 SBN 0 CPAT/64 14 7SGQ BZE 0 XJBLK [J IF CPA 9 7T2B STOZ GAKEY(3) 9 7TG2 BRN XLFCHAIN 5 7T_L XJBLK 9 7WF= LDX 0 JOBNO(2) 17 7WYW BZE 0 XLFCHAIN [J IF NO JOB BLOCK 16 7XDG FJOCA 2 [FIND JOB BLOCK 9 7XY6 LDX 4 JOBNUM(2) 9 7YCQ STO 4 GAKEY(3) 9 7YXB LDX 4 JURGE(2) 8 7_C2 ORX 4 GSIGN 8 7_WL ERX 4 GSIGN 8 82B= BNZ 4 SETAL 9 82TW LDX 4 JPRIV(2) 9 83*G ANDN 4 JSISSUE 8 83T6 BZE 4 NSYS 8 84#Q LDN 4 #41 8 84SB BRN SETAL 8 85#2 NSYS LDN 4 #55 9 85RL SETAL DCH 4 GAKEY(3) 5 86?= XLFCHAIN 10 86QW LFCHAIN GOUT,GABSNB 8 87=G STARTACT OUT 5 87Q6 UP 4 889Q [ 21 88PB [*********************************************************************** 4 8992 ...[ 5 89NL ...SFINDACT 4 8=8= [ 11 8=MW [ FIND ACTLF FOR REMOTE DEVICE 4 8?7G [ 10 8#LB MHUNTW 3,CPAR,JSCE 14 8*62 LDX 6 JSCEA(3) [DEVICE 15 8*KL LDX 7 JSCEB(3) [IDENTIFIERS. 16 8BJW POINTACT OUT,3 [FIND SCHEDULER 10 8C4G LDN 4 JOBRING(3) 21 8CJ6 LFBBUS G,3,NXACT [J IF DOES NOT OWN A REMOTE DEVICE 10 8F32 TXU 6 GSWORK1(3) 10 8FGL TXU 7 GSWORK2(3) 16 8G2= BCC THISPERI [J IF SAME DEVICE 10 8GFW NXACT LDX 3 JOBRING(3) 7 8G_G TXU 3 4 17 8H9# ... BCS MORE [ J IF MORE ACTLFS 5 8H9X ...XFSHA1 5 8H?5 ...RNONE 5 8HF6 ... UP 4 8HNY ...MORE 9 8HYQ SBN 3 JOBRING 20 8JDB TRYSC LFBBUS G,3,NXACT [J IF DOES NOT OWN REMOTE DEVICE 10 8JY2 TXU 6 JSOURCE1(3) 10 8KCL TXU 7 JSOURCE2(3) 8 8KX= BCS NXACT 5 8L4D ...XFSH4 5 8LBW THISPERI 3 8LSY ... 12 8LWG HUNT2J 3,GOUT,GPROPNOS,,NOTF 7 8LWT ... EXIT 5 0 4 8LX8 ...[ 21 8LXH ...[*********************************************************************** 4 8LXW ...[ 5 8LY9 ...POINT5 4 8LYJ ...[ 6 8LYX ...[ LFAT MACRO 12 8L_= ...[ AWORK1 = -VE IF CONSOLE PROPERTY 10 8L_K ...[ AWORK2 = PROPERTY NUMBER 4 8L_Y ...[ 15 8M2? ... CALL 5 SFINDACT [ FIND ACTLF 9 8M2L ... LDX 0 AWORK1(2) 19 8M2_ ... BPZ 0 NOTCONS [ J IF NOT CONSOLE PROPERTY 10 8M3# ... LDX 0 GPROPNUM(3) 20 8M3M ... BNZ 0 NOTF [ J IF ALREADY CONSOLE PROPERTY 9 8M42 ... LDX 0 AWORK2(2) 10 8M4* ... STO 0 GPROPNUM(3) 5 8M4N ... UP 5 8M4T ...NOTCONS 9 8M53 ... LDN 4 ATTMAX-1 8 8M5B ... LDN 1 1(3) 5 8M5H ...RADDL 10 8M5P ... LDX 0 GPROPNUM(1) 18 8M64 ... BZE 0 RADDF [ J IF FOUND FREE SPACE 7 8M6C ... ADN 1 1 8 8M6Q ... BCT 4 RADDL 19 8M75 ... BRN NOTF [ ALREADY MAX. NO. OF PROPS 5 8M7Y ...RADDF 9 8M8S ... LDX 0 AWORK2(2) 10 8M97 ... STO 0 GPROPNUM(1) 5 8M99 ...TOUPRET 5 8M9T ... UP 4 8M=B ...[ 21 8M=H ...[*********************************************************************** 4 8M=W ...[ 5 8M?9 ...POINT6 4 8M?J ...[ 7 8M?X ...[ LFCCAT MACRO 10 8M#= ...[ AWORK2 = PROPERTY NUMBER 8 8M## ...[ IF CPAR/JSCE BLOCK 10 8M#B ...[ THEN CC AU FOR THAT DEVICE 13 8M#D ...[ ELSE CC PR => CC AU FOR ALL DEVICES 4 8M#G ...[ FI 4 8M#K ...[ 10 8M#N ... HUNTW 3,CPAR,JSCE 15 8M#R ... BNG 3 RCCPR [ J IF CC PR 9 8M#Y ... CALL 5 SFINDACT 18 8MBX ... LDN 6 0 [ ONE DEVICE ONLY CASE 4 8MDW ...RCCS 9 8MGT ... LDN 4 ATTMAX 4 8MJX ...RCCL 7 8MRN ... SMO 4 10 8N2F ... LDX 0 GPROPNUM-1(3) 8 8N6_ ... SMO FX2 9 8N?F ... ERX 0 AWORK2 18 8ND3 ... ANDX 0 BSP16 [ COMPARE NUMBERS ONLY 17 8NLS ... BZE 0 RCCF [ J IF FOUND PROPERTY 8 8P4B ... BCT 4 RCCL 19 8P7Q ... BNZ 6 RCCPRF [ J IF CHECKING ALL DEVICES 19 8P8W ... [PROPERTY HAS NOT BEEN FOUND IN 18 8P=2 ... [GOUT GPROPNOS BLOCK 7 8P?6 ... LDN 0 1 9 8P#= ... ADS 0 ALFATCT2 5 8P*B ... UP 4 8PBH ...RCCF 7 8PBY ... LDN 0 1 7 8PC* ... SBX 0 4 18 8PCQ ... BNZ 0 RCCFA [J. IF PROP. NOT CONSOLE 7 8PD7 ... SMO 4 21 8PDJ ... STO 0 GPROPNUM-1(3) [ZEROISE CONSOLE PROP DO NOT MOVE UP 8 8PD_ ... BRN RNMVA 5 8PFB ...RCCFA 9 8PFY ... LDN 5 ATTMAX 7 8PNP ... SBX 5 4 21 8PXG ... BZE 5 RNMOVE [ J IF NO PROPS FURTHER DOWN BLOCK 7 8Q*4 ... SMO 4 10 8QHT ... LDN 1 GPROPNUM-1(3) 8 8QQL ... LDN 0 1(1) 7 8Q_C ... SMO 5 7 8R88 ... MOVE 0 0 5 8RB_ ...RNMOVE 18 8RKQ ... STOZ GPROPNUM-1+ATTMAX(3) [ CLEAR LAST PROPERTY 5 8RMD ...RNMVA 19 8RP6 ... BNZ 6 RCCPRF [ J IF CHECKING ALL DEVICES 5 8RSH ... UP 4 8S3# ...[ 5 8SGY ...RCCPR 17 8T2J ... LDN 6 1 [ ALL DEVICES CASE 8 8TG8 ... POINTACT OUT,2 5 8THX ...XSKB1 17 8T_S ... LDX 7 2 [ X7 = END OF RING 5 8WFD ...RCCPRL 10 8W_4 ... LDX 2 JOBRING(2) 9 8XDN ... SBN 2 JOBRING 19 8XY# ... LFBBS G,2,RCCS1 [ J IF GOUT/GPROPNOS BLOCK 5 8X_* ...XSKB2 9 8YCY ... LDX 1 CPPTR(2) 20 8YXJ ... LGEOG 1,5 [ LOCAL AUXILARY WAITING STYLE 9 8_C8 ... BRN RCCPRF1 5 8_WS ...RCCPRF 20 92BD ... GEOPACK 5,JSOURCE1(2) [ REMOTE AUXILARY WAITING STYLE 5 92W4 ...RCCPRF1 7 935W ... LDX 3 2 21 93*N ... LONGON ATTRIBUTE,5 [ START ACTLF IF WAITING ON PROPERTY 7 93N5 ... LDX 2 3 5 93T? ...RCCPRQ 18 942G ... BXU 2 7,RCCPRL [ J IF NOT AT END OF RING 5 94#Y ... UP 5 94DT ...RCCS1 20 94JQ ... HUNT2J 3,GOUT,GPROPNOS,2,NOTF [HUNT BLOCK GOUT GPROPNOS 8 94NM ... BRN RCCS 4 94SJ ...[ 4 95#8 ...NOTF 16 95RS ... GEOERR 1,LFATT [SOMETHING WRONG 4 96?D ...#END 8 ____ ...61653230000100000000