Using SPI
Using Programmatic Interfaces
7–10
107365 Tandem Computers Incorporated
Use the routine in Figure 7-2,
dumplog
, to retrieve the name of the current EMS log
file using SPI. The example then calls EMSDIST to read the current log and display the
message on the home terminal. To invoke this routine, load the associated file and
enter:
dumplog [
time]
Figure 7-2. Displaying the EMS Log (Page 1 of 2)
?SECTION dumplog ROUTINE
#FRAME
[#PUSH
err == Error return value
io_err == I/O Error return value
reply == Reply I/O variable
request == Request I/O variable
retcode == Return code from server
ZEMS^CMD^STATUS == ZEMS status command
ZEMS^VAL^EXTERNAL^SSID == ZEMS subsystem ID
zspidef == zspidef subvolume
arg
rslt
defs
]
== Include SPI and EMS definitions
==============================================
#LOAD /LOADED defs, KEEP 1/ $system.zspidef.zemstacl
#LOAD /LOADED defs, KEEP 1/ $system.zspidef.zspitacl
#LOAD /LOADED defs, KEEP 1/ $system.zspidef.ztactacl
== Define the SPI buffer
[#DEF spi_buf STRUCT
BEGIN
BYTE b(1:1024);
END;
]
== Initialize the SPI buffer; EMS subsystem, STATUS command
#SET err [#SSINIT spi_buf [ZEMS^VAL^EXTERNAL^SSID]
[ZEMS^CMD^STATUS] ]
[#IF err |THEN|
#OUTPUT *** Error [err] from #SSINIT]
== Retrieve the name of the EMS log file
#SET err [#REQUESTER /WAIT/
READ $0.#ZSPI io_err reply request]
[#IF err |THEN|
#OUTPUT *** Error [err] opening $0.#ZSPI
#UNFRAME
#RETURN
]