OSI/MHS Management Programming Manual
Examples
OSI/MHS Management Programming Manual—424824-001
C-13
SPI Example in TAL
 Init^Buffer := zSpi^Val^Initial^Buffer;
 SSErr := SSPutTkn ( Spi^Buffer,
 zSpi^Tkn^Initial^Position,
 Init^Buffer );
 IF (SSErr <> zSpi^Err^OK) THEN
 BEGIN
 Write^Term^With^Num ( "SSPutTkn failed", SSErr );
 CALL Abend;
 END;
END; -- PROC Reset^SpiBuf
? PAGE "Send command to OSI/MHS Subsystem"
-------------------------------------------------------------
-- SEND^SPICMD - Send command to OSI/MHS through SCP.
--
-- GLOBALS. SCP^fn . File number for SCP process
-- Spi^Buffer . The SPI buffer to send
-- FS^Err . Set to file system error value
-- SSErr . Set to SPI error value
-- INPUT. None
-- OUTPUT. None
--
-------------------------------------------------------------
PROC Send^SpiCmd;
BEGIN
 INT Write^Count;
 INT Count^Read;
 --
 -- Determine the length of the used portion of the buffer by
 -- obtaining the value of the zSpi^Tkn^UsedLen token.
 --
 SSErr := SSGetTkn( Spi^Buffer,
 zSpi^Tkn^UsedLen,
 Write^Count );
 IF (SSErr <> zSpi^Err^OK) THEN
 BEGIN
 Write^Term^With^Num ( "SSGetTkn failed", SSErr );
 CALL Abend;
 END;
 CALL WriteRead( SCP^Fn,
 Spi^Buffer,
 Write^Count,
 zMHS^Val^BufLen,
 Count^Read );
 IF <> THEN -- if error occurred during WRITEREAD
 BEGIN
 CALL FileInfo( SCP^Fn, FS^Error );
 Write^Term^With^Num ( "WriteRead failed", FS^Error );
 CALL Abend;
 END
 ELSE
 FS^Error := 0;
END; -- PROC Send^SpiCmd
? PAGE "Get^MHSMGR^Name"
-------------------------------------------------------------
--
-- GET^MHSMGR^Name - Get MHS manager name from terminal.
--










