OSI/TS Management Programming Manual
Sample Programs
C–12 056786 Tandem Computers Incorporated
messageA[0]);
OTHERWISE ->
CALL WRITE(term^file^num, messageB[1],
messageB[0]);
END;
! Extract return token (ZSPI^TKN^RETCODE).
spi^err := SSGETTKN(os4^buf,zspi^tkn^retcode,
return^token);
IF spi^err THEN
CALL DEBUG;
IF (return^token <> ZCOM^ERR^OK) THEN
CALL DEBUG;
! get ZSPI^TKN^ENDLIST
spi^err := SSGETTKN(os4^buf, zspi^tkn^endlist);
IF spi^err THEN
CALL DEBUG;
datalist^index := datalist^index + 1;
END;
! Save context token for the next command by moving it
! from the response to the original command buffer.
spi^err := ssmovetkn(zspi^tkn^context, os4^buf, 1,
save^buf, 1);
IF (spi^err = ZSPI^ERR^OK) THEN
os4^buf ':=' save^buf FOR ZOS4^VAL^BUFLEN BYTES
ELSE
complete := ZSPI^VAL^TRUE;
! Finished; no more response messages expected
END;
CALL WRITE(term^file^num, LF, 1);
CALL WRITE(term^file^num, messageC[1], messageC[0]);
RETURN(return^token);
END;
?PAGE
! ***********************************************************
! * main program *
! ***********************************************************
PROC m MAIN;
BEGIN
INT error, ! error code
obj^name[0:10]; ! object name of commands
! Initialize the OSI/TS subsystem ID.
zos4^val^ssid ':=' [zspi^val^TANDEM,
zspi^ssn^zos4,
zos4^val^version];