{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: LISTSEAR867)}}
====== LISTSEAR867 ======
(George Source)
**Macros used:** [[george:macro:CLOSEOUT|CLOSEOUT]], [[george:macro:FCAJO|FCAJO]], [[george:macro:FREECORE|FREECORE]], [[george:macro:FSHENTRY|FSHENTRY]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNTW|HUNTW]], [[george:macro:JBC|JBC]], [[george:macro:JOBLOCK|JOBLOCK]], [[george:macro:LADDP|LADDP]], [[george:macro:LFBBUS|LFBBUS]], [[george:macro:LFBITCLR|LFBITCLR]], [[george:macro:LFBLCNUM|LFBLCNUM]], [[george:macro:LFRECNUM|LFRECNUM]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUTX|MONOUTX]], [[george:macro:OPENSOUT|OPENSOUT]], [[george:macro:POINTACT|POINTACT]], [[george:macro:PROPWELL|PROPWELL]], [[george:macro:READY|READY]], [[george:macro:SETENTRY|SETENTRY]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:SKIP|SKIP]], [[george:macro:STARTACT|STARTACT]], [[george:macro:STEP|STEP]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]]
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