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.
--