OSI/TS Management Programming Manual
Sample Programs
C–8 056786 Tandem Computers Incorporated
! Get end-list token.
spi^err := SSGETTKN(os4^buf,zspi^tkn^endlist);
IF spi^err THEN
 CALL DEBUG;
RETURN(return^token);
END;
! ***********************************************************
! * start^su *
! ***********************************************************
INT PROC start^su(obj^name);
 INT .obj^name;
BEGIN
 INT return^token, ! value of return token
 datalist^count, ! count of ZSPI^TKN^DATALIST
 datalist^index, ! index of ZSPI^TKN^DATALIST
 complete; ! flag, SPI response buffer
 STRUCT .error^token(zspi^ddl^error^def);
 ! value of error token
 INT(32) token^val; ! token value used in SSGETTKN
 call build^cmd^buf(zcom^cmd^start, zcom^obj^su, obj^name);
 ! Save original command.
 save^buf ':=' os4^buf FOR ZOS4^VAL^BUFLEN BYTES;
 complete := ZSPI^VAL^FALSE;
 WHILE (complete = ZSPI^VAL^FALSE) DO
 BEGIN
 ! Send START SU command and retrieve response.
 CALL send^spi^cmd;
 ! Reset SPI buffer pointer.
 CALL reset^spi^buf;
 ! Process the response.
 ! Get ZSPI^TKN^COUNT of data list; put in
 ! datalist^count.
 token^val := zspi^tkn^datalist;
 spi^err := SSGETTKN(os4^buf,zspi^tkn^count,token^val,
 1, datalist^count);
 IF spi^err THEN
 CALL DEBUG;
 datalist^index := 1;
 CALL WRITE(term^file^num, LF, 1);
 WHILE(datalist^index <= datalist^count) DO
 BEGIN
 ! Get data-list token.
 spi^err := SSGETTKN(os4^buf, zspi^tkn^datalist);
 IF spi^err THEN
 CALL DEBUG;










