OSI/TS Management Programming Manual
Sample Programs
056786 Tandem Computers Incorporated C–7
 ! Put extensible structured token in command buffer.
 spi^err := SSPUT(os4^buf,zos4^map^add^su^tsp^req,
 tkn^value);
 IF spi^err THEN
 CALL DEBUG;
 ! Send ADD SU command and retrieve response.
 CALL send^spi^cmd;
 ! Reset the SPI buffer pointer.
 CALL reset^spi^buf;
 ! Extract ZSPI^TKN^DATALIST token and check return token.
 spi^err := SSGETTKN(os4^buf,zspi^tkn^datalist);
 IF spi^err <> 0 THEN
 IF spi^err =zspi^err^mistkn THEN
 BEGIN
 spi^err := SSGETTKN(os4^buf, zspi^tkn^retcode,
 return^token);
 CASE return^token OF
 BEGIN
 ZCOM^ERR^OK ->
 CALL WRITE(term^file^num, message5[1],
 message5[0]);
 ZCOM^ERR^FS^ERR ->
 CALL WRITE(term^file^num, message1[1],
 message1[0]);
 OTHERWISE ->
 CALL WRITE(term^file^num, message3[1],
 message3[0]);
 END;
 return(return^token);
 END
 ELSE
 CALL DEBUG;
 ! Get return token (ZSPI^TKN^RETCODE).
 spi^err := SSGETTKN(os4^buf,zspi^tkn^retcode,return^token);
 IF spi^err THEN
 CALL DEBUG;
 CALL WRITE(term^file^num, LF, 1);
 CALL WRITE(term^file^num, obj^name[1], obj^name[0]);
 CASE return^token OF
 BEGIN
 ZCOM^ERR^OK ->
 CALL WRITE(term^file^num,message5[1],message5[0]);
 ZCOM^ERR^SECUR^VIOL ->
 CALL WRITE(term^file^num,message2[1],message2[0]);
 ZCOM^ERR^FS^ERR ->
 CALL WRITE(term^file^num,message1[1],message1[0]);
 ZCOM^ERR^OBJ^ALRDY^DEF ->
 CALL WRITE(term^file^num,message4[1],message4[0]);
 OTHERWISE ->
 CALL WRITE(term^file^num,message3[1],message3[0]);
 END;










