{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: LISTFREE867)}}
====== LISTFREE867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLENGD|ALTLENGD]], [[george:macro:ANOTHER|ANOTHER]], [[george:macro:BC|BC]], [[george:macro:BS|BS]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CLOSETOP|CLOSETOP]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:COMERRX|COMERRX]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:FREECORE|FREECORE]], [[george:macro:FSHENTRY|FSHENTRY]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNTW|HUNTW]], [[george:macro:JBC|JBC]], [[george:macro:LFHUNT|LFHUNT]], [[george:macro:LFRECNUM|LFRECNUM]], [[george:macro:LFTHAW|LFTHAW]], [[george:macro:LONGOFF|LONGOFF]], [[george:macro:LONGSET|LONGSET]], [[george:macro:LONGSTOP|LONGSTOP]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUT|MONOUT]], [[george:macro:NAME|NAME]], [[george:macro:NAMETOP|NAMETOP]], [[george:macro:OFFLTEST|OFFLTEST]], [[george:macro:OPENTEST|OPENTEST]], [[george:macro:OUTPARAM|OUTPARAM]], [[george:macro:PERON|PERON]], [[george:macro:PUTPERENT|PUTPERENT]], [[george:macro:REPERR|REPERR]], [[george:macro:RVDIR|RVDIR]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETENTRY|SETENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:STARTACT|STARTACT]], [[george:macro:TESTOPEN|TESTOPEN]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TREP|TREP]], [[george:macro:UNNORM|UNNORM]], [[george:macro:UP|UP]], [[george:macro:USEROPEN|USEROPEN]], [[george:macro:VFREEW|VFREEW]], [[george:macro:ZERRORX|ZERRORX]], [[george:macro:ZERRORY|ZERRORY]]
22FL #OPT K0LISTFREE=0
22^= #LIS K0LISTFREE>K0LISTFILE>K0ALLGEO
236D ... SEG LISTFREE,,,,G253
23?L ...[
23DS ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
23L2 ...[ THIS EXCLUDES CODE UNDER #SKI G253
23R8 ...[
23YB ...#OPT G253 = 0
245J ...#SKI G253&1
24=Q ...# WITH UGUG EDIT M253 (LISTFILE IN NO USER CONTEXT)
24D6 SETENTRY LISTFREE,POINT,2
24MY FSHENTRY K3LISTFREE,,POINT3,POINT3
24QH SEGENTRY K4LISTFREE,POINT4
24T6 [ ENTRY FOR THE LFSIZE MACRO
24XQ MENDAREA 30,K95LISTFREE
25CB [THIS SEGMENT FREEZES ANY FILES INVOLVED IN THE REQUEST.
25X2 [IT THEN CHAINS THE BLOCKS IN THE LFCHAIN.
26BL [
26W= [
27*W [***********************************************************************
27TG [DATA AREA
28*6 [THERE FOLLOWS A LIST OF FLAGS IN GMODE IN THE GOUT/INFO.
28SQ PERFREBIT #20 [PERI IS FREE AT ISPER
29#B PROPBIT #4000000 [PROPERTY BLOCK
29S2 SETUPBIT #10000000 [SETUP FILE
2=?L OPENSET #400000 [SETUP FILE OPEN OR OFFLINE
2=R= OPENMAIN #1000000 [MAIN FILE OPEN
2?=W XLOSTBOTH #1400 [FILE LOST MASK FOR GKEY
2?QG XLOSTM #1000
2#=6 XLOSTS #400 [SETUP FILE LOST
2#FY SMFILEMSET #2010 [MULTIFILE
2#PQ SMULTSETBIT #10 [MULTIFILE WITH SETUP
2*9B SHIFTLEN +12
2*P2 OPENBOTH #140
2*R9 XREM #770000 [REMOTE LF COUNT MASK
2*TD #7777 [LOCAL LF COUNT MASK
2*XM SEGENTRY K60LISTFREE
2*^W XREMMX #1000000 [REMOTE LF MAX
2B45 SEGENTRY K61LISTFREE
2B6# #100 [LOCAL LF MAX
2B8L [NOW A FEW MISCELLANEOUS CONSTANTS.
2BN= XOLIN +GOUT+INFO [ONLINE INFORMATION BLOCK TYPE
2C7W WJLFNOP +JLFNOP [NOPER REPLY FOR ONLINE
2CMG WJSETP15 +JSETP15 [ONLINE SETUP FILE LOST
2D76 SEARCH
2DLQ [
2F6B [***********************************************************************
2FL2 [SUBROUTINE AREA
2G5L [THIS S/R SEARCHES THE MISC CHAIN FOR
2GK= [INFORMATION ABOUT AN ONLINE REQUEST
2H4W LDX 2 FX2
2HJG LDX 1 FX1
2J46 LDN 4 BMISC
2JHQ LDN 3 BMISC
2K3B SEAR1 LDX 3 FPTR(3)
2KH2 TXU 3 4
2L2L BCS SEAR2
2LG= LDN 3 0 [NOT FOUND
2L^W SEAR3 EXIT 7 0
2MFG SEAR2 LDX 0 ATYPE(3)
2M^6 SRL 0 12
2NDQ TXU 0 XOLIN(1)
2NYB BCS SEAR1
2PD2 LDX 0 GJOBS(3)
2PXL TXU 0 JOBNO(2)
2QC= BCC SEAR3
2QWW BRN SEAR1
2RBG TESTATE
2RW6 [THIS S/R EXPECTS A FILE/FABSNB AND A DIRECTORY OPEN
2S*Q [IT CHECKS WHETHER THE FILE IS OPEN UNCLEANLY OR OFFLINE,
2STB [INITIATING A RETRIEVE IF NECESSARY.IT CLOSES THE DIRECTORY.
2T*2 [EXIT 0 WHEN THE FILE IS IN A SUITABLE STATE FOR OPENING
2TSL [EXIT 1 WHEN FILE IS LOST
2W#= [EXIT 2 WHEN FILE IS OFW OR OFFLINE(IT CANT BE BOTH!)
2WRW [
2X?G SBX 6 FX1
2XR6 MHUNT 1,FILE,FABSNB
2Y=Q LDX 0 ATYPE(1)
2YQB ANDN 0 #200
2^=2 BZE 0 TNWF [J IF NOT WORKFILE
2^PL OPENTEST TOK1,TSETD [TEST FOR UNCLEAN OPEN
329= BRN TOK
32NW TOK1 MHUNT 1,FILE,FABSNB
338G LDN 0 #200
33N6 ERS 0 ATYPE(1) [NO LONGER W/F
347Q TNWF TESTOPEN TSETC [TEST FOR UNCLEAN OPEN
34CJ TESTREP2 OK,TOK3
34MB OFFLTEST TOK3
3572 RVDIR
357T ...#SKI G253&1
358N ...(
359H ... TESTREP2 OK,RHA,LOST,TLOST,ONLINE,TOK
35=B ... GEOERR 1,LFRVREPW
35?9 ...RHA
35#4 ... ANOTHER FILE,FABSNB
35#X ... SETNCORE 20,3,ADATA,CREADL
35*Q ... STOZ A1(3)
35BK ... UNNORM TWO
35CD ... MHUNTW 3,ADATA,CREADL
35D? ... OUTPARAM A1(3),CPDATA,ADATA,CREADL
35F6 ... MONOUT ARHLF2
35F^ ... MFREEW ADATA,CREADL
35GS ... MFREEW FILE,FABSNB
35HM ... BRN TSETB
35JG ...)
35K* ...#SKI G253&1$1
35LL TESTREP2 OK,TSETB,LOST,TLOST,ONLINE,TOK
366= GEOERR 1,LFRVREPW
36KW [TESTOPEN DOES NOT INDICATE A WRITE SAVED FILE
375G [WE MUST TEST FOR THIS AND
37K6 [IF FOUND TAKE UNCLEAN OPEN EXIT
37XH TOK3 MHUNTW 1,FILE,ENT
389Y LDX 0 ESVCT(1)
38JB SRL 0 12
3942 BZE 0 TOK2 [J IF NOT WRITE SAVED
39HL ADN 6 2 [ELSE UNCLEAN OPEN EXIT
3=3= TOK2 CLOSETOP
3=GW BRN TOK
3?2G TSETC CLOSETOP
3?G6 TSETD LDX 0 AWORK1(2) [ERROR IF SETUP FILE IN
3?^Q BNG 0 OLSETOPEN [ONLINE REQUEST OPEN
3#FB TSETB ADN 6 1
3#^2 TLOST ADN 6 1
3*DL TOK ADX 6 FX1
3*Y= EXIT 6 0
3BCW [
3BXG PRESERVE
3CC6 [THIS S/R CHAINS A COPY OF A FILE/FABSNB IN THE CORRECT
3CWQ [PLACE IN THE LFCHAIN,NAMING IT A GOUT,INFO3
3DBB SBX 6 FX1
3DW2 ANOTHER FILE,FABSNB [COPY
3F*L NAMETOP 2,GOUT,INFO3
3FT= LDX 1 2
3G#W LDN 0 #200
3GSG ANDX 0 ATYPE(3) [TRANSFER WORKFILE
3H#6 ORS 0 ATYPE(1) [CHARACTERISTICS
3HRQ LDX 2 FX2
3J?B STO 6 ACOMMUNE1(2)
3JR2 LFHUNT 7,AWORK2(2),AWORK4(2)
3K=L LDX 6 ACOMMUNE1(2)
3KCS LDX 7 AWORK1(2)
3KK2 ORS 7 GMODE(3)
3KQ8 #UNS AWLSZ
3KXB (
3L4J JBC SPREV,3,BLFWLSIZE
3L9Q LDX 3 FPTR(3)
3LBY SPREV
3LJ6 )
3LPG SMO FX1
3M96 ANDX 7 PROPBIT
3MNQ BZE 7 NOPROP [J IF NO PROPERTY BLOCK
3N8B LDX 3 FPTR(3) [OTHERWISE CHAIN AFTER IT
3NN2 NOPROP
3P7L CHAIN 1,3
3PM= LDX 3 FPTR(3)
3Q6W ADX 6 FX1
3QLG EXIT 6 0
3R66 [
3RKQ TIDYCHAIN
3S5B [THIS S/R TIDIES UP THE LFCHAIN FOR A JOB
3SK2 STO 6 ACOMMUNE1(2) [PRESERVE LINK
3T4L LFHUNT 7,AWORK2(2),AWORK4(2)
3TJ= LDX 6 ACOMMUNE1(2)
3W3W LFRECNUM 7,GMODE(3)
3WHG TIDAGAIN
3X36 LDX 1 3
3XGQ LDX 3 FPTR(3)
3Y2B FREECORE 1
3YG2 BCT 7 TIDAGAIN
3Y^L EXIT 6 0
3^F= ZERRORY
3^YW [
42DG USEROUT
42Y6 [THIS S/R SETS UP A GOUT/INFO TO PRESERVE OLD INTERFACE WITH USEROPEN
43CQ SBX 7 FX1
43XB SETNCORE GFTY-A1+1,1,GOUT,INFO
44C2 STO 7 ACOMMUNE1(2)
44WL LFHUNT 7,AWORK2(2),AWORK4(2)
45B= BNG 3 XERB
45TW LDX 7 ACOMMUNE1(2)
46*G LDN 0 A1(3)
46T6 LDN 1 A1(1)
47#Q MOVE 0 GFTY-A1+1
47SB ADX 7 FX1
48#2 EXIT 7 0
48RL [
49?= OPTFREE
49QW [THIS S/R FREES A BLOCK IF IT HAS BEEN SUCCESSFULLY HUNTED
4==G BNG 1 NOFRY
4=Q6 FREECORE 1
4?9Q NOFRY LDX 1 FX1
4?PB LDX 2 FX2
4#92 EXIT 7 0
4#NL [
4*8= [***********************************************************************
4*MW [MAIN BODY OF SEGMENT
4B7G [***********************************************************************
4BM6 POINT1
4C6Q [THIS ENTRY POINT FREEZES A SETUP FILE
4CLB CALL 7 USEROUT [SET UP A GOUT/INFO
4D62 USEROPEN SBRKIN,READ,FREEZE,DIR,LEAVE
4DKL REPERR OKB1 [REPORT ANY ERRORS
4F5= STOZ AWORK3(2) [SWITCH
4FJW BRN SBRKIN
4G4G OKB1 MHUNTW 1,GOUT,INFO
4GJ6 FREECORE 1
4H3Q CALL 6 PRESERVE [CHAIN FABSNB IN LFCHAIN
4HHB CALL 6 TESTATE [CHECK FILE CAN BE OPENED
4J32 BRN OKB2 [FILE CAN BE OPENED
4JGL BRN XLOSTSET [SETUP FILE LOST
4K2= SMO FX1
4KFW LDX 0 OPENSET [INDICATE SETUP FILE
4K^G ORS 0 AWORK1(2)
4LF6 OKB2 MHUNT 1,CPB,CUNI
4LYQ FREECORE 1
4MDB MHUNT 1,FILE,FABSNB
4MY2 FREECORE 1
4NCL [
4NX= [***********************************************************************
4PBW POINT2
4PWG [THIS ENTRY POINT FREEZES THE MAINFILE
4QB6 LDX 5 AWORK1(2)
4QTQ BNG 5 XFIN [J IF ONLINE
4R*B CALL 7 USEROUT [SET UP GOUT/INFO
4RBJ LDX 1 FX1
4RCQ LDN 4 1
4RDY LDX 0 GMODE(3)
4RG6 ANDX 0 PROPBIT(1)
4RH# BZE 0 SCLS [J IF NO PROPERTIES
4RJG SMO FPTR(3)
4RKN LDX 0 CPROPNO [CONSOLE PROPERTY
4RLW ANDX 0 BITS22LS
4RN4 BZE 0 SCLS
4RP= LDX 5 JSOURCE3(2)
4RQD ANDX 5 BITS22LS
4RRL TXU 0 5
4RSS ... BCC SCLO
4RW2 ...SCLR SLL 4 12
4RX8 BRN NCLUS
4RXM ...SCLS LDX 5 JSOURCE3(2)
4RY6 ... ANDX 5 BITS22LS
4RYK ... BNZ 5 SCLR
4R^4 ...SCLO ADN 1 1
4R^J NCLUS LDX 0 GMODE(3)
4S2Q ANDN 0 #4
4S3Y BNZ 0 XMON [J IF MONITORING FILE
4S56 LDX 5 ALFCNT(2)
4S6# ANDX 5 XREM(1) [OBTAIN COUNT BEING TESTED
4S7G ADX 5 4
4S8N SBX 5 XREMMX(1) [SUBTRACT MAX ALLOWED
4S9W BPZ 5 UNMAX [J IF MAX EXCEEDED
4S?4 XMON
4S?6 [ IF WLSIZE MACRO IS ON CREATE A GOUT/GESIZE BLOCK
4S?8 [
4S?9 ... SEGENTRY K50LISTFREE
4S?= ... BRN XK51
4S?# #UNS AWLSZ
4S?B (
4S?D SETNCORE 256,3,GOUT,GESIZE
4S?G LDN 4 256
4S?J XK5 LDX 0 GSIGN
4S?L STO 0 A1(3)
4S?N ADN 3 1
4S?Q BCT 4 XK5
4S?S [ SET MARKER SO NO LFCLOSES ARE MISSED
4S?W LFHUNT 7,AWORK2(2),AWORK4(2)
4S?Y BS 3,BLFWLCLOSE
4S#2 )
4S#4 XK51 SEGENTRY K51LISTFREE
4S#L USEROPEN SBRKINX,READ,FREEZE,DIR,LEAVE,STREAMS
4TRG MHUNTW 1,GOUT,INFO
4W?6 FREECORE 1
4WQQ REPERR OKC1
4X=B STOZ AWORK3(2)
4XQ2 BRN SENDX
4XQT #UNS AWLSZ
4XRN (
4XSH [ IF WLSIZE MACRO CHAIN GOUT/GESIZE BLOCK AFTER GOUT/INFO
4XTB [ IF NOT A MULTIFILE REDUCE SIZE TO ONE WORD
4XW9 OKC1 HUNTW 1,GOUT,GESIZE
4XX4 BNG 1 OKC3
4XXX TREP MULTFILE,XMTFL
4XXY [
4XX^ [ IF LISTING ONE ELEMENT OF A MULTIFILE ONLY
4XY2 [ USEROPEN WILL HAVE TAKEN THE MULTIFILE PATH WHEN
4XY3 [ SUPPLYING ME WITH SIZE SO LFSIZE WILL HAVE PUT THE SIZE
4XY4 [ IN THE WRONG PLACE IN THE GOUT/GESIZE BLOCK
4XY5 [ ALSO BLFWLCLOSE BIT WILL NOT HAVE BEEN CLEARED
4XY6 MHUNT 3,FILE,ENT
4XY7 JBC XNELE,3,BEMULT
4XY8 LDN 4 256
4XY9 LDX 3 1
4XY= XK6 LDX 0 A1(3)
4XY? BPZ 0 XNEL2
4XY# ADN 3 1
4XY* BCT 4 XK6
4XYB BRN XNELE
4XYC XNEL2 STO 0 A1(1)
4XYD LFHUNT 7,AWORK2(2),AWORK4(2)
4XYF BC 3,BLFWLCLOSE
4XYG XNELE
4XYQ ALTLENGD 1,1
4X^K MHUNTW 1,GOUT,GESIZE
4Y2D XMTFL LFHUNT 7,AWORK2(2),AWORK4(2)
4Y3? BS 3,BLFWLSIZE
4Y46 CHAIN 1,3
4Y4^ OKC3 LDX 1 FX1
4Y5S TREP MULTFILE,XEND
4Y6M )
4Y7G #UNS AWLSZ
4Y8* #SKI
4Y9L OKC1 TREP MULTFILE,XEND [J IF MULTIFILE
4YP= CALL 6 PRESERVE
4^8W NAMETOP 3,GOUT,INFO2
4^NG LFHUNT 7,AWORK2(2),AWORK4(2)
546L QNPRB LDX 0 GSIGN
54L= ERS 0 GMODE(3)
54MS #UNS AWLSZ
54PB (
54QY JBC XOPEN,3,BLFWLCLOSE
54W4 SMO FX1
54XL LDX 0 OPENMAIN
54^8 ORS 0 AWORK1(2)
552Q XOPEN
554# )
555W CALL 6 TESTATE
55KG BRN OKC2 [FILE OK
5656 BRN XLOSTMAIN [FILE LOST
56JQ SMO FX1
574B LDX 0 OPENMAIN
57J2 ORS 0 AWORK1(2) [SHOW MAIN FILE OPEN
583L OKC2 MHUNT 1,FILE,FABSNB
58H= FREECORE 1
592W BRN XFIN
59GG XEND LFHUNT 7,AWORK2(2),AWORK4(2)
5=26 STO 3 ACOMMUNE1(2)
5=4* #UNS AWLSZ
5=6J (
5=8R JBC XEND2,3,BLFWLSIZE
5=?2 LDX 3 FPTR(3)
5=*9 XEND2
5=CD )
5=FQ LDX 0 PROPBIT(1)
5=S7 SMO ACOMMUNE1(2)
5?6J ANDX 0 GMODE
5?F2 BZE 0 QNPR
5?YL LDX 3 FPTR(3)
5#D= QNPR MHUNT 1,FILE,FABSNB
5#XW NAME 1,GOUT,INFO2
5*CG CHAIN 1,3
5*X6 LDX 3 ACOMMUNE1(2)
5BBQ LDX 0 GSIGN
5BWB ERS 0 GMODE(3)
5C3J #UNS AWLSZ
5C8Q BC 3,BLFWLCLOSE
5CB2 LDX 4 GWAKECOUNT(3)
5CFX ...#SKI G253&1
5CKS ... BRN RU1
5CPP ...#SKI G253&1$1
5CTL BRN SMUL
5D*= # ALL THE NECESSARY CHECKS HAVE BEEN PERFORMED.
5DSW # IT NOW ONLY REMAINS TO REPLACE THE GOUT/KEY BLOCK
5F#G # IN THE LFCHAIN BY A GOUT/INFO.
5FS6 XFIN LFHUNT 7,AWORK2(2),AWORK4(2)
5G?Q BNG 3 XERB
5GDY #UNS AWLSZ
5GL6 BC 3,BLFWLCLOSE
5GRB LDN 4 1
5H?2 STO 4 GWAKECOUNT(3)
5H#Y ...#SKI G253&1
5HBW ...(
5HDS ...RU1 LDXC 5 ALFCNT(2)
5HGQ ... BCC SMUL
5HJN ... LDN 4 0 [ SUPPRESS LF COUNTING IF 'LIST'
5HLL ... STO 5 ALFCNT(2) [ AND CLEAR MARKER
5HNJ ...)
5HQL SMUL LDX 0 GMODE(3)
5J== ANDX 0 PROPBIT(1)
5JG4 BNZ 0 XNSCL
5JPW XNSC3 LDX 0 JSOURCE3(2)
5JTR ANDX 0 BITS22LS
5J^N BNZ 0 XNSC2
5K9G BRN SMCLS
5K#L XNSCL LDX 1 3
5KCQ #UNS AWLSZ
5KGW (
5KL2 JBC XNSC4,3,BLFWLSIZE
5KP6 LDX 1 FPTR(1)
5KS= XNSC4
5KXB )
5L2G LDX 1 FPTR(1)
5L5L LDX 0 CPROPNO(1) [CONSOLE PROPERTY
5L8Q ANDX 0 BITS22LS
5LNB BZE 0 XNSC3
5M82 LDX 5 JSOURCE3(2)
5MML ANDX 5 BITS22LS
5N7= TXU 0 5
5NLW BCC SMCLS [J IF SAME CLUSTER
5P3D XNSC2 SLL 4 12
5PD2 SMCLS
5PL# ADX 4 ALFCNT(2)
5PSL STO 4 7
5Q32 LDX 1 FX1 [RESET X1
5Q5Q LDX 0 GMULTID(3)
5QKB BZE 0 NOTOPENM [J IF NOT OPEN MULTIFILE
5R52 LDCT 0 #10
5R#S ADX 0 7
5RJL BNG 0 NOTOPENM
5RSD STO 0 7
5S4= NOTOPENM
5SHW NAME 3,GOUT,INFO [UPDATE INFORMATION ABOUT
5T3G LDX 4 GMODE(3) [FILE AVAILABILITY.
5TH6 LDX 5 XLOSTBOTH(1)
5W2Q ANDX 5 4
5WGB BNZ 5 WLOST [J IF WE NOW KNOW FILE LOST
5X22 ANDX 4 OPENBOTH(1) [BITS MAY HAVE BEEN SET
5XFL SMO SHIFTLEN(1) [IN GOUT/INFO WHILE WE
5X^= SLL 4 0 [HAVE BEEN MAKING OUR
5YDW ANDX 4 AWORK1(2) [CHECKS,DUE TO FILES BEING
5YYG ERX 4 AWORK1(2) [RETRIEVED OR CLOSED.
5^D6 LDX 0 SMFILEMSET(1) [MULTIFILE WITH SETUP BIT
5^XQ ANDX 0 GMODE(3) [WHICH MAY HAVE BEEN SET BY
62CB ORX 4 0 ['LFMULT' IN 'USEROPEN'.
62X2 STO 4 GMODE(3)
63BL LDX 5 GMODE(3)
63W= BPZ 5 NOLIN
643D LDN 0 2
648L ORS 0 EXT+9(2)
64*W LONGSET #27,YLONG,AWORK2(2) [MAKE SURE WE DON'T MISS ANYTHING
64TG NOLIN STARTACT OUT [WAKE UP SCHEDULER
65*6 BNG 5 ONLINE
65JY STO 7 ALFCNT(2)
65KF SENDZ
65SQ ENDCOM
66#B YLONG GEOERR 1,ONLONG
66S2 ONLINE
67?L [THE CPA NOW WAITS FOR ITS ONLINE REQUEST TO BE PROCESSED BY
67R= [THE LISTFILE SCHEDULER & CO.
68=W [WHEN THIS HAS BEEN DONE,A FILE/FWB WILL BE CHAINED IN THE MISC. CHAIN
68QG [WHICH WILL EITHER CONTAIN A POINTER TO THE DEVICE LIST OF THE
69=6 [PERIPHERAL RESERVED,OR THE IDENTIFIER OF AN APPROPRIATE ERROR MESSAGE.
69FY LDX 5 7
69PQ LONGSTOP XBRK,,JOLWAIT,XNULL
6=9B CALL 7 SEARCH [LOOK FOR BLOCK IN MISC. CHAIN
6=P2 BZE 3 XER [NONE FOUND
6?8L OLFOUND
6?N= LDX 7 GMODE(3)
6#7W LDX 6 GOPTY(3)
6#MG SRL 6 3
6*76 BNG 7 RECHAIN [IT MAY BE NECESSARY TO
6*LQ TXU 7 WJSETP15(1) [PASS INFORMATION ON TO
6B6B BCC RECHAIN [SCHEDULER
6BL2 LDX 5 GSOURCE1(3)
6C5L FREECORE 3
6CK= TXU 7 WJLFNOP(1)
6D4W BCS NOTNOPER
6DJG ACROSS LISTNEXT,8
6F46 NOTNOPER
6FHQ XCOMERR
6G3B COMERRX 7
6GH2 RECHAIN
6H2L STOZ GMODE(3) [TO GET ENTRY DELETED
6HG= NAME 3,GOUT,GUPDATE
6H^W CHAIN 3,BLF+1
6JFG STARTACT OUT [WAKE UP SCHEDULER
6J^6 BPZ 7 XCOMERR [J IF NO PERIPHERAL OBTAINED
6KDQ ERX 7 GSIGN [X7 NOW CONTAINS D.L. POINTER
6KWS #UNS FSHB
6KXK POINT3
6KYB PERON 7
6LD2 PUTPERENT 6,7
6LMS STO 5 ALFCNT(2)
6LXL SEND ENDCOM
6MC= XBRK CALL 7 SEARCH [WE MIGHT HAVE MISSED AN EVENT
6MWW BNZ 3 OLFOUND [DUE TO BREAK-IN
6NBG [THE REQUEST HAS NOT YET BEEN COMPLETELY PROCESSED. IF AN ACTLF IS
6NW6 [CURRENTLY TRYING TO RESERVE A PERIPHERAL,B22 OF EXT+9 WILL BE SET.
6P*Q LDN 0 2 [IS ONLINE REQUEST CURRENTLY
6PTB ANDX 0 EXT+9(2) [BEING SERVICED BY AN ACTLF?
6Q*2 BZE 0 RESPOND [NO!
6QSL LONGSET #27,YLONG,AWORK2(2)
6R#= [IGNORE 'BREAK-IN'
6RRW BRN XNULL
6S?G RESPOND
6SR6 LFHUNT 7,AWORK2(2),AWORK4(2),GOUT,INFO
6T=Q BPZ 3 XINT [J IF STILL IN LFCHAIN
6TQB XINT2 LONGOFF
6W=2 [WE MUST DELETE THE ENTRY FROM :SYSTEM.OUTPUT
6WPL ACROSS LISTFNDA,2
6WXW XINT LDXC 0 GMODE(3)
6X66 BPZ 0 XINT2
6X#B STO 0 AWORK1(2)
6XGL STO 2 AWORK3(2) [SET SWITCH
6XNW XTID LDX 1 3
6Y8G LDX 3 FPTR(3)
6YN6 FREECORE 1
6^7Q LDX 0 PROPBIT(1)
6^MB ANDX 0 AWORK1(2)
7272 BZE 0 NOLPR [J IF NO PROPERTY BLOCK
72LL LDX 1 3
736= LDX 3 FPTR(3)
73KW FREECORE 1
745G NOLPR LDX 0 SETUPBIT(1)
74K6 ANDX 0 AWORK1(2)
754Q BZE 0 SCOM [J IF NO SETUP FILE
75JB NAMETOP 3,FILE,FABSNB
7642 CHAIN 3,2
76HL LFTHAW [THAW SETUP FILE
773= LDX 0 AWORK3(2)
77GW BZE 0 SEND
77JY SCOM
78CQ COMBRKIN
78G6 XERB GEOERR 1,BLKLST
78^Q [
79FB XLOSTSET
79^2 [WE HAVE LOST THE SETUP FILE
7=DL CALL 6 TIDYCHAIN [THROW AWAY GKEY BLOCK AND COPY
7=Y= XLS2 ACROSS LISTNEXT,1
7?CW [
7?XG XLOSTMAIN
7#C6 [WE HAVE LOST THE MAIN FILE
7#WQ LFHUNT 7,AWORK2(2),AWORK4(2)
7*BB LDX 7 GMODE(3)
7*D5 #UNS AWLSZ
7*FS (
7*HH JBC XNOGSZ,3,BLFWLSIZE
7*K= LDX 1 3
7*L^ LDX 3 FPTR(3)
7*NN FREECORE 1
7*QC XNOGSZ
7*S6 )
7*W2 LDX 1 3
7B*L LDX 3 FPTR(3)
7BT= FREECORE 1
7C#W LDX 0 PROPBIT(1) [FOR SUBSEQUENT CHECK
7CSG LDX 1 3
7D#6 LDX 3 FPTR(3)
7DRQ ANDX 0 7
7F?B BZE 0 NFRPRB
7FR2 FREECORE 1 [PROPERTY BLOCK
7G=L LDX 1 3
7GQ= LDX 3 FPTR(3)
7H9W NFRPRB
7HPG FREECORE 1 [COPY OF MAIN FILE'S FABSNB
7J96 ANDX 7 SETUPBIT(1)
7JNQ BZE 7 XLS2 [J IF NO SETUP FILE
7K8B NAMETOP 3,FILE,FABSNB
7KN2 MHUNT 2,FILE,FABSNB
7L7L CHAIN 3,2
7LM= BRN XLS2
7M6W [
7MLG OLSETOPEN
7N66 [THE SETUP FILE IN AN ONLINE REQUEST IS OPEN UNCLEANLY
7NKQ CALL 6 TIDYCHAIN
7P5B LFTHAW [THAW SETUP FILE
7PK2 ZERRORX AOLSERR [ALREADY USING SETUP FILE
7PKG [THE MAXIMUM NUMBER OF LFS TO REMOTE OR LOCAL PRINTERS HAS
7PL2 [BEEN REACHED. WE MUST TIDY UP AND REPORT ERROR.
7PLG UNMAX LDX 7 GMODE(3)
7PM2 LDX 1 3
7PMG LDX 3 FPTR(3)
7PN2 FREECORE 1 [FREE GOUT,GKEY
7PNG LDX 0 PROPBIT(1)
7PP2 ANDX 0 7
7PPG BZE 0 SNPR [J IF NO PROPERTY
7PQ2 LDX 1 3
7PQG LDX 3 FPTR(3)
7PR2 FREECORE 1
7PS7 SNPR
7PT# LDX 0 SETUPBIT(1)
7PWG ANDX 0 7
7PX2 BZE 0 SNOS [J IF NO SETUP FILE
7PXG LDX 1 3
7PY2 NAMETOP 1,FILE,FABSNB
7PYG CHAIN 1,2
7P^G LFTHAW [THAW SETUP FILE & FREE FABSNB
7P^S SNOS
7Q26 ANDX 4 XREM(1)
7Q2G BZE 4 XLOC [J IF LOCAL MAX EXCEEDED
7Q32 ZERRORX JLFMAXR
7Q3G XLOC ZERRORX JLFMAXL
7Q4L SBRKIN
7QJ= [BREAK-IN DURING USEROPEN OF SETUP FILE
7R3W MHUNTW 1,GOUT,INFO
7RHG FREECORE 1
7S36 SENDY
7SGQ CALL 6 TIDYCHAIN
7T2B MHUNT 1,FILE,FABSNB
7TG2 CALL 7 OPTFREE [FREE IF THERE
7T^L [UNDER CERTAIN CIRCUMSTANCES(E.G.NAMEFORM REPLY) USEROPEN DOES NOT
7WF= [SET UP A FABSNB
7WYW LDX 0 AWORK3(2)
7XDG BZE 0 SEND
7XY6 BRN SCOM
7YCQ SBRKINX
7YXB [BREAK-IN DURING USEROPEN OF MAIN FILE
7^C2 MHUNT 1,GOUT,INFO
7^WL FREECORE 1
82B= SENDX
82HD #UNS AWLSZ
82NL VFREEW GOUT,GESIZE
82R= LDX 1 FX1
82TW LDX 0 SETUPBIT(1)
83*G ANDX 0 AWORK1(2)
83T6 BZE 0 SENDY [J IF NO SETUP FILE TO THAW
84#Q MHUNT 1,FILE,FABSNB [MAIN FILE
84SB CALL 7 OPTFREE
85#2 LFHUNT 7,AWORK2(2),AWORK4(2)
85RL BRN XTID
86?= [
86QW [WE HAVE JUST NOTICED THAT A FILE IS LOST
86SD #UNS AWLSZ
86W2 (
86XJ WLOST JBC WLST2,3,BLFWLSIZE
86^6 LDX 1 FPTR(3)
872N FREECORE 1
874= WLST2 LDX 7 GMODE(3)
875S )
877B #UNS AWLSZ
878Y #SKI
87=G WLOST LDX 7 GMODE(3)
87Q6 ANDX 5 XLOSTM(1)
889Q LDX 1 3
88PB LDX 3 FPTR(3)
8992 CHAIN 1,2 [GOUT/INFO
89NL LDX 0 PROPBIT(1)
8=8= ANDX 0 7
8=MW BZE 0 XNPR [J NO PROPERTY
8?7G LDX 1 3
8?M6 LDX 3 FPTR(3)
8#6Q FREECORE 1
8#LB XNPR BNG 7 XOLB [J ONLINE
8*62 NAMETOP 3,FILE,FABSNB
8*KL LDX 1 3
8B5= LDX 3 FPTR(3)
8BJW CHAIN 1,2
8C4G XOLB ANDX 7 SETUPBIT(1)
8CJ6 BZE 7 XLS2 [J IF NO SETUP
8D3Q LDX 1 3
8DHB NAMETOP 1,FILE,FABSNB
8F32 BZE 5 XLS1
8FGL MHUNT 2,FILE,FABSNB
8G2= XLS1 CHAIN 1,2
8GFW BRN XLS2
8G^G [
8HF6 XER GEOERR 1,NOLFWB [NO OL BLOCK IN MISC. CHAIN.
8HFK [
8HG4 [ **********************************************************************
8HGH [
8HH2 [ LFSIZE MACRO
8HHF [
8HHY [ **********************************************************************
8HJC [
8HJW POINT4
8HK* #UNS AWLSZ
8HKS (
8HL? LDX 6 ACOMMUNE1(2)
8HLQ LDX 7 ACOMMUNE2(2)
8HM9 HUNTW 3,GOUT,GESIZE
8HMN BNG 3 XUP
8HN7 BZE 7 XRTSZ [BLOCK MUST BE RIGHT SIZE
8HNL LDX 5 ALOGLEN(3)
8HP5 SBN 7 1
8HPJ TXL 7 5
8HQ3 BCS XRTS2
8HQG GEOERR 1,GESIZEWR
8HQK [
8HQN XRTS2 SMO 7
8HQR STO 6 A1(3)
8HQW BRN XUP
8HQ^ [
8HRD XRTSZ SMO 7
8HRX STO 6 A1(3)
8HSB [ NO LFCLOSE TO WAIT FOR NOW
8HST MHUNTW 3,GOUT,INFO
8HT# LFHUNT 7,GOUTKEY1(3),GOUTKEY2(3)
8HW= BC 3,BLFWLCLOSE
8HWP XUP UP
8HX8 [
8HXM )
8HYQ #END
^^^^ ...25403440000400000000