EMS Manual
Example of Retrieving Event Messages
EMS Manual—426909-005
A-7
TAL Source File
! ************* SPI Definitions ******************
! Declare SSIDs
STRUCT .zems^val^ssid(zems^val^ssid^def);
STRUCT .myap^val^ssid(myap^val^ssid^def);
INT .coll^name[0:11] := ["$0",11*[" "]],
.filt^name[0:11] := ["$SYSTEM FILT MYAPFOBJ"];
?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,
? JULIANTIMESTAMP,
? FILEERROR )
?LIST
?PAGE
PROC get^cpu^num;
BEGIN
INT got^it;
! This procedure prompts the user for a CPU number, which
! can be passed as a parameter to the filter
got^it := false;
WHILE ( NOT got^it ) DO
BEGIN
s^term^buf ':=' ["CPU number?: "] -> @end^of^text;
text^len := @end^of^text '-' @s^term^buf;
retry:
! Prompt for and read CPU number
CALL WRITEREAD ( term, term^buf, text^len, 14,
input^len);
IF > THEN ! EOF from terminal
CALL STOP;
IF < THEN ! Some unusual condition
BEGIN ! Check whether to retry
IF FILEERROR ( term ) THEN GOTO retry;
CALL DEBUG;
END;
! Terminate input with a null
s^term^buf[input^len] := 0;
! Translate number to internal integer
CALL NUMIN ( S^TERM^BUF, CPU^NUM, 10, ERROR);