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

SPI Programming Examples
SPI Programming Manual427506-006
E-23
Example E-7: Special SSGET Operation in TAL
!
! Reset the SPI buffer "b1"
!
IF (err := ssputtkn (b1, zspi^tkn^reset^buffer, bufsize)) THEN
CALL display^spi^error (err, zspi^val^ssputtkn,
zspi^tkn^reset^buffer, true);
sline ':=' "After RESET BUFFER: " -> @sp;
CALL writex (term, sline, @sp '-' @sline);
CALL dump^buf (b1);
!
! Get the tokens in the SPI buffer "b1"
!
IF (err := ssgettkn (b1, zspi^tkn^nextcode, tkn^code,,, ssid)) THEN
CALL display^spi^error (err, zspi^val^ssgettkn,
zspi^tkn^nextcode, true);
sline ':=' "After 1st GETTKN NEXTCODE: 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^nextcode, tkn^code,,, ssid)) THEN
CALL display^spi^error (err, zspi^val^ssgettkn,
zspi^tkn^nextcode, true);
sline ':=' "After 2nd GETTKN NEXTCODE: 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^nextcode, tkn^code,,, ssid)) THEN
CALL display^spi^error (err, zspi^val^ssgettkn,
zspi^tkn^nextcode, true);
sline ':=' "After 3rd GETTKN NEXTCODE: 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^datalist,, 1)) THEN
CALL display^spi^error (err, zspi^val^ssgettkn,
zspi^tkn^datalist, true);
sline ':=' "After GETTKN of DATALIST: " -> @sp;
@sp := @sp '+' dnumout (sp, tkn^code, 10);
CALL writex (term, sline, @sp '-' @sline);
CALL dump^buf (b1);
IF (err := ssgettkn (b1, zspi^tkn^nextcode, tkn^code,,, ssid)) THEN
CALL display^spi^error (err, zspi^val^ssgettkn,
zspi^tkn^nextcode, true);
Example E-7. TAL File: Pointers, Lists, and ZSPI-TKN-NEXTCODE (page2of3)