8 22FL #OPT K0LISTSEAR=0 7 22_= #OPT JWPHASE1=0 12 23DW #LIS K0LISTSEAR>K0LISTFILE>K0ALLGEO 15 23YG #SEG LISTSEAR7 [BOB SEWELL 10 24D6 8HLISTSEAR 15 24MY ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983 11 24XQ SETENTRY LISTSEAR,POINT,6 13 257J ... FSHENTRY K7LISTSEAR,,POINT7,POINT7 13 25?F ... FSHENTRY K8LISTSEAR,POINT8,,POINT8 11 25CB MENDAREA 30,K95LISTSEAR 19 25X2 [THIS SEGMENT DEALS WITH THE IMPLEMENTATION OF VARIOUS MACROS 17 26BL [MOST OF WHICH REQUIRE A SEARCH OF ONE CHAIN OR ANOTHER. 4 26W= [ 21 27*W [*********************************************************************** 6 27TG [DATA AREA 5 28*6 XASSOCS 8 28SQ #HAL APERI+ASSOCS,0 6 28WN ...#SKI JSKI27 4 28YL ...( 5 292J ...XASSOCS0 9 294G ...#HAL APERI+ASSOCS0,0 5 296D ...XASSOCS1 9 298B ...#HAL APERI+ASSOCS1,0 4 29=# ...) 5 29#B XPROPNOS 9 29S2 #HAL APERI+APROPNOS,0 13 2=?L [SOME IDENTIFIERS FOR THE LISTFILE CHAIN 6 2=HD ...#UNS HWLSLCH 18 2=R= ...XMAXBLOCK +7 [MAX NO OF BLOCK TYPES 6 2=X7 ...#UNS HWLSLCH 4 2?34 ...#SKI 18 2?6_ ...XMAXBLOCK +6 [MAX NO OF BLOCK TYPES 5 2?=W TABLOCK 17 2?QG [TABLE OF BLOCK TYPES AND ASSOCIARED IGNORING ROUTINES 10 2#=6 XKEY +GOUT+GKEY 9 2#PQ +SKIPOUT 10 2*9B XINFO +GOUT+INFO 9 2*P2 +SKIPOUT 10 2B8L +GOUT+GUPDATE 10 2BN= +SKIPUPDATE 10 2C7W +GOUT+GABSNB 9 2CMG +SKIPONE 10 2D76 +FILE+FABSNB 9 2DLQ +SKIPONE 10 2F6B +GOUT+COMP 9 2FL2 +SKIPONE 6 2FNK ...#UNS HWLSLCH 4 2FR8 ...( 10 2FTR ... +GOUT+CHLIST 9 2FYB ... +SKIPONE 4 2G2_ ...) 13 2G5J ...[ ***** END OF TABLE ****** 10 2GK= [SOME BIT POSITIONS IN GMODE 18 2H4W PERFREBIT #20 [PERI FREE AT ISPER TIME 18 2HJG PERISBIT #200 [ISPER BEING PERFORMED 16 2J46 PROPBIT #4000000 [PROPERTY BLOCK 17 2JHQ RECBITS #54000000 [BLOCK PRESENT BITS 17 2K3B XFILOFFBS #1400000 [A FILE IS OFFLINE 6 2KH2 SJMULTMES 15 2L2L +JLFMULTC [SJ MESSAGES 16 2LG= +JLFMULT [FOR MULTIFILES 12 2L_W [ ******** 6 2MFG SKIPUPDATE 17 2M_6 [THIS S/R ADVANCES POINTER BEYOND A GOUT/GUPDATE BLOCK. 9 2NDQ LDX 0 GMODE(3) 17 2NYB SMO FX1 [IF A FILE IS OFFLINE 19 2PD2 ANDX 0 XFILOFFBS [THERE WILL BE A FILE/FABSNB 9 2PXL BZE 0 SKIPONE 9 2QC= LDX 3 FPTR(3) 5 2QWW SKIPONE 15 2RBG [THIS S/R SKIPS THE POINTER IN X3 PAST ONE BLOCK 9 2RW6 LDX 3 FPTR(3) 4 2S*Q [ 21 2STB [*********************************************************************** 7 2T*2 [SUBROUTINE AREA 7 2TSL EXIT 2 0 5 2W#= SKIPOUT 16 2WRW [THIS S/R ADVANCES THE POINTER IN X3 PAST A STRING 17 2X?G [ASSOCIATED WITH A GOUT/INFO OR A GOUT/GKEY IN LECHAIN 4 2X#N ...[ 21 2X*W ...[ WHEN WLSIZE MACRO IMPLEMENTED THERE MAY BE A GOUT/GESIZE IN THE CHAIN 17 2XC4 ...[ THEREFORE USE NEW MACRO FOR BLOCKS IN GOUT/INFO CHAIN 6 2XD= ...#UNS AWLSZ 4 2XFD ...( 8 2XGL ... LFBLCNUM 4,3 9 2XHS ...SKPT2 LDX 3 FPTR(3) 8 2XK2 ... BCT 4 SKPT2 4 2XL8 ...) 6 2XMB ...#UNS AWLSZ 4 2XNJ ...#SKI 4 2XPQ ...( 9 2XR6 LDX 0 GMODE(3) 8 2Y=Q SMO FX1 9 2YQB ANDX 0 RECBITS 17 2_=2 ERX 0 GSIGN [INVERT ONLINE BIT 9 2_PL LDX 3 FPTR(3) 8 329= SKIP1 BPZ 0 SKIP2 9 32NW LDX 3 FPTR(3) 7 338G SKIP2 SLL 0 1 8 33N6 BNZ 0 SKIP1 4 33XY ...) 7 347Q EXIT 2 0 4 34MB [ 6 3572 SCANCHAIN 19 35LL [THIS S/R INTERPRETS THE BLOCK TYPE OF A BLOCK IN THE LFCHAIN 8 366= LDN 0 BLF 7 36KW TXU 0 3 17 375G BCS NOTEND [J NOT END OF CHAIN 7 37K6 EXIT 6 0 5 384Q NOTEND 9 38JB LDX 0 ATYPE(3) 19 3942 SRL 0 12 [REMOVE ANY UNEXPECTED BITS 8 39HL LDX 1 FX1 19 3=3= LDX 4 XMAXBLOCK(1) [MAX NUMBER OF BLOCK TYPES 10 3=GW XTS TXU 0 TABLOCK(1) 9 3?2G BCS NOTYETF 7 3?G6 EXIT 6 1 5 3?_Q NOTYETF 18 3#FB ADN 1 2 [ADVANCE TABLE POINTER 8 3#_2 BCT 4 XTS 10 3*DL GEOERR 1,FUNYBLOK 4 3*Y= [ 5 3BCW TELLCPA 19 3BXG [THIS S/R UPDATES ALFCNT FOR A CPA WHEN SOMETHING HAS HAPPENED 7 3CC6 [TO A MULTIFILE. 10 3CWQ [X7=0 FOR MULTIFILE CLOSED 13 3DBB [X7=1 FOR A NEW COMPONENT BEING OPENED 11 3DW2 [B0 OF X7 SET WHEN X3->SCHEDULER 11 3F*L [OTHERWISE X3->INFO OR KEY BLOCK 18 3FT= [ IF NO CPA CAN BE FOUND THEN THE JOB NUMBER IS ADDED 17 3G#W [TO A LIST HELD INITIALLY IN ACOMMUNE WORDS BUT IT MAY 10 3GSG [OVERFLOW INTO A GOUT/INFO4. 19 3H#6 [IF THE SCHEDULER IS INSERTING A MULTIFILE THEN THE JOB NUMBER 12 3HRQ [OF THE REQUEST IS HELD IN GSWORK4 4 3J?B [ 15 3JR2 STO 3 ACOMMUNE6(2) [PRESERVE POINTER 19 3K=L BNG 7 SCED1 [J IF LOOKING AT SCHEDULER 9 3KQ= LDX 5 GJOBS(3) 8 3L9W BRN SGOTJ 17 3LPG SCED1 LDX 5 GSWORK4(3) [PICK UP JOB NUMBER 18 3M96 SGOTJ LDX 3 FX2 [INITIALISE CPA POINTER 9 3MNQ TXU 5 JOBNO(2) 17 3N8B BCC US [J IF OUR LF REQUEST 16 3NN2 JOBLOCK 5,3 [X3->JOB BLOCK 16 3P7L BNG 3 NOCPA [IF THERE IS ONE 14 3PM= FCAJO 3 [FIND CPA 19 3Q6W US LDX 0 ALFCNT(3) [J IF ENDJOB BEING OBEYED AND 19 3QLG BNG 0 NOCPA [INFORMATION HAS BEEN USED 7 3R66 LDXC 0 7 19 3RKQ BNZ 0 NCLSD [J IF MULTIFILE NOT CLOSED 8 3RPM ... LDCT 0 #370 9 3RTJ ... ANDX 0 ALFCNT(3) 8 3R_F ... BZE 0 NCLSD 8 3S5B LDCT 0 #10 18 3SK2 SBS 0 ALFCNT(3) [DECREMENT OPEN MF COUNT 18 3T4L BRN NCLSD [J TO UPDATE FINAL COUNT 10 3TJ= ODON LDX 3 ACOMMUNE6(2) 8 3W3W LDX 1 FX1 7 3WHG EXIT 4 0 15 3X36 NCLSD LDX 0 JSOURCE3(3) [CPAT CONSOLE 9 3XGQ ANDX 0 BITS22LS 16 3Y2B BPZ 7 XSCED [J NOT SCHED LER 10 3YG2 SMO ACOMMUNE6(2) 18 3Y_L LDX 1 GSWORK3 [PICK UP CONSOLE PROPERTY 8 3_F= BRN PRGT 10 3_YW XSCED SMO ACOMMUNE6(2) 8 42DG LDX 1 GMODE 19 42Y6 SMO FX1 [IS THERE A PROPERTY BLOCK 18 43CQ ANDX 1 PROPBIT [ASSOCIATED WITH REQUEST 17 43XB BNZ 0 OREM [J IF NOT CENTRAL CPA 20 44C2 BZE 1 SAMEC [J IF NO PROPERITIES IN REQUEST 6 44DC ...#UNS AWLSZ 4 44FS ...( 10 44H9 ...OPROP LDX 1 ACOMMUNE6(2) 11 44JL ... JBC OPRP2,1,BLFWLSIZE 9 44L3 ... LDX 1 FPTR(1) 9 44MD ...OPRP2 LDX 1 FPTR(1) 4 44NT ...) 6 44Q= ...#UNS AWLSZ 4 44RM ...#SKI 4 44T4 ...( 10 44WL OPROP SMO ACOMMUNE6(2) 18 45B= LDX 1 FPTR [POINT TO PROPERTY BLOCK 4 45L4 ...) 17 45TW LDX 1 CPROPNO(1) [PICK UP CONSOLE PROP 9 46*G PRGT ANDX 1 BITS22LS 10 46GN ... LDX 0 JSOURCE3(3) 9 46MW ... ANDX 0 BITS22LS 7 46T6 TXU 0 1 18 47#Q BCS ODIF [J IF DIFFERENT CLUSTER 7 47SB SAMEC LDN 0 1 9 48#2 UPDT ADS 0 ALFCNT(3) 8 48RL BRN ODON 8 49?= OREM BNZ 1 OPROP 7 49QW ODIF LDN 0 1 19 4==G SLL 0 12 [COUNT FOR DIFFERENT CLUSTER 8 4=Q6 BRN UPDT 16 4?9Q NOCPA LDX 0 ACOMMUNE3(2) [ACOMMUNE POINTER 18 4?PB BZE 0 NOROOM [J IF WE NEED EXTRA BLOCK 7 4#92 SBN 0 1 16 4#NL STO 0 ACOMMUNE3(2) [RESET POINTER 7 4*8= SMO 0 9 4*MW STO 5 AWORK1(2) 8 4B7G BRN ODON 5 4BM6 NOROOM 10 4C6Q MHUNTW 3,GOUT,INFO4 14 4CLB LDX 0 A1(3) [POINTER 15 4D62 BZE 0 TROUBLE [J NO ROOM 7 4DKL SBN 0 1 8 4F5= STO 0 A1(3) 7 4FJW SMO 0 9 4G4G STO 5 A1+1(3) 8 4GJ6 BRN ODON 5 4H3Q SMONOUTX 8 4HHB SBX 5 FX1 8 4J32 MONOUTX 7,6 8 4JGL ADX 5 FX1 7 4K2= EXIT 5 0 4 4KD2 ...# 4 4KDN ...# 5 4KFW REQUEST 18 4K_G [THIS S/R EXAMINES THE STRING INDICATED BY X3 AND DETERMINES 18 4LF6 [WHETHER OR NOT THE ACTLF ON THE JOB RING WOULD BE SUITABLE. 18 4LYQ [IF SO THE PERFREBIT IS SET TO INDICATE THAT A GETPER SHOULD 7 4MDB [BE PERFORMED. 20 4MY2 [THE SCHEDULER HAS TAKEN THE FOLLOWING INFORMATION FROM THE ACTLF: 9 4NCL [ GSWORK1 =JSOURCE1 9 4NX= [ GSWORK2 =JSOURCE2 15 4PBW [ GSWORK4 =CPPTR OR ZERO FOR REMOTE DEVICE 10 4PWG STO 1 ACOMMUNE1(2) 10 4QB6 STO 3 ACOMMUNE3(2) 17 4QTQ ... LDCT 0 #70 [PICK UP DEVICE TYPE 10 4R*B ... ANDX 0 GSWORK1(2) 9 4RT2 ANDX 0 GOPTY(3) 17 4S#L BZE 0 NEXTR [J IF WRONG PERI TYPE 8 4SS= LDX 1 FX1 10 4T?W LDX 0 PERFREBIT(1) 19 4TRG ANDX 0 GMODE(3) [J IF THIS REQUEST ALREADY 19 4W?6 BNZ 0 NEXTR [EXPECTS A DEVICE TO BE FREE. 10 4WQQ LDX 0 PERISBIT(1) 19 4X=B ANDX 0 GMODE(3) [IF ISPER IS CURRENTLY BEING 21 4XQ2 BNZ 0 WILLD [DONE THEN THIS IS BEST WE CAN DO. 10 4Y9L LDX 0 PROPBIT(1) 9 4YP= ANDX 0 GMODE(3) 9 4_8W BNZ 0 PROPREQ 18 4_NG LDX 1 GSWORK4(2) [DEVICE LIST POINTER OR 17 5286 BZE 1 NEXTR [GIVE UP IF REMOTE 8 52MQ LADDP 1,1 18 537B ADN 1 APERPROP [POINTER TO PROPERTY AREA 7 53M2 NGN 5 1 9 546L CALL 2 PRANLYSE 8 54L= LDX 2 FX2 10 555W WILLD LDX 1 ACOMMUNE1(2) 10 55KG LDX 3 ACOMMUNE3(2) 8 5656 SMO FX1 9 56JQ LDX 0 PERFREBIT 9 574B ORS 0 GMODE(3) 7 57J2 EXIT 7 0 5 583L PROPREQ 6 585T ...#UNS AWLSZ 4 5884 ...( 11 58=? ... JBC PPRQ2,3,BLFWLSIZE 9 58#G ... LDX 3 FPTR(3) 5 58BP ...PPRQ2 4 58DY ...) 9 58H= LDX 3 FPTR(3) 18 592W LDX 1 GSWORK4(2) [X1 -> DEVICE LIST OR 19 59GG BZE 1 XREM [J IF WE HAVE REMOTE DEVICE 8 5=26 LADDP 1,1 9 5=FQ ADN 1 APERPROP 8 5=_B BRN READY 11 5?F2 XREM MHUNTW 1,GOUT,GPROPNOS 9 5?YL ADN 1 GPROPNUM 20 5#D= READY LDX 0 CPROPNO(3) [CONSOLE PROPERTY ASS. WITH REQ. 18 5#XW BNZ 0 WANTR [J REMOTE DEVICE WANTED 10 5*CG LDX 0 GSWORK4(2) 19 5*X6 BZE 0 NEXTR [J IF WE HAVE A REMOTE DEVICE 9 5BBQ BRN XCONSOK 16 5BWB WANTR LDXC 4 0(1) [THROW AWAY B0 7 5CB2 BCS / 7 5CTL SBX 4 0 17 5D*= BNZ 4 NEXTR [J NOT SAME CLUSTER 5 5DSW XCONSOK 7 5F#G LDN 5 0 19 5FS6 STO 1 ACOMMUNE2(2) [REMEMBER PROPERTY POINTER 9 5G?Q CALL 2 PRANLYSE 8 5GRB LDX 2 FX2 17 5H?2 [WE NOW CHECK THAT NO PERMANENT PROPERTIES ARE REQUESTED 9 5HQL [THAT WE CANT SATISFY 10 5J== LDX 4 BPROPCNT(3) 20 5JPW BZE 4 WILLD [J IF NO FURTHER PROPERTIES REQ. 9 5K9G XNX LDN 5 ATTMAX 18 5KP6 LDX 1 ACOMMUNE2(2) [RESET PROPERTY POINTER 15 5L8Q XT1 LDXC 0 0(1) [IGNORE B0 7 5LNB BCS / 9 5M82 TXU 0 BPROPS(3) 18 5MML BCC XAT [J IF PROPERTY ATTRIBUTED 7 5N7= ADN 1 1 8 5NLW BCT 5 XT1 17 5P6G LDX 0 BPROPS(3) [UNAVAILABLE PROPERTY 7 5PL6 SLL 0 1 17 5Q5Q BNG 0 NEXTR [GIVE UP IF PERMANENT 7 5QKB XAT ADN 3 1 8 5R52 BCT 4 XNX 8 5RJL BRN WILLD 5 5S4= PRANLYSE 17 5SHW [THIS S/R CHECKS THAT PROPERTY LIST INDICATED BY X1 DOES 18 5T3G [NOT CONTAIN ANY UNREQUESTED,PERMANENT EXCLUSIVE ENTRIES. 15 5TH6 [A BRANCH TO NEXTR IS OBEYED IF ONE IS FOUND. 4 5W2Q [ 18 5WGB LDN 4 ATTMAX-1 [MAX NO. OF ATTRIBUTIONS. 18 5X22 PRA1 ADN 1 1 [IGNORE CONSOLE PROPERTY 8 5XFL LDXC 0 0(1) 16 5X_= BCS PRA2 [J IF EXCLUSIVE 16 5YDW BZE 0 PRA3 [J IF END OF LIST 8 5YYG PRA5 BCT 4 PRA1 7 5_D6 PRA3 EXIT 2 0 18 5_XQ PRA2 BNG 5 PRA4 [J IF NO PROPERTY RECORD 17 62CB PRAS LDX 5 BPROPCNT(3) [NUMBER OF PROPERTIES 8 62M8 ... BZE 5 PRA7 7 62X2 PRA6 SMO 5 10 63BL TXU 0 BPROPS-1(3) 18 63W= BCC PRA5 [J IF PROPERTY REQUESTED 8 64*W BCT 5 PRA6 8 64TG ...PRA7 BPZ 4 PRA4 7 65*6 EXIT 2 1 7 65SQ PRA4 SLL 0 1 17 66#B BNG 0 NEXTR [IF PERMANENT,GIVE UP 8 66S2 BRN PRA5 4 67?L [ 8 67R= STEP SBX 4 FX1 6 68=W STEP 8 68QG ADX 4 FX1 7 69=6 EXIT 4 0 4 69PQ [ 6 6=9B SEARCHAIN 20 6=P2 [THIS S/R SEARCHES THE LFCHAIN FOR A GOUT/INFO OR GOUT/GKEY BLOCK 12 6?8L [ EXIT 0 WHEN END OF CHAIN 11 6?N= [ EXIT 1 WHEN GKEY FOUND 11 6#7W [ EXIT 2 WHEN INFO FOUND 19 6#MG CALL 6 SCANCHAIN [LOOK AT NEXT BLOCK IN CHAIN 15 6*76 EXIT 5 0 [END OF CHAIN 8 6*LQ SMO FX1 17 6B6B TXU 0 XKEY [COMPARE BLOCK TYPE 16 6BL2 BCS SNXKEY [J IF NOT GKEY 7 6C5L EXIT 5 1 5 6CK= SNXKEY 8 6D4W SMO FX1 8 6DJG TXU 0 XINFO 17 6F46 BCS SEARNEXT [J IF NOT GOUT/INFO 7 6FHQ EXIT 5 2 5 6G3B SEARNEXT 17 6GH2 [THIS ALSO PROVIDES A SUB ENTRY TO IGNORE CURRENT STRING 4 6H2L [ 18 6HG= LDX 6 TABLOCK+1(1) [ADDRESS OF SKIP ROUTINE 8 6H_W ADX 6 FX1 17 6JFG CALL 2 (6) [SKIP CURRENT STRING 8 6J_6 LDX 2 FX2 9 6KDQ BRN SEARCHAIN 12 6KYB [ ******** 4 6LD2 [ 21 6LXL [*********************************************************************** 9 6MC= [MAIN BODY OF SEGMENT 21 6MWW [*********************************************************************** 5 6NBG POINT1 18 6NW6 [THIS IS ONE OF THE ENTRY POINTS FROM THE HSPACTLF MACRO. 18 6P*Q [IT CORRESPONDS TO A NEW COMPONENT OF THE MULTIFILE BEING 17 6PTB [OPENED.GWAKECOUNT MUST BE INCREMENTED FOR ANY REQUEST 7 6Q*2 LDN 7 1 10 6QSL BRN STARTSEARCH 4 6R#= [ 21 6RRW [*********************************************************************** 5 6S?G POINT2 14 6SR6 [THIS IS THE OTHER ENTRY POINT FROM HSPACTLF 15 6T=Q [IT CORRESPONDS TO THE MULTIFILE BEING CLOSED. 7 6TQB LDN 7 0 4 6W=2 [ 6 6WPL STARTSEARCH 12 6X9= [A SEARCH IS MADE OF THE LFCHAIN. 10 6XNW [ACOMMUNE1 CONTAINS GMULTID 12 6Y8G [ACOMMUNE2 CONTAINS THE FREEZECOUNT. 4 6YN6 [ 21 6_7Q [*********************************************************************** 18 6_MB [WHEN A REQUEST IS FOUND AND UPDATED, A SEARCH MUST BE MADE 17 7272 [FOR THE CORRESPONDING CPA.IF IT IS FOUND,THEN ALFCNT IS 16 72LL [UPDATED.IF IT IS NOT FOUND,THEN A MESSAGE IS SENT 9 736= [TO THE SYSTEM JOURNAL. 11 73KW [ -------- 18 745G [IF SUFFICIENT REQUESTS ARE FOUND TO SATISFY THE FREEZCOUNT 8 74K6 [THEN ALL IS WELL. 18 754Q [ELSE THE SCHEDULER MUST BE EXAMINED AS IT MAY BE CURRENTLY 14 75JB [INSERTING A MULTIFILE REQUEST IN SYSOUT. 11 7642 [THE SCHEDULER WILL THEN HAVE 11 76HL [AWORK1 CONTAINING GWAKECOUNT 10 773= [AWORK2 CONTAINING GMULTID 14 77GW [ GSWORK3 CONTAINING CONSOLE PROPERTY 12 782G [ GSWORK4 CONTAINING JOB NUMBER 11 78G6 [ -------- 19 78_Q [OBVIOUSLY ALL THESE CHECKS MUST BE MADE WITHOUT COORDINATING. 16 79FB [SENDING MESSAGES TO THE SYSTEM JOURNAL COORDINATES. 18 79_2 [WE REMEMBER ALL JOB NUMBERS INVOLVED AND THEN SEND ALL THE 8 7=DL [MESSAGES AT ONCE. 15 7=Y= [IF THERE ARE < 5 THEN WE CAN USE AWORK WORDS. 17 7?CW [ELSE WE MUST SET UP A BLOCK TO CONTAIN THEM.(UNLIKELY!) 19 7?XG [WE SHALL NOT ATTEMPT TO CALCULATE THE NUMBER OF SUCH MESSAGES 19 7#C6 [BUT WE SHALL USE THE FACT THAT IT IS BOUNDED BY FREEZECOUNT. 5 7#WQ [RIGHT! 11 7*BB [ -------- 15 7*W2 LDX 5 ACOMMUNE2(2) [FREEZECOUNT 7 7B*L SBN 5 5 19 7BT= BNG 5 OKROOM [J IF WE DON'T NEED A BLOCK 7 7C#W ... ADN 5 2 11 7CSG SETUPCORE 5,3,GOUT,INFO4 7 7D#6 SBN 5 1 14 7DRQ STO 5 A1(3) [POINTER 5 7F?B OKROOM 7 7FR2 LDN 0 4 14 7G=L STO 0 ACOMMUNE3(2) [POINTER 16 7GQ= LDX 3 BLF [BASE OF CHAIN 16 7H9W XSCN LDN 6 SEARCHAIN [ADDRESS OF S/R 6 7HPG XSUBROUTE 8 7J96 ADX 6 FX1 8 7JNQ CALL 5 (6) 16 7K8B BRN NOTINCHAIN [NO MORE BLOCKS 16 7KN2 NULL [EXIT FOR GKEY 18 7L7L YEP LDX 0 GMULTID(3) [RIGHT BLOCK BUT RIGHT 15 7LM= TXU 0 ACOMMUNE1(2) [IDENTIFIER : 13 7M6W BCS XNXT [NO! 16 7MLG LDX 6 1 [PRESERVE POINTER 16 7N66 CALL 4 TELLCPA [CARRY OUT UPDATE 7 7NKQ LDX 1 6 7 7P5B LDN 0 1 20 7PK2 ADS 0 GWAKECOUNT(3) [INCREMENT NUMBER OF COMPONENTS 19 7Q4L BNZ 7 OPNM [J IF MULTIFILE STILL OPEN 18 7QJ= STOZ GMULTID(3) [ELSE CLEAR OPEN MARKER 19 7R3W OPNM SBS 0 ACOMMUNE2(2) [DECREMENT FREEZECOUNT COPY 10 7RHG LDX 0 ACOMMUNE2(2) 17 7S36 BZE 0 ODONE [EXAUSTED FREEZECOUNT 16 7SGQ XNXT LDN 6 SEARNEXT [ADDRESS OF S/R 9 7T2B BRN XSUBROUTE 6 7TG2 NOTINCHAIN 11 7T_L [WE HAVE EXAUSTED THE LFCHAIN. 18 7WF= LDX 0 ACOMMUNE2(2) [EMBARRASSING IF WE ARE 18 7WYW BCT 0 TROUBLE [MISSING MOR5 THAN ONE 16 7XDG POINTACT OUT,3 [FIND SCHEDULER 10 7XY6 LDX 0 ACOMMUNE1(2) 19 7YCQ TXU 0 GSWORK2(3) [J IF SCHEDULER NOT INSERTING 19 7YXB BCS TROUBLE [MULTIFILE COMPONENT REQUEST 7 7_C2 LDN 0 1 21 7_WL ADS 0 GSWORK1(3) [INCREMENT SCHDULER'S COMPONENT COUNT 19 82B= BNZ 7 UPD [J IF MULTIFILE STILL OPEN 8 82TW LDX 0 GSIGN 16 83*G ORS 0 GSWORK2(3) [TO SHOW CLOSED 8 83T6 UPD ORX 7 GSIGN 9 84#Q CALL 4 TELLCPA 8 84SB ODONE LDX 1 FX1 7 85#2 SMO 7 19 85RL LDX 7 SJMULTMES(1) [PICK UP APROPRIATE MESSAGE 7 86?= LDN 4 4 10 86QW SBX 4 ACOMMUNE3(2) 8 87=G BZE 4 OENDY 10 87Q6 LDX 3 ACOMMUNE3(2) 7 889Q SBN 3 1 7 88PB NTX ADX 2 3 7 8992 SMO 4 17 89NL LDX 6 AWORK1(2) [PICK UP JOB NUMBER 9 8=8= CALL 5 SMONOUTX 8 8=MW BCT 4 NTX 18 8?7G HUNTW 1,GOUT,INFO4 [CHECK FOR EXTRA JOB NOS. 8 8?M6 BNG 1 OENDY 10 8#6Q LDX 4 ALOGLEN(1) 8 8#LB SBX 4 A1(1) 7 8*62 SBN 4 1 8 8*KL BZE 4 OENDY 8 8B5= NTZ ADX 1 A1(1) 7 8BJW SMO 4 9 8C4G LDX 6 A1-1(1) 9 8CJ6 CALL 5 SMONOUTX 8 8D3Q BCT 4 NTY 10 8DHB OENDY HUNTW 1,GOUT,INFO4 8 8F32 BNG 1 OUP 7 8FGL FREECORE 1 8 8G2= OUP STARTACT OUT 5 8GFW UP 10 8G_G NTY MHUNTW 1,GOUT,INFO4 8 8HF6 BRN NTZ 5 8HYQ TROUBLE 10 8JDB GEOERR 1,LISTSEAR 4 8JY2 [ 21 8KCL [*********************************************************************** 5 8KX= POINT3 14 8LBW [THIS IS THE ENTRY POINT FROM K1LISTFIND. 16 8LWG [THE SCHEDULER HAS FAILED TO FIND A SUITABLE ENTRY 18 8MB6 [IN :SYSTEM.OUTPUT FOR AN ACTLF,SO THE LFCHAIN IS EXAMINED. 19 8MTQ [IF A GOUT/INFO STRING WHICH DOES NOT HAVE THE PERFREBIT SET, 18 8N*B [OR A GOUT/GKEY BLOCK WHICH DOES NOT HAVE THE PERISBIT SET 19 8NT2 [IS FOUND,THEN THE SUITABILITY OF THE ACTLF IS CONSIDERED TAKING 18 8P#L [INFO ACCOUNT ALL PROPERTIES.IF THE ACTLF IS SUITABLE FOR A 20 8PS= [GOUT/INFO STRING THEN THE PERFREBIT IS SET AND THE ACTLF GOES AWAY 13 8Q?W [IT WILL BE PICKED UP LATER BY GETPER. 20 8QRG [IF IT IS A GOUT/GKEY STRING,THEN THE PERFREBIT IS SET AND THE ACTLF 17 8R?6 [CONTINUES ITS SEARCH AS A GETPER MAY NOT BE PERFORMED. 4 8RQQ [ 19 8S=B [IF THE PERISBIT IS SET(AN ISPER IS CURRENTLY BEING PERFORMED) 14 8SQ2 [THEN A CHECK ON DEVICE TYPE ONLY IS MADE. 4 8T9L [ 8 8TP= LDX 3 BLF 16 8W8W LDN 6 SEARCHAIN [ADDRESS OF S/R 6 8WNG QSUBROUTE 8 8X86 ADX 6 FX1 8 8XMQ CALL 5 (6) 16 8Y7B BRN QENDCH [END OF LFCHAIN 15 8YM2 BRN QKEY [FOUND A GKEY 16 8_6L CALL 7 REQUEST [FOUND AN INFO 18 8_L= QENDCH [DEVICE SUITABLE FOR INFO 16 925W LFBBUS G,2,QXUP [J IF NO GPROPNOS 11 92KG MHUNTW 1,GOUT,GPROPNOS 7 9356 FREECORE 1 15 93JQ LFBITCLR G,2 [UNSET FLAG 19 944B QXUP LDX 2 FX2 [ENSURE IT DOESN'T LOOK AS 18 94J2 STOZ JSOURCE1(2) [IF WE OWN A PERIPHERAL. 10 953L STOZ JSOURCE2(2) 9 95H= STOZ CPPTR(2) 5 962W UP 9 96GG QKEY CALL 7 REQUEST 16 9726 QNXCH LDN 6 SEARNEXT [ADDRESS OF S/R 9 97FQ BRN QSUBROUTE 16 97_B [THE FOLLOWING LABEL IS AN EXIT FROM S/R 'REQUEST' 17 98F2 NEXTR LDX 2 FX2 [DEVICE UNSUITABLE 10 98YL LDX 1 ACOMMUNE1(2) 10 99D= LDX 3 ACOMMUNE3(2) 16 99XW BRN QNXCH [TRY NEXT STRING 4 9=CG [ 21 9=X6 [*********************************************************************** 5 9?BQ POINT4 15 9?WB [THIS ENTRY POINT IMPLEMENTS THE PROPUSE MACRO. 20 9#B2 [IT CHECKS THAT THE PROPERTY NUMBER IN ACOMMUNE1 CAN BE CANCELLED 13 9#TL [WITHOUT THE RESULT BEING TO DISASTROUS. 17 9**= [TO ACHIEVE THIS IT MUST KEEP SYSTEM.PROPERTY OPEN AND: 4 9*SW [ 19 9B#G [0.LOOK THROUGH SYSTEM JOBLIST FOR ANY ASSOCIATIONSOF PROPERTY 21 9BS6 [1. LOOK THROUGH SYSTEM.OUTPUT FOR ANY REQUEST INVOLVING THE PROPERTY 21 9C?Q [2. LOOK IN THE LISTFILE CHAIN FOR ANY REQUEST INVOLVING THE PROPERTY 21 9CRB [3. EXAMINE EVERY CPAT FOR AN APROPNOS BLOCK INVOLVING THE PROPERTY. 20 9D?2 [4. EXAMINE EVERY CPAT FOR AN ASSOCS BLOCK INVOLVING THE PROPERTY 20 9DQL [5. EXAMINE EVERY BLOCK IN THE HLSQ TO SEE IF ANY SAVED JOB WAS 20 9F== [ RUNNING FROM THE CLUSTER WHOSE PROPERTY IS BEING CANCELLED. 4 9FPW [ 10 9G9G LDX 0 ACOMMUNE1(2) 18 9GP6 ORX 0 GSIGN [REMOVE B0 AS NOT USED IN 16 9H8Q ERX 0 GSIGN [APROPNOS BLOCK 9 9HNB STO 0 AWORK1(2) 7 9J82 #SKI JWPHASE1 4 9JML ( 11 9K7= [ANY ASSOCIATIONS IN JOBWELL? 11 9KLW PROPWELL ,AWORK1(2),XUP 4 9L6G ) 4 9LL6 SBRK 17 9M5Q OPENSOUT SBRK,READ [OPEN :SYSTEM.OUTPUT 8 9MKB CALL 4 STEP 15 9N52 PTRY BZE 3 PENDFILE [END OF FILE 19 9NJL LFRECNUM 6,GMODE-A1(3) [X6 = NO OF RECORDS IN ENTRY 10 9P4= LDX 0 PROPBIT(1) 10 9PHW ANDX 0 GMODE-A1(3) 18 9Q3G BZE 0 PNEXT [J IF NO PROPERTY RECORD 19 9QH6 CALL 4 STEP [POSITION ON PROPERTY RECORD 15 9R2Q SBN 6 1 [RECORD COUNT 20 9RGB SBN 3 A1 [POINTER FOR PROPERTY ANALYSIS 16 9S22 LDN 4 1 [CUNNING FRIG FOR 16 9SFL ORX 4 GSIGN [PRAS SUBROUTINE. 9 9S_= LDX 0 AWORK1(2) 8 9TDW CALL 2 PRAS 18 9TYG BRN PINUSE [J IF PROPERTY BEING USED 7 9WD6 PNEXT LDX 1 6 8 9WXQ SKIP ,0(1) 8 9XCB BRN PTRY 5 9XX2 PENDFILE 4 9YBL [2. 19 9YW= [WE KEEP SYSTEM.OUTPUT OPEN TO PREVENT THE SCHEDULER RUNNING. 8 9_*W LDX 3 BLF 16 9_TG LDN 6 SEARCHAIN [ADRESS OF S/R 6 =2*6 PSUBROUTE 8 =2SQ ADX 6 FX1 8 =3#B CALL 5 (6) 16 =3S2 BRN PENDCHAIN [END OF LFCHAIN 15 =4?L NULL [FOUND A GKEY 16 =4R= SMO FX1 [FOUND AN INFO 19 =5=W LDX 0 PROPBIT [IS THERE A PROPERTY BLOCK 16 =5QG ANDX 0 GMODE(3) [IN THE STRING? 13 =6=6 BZE 0 PNXT [NO 17 =6PQ STO 3 ACOMMUNE1(2) [REMEMBER POINTERS 10 =79B STO 1 ACOMMUNE2(2) 6 =7?K ...#UNS AWLSZ 4 =7*S ...( 11 =7D3 ... JBC PSBR2,3,BLFWLSIZE 9 =7G= ... LDX 3 FPTR(3) 5 =7JF ...PSBR2 4 =7LN ...) 18 =7P2 LDX 3 FPTR(3) [POINT TO PROPERTY BLOCK 7 =88L LDN 4 1 17 =8N= ORX 4 GSIGN [FRIG FOR PRAS S/R 9 =97W LDX 0 AWORK1(2) 8 =9MG CALL 2 PRAS 16 ==76 BRN PINUSE [J IF BEING USED 8 ==LQ LDX 2 FX2 10 =?6B LDX 3 ACOMMUNE1(2) 10 =?L2 LDX 1 ACOMMUNE2(2) 16 =#5L PNXT LDN 6 SEARNEXT [ADDRESS OF S/R 9 =#K= BRN PSUBROUTE 6 =*4W PENDCHAIN 6 =*JG [3. AND 4. 9 =B46 [WE NOW LOOK FOR CPATS. 4 =B7= ...# 4 =B=B ...# 5 =B*G ...POINT7 4 =BDL ...# 8 =BHQ LDX 1 FX1 8 =C3B LDX 3 FX2 10 =CH2 PZ LDX 7 ACTRING(3) 17 =D2L SBN 7 ACTRING [X1->NEXT ACTIVITY 9 =DG= LDCH 0 ATYPE(3) 15 =D_W SBN 0 CPAT/64 [IS IT CPAT? 13 =FFG ... BZE 0 PYCPA1 [YES 17 =F_6 LDX 3 7 [X3 -> NEXT ACTIVITY 8 =GDQ BRN PXNAC 5 =GG_ ...PYCPA1 10 =GK8 ... LDX 0 JSOURCE3(3) 8 =GMC ... SMO FX2 9 =GPL ... ERX 0 AWORK1 9 =GRT ... ANDX 0 BITS22LS 15 =GW4 ... BZE 0 PINUSE [J IF IN USE 17 =GYB PYCPA LDX 3 FPTR(3) [POINT TO NEXT BLOCK 17 =HD2 TXU 3 7 [IS IT NEXT ACIVITY? 13 =HXL BCC PXNAC [YES! 9 =JC= LDX 0 ATYPE(3) 10 =JWW TXU 0 XASSOCS(1) 17 =KBG BCC PASSOCS [J IF ASSOCS BLOCK 6 =KDD ...#SKI JSKI27 4 =KGB ...( 10 =KJ# ... TXU 0 XASSOCS1(1) 19 =KL= ... BCC PASSOCS [J IF TEMPORARY ASSOCS BLOCK 10 =KN8 ... TXU 0 XASSOCS0(1) 16 =KQ6 ... BCC PASSOCS0 [ASSOCS+JSOURCE3 4 =KS4 ...) 10 =KW6 TXU 0 XPROPNOS(1) 17 =L*Q BCS PYCPA [J IF NOT APROPNOS 8 =LTB SMO FX2 9 =M*2 LDX 0 AWORK1 7 =MSL LDN 4 1 8 =N#= ORX 4 GSIGN 15 =NRW CALL 2 PRAS [HAVE A LOOK 15 =P?G BRN PINUSE [J IF IN USE 8 =PR6 LDX 2 FX2 15 =Q=Q BRN PYCPA [NEXT BLOCK 6 =Q?R ...#SKI JSKI27 4 =Q#S ...( 5 =Q*T ...PASSOCS0 17 =QBW ... LDX 5 ALOGLEN(3) [ASSOCS0(ZERO) BLOCK 7 =QCX ... SBN 5 1 7 =QDY ... SMO 5 16 =QF_ ... LDX 0 A1(3) [JSOURCE3 COPY 8 =QH2 ... SMO FX2 9 =QJ3 ... ERX 0 AWORK1 9 =QK4 ... ANDX 0 BITS22LS 9 =QL5 ... BZE 0 PINUSE 16 =QM6 ... BZE 5 PYCPA [NO ASSOCIATIONS 17 =QN7 ... BCT 5 PASSC [AT LEAST ONE ENTRY 4 =QP8 ...) 5 =QQB PASSOCS 10 =R=2 [HAVE A LOOK IN ASSOCS BLOCK 16 =RM2 ... LDX 4 A1(3) [NO OF ENTRIES 17 =S42 ... LDN 0 ASSOCSLEN [LENGTH OF EACH ENTRY 7 =SF2 ... MPY 4 0 16 =SW2 ...PASSC BZE 5 PYCPA [NO MORE ASSOCS 9 =T?2 ... SBN 5 ASSOCSLEN 7 =TN6 SMO 5 16 =W7Q LDX 0 A1+2(3) [PROPERTY NUMBER 8 =WMB ORX 0 GSIGN 15 =X72 ERX 0 GSIGN [REMOVE B0 8 =XLL SMO FX2 9 =Y6= TXU 0 AWORK1 18 =YKW BCC PINUSE [J IF PROPERTIES MATCH 8 =_5G BRN PASSC 19 =_K6 PXNAC TXU 3 FX2 [BACK TO CURRENT ACTIVITY? 13 ?24Q BCS PZ [NO 4 ?259 ...# 4 ?2HQ ...# 4 ?2JB [5. 10 ?342 [WE FINALLY LOOK IN THE HLSQ 8 ?3HL LDX 2 FX2 8 ?43= LDX 3 BHLSQ 9 ?4GW ...PHLX TXL 3 ENDFIX 14 ?52G ... BCS PFIN [END OF Q 8 ?5G6 LDX 0 GSIGN 9 ?5_Q ORX 0 HLSPCT(3) 16 ?6FB ERX 0 GSIGN [THROW AWAY B0 9 ?6_2 TXU 0 AWORK1(2) 9 ?7DL BCC PINUSE 9 ?7Y= LDX 3 FPTR(3) 8 ?8CW BRN PHLX 4 ?8XG [ 4 ?9C6 [ 20 ?9WQ [WE HAVE NOW MADE ALL OUR SEARCHES(UNTIL SOMEBODY DREAMS UP ANOTHER) 4 ?=BB [ 15 ?=W2 PFIN LDN 7 0 [NOT IN USE 8 ??*L BRN PTIDY 5 ??T= PINUSE 4 ?#?* ...# 7 ?##W LDN 7 1 15 ?#SG PTIDY CLOSEOUT [CLOSE SYSOUT 8 ?*#6 BZE 7 NOUSE 5 ?*RQ XUP UP 7 ?B?B NOUSE UPPLUS 1 16 ?BR2 POINT5 [DUD ENTRY POINTS 5 ?C=L POINT6 4 ?CQ= #END 8 ____ ...47770510000100000000