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;