X25AM Programming Manual
PTP Applications
X25AM Programming Manual—527201-001
3-64
Text of TAL Example
!-------------------------------------------------------------------------
! PRINT COMMUNICATIONS ERROR MESSAGE PROCEDURE
!-------------------------------------------------------------------------
PROC PRINT^ERROR^MESSAGE (BUFFER, ERROR);
 STRING .BUFFER;
 INT ERROR;
BEGIN
 LITERAL ERROR^MESSAGE^LENGTH = 52;
 INT .INTPTR := @BUFFER '>>' 1;
 INT ERROR^INDEX;
 STRING .SP,
 .ERROR^NUMBERS[0:9] := [ 0, 1, 2, 14, 21, 28, 33, 122, 140],
 ERROR^MESSAGE = 'P' := [
 !0 ! "0: NO ERROR OR NOT A COMM ERROR ",
 !1 ! "1: END OF FILE ",
 !2 ! "2: INVALID OPERATION ",
 !3 ! "14: DEVICE DOES NOT EXIST ",
 !4 ! "21: ILLEGAL COUNT PARAMETER IN WRITE/READ REQUEST ",
 !5 ! "28: NUMBER OF OUTSTANDING OPERATIONS > OPEN REQUEST",
 !6 ! "33: X.25 CAN NOT OBTAIN I/O POOL FOR THE REQUEST ",
 !7 ! "122: REQUEST ABORTED,POSSIBLE DATA LOSS DUE TO RESET",
 !8 ! "140: MODEM ERROR "];
 RSCAN ERROR^NUMBERS[8] UNTIL ERROR -> @SP;
 ERROR^INDEX := @SP - @ERROR^NUMBERS;
 BUFFER ':=' ERROR^MESSAGE [ERROR^MESSAGE^LENGTH * ERROR^INDEX] FOR
 ERROR^MESSAGE^LENGTH;
 CALL CANCEL (TERM^FILE);
 CALL TERM^WRITE (INTPTR, ERROR^MESSAGE^LENGTH);
 IF ERROR <> 0
 THEN CALL ABEND;
END; !PROC FORMAT^ERROR^MESSAGE










