SPI Programming Manual (G06.24+, H06.03+, J06.03+)

SPI Programming Examples
SPI Programming Manual427506-006
E-69
Example E-15: Common Routines for TAL Examples
Example E-15: Common Routines for TAL Examples
This TAL code contains common routines used by the other TAL example programs.
Source File
SETCUTIL
Example E-15. TAL File: SETCUTIL Supporting Code (page1of5)
-- File name: SETCUTIL
-- SPI EXAMPLE TAL Common Utility procedures.
--
?PAGE "FORWARD declarations"
PROC display^token (p^tkn^code);
INT(32) p^tkn^code;
FORWARD;
----------------------------------------------------------------------------
?PAGE "PROC display^spi^error"
!==========================================================================!
! Proc : display^spi^error !
! Function : This procedure will format the SPI error that is passed into !
! a text message and display it on the home term. It will call !
! DEBUG if the "p^call^debug" parameter is true. !
!==========================================================================!
PROC display^spi^error (p^spi^err, p^spi^proc, p^tkn^code, p^call^debug);
INT p^spi^err;
INT p^spi^proc;
INT(32) p^tkn^code;
INT p^call^debug;
BEGIN
sline ':=' "Error from " -> @sp;
CASE p^spi^proc OF
BEGIN
ZSPI^VAL^SSINIT -> sp ':=' "SSINIT" -> @sp;
ZSPI^VAL^SSGET -> sp ':=' "SSGET" -> @sp;
ZSPI^VAL^SSGETTKN -> sp ':=' "SSGETTKN" -> @sp;
ZSPI^VAL^SSMOVE -> sp ':=' "SSMOVE" -> @sp;
ZSPI^VAL^SSMOVETKN -> sp ':=' "SSMOVETKN" -> @sp;
ZSPI^VAL^SSNULL -> sp ':=' "SSNULL" -> @sp;
ZSPI^VAL^SSPUT -> sp ':=' "SSPUT" -> @sp;
ZSPI^VAL^SSPUTTKN -> sp ':=' "SSPUTTKN" -> @sp;
ZSPI^VAL^BUFFER^FORMATSTART -> sp ':=' "FORMATSTART" -> @sp;
ZSPI^VAL^BUFFER^FORMATNEXT -> sp ':=' "FORMATNEXT" -> @sp;
ZSPI^VAL^BUFFER^FORMATFINISH -> sp ':=' "FORMATFINISH" -> @sp;
ZSPI^VAL^FORMAT^CLOSE -> sp ':=' "FORMATCLOSE" -> @sp;
OTHERWISE -> sp ':=' "???Unknown???" -> @sp;
END; -- of CASE p^spi^proc
IF p^tkn^code <> 0d THEN
CALL display^token (p^tkn^code);
sp ':=' " (" -> @sp;
IF p^spi^err < 0 THEN
BEGIN
sp ':=' "-" -> @sp;
@sp := @sp '+' dnumout (sp, $DBL(-p^spi^err), 10);
END ELSE
BEGIN
@sp := @sp '+' dnumout (sp, $DBL(p^spi^err), 10);
END;