GDSX Manual
User Exit Descriptions
Extended General Device Support (GDSX) Manual–134303
9-14
USER^COMMANDS
Example 9-1. Listing of TELLGDS File (page 1 of 4)
?TACL ROUTINE
==
== This TACL routine ("TELLGDS") sends a broadcast message to
== a GDSX process via the SPI interface. It is invoked as follows:
==
== RUN TELLGDS <GDSX-process-name> "Quoted-string"
==
attach^definitions
#FRAME
#PUSH procname text
SINK [#ARGUMENT/VALUE procname/PROCESSNAME] == Get the arguments
verify^process [procname] == Needed due to bug in #ARGUMENT
SINK [#ARGUMENT/VALUE text/STRING]
SINK [#ARGUMENT END] == NO MORE
#PUSH #USELIST
#PUSH err retcode
#SET #USELIST :GDSX [#USELIST]
#DEF ssid STRUCT LIKE zgds^val^ssid;
#SET ssid [zspi^val^tandem].[zspi^ssn^zgds].[zgds^val^version]
#DEF spibuf STRUCT LIKE zgds^ddl^msg^buffer;
spicmd #SSINIT spibuf [ssid] [ugds^cmd^tell] /OBJECT zcom^obj^null/
spicmd #SSPUT spibuf [zcom^tkn^objname] [_LONGEST [procname]] [procname]
spicmd #SSPUT spibuf [ugds^tkn^text] [text]
spi^open [procname]
spi^send spibuf
spi^close
spicmd #SSPUT spibuf zspi^tkn^reset^buffer zgds^val^buflen
#SETMANY err _ retcode,[#SSGET /INDEX 1/ spibuf zspi^tkn^retcode]
[#IF [err]
|THEN| leave^routine Error [err] on SSGET
]
[#IF (retcode <> zspi^err^ok)
|THEN| leave^routine [gds^error [retcode]]
]
#UNFRAME
The UTACLIB file for this example contains:
?SECTION xeq MACRO
==
== Macro to display and execute whatever was passed
==
#OUTPUT >%*%
%*%
?SECTION spi^error ROUTINE
==
== Routine to return the text of an SPI error
==