OSI/MHS Management Programming Manual
Examples
OSI/MHS Management Programming Manual—424824-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










