{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: LISTPROC867)}}
====== LISTPROC867 ======
(George Source)
**Macros used:** [[george:macro:BC|BC]], [[george:macro:CHAIN|CHAIN]], [[george:macro:CLOSE|CLOSE]], [[george:macro:COOR1|COOR1]], [[george:macro:COOR3|COOR3]], [[george:macro:DOWN|DOWN]], [[george:macro:FREECORE|FREECORE]], [[george:macro:FSHENTRY|FSHENTRY]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETPER7|GETPER7]], [[george:macro:GETSOUT|GETSOUT]], [[george:macro:HUNT|HUNT]], [[george:macro:HUNT2J|HUNT2J]], [[george:macro:JBC|JBC]], [[george:macro:LFBBS|LFBBS]], [[george:macro:LFBBUS|LFBBUS]], [[george:macro:LFBITCLR|LFBITCLR]], [[george:macro:LFBITSET|LFBITSET]], [[george:macro:LFBLCNUM|LFBLCNUM]], [[george:macro:LFCHAIN|LFCHAIN]], [[george:macro:LFDEL|LFDEL]], [[george:macro:LFGETPER|LFGETPER]], [[george:macro:LONGON1|LONGON1]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAMETOP|NAMETOP]], [[george:macro:OPEND|OPEND]], [[george:macro:OPENSYS|OPENSYS]], [[george:macro:PAIR|PAIR]], [[george:macro:PICKREP2|PICKREP2]], [[george:macro:POINTACT|POINTACT]], [[george:macro:PUTREP2|PUTREP2]], [[george:macro:RERING|RERING]], [[george:macro:SAWCEJX|SAWCEJX]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETENTRY|SETENTRY]], [[george:macro:SETMODE|SETMODE]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:STARTACT|STARTACT]], [[george:macro:STEP|STEP]], [[george:macro:STEPAGAIN|STEPAGAIN]], [[george:macro:STEPWRITE|STEPWRITE]], [[george:macro:STOPACT|STOPACT]], [[george:macro:SUICIDE|SUICIDE]], [[george:macro:TESTNAME|TESTNAME]], [[george:macro:TESTNAMX|TESTNAMX]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TESTREPNOT|TESTREPNOT]], [[george:macro:TRACE|TRACE]], [[george:macro:UNBUSACT|UNBUSACT]], [[george:macro:UP|UP]], [[george:macro:UPDATE|UPDATE]], [[george:macro:UPPLUS|UPPLUS]]
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