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