(George Source)
Macros used: ACROSS, CHAIN, ENRING, FPUT, FREECORE, FSHENTRY, FSHTEST, GEOERR, GETACTX, GETPER7, GETSOUT, KEEPREP, LADDP, LFBBS, LFBBUS, LFBITCLR, LFBITSET, LFRECNUM, LINKSET, MENDAREA, MFREEW, MHUNTW, NAME, PAIR, READ, READAGAIN, READY, REWIND, SEGENTRY, SKIP, STEP, STEPAGAIN, STEPWRITE, TESTNAMX, TESTREP2, TESTRPN2, TRANSACT, UP, 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<CLONK$1 4G4G ( 4GJ6 LDX 0 6 4H3Q LDN 1 ALINK1(2) 4HHB MOVE 0 2 4J32 LDX 1 FX1 4JGL EXIT 6 2 4K2= ) 4KFW STEPWRITE 4K^G SBX 6 FX1 4LF6 STEPWRITE 4LYQ ADX 6 FX1 4MDB EXIT 6 0 4MY2 [ 4NCL READREC 4NX= [THIS S/R READS THE NEXT RECORD FROM SYSOUT 4PBW SBX 6 FX1 4PWG READ 4QB6 MHUNTW 1,FILE,FRB 4QTQ ADX 6 FX1 4R*B EXIT 6 0 5RJL [ 5S4= [THI S/R CHECKS WHETHER THE FABSNB POINTED AT BY X3 IS FOR A WORKFILE. 5SHW [IF SO, B16 OF ATYPE IS SET 5T3G [ 5TH6 WFLAB 12HWORKFILE 5W2Q WFLTEST 5WGB TESTNAMX 3,WFLAB(1),A1+1(3),XT,2 5X22 LDN 0 #200 5XFL ORS 0 ATYPE(3) 5X^= XT LDX 2 FX2 5YDW EXIT 6 0 5YYG SPUTACT 5^D6 [THIS S/R KICKS OFF THE ACTLF WHICH PROCEDES THE SCHEDULER ON 5^XQ [ITS JOB-RING.THE BUSY FLAG IS SET,THE LINK IS TAKEN FROM 62CB [THE LOCATIONS FOLLOWING THE CALL. 62X2 LDX 2 JOBRING+BPTR(2) 63BL SBN 2 JOBRING 63W= LFBITSET F,2 64*W #SKI CLONK 64TG ( 65*6 LDX 1 6 [S/R CALL ADDRESS 65SQ LINKSET 2,0(1) 66#B FPUT 66S2 EXIT 6 HLINK 67?L ) 67R= #SKI 1<CLONK$1 68=W ( 68QG LDX 0 6 69=6 LDN 1 ALINK1(2) 69PQ MOVE 0 2 6=9B FPUT 6=P2 EXIT 6 2 6?8L ) 6?N= [ 6#7W TRANSACT 6#MG [THIS S/R TRANSFERS THE BLOCK INDICATED BY X1 FROM THE SCHEDULER 6*76 [TO THE ACTLF PRECEDING IT ON THE JOBRING 6*LQ LDX 2 JOBRING+BPTR(2) 6B6B LDX 2 ACTRING-JOBRING(2) 6BL2 SBN 2 ACTRING 6C5L CHAIN 1,BPTR(2) 6CK= EXIT 6 0 6CKT ...# 6D4W [ ******** 6DJG [ 6F46 [*********************************************************************** 6FHQ [MAIN BODY OF SEGMENT 6G3B [*********************************************************************** 6GH2 POINT1 6H2L [AT THIS POINT THE SCHEDULER IS PRECEEDED ON ITS JOB-RING BY 6HG= [AN ACTLF WHICH OWNS A PERIPHERAL AND WANTS SOME WORK TO DO. 6H^W [WE NOW MAKE A PASS TROUGH :SYSTEM.OUTPUT LOOKING FOR A SUITABLE 6JFG [FILE TO LIST ON THIS DEVICE.THE PROPERTIES REYUIRED ARE COMPARED 6J^6 [WITH THOSE IN THE APIA FOR A CENTRAL DEVICE OR THE GPROPNOS FOR A 6KDQ [REMOTE ONE. 6KYB [WE ATTEMPT TO MINIMISE CHANGES IN TEMPORARY PROPERTIES REQUIRED 6LD2 [BY EXAMINING ALL REQUESTS AT THE SAME URGENCY AS THE FIRST 6LXL [IMPLEMENTABLE REQUEST. 6MC= [ 6MWW [A REQUEST REQUIRING PROPERTY CHANGES WILL NOT BE CONSIDERED 6NBG [IF A REQUEST WAS MADE ON ITS BEHALF TO THE OPERATOR IN THE 6NW6 [LAST 30 MINS. 6P*Q LDX 0 FINISH [DONT CONTINUE IF FINISH 6PGY ...# 6PN6 ...XATHOME2 6PTB SLL 0 1 6Q*2 BPZ 0 NFINISHED 6QG8 ...# 6QMB ...XGOAWAY 6QSL CALL 6 SPUTACT 6R#= PAIR LISTNEXT,6 6RRW UP 6S?G NFINISHED 6SJT ...# 6SK= ...POINT10 6SR6 STOZ AWORK1(2) [THESE WILL HOLD THE KEYS OF THE 6T=Q STOZ AWORK2(2) [BEST MATCH SO FAR. 6TQB LDN 0 ATTMAX [INITIATE COUNT OF PROPERTY 6W=2 STO 0 AWORK3(2) [CHANGES FOR BEST MATCH SO FAR. 6WPL REWIND 6X9= CALL 4 STEP [POSITION ON FRST ENTRY 6XNW BRN XRECL 6Y8G NEXTE CALL 7 SKIPENT 6YN6 XRECL BZE 3 SELECTED [J IF END OF SYSOUT 6^7Q LDN 7 0 [INITIALISB WEIGHT 6^MB LDX 6 GMODE-A1(3) 7272 LDCH 0 GOUTKEY1-A1(3) [PICK UP URGENCY OF REQUEST 72LL STO 0 ACOMMUNE1(2) 736= LDCH 0 AWORK1(2) [PICK UP URGENCY 73KW BZE 0 STHY [OF B.M.S.F. 745G TXU 0 ACOMMUNE1(2) [IF DIFFERENT FROM NEXT REQUEST 74K6 BCS SELECTED [WE MUST TAKE IT. 754Q STHY LDX 0 XIMPBIT(1) [CHECK THAT ENTRY CAN IN FACT 75JB ANDX 0 GMODE-A1(3) [BE IMPLEMENTED 7642 BNZ 0 NEXTE [J IF IT CANT 76HL LDCT 0 #70 773= ANDX 0 GSWORK1(2) 77GW ANDX 0 GOPTY-A1(3) 782G BZE 0 NEXTE [J IF WRONG TYPE 78G6 LDX 0 GCOUNT-A1(3) [REMEMBER LAST TIME PROPERTY 78^Q STO 0 AWORK4(2) [CHANGES ASKED FOR 79FB LDX 5 GOUTKEY1-A1(3) [REMEMBER CURRENT 79^2 LDX 7 GOUTKEY2-A1(3) [INDEX KEYS 7=DL LDX 0 PROPBIT(1) 7=Y= ANDX 0 GMODE-A1(3) 7?CW BNZ 0 PROPREQ [J IF PROPERTIES REQUIRED. 7?XG STO 5 ACOMMUNE2(2) [INDEX 7#C6 STO 7 ACOMMUNE3(2) [KEYS 7#WQ LDX 3 GSWORK4(2) [DEVICE LIST POINTER OR 7*BB BZE 3 NEXTE [GIVE UP IF REMOTE DEVICE. 7*BL ...#UNS ANIP 7*BW ...( 7*C6 ... BPZ 3 XCEN 7*CB ...[ IF NIP ACTLF WILL HAVE GOUT/GPROPNOS BLOCK 7*CL ... MHUNTW 1,GOUT,GPROPNOS 7*CW ... ADN 1 GPROPNUM 7*D6 ... BRN XNIP1 7*DB ...XCEN 7*DL ...) 7*D^ ...#UNS G3SIGNET 7*HJ ...( 7*L7 ... TXU 3 ASIGNETPTR [IGNORE ENTRY IF A SIGNET PRINTER 7*NQ ... BCC NEXTE [BUT NOT A SIGNET REQUEST. 7*R* ...) 7*W2 LADDP 3,1 [GET POINTER TO LIST OF 7B*L ADN 1 APERPROP [ATTRIBUTED PROPERTIES 7BGS ...#UNS ANIP 7BN2 ...XNIP1 7BT= NGN 5 1 7C#W CALL 2 PRANL [EVALUATE 7CSG BRN WEIGH 7D#6 PROPREQ 7DRQ ERX 6 PROPBIT(1) [UNSET PROPERTY BIT TO ENSURE 7F?B CALL 4 STEP [CORRECT NUMBER OF RECORDS SKIPPED 7FR2 STO 5 ACOMMUNE2(2) [INDEX 7G=L STO 7 ACOMMUNE3(2) [KEYS 7GQ= LDX 1 GSWORK4(2) [X1 -> 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