! FILE 'ERCM08.INC_COLOURDEFS' %CONTROL K'100001' %BEGIN ! ! *** COLOUR DEFINITIONS ! %CONSTINTEGER BLACK=16 %CONSTINTEGER RED=17 %CONSTINTEGER GREEN=18 %CONSTINTEGER YELLOW=19 %CONSTINTEGER BLUE=20 %CONSTINTEGER MAGENTA=21 %CONSTINTEGER CYAN=22 %CONSTINTEGER WHITE=23 %CONSTINTEGER CURBACK=BLACK; !BACKGROUND FOR EVERYONE ! *** OWN ROUTINES FOR DRIVING INTECOLOUR DISPLAY !FILE 'ERCM08.COLOURS' ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! *** OWN ROUTINES FOR DRIVING INTECOLOUR DISPLAY ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! %OWNINTEGER CBACK %OWNINTEGER CFORE ! %ROUTINE SET BACKGROUND(%INTEGER COLOUR) PRINTSYMBOL(30); PRINTSYMBOL(COLOUR) CBACK=COLOUR-16 %END ! %ROUTINE SET FOREGROUND(%INTEGER COLOUR) PRINTSYMBOL(29); PRINTSYMBOL(COLOUR) CFORE=COLOUR-16 %END ! %ROUTINE SET CURSOR(%INTEGER X,Y) PRINTSYMBOL(3) PRINTSYMBOL(X); PRINTSYMBOL(Y) NEWLINE %END ! !FILE 'FEP_MONALLS' ! FILE 'FEP_MONALLS' !********************** !* MONS/MONY * !* DATE: 25.SEP.79 * !********************* %CONSTSTRING (7) VSN = "VSN001B" !! STACK = 300, STREAMS = 1 ! BRIAN BIT $$$$$$$$ %SYSTEMROUTINESPEC ALARM(%INTEGER TICKS) %%RECORDFORMAT ITPF(%BYTEINTEGER CNSL,HB1,HB2,LEN, %C %BYTEINTEGERARRAY DATA(0:127)) %RECORDFORMAT NSI1F(%BYTEINTEGER FN,SUFL,ST,SS,FLAG,UFLAG, %C %RECORD(ITPF) ITP) %RECORDFORMAT NSI2F(%BYTEINTEGER FN,SUFL,ST,SS,%C SN, DN, DT, DS, FLAG, UFL, %C %BYTEINTEGERARRAY A(0:3), %INTEGER USERS,STA,CPU,PKTS,SBR,BYT, %C RJEO, RJEI) %RECORDFORMAT MEF(%RECORD(MEF)%NAME LINK,%BYTEINTEGER LEN,TYPE, %C %RECORD(NSI1F) NSL) %RECORDFORMAT ME2F(%RECORD(ME2F)%NAME LINK,%BYTEINTEGER LEN,TYPE, %C %RECORD(NSI2F) NSL) %RECORDFORMAT PF(%BYTEINTEGER SERVICE,REPLY,FN,PORT, %C %RECORD(MEF)%NAME MES,%BYTEINTEGER LEN,S1) %RECORD (PF) P %CONSTBYTEINTEGERNAME ID = K'160030' %CONSTBYTEINTEGERNAME INT = K'160060' %RECORDFORMAT LNEF(%INTEGER CPU, PKTS, SBR, RJEO, BYT, RJEI) %OWNRECORD (LNEF) %ARRAY LNEA(0:5) %OWNRECORD (LNEF) %NAME LNE %OWNINTEGERARRAY NODE(0:5) = 9, 1, 5, 9, 9, 9 %OWNINTEGERARRAY TERM(0:5) = 180, 181, 182, 73, 74, 75 %CONSTINTEGERARRAY CPU IDLE(0:5) = 118, 118, 118, 150, 100, 1 %CONSTSTRING (7) %ARRAY TEXT(0:5) = " USERS ", " CPU ", "PACKETS", "RJE-OUT", "RJE-IN ", "ITP-OUT" %CONSTINTEGERARRAY SCALEX(0:5) = 10, 20, 200, 100, 100, 100 %CONSTSTRING (5) %ARRAY NAME(0:5) = "80(0)", "80(1)", "80(2)", "72(0)", "72(1)", "72(2)" %CONSTINTEGER GATE SER=16, BUFFER MANAGER=17 %CONSTINTEGER REQUEST BUFFER=0, RELEASE BUFFER=1 %CONSTINTEGER OPEN MESSAGE=9 %INTEGER I, STRM, J, X, Y, Z %OWNINTEGER POLL = -1 %OWNINTEGER STA, BYT, TIM %OWNINTEGER FLAG %ROUTINE GET BUFFER(%INTEGER REASON) P_SERVICE=BUFFER MANAGER; P_REPLY=ID P_FN=REQUEST BUFFER; P_LEN=64; P_S1=REASON PON(P) %END %ROUTINE FREE BUFFER(%RECORD(MEF)%NAME MES) P_SERVICE=BUFFER MANAGER; P_REPLY=ID P_FN=RELEASE BUFFER; P_MES==MES PON(P) %END %ROUTINE TO GATE(%INTEGER FN,%RECORD(MEF)%NAME MES,%INTEGER FLAG) P_SERVICE=GATE SER; P_REPLY=ID P_FN=FN; P_MES==MES; P_S1=FLAG PON(P) %END %ROUTINE SCALE(%INTEGER LINE) %INTEGER I, J SET CURSOR(0, LINE) SPACES(8) %CYCLE I = 0, 1, 13 PRINTSYMBOL('!') PRINTSYMBOL('.') %FOR J = 1, 1, 4 %REPEAT %END %ROUTINE MESSAGE(%RECORD (MEF) %NAME MES, %INTEGER WHO) %RECORD (NSI2F) %NAME NSI NSI == MES_NSL NSI_DS = STRM NSI_UFL = 5; NSI_A(0) = 1; NSI_A(1) = NL MES_LEN = 10+2+20 P_LEN = NODE(WHO) TO GATE(OPEN MESSAGE, MES, TERM(WHO)) %END %ROUTINE OUT(%INTEGER N, Y) %OWNINTEGERARRAY SCALE1(0:5) = 1, 1, 1, 1, 1, 1 %OWNINTEGERARRAY SCALE2(0:5) = 1, 2, 20, 10, 10, 10 %INTEGER I, Q, W %RETURN %IF Y = -255 N = (N*SCALE1(Y)) Q = SCALE2(Y) N = N//Q LAB: W = GREEN %IF Y < 0 %START Y = (-Y)-10; W = RED %FINISH SET CURSOR(0, (Y*7)+4+POLL) SET BACKGROUND(BLACK) PRINTSYMBOL(11) SET FOREGROUND(W) PRINTSTRING(NAME(POLL)); PRINTSTRING(" - ") SET BACKGROUND(POLL+RED) %IF N < 0 %AND Y = 0 %START SET FOREGROUND(RED); SET BACKGROUND(BLACK) PRINTSTRING("Mainframe Down") %RETURN %FINISH %IF N > 70 %THEN N = 70 %IF N< 0 %THEN N = 0 %IF N > 0 %START %CYCLE I = 1, 1, N SPACE %REPEAT %FINISH %END %ROUTINE DO REPLY(%RECORD (MEF) %NAME MES) %INTEGER N, WHO, Z %RECORD (NSI2F) %NAME NSI %INTEGERFN CALC(%INTEGER NEW, %INTEGERNAME OLD, %INTEGER X,Y) %INTEGER N, Z N = NEW-OLD %IF N < 0 %THEN N = -N %IF X < 0 %START Z = CPU IDLE(WHO) Z = (N*100)//Z LAB2: OUT(100-Z, Y) %ELSE %IF X = 4 %START; ! BYTES OUT((N*8)//(128*60), Y) %ELSE OUT(N*2*X, Y) %FINISH %FINISH OLD = NEW %RESULT = N*2*X %END NSI == MES_NSL N = NSI_DT %IF N>=180 %THEN WHO = N-180 %ELSE WHO = N-73+3 LNE == LNEA(WHO) %IF NSI_SUFL#0 %START %IF FLAG = 0 %START FLAG = 1 %FINISH OUT(0, I) %FOR I = -10, -1, -15 TIM = TIM+1 %RETURN %FINISH TIM = TIM+1 STA = NSI_STA OUT(NSI_USERS, 0) X = CALC(NSI_CPU, LNE_CPU, -1, 1) X = CALC(NSI_PKTS, LNE_PKTS, 1, 2) Y = CALC(NSI_SBR, LNE_SBR, 1, -255) Z = CALC(NSI_RJEO, LNE_RJEO, 1, 3) ! CALC(NSI_BYT, LNE_BYT, 4, -1) I = CALC(NSI_RJEI, LNE_RJEI, 1, 4) OUT(X-Y-Z, 5) NEWLINE %END MAP VIRT(BUFFER MANAGER, 5, 4) MAP VIRT(BUFFER MANAGER, 6, 5) STRM = 21 STA = 1 ALARM(5*50); ! 5 SECS PRINTSYMBOL(27); PRINTSYMBOL(24) SET BACKGROUND(CURBACK); PRINTSYMBOL(12) SET FOREGROUND(YELLOW) PRINTSTRING(" FRONT END STATISTICS ") SCALE(2) SET BACKGROUND(WHITE); SET FOREGROUND(BLACK) SET CURSOR(0, 3) %CYCLE J = 0, 1, 5 SPACES(4) %CYCLE I = 0, 1, 3 WRITE(I*SCALEX(J), 4) SPACES(5) %REPEAT SET FOREGROUND(YELLOW); SET BACKGROUND(BLACK) PRINTSTRING(TEXT(J)) SET FOREGROUND(BLACK); SET BACKGROUND(WHITE) SPACES(3) %CYCLE I = 5, 1, 6 WRITE(I*SCALEX(J), 4) SPACES(5) %REPEAT SPACES(4) NEWLINES(7) %REPEAT SCALE(38+7) %CYCLE P_SERVICE = 0; POFF(P) %IF P_REPLY = 0 %START; ! CLOCK %EXIT %IF INT='A' ALARM(5*50); ! 5 SECS POLL = POLL+1 %IF POLL = 6 %THEN POLL = 0 GET BUFFER(POLL) %IF '0' <= INT <= '5' %START I = INT-'0' PRINTSTRING("Change Address of "); PROMPT(NAME(I)) PRINTSTRING(", NODE & TERM?") READ(NODE(I)); READ(TERM(I)) INT = 0 FLAG = 0 %FINISH %CONTINUE %FINISH %IF P_REPLY = BUFFER MANAGER %START MESSAGE(P_MES,POLL) %CONTINUE %FINISH %IF P_REPLY = GATE SER %START DO REPLY(P_MES) FREE BUFFER(P_MES); ! REPLY %CONTINUE %FINISH %REPEAT %ENDOFPROGRAM ")