Guardian Programmer's Guide

Table Of Contents
Communicating With Terminals
Guardian Programmer’s Guide 421922-014
10 - 33
Selecting BREAK Mode
! Prompt the user to enter a string of characters:
WCOUNT := 2;
BUFFER ':=' "? ";
RCOUNT := 128;
CALL WRITEREAD(HOME^TERM^NUM,BUFFER,WCOUNT,
RCOUNT,BYTES^READ);
IF <> THEN
BEGIN
CALL FILE_GETINFO_(HOME^TERM^NUM,ERROR);
CALL DEBUG;
END;
! If the user enters "exit" then terminate:
IF FIRST^BYTE = "exit" THEN
BEGIN
CALL SETMODE(HOME^TERM^NUM,BREAK^ACCESS,NORMAL^MODE,
BREAK^ACCESS^OFF);
LAST^PARAM^COUNT := 8;
CALL SETPARAM(HOME^TERM^NUM,SET^BREAK^FUNCTION,
LAST^PARAM^ARRAY,LAST^PARAM^COUNT);
CALL PROCESS_STOP_;
END;
! If the user types "give break", return BREAK to
! previous owner and resume:
IF FIRST^BYTE = "give break" THEN
BEGIN
CALL SETMODE(HOME^TERM^NUM,BREAK^ACCESS,NORMAL^MODE,
BREAK^ACCESS^OFF);
LAST^PARAM^COUNT := 8;
CALL SETPARAM(HOME^TERM^NUM,SET^BREAK^FUNCTION,
LAST^PARAM^ARRAY,LAST^PARAM^COUNT);
RETURN;
END;
! If the user enters "resume" then give up BREAK access
! and return to computational mode:
IF FIRST^BYTE = "resume" THEN
BEGIN
CALL SETMODE(HOME^TERM^NUM,BREAK^ACCESS,
!param1!,
BREAK^ACCESS^OFF);
RETURN;
END;
!Otherwise echo the typed string to the terminal then
!loop to prompt for more input:
CALL WRITE(HOME^TERM^NUM,BUFFER,BYTES^READ);
END;
END;