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

SPI Programming Examples
SPI Programming Manual427506-006
E-17
Example E-5: Displaying SPI Buffer Contents With
TAL
sline ':=' "After 3rd GETTKN NEXTTOKEN: Token = " -> @sp;
@sp := @sp '+' dnumout (sp, tkn^code, 10);
CALL display^token (tkn^code);
CALL writex (term, sline, @sp '-' @sline);
CALL dump^buf (b1);
-- This call should get an error (missing token)
sline ':=' "After GETTKN TKN^4: " -> @sp;
CALL writex (term, sline, @sp '-' @sline);
IF (err := ssgettkn (b1, tkn^4, val, 1)) THEN
CALL display^spi^error (err, zspi^val^ssgettkn, tkn^4, false);
IF (err := ssgettkn (b1, tkn^3, val, 2)) THEN
CALL display^spi^error (err, zspi^val^ssgettkn, tkn^3, true);
sline ':=' "After GETTKN of 2nd TKN^3: " -> @sp;
@sp := @sp '+' dnumout (sp, tkn^code, 10);
CALL display^token (tkn^code);
CALL writex (term, sline, @sp '-' @sline);
CALL dump^buf (b1);
IF (err := ssgettkn (b1, zspi^tkn^nexttoken, tkn^code,,, ssid)) THEN
CALL display^spi^error (err, zspi^val^ssgettkn,
zspi^tkn^nexttoken, true);
sline ':=' "After 4th GETTKN NEXTTOKEN: Token = " -> @sp;
@sp := @sp '+' dnumout (sp, tkn^code, 10);
CALL display^token (tkn^code);
CALL writex (term, sline, @sp '-' @sline);
CALL dump^buf (b1);
IF (err := ssgettkn (b1, zspi^tkn^nexttoken, tkn^code,,, ssid)) THEN
CALL display^spi^error (err, zspi^val^ssgettkn,
zspi^tkn^nexttoken, true);
sline ':=' "After 5th GETTKN NEXTTOKEN: Token = " -> @sp;
@sp := @sp '+' dnumout (sp, tkn^code, 10);
CALL display^token (tkn^code);
CALL writex (term, sline, @sp '-' @sline);
CALL dump^buf (b1);
-- This call should get an error (missing token)
sline ':=' "After 6th GETTKN NEXTTOKEN: " -> @sp;
CALL writex (term, sline, @sp '-' @sline);
IF (err := ssgettkn (b1, zspi^tkn^nexttoken, tkn^code,,, ssid)) THEN
CALL display^spi^error (err, zspi^val^ssgettkn,
zspi^tkn^nexttoken, false);
sline ':=' "Program finished." -> @sp;
CALL writex (term, sline, @sp '-' @sline);
CALL stop;
END;
Example E-5. TAL File: Pointers, Lists, and ZSPI-TKN-NEXTTOKEN (page 3 of 3)