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