{{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