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