SPI Programming Manual (H06.24+, J06.13+)

SPI Programming Examples
SPI Programming Manual427506-007
E-16
Example E-5: Displaying SPI Buffer Contents With TAL
! Create the SPI buffer "b1"
!
IF (err := ssinit (b1, bufsize, ssid,zspi^val^cmdhdr)) THEN
CALL display^spi^error (err, zspi^val^ssinit, 0d, true);
val := "A";
IF (err := ssputtkn (b1, tkn^1, val)) THEN
CALL display^spi^error (err, zspi^val^ssputtkn, tkn^1, true);
IF (err := ssputtkn (b1, zspi^tkn^datalist)) THEN
CALL display^spi^error (err, zspi^val^ssputtkn, zspi^tkn^datalist, true);
val := "B";
IF (err := ssputtkn (b1, tkn^2, val)) THEN
CALL display^spi^error (err, zspi^val^ssputtkn, tkn^2, true);
val := "C";
IF (err := ssputtkn (b1, tkn^3, val)) THEN
CALL display^spi^error (err, zspi^val^ssputtkn, tkn^3, true);
val := "D";
IF (err := ssputtkn (b1, tkn^3, val)) THEN
CALL display^spi^error (err, zspi^val^ssputtkn, tkn^3, true);
IF (err := ssputtkn (b1, zspi^tkn^endlist)) THEN
CALL display^spi^error (err, zspi^val^ssputtkn, zspi^tkn^endlist, true);
val := "E";
IF (err := ssputtkn (b1, tkn^4, val)) THEN
CALL display^spi^error (err, zspi^val^ssputtkn, tkn^4, true);
!
! 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^nexttoken, tkn^code,,, ssid)) THEN
CALL display^spi^error (err, zspi^val^ssgettkn,
zspi^tkn^nexttoken, true);
sline ':=' "After 1st 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 2nd 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);
Example E-5. TAL File: Pointers, Lists, and ZSPI-TKN-NEXTTOKEN (page 2 of 3)