TITLE KLBPA %1(1) KL-10 BACKGROUND PERFORMANCE ANALYSIS CONTROLLER COMMENT \ Copyright (C) 1979 Digital Equipment Corporation, Maynard, Massachusetts, U.S.A. This software is furnished under a license and may be used and copyed only in accordance with the terms of such license and with the inclusion of the above copyright notice. This software or any other copies thereof may not be provided or otherwise made available to any other person. No title to and ownership of the software is hereby transferred. The information in this software is subject to change without notice and should not be construed as a commitment by Digital Equipment Corporation. Digital assumes no responsibility for the use or reliability of its software on equipment which is not supplied by Digital. \ ;ASSEMBLY INSTRUCTIONS: ; ; .LOAD KLBPA ; .NSSAVE ; ;ASSUMES MACTEN.UNV, JOBDAT.UNV, UUOSYM.UNV, AND SCNMAC.UNV ON UNV: ; SCAN.REL, HELPER.REL, AND WILD.REL ON REL: SEARCH MACTEN,JOBDAT,UUOSYM,SCNMAC %%JOBD==%%JOBD ;SHOW VERSION %%SCNM==%%SCNM ; .. .REQUE REL:SCAN .REQUE REL:WILD .REQUE REL:HELPER SALL ;VERSION INFORMATION CSTVER==0 ;CUSTOMER VERSION MAJVER==1 ;DEC VERSION MINVER==0 ;DEC MINOR VERSION EDTVER==1 ;DEC EDIT VERSION LOC <.JBVER=:137> EXP TWOSEG 600000 ;START FOR "PURE" SEGMENT RELOC 600000 ;GET THERE RELOC 0 ;AND INTO "IMPURE" SEGMENT ;REVISION HISTORY ;1 RDH 3-FEB-79 ; FIRST CREATED 3-FEB-79 SUBTTL REGISTER DEFINITIONS T1=1 ;THE USUAL TEMPS T2=2 T3=3 T4=4 P1=5 ;THE USUAL "PRESERVED"S P2=6 P3=7 P4=10 P=17 ;AND THE STACK POINTERS ;DEFINE OUR STACK ND PDLEN,^D20 ;WE'RE A SMALL PROGGIE SUBTTL "LOW SEG" DATA DEFINITIONS PDLST: BLOCK PDLEN ;OUR STACK ;SWITCH (COMMAND) LOCS BOSWT: ;START OF SWITCH AREA TO INITIALIZE S.CLEA: BLOCK 1 ;.GT. 0 THEN CLEAR OLD COUNTS S.TICK: BLOCK 1 ;.GT. 0 THEN TICKS PER SAMPLE INTERVAL EOSWT: BLOCK 1 ;END OF SWITCH AREA TO INITIALIZE ;THE PERF. BLOCK PRFBLK: BLOCK 4 ;ARG BLOCK FOR PERF. SUBTTL START UP AND INITIALIZATION RELOC 600000 ;BACK TO "PURE" CODE KLBPA: JFCL ;NO CCL (YET ANYWAY) MOVE P,[IOWD PDLEN,PDLST] ;SETUP THE ALL-IMPORTANT STACK RESET ;"STOP THE WORLD" - FAILSA SETZ T1, ;NO CCL COMMANDS, ETC. PUSHJ P,.ISCAN## ;INITIALIZE SCANER KLBPA2: SETOM BOSWT ;INITIALIZE SWITCHES TO -1 MOVE T1,[BOSWT,,BOSWT+1] ;BLT POINTER TO BLT T1,EOSWT ;INITIALIZE ALL SWITCHES MOVE T1,[4,,[IOWD BPASWL,BPASWN XWD BPASWD,BPASWM XWD 0,BPASWP SIXBIT/KLBPA/]] PUSHJ P,.VSCAN## ;GO PARSE COMMANDS HALT . HALT . ;COMMAND PROCESSORS ;ENABLE/DISABLE CPUN ;CALLED FROM .VSCAN: ; ; MOVX P3, ; PUSHJ P,SCPU0-SCPU5 OR SCALL ; NEVER ; ALWAYS ; ;ON ERROR A MESSAGE IS ISSUED. ; ;RETURN IS CPOPJ1 ALWAYS SCPU0: MOVSI T1,0 ;CPU NUMBER HRRI T1,6(P3) ;NO/YES SETTING PJRST SCPUN SCPU1: MOVSI T1,1 ;CPU NUMBER HRRI T1,6(P3) ;NO/YES SETTING PJRST SCPUN SCPU2: MOVSI T1,2 ;CPU NUMBER HRRI T1,6(P3) ;NO/YES SETTING PJRST SCPUN SCPU3: MOVSI T1,3 ;CPU NUMBER HRRI T1,6(P3) ;NO/YES SETTING PJRST SCPUN SCPU4: MOVSI T1,4 ;CPU NUMBER HRRI T1,6(P3) ;NO/YES SETTING PJRST SCPUN SCPU5: MOVSI T1,5 ;CPU NUMBER HRRI T1,6(P3) ;NO/YES SETTING PJRST SCPUN SCALL: MOVX T4,%CNCPU ;GETTAB ENTRY TO GETTAB T4, ;GET NUMBER OF CPU'S FOR SYSTEM MOVEI T4,1 ;FAILED??? SCALL2: MOVSI T1,-1(T4) ;GET A CPU NUMBER HRRI T1,6(P3) ;NO/YES SETTING PUSHJ P,SCPUN ;TURN OFF/ON THIS CPU HALT . ;BETTER NOT EVER GET HERE SOJG T4,SCALL2 ;LOOP FOR ALL CPUS JRST .POPJ1## ;DONE THEM ALL SCPUN: MOVEI T2,3 ;LENGTH OF PERF. BLOCK MOVEM T2,PRFBLK+.PMLEN;SET LENGTH MOVX T2,PM.KL ;KL ONLY (THAT WE KNOW ABOUT) MOVEM T2,PRFBLK+.PMCPU;SET IN CPU TYPES WORD HLLZ T2,T1 ;CPU NUMBER SKIPLE S.CLEA ;WANT TO CLEAR OLD VALUES FIRST? TXO T2,PM.CLR ;YES MOVEM T2,PRFBLK+.PMMOD;SET CPU NUMBER AND FLAGS WORD SKIPG T2,S.TICK ;GET SAMPLING INTERVAL MOVX T2,AD.TIC ;NONE SPECIFIED ; MOVEM T2,PRFBLK+.PMTIC;SET INTERVAL MOVEM T2,PRFBLK+3 ;SET INTERVAL (WAITING FOR UUOSYM) HRLZ T2,T1 ;FUNCTION OFF/ON HRRI T2,PRFBLK ;ADDRESS OF FUNCTION CONTROL BLOCK MOVE T1,[1,,T2] ;ADDRESS OF FUNCTION BLOCK LIST PERF. T1, ;TURN OFF/ON CAIA ;FAILED JRST .POPJ1## ;SUCCESS ;ISSUE ERROR MESSAGE OUTSTR [ASCIZ\? Cant turn o\] ;FIRST PART OF MESSAGE HLRZ T2,T2 ;FUNCTION CODE CAIN T2,6 ;TURN OFF? OUTSTR [ASCIZ\ff\] ;YES CAIN T2,7 ;TURN ON? OUTSTR [ASCIZ\n\] ;YES OUTSTR [ASCIZ\ CPU\] ;MORE MESSAGE HLRZ T2,PRFBLK+.PMMOD;GET CPU NUMBER ADDI T2,"0" ;ASCIIZE OUTCHR T2 ;IDENTIFY WHICH CPU OUTSTR [ASCIZ\; (\] ;START TEXT EXPLANATION OUTSTR @ERRTAB(T1) ;CAP OFF MESSAGE OUTSTR [ASCIZ\ \] JRST .POPJ1## ;AND RETURN ;ERROR MESSAGES FOR PERF. FAILURE ERRTAB: [ASCIZ\0) Unknown\] [ASCIZ\1) Incorrect cpu specification\] [ASCIZ\2) Non-existant cpu\] [ASCIZ\3) Improper mode\] [ASCIZ\4) Meter not setup\] [ASCIZ\5) Meter in use\] [ASCIZ\6) Meter is running\] [ASCIZ\7) Bad job number\] [ASCIZ\10) Meter not running\] [ASCIZ\11) Function not implemented\] [ASCIZ\12) Incorrect function code\] [ASCIZ\13) Requires privileges\] ;THE COMMANDS -- FIRST DEFAULTS AND MAXIMUMS DM TIC,^D60,1,1 ;THE COMMANDS -- NAMES AND PROCESSORS DEFINE SWTCHS,< SN ALL,<*P,<7777B11+SCALL>>,FS.NFS SN CLEAR,S.CLEA,FS.NFS SN CPU0,<*P,<7777B11+SCPU0>>,FS.NFS SN CPU1,<*P,<7777B11+SCPU1>>,FS.NFS SN CPU2,<*P,<7777B11+SCPU2>>,FS.NFS SN CPU3,<*P,<7777B11+SCPU3>>,FS.NFS SN CPU4,<*P,<7777B11+SCPU4>>,FS.NFS SN CPU5,<*P,<7777B11+SCPU5>>,FS.NFS SP TICKS,S.TICK,.SWDEC##,TIC,FS.NFS > ;END OF SWTCHS MACRO ;EXPAND SWITCHES DOSCAN(BPASW) END KLBPA