Guardian Programmer's Guide

Table Of Contents
Writing a Command-Interpreter Monitor ($CMON)
Guardian Programmer’s Guide 421922-014
23 - 87
Sample Command-Interface Program
!------------------------------------------------------------
! Procedure to read the Startup message and open the terminal
! and $CMON files.
!------------------------------------------------------------
PROC INIT;
BEGIN
STRING .PROGNAME[0:MAXFLEN - 1];
INT PROGNAME^LEN;
STRING .PROCESS^NAME[0:MAXFLEN - 1];
INT PROCESS^NAME^LEN;
STRING .TERMNAME[0:MAXFLEN - 1];
INT TERMLEN;
INT ERROR;
! Call the INITIALIZER and save the Startup message:
CALL INITIALIZER(!rucb!,
!passthru!,
SAVE^STARTUP^MESSAGE);
! Open the IN file from the Startup message:
ERROR := OLDFILENAME_TO_FILENAME_(
CI^STARTUP.INFILE.VOLUME,
TERMNAME:MAXFLEN,TERMLEN);
IF ERROR <> 0 THEN CALL PROCESS_STOP_(!process^handle!,
!specifier!,
ABEND);
ERROR := FILE_OPEN_(TERMNAME:TERMLEN,TERMNUM);
IF ERROR <> 0 THEN CALL PROCESS_STOP_(!process^handle!,
!specifier!,
ABEND);
! Open the $CMON; create it if it does not already exist:
PROGNAME ':=' "$APPLS.PROGS.ZCMON" ->@S^PTR;
PROGNAME^LEN := @S^PTR '-' @PROGNAME;
PROCESS^NAME ':=' "$CMON" -> @S^PTR;
PROCESS^NAME^LEN := @S^PTR '-' @PROCESS^NAME;
CALL CREATE^AND^OPEN^CMON(CMONNUM,PROGNAME,PROGNAME^LEN,
PROCESS^NAME,PROCESS^NAME^LEN);
END;