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

SPI Programming Examples
SPI Programming Manual427506-006
E-24
Example E-8: Special SSGET Operation in C
Example E-8: Special SSGET Operation in C
Example E-8 on page E-25 demonstrates the basic buffer manipulation activities
illustrated in Figure 2-7
on page 2-26. This C program uses DSM Template Services to
display the contents of the buffer after each manipulation. Run the program to see the
behavior of the SSGET special operation ZSPI-TKN-NEXTCODE.
Source File
SEC0207C
Object File
SEC0207O
sline ':=' "After 4th 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 5th 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, false);
sline ':=' "After 6th 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);
-- 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);
sline ':=' "Program finished." -> @sp;
CALL writex (term, sline, @sp '-' @sline);
CALL stop;
END;
Example E-7. TAL File: Pointers, Lists, and ZSPI-TKN-NEXTCODE (page3of3)