OSI/TS Management Programming Manual

Sample Programs
056786 Tandem Computers Incorporated C–19
LITERAL evt^text^len = 78;
LITERAL num^evt^lines = 2;
INT .evt^text^buf[0:(evt^text^len/2)*num^evt^lines];
INT .actual^len[0:num^evt^lines];
! SPI-related definitions
! SSID declarations
! EMS subsystem ID
STRUCT .zems^val^ssid(zems^val^ssid^def);
! OSI/TS subsystem ID
STRUCT .zos4^val^ssid(zspi^val^ssid^def);
! Filter name-related variables
INT .coll^name[0:11] := ["$0",11*[" "]],
.filt^name[0:11] := [12 *[" "]];
! External declarations for GUARDIAN 90 and SPI procedures
?NOLIST
?SOURCE $SYSTEM.SYSTEM.EXTDECS0 ( MYTERM, OPEN, DEBUG,
? READUPDATE, REPLY, CREATEPROCESSNAME, NEWPROCESS,
? WRITE, CLOSE, WRITEREAD, FILEINFO, DELAY, STOP, SSINIT,
? SSPUTTKN, SSGETTKN, EMSTEXT, NUMIN, SSMOVETKN,
? EMSGETTKN,
? FILEERROR )
?LIST
?PAGE
! ***********************************************************
! * get^filter^name *
! ***********************************************************
! This procedure gets the filter name from the terminal.
PROC get^filter^name;
BEGIN
INT got^it;
got^it := false;
WHILE ( NOT got^it ) DO
BEGIN
s^term^buf ':=' ["Enter the filter name?: "] ->
@end^of^text;
text^len := @end^of^text '-' @s^term^buf;
retry:
! Prompt for and read filter name.
CALL WRITEREAD (term^file^num, term^buf, text^len,
32, input^len);
IF > THEN ! EOF from terminal
CALL STOP;