OSI/MHS Management Programming Manual

Examples
OSI/MHS Management Programming Manual424824-001
C-14
SPI Example in TAL
-- GLOBALS. Term^Fn . File number of home terminal
-- Term^Buf . Buffer used for terminal I/O
-- S^Term^Buf
-- S^Ptr . Temporary string pointer
-- Mgr^Tkn^Name . Set to the MHS Manager name
-- input from the terminal
-- INPUT. None
-- OUTPUT. None
--
-------------------------------------------------------------
PROC Get^MHSMGR^Name;
BEGIN
INT Got^It := zSpi^Val^False;
INT Count^Read;
INT Character^Count;
STRING .End^Of^Text; -- string pointer to last character
-- of terminal text
WHILE ( Got^It = zSpi^Val^False ) DO
BEGIN
--
-- Prompt user for MHS manager name.
--
S^Term^Buf ':='
"Enter the OSI/MHS Manager name please (e.g. $ZMHS): "
-> @S^Ptr;
CALL WriteRead( Term^fn,
Term^Buf,
@S^Ptr '-' @S^Term^Buf,
MAX^MGR^INPUT^LEN,
Count^Read );
IF > THEN
-- EOF from terminal
CALL Stop
ELSE IF < THEN
BEGIN
-- unusual condition encountered
IF NOT FileError( Term^Fn ) THEN
BEGIN
CALL FileInfo( Term^Fn, FS^Error );
Write^Term^With^Num
( "WriteRead error on terminal",
FS^Error );
CALL Abend;
END;
END
ELSE IF ( Count^Read > 0 ) THEN
BEGIN
--
-- Move the input name to the Mgr^Tkn^Name
-- parameter. Put the name in SPI format for
-- an OBJNAME string.
--
S^Term^Buf [Count^Read] := 0;
SCAN S^Term^Buf WHILE " " -> @S^Ptr;
SCAN S^Ptr UNTIL " " -> @End^Of^Text;
Character^Count :=
@End^Of^Text '-' @S^Ptr;
CALL ShiftString
(S^Ptr, Character^Count, 0);
IF (Character^Count > 0) THEN
BEGIN
Mgr^Tkn^Name[MGR^TKN^NAME^OFFSET] ':=' S^Ptr FOR