LISTPROC867

(George Source)

Macros used: BC, CHAIN, CLOSE, COOR1, COOR3, DOWN, FREECORE, FSHENTRY, GEOERR, GETPER7, GETSOUT, HUNT, HUNT2J, JBC, LFBBS, LFBBUS, LFBITCLR, LFBITSET, LFBLCNUM, LFCHAIN, LFDEL, LFGETPER, LONGON1, MENDAREA, MHUNT, MHUNTW, NAMETOP, OPEND, OPENSYS, PAIR, PICKREP2, POINTACT, PUTREP2, RERING, SAWCEJX, SEG, SEGENTRY, SETENTRY, SETMODE, SETNCORE, STARTACT, STEP, STEPAGAIN, STEPWRITE, STOPACT, SUICIDE, TESTNAME, TESTNAMX, TESTREP2, TESTREPNOT, TRACE, UNBUSACT, UP, UPDATE, UPPLUS

LISTPROC867.txt
22FL    #OPT  K0LISTPROC=0  
22^=    #OPT  K99LISTPROC=1                [TESTING LEVEL   
23DW    #LIS  K0LISTPROC>K0LISTFILE>K0ALLGEO
23L4 ... SEG  LISTPROC,,,,G170  
23R= ...[   
23YD ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
245L ...[     THIS EXCLUDES CODE UNDER #SKI G170
24=S ...[   
24D2 ...#OPT G170 = 0   
24K8 ...#SKI G170&1 
24QB ...# WITH UGUG EDIT M170 (CHANGE REMOTE *LP WIDTHS)
24XQ          SETENTRY LISTPROC,POINT,2 
257J          FSHENTRY K3LISTPROC,POINT3,,POINT3
25CB          MENDAREA 30,K95LISTPROC   
25JJ          SEGENTRY K4LISTPROC,POINT4              [DO GETPER FOR REMOTE ACTL
25PQ          SEGENTRY  K5LISTPROC,POINT5   
25X2    [THIS SEGMENT IS THE CENTRAL MODULE OF THE CODE OBEYED BY THE   
26BL    [LISTFILE SCHEDULER (ACTLF/BSCHED). 
26W=    [IT EXAMINES ACTLFS ON ITS JOBRING AND STRINGS IN THE LISTFILE CHAIN,   
27*W    [ENTERING VARIOUS OTHER MODULES IF IT FINDS ANYTHING TO DO. 
27TG    [   
28*6    [***********************************************************************
28SQ    [DATA AREA  
294J    XENTR PAIR  LISTPROC,5                       [SCHEDULER JUST WOKEN UP   
29#B    SYSNAME        +10                 [ABSOLUTE NAME FOR OPENING   
29S2                   12HSYSTEM           [SYSOUT  
2=?L                   12HOUTPUT
2=R=                   +1   
2?=W                   +1   
2?QG                   4HB1 
2#=6    [   
2#PQ    XMAXBLOCK           +7             [MAXIMUM NUMBER OF BLOCK TYPES   
2*9B    TABLOCK 
2*P2    [TABLE OF BLOCK TYPES,ASSOCIATED PROCESSING AND SKIPPING ROUTINES.  
2B8L    XKEY           +GOUT+GKEY   
2BN=                   +NOACTION
2C7W                   +SKIPOUT 
2CMG    XINFO          +GOUT+INFO   
2D76                   +NEWENTRY
2DLQ                   +SKIPOUT 
2F6B    XUPDATE        +GOUT+GUPDATE
2FL2                   +UPDATE  
2G5L                   +SKIPUPDATE  
2GK=                   +GOUT+GABSNB 
2H4W                   +SCLOSED 
2HJG                   +SKIPONE 
2J46                   +FILE+FABSNB 
2JHQ                   +SLOST   
2K3B                   +SKIPONE 
2KH2                   +GOUT+COMP   
2L2L                   +STCHLIST
2LG=                   +SKIPONE 
2LL7          +GOUT+CHLIST  
2LQ4          +PERFTRYCH
2LT^          +SKIPONE  
2L^W    [                          ******** 
2MFG    [ BIT POSITIONS IN GMODE
2M^6    SIMPBIT        #20000000           [BEING IMPLEMENTED   
2N4J    RESTARTBIT     #4000
2N5D    RESTART2       #400 
2N6#    WFLAB          12HWORKFILE  
2N8X    SMULTSETBIT    #10  
2N?G    SETMULT        #10002000
2NB5    SETMULTLAST    #10002010
2NDQ    SETUPBIT       #10000000           [THERE IS A SETUP PARAMETER  
2NYB    PROPBIT        #4000000            [THERE IS A PROPERTY PARAMETER   
2PD2    PERFREBIT      #20                 [PERIPHERAL FREE AT ISPER TIME   
2PXL    RECBITS        #54000000
2QC=    XIMPBIT        #24100000           [IMPLEMENTABLE REQUEST MASK  
2QWW    XFILOFFBS      #1400000 
2RBG    OPENBIT        #1000000            [MAIN FILE   
2RW6    OPENSET        #400000             [SETUP FILE  
2S*Q    XKEYLOSTB      #1000               [MAIN FILE LOST  
2STB                   #400                [SETUP FILE LOST 
2T*2    XKEYCLOSEB     #100                [MAIN FILE CLOSED
2TSL                   #40                 [SETUP FILE CLOSED   
2W#=    [                      ******** 
2WRW    [   
2X?G    [***********************************************************************
2XR6    [SUBROUTINE AREA
2XST    [   
2XWJ    [ SUBROUTINE TO GET THE NUMBER OF BLOCKS IN THE GOUT/INFO CHAIN 
2XY?    [   
2Y22    SBLCNUM 
2Y3P    [   
2Y5D          LFBLCNUM 4,3  
2Y77          EXIT   5  0   
2Y8W    [   
2Y=Q    STEP
2YQB          SBX   4  FX1  
2^=2          STEP  
2^PL          ADX   4  FX1  
329=          EXIT  4  0
32NW    [   
338G    OPENSYS 
33N6    [THIS IS A S/R FOR OPENING SYSOUT,MODES IN X6   
347Q          SBX   7  FX1  
34MB          SETNCORE 10,3,FILE,FABSNB 
3572          LDN   4  A1(3)
35LL          LDN   3  SYSNAME(1)   
366=          MOVE  3  10   
36KW          OPEND    SBRKIN,6 
375G          TESTREP2 OK,OPENED
37K6    XLFW  GEOERR   1,LF FILE
384Q    OPENED  
38JB          MHUNT    1,FILE,FABSNB
3942          FREECORE 1
39HL          ADX   7  FX1  
3=3=          EXIT  7  1
3=GW    SBRKIN  
3?2G          ADX   7  FX1  
3?G6          EXIT  7  0
3?^Q    STEPUPDATEA 
3#FB    [THIS S/R POSITIONS CORRECTLY ON SYSOUT WHEN ENTERED
3#^2    [AT THE TOP THEN CHANGES THE BEING IMPLEMENTED MARKER   
3*DL    [UNLESS X6 IS 0 
3*Y=    [   
3BCW          SBX   7  FX1  
3BXG          GETSOUT  ,2,3 
3CC6          TESTREP2 OK,STOK  
3CWQ    XER   GEOERR   1,INDXREPW   
3DBB    STEPUPDATEB 
3DW2          SBX   7  FX1  
3F*L    STOK  STEPAGAIN 
3FT=          BZE   6  XDL  
3G#W          STEPWRITE 
3GSG          LDCT  0  #200 
3H#6          ERS   0  GMODE-A1(3)  
3HRQ    XDL   ADX   7  FX1  
3J?B          EXIT  7  0
3JR2    [   
3K=L    STEAL   
3KQ=    [ THIS SUBROUTINE TAKES THE BLOCKS ASSOCIATED WITH AN ENTRY 
3L9W    [ IN THE LFCHAIN,AND CHAINS THEM IN FRONT OF THE ACTIVITY.  
3LPG    [ IT EXPECTS X3 TO POINT TO THE INFO BLOCK  
3M96    [   
3MNQ    [   
3N8B          LDX   2  FX2  
3N9?    [   
3N=8    [ EXTENDED WL ENHANCEMENT - GOUT/GESIZE BLOCK MAY BE IN CHAIN   
3N?5    [   
3N#2    #UNS  AWLSZ 
3N#X    (   
3N*S          CALL  5  SBLCNUM  
3NBP    STEA1 LDX   5  FPTR(3)  
3NCL          CHAIN    3,2  
3NDH          LDX   2  3
3NFD          LDX   3  5
3NG*          BCT   4  STEA1
3NH=          LDX   2  FX2  
3NJ7    )   
3NK4    #UNS  AWLSZ 
3NK^    #SKI
3NLW    (   
3NN2          LDX   4  GMODE(3)            [ONE BIT WILL BE SET IN X0   
3P7L          SMO      FX1                 [FOR EVERY ADDITIONAL BLOCK  
3PM=          ANDX  4  RECBITS             [IN THE GROUP
3Q6W          ERX   4  GSIGN
3QLG          BRN      STEA1               [TO PERFORM AT LEAST ONE PASS
3R66    STEA2 SLL   4  1
3RKQ          LDX   2  3
3S5B          LDX   3  5
3SK2    STEA1 LDX   5  FPTR(3)  
3T4L          CHAIN    3,2  
3TJ=    STEA3 BNG   4  STEA2
3W3W          SLL   4  1
3WHG          BNZ   4  STEA3
3WR#    )   
3X36          EXIT  6  0
3XGQ    [   
3Y2B    SKIPOUT                            [THIS S/R EXPECTS X3 TO POINT
3Y3Y    #UNS  AWLSZ 
3Y5G    (   
3Y74          CALL  5  SBLCNUM  
3Y8L    SKPT2 LDX   3  FPTR(3)  
3Y=8          BCT   4  SKPT2
3Y?Q    )   
3Y*#    #UNS  AWLSZ 
3YBW    #SKI
3YDD    (   
3YG2          LDX   0  GMODE(3)            [TO A GOUT/INFO OR GOUT/KEY BLOCK
3Y^L          SMO      FX1                 [IN THE LFCHAIN. IT ADVANCES 
3^F=          ANDX  0  RECBITS             [THE BLOCK POINTER BEYOND
3^YW          ERX   0  GSIGN               [THE LAST BLOCK IN THE   
42DG          LDX   3  FPTR(3)             [GROUP ASSOCIATED WITH A REQUEST 
42Y6    SKIP1 BPZ   0  SKIP2               [X0 MUST CONTAIN GMODE   
43CQ          LDX   3  FPTR(3)  
43XB    SKIP2 SLL   0  1
44C2          BNZ   0  SKIP1
44LS    )   
44WL          EXIT  2  0
45B=    NOACTION
45TW          CALL  2  SKIPOUT             [IGNORE ALL THESE BLOCKS 
46*G          BRN      XGN                 [TRY NEXT BLOCK  
46T6    SKIPUPDATE  
47#Q    [IGNORE A GOUT/GUPDATE STRING   
47SB          LDX   0  GMODE(3)            [IF A 'FILE UNAVAILABLE' MARKER  
48#2          SMO      FX1                 [IS SET, THEN THERE WILL BE  
48RL          ANDX  0  XFILOFFBS           [A FILE/FABSNB IN THE STRING 
49?=          BZE   0  SKIPONE  
49QW          LDX   3  FPTR(3)  
4==G    SKIPONE 
4=Q6          LDX   3  FPTR(3)  
4?9Q          EXIT  2  0
4?PB    SCANCHAIN   
4#92    [THIS S/R INTERPRETS THE NEXT BLOCK IN THE LFCHAIN  
4#NL          LDN   0  BLF  
4*8=          TXU   0  3
4*MW          BCS      NOTEND              [J IF NOT END OF CHAIN   
4B7G          EXIT  6  0
4BM6    NOTEND  
4C6Q          LDX   0  ATYPE(3) 
4CLB          SRL   0  12                  [REMOVE ANY UNEXPECTED BITS  
4D62          LDX   1  FX1  
4DKL          LDX   4  XMAXBLOCK(1)        [MAX NO OF BLOCK TYPES   
4F5=    XTS   TXU   0  TABLOCK(1)          [COMPARE BLOCK TYPE  
4FJW          BCS      NOTYETF  
4G4G          EXIT  6  1
4GJ6    NOTYETF 
4H3Q          ADN   1  3                   [ADVANCE TABLE POINTER   
4HHB          BCT   4  XTS  
4J32          GEOERR   1,FUNNYBLK          [BLOCK TYPE NOT RECOGNISED   
4J3L    [   
4J4=    [  ***************************************************************  
4J4W    [   
4J5G    [  SUBROUTINE TO DETERMINE WHETHER TO LOOK AT THE GENERATION
4J66    [  NUMBER IN A FILE/FABSNB CHECK
4J6Q    [  WILL NOT CHECK GEN NO IF  (1) INFO OR GKEY BLOCK 
4J7B    [                        AND (2) FILE CLOSED
4J82    [                        AND (3) BLFWLSIZE BIT SET  
4J8L    [                        AND (4) BLFMULTI BIT SET   
4J9=    [   
4J9W    [  *****************************************************************
4J=G    [   
4J?6    SGETWRK 
4J?Q          BNG   6  SGETEX         [GOUT/GUPDATE BLOCK   
4J#B          JBC      SGETEX,3,BLFWLSIZE   
4J*2          JBC      SGETEX,3,BLFMULTI
4J*L          EXIT  7  0
4JB=    SGETEX  
4JBW    [   AWORK1 ZERO IF FILE CLOSED,NEGATIVE IF FILE LOST
4JCG          LDN   0  1
4JD6          ORS   0  AWORK1(2)
4JDQ          EXIT  7  0
4JFB    [   
4JGL    [   
4K2=    TESTNAME
4KFW    [THIS S/R COMPARES THE NAME IN THE FABSNB IN THE ACTIVITY CHAIN 
4K^G    [WITH THAT INDICATED BY X3  
4LF6          STO   3  ACOMMUNE3(2) 
4LYQ          MHUNT    1,FILE,FABSNB
4MDB          LDX   0  HDREC(3) 
4MY2          SBN   0  10   
4NCL          BNZ   0  NOTTEN   
4NX=          TESTNAMX 8,HDREC(3),HDREC(1),XERR,2   
4PBW          BRN      XT2  
4PWG    NOTTEN  
4QB6          ADX   3  HDREC(3) 
4QTQ          SBN   3  11   
4R*B          TESTNAMX 3,HDREC(3),HDREC+1(1),XERR,2 
4RC2          TESTNAMX 4,HDREC+5(3),HDREC+4(1),XERR,2   
4RDL    [   
4RG=          ADN   3  1
4RHW    XT2   LDX   2  HDREC+9(3)   
4RKG          TXU   2  HDREC+9(1)   
4RM6          BCS      XERR 
4RNQ          LDX   2  HDREC+8(3)   
4RQB          TXU   2  HDREC+8(1)   
4RS2    #UNS  AWLSZ 
4RTL    #SKI
4RX=          BCS      XERR 
4RYW    #UNS  AWLSZ 
4S2G    (   
4S46          BCC      XT1  
4S5Q          SMO      FX2  
4S7B          LDX   0  AWORK1   
4S92          BNZ   0  XERR 
4S=L    )   
4S#L    XT1   ADN   5  1
4SS=    XERR  LDX   1  FX1  
4T?W          LDX   2  FX2  
4TRG          LDX   3  ACOMMUNE3(2) 
4W?6          EXIT  5  0
4WQQ    [   
4X=B    TESTBLOCK   
4XQ2    [THIS S/R EXAMINES THE BLOCK INDICATED BY X3.   
4Y9L    [X4=0 FOR MAIN FILE, X4=1 FOR SETUP FILE.   
4YP=          CALL  5  TESTNAME            [COMPARE WITH FABSNB 
4^8W          BRN      NOMATCH             [J IF NOT THE SAME   
4^NG          LDX   0  AWORK1(2)
5286          BPZ   0  NOTLOST             [J IF WE ARE NOT DEALING WITH LOST FI
52MQ          BZE   6  TINF                [J IF STRING HEADED BY GOUT/INFO 
537B          BNG   6  VUPLOST             [J IF GUPDATE
53M2          SMO      4
546L          LDX   0  XKEYLOSTB(1) 
54L=    TBSET SMO      ACOMMUNE1(2)        [POINTER TO FIRST BLOCK IN STRING
555W          ORS   0  GMODE
55KG          BRN      NOMATCH  
5656    TINF  LDX   3  ACOMMUNE1(2) 
56JQ          STO   4  ACOMMUNE4(2) 
574B          CALL  6  STEAL               [TAKE BLOCKS FROM LFCHAIN
57J2          LDN   0  1
583L          ADS   0  ACOMMUNE4(2) 
58H=          DOWN     LISTNEXT,2          [GET ENTRY DELETED   
592W          BRN      PROCABSNB           [J OUT OF S/R
59GG    NOTLOST 
5=26    [FOR VARIOUS INTERLOCK REASONS IT IS NOT SAFE TO SUBTRACT 1 FROM FRZCNT 
5=FQ          BZE   6  SINF                [J IF INFO STRING
5=^B          LDX   0  XFILOFFBS(1) 
5?F2          BNG   6  SBITS               [J IF GUPDATE
5?YL          SMO      4
5#D=          LDX   0  XKEYCLOSEB(1)
5#DP    #UNS  AWLSZ 
5#F8    (   
5#FM          SMO      ACOMMUNE1(2) 
5#G6          ORS   0  GMODE
5#GK    XINF
5#H4          BNZ   4  NOMATCH  
5#HH          LDX   5  AWORK4(2)
5#J2          BNG   5  NOMATCH  
5#JF          LDX   1  ACOMMUNE1(2) 
5#JY          JBC      XINF2,1,BLFWLSIZE
5#KC          LDN   5  1
5#KW          JBC      XINF3,1,BLFMULTI 
5#L*          MHUNT    3,FILE,FABSNB
5#LS          LDX   2  HDREC(3) 
5#M?          SBN   2  2
5#MQ          SMO      2
5#N9          LDX   5  HDREC(3) 
5#NN    XINF3 SBN   5  1
5#P7          LDX   1  FPTR(1)  
5#PL          TXL   5  ALOGLEN(1)   
5#Q5          BCS      XRTSZ
5#QJ          GEOERR   1,GESIZEWR   
5#R3    XRTSZ LDX   2  FX2  
5#RG          LDX   0  AWORK4(2)
5#RP          BNG   0  XINF4
5#R^          SMO      5
5#SD          STO   0  A1(1)
5#SM    XINF4   
5#SX          LDX   3  ACOMMUNE3(2) 
5#TB    XINF2 LDX   1  FX1  
5#TT          BRN      NOMATCH  
5#W#    )   
5#WR    #UNS  AWLSZ 
5#X=    #SKI
5#XW          BRN      TBSET
5*CG    SINF  SMO      4
5*X6          LDX   0  OPENBIT(1)   
5BBQ    SBITS SMO      ACOMMUNE1(2) 
5BWB          ORS   0  GMODE
5CB2          SMO      ACOMMUNE1(2) 
5CTL          ERS   0  GMODE
5CYQ    #UNS  AWLSZ 
5D3W          BPZ   6  XINF 
5D72    #UNS  AWLSZ 
5D=6    #SKI
5D*=          BPZ   6  NOMATCH             [J IF NOT GOUT/GUPDATE   
5DSW          FREECORE 3                   [FREE FILE/FABSNB
5F#G          LDX   3  ACOMMUNE1(2)        [X3-> GUPDATE
5FS6    NOMATCH 
5G?Q          LDX   0  AWORK2(2)
5GRB          BNZ   0  SMRE                [J IF FREEZECOUNT NOT EXAUSTED   
5H?2          MHUNT    1,FILE,FABSNB
5HQL          FREECORE 1
5J==          BRN      START               [J OUT OF S/R
5JPW    SMRE  LDX   3  FPTR(3)  
5K9G          EXIT  7  0
5KP6    [   
5L8Q    SFINISH 
5LNB    [THIS S/R BRANCHES TO 'START' IF EITHER:
5M82    [     1. 'FINISH NOW' HAS BEEN TYPED,OR 
5MML    [     2. 'FINISH TIME UP' HAS OCCURED BUT ALL JOBS HAVE NOT YET FINISHED
5N7=    [   
5NLW          LDX   0  FINISH   
5P6G          SLL   0  2
5PL6          BNG   0  SFIN                [FINISH NOW  
5Q5Q          ERX   0  FINISH   
5QKB          SLL   0  1
5R52          BNG   0  SFIN 
5RJL          EXIT  1  0
5S4=    SFIN  LDX   1  FX1  
5SHW          BRN      START
5T3G    [                          **************** 
5TH6    [   
5W2Q    [   
5WGB    [***********************************************************************
5X22    [MAIN BODY OF SEGMENT   
5XFL    [***********************************************************************
5X^=    POINT1  
5YDW    [THIS IS THE ENTRY POINT AFTER EARLY MORNING START  
5YYG    [ SET UP ACTLF S FOR ALL LOCAL DEVICES  
5^D6    [ & INITIALISE DEBATCHING CHARACTER 
5^XQ          DOWN     LISTEXCP,2   
63W=    [   
64*W          BRN      NOTOPEN  
64TG    NOTNEC  
65*6          CLOSE 
66#B          LFBITCLR C,2  
67R=    [THE LFCHAIN IS EMPTY,BUT SOMETHING MIGHT HAVE ARRIVED WHILE
686^    [WE COORDINATED CLOSING SYSOUT. 
68GN    [OR WE HAVE GIVEN AWAY :SYSTEM.OUTPUT SO SEE IF WE STILL NEED IT
68WC    [X7 NON-ZERO IS A SWITCH TO SHOW SYSOUT CLOSED. 
69=6          LDN   7  1
69PQ          BRN      STARTED  
6=9B    XEMPTY  
6=P2          BZE   7  NOTNEC   
6?8L          STOPACT  OUT,XENTR
6?N=    [   
6?Y4    POINT5  
6#7W    NOTOPEN 
6#MG    [THIS IS THE ENTRY POINT FOR A NEWLY CREATED OR WOKEN UP SCHEDULER. 
6*76    [IT OPENS SYSOUT.IF RUNNING IN EMS MODE IT PROCESSES SYSOUT.
6*LQ    [IF NOT IT PROCESSES ITS JOB RING   
6B6B    [IF NOTHING WORTH DOING ON JOB RING,IT PROCESSES THE LFCHAIN.   
6BL2    [   
6C5L          SETMODE  6,GENERAL,QUERY  
6CK=          CALL  7  OPENSYS  
6D4W          BRN      XLFW                [BREAK IN
6G3B    START LDN   7  0
6H2L    STARTED 
6HG=    [   
6H^W    [                       *********** 
6JFG    [ FIRST PRIORITY:-  
6J^6    [      WE EXAMINE ACTLFS ON THE JOB-RING.THEY FALL INTO THREE CLASSES:  
6KDQ    [ 1.  THOSE THAT HAVE THE FLAG F SET.THESE ARE TO  BE IGNORED.OF THE
6KYB    [OTHERS THERE ARE:  
6LD2    [ 2.  THOSE THAT HAVE THE FLAG E SET.THESE HAVE BEEN PERFORMING 
6LXL    [GETPERS OR SETPROPS AND REQUIRE ANALYSING. 
6MC=    [ 3.  THOSE THAT DO NOT HAVE E SET.THESE WANT A REQUEST TO SERVICE  
6MWW    [   
6NBG          LDN   4  JOBRING(2)          [FIRST WE HAVE A LOOK AT 
6NW6    XJRL  LDX   2  JOBRING+BPTR(2)     [ANY ACTLFS ON RING  
6P*Q          TXU   2  4
6PTB          BCC      XLFCHAIN            [J IF NONE WORTHY OF NOTE
6Q*2          SBN   2  JOBRING             [X2-> ACTLF  
6QSL    #SKI  K6LISTFILE
6R#=          TRACE    ALFLAG(2),ACTLF  
6RRW          LFBBS    F,2,XJRL            [TRY NEXT IF F SET   
6S?G          LDN   4  0
6SR6          BNZ   7  NOTOPEN             [J IF SYSOUT CLOSED  
6T=Q          LFBBS    E,2,RGETPERD 
6TQB          LFBITSET F,2                 [SET F IN ACTLF  
6TWF    #UNS  ANIP  
6W2J          SAWCEJX  JSOURCE2(2),XGUS,REMO,REMO,XNIPO 
6W6M    #UNS  ANIP  
6W=Q    #SKI
6WBT          SAWCEJX  JSOURCE2(2),XGUS,REMO,REMO   
6WGY    [ CENTRAL ACTLFS NEVER HAVE FLAG G SET  
6WM3    XGUS  LDX   4  CPPTR(2) 
6WR6          LFBBUS   G,2,RERIN
6WX9    XGWR  GEOERR   0,LFGWRONG   
6X3#    [   
6X7C    #UNS  ANIP  
6X?G    (   
6XCK    [ NIP ACTLFS ALWAYS HAVE FLAG G SET 
6XHN    XNIPO LDX   4  GSIGN
6XMR    )   
6XRW    [ REMOTE ACTLFS ALWAYS HAVE FLAG G SET  
6XX^    REMO  LFBBUS   G,2,XGWR 
6Y44          LFBITCLR G,2                 [UNSET G 
6Y8G          LDX   3  2
6YN6          HUNT2J   1,GOUT,GPROPNOS,2,NOGPROP
6^7Q          CHAIN    1,FX2               [BORROW GPROPNOS BLOCK   
6^MB          LFBITSET G,2                 [SET G IN SCHEDULER  
7272          LDX   2  3                   [X2-> ACTLF  
72LL    RERIN SMO      FX2  
736=          STO   4  GSWORK4             [0 FOR REMOTE DEVICE 
739P          LDX   0  JSOURCE1(2)  
73*8    #UNS  ANIP  
73DM    (   
73J6          BPZ   4  XRCEN
73MK    [ IF NIP MUST BE LINE PRINTER   
73R4          LDCT  0  #20  
73WH    XRCEN   
7422    )   
745G          SMO      FX2  
74K6          STO   0  GSWORK1  
754Q          LDX   4  JSOURCE2(2)  
75JB          SMO      FX2  
7642          LDX   3  JOBRING+BPTR        [RERING ACTLF SO THAT IT 
76HL          ADN   2  JOBRING             [PRECEDES THE SCHEDULER  
773=          RERING   2,3  
77GW          STO   4  GSWORK2(2)   
782G    [THE SCHEDULER NOW LOOKS FOR A  
78G6    [FILE TO LIST ON THIS DEVICE.THE PROPERTIES REYUIRED ARE COMPARED   
78^Q    [WITH THOSE IN THE APIA FOR A CENTRAL DEVICE OR THE GPROPNOS FOR A  
79FB    [REMOTE ONE.
79^2    [IF NO IMPLEMENTABLE REYUEST IS FOUND THEN THE LFCHAIN IS SCANNED.  
7=DL    [AT THIS STAGE THE SCHEDULER HAS A GOUT/GPROPNOS IF THE DEVICE IS REMOTE
7=Y=    [     GSWORK1  CONTAINS JSOURCE1 FROM ACTLF 
7?CW    [     GSWORK2  CONTAINS JSOURCE2
7?XG    [     GSWORK4  CONTAINS DEVICE LIST POINTER OR ZERO FOR REMOTE DEVICE   
7#C6          DOWN     LISTFIND,1   
7#WQ          BRN      START
7*BB    NOGPROP 
7*W2          GEOERR   1,GPROPNOS   
7B*L    RGETPERD
7BT=          LFBITCLR E,2  
7C#W          LDX   3  FX2  
7CSG          LDX   0  EXEC3(2) 
7D#6          STO   0  EXEC3(3)            [TRANSFER REPLY  
7DRQ          LDX   0  AWORK1(2)
7F?B          STO   0  AWORK1(3)           [AND INDEX KEYS  
7FR2          LDX   0  AWORK2(2)
7G=L          STO   0  AWORK2(3)
7GQ=          LDX   3  JOBRING+BPTR(3)  
7H9W          ADN   2  JOBRING  
7HPG          RERING   2,3  
7J96          DOWN     LISTFIND,3   
7JNQ          BRN      START
7K8B    XLFCHAIN
7K#?          LDX   2  FX2  
7KD8          LFBBS    C,2,NOTNEC          [J IF SOMEBODY WANTS SYSOUT  
7KN2    [   
7L7L    [                      ***********  
7LM=    [ SECOND PRIORITY:- 
7M6W    [     HAVING EXHAUSTED THE JOB-RING THE SCHEDULER EXAMINES THE LFCHAIN  
7MLG    [BRANCHING TO THE APPROPRIATE ROUTINE TO PROCESS ANY STRINGS IT FINDS.  
7MMH    [   
7MNJ    [ NOW CHECK IF WL COMMAND WAITING TO ACCESS SYSOUT  
7MPK    [   
7MQL          LFBBUS   T,2,WLTURN          [ J IF NOT WL TURN   
7MRM          LFBBUS   W,2,WLTURN          [ J IF NONE WAITING  
7MSN          LFBITCLR W,2  
7MTP          LFBITCLR T,2  
7MWQ          LONGON1  AWLSLCHWAIT  
7MXR          BNZ   7  STARTED             [ J IF :SYSTEM.OUTPUT NOT OPEN   
7MYS          LFBITSET C,2  
7M^T          BRN      NOTNEC   
7N2W    WLTURN  
7N3X          LFBITSET T,2  
7N4Y    [   
7N66          LDX   3  BLF                 [INITIALISE BLOCK POINTER
7NKQ    XGN   LDX   2  FX2  
7P5B          CALL  6  SCANCHAIN
7PK2          BRN      XEMPTY              [J IF END OF CHAIN   
7Q4L          LDX   6  TABLOCK+1(1)        [PICK UP LABEL AND BRANCH
7QJ=          ADX   6  FX1                 [TO ROUTINE WHICH WILL PROCESS   
7QS4          LDX   1  FX1                 [RESET X1 !!!
7R3W          BRN      (6)                 [BLOCK FOUND.
7RHG    UPDATE  
7S36    [THIS SECTION DEALS WITH UPDATING OR DELETING ENTRIES   
7SGQ    [IN SYSOUT.X3->GOUT/CHANGE  
7T2B    [ (GMODE)   =  0 MEANS DELETE ENTRY 
7TG2    [ (GMODE)   <0   "   UPDATE  "  
7T^L    [   
7WF=          BNZ   7  NOTOPEN             [J IF SYSOUT CLOSED  
7WYW    #SKI  K6LISTFILE
7XDG          TRACE    GOUTKEY1(3),UPDATELF 
7XY6          LDX   6  GMODE(3) 
7YCQ          LDX   0  XFILOFFBS(1) 
7YXB          ANDX  0  6
7^C2          BZE   0  NOFFILE  
7^WL          LDX   1  FPTR(3)  
82B=          FREECORE 1                   [THROW AWAY FABSNB   
82TW    NOFFILE 
83*G          LDX   4  GFLI(3)  
83K#          LDX   5  GNLI(3)  
83T6          LDX   7  GOUTKEY1(3)  
842#          LDX   0  GFTY(3)  
847G          STO   0  GSWORK1(2)   
84#Q          LDX   1  3
84SB          LDX   3  GOUTKEY2(3)  
85#2          FREECORE 1
85RL    [WE NOW POSITION CORRECTLY ON SYSOUT AND UNSET THE BEING IMPLEMENTED
86?=    [MARKER IF NECESSARY.   
86QW          LDX   2  7
87=G          CALL  7  STEPUPDATEA  
87Q6          BZE   6  XDELET   
889Q          STO   4  GFLI-A1(3)          [ UPDATE ENTRY FOR CONVERTED CONTEXT 
88PB          STO   5  GNLI-A1(3)          [ SELECTION AND RESTART POINT
8992          BC       3,BLFRFRTOER        [ CLEAR ERROR SO NO REVERSION CODE   
8?#M          LDX   0  RESTARTBIT(1)
8?BB          ANDX  0  6                   [TRANSFER RESTART MARKER 
8?D5          BZE   0  NOREST              [TO SYS.OUT  J IF NOT RESTART
8?FS          ORS   0  GMODE-A1(3)  
8?HH    NOREST  
8?JC          LDX   0  RESTART2(1)  
8?K?          ANDX  0  GSWORK1(2)   
8?L7          ORS   0  GFTY-A1(3)   
8?M6          ANDX  6  XFILOFFBS(1)        [CHECK FOR OFFLINE FILE  
8#6Q          BZE   6  PERFTRY  
8#LB          ORS   6  GMODE-A1(3)  
8*62          BRN      START
8*KL    NOTFND  
8B5=          GEOERR   1,NOTFOUND   
8BJW    XDELET  
8C4G          DOWN     WLF,2
8CJ6          BRN      START
8G^G    PERFTRY 
8HF6    [AS WE HAVE UPDATED AN ENTRY BECAUSE A RESTART HAS OCCURRED,WE MUST 
8HYQ    [TRY TO GET ANOTHER PERIPHERAL FOR THE REQUEST, 
8JDB    [   
8JY2          CALL  1  SFINISH             [CHECK ON 'FINISH' STATE 
8KCL          LFGETPER GOUTKEY1-A1(3),GOUTKEY2-A1(3)
8KX=          BRN      START
8LBW    [   
8Q?W    NEWENTRY
8QRG    [THIS CODE DEALS WITH INSERTING NEW ENTRIES IN SYSOUT.  
8R?6    [IT COPIES THE STRING FROM THE LFCHAIN TO THE ACTIVITY CHAIN.   
8RQQ    [IT INSERTS (GWAKECOUNT) COPIES OF THE STRING,UPDATING THE  
8S=B    [GENERATION NUMBER IN THE FABSNB FOR THE MAIN FILE EACH TIME.   
8SQ2    [IF (GMULTID) IS NON ZERO,THEN THE STRING IS RETURNED TO THE
8T9L    [LFCHAIN,OTHERWISE IT IS FREED. 
8TP=    [     AWORK1 CONTAINS GWAKECOUNT
8W8W    [     AWORK2 CONTAINS GMULTID   
8WNG    [   
8X86          LDX   0  GWAKECOUNT(3)       [IF ZERO THEN WE ARE WAITING 
8XMQ          BZE   0  NOACTION            [FOR MF COMPONENTS TO BE CLOSED  
8Y7B          BNZ   7  NOTOPEN             [J IF SYSOUT CLOSED  
8YM2    #SKI  K6LISTFILE
8^6L          TRACE    GOUTKEY1(3),NEWLF
8^L=          STO   0  GSWORK1(2)          [NUMBER OF COMPONENTS
925W          LDX   0  GMULTID(3)   
92KG          STO   0  GSWORK2(2)          [MULTIFILE IDENTIFIER IF STILL OPEN  
9356          CALL  6  STEAL               [MOVE BLOCKS TO ACTIVITY CHAIN   
93JQ          MHUNTW   3,GOUT,INFO  
944B          LDX   6  GMODE(3) 
94J2          LDX   0  GJOBS(3) 
953L          STO   0  GSWORK4(2)          [JOB NUMBER FOR HSPACTLF 
95H=          LDX   0  PROPBIT(1)   
962W          STOZ     GSWORK3(2)          [INITIALISE CONSOLE PROPERTY 
96GG          ANDX  0  GMODE(3)            [OF REQUEST  
9726          BZE   0  QDOWN
97FQ          MHUNTW   1,GOUT,INFO4 
97^B          LDX   0  CPROPNO(1)   
98F2          STO   0  GSWORK3(2)   
98YL    [WE NOW ENTER THE MODULE TO INSERT THE REQUEST IN SYSOUT.   
99D=    [     GSWORK3  CONTAINS CONSOLE PROPERTY FOR REQUEST
99XW    [     GSWORK4  CONTAINS JOB NUMBER  
9=CG    QDOWN DOWN     LISTEND,3
9=X6    [   
9?BQ    [IF A PERIPHERAL IS LIKELY TO BE FREE THEN WE PERFORM A GETPER  
9?WB    [PROVIDING THE REQUEST IS IMPLEMENTABLE,AND FINISH HAS NOT OCCURED. 
9#B2    [WE STILL MAKE A TRY THOUGH,IF 'FINISHED' HAS OCCURED,AS THIS   
9#TL    [REQUEST IS PROBABLY THE LISTFILE FOR DUMPER'S MONITORING FILE. 
9**=          LDX   0  PERFREBIT(1) 
9*SW          ANDX  0  6
9B#G          BZE   0  START
9BS6          ANDX  6  XFILOFFBS(1) 
9C?Q          BNZ   6  START
9CRB          CALL  1  SFINISH             [CHECK ON 'FINISH' STATE 
9D?2          LFGETPER ACOMMUNE1(2),ACOMMUNE2(2)
9DQL          BRN      START
9F==    STCHLIST
9FPW    [THIS ROUTINE PROCESSES A GOUT/COMP BLOCK FROM A STOPLIST   
9G9G    [OR CHANGELIST COMMAND. 
9GSG          LDX   4  A1(3)               [ ACTIVITY NO. OF SL/CH  
9GXW          FREECORE 3
9HJ6          LONGON1 AWLSLCHWAIT,4        [ START UP SL/CH 
9HLM          BNZ   7  STARTED             [ J IF :SYSTEM.OUTPUT CLOSED 
9HP8          LFBITSET C,2  
9HRP          BRN      NOTNEC              [ CLOSE :SYSTEM.OUTPUT   
9HW=    PERFTRYCH   
9H^L    [ UPDATED AN ENTRY BECAUSE CH TOPR COMMAND,WE MUST  
9J52    [TRY TO GET ANOTHER PERIPHERAL FOR THE REQUEST, 
9J8B    [   
9J?Q          BNZ   7  NOTOPEN             [J IF SYSOUT CLOSED  
9JGG          LDX   4  A1(3)
9JKW          LDX   5  A1+1(3)  
9JP=          FREECORE 3
9JQY          CALL  1  SFINISH              [ CHECK ON 'FINISH' STATE   
9JRG          GETSOUT  ,4,5 
9JS4          TESTREPNOT OK,START          [J IF ENTRY NOT FOUND
9JSL          LFGETPER 4,5  
9JY2          BRN      START
9K3B    [   
9K7=    SCLOSED 
9KLW    [THIS ROUTINE PROCESSES A GOUT/GABSNB WHEN A FILE IS CLOSED.
9L6G          BNZ   7  NOTOPEN             [J IF SYSOUT CLOSED  
9LL6          STOZ     AWORK1(2)           [SWITCH  
9M5Q    #SKI  K6LISTFILE
9MKB          TRACE    HDREC+1(3),GABSNB
9N52          CHAIN    3,2  
9NJL          LDX   4  GAKEY(3) 
9P4=          STO   4  AWORK3(2)
9PHW          LDX   0  GAFREEZE(3)  
9Q3G          STO   0  AWORK2(2)           [FREEZECOUNT 
9Q65    #UNS  AWLSZ 
9Q8N    (   
9Q??          LDX   0  GASIZE(3)
9Q*W          STO   0  AWORK4(2)
9QDF    )   
9QH6          NAMETOP  3,FILE,FABSNB
9RGB          BRN      PROCABSNB
9S22    [   
9SFL    SLOST   
9S^=    [THIS ROUTINE PROCESSES A FILE/FABSNB WHEN A FILE IS LOST.  
9TDW          BNZ   7  NOTOPEN             [J IF SYSOUT CLOSED  
9TYG          LDX   0  GSIGN
9WD6          STO   0  AWORK1(2)           [SWITCH  
9WK#    #UNS  AWLSZ 
9WQG          STO   0  AWORK4(2)
9WXQ          CHAIN    3,2  
9XCB          STO   2  AWORK2(2)           [FICTITIOUS FREEZE COUNT 
9XX2          TRACE    HDREC+1(3),LFLOST
9YBL    PROCABSNB   
9YW=    [WE NOW LOOK FOR ANY REQUESTS INVOLVING THIS FILE.  
9^*W    [FIRST WE LOOK IN THE LFCHAIN.  
9^H4    #UNS AWLSZ  
9^N=          STOZ     ACOMMUNE4(2) 
9^TG          LDX   3  BLF  
=2*6    XSN   CALL  6  SCANCHAIN
=2SQ          BRN      XENDCH              [J IF END OF CHAIN   
=3#B          SMO      FX1  
=3S2          TXU   0  XKEY 
=4?L          BCC      VKEY                [J IF FOUND KEY BLOCK
=4R=          SMO      FX1  
=5=W          TXU   0  XINFO
=5QG          BCC      VINFO               [J IF FOUND INFO BLOCK   
=6=6          SMO      FX1  
=6PQ          TXU   0  XUPDATE  
=79B          BCC      VUPDATE  
=7P2    XNXCH LDX   6  TABLOCK+2(1) 
=88L          ADX   6  FX1  
=8N=          CALL  2  (6)                 [NEXT STRING 
=97W          LDX   2  FX2  
=9MG          BRN      XSN                 [LOOK FURTHER DOWN CHAIN 
==76    XENDCH  
==LQ    [WE NOW HAVE A LOOK THROUGH SYSOUT. 
==N#    #UNS  AWLSZ 
==PW    (   
==RD    [ MARK AWORK1 IF WE HAVE TO SAVE GOUT/GABSNB
==T2          LDN   0  1
==WJ          ORS   0  AWORK1(2)
==Y6          ERS   0  AWORK1(2)
==^N          LDX   0  ACOMMUNE4(2) 
=?3=          ORS   0  AWORK1(2)
=?4S    )   
=?6B          LDX   4  AWORK3(2)
=?L2          DOWN     LISTEND,1
=?MJ    #UNS  AWLSZ 
=?P6    (   
=?QN          HUNT     3,FILE,FABSNB
=?S=          BNG   3  START
=?TS          NAMETOP  3,GOUT,GABSNB
=?XB          LDX   5  ACOMMUNE4(2) 
=?YY          STO   5  GAFREEZE(3)  
=#2G          LFCHAIN  GOUT,GABSNB  
=#2Q ...
=#32 ...
=#3= ...
=#3G ...      JBC      START,,ICTSW 
=#3Q ...      COOR3    #41  
=#44    )   
=#5L          BRN      START
=#K=    VUPDATE 
=*4W          NGN   6  1                   [SET SWITCH TO SHOW GUPDATE  
=*JG    VINFO   
=B46    [WE LOOK TO SEE IF THIS REQUEST HAS ANY FILES OFFLINE   
=B9#    #UNS  AWLSZ 
=BBG          CALL  7  SGETWRK  
=BHQ          SMO      FX1  
=C3B          LDX   0  XFILOFFBS
=CH2          ANDX  0  GMODE(3) 
=CKK    #UNS  AWLSZ 
=CN8    (   
=CQR          LDX   7  AWORK1(2)
=CTB          BZE   7  VINF2
=CX^    )   
=D2L          BZE   0  XNXCH               [IGNORE IF OK
=DG=    VINF2 BNG   6  VKEY                [J IF GUPDATE
=D^W          LDN   6  0                   [SWITCH  
=FFG    VKEY  STO   1  ACOMMUNE2(2)        [REMEMBER
=F^6          STO   3  ACOMMUNE1(2)        [POINTERS
=GDQ          BNG   6  VUP  
=GKY    #UNS  AWLSZ 
=GR6          CALL  7  SGETWRK  
=GYB          LDX   7  GMODE(3) 
=G^F    #UNS  AWLSZ 
=H2J    (   
=H3M    [ TEST TO SEE IF GKEY IS IN LF OPEN 
=H4Q          JBC      XNOL,3,BLFWLCLOSE
=H5T          LDX   0  AWORK1(2)
=H6Y          BNG   0  XNOL 
=H83          LDN   0  1
=H96          STO   0  ACOMMUNE4(2) 
=H=9    XNOL
=H?#          JBC      XNGSZ,3,BLFWLSIZE
=H#C          LDX   3  FPTR(3)  
=H*G    XNGSZ   
=HBK    )   
=HD2          LDX   1  FX1  
=HXL          LDX   0  PROPBIT(1)   
=JC=          ANDX  0  7
=JWW          BZE   0  NPZZ                [J NO PROPERTY BLOCK 
=KBG          LDX   3  FPTR(3)  
=KW6    NPZZ  LDX   3  FPTR(3)  
=L*Q          BNG   7  SOLZ                [J IF ONLINE 
=LTB          LDN   4  0
=M*2          CALL  7  TESTBLOCK
=MSL    SOLZ  LDX   0  SETUPBIT(1)  
=N#=          SMO      ACOMMUNE1(2) 
=NRW          ANDX  0  GMODE
=P?G          BZE   0  XSN                 [J IF NO SETUP FILE  
=PR6          LDN   4  1
=Q=Q    VUP   CALL  7  TESTBLOCK
=QQB          BRN      XSN  
=R=2    VUPLOST 
=RPL    [WE HAVE FOUND A LOST FILE ASSOCIATED WITH A GUPDATE
=S9=          SMO      FX1  
=SNW          LDX   6  OPENSET  
=T8G          LDX   1  ACOMMUNE1(2)        [POINTER TO GUPDATE  
=TN6          ANDX  6  GMODE(1) 
=W7Q          LDX   4  GOUTKEY1(1)         [INDEX KEYS FOR ENTRY
=WMB          LDX   5  GOUTKEY2(1)         [THAT WAS TO BE UPDATED  
=X72          FREECORE 1                   [TIDY UP 
=XLL          FREECORE 3                   [LFCHAIN 
=Y6=          MHUNT    3,FILE,FABSNB       [PRESERVE FILE/FABSNB
=YKW          NAMETOP  3,GOUT,GUPDATE      [WHILE PERFORMING LFDEL  
=^5G          BNZ   6  VULSET              [J IF ITS SETUP FILE LOST
=^K6          LFDEL    4,5,LFSTM           [DELETE ENTRY
?24Q          BRN      VUPNAME  
?2JB    VULSET  
?342          LFDEL    4,5,LOSTS
?3HL    VUPNAME 
?43=          MHUNT    3,GOUT,GUPDATE   
?4GW          NAMETOP  3,FILE,FABSNB
?52G          BRN      PROCABSNB
?5G6    [              ************************ 
?5^Q    [   
?6FB    [   
?6^2    [***********************************************************************
?7DL    [THIS ENTRY POINT IMPLEMENTS OPENSOUT MACRO 
?7Y=    POINT2  
?7^?    #   
?8CW          POINTACT OUT,3               [FIND SCHEDULER  
?8XG          UNBUSACT OUT,RESTING         [J IF IDLE   
?9C6          LFBITSET C,3  
?9WQ    RESTING 
?=BB          LDX   6  ACOMMUNE1(2)        [MODES OF OPENING
?=W2          CALL  7  OPENSYS  
??*L          BRN      SBROKE              [BREAKIN 
??T=          UPPLUS   1
?##W    SBROKE  
?#SG          UP
?*#6          SEGENTRY K50LISTPROC         [REMOVE WHEN LFDEBATCHERS ENHANCED ON
?*RQ          SEGENTRY K60LISTPROC  
?B?B          NULL  
?B#4    [***********************************************************************
?B#Q    [   
?B*D    POINT3  
?BB6    [   
?BPT    [      **********   
?BPW    [   
?BPX    [   
?BPY    [***********************************************************************
?BP^    POINT4  
?BQ2    [THIS IS THE ENTRY POINT FOR AN ACTLF ABOUT TO PERFORM  
?BQ3    [A GETPER FOR A REMOTE DEVICE   
?BQ4          LDX   4  AWORK3(2)
?BQ5    SCAG  GETPER7  4,SCAG,SNO   
?BQ6          TESTREP2 WRNG,SNO,NOTAV,SNO   
?BQ7          TESTREP2 NOPER,SNO
?BQ8          MHUNTW   1,APERI,APROPNOS 
?BQ9          FREECORE 1
?BQ? ...#SKI G170&1 
?BQ# ...(   
?BQ* ...      PICKREP2 6
?BQB ...      DOWN     UMMENDS,13   
?BQC ...      PUTREP2 6 
?BQD ...)   
?BQF ...      LFBITSET D,2                 [SHOW REMOTE GETPER  
?BQG ...      LFBITCLR F,2  
?BQH ...      STARTACT OUT  
?BQK ...      COOR1 
?BQM ...      GEOERR   1,NOLINK 
?BQP ...SNO   SUICIDE   
?BR2    #END
^^^^ ...06210331000400000000