X25AM Programming Manual

PTP Applications
X25AM Programming Manual527201-001
3-65
Text of TAL Example
!-------------------------------------------------------------------------
! COMMUNICATIONS ERROR PROCEDURE
!-------------------------------------------------------------------------
PROC COMM^ERROR (ERROR);
INT ERROR;
BEGIN
CALL PRINT^ERROR^MESSAGE (TERM^BUFF, ERROR);
TERM^BUFFS := "? ";
CALL WRITEREAD (TERM^FILE, TERM^BUFF, 1, MAX^TERM^READ);
! PROMPT TERMINAL
IF <> THEN CALL DEBUG;
CALL READ (COMM^FILE, COMM^BUFFR, MAX^COMM^READ, , READ^TAG);
! POST A READ
IF <> THEN BEGIN
CALL FILEINFO (COMM^FILE, ERROR);
CALL COMM^ERROR (ERROR);
END;
END;
!-------------------------------------------------------------------------
! COMMUNICATION COMPLETE PROCEDURE
!-------------------------------------------------------------------------
PROC COMM^COMPLETE (COUNT); ! THIS PROC IS CALLED WHEN A READ
! COMPLETES FROM THE COMM LINE.
INT COUNT;
BEGIN
INT ERROR;
TERM^BUFFS ':=' COMM^BUFFRS FOR COUNT; ! TRANSFER THE CONTENTS OF THE
COMM
! READ BUFFER INTO THE TERMINAL BUFFER.
CALL READ (COMM^FILE, COMM^BUFFR, MAX^COMM^READ, , READ^TAG);
IF <> THEN BEGIN ! POST ANOTHER READ ON THE COMM LINE,
CALL FILEINFO (COMM^FILE, ERROR);! CHECK THE CONDITION CODE FOR
ERRORS
CALL COMM^ERROR (ERROR); ! AND USE THE READ TAG SO THE MAIN PROC
END; ! WILL KNOW WHAT COMPLETED.
CALL TERM^WRITE (TERM^BUFF, COUNT); ! CALL THE TERM^WRITE PROCEDURE TO
CANCEL
! THE CURRENT READ ON THE TERMINAL