Guardian Programmer's Guide

Table Of Contents
Communicating With Terminals
Guardian Programmer’s Guide 421922-014
10 - 34
Selecting BREAK Mode
!------------------------------------------------------------
! Main procedure does computation without terminal
! interaction. The procedure checks $RECEIVE periodically
! for a Break-on-Device message and then calls BREAK^IT to
! process the message.
!------------------------------------------------------------
PROC TERMS MAIN;
BEGIN
! Process the Startup message:
CALL INITIALIZER;
! Open the terminal file:
CALL PROCESS_GETINFO_(!process^handle!,
!file^name:maxlen!,
!file^name^len!,
!priority!,
!moms^processhandle!,
HOME^TERM:MAXLEN,
LENGTH);
ERROR := FILE_OPEN_(HOME^TERM:LENGTH,HOME^TERM^NUM);
IF ERROR <> 0 THEN CALL PROCESS_STOP_;
! Open the $RECEIVE files for nowait I/O
LENGTH := 8;
ERROR := FILE_OPEN_(RECV^FILE:LENGTH,RECV^NUM,
!access!,
!exclusion!,
NOWAIT);
IF ERROR <>0 THEN CALL PROCESS_STOP_;
! Enable BREAK:
PARAM^ARRAY[0] := NEW^OWNER;
PARAM^ARRAY[1] := BREAK^MODE;
PARAM^ARRAY[2] := 0;
PARAM^ARRAY[3] := 0;
PARAM^COUNT := 8;
LAST^PARAM^COUNT := 8;
CALL SETPARAM(HOME^TERM^NUM,SET^BREAK^FUNCTION,
PARAM^ARRAY,PARAM^COUNT,
LAST^PARAM^ARRAY,LAST^PARAM^COUNT);