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];










