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;