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