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