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