TAL Programmer's Guide
Modular Programming Example
Sample Programs
A–20 096254 Tandem Computers Incorporated
Example A-6e. D-Series Message Module (Page 2 of 3)
?SECTION msg_init
PROC msg_init;
 BEGIN
 INT term_name_len;
 STRING .term_name[0:term_name_max_len - 1];
 CALL PROCESS_GETINFO_(!process_handle!,
 !file_name:max_len!,
 !file_name_len!,
 !priority!,
 !moms_phandle!,
 term_name:term_name_max_len,
 term_name_len,
 !...! );
 CALL FILE_OPEN_(term_name:term_name_len, term_file_number);
 END;
?SECTION msg
PROC msg (number, altnum);
 INT number, altnum;
 BEGIN
 STRING .buffer[0:msg_buf_end];
 STRING .bufptr := @buffer;
 CASE number OF
 BEGIN
 msg_eof ->
 buffer ':=' " *** End of File " -> @bufptr;
 msg_in_open ->
 buffer ':=' " *** In file open failed " -> @bufptr;
 msg_in_name ->
 buffer ':=' " *** Bad in file name " -> @bufptr;
 msg_read ->
 buffer ':=' " *** Read error " -> @bufptr;
 msg_out_open ->
 buffer ':=' " *** Out file open failed "-> @bufptr;
 msg_out_name ->
 buffer ':=' " *** Bad out file name " -> @bufptr;
 msg_write ->
 buffer ':=' " *** Write error " -> @bufptr;
 OTHERWISE ->
 ;
 END;
 IF altnum <> 0 THEN
 BEGIN
 CALL NUMOUT (bufptr, altnum, 10, 5);
 @bufptr := @bufptr + 5;
 END;










