{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: LISTFIND867)}}
====== LISTFIND867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:CHAIN|CHAIN]], [[george:macro:ENRING|ENRING]], [[george:macro:FPUT|FPUT]], [[george:macro:FREECORE|FREECORE]], [[george:macro:FSHENTRY|FSHENTRY]], [[george:macro:FSHTEST|FSHTEST]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETACTX|GETACTX]], [[george:macro:GETPER7|GETPER7]], [[george:macro:GETSOUT|GETSOUT]], [[george:macro:KEEPREP|KEEPREP]], [[george:macro:LADDP|LADDP]], [[george:macro:LFBBS|LFBBS]], [[george:macro:LFBBUS|LFBBUS]], [[george:macro:LFBITCLR|LFBITCLR]], [[george:macro:LFBITSET|LFBITSET]], [[george:macro:LFRECNUM|LFRECNUM]], [[george:macro:LINKSET|LINKSET]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:NAME|NAME]], [[george:macro:PAIR|PAIR]], [[george:macro:READ|READ]], [[george:macro:READAGAIN|READAGAIN]], [[george:macro:READY|READY]], [[george:macro:REWIND|REWIND]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SKIP|SKIP]], [[george:macro:STEP|STEP]], [[george:macro:STEPAGAIN|STEPAGAIN]], [[george:macro:STEPWRITE|STEPWRITE]], [[george:macro:TESTNAMX|TESTNAMX]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TESTRPN2|TESTRPN2]], [[george:macro:TRANSACT|TRANSACT]], [[george:macro:UP|UP]], [[george:macro:VFREE|VFREE]]
22FL #OPT K0LISTFIND=0
22^= #LIS K0LISTFIND>K0LISTFILE>K0ALLGEO>K0GREATGEO>K0COMMAND
23DW ...#SEG LISTFIND7 [ROB RUSHTON
23YG 8HLISTFIND
23^^ ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983
243F ... SEGENTRY K1LISTFIND,POINT1
246D ... SEGENTRY K2LISTFIND,POINT2
249C ... SEGENTRY K3LISTFIND,POINT3
24=W ... SEGENTRY K4LISTFIND,POINT4
24#B ... SEGENTRY K5LISTFIND,POINT5
24C* ... SEGENTRY K6LISTFIND,POINT6
24G# ... SEGENTRY K7LISTFIND,POINT7
24K# ... FSHENTRY K10LISTFIND,,POINT10,POINT10
24QG ... FSHENTRY K12LISTFIND,POINT12,,POINT12
24S= ... FSHENTRY K13LISTFIND,POINT13,,POINT13
24W2 ... FSHENTRY K14LISTFIND,NOTAVDB,,NOTAVDB
24XQ MENDAREA 30,K95LISTFIND
25CB [
25X2 [ THIS SEGMENT IS OBEYED BY THE LISTFILE SCHEDULER.
26BL [ IT CONTAINS SEVERAL OF THE MODULES ENTERED FROM LISTPROC.
26W= [ THE CODE IS MAINLY CONCERNED WITH ACCESSING :SYSTEM.OUTPUT.
27*W [
27TG [K1LISTFIND IS ENTERED BY THE SCHEDULER WHEN IT IS LOOKING
28*6 [ FOR A REQUEST FOR AN ACTLF TO IMPLEMENT.
28SQ [
29#B [K2LISTFIND IMPLEMENTS THE LFGETPER MACRO.
29S2 [ IT ATTEMPTS TO IMPLEMENT THE REQUEST WHOSE INDEX
2=?L [ KEYS ARE SUPPLIED.
2=R= [
2?=W [K3LISTFIND HERE THE SCHEDULER PROCESSES AN ACTLF WHICH HAS
2?QG [ PERFORMED A GETPER OR A SETPROP BUT CANNOT CONTINUE.
2#=6 [ THE ACTLF WILL HAVE FLAG E SET AND,IN ADDITION,IF
2#PQ [ A GETPER HAS BEEN PERFORMED THE FLAG D .
2*9B [
2*P2 [K4LISTFIND THIS IS THE ENTRY POINT FOR AN ACTLF PERFORMING
2B8L [ AN AUTONOMOUS GETPER FOR A REMOTE DEVICE.
2BDD ...[ NOW MOVED TO LISTPROC
2BN= [
2C7W [K5LISTFIND THIS ENTRY DELETES A REQUEST FROM :SYSTEM.OUTPUT
2CMG [ AND FORMS THE FIRST STAGE OF AN LFDEL MACRO
2CX# ...[ NOW MOVED TO LISTFNDA
2D76 [
2DLQ [K6LISTFIND IS ENTERED BY A CPAT WHICH WAS BROKEN-IN ON WHILE
2F6B [ WAITING FOR AN OUTPUT DEVICE FOR AN ONLINE REQUEST
2FL2 [ IT DELETES THE REQUEST FROM :SYSTEM.OUTPUT
2FTS ...[ NOW MOVED TO LISTFNDA
2G5L [
2GK= [K7LISTFIND THIS ENTRY POINT IS USED BY THE SCHEDULER FROM
2H4W [ THE LFCHANGE MACRO ISSUED BY CHANGELIST
2H#N ...[ NOW MOVED TO LISTFNDA
2HJG [
2J46 [AWORK4 IS USED AS A SWITCH:
2JHQ [ >0 FOR K1 ENTRY
2K3B [ =0 FOR K2 ENTRY
2KH2 [ <0 FOR K3 ENTRY
2L2L [
2LG= [
2L^W [***********************************************************************
2MFG [DATA AREA
2M^6 [
2NDQ [ THERE FOLLOWS A SELECTION OF IDENTIFIERS
2NKY ...#UNS G3SIGNET
2NR6 ...XSIGPROP #40000 [SIGNET PROPERTY IDENTIFIER.
2NYB [ FOR BIT POSITIONS IN GMODE.
2PD2 XIMPBIT #21400000 [IMPLEMENTABLE REQUEST MASK
2PXL PROPBIT #4000000 [ THERE IS A PROPERTY PARAMETER
2QC= SIMPBIT #20000000 [BEING IMPLEMENTED
2QWW XPARTIMP #2000000 [PARTIALLY IMPLEMENTED
2RBG XFILOFFBS #1400000 [FILES OFFLINE
2RW6 SETUPBIT #10000000 [THERE IS A SETUP FILE
2S*Q [
2STB [ BLOCK TYPES FOR LISTING ACTIVITIES.
2T*2 XACTCEN
2TSL #HAL ACTLF+CENTRAL,0
2W#= XACTREM
2WRW #HAL ACTLF+GREMOTE,0
2X?G [ TIME VALUES FOR USE WITH GCOUNT.
2XR6 THRS 1000/K9*60*60*24
2Y=Q TMINS 30*60*1000/K9
2YQB [
2^=2 [
2^PL [***********************************************************************
329= [SUBROUTINE AREA
32NW [THIS S/R EXAMINES THE PROPERTIES IN THE LIST POINTED AT BY X1
338G [IF ANY ARE EXCLUSIVE THEN A CHECK IS MADE TO SEE IF THEY WERE
33N6 [REQUESTED.IF NOT THEN X7 IS INCREMENTED IF THE PROPERTY IS TEMP
347Q [OR THE ENTRY ABANDONED IF PROPERTY IS PERMANENT.
34MB [X5<0 MEANS NO PROPERTIES REQUESTED.
3572 [IT EXPECTS THE FILESTORE-READ-POINTER TO BE POSITIONED ON THE
35LL [SECOND RECORD OF A REQUEST IF ANY PROPERTIES ARE NECESSARY.
366= PRANL LDN 7 0 [INITIALISE WEIGHT
36KW LDN 4 ATTMAX-1 [MAX NUMBER OFF ATTRIBUTIONS
375G PRA1 ADN 1 1 [IGNORING CONSOLE PROPERTY
37K6 LDXC 0 0(1)
384Q BCS PRA2 [J IF EXCLUSIVE
38JB #SKI APARSORT
3942 BZE 0 PRA3 [J IF END OF LIST
39HL PRA5 BCT 4 PRA1
3=3= PRA3 EXIT 2 0 [END OF LIST
3=GW PRA2 BNG 5 PRA4 [J IF NO PROPS REC
3?2G LDX 5 BPROPCNT-A1(3) [NUMBER OF PROPERTIES
3?G6 BZE 5 PRA4
3?^Q PRA6 SMO 5
3#FB TXU 0 BPROPS-A1-1(3)
3#^2 BCC PRA5 [J IF PROPERTY REQUESTED
3*DL BCT 5 PRA6
3*Y= PRA4 SLL 0 1
3BCW BNG 0 NEXTE [IF PERM. GIVE UP
3BG5 ...#UNS ANIP
3BJ# ...(
3BLH ... SMO FX2
3BNQ ... LDX 5 GSWORK4
3BQ^ ... BNG 5 NEXTE [J. IF NIP NO ALTERATIONS ALLOWED
3BT8 ...)
3BXG ADN 7 1 [INCREASE WEIGHT
3CC6 BRN PRA5
3CWQ [
3DBB SKIPENT
3DW2 [THIS S/R ADVANCES THE READ POINTERS TO THE NEXT ENTRY IN SYSOUT
3F*L [X6 CONTAINS A COPY OF GMODE(WHICH MAY HAVE BEEN DOCTORED IF WE
3FT= [ARE NO LONGER POSITIONED ON THE FIRST RECORD OF THE ENTRY).
3G#W SBX 7 FX1
3GSG LFRECNUM 1,6
3H#6 SKIP ,0(1)
3HRQ ADX 7 FX1
3J?B EXIT 7 0
3JR2 [
3K=L STEP
3KQ= SBX 4 FX1
3L9W STEP
3LPG ADX 4 FX1
3M96 EXIT 4 0
3MNQ REPOSN
3N8B [THIS S/R POSITIONS THE READ POINTERS ON THE ENTRY WHOSE
3NN2 [INDEX KEYS ARE GIVEN IN AWORK1 AND AWORK2
3P7L [IF A SETPROP HAS FAILED,WE
3PM= [MUST EXIT TO UNSET BEING IMPLEMENTED BIT
3Q6W SBX 6 FX1
3QLG GETSOUT ,AWORK1(2),AWORK2(2)
3R66 [
3RKQ [THE REQUEST MAY NO LONGER BE THERE IF WE CAME IN AT K3ENTRY POINT
3S5B TESTREP2 OK,NOUP
3SK2 LDX 0 AWORK4(2) [ENTRY POINT SWITCH
3T4L BNG 0 NOGEOER [J IF K3
3TJ= GEOERR 1,LFENTLOS
3W3W NOGEOER
3WHG [WE NOW ABANDON OUR CURRENT TASK. BUT FIRST WE MUST DEAL WITH
3X36 [ANY LISTING ACTIVITY.
3XGQ LFBBS D,2,NOSPUT [SET AT 'REMPERX' LABEL
3Y2B CALL 6 SPUTACT
3YG2 PAIR LISTNEXT,51 [KICK LISTING ACTIVITY
3Y^L NOSPUT
3^F= LFBITCLR D,2 [JUST IN CASE
3^YW RUP UP [BACK UP
42DG NOUP
42Y6 STEPAGAIN
43CQ LDX 0 AWORK4(2)
43XB BPZ 0 NOUP1 [J IF NOT K3 ENTRY
44C2 LFBBUS D,2,NOUP1 [J IF K3 ENTRY BUT NOT REMOTE GETPER
44WL LDX 0 SIMPBIT(1) [ELSE REQUEST MAY BE BEING
45B= ANDX 0 GMODE-A1(3) [IMPLIMENTED BY ANOTHER
45TW BNZ 0 RUP [ACTIVITY IN WHICH CASE,UP.
46*G NOUP1
46T6 ADX 6 FX1
47#Q EXIT 6 0
47SB [
48#2 SETACT
48RL [THIS S/R SETS UP AN ACTLF WITH LINKS INDICATED BY THE
49?= [LOCATIONS AFTER THE CALL. IT ALSO SETS F, X2->ACTLF
49QW SBX 6 FX1
4==G GETACTX 3,4,1 [GET ACTIVITY IN LONGBLOCK AREA
4=Q6 SMO BPTR(2)
4?9Q LDN 1 JOBRING
4?PB LDX 2 JOBRING+BPTR(2)
4#92 ENRING 1,2
4#NL LDX 2 BPTR(2)
4*8= LFBITSET F,2
4*MW ADX 6 FX1
4B7G #SKI CLONK
4BM6 (
4C6Q LDX 1 6 [S/R CALL ADDRESS
4CLB LINKSET 2,0(1) [MOVE IN LINK
4D62 LDX 1 FX1
4DKL EXIT 6 HLINK
4F5= )
4FJW #SKI 1 DEVICE LIST OR
7H9W BZE 1 XREM [J IF REMOTE DEVICE
7H=7 ...#UNS ANIP
7H=D ... BNG 1 XREM
7H=P ...#UNS G3SIGNET
7H?J ...(
7H#C ... LDX 7 BPROPCNT-A1(3) [GET NUMBER OF PROPERTY NOS.
7H*= ...SIGCK SMO 7
7HB5 ... LDX 0 BPROPS-A1-1(3)
7HBY ... SMO FX1
7HCR ... ANDX 0 XSIGPROP [
7HDL ... BNZ 0 SIGPROP [J IF SIGNET REQUEST.
7HFF ... BCT 7 SIGCK [J TO TRY NEXT PROPERTY.
7HG# ... TXU 1 ASIGNETPTR [OK IF NOT A SIGNET REQUEST AND
7HH7 ... BCS SIGOK [NOT A SIGNET PRINTER.
7HJ2 ... BRN NEXTE [IGNORE AS SIG PRTER BUT NOT SIG REQ.
7HJT ...SIGPROP
7HKN ... TXU 1 ASIGNETPTR [IGNORE AS SIGNET REQUEST BUT
7HLH ... BCS NEXTE [NOT A SIGNET PRINTER.
7HMB ...SIGOK
7HN9 ...)
7HPG LADDP 1,1
7J96 ADN 1 APERPROP [POINT TO PROPERTIES IN APIA
7JNQ BRN READY
7K8B XREM MHUNTW 1,GOUT,GPROPNOS
7KN2 ADN 1 GPROPNUM
7L7L READY LDX 0 CPROPNO-A1(3) [PICK UP CONSOLE PROPERTY REQUESTED
7LM= BNZ 0 WANTR [J IF REMOTE DEVICE WANTED
7M6W LDX 0 GSWORK4(2)
7MLG BZE 0 NEXTE [J IF WE HAVE REMOTE DEVICE
7N66 BRN XCONSOK
7NKQ WANTR LDXC 4 0(1) [THROW AWAY B0 AS NOT USED IN
7P5B BCS £ [APROPNOS BLOCK
7PK2 SBX 4 0
7Q4L BNZ 4 NEXTE [J IF WRONG CLUSTER
7QJ= XCONSOK
7R3W LDN 5 0
7RHG STO 1 ACOMMUNE1(2) [REMEMBER PROPERTY POINTER
7S36 CALL 2 PRANL [EVALUATE PROPERTIES ATTRIBUTED
7SGQ LDX 2 FX2
7T2B [NOW WE MUST EVALUATE THE PROPERTIES REQUESTED.
7TG2 [IF THEY ARE NOT ATTRIBUTED THEN WE INCREMENT X7 IF TEMPORARY OR
7T^L [GIVE UP IF PERMANENT.
7WF= LDX 4 BPROPCNT-A1(3)
7WYW BZE 4 WEIGH [J IF NO FURTHER PROPERTIES WANTED
7XDG XNX LDN 5 ATTMAX [MAXIMUM NUMBER OF POSSIBLE ATTRIBUTI
7XY6 LDX 1 ACOMMUNE1(2) [RESET PROP POINTER
7X^T ...#UNS ANIP
7Y3J ...(
7Y5? ...[ IF NIP GPROPNUM ZERO - NO CONSOLE PROPERTY
7Y72 ... LDX 0 GSWORK4(2)
7Y8P ... BPZ 0 XT1
7Y=D ... SBN 5 1
7Y#7 ... ADN 1 1
7Y*W ...)
7YCQ XT1 LDXC 0 0(1) [IGNORE B0
7YXB BCS £
7^C2 #SKI APARSORT
7^WL BZE 0 XLEN [END OF LIST
82B= TXU 0 BPROPS-A1(3)
82TW BCC XAT [J IF PROP ATT.
83*G ADN 1 1
83T6 BCT 5 XT1
84#Q XLEN LDX 0 BPROPS-A1(3) [PROPERTY NUMBER
84SB SLL 0 1
85#2 BNG 0 NEXTE [GIVE UP IF PERM
85B9 ...#UNS ANIP
85DD ...(
85GM ...[ CANNOT ATTRIBUTE IF NIP - SO GIVE UP ANYWAY
85JW ... LDX 0 GSWORK4(2)
85M5 ... BNG 0 NEXTE
85P# ...)
85RL ADN 7 1
86?= XAT ADN 3 1
86QW BCT 4 XNX
87=G WEIGH LDX 2 FX2
87Q6 LDX 1 FX1
889Q TXL 7 AWORK3(2)
88PB BCC NEXTE [J IF MATCH NO IMPROVEMENT
8992 BZE 7 PERFM [J IF MATCH EXACT
89NL LDX 5 AWORK4(2)
8=8= BZE 5 PERFM [J IF NOT PREVIOUSLY REFUSED
8=MW LDX 0 CLEANCT [TIME NOW
8?7G TXL 0 5 [IF LESS THEN WE MUST HAVE
8?M6 BCC NOTMID [GONE PAST MIDNIGHT
8#6Q ADX 0 THRS(1)
8#LB NOTMID
8*62 SBX 0 TMINS(1) [GIVE UP IF LESS THAN 30 MINS
8*KL BNG 0 NEXTE [GIVE UP IF LESS THAN 30 MINS
8B5= TXL 0 5 [HAS ELAPSED SINCE LAST TRY
8BJW BCS NEXTE
8C4G PERFM STO 7 AWORK3(2)
8CJ6 LDX 0 ACOMMUNE2(2)
8D3Q STO 0 AWORK1(2) [ELSE TAKE NEW INDEX KEYS
8DHB LDX 0 ACOMMUNE3(2)
8F32 STO 0 AWORK2(2)
8FGL BNZ 7 NEXTE
8G2= SELECTED
8GFW LDX 0 AWORK1(2)
8G^G BZE 0 NWANT [J IF NO ENTRY CHOSEN
8HF6 LDX 3 JOBRING+BPTR(2)
8HYQ SBN 3 JOBRING [POINT TO ACTLF
8JDB STO 2 AWORK4(2) [SET SWITCH FOR K3LISTFIND
8JY2 LDX 7 AWORK3(2) [PROPERTY WEIGHT FOR B.M.S.F.
8KCL BZE 7 REPOK
8KX= KEEPREP 0,PREQ
8LBW [PREPARE REPLY TO TELL ACTLF THAT PROPERTIES REQUIRE CHANGES.
8LWG BRN REPDONE
8MB6 REPOK
8MTQ KEEPREP 0,OK
8N*B REPDONE
8NT2 STO 0 EXEC3(3)
8P#L LFBBUS G,2,SGOT [J IF DEVICE NOT REMOTE
8PS= LFBITCLR G,2 [[UNSET G IN SCHEDULER
8Q?W LFBITSET G,3 [SET G IN ACTLF
8QRG MHUNTW 1,GOUT,GPROPNOS
8R?6 CHAIN 1,3
8RQQ BRN SGOT
8S=B NWANT
8SQ2 [WE HAVE FOUND NOTHING IN :SYSTEM.OUTPUT THAT THE ACTLF COULD BE
8T9L [USED FOR.THUS THE ACTLF IS MADE TO FREE THE DEVICE AND SUICIDE.
8TP= [THE SCHEDULER HAS A LOOK IN THE LFCHAIN TO SEE IF THE INFORMATION
8W8W [THAT A DEVICE IS ABOUT TO BECOME AVAILABLE CAN BE USED.
8W9P ...#
8W9R ...#UNS ANIP
8W9T ...(
8W9X ... LDX 0 GSWORK4(2)
8W9^ ... BPZ 0 XNOTL
8W=3 ...[ IF NIP ACTLF MUST REPORT BACK TO JOB THAT NO ENTRIES AVAILABLE
8W=5 ... LFBITCLR G,2
8W=7 ... MFREEW GOUT,GPROPNOS
8W=9 ... CALL 6 SPUTACT
8W=? ... PAIR LISTOPEN,6
8W=* ... UP
8W=C ...XNOTL
8W=F ...)
8WNG CALL 6 SPUTACT
8X86 PAIR LISTNEXT,6
8XMQ ACROSS LISTSEAR,3
8Y7B [ ************
8YM2 [
8^6L [***********************************************************************
8^L= POINT2
925W [THIS ENTRY POINT IMPLEMENTS THE LFGETPER MACRO.
92KG [IF THE REQUEST IS FOR A CENTRAL DEVICE THEN THE GETPER
9356 [IS OBEYED BY THE SCHEDULER.ELSE AN ACTLF IS SET UP.
93JQ [ON ENTRY ACOMMUNE1 AND 2 CONTAIN INDEX KEYS OF REQUEST.
944B [ON EXIT READ POINTERS ARE ON FOLLOWING REQUEST.
94J2 STOZ AWORK4(2) [SWITCH
953L LDX 0 ACOMMUNE1(2)
95H= STO 0 AWORK1(2) [TRANSFER INDEX KEYS
962W LDX 0 ACOMMUNE2(2)
96GG STO 0 AWORK2(2)
9726 CALL 6 REPOSN [POSITION ON FIRST RECORD OF REQUEST.
97FQ LDX 0 XIMPBIT(1)
97^B ANDX 0 GMODE-A1(3)
98F2 BNZ 0 XGPND [J IF CANT BE IMPLEMENTED
98YL SPCHECK
99D= [THIS IS THE SUB ENTRY POINTFOR CHECKING THAT A REQUEST IS STILL
99XW [IMPLEMENTABLE
9=CG [WE HAVE RECIEVED A 'PERMX' REPLY FROM SETPROP AND IT MAY BE THAT ALL
9=X6 [DEVICES HAVE PERMEXCL PROPERTIES
9?BQ [OR THE OPERATOR HAS REPLIED 'CANTDO' TO A PLEASE ATTRIBUTE REQUEST
9?WB [OR SETPROP HAS GENERATED NOPER,NOPROP.
9#B2 LDX 5 GOPTY-A1(3)
9#TL LDX 7 PROPBIT(1)
9**= ANDX 7 GMODE-A1(3)
9*SW BZE 7 SCENT [CENTRAL IF NO PROPERTIES
9B#G LDX 7 GMODE-A1(3)
9BS6 READ
9C?Q MHUNTW 3,FILE,FRB
9CRB NAME 3,APERI,APROPNOS
9D?2 LDX 0 CPROPNO(3)
9DQL BZE 0 SCENT [CENTRAL IF CONSOLE PROPNUM. ZERO
9F== LDX 3 XACTREM(1)
9FPW LDN 4 ACTLFLEN+GREMOTELEN
9G9G CALL 6 SETACT [SET UP ACTLF
9GP6 ... PAIR LISTPROC,4 [WITH THIS LINK
9H8Q MHUNTW 1,APERI,APROPNOS
9HNB CHAIN 1,2 [TRANSFER TO ACTLF
9J82 LDX 2 JOBRING+BPTR(2)
9JML SBN 2 JOBRING
9K7= LDX 3 FX2
9KLW LFBITSET E,2
9L6G LDX 0 AWORK1(3)
9LL6 STO 0 AWORK1(2) [TRANSFER INDEX KEYS
9M5Q LDX 0 AWORK2(3)
9MKB STO 0 AWORK2(2)
9N52 STO 5 AWORK3(2) [TRANSFER GOPTY
9NJL FPUT
9P4= LDX 6 7 [ADJUST COPY OF GMODE
9PHW ERX 6 PROPBIT(1) [THE CORRECT NUMBER OF RECORDS
9Q3G BRN XGPNXD [ARE SKIPPED.
9QH6 XGPND LDX 6 GMODE-A1(3)
9R2Q XGPNXD
9RGB CALL 7 SKIPENT [POSITION ON NEXT REQUEST
9S22 UP
9SFL [
9S^= SCENT
9TDW GETPER7 5,SBRKIN,SBRKIN
9TYG TESTREP2 WRNG,NOTAV,NOTAV,NOTAV
9WD6 BRN NPRBLX
9WXQ [
9XCB [***********************************************************************
9XX2 POINT3
9YBL [THIS IS THE ENTRY POINT WHEN THE SCHEDULER FINDS AN ACTLF
9YW= [WHICH HAS EITHER PERFORMED A GETPER FOR A REMOTE DEVICE OR HAS
9^*W [RECEIVED AN UNSATISFACTORY REPLY TO A SETPROP.
9^TG NGS 2 AWORK4(2)
=2*6 LDN 7 0
=2SQ NPRBLX
=3#B [THIS POINT IN THE CODE BE REACHED FROM A JOURNEY ALONG ONE
=3S2 [OF THE FOLLOWING PATHS:
=4?L [1. THE SCHEDULER HAS PERFORMED A GETPER FOR A CENTRAL REQUEST.THE
=4R= [ REPLIES 'WRNG' AND 'NOTAV' HAVE BEEN ELIMINATED.THERE WILL NOT BE
=5=W [ AN ACTLF SET UP YET AND X7 WILL BE NON-ZERO ONLY IF THERE IS
=5QG [ AN APROPNOS BLOCK.
=6=6 [2. AN ACTLF HAS RECIEVED THE REPLY 'CANT' OR 'PERMEXCL' TO A SETPROP:
=6PQ [ THE SCHEDULER HAS TO UNSET THE 'BEING IMPLEMENTED' MARKER AND
=79B [ PERFORM ANOTHER GETPER.THE ACTLF WILL BE PICKED UP LATER ON BY
=7P2 [ THE NORMAL SEARCH IN LISTPROC.IF THE RNPLY WAS 'CANT' THEN THE
=88L [ CURRENT TIME IS STORED IN GCOUNT IN THE REQUEST SO THAT NO
=8N= [ PROPERTY CHANGES WILL BE ASKED FOR FOR 30 MINS.
=97W [
=9MG [3. AN ACTLF HAS PERFORMED A GETPER FOR A REMOTE REQUEST AT K4LISTFIND.
==76 [ THE REPLIES'WRONG' AND'NOTAV' HAVE BEEN ELIMINATED SO IT LOOKS
==LQ [ MUCH LIKE PATH 1. EXCEPT THAT AN ACTLF HAS BEEN SET UP.THE SCHEDULER
=?6B [ HAS G SET.
=?L2 [
=?P6 ...#UNS FL7502
=?S= ... TESTREP2 OK,SGOT,PREQ,SGOT,LOOP,SGOT
=?XB ...#UNS FL7502
=#2G ...#SKI
=#5L TESTREP2 OK,SGOT,PREQ,SGOT
=#89 ...[ SPECIAL CODE FOR LFDBAID MACRO !!
=#96 ... SEGENTRY K60LISTFIND
=#=3 ... BRN TAMOD1
=#?2 ... LDX 0 AWORK4(2)
=#?9 ... BZE 0 TAMODA [J. ENTRY PT 2
=#?D ... LDX 3 JOBRING+BPTR(2)
=##4 ... SBN 3 JOBRING
=##N ... LFBBS D,3,TAMOD1 [INCASE REMOTE PROPS CHANGED BEFORE
=#*G ...TAMODA
=#B* ... TESTREP2 NOPROP,NOTAVDB,PERMEXCL,NOTAVDB
=#D2 ...TAMOD1
=#GK ... SEGENTRY K61LISTFIND
=#K= BZE 7 NPRBL [J NO APROPNOS
=*4W MHUNTW 1,APERI,APROPNOS
=*JG FREECORE 1
=B46 NPRBL
=BHQ TESTREP2 NOPER,XDL,PERMEXCL,XDL,NOPROP,XDL
=C3B TESTREP2 CANT,XDL
=CH2 GEOERR 1,GPREPWR
=D2L XDL LDX 0 AWORK4(2)
=DG= BZE 0 NOTK3 [J IF NOT K3ENTRY POINT
=D^W LDX 3 JOBRING+BPTR(2)
=FFG SBN 3 JOBRING [X3 -> ACTLF
=F^6 LFBBS D,3,REMPERX [J IF REMOTE GETPER FROM K4LISTFIND
=GDQ LDX 5 EXEC3(3) [PRESERVE REPLY
=GYB CALL 6 REPOSN [FIND REQUEST
=HD2 CALL 6 SPUTACT [SEND LISTING ACTIVITY TO CHECK
=HXL PAIR LISTNEXT,51 [IF WAITINF TO BE WRONGED ETC
=JC= STOZ AWORK4(2) [CHANGE ENTRY-POINT SWITCH
=JWW CALL 6 STEPWRITE [IF WE OUGHT TO DELETE THIS
=KBG LDX 0 SIMPBIT(1) [REQUEST
=KW6 ERS 0 GMODE-A1(3) [UNSET BEING IMPLEMENTED FLAG
=L*Q STO 5 EXEC3(2) [RESET REPLY
=LTB TESTRPN2 CANT,SPCHECK
=M*2 LDX 0 CLEANCT [STORE CURRENT TIME IN TIME FOR
=MSL STO 0 GCOUNT-A1(3) [LAST PROPERTY REFUSAL.
=N#= ... BRN SPCHECK
=NRW REMPERX [IN THIS CASE WE MUST DELETE
=NSJ ...#UNS FSHTEST
=NT= ...#SKI
=NTY ...(
=NWL ...# THIS CODE IS A TEMPORARY FIX FOR BUG 9565. IT IS NOT COMPILED IN
=NX# ...# THE SHARED FILESTORE TESTING ENVIRONMENT IN AN ATTEMPT TO STOP
=NY2 ...# THE SEGMENT OVERFLOWING
=NYN ...#
=N^B ... LDX 0 JSOURCE1(3) [FIND OUT WHETHER THIS ACTIVITY HAS
=P24 ... BZE 0 XNOPER [A PERIPHERAL - JIF IT HASN'T!!
=P2Q ...#
=P3D ... TESTRPN2 CANT,XNOTCANT [JIF NOT REPLY 'CANT'
=P46 ... CALL 6 REPOSN [RELOCATE ENTRY IN SYSTEM.OUTPUT
=P4S ... BRN XCANTREP [J TO TIDY UP AND CARRY ON
=P5G ...#
=P68 ...XNOTCANT
=P6W ... CALL 6 SPUTACT [RUN CURRENT ACTLF TO LOOK FOR OTHER
=P7J ... PAIR LISTNEXT,51 [WORK TO DO
=P8= ... BRN NOTK3 [GO TO DELETE CURRENT LF REQUEST
=P8Y ...#
=P9L ...XNOPER
=P=# ...)
=P?G CALL 6 SPUTACT
=PR6 PAIR LISTNEXT,7 [SUICIDE LINK
=PTP ... SEGENTRY K62LISTFIND
=PY# ... BRN ROB1
=Q2Y ... BRN RUP
=Q6T ...ROB1 SEGENTRY K63LISTFIND
=Q=Q LFBITSET D,2 [FOR USE IN 'REPOSN'
=QQB CALL 6 REPOSN [CHECK ENTRY STILL EXISTS
=R=2 LFBITCLR D,2 [ITS WORK DONE,UNSET IT.
=R#B ...NOTK3
=RBQ ... TESTRPN2 NOPER,TRY2
=RF6 ... LDCH 6 GOPTY-A1(3)
=RHG ... STO 6 ACOMMUNE7(2)
=RKW ... LDN 6 0
=RN= ... FINDPERE 1,APFOTY,ACOMMUNE7(2),QNEXTDV,,TRY1,TRY1
=RQL ... BPZ 1 TRY2
=RT2 ... BZE 6 TRY2
=RXB ... BRN NXP
=R^Q ...TRY1 LDN 6 1
=S46 ... BRN QNEXTDV
=S6G ...TRY2 LDX 0 AWORK1(2)
=S9= STO 0 ACOMMUNE1(2)
=SNW LDX 0 AWORK2(2)
=T8G STO 0 ACOMMUNE2(2)
=TN6 STOZ ACOMMUNE3(2) [GETPER SWITCH
=W7Q ... ACROSS LISTFNDA,1
=WMB [ ************
=X72 [
=XLL [THIS POINT CAN BE REACHED BY ANY OF THE FOLLOWING PATHS:-
=Y6= [1. A GETPER FOR A CENTRAL DEVICE(PERFORMED BY THE SCHEDULER)
=YKW [ HAS REPIED 'OK' OR 'PREQ'. AWORK4=0
=^5G [
=^K6 [2. A MATCH HAS BEEN FOUND FOR A FREE LISTING ACTIVITY.AWORK4>0
?24Q [
?2JB [3. A GETPER FOR A REMOTE DEVICE(PERFORMED BY LISTING ACTIVITY)
?342 [ HAS REPLIED 'OK' OR 'PREQ'.AWORK4<0. IN THIS CASE THE ENTRY
?3HL [ MAY NO LONGER BE AVAILABLE.(DUE TO THE POSSIBILITY OF PATH 2.)
?43= [
?4GW SGOT LDX 0 AWORK4(2)
?52G BNZ 0 NPROP
?5G6 [PATH 1. WE SET UP A CENTRAL LISTING ACTIVITY.
?5^Q LDX 5 EXEC3(2)
?6FB LDX 3 XACTCEN(1)
?6^2 LDN 4 ACTLFLEN+CENTRALLEN
?7DL CALL 6 SETACT
?7Y= PAIR LISTOPEN,1
?8CW STO 5 EXEC3(2) [TRANSFER REPLY
?8XG LDX 3 FX2
?9C6 LDX 0 CPPTR(3)
?9WQ STO 0 CPPTR(2)
?=BB LDX 0 JSOURCE1(3)
?=W2 STO 0 JSOURCE1(2)
??*L LDX 0 JSOURCE2(3)
??T= STO 0 JSOURCE2(2)
?##W BZE 7 NPROP
?#SG MHUNTW 1,APERI,APROPNOS
?*#6 FREECORE 1
?*RQ NPROP LDX 2 FX2
?B?B STOZ JSOURCE1(2) [COMPLETE HANDOVER OF DEVICE
?BR2 STOZ JSOURCE2(2) [OTHERWISE IT LOOKS AS THOUGH
?C=L STOZ CPPTR(2) [WE HAVE IT AND THIS CONFUSES GETPER
?C?? ...#UNS FSHTEST
?C?Y ...#SKI
?C#K ...(
?CP4 ...)
?CQ= LDX 3 JOBRING+BPTR(2)
?D9W SBN 3 JOBRING [X3-> LISTING ACTIVITY
?DH= ... LFBBUS D,3,NRGP
?DSL ... LFBITSET D,2
?F62 ...NRGP CALL 6 REPOSN [CHECK REQUEST EXTANT
?FCB ... LFBITCLR D,2
?FNQ LDX 2 JOBRING+BPTR(2)
?G8B SBN 2 JOBRING [PTR TO ACTLF
?GD8 ... LFBITCLR D,2
?GN2 [WE AVOID REPEATING PREVIOUS PROPERTY DEMANDS TOO SOON.
?GP? ...#UNS FL7502
?GQJ ...(
?GRT ... TESTRPN2 LOOP,NLOOP [ J IF NOT FORMAT LOOP PROBLEM
?GS= ...#
?GSM ...XCANTREP
?GT6 ... CALL 6 STEPWRITE [ REWRITE CHANGED RECORD TO FILE
?GWC ... LDX 0 SIMPBIT(1) [ CLEAR BEING IMPLEMENTED
?GXN ... ERS 0 GMODE-A1(3)
?GY^ ... LDX 0 CLEANCT [ STORE TIME PROBLEM OCCURRED
?H2= ... STO 0 GCOUNT-A1(3)
?H3H ... BRN NOTASK [ FORGET REQUEST FOR 30 MINS
?H4S ...NLOOP
?H65 ...)
?H7L TESTRPN2 PREQ,NOPRCH
?HM= LDX 5 GCOUNT-A1(3)
?J6W BZE 5 NOPRCH [J IF NO PREVIOUS DEMAND
?JLG LDX 0 CLEANCT [TIME NOW,IF LESS THAN
?K66 TXL 0 5 [TIME THEN WE MUST HAVE PASSED
?KKQ BCC PNOTMID [MIDNIGHT!
?L5B ADX 0 THRS(1) [ADD ON 24 HOURS
?LK2 PNOTMID
?M4L SBX 0 TMINS(1) [SUBTRACT 30 MINS
?MJ= BNG 0 NOTASK
?N3W TXL 0 5
?NHG BCC NOPRCH
?P36 NOTASK
?PGQ [WE MUST ABANDON THIS REQUEST FOR THE TIME BEING
?Q2B LDX 2 FX2
?QG2 CALL 6 SPUTACT [SET LISTING ACTIVITY TO CHECK
?Q^L PAIR LISTNEXT,51 [WAITING TO BE WRONGED ETC.
?RF= BRN XGPND [RETURN TO LISTPROC.
?RYW NOPRCH
?SDG LFBITSET F,2
?SY6 LDX 4 JSOURCE1(2)
?TCQ LDX 5 JSOURCE2(2)
?TXB CALL 6 STEPWRITE
?WC2 STO 4 GSOURCE1-A1(3)
?WWL STO 5 GSOURCE2-A1(3)
?XB= LDX 5 SIMPBIT(1) [BEING IMPLEMENTED
?XTW ORS 5 GMODE-A1(3)
?Y*G LDX 5 GMODE-A1(3)
?YT6 READAGAIN
?^#Q MHUNTW 1,FILE,FRB
?^SB NAME 1,GOUT,INFO
#2#2 CALL 6 TRANSACT [TRANSFER TO ACTLF
#2RL LDX 0 PROPBIT(1)
#3?= ANDX 0 5
#3QW BZE 0 NPRBLK [J NO PROPERTIES
#3Y4 ...#SKI JSKI17<1$1
#45= ...(
#4=G LDX 0 AWORK4(2)
#4Q6 BNG 0 NEEDPR
#59Q BZE 0 NEEDPR
#5PB BNZ 7 NEEDPR
#692 CALL 4 STEP
#6NL BRN NPRBLK
#6YD ...)
#78= NEEDPR
#7MW CALL 6 READREC
#87G NAME 1,APERI,APROPNOS
#8M6 CALL 6 TRANSACT
#96Q NPRBLK
#9LB BNG 5 ONLI [J IF ONLINE
#=62 CALL 6 READREC
#=KL NAME 1,GOUT,INFO2
#?5= LDX 3 1
#?JW CALL 6 TRANSACT
##4G CALL 6 WFLTEST
##J6 ONLI LDX 0 SETUPBIT(1)
#*3Q ANDX 0 5
#*HB BZE 0 NOSE
#B32 CALL 6 READREC
#BGL NAME 1,GOUT,INFO3
#C2= LDX 3 1
#CFW CALL 6 TRANSACT
#C^G CALL 6 WFLTEST
#DF6 NOSE CALL 4 STEP
#DYQ CALL 6 SPUTACT
#FDB PAIR LISTOPEN,1
#FY2 UP
#F^P ...NOTAVDB
#G3D ... CALL 6 REPOSN
#G57 ... CALL 6 STEPWRITE
#G6W ... LDX 0 SIMPBIT(1)
#G8K ... ORS 0 GMODE-A1(3)
#G=# ... ERS 0 GMODE-A1(3) [ CLEAR BEING IMPLEMENTED
#G#3 ... VFREE APERI,APROPNOS
#G*Q ... BRN XGPND
#GCL NOTAV BZE 7 NXP [J NO PROPERTY BLOCK
#GX= MHUNTW 1,APERI,APROPNOS
#HBW FREECORE 1
#HWG NXP CALL 6 REPOSN [POSITION ON ENTRY IN SYSOUT
#JB6 BRN XGPND
#JTQ [
#K*B [ ************
#KK8 ...[ THIS ENTRY POINT HAS BEEN MOVED TO LISTPROC
#KT2 [
#L#L [***********************************************************************
#LS= ...POINT4
#M?W ...[[THIS IS THE ENTRY POINT FOR AN ACTLF ABOUT TO PERFORM
#MRG ...[[A GETPER FOR A REMOTE DEVICE
#N?6 ...[ LDX 4 AWORK3(2)
#NQQ ...[SCAG GETPER7 4,SCAG,SNO
#P=B ...[ TESTREP2 WRNG,SNO,NOTAV,SNO
#PQ2 ...[ TESTREP2 NOPER,SNO
#Q9L ...[ MHUNTW 1,APERI,APROPNOS
#QP= ...[ FREECORE 1
#R8W ...[ LFBITSET D,2 [SHOW REMOTE GETPER
#RNG ...[ LFBITCLR F,2
#S86 ...[ STARTACT OUT
#SMQ ...[ COOR1
#T7B ...[ GEOERR 1,NOLINK
#TM2 ...[SNO SUICIDE
#W6L SBRKIN
#WL= GEOERR 1,BROKEN
#X5W [ ************
#XKG [
#Y56 [
#YJQ [
#^4B [***********************************************************************
#^J2 POINT5
*6XW POINT6
*W*W POINT7
*WTG ... GEOERR 1,NOTFIND
B=4W [!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!7!!!!!!
B=5R ...[
B=6N ...[
B=JG #END
^^^^ ...16134002000300000000