7 22FL #SEG PERFPASS 8 22LS ...#OPT K0PERFPASS=0 7 22S2 ...#LIS K0PERFPASS 14 22_= #DEF RD=0 [ DATE 14 23DW #DEF RT=RD+2 [ TIME 15 23YG #DEF RMJ=RT+1 [ MOP JOBS 16 24D6 #DEF RBJ=RMJ+1 [ BACKGROUND JOBS 15 24XQ #DEF RCI=RBJ+1 [ CORE IMAGES 17 25CB #DEF ROC=RCI+1 [ OBJECT PROGRAM CORE 17 25X2 #DEF RGC=ROC+1 [ GEORGE CHAPTER CORE 15 26BL #DEF RF=RGC+1 [ FREE CORE 17 26W= #DEF RGM=RF+1 [ GEORGE MILL TIME 17 27*W #DEF ROM=RGM+2 [ OBJECT MILL TIME 16 27TG #DEF RBR=ROM+2 [ FILESTORE READS 17 28*6 #DEF RBW=RBR+2 [ FILESTORE WRITES 16 28SQ #DEF RST=RBW+2 [ SWAP TRANSFERS 17 29#B #DEF RCT=RST+2 [ CHAPTER TRANSFERS 16 29S2 #DEF RCF=RCT+2 [ CHAPTERS FREED 16 2=?L #DEF RCC=RCF+2 [ CHAPTER CHANGES 20 2=R= #DEF RFM=RCC+1 [ CHAPTERS FREED BY INFLIGHT GC 18 2?=W #DEF RCH=RFM+1 [ LENGTH OF CHAPTER CHAIN 19 2?QG #DEF RFC=RCH+1 [ USAGE BLOCKS IN FILE CHAIN 19 2#=6 #DEF RHO=RFC+1 [ FILES ON HALF-OPEN CHAIN 18 2#PQ #DEF RCU=RHO+1 [ CORE UNJAMMER ENTERED 18 2*47 ...#DEF RID=RCU+1 [ EXECUTIVE IDLE TIME 6 2*BJ ...#DEF RFRH=40 10 2*P2 8HPERFPASS 11 2B8L SEGENTRY K1PERFPASS,ZK1 18 2BN= [THIS SEGMENT IS OBEYED TO WRITE PERFORMANCE DATA TO A FILE. 18 2C7W [THE MASTER COMPONENT CONTAINS THE CODE FOR OPENING THE FILE 19 2CMG [AND SUBROUTINES FOR WRITING THE FIXED FORMAT DATA AT THE FRONT 7 2D76 [OF THE RECORD 20 2DLQ [THE REST OF THE SEGMENT CONTAINS VARIOUS ROUTINES FOR COLLECTING 21 2F6B [MORE SPECIFIC DATA. THE CURRENT ACTIVITY IS ROUTED TO THE APPROPRIATE 13 2FL2 [COLLECTION CODE BY COMMAND PARAMETER. 4 2G5L [ 16 2GK= [ABSOLUTE FILE NAME FOR INSTALLATION PARAMETERS FILE 8 2H4W ZFABSNB +10 9 2HJG 12HSYSTEM 5 2J46 #SKI G3 10 2JHQ 12HPARAMINDEX 5 2K3B #SKI G4 11 2KH2 12HPARAMINDEXG4 8 2L2L +0 8 2LG= +1 8 2L_W 4HB1 12 2MFG [ ******************** 4 2M_6 [ 11 2NDQ [ SUBROUTINES 4 2NYB [ 12 2PD2 [ ******************** 4 2PXL [ 5 2QC= #PAGE 4 2QWW [ 6 2RBG ZDPSPARAM 4 2RW6 [ 18 2S*Q [ THIS SUBROUTINE TRANSFERS THE NEXT PARAMETER TO A CPB/CUNI 17 2STB [ EXIT 0 IF PARAMETER NULL OR MISSING - CPB/CUNI FREED 10 2T*2 [ EXIT 1 IF PARAMETER FOUND 11 2TSL [ X7 USED AS LINK ACCUMULATOR 9 2W#= [ CHANGES - X0 DESTROYED 8 2WRW [ X1 = FX1 8 2X?G [ X2 = FX2 4 2XR6 [ 18 2Y=Q [ ****** THIS SUBROUTINE CO-ORDINATES ****** 4 2YQB [ 18 2_=2 SBX 7 FX1 [ PREPARE TO CO-ORDINATE 16 2_PL SPARAPAS [ GET PARAMETER 8 329= ADX 7 FX1 16 32NW MHUNT 1,CPB,CUNI [ HUNT CPB/CUNI 17 338G NGX 0 ANUM(1) [ GET CONTENT POINTER 19 33N6 BPZ 0 PNULL [ BRANCH IF NULL OR ABSENT 15 347Q LDX 1 FX1 [ RESET X1 14 34MB EXIT 7 1 [ EXIT OK 16 3572 PNULL FREECORE 1 [ FREE CPB/CUNI 14 35LL EXIT 7 0 [ EXIT 0 4 366= [ 5 36KW #PAGE 4 375G [ 6 37K6 ZDPNUMCON 4 384Q [ 19 38JB [ THIS SUBROUTINE CONVERTS THE PARAMETER IN THE FIRST CPB/CUNI 17 3942 [ FROM CHARACTERS TO BINARY - ERROR MESSAGE GENERATED IF 15 39HL [ PARAMETER FOUND IS NOT A VALID NUMBER FORMAT 8 3=3= [ EXIT 0 IF FAILED 12 3=GW [ EXIT 1 IF CONVERSION SUCCESSFUL 11 3?2G [ X7 USED AS LINK ACCUMULATOR 9 3?G6 [ CHANGES - X0 DESTROYED 8 3?_Q [ X1 = FX1 8 3#FB [ X2 = FX2 15 3#_2 [ X6 = RESULT IF CONVERSION SUCCESSFUL 17 3*DL [ FIRST CPB/CUNI BLOCK WILL HAVE BEEN FREED 4 3*Y= [ 18 3BCW [ ****** THIS SUBROUTINE CO-ORDINATES ****** 4 3BXG [ 18 3CC6 SBX 7 FX1 [ PREPARE TO CO-ORDINATE 17 3CWQ CHNUMCOD [ CONVERT PARAMETER 8 3DBB ADX 7 FX1 17 3DW2 MFREE CPB,CUNI [ FREE CPB/CUNI BLOCK 18 3F*L TESTREP2 CHNUMERR,(7) [ TEST FOR ERROR REPLY 18 3FT= LDX 6 ACOMMUNE1(2) [ SUCCESS - GET RESULT 15 3G#W EXIT 7 1 [ AND EXIT OK 4 3GSG [ 5 3H#6 #PAGE 4 3HRQ [ 6 3J?B ZDPFINTIME 4 3JR2 [ 18 3K=L [ THIS SUBROUTINE ACCESSES THE NEXT COMMAND PARAMETER AND 18 3KQ= [ IF ONE IS FOUND CONVERTS IT TO A FINISH TIME STORED IN X6 18 3L9W [ AND AWORK2. IF PARAMETER IS NULL OR MISSING X6 AND AWORK2 9 3LPG [ WILL BE SET NEGATIVE 12 3M96 [ EXIT 0 IF PARAMETER FORMAT ERROR 7 3MNQ [ EXIT 1 IF OK 11 3N8B [ X7 USED AS LINK ACCUMULATOR 9 3NN2 [ CHANGES - X0 DESTROYED 8 3P7L [ X1 = FX1 8 3PM= [ X2 = FX2 16 3Q6W [ X6 = AWORK2 = FINISH TIME OR NEGATIVE 4 3QLG [ 18 3R66 [ ****** THIS SUBROUTINE CO-ORDINATES ****** 4 3RKQ [ 18 3S5B SBX 7 FX1 [ PREPARE TO CO-ORDINATE 8 3SK2 SMO FX2 18 3T4L STO 7 AWORK2 [ PRESERVE RETURN ADDRESS 17 3TJ= CALL 7 ZDPSPARAM [ GET NEXT PARAMETER 16 3W3W BRN PINF [ ABSENT - BRANCH 14 3WHG CALL 7 ZDPNUMCON [ CONVERT 18 3X36 BRN PERR [ FORMAT ERROR - BRANCH 18 3XGQ MPY 6 TIME(1) [ CONVERT FROM MINUTES 16 3Y2B ADX 7 CLEANCT [ PLUS 'TIME NOW' 16 3YG2 LDX 6 7 [ TRANSFER RESULT 18 3Y_L POUT LDX 7 AWORK2(2) [ RECOVER RETURN ADDRESS 16 3_F= STO 6 AWORK2(2) [ STORE RESULT 8 3_YW ADX 7 FX1 14 42DG EXIT 7 1 [ EXIT OK 16 42Y6 PINF NGS 1 6 [ SET X6 NEGATIVE 8 43CQ BRN POUT 18 43XB PERR LDX 7 AWORK2(2) [ RECOVER RETURN ADDRESS 8 44C2 ADX 7 FX1 14 44WL EXIT 7 0 [ EXIT 0 10 45B= TIME 60*1000/K9 4 45TW [ 4 46*G [ 5 46T6 #PAGE 4 47#Q [ 6 47SB ZDPCHECTIM 4 48#2 [ 18 48RL [ THIS SUBROUTINE COMPARES A FINISH TIME IN AWORK2 WITH TIME 18 49?= [ NOW AND EXITS 0 IF TIME HAS EXPIRED (NO CHECK IF AWORK2 18 49QW [ IS -VE) ELSE EXIT 1. IF TIME NOW IS MORE THAN 20 HOURS 18 4==G [ LESS THAN AWORK2 'OVER MIDNIGHT' IS ASSUMED AND 24 HOURS 10 4=Q6 [ IS SUBTRACTED FROM AWORK2. 18 4?9Q [ BREAKIN IS TESTED FOR AND IF FOUND IS TREATED AS 'TIME UP' 17 4?PB [ BITS 1-23 OF ADPSUICIDE ZERO ALSO TREATED AS 'TIME UP' 8 4#92 [ EXIT 0 IF TIME UP 9 4#NL [ EXIT 1 IF TIME NOT UP 11 4*8= [ X7 USED AS LINK ACCUMULATOR 9 4*MW [ CHANGES - X0 DESTROYED 8 4B7G [ X1 = FX1 8 4BM6 [ X2 = FX2 4 4C6Q [ 8 4CLB LDX 1 FX1 8 4D62 LDX 2 FX2 16 4DKL LDXC 0 AWORK2(2) [ GET FINISH TIME 16 4F5= BCS ZNUP [ -VE - BRANCH 17 4FJW SBX 0 CLEANCT [ SUBTRACT TIME NOW 17 4G4G BNG 0 (7) [ TIME UP - EXIT 0 16 4GJ6 TXL 0 T20HRS(1) [ HUGE REMAINDER? 15 4H3Q BCS ZNUP [ NO - BRANCH 19 4HHB LDX 0 T24HRS(1) [ GET VALUE OF 24 HRS. AND 19 4J32 SBS 0 AWORK2(2) [ SUBTRACT FROM FINISH TIME 18 4JGL ZNUP TESTBRKIN (7) [ BREAKIN ALSO = TIME UP 16 4K2= LDXC 0 ADPSUICIDE [ CRASH CLOSE? 16 4KFW BZE 0 (7) [ YES - EXIT 0 14 4K_G EXIT 7 1 [ EXIT 1 11 4LF6 T20HRS 1000/K9*20*60*60 11 4LYQ T24HRS 1000/K9*24*60*60 4 4MDB [ 4 4MY2 [ 5 4NCL #PAGE 4 4NX= [ 6 4PBW ZDPOPENFILE 4 4PWG [ 18 4QB6 [ THIS SUBROUTINE ACCESSES THE NEXT COMMAND PARAMETER AND 17 4QTQ [ IF ONE IS FOUND WILL ATTEMPT TO OPEN A FILE (BASIC) IN 18 4R*B [ THAT NAME, EXIT 2 WITH FILE OPEN AND AWORK1 SET ZERO IF 18 4RT2 [ SUCCESSFUL. IF PARAMETER IS NULL OR MISSING NO OPEN WILL 16 4S#L [ BE ATTEMPTED, WILL EXIT 2 WITH AWORK1 SET NON-ZERO 10 4SS= [ EXIT 0 IF BREAKIN OCCURS 9 4T?W [ EXIT 1 IF OTHER ERROR 7 4TRG [ EXIT 2 IF OK 11 4W?6 [ X7 USED AS LINK ACCUMULATOR 9 4WQQ [ CHANGES - X0 DESTROYED 8 4X=B [ X1 = FX1 8 4XQ2 [ X2 = FX2 9 4Y9L [ X3 DESTROYED 4 4YP= [ 18 4_8W [ ****** THIS SUBROUTINE CO-ORDINATES ****** 4 4_NG [ 18 5286 SBX 7 FX1 [ PREPARE TO CO-ORDINATE 8 52MQ SMO FX2 18 537B STO 7 AWORK1 [ PRESERVE RETURN ADDRESS 17 53M2 CALL 7 ZDPSPARAM [ GET NEXT PARAMETER 16 546L BRN NERR [ ABSENT - ERROR 16 54L= MHUNT 1,CPB,CUNI [ FIND CPB/CUNI 17 555W NAMETOP 1,FILE,FNAME [ RENAME FOR FNORM 16 55KG FNORM 1 [ NORMALISE NAME 15 5656 TESTREP2 NAMEFORM,NERR [ CHECK REPLY 18 56JQ MHUNT 1,FILE,FNAME [ FIND FILE/FNAME BLOCK 14 574B NAMETOP 1,CPB,CUNI [ RENAME 16 57J2 LDCT 7 #400 [ SET X7 NEGATIVE 19 583L TESTREPN ADJUNCTS,PFA [ BRANCH IF REPLY NOT ADJ. 19 58H= HUNTW 2,FILE,ADJUNCTS [ FIND FILE/ADJUNCTS BLOCK 15 592W LDX 7 A1+1(2) [ RESET X7 19 59GG PFA CALL 3 ZDPCREATE [ SET UP FILE CREATE/BLOCK 15 5=26 LDX 1 7 [ TRANSFER X7 12 5=FQ SETMODE 7,COMMUNE,NOWAIT,REPLY 18 5=_B ANDX 7 1 [ ADD ANY MISSING MODES 18 5?F2 BNG 1 PFA1 [ BRANCH IF X1 STILL -VE 18 5?YL MHUNTW 1,FILE,ADJUNCTS [ RELOCATE FILE ADJUNCTS 9 5#D= LDX 0 A1+2(1) 8 5#XW BZE 0 PFA1 17 5*CG STO 0 CETM(2) [ STORE ORIGINAL TYPE 8 5*X6 PFA1 LDX 0 GSIGN 9 5BBQ ORS 0 CEINF1(2) 12 5BWB ADDMODE 7,APPEND,EMPTY,CREATE 15 5CB2 USEROPEX PBRK,7 [ OPEN IT! 18 5CTL REPERR PFA2 [ BRANCH IF SUCCESSFUL 18 5D*= NERR LDX 7 AWORK1(2) [ RECOVER RETURN ADDRESS 17 5DSW NGS 1 AWORK1(2) [ SET AWORK1 NEGATIVE 8 5F#G ADX 7 FX1 14 5FS6 EXIT 7 1 [ EXIT 1 18 5G?Q PFA2 LDX 7 AWORK1(2) [ RECOVER RETURN ADDRESS 16 5GRB STOZ AWORK1(2) [ ZEROISE AWORK1 8 5H?2 PFA3 ADX 7 FX1 14 5HQL EXIT 7 2 [ EXIT OK 8 5J== PBRK SMO FX2 18 5JPW LDX 7 AWORK1 [ RECOVER RETURN ADDRESS 8 5K9G ADX 7 FX1 14 5KP6 EXIT 7 0 [ EXIT 0 4 5L8Q [ 18 5LNB [ THIS SUBROUTINE SETS UP A FILE/CREATE BLOCK WITH TYPE SET 6 5M82 [ TO BASIC 7 5MML [ EXIT 0 ALWAYS 11 5N7= [ X3 USED AS LINK ACCUMULATOR 9 5NLW [ CHANGES - X0 DESTROYED 8 5P6G [ X1 = FX1 12 5PL6 [ X2 = POINTER TO BLOCK 4 5Q5Q [ 18 5QKB [ ****** THIS SUBROUTINE CO-ORDINATES ****** 4 5R52 [ 6 5RJL ZDPCREATE 4 5S4= [ 18 5SHW SBX 3 FX1 [ PREPARE TO CO-ORDINATE 19 5T3G CREATEB 2 [ SET UP FILE/CREATE BLOCK 16 5TH6 LDX 0 TYPE(1) [ GET TYPE BASIC 17 5W2Q STO 0 CETM(2) [ AND STORE IN BLOCK 8 5WGB ADX 3 FX1 7 5X22 EXIT 3 0 9 5XFL TYPE #40000012 4 5X_= [ 5 5YDW #PAGE 4 5YYG [ 5 5_D6 ZDPSTEP 4 5_XQ [ 16 62CB [ THIS SUBROUTINE PREPARES A BUFFER FOR THE TOP FILE 18 62X2 [ OPEN OR IF AWORK1 IS NON-ZERO WILL DISPATCH A GMON/JRNAL 18 63BL [ BLOCK IF ONE IS FOUND AFTER CPAT - IF AWORK1 IS POSITIVE 19 63W= [ A NEW G/J BLK. WILL BE SET UP WITH AWORK1 AS IT'S MESSAGE NO. 17 64*W [ X4 SPECIFIES THE REQUIRED BUFFER SIZE IN BOTH CASES 18 64TG [ EXIT 0 IF SERIOUS ERROR - TOP FILE WILL HAVE BEEN CLOSED 13 65*6 [ IF ONE OPEN AND AWORK1 SET NEGATIVE 14 65SQ [ EXIT 1 IF OK - X3 POINTS TO HEAD OF BUFFER 11 66#B [ X7 USED AS LINK ACCUMULATOR 9 66S2 [ CHANGES - X0 DESTROYED 8 67?L [ X1 = FX1 8 67R= [ X2 = FX2 13 68=W [ X3 POINTS TO BUFFER IF OK 9 68QG [ X6 DESTROYED 18 69=6 [ THE TOP FILE MAY HAVE BEEN CLOSED AND A NEW FILE 19 69PQ [ ONE GENERATION NO. HIGHER OPENED IF FILE IS FOUND 9 6=9B [ TO BE FULL 4 6=P2 [ 19 6?8L [ ****** THIS SUBROUTINE MAY CO-ORDINATE ****** 4 6?N= [ 8 6#7W LDX 2 FX2 18 6#MG SBX 7 FX1 [ PREPARE TO CO-ORDINATE 17 6*76 LDX 0 AWORK1(2) [ IS SJ BEING USED? 15 6*LQ BNZ 0 ZBRK2 [ YES - ERROR 19 6B6B ADN 4 2 [ ALLOW SPACE FOR RED-TAPE 18 6BL2 TESTREP2 FNEARLY,ZFULL [ FNEARLY ALREADY SET? 18 6C5L ZSTEP LDX 1 4 [ SET X1 TO BUFFER SIZE 16 6CK= STEP ,0(1),ZBRK1 [ SET UP BUFFER 16 6D4W TESTREP2 OK,ZGOOD,COORED,ZGOOD,FNEARLY,ZGOOD 16 6DJG ZFULL CLOSE [ CLOSE TOP FILE 19 6F46 CALL 3 ZDPCREATE [ SET UP FILE/CREATE BLOCK 17 6FHQ MHUNT 3,FILE,FABSNB [ FIND FILE/FABSNB 7 6G3B LDN 0 1 17 6GH2 ADX 3 HDREC(3) [ GET RECORD HEADER 18 6H2L SBN 3 2 [ LOCATE GENERATION NO. 17 6HG= ADS 0 HDREC(3) [ INCREMENT GEN. NO. 17 6H_W OPEN ZBRK,APPEND,EMPTY,CREATE,NOWAIT,REPLY,COMMUNE 17 6JFG TESTREP2 OK,ZSTEP [ BRANCH IF OPEN OK 17 6J_6 BRN ZBRK [ OPEN FAIL - BRANCH 16 6KDQ ZGOOD STO 4 FRH(3) [ RED-TAPE WORD 1 8 6KYB LDN 0 #41 16 6LD2 STO 0 FRH+1(3) [ RED-TAPE WORD 2 17 6LXL ADN 3 2+FRH [ ALLOW FOR RED-TAPE 18 6MC= SBN 4 2 [ RESET X4 TO ENTRY VALUE 8 6MWW ZOK9 ADX 7 FX1 14 6NBG EXIT 7 1 [ EXIT OK 16 6NW6 ZBRK1 CLOSE [ CLOSE TOP FILE 18 6P*Q ZBRK SBN 4 2 [ RESET X4 TO ENTRY VALUE 8 6PTB ZBRK2 ADX 7 FX1 17 6Q*2 NGS 2 AWORK1(2) [ NO FILE OPEN MARKER 14 6QSL EXIT 7 0 [ EXIT 0 5 6R#= #PAGE 4 6RRW [ 4 6S?G [ 6 6SR6 ZDPSCANCH 4 6T=Q [ 19 6TQB [ THIS SUBROUTINE FINDS THE NUMBER OF BLOCKS OF TYPE SPECIFIED 19 6W=2 [ IN LOCATION FOLLOWING CALL ON CHAIN - BASE ADDRESS IN X1 - 17 6WPL [ CHAIN MUST END IN FIXED - BLOCK TOTAL IN X6 ON EXIT 7 6X9= [ EXIT 1 ALWAYS 11 6XNW [ X2 USED AS LINK ACCUMULATOR 9 6Y8G [ CHANGES - X0 DESTROYED 9 6YN6 [ X1 DESTROYED 12 6_7Q [ X6 CONTAINS BLOCK COUNT 4 6_MB [ 16 7272 LDN 6 0 [ INITIALISE X6 16 72LL WLOP3 LDX 1 FPTR(1) [ FIND NEXT BLOCK 16 736= TXL 1 ENDFIX [ END OF CHAIN? 16 73KW BCS WEND3 [ YES - BRANCH 9 745G LDX 0 ATYPE(1) 8 74K6 SRL 0 12 14 754Q TXU 0 0(2) [ MATCH? 15 75JB BCS WLOP3 [ NO - BRANCH 18 7642 ADN 6 1 [ YES - INCREMENT COUNT 17 76HL BRN WLOP3 [ AND RETURN TO LOOP 14 773= WEND3 EXIT 2 1 [ EXIT 1 4 77GW [ 4 782G [ 5 78G6 #PAGE 4 78_Q [ 6 79FB ZDPSNAPSHOT 18 79_2 [THIS S/R COLLECTS 'GFRH' WORDS OF DATA FROM FIXED CORE AND 17 7=DL [VARIOUS CHAINS AND STORES THEM IN THE CURRENT BUFFER 19 7=Y= [INDICATED BY X3. ON EXIT X1=FX1 , X2=FX2, X4 AND X5 DESTROYED 13 7?CW [EXIT 0 IF 'LIMIT OF ONLINE B/S' REACHED 8 7?XG LDN 0 FDATE 8 7#C6 LDN 1 RD(3) 13 7#WQ MOVE 0 2 [DATE 9 7*BB LDX 0 CLEANCT 13 7*W2 STO 0 RT(3) [TIME 9 7B*L SBX 0 CJTIME 18 7BT= STO 0 RCU(3) [CORE UNJAMMER ENTERED 9 7C#W LDX 0 ACTPROGS 15 7CSG STO 0 RCI(3) [CORE IMAGES 7 7LM= COBJUSE 15 7M6W STO 0 ROC(3) [OBJECT CORE 8 7MLG LDX 0 ACHAP 16 7N66 STO 0 RGC(3) [GEORGE CHAPTERS 6 7N7Y ...#UNS ISTDP 17 7N9Q ... COBJUNUSE [ ^FREE^ OBJECT CORE 6 7N?J ...#UNS ISTDP 4 7N*B ...#SKI 4 7NC8 ...( 5 7NF2 ...#SKI G4 4 7NGS ...( 17 7NJL ... LDX 0 COBJFREE [ ^FREE^ OBJECT CORE 8 7NLD ... SLL 0 10 4 7NN= ...) 5 7NQ4 ...#SKI G3 8 7NRW ... LDX 0 CFREE 4 7NTN ...) 5 7NXG ...#SKI G3 6 7N_# ...#UNS ISTDP 8 7P36 ... ADX 0 CFREE 16 7P5B ADX 0 FREZFREE ['FROZEN'FREECORE 14 7PK2 STO 0 RF(3) [FREECORE 9 7Q4L LDN 0 GEOTIME 15 7QJ= LDN 1 RGM(3) [GEORGE MILL 7 7R3W MOVE 0 2 9 7RHG LDN 0 GPROGTIME 15 7S36 LDN 1 ROM(3) [OBJECT MILL 7 7SGQ MOVE 0 2 8 7T2B LDN 0 BSFSR 16 7TG2 LDN 1 RBR(3) [FILESTORE READS 7 7T_L MOVE 0 2 8 7WF= LDN 0 BSFSW 16 7WYW LDN 1 RBW(3) [FILESTORE WRITES 7 7XDG MOVE 0 2 8 7XY6 LDN 0 BSAPS 15 7YCQ LDN 1 RST(3) [SWAP TRANS. 7 7YXB MOVE 0 2 9 7_C2 LDN 0 BSCHCH 16 7_WL LDN 1 RCT(3) [CHAPTER TRANS. 7 82B= MOVE 0 2 10 82TW LDN 0 FCCHAPFREE 16 83*G LDN 1 RCF(3) [CHAPTERS FREED 7 83T6 MOVE 0 2 9 84#Q LDX 0 CHCHCOUNT 18 84SB STO 0 RCC(3) [NO. OF CHAPTER CHANGES 9 85#2 HUNTMISB 2,JWELL 17 85RL LDEX 0 JOBENTS+JOBCTS(2) [ GET BKGND JOB COUNT 15 86?= STO 0 RBJ(3) [ AND STORE 17 86QW LDEX 0 JOBENTS+JOBCTS+JWENTRY(2) [MOP JOB COUNT 15 87=G STO 0 RMJ(3) [ AND STORE 15 87Q6 LDN 1 BCHAP [CHAIN BASE 19 889Q ... CALL 2 ZDPSCANCH [CALC. NO. OF BLOCKS ON CHAIN 17 88PB +BSTB+CHAPTER [OF TYPE 'CHAPTER' 9 8992 STO 6 RCH(3) 9 89NL LDX 0 FCCHAPMID 13 8=8= [CHAPTERS FREED 'IN-FLIGHT' BY GETCORE 9 8=MW STO 0 RFM(3) 6 8?7G #OPT IFS=0 5 8?M6 #SKI IFS 4 8#6Q #SKI 4 8#LB ( 10 8*62 [USAGE BLOCKS ON FILE CHAIN 17 8*KL LDN 1 BFILE [BASE OF FILE CHAIN 17 8B5= CALL 2 ZDPSCANCH [CALC. NO. OF BLOCKS 10 8BJW +FILE+FURB 9 8C4G STO 6 RFC(3) 8 8CJ6 LDN 1 BFILE 9 8D3Q CALL 2 ZDPSCANCH 10 8DHB +FILE+FUWB 9 8F32 ADS 6 RFC(3) 4 8FGL ) 5 8G2= #SKI IFS 4 8GFW ( 19 8G_G BASEFCB OPEN,2 [ FIND 'BASE OF FCB CHAIN' 17 8HF6 LDN 6 0 [ INITIALISE COUNT 16 8HYQ NFCB NEXTFCB OPEN,2,NLEFT [ FIND NEXT FCB 17 8JDB NBLK LDX 2 FPTR(2) [ NEXT BLOCK ON RING 15 8JY2 LDX 0 ATYPE(2) [ GET TYPE 16 8KCL BXE 0 FILEPLUSFCB,NFCB [ END OF RING? 14 8KX= TXU 0 FFSFURB [ FURB? 16 8LBW BCC YBLK [ YES - BRANCH 14 8LWG TXU 0 FFSFUWB [ FUWB? 18 8MB6 BCS NBLK [ NO - RETURN FOR NEXT 18 8MTQ YBLK ADN 6 1 [ INCREMENT BLOCK COUNT 17 8N*B BRN NBLK [ AND RETURN FOR NEXT 17 8NT2 NLEFT STO 6 RFC(3) [ STORE FILE COUNT 4 8P#L ) 19 8PS= LDX 6 HALFFCB [ COUNT OF HALF-OPEN FCB'S 9 8Q?W STO 6 RHO(3) 9 8Q#P ... IF ENV, MEEP 6 8Q*J ... THEN 17 8QBC ... LDX 0 3 [- COLLECT VME/B DATA 17 8QC= ... ADN 0 RID [- X3 -> DATA AREA 15 8QD5 ... ADX 0 GEODATUM [- & DATUMISE 19 8QDY ... LDX 2 K31+63 [- X2 -> CONSOLE T/W IN BDT 20 8QFR ... LDX 2 0(2) [- X2 -> CONSOLE T/W DEVICE LIST 9 8QGL ... LDX 1 FX1 20 8QHF ... ADN 1 XECMODE [- ADDRESS OF EXEC MODE ROUTINE 15 8QJ# ... ADX 1 GEODATUM [- ABSOLUTE 21 8QK7 ... STO 1 K55+2(2) [- STORE THIS ADDRESS IN DEVICE LIST 21 8QL2 ... ALLOT 0 2 [- OBEY ROUTINE IN EXEC MODE. ALLOT = 6 8QLT ... ELSE 11 8QMN ... LDN 0 EXECIDLE 16 8QNH ... LDN 1 RID(3) [- EXEC IDLE MILL 9 8QPB ... MOVE 0 2 5 8QQ9 ... FI 8 8QRG LDX 1 FX1 8 8R?6 LDX 2 FX2 7 8RQQ EXIT 7 0 4 8RS# ...[ 14 8RTW ...[- ROUTINE TO ISSUE 170 X 600 IN EXEC MODE 4 8RXD ...[ 5 8R_2 ...XECMODE 8 8S2J ... '170 0 600 7 8S46 ... MODE 0 4 8S5N ...#ORD 8 8S7= ... BRN #20 4 8S8S ...#EXT 4 8S=B [ 5 8SQ2 #PAGE 4 8T9L [ 7 8TBS ...#UNS ADPIPSET 4 8TJ2 ...( 5 8TP= ZDPIPSET 4 8W8W [ 12 8WNG [ THIS SUBROUTINE CHANGES IP VALUES 4 8X86 [ 7 8XMQ LDX 4 7 8 8Y7B SBX 4 FX1 15 8YM2 NEW1 CALL 7 ZDPSPARAM [ GET IP NAME 17 8_6L BRN ZEND1 [ ABSENT - EXIT OK 9 8_L= SETMODE 3,CLEAN 11 925W SETNCORE 10,2,FILE,FABSNB 10 92KG LDN 0 ZFABSNB(1) 8 9356 LDN 1 A1(2) 8 93JQ MOVE 0 10 16 944B OPEND ZEND4,3 [ OPEN PARAMINDEX 9 94J2 MFREE FILE,FABSNB 17 953L CALL 7 ZDPSPARAM [ GET NEW IP VALUE 16 95H= BRN ZEND2 [ ABSENT - EXIT 1 14 962W CALL 7 ZDPNUMCON [ CONVERT 16 96GG BRN ZEND2 [ ERROR - EXIT 1 6 9726 STEP 16 97FQ MHUNT 1,CPB,CUNI [ LOCATE IP NAME 17 97_B STO 6 ACOMMUNE1(2) [ PRESERVE IP VALUE 16 98F2 LDEX 6 FRH(3) [ RECORD HEADER 7 98YL LDN 5 0 9 99D= LDN 7 IPLINE 17 99XW DVR 5 7 [ LOOP COUNT IN X6 15 9=CG STO 6 ACOMMUNE2(2) [ PRESERVE 16 9=X6 LDX 6 ACES [ SPACE FILL X6 14 9?BQ LDX 7 ACES [ AND X7 10 9?WB LDX 2 ALOGLEN(1) 18 9#B2 SBN 2 APARA+4-JPARNUM [ X2 = NO. OF WORDS - 4 17 9#TL BPZ 2 ZEND2 [ BRANCH IF TOO MANY 16 9**= LDN 0 APARA(1) [ TAKE ADDRESS 15 9*SW LDN 1 5 [ PUT ADDRESS 16 9B#G MOVE 0 4(2) [ TRANSFER NAME 8 9BS6 SMO FX2 17 9C?Q LDX 2 ACOMMUNE2 [ RECOVER LOOP COUNT 17 9CRB NEXT1 TXU 5 IPNAME-A1(3) [ COMPARE WORD ONE 16 9D?2 TXU 6 IPNAME+1-A1(3) [ WORD TWO AND 15 9DQL TXU 7 IPNAME+2-A1(3) [ WORD THREE 18 9F== BCC MATCH [ BRANCH IF THEY MATCH 17 9FPW ADN 3 IPLINE [ INCREMENT ADDRESS 16 9G9G BCT 2 NEXT1 [ AND TRY AGAIN 7 9GP6 ZEND2 STOZ 5 8 9H8Q MATCH SMO FX2 18 9HNB LDX 3 ACOMMUNE1 [ RECOVER NEW IP VALUE 16 9J82 MFREE CPB,CUNI [ FREE CPB-CUNI 17 9JML CLOSETOP [ CLOSE PARAMINDEX 8 9K7= BPZ 5 ZEND3 16 9KLW LDN 1 5 [ POINTER TO NAME 15 9L6G INSTPARA ZEND4,1,3,ZEND3 [ CHANGE IP! 17 9LL6 BRN NEW1 [ AND RETURN FOR NEXT 14 9M5Q ZEND1 ADN 4 1 [ EXIT 2 17 9MKB ZEND3 ADN 4 1 [ VALUE OUT OF RANGE 16 9N52 ZEND4 ADX 4 FX1 [ BREAKIN EXIT 7 9NJL LDX 7 4 7 9P4= EXIT 7 0 4 9PHW [ 5 9Q3G #PAGE 4 9Q3Y ...) 4 9Q4B ...[ 9 9Q4S ... SEGENTRY ZDPLOGPD 4 9Q5= ...[ 21 9Q5N ...[- EFFECTIVELY, THIS SUBROUTINE CALLS THE BMEEP PROCEDURE B3-PERFORMANCE 21 9Q66 ...[- BY ISSUING A '170 X 601 ORDER. THE BMEEP ROUTINE LOGS DATA ON TRANSFE 20 9Q6J ...[- THE JOURNAL AND CALLS THE VME/B PROCEDURE LOG-PERFORMANCE-DATA 11 9Q72 ...[- X7 USED AS LINK ACCUMULATOR 8 9Q7D ...[- ON EXIT X1 = FX1 8 9Q7W ...[- X2 = FX2 10 9Q8# ...[- OTHERS : UNCHANGED 4 9Q8Q ...[ 8 9Q98 ... IF ENV,MEEP 6 9Q9L ... THEN 17 9Q=4 ... LDX 2 K31+63 [- CONSOLE T/W IN BDT 18 9Q=G ... LDX 2 0(2) [- X2 -> T/W DEVICE LIST 9 9Q=Y ... LDX 1 FX1 17 9Q?B ... ADN 1 XEC [- EXEC MODE ROUTINE 17 9Q?S ... ADX 1 GEODATUM [- ABSOLUTE ADDRESS 18 9Q#= ... STO 1 K55+2(2) [- STORE IN DEVICE LIST 21 9Q#N ... ALLOT 0 2 [- CALL ROUTINE IN EXEC MODE ('156) 5 9Q*6 ... FI 4 9Q*J ...[ 8 9QB2 ... LDX 1 FX1 8 9QBD ... LDX 2 FX2 7 9QBW ... EXIT 7 0 4 9QC# ...[ 8 9QCQ ...XEC '170 0 601 7 9QD8 ... MODE 0 4 9QDL ...#ORD 8 9QF4 ... BRN #20 4 9QFG ...#EXT 4 9QFY ...[ 5 9QGB ...#PAGE 11 9QH6 [ **************** 10 9R2Q [ ERROR LABELS 9 9RGB [ AND 11 9S22 [ STANDARD EXITS 11 9SFL [ **************** 15 9S_= ZERRORY [COMPILE S/R 5 9TDW TIDYFILE 8 9TYG LDX 2 FX2 9 9WD6 LDX 0 AWORK1(2) 18 9WXQ BNZ 0 (5) [ NO FILE TO CLOSE - EXIT 8 9XCB SBX 5 FX1 6 9XX2 CLOSE 8 9YBL ADX 5 FX1 7 9YW= EXIT 5 0 6 9_*W ZDPJPARMIS 9 9_TG CALL 5 TIDYFILE 17 =2*6 ZERRORX JPARMIS [PARAMETER MISSING 5 =2SQ ZDPJOURA 9 =3#B CALL 5 TIDYFILE 18 =3S2 ZERRORX JOURA [PARAMETER OUT OF RANGE 6 =4?L ZDPAPFERR 9 =4R= CALL 5 TIDYFILE 18 =5=W ZERRORX APFERR [PARAMETER FORMAT ERROR 6 =5D4 ...ZDPENDCOM1 9 =5K= ... CALL 7 ZDPLOGPD 6 =5QG ZDPENDCOM 9 =6=6 CALL 5 TIDYFILE 6 =6PQ ENDCOM 6 =79B ZDPCOMBRKIN 9 =7P2 CALL 5 TIDYFILE 7 =88L COMBRKIN 11 =8N= [ **************** 4 =97W [ 10 =9MG [ ENTRY POINT 4 ==76 [ 11 ==LQ [ **************** 4 =?6B ZK1 18 =?L2 [ENTRY FROM ZP COMMAND. WE EXTRACT MODULE NUMBER AND LEAP 8 =#5L [INTO BRANCH TABLE 17 =#K= CALL 7 ZDPSPARAM [PICK UP PARAMETER 14 =*4W BRN ZDPJPARMIS [ERROR 18 =*JG CALL 7 ZDPNUMCON [CONVERT MODULE NUMBER 14 =B46 BRN ZDPAPFERR [ERROR 19 =BHQ ORS 1 ADPSUICIDE [ UNSET POSSIBLE CRASH CLOSE 9 =C3B NGS 1 AWORK1(2) 7 =CH2 SBN 6 2 8 =D2L BNZ 6 ZZ2 10 =DG= CALL 7 ZDPOPENFILE 10 =D_W BRN ZDPCOMBRKIN 9 =FFG BRN ZDPAPFERR 16 =F_6 CALL 7 ZDPFINTIME [ GET FINISH TIME 9 =GDQ BRN ZDPENDCOM 7 =GKY ...#UNS ADPIPSET 4 =GR6 ...( 15 =GYB CALL 7 ZDPIPSET [ CHANGE IP'S 10 =HD2 BRN ZDPCOMBRKIN 9 =HXL BRN ZDPJOURA 4 =J7D ...) 19 =JC= LDEX 0 ADPJOBCT [ GET NO. OF WAITING ZP 9'S 17 =JWW STO 0 AWORK4(2) [ AND STORE IN AWORK4 19 =KBG STO 0 ADPJOBCT [ UNSET POSSIBLE CRASH CLOSE 16 =KW6 ... BZE 0 SLOPA [ BRANCH IF NONE 7 =L*Q LDN 0 9 17 =LTB LONGON1 APERFSTYLE,0 [ WAKE UP 'ZP 9' JOBS 9 =M58 ...SLOPA CALL 7 ZDPLOGPD 16 =M*2 ...SLOOP LDN 4 RFRH [ RECORD LENGTH 16 =MSL CALL 7 ZDPSTEP [ SET UP BUFFER 14 =N#= BRN ZDPENDCOM [ ERROR 18 =NRW CALL 7 ZDPSNAPSHOT [ COLLECT SNAPSHOT DATA 16 =P?G CALL 7 ZDPCHECTIM [ TIME EXPIRED? 16 =PR6 ... BRN ZDPENDCOM1 [ YES - ENDCOM 18 =Q=Q LDX 0 ADPJOBCT [ GET NO. OF JOBS WAITING 16 =QQB BZE 0 NOJBS [ ZERO - IGNORE 20 =R=2 TXL 0 AWORK4(2) [ CRASH CLOSE OR JOBS FINISHED? 16 =RPL BCC ZDPENDCOM [ YES - ENDCOM 16 =S9= NOJBS COOR4 ADPSTYLE [ WAIT 4 SECS. 17 =SNW BRN SLOOP [ AND RETURN TO LOOP 7 =T8G ...ZZ2 SBN 6 6 8 =TN6 BNZ 6 ZZ8 9 =W7Q CALL 7 ZDPSPARAM 10 =WMB BRN ZDPJPARMIS 9 =X72 CALL 7 ZDPNUMCON 9 =XLL BRN ZDPENDCOM 7 =Y6= SBN 6 2 9 =YKW BNZ 6 ZDPJOURA 8 =_5G LDCT 0 #400 9 =_K6 ORS 0 ADPJOBCT 9 ?24Q BRN ZDPENDCOM 7 ?2JB ZZ8 SBN 6 1 8 ?342 BNZ 6 ZZ9 16 ?3HL LDN 5 1 [ SET X5 = 1 AND 17 ?43= ADS 5 ADPJOBCT [ INCREMENT JOB COUNT 9 ?4GW LDX 0 BITS22LS 18 ?52G ANDS 0 ADPSUICIDE [ UNSET POSSIBLE SUICIDE 7 ?5=# ... LDN 7 9 7 ?5G6 ... LONGOFF 11 ?5PY ... LONGSET APERFSTYLE,ZWT,7 11 ?5_Q ... LONGSTOP ZWT,,AWAIT,ZWT1 19 ?69J ...ZWT SBS 5 ADPJOBCT [ DECREMENT JOB WAIT COUNT 15 ?6FB ... LDXC 0 ADPSUICIDE [ SUICIDE? 15 ?6_2 ... BCC ZDPENDCOM [ NO - ENDCOM 15 ?7DL SETNCORE 10,3,ADATA,CREADL [ YES - EJ 8 ?7Y= LDN 0 #4 8 ?8CW STO 0 A1(3) 9 ?8XG LDX 0 WEND(1) 9 ?9C6 STO 0 A1+2(3) 9 ?9WQ ISSUCOMB ZEND,ZEND 9 ?=BB ZEND BRN ZDPENDCOM 9 ?=W2 WEND #45522020 8 ??*L ZZ9 SBN 6 15 8 ??T= BNZ 6 ZZ24 8 ?##W LDCT 0 #400 10 ?#SG ANDS 0 ADPSUICIDE 9 ?*#6 BRN ZDPENDCOM 7 ?*RQ ZZ24 SBN 6 1 8 ?B?B ... BNZ 6 ZZ31 8 ?BR2 LDCT 0 #400 10 ?C=L ORS 0 ADPSUICIDE 7 ?CCS ... LDN 0 9 10 ?CK2 ... LONGON1 APERFSTYLE,0 9 ?CQ= BRN ZDPENDCOM 7 ?CST ...ZZ31 SBN 6 6 9 ?CXD ... BNZ 6 ZDPJOURA 19 ?D23 ... OUTNUM AFREE,7 [- O/P'S AFREE AS A 7 DIGIT 19 ?D4L ... MONOUT ADPCOMMENT [- NO. IN COMMENT CATEGORY 9 ?D79 ... BRN ZDPENDCOM 4 ?D9W ...#END 6 ____ ...507014220002