6100 BSC Programming Manual

BSC Example
detail^message^others = 'P' := [
!0 ! " NO ADDITIONAL INFORMATION AVAILABLE ",
!1 ! " LINE NOT CONFIGURED ",
!2 ! " NO USER TRANSLATE TABLE ",
!3 ! " LINE BUSY ",
!4 ! " NO REQUEST ACTIVE ",
!5 ! " TRACE IS ACTIVE ",
!6 ! " CONNECT TIMEOUT ",
!7 ! " DISCONNECT TIMEOUT ",
!8 ! " LAST REPLY ENQ ",
!9 ! " TIMEOUT WAITING FOR BID ",
!10! " CONSECUTIVE RVI READS ",
!11! " CONSECUTIVE CONVERSATIONAL REPLIES ",
!12! " ENQ RESPONSE TO BID ",
!13! " ENQ ENQ RETRY ABORT ON BID ",
!14! " RVI READ INITIAL "];
STRING
UNKNOWN^ERROR^MESSAGE = 'P' := [
!0 ! " UNKNOWN ERROR! "];
INT error^index;
status := cpline^buffer.clip^rsp^hdr.status;
status^detail := cpline^buffer.clip^rsp^hdr.status^detail;
IF NOT status THEN
BEGIN
BUFFER ':=' error^message FOR error^message^length;
RETURN;
END
ELSE
BEGIN
RSCAN error^numbers[20] UNTIL status -> @SP;
IF $CARRY THEN
BUFFER ':=' UNKNOWN^ERROR^MESSAGE FOR error^message^length
ELSE
BEGIN
error^index := @SP - @error^numbers;
BUFFER ':=' ERROR^MESSAGE[error^message^length *
error^index] FOR error^message^length;
END
END;
CALL WRITE^TERM(IBUFFER,error^message^length);
IF status = 22 THEN
BEGIN
IF NOT status^detail THEN
BUFFER ':=' detail^message^22 FOR error^message^length
ELSE
B-11