! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! INFO MARK 2 COLOUR DISPLAY PROGRAM #2 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! ! THIS PROGRAM DISPLAYS THE STATUS AND USERS ON EACH TCP ! BY MEANS OF BAR GRAPHS OF DIFFERING COLOURS ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! FORMATS AND VARIABLES ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! %BEGIN %INCLUDE "INC_TERMS" %INCLUDE INC_GATEINT %INCLUDE INC_SERVICES %EXTERNALSTRING(5)%FNSPEC ITOS(%INTEGER X,Y) %RECORDFORMAT QF(%RECORD(QF)%NAME Q) %RECORDFORMAT TERMF(%BYTEINTEGER TYPE,STATE,OSTATE,%STRING(6) NAME) %OWNRECORD(TERMF) %ARRAY TERMS(0:MAXTERMS) %OWNRECORD(TERMF) %NAME XTERM ! %RECORDFORMAT NSIF(%BYTEINTEGERARRAY D(0:127)) %RECORDFORMAT MEF(%RECORD(MEF)%NAME LINK, %C %BYTEINTEGER LEN,TYPE, %RECORD(NSIF) NSL) %RECORDFORMAT PEF(%BYTEINTEGER SER,REPLY, %C (%BYTEINTEGERARRAY BA(0:5) %OR %INTEGER A,B,C %OR %C %BYTEINTEGER FUN,PORT,%RECORD(MEF) %NAME MES,%BYTEINTEGER LENG,S1 %OR %INTEGER FN,%BYTEINTEGERARRAYNAME AR,%INTEGER LEN %OR %C %BYTEINTEGER A1,A2,B1,B2,C1,C2)) %RECORDFORMAT LINEF(%BYTEINTEGER LENG,%BYTEINTEGERARRAY LINE(0:119)) %EXTERNALINTEGERFNSPEC CSI(%RECORD(LINEF)%NAME CMD, %C %INTEGERNAME CPROD,ACC,PTR,%BYTEINTEGERARRAYNAME SYNTAX) %OWNRECORD(NSIF)%NAME NSL ! %OWNRECORD(PEF) P %OWNRECORD(LINEF) LINEIN %OWNINTEGER STATE,Z,I,K,J,SFEPS,SNODES,XPOS,SFLAG ! %INCLUDE "INC_SERVICES" %INCLUDE "INC_DEIMOSPERM" %INCLUDE "INC_CSIDEFS" %INCLUDE "INC_COLOURDEFS" %INCLUDE "INC_COLOURSPECS" %EXTERNALSTRING(19)%FNSPEC DATIM ! ! HISTOGRAM DEFINITIONS ! %CONSTINTEGERARRAY COL(0:6)=RED,CYAN,GREEN,MAGENTA,YELLOW,BLUE,WHITE %CONSTINTEGERARRAY TPOS(0:6)=17,31,41,47,54,60,66 %CONSTSTRING(6)%ARRAY TITLES(0:HLIM-1)= %C "2972 ","2980 ","PSSE ","INFO ","2976 " ! ! TABLES FOR HOST DISPLY ! %CONSTINTEGERARRAY HCOL(0:10)=RED,RED,RED,CYAN,CYAN,CYAN, %C GREEN,MAGENTA,YELLOW,BLUE,WHITE %CONSTINTEGERARRAY HX(0:10)= %C 20,22,24,40,42,44,60,80,100,120,140 %CONSTINTEGERARRAY TOTM(0:10)=0,0,0,1,1,1,2,3,4,5,6 %OWNINTEGERARRAY TOTS(0:6) ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! ROUTINES START HERE................ ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! ! ROUTINES TO INTERFACE TO THE BUFFER MANAGER ! ! ! RELEASE BLOCK ! %ROUTINE RELEASE BLOCK(%RECORD(MEF)%NAME MES) P_SER=BUFFER MANAGER; P_REPLY=OWN ID P_FN=RELEASE BUFFER; P_MES==MES PON(P) %END ! ! ASK FOR BLOCK ! %ROUTINE ASK FOR BLOCK P_SER=BUFFER MANAGER; P_REPLY=OWN ID P_FN=REQUEST BUFFER; P_LEN=1 PONOFF(P) %END ! ! TO TT ! %ROUTINE TO TT(%INTEGER FN) P_SER=T2 SER; P_REPLY=OWN ID P_FN=FN; P_AR==LINEIN_LINE; P_LEN=120 PON(P) %END ! ! ! FROM TT........HANDLES OPERATOR INPUT ! ! CURRENT VALID COMMANDS ARE.. ! ! STOP.............STOPS PROGRAM ! QUIT.............AS FOR STOP ! FAST.............FOR FAST POLL ! %ROUTINE FROM TT %OWNINTEGER CPROD,ACC,PTR %INTEGER N1,N2,N3,FLAG,I %SWITCH SW(-1:3) %CONSTBYTEINTEGERARRAY SYNTAX(0:44)= %C 3,'S',LITALT, 6,'Q',LITALT, 9,'F',LIT, ! STOP 1,'T',LIT,1,'O',LIT, 1,'P',LIT,0,1,TERM, ! QUIT 1,'U',LIT,1,'I',LIT, 1,'T',LIT,0,1,TERM, ! FAST 1,'A',LIT,1,'S',LIT, 1,'T',LIT,0,3,TERM LINEIN_LENG=1 LINEIN_LENG=LINEIN_LENG+1 %WHILE LINEIN_LINE(LINEIN_LENG)#NL LINEIN_LENG=LINEIN_LENG+1 CPROD=0; PTR=0 %CYCLE ACC=0 ->SW(CSI(LINEIN,CPROD,ACC,PTR,SYNTAX)) ! SW(-1): PRINTSTRING("INVALID COMMAND"); NEWLINE %EXIT ! SW(0): PRINTSTRING("SYNTAX TABLE FORMAT ERROR"); NEWLINE %EXIT ! SW(1): SW(2): SET FOREGROUND(BLUE) P_SER=T2 SER; P_REPLY=OWN ID P_A=101; PON(P) SFLAG=1; %EXIT ! SW(3): P_SER=POLL SER; P_REPLY=DISPLAY SER P_A=2; PON(P) %EXIT %REPEAT %END ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! PROGRAM STARTS HERE................. ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! ! READ IN CONFIGURATION FILE ! I=MAPVIRT(BUFFER MANAGER,5,4) I=MAPVIRT(BUFFER MANAGER,6,5) ! ! SWITCH TT HANDLER TO BINARY MODE ! P_SER=T2 SER; P_REPLY=OWN ID P_A=100; PON(P) ! PRINTSYMBOL(27) PRINTSYMBOL(24); !PAGE MODE SET BACKGROUND(CURBACK); PRINTSYMBOL(12) SET FOREGROUND(YELLOW) PRINTSTRING(" FEP INFORMATION FACILITY") SET CURSOR(1,2) SET FOREGROUND(WHITE) PRINTSTRING("FEP NUMBER OF USERS") SET CURSOR(0,4) PRINTSTRING("SCALE *=5") ! ! SET SCALE LINE ! SET FOREGROUND(YELLOW) BARX(24,171,125) ENTER PLOT MODE %FOR I=24,10,124 %CYCLE PRINTSYMBOL(I); !X CO-ORD PRINTSYMBOL(172); !Y CO-ORD %REPEAT EXIT PLOT MODE BARY(12,16,57) ENTER PLOT MODE %FOR I=16,5,56 %CYCLE PRINTSYMBOL(11) PRINTSYMBOL(I) %REPEAT EXIT PLOT MODE NEWLINE TO TT(0); !READ ALARM(50)