(FILECREATED " 3-AUG-78 18:21:31" <KRL>DMONITOR.;86 25638  

     changes to:  PROCESSDEMO1 SetUpKrlMonitor DisplayProcess DMONITORCOMS PROCESSDEMO NewUnit

     previous date: "19-JUL-78 01:41:12" <KRL>DMONITOR.;84)


(DEFINEQ
)
(PRETTYCOMPRINT DMONITORCOMS)

(RPAQQ DMONITORCOMS [(* (Part of DSYS, not KRL)
			Functions for monitoring and communicating with a KRL job)
		     (FNS * MSETUPFNS)
		     (* functions for communicating with the KRL job)
		     (FNS * DCOMMFNS)
		     (* functions for showing process information)
		     (FNS * DPROCESSFNS)
		     (VARS PROCESSDEMO1)
		     (* functions for displaying information associated with the Matcher)
		     (FNS * DMATCHERFNS)
		     (VARS MATCHERTREE1)
		     (* unit stuff)
		     (FNS NewUnit)
		     (VARS GOALTYPEALST)
		     (* variables)
		     (VARS * DMONITORVARS)
		     (VARS (CONTROLIN)
			   (KCONTROLINJFN)
			   (KCONTROLOUTJFN)
			   (CONTROLOUT)
			   (PROCESSFIL))
		     (* menus, windows, etc.)
		     (FNS * DMONITORMENUS)
		     (IFPROP WINDOWSPECS * DMONITORWINDOWS)
		     (IFPROP WINDOWSPECS * DMONITORCANVASES)
		     (IFPROP WINDOWSPECS * DMONITORDESKTOPS)
		     (IFPROP BARGRAPHSPECS TRACES)
		     (PROP (WINDOWSPECS MENUCOMS)
			   * DMONITORMENUS)
		     (IFPROP MACRO ProcessTimeStamp)
		     (P (PUTPROP (QUOTE DESKWINCAPTIONBKGRND)
				 (QUOTE BACKGROUND)
				 (GETPROP DESKWINCAPTIONBKGRND (QUOTE BACKGROUND)))
			(ADDPROP (QUOTE MENUMENU)
				 (QUOTE MENUCOMS)
				 (QUOTE (PROCESSMENU "Process"))
				 T)
			(ADDPROP (QUOTE MENUMENU)
				 (QUOTE MENUCOMS)
				 (QUOTE (KRLMENU "Krl"))
				 T))
		     (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS
			       (ADDVARS (NLAMA NKCMD)
					(NLAML NewUnit ShowStack DisplayProcessEvent DisplayAgenda 
					       DisplayProcess)))
		     (DECLARE: DONTCOPY EVAL@COMPILE DONTEVAL@LOAD (P (LOAD? (QUOTE <KBA>RECORDS)
									     (QUOTE SYSLOAD))
								      (LOAD? (QUOTE <KBA>DISPCOMP)
									     (QUOTE SYSLOAD])
(* (Part of DSYS, not KRL) Functions for monitoring and 
communicating with a KRL job)


(RPAQQ MSETUPFNS (SetUpKrlMonitor KRL KLINK UNLINK))
(DEFINEQ

(SetUpKrlMonitor
  [LAMBDA (KFILE NoConnectFLG)                              (* mlm: " 7-MAY-78 17:03")
    (PROG (TMP)
          (DECLARE (USEDFREE DSYSMINFSLST DMONITORMENUS DLINKFIXFORMS WHOSETTYSTART MENULST 
			     DMONITORCANVASES DMONITORDESKTOPS PROCESSFIL))
          (if ~NoConnectFLG
	      then (CONNECT T))
          (for PR in DSYSMINFSLST do (MINFS (CADR PR)
					    PR:1))
          (CREATEWINDOW 'KRL (CREATEDOCUMENT 'KRL 'NIL:))   (* (SETWINDOWSPECS 'MENUMENU ' 
							    ((WIDTH SAME) (HEIGHT SAME) (TOP 406) 
							    (LEFT 10))))
          (CREATEWINDOW 'PROCESSDESK (CREATEDESKTOP 'PROCESSDESK))
          (TMP←(CREATEDOCUMENT 'CURRPROCESS 'PROCESS.LISPWINDOW T))
          (SETDOCUMENTSPECS TMP '((ACTIVE NIL)))            (* so file is opened for output, since ACTIVE is T, then
							    setting to inactive)
          (PROCESSFIL←TMP:DOCUMENT.FILENAME)
          (CREATEWINDOW 'CURRPROCESS 'CURRPROCESS NIL 'PROCESSDESK)
          (CREATEDOCUMENT 'CURRAGENDA PROCESSFIL)
          (CREATEWINDOW 'CURRAGENDA 'CURRAGENDA NIL 'PROCESSDESK)
          (CREATEDOCUMENT 'PROCESS PROCESSFIL)
          (CREATEWINDOW 'PROCESS 'PROCESS NIL 'PROCESSDESK)
          (CREATEWINDOW 'PROCSTATE (CREATECANVAS 'PROCSTATE)
			NIL 'PROCESSDESK)
          (CREATEWINDOW 'TRIGGERDESK (CREATEDESKTOP 'TRIGGERDESK))
          (CREATEDOCUMENT 'TRIGGERS PROCESSFIL)
          (CREATEWINDOW 'TRIGGERS 'TRIGGERS NIL 'TRIGGERDESK)
          (MAKEMENUS '(PROCESSMENU))
          (SETWINDOWSPECS 'TYPESCRIPT '((TOP SAME)
			   (HEIGHT 250)))                   (* (CREATEBARGRAPH 'TRACES))
          (CREATEWINDOW 'MATCHERDESK (CREATEDESKTOP 'MATCHERDESK))
          (CREATEWINDOW 'GOALTREE (CREATECANVAS 'GOALTREE)
			NIL 'MATCHERDESK)
          (PRIN1 "=========================

" PROCESSFIL)
          (CREATEWINDOW 'KRLWORKDESK (CREATEDESKTOP 'KRLWORKDESK))
          (CREATEDOCUMENT 'KRLWORKAREA 'KRLWORK.LISPWINDOW 'ACTIVE '((TYPE TEXT)))
          (CREATEWINDOW 'KRLWORKAREA 'KRLWORKAREA NIL 'KRLWORKDESK)
          (CREATEWINDOW 'KRLDATADESK (CREATEDESKTOP 'KRLDATADESK))
          (CREATEWINDOW 'NEWUNITS TMP←(CREATEDOCUMENT 'NEWUNITS 'KRLMISC.LISPWINDOW T)
			NIL 'KRLDATADESK)
          [KRLMISCFIL←TMP:DOCUMENT.FILENAME←(SETDOCUMENTSPECS NEWUNITS '((ACTIVE NIL]
          (MAKEMENUS DMONITORMENUS)
          (if T~=KFILE
	      then (KRL KFILE)
		   (if DLINKFIXFORMS
		       then (KCMD DLINKFIXFORMS])
(KRL
  [LAMBDA (KFILE)
    (DECLARE (USEDFREE NETWINLST KRLFORK DEFAULTKRL))       (* mlm: "23-FEB-78 17:39")
    NETWINLST← <'KRL ! NETWINLST>
    (KLINK)
    KRLFORK←(DDSUBSYS 'KRL (PACKFILENAME 'BODY (OR KFILE DEFAULTKRL)
					 'EXTENSION 'SAV 'DIRECTORY 'KRL1])
(KLINK
  [LAMBDA NIL
    (DECLARE (USEDFREE CONTROLIN CONTROLOUT DMONITORSCRATCHFILE USERNAME CONTROLRECORDFIL))
                                                       (* mlm: " 6-MAR-78 10:07")
                                                       (* Establishes the link with a KRL job)
    (PROG (C)
          (C←(PUPSERVER T))
          (CONTROLIN←C:1)
          (CONTROLOUT←C::1)
          [DMONITORSCRATCHFILE←(OUTPUT (OUTFILE (PACKFILENAME 'DIRECTORY USERNAME 'NAME 'DMONITOR 
							      'EXTENSION 'SCRATCHFILE]
          (PRINT (DATE)
		 DMONITORSCRATCHFILE)
          (CLOSEF DMONITORSCRATCHFILE)
          [CONTROLRECORDFIL←(OUTPUT (OUTFILE (PACKFILENAME 'DIRECTORY USERNAME 'NAME 'CONTROL 
							   'EXTENSION 'RECORD]
          (PRINT (DATE)
		 CONTROLRECORDFIL)
          (RETURN T])
(UNLINK
  [LAMBDA (DontKillKrlFlg)
    (DECLARE (USEDFREE CONTROLIN CONTROLOUT PUP# KCONTROLINJFN KCONTROLOUTJFN KRLFORK))
                                                       (* mlm: " 7-MAR-78 06:49")
    (PROG [(KILLFORK (AND KCONTROLINJFN KCONTROLOUTJFN (KILLPUPJFNS KCONTROLINJFN KCONTROLOUTJFN]
          (if CONTROLIN
	      then (CLOSEF CONTROLIN))
          (if CONTROLOUT
	      then (CLOSEF CONTROLOUT))                (* when these closes finish, the killfork will have done its 
						       job)
          (if KILLFORK
	      then (JSYS 107 KILLFORK))
          (SAVESET 'CONTROLIN NIL T 'NOPRINT)
          (SAVESET 'CONTROLOUT NIL T 'NOPRINT)
          (SAVESET 'KCONTROLINJFN NIL T 'NOPRINT)
          (SAVESET 'KCONTROLOUTJFN NIL T 'NOPRINT)
          (PUP#←0)
          (if ~DontKillKrlFlg
	      then (if KRLFORK
		       then (KFORK KRLFORK))
		   (SAVESET 'KRLFORK NIL T 'NOPRINT)
		   (GETWINDOW 'KRL):WINDOW.USER←NIL
		   NETWINLST←(REMOVE 'KRL NETWINLST])
)
(* functions for communicating with the KRL job)


(RPAQQ DCOMMFNS (KCMD NKCMD DONEKEDITING NEWUSEREXEC))
(DEFINEQ
(KCMD
  [LAMBDA (X NOERRFLG)                                      (* mlm: "29-APR-77 17:47")
                                                            (* Sends (a list of) commands across the control link to
							    the DSYS)
    (if (AND CONTROLOUT (OPENP CONTROLOUT 'OUTPUT))
	then (if (LISTP (X:1))
		 then (for Y in X do (PRIN2 Y CONTROLOUT))
	       else (PRIN2 X CONTROLOUT))
	     (FORCEOUT CONTROLOUT)
      elseif ~NOERRFLG
	then (HELP "KCMD: CONTROLOUT not open"])
(NKCMD
  [NLAMBDA LST                                              (* mlm: " 5-APR-77 16:41")
                                                            (* Sends (a list of) commands across the control link to
							    the DSYS)
                                                            (* signal across CONTROLOUT that commands are coming)
    (if (AND CONTROLOUT (OPENP CONTROLOUT 'OUTPUT))
	then (for S in LST do (PRIN2 S CONTROLOUT))
	     (FORCEOUT CONTROLOUT)
      elseif LST:-1~=T
	then (HELP "in NKCMD: CONTROLOUT not open"])
(DONEKEDITING
  [LAMBDA (WINDOW GLUMP)                               (* mlm: "26-FEB-78 15:02")
                                                       (* sends an edited KRL thing back to KRL for redefinition)
    (PROG (STARTADR STRING (GLUMPID (GLUMP:GLUMP.ID)))
          (OPENFILE DMONITORSCRATCHFILE 'APPEND)
          (STARTADR←(GETFILEPTR DMONITORSCRATCHFILE))
          (PRIN1 (SELECTQ GLUMPID:GLUMPID.OTHER
			  (FN "[DEFINEQ
")
			  (VAR "[RPAQQ ")
			  (UNIT (PACK* "(READWHITEUNITS (QUOTE " DMONITORSCRATCHFILE "))
"))
			  (HELP "in DONEKEDITING, don't know what kind of thing this is" GLUMP))
		 DMONITORSCRATCHFILE)
          (STRING←(GETSTRING GLUMP:GLUMP.STARTADR GLUMP:GLUMP.ENDADR))
          (PRIN1 (if 'OTHER =GLUMPID:GLUMPID.OTHER
		     then                              (* to overwrite the ↑Z that the SIN in PUPCOPYBYTES insists 
						       on putting in.)
			  (SUBSTRING STRING 1 -2)
		   else STRING)
		 DMONITORSCRATCHFILE)
          (PRIN1 (SELECTQ GLUMPID:GLUMPID.OTHER
			  (FN "
]")
			  (VAR "]")
			  (UNIT "

ENDUNITS

")
			  (HELP "in DONEKEDITING, don't know what kind of thing this is" GLUMP))
		 DMONITORSCRATCHFILE)
          (CLOSEF DMONITORSCRATCHFILE)
          (KCMD <'READEDITEDTHING (KWOTE DMONITORSCRATCHFILE)
		  STARTADR>])
(NEWUSEREXEC
  [LAMBDA (LISPXID LISPXXMACROS LISPXXUSERFN)               (* LISP's USEREXEC with (RESETVARS 
							    (READBUF) ...) changed to a (PROG NIL ...))
    (PROG NIL
          (if LISPXID=NIL
	      then LISPXID←'←)
      LP  (PROMPTCHAR LISPXID T LISPXHISTORY)
          (ERSETQ (LISPX (LISPXREAD T T)
			 LISPXID LISPXXMACROS LISPXXUSERFN))
          (GO LP])
)
(* functions for showing process information)


(RPAQQ DPROCESSFNS (DisplayProcess DisplayAgenda DisplayProcessEvent ShowStack ProcessTimeStamp 
				   ProcStateSpecFn ProcStateTouchFn PROCESSDEMO))
(DEFINEQ

(DisplayProcess
  [NLAMBDA (Name FIELDS TIM)                                (* mlm: " 6-MAR-78 09:50")
    (PROG (($DOC (GETDOCUMENT 'CURRPROCESS)))
          (SETDOCUMENTSPECS $DOC '((ACTIVE T)))
          (VISIBLE 'CURRPROCESS)
          (NEWGLUMP 'CURRPROCESS Name)
          (RESETLST (RESETSAVE (OUTPUT PROCESSFIL))
		    (PRINTXDTMSG BOLDMSG)
		    (PRIN1 Name)
		    (PRINTXDTMSG NORMALMSG)
		    (for PR in FIELDS do (TAB 4)
					 (PRINTXDTMSG ITALICMSG)
					 (PRIN1 PR:1)
					 (PRIN1 ": ")
					 (PRINTXDTMSG NORMALMSG)
					 (PRIN1 (CADR PR))
					 (TERPRI))
		    (TERPRI))
          (UPDATEDOCUMENT 'CURRPROCESS)
          (SETWINDOWCONTENTS 'CURRPROCESS Name)
          (SETDOCUMENTSPECS $DOC '((ACTIVE NIL])
(DisplayAgenda
  [NLAMBDA (Name Processes TIM)                        (* mlm: " 6-MAR-78 09:48")
    (PROG (($DOC (GETDOCUMENT 'CURRAGENDA)))
          (SETDOCUMENTSPECS $DOC '((ACTIVE T)))
          (VISIBLE 'CURRAGENDA)
          (NEWGLUMP 'CURRAGENDA Name)
          (RESETLST (RESETSAVE (OUTPUT $DOC:DOCUMENT.FILENAME))
		    (PRINTXDTMSG BOLDMSG)
		    (PRIN1 Name)
		    (PRIN1 ": ")
		    (PRINTXDTMSG NORMALMSG)
		    (PRINT Processes))
          (UPDATEDOCUMENT 'CURRAGENDA)
          (SETWINDOWCONTENTS 'CURRAGENDA Name)
          (SETDOCUMENTSPECS $DOC '((ACTIVE NIL])
(DisplayProcessEvent
  [NLAMBDA (EVENT PROC SCHEDULER REST TIM)             (* mlm: " 6-MAR-78 09:50")
    (PROG (($DOC (GETDOCUMENT 'PROCESS)))
          (SETDOCUMENTSPECS $DOC '((ACTIVE T)))
          (VISIBLE 'PROCESS)
          (NEWGLUMP 'PROCESS EVENT)
          (RESETLST (RESETSAVE (OUTPUT PROCESSFIL))
		    (PRINTXDTMSG BOLDMSG)
		    (PRINT EVENT)
		    (TAB 4)
		    (PRINTXDTMSG ITALICMSG)
		    (PRIN1 "Process: ")
		    (PRINTXDTMSG NORMALMSG)
		    (PRINT PROC)
		    (if SCHEDULER
			then (TAB 4)
			     (PRINTXDTMSG ITALICMSG)
			     (PRIN1 "Scheduler: ")
			     (PRINTXDTMSG NORMALMSG)
			     (PRINT SCHEDULER))
		    (for PR in REST do (TAB 4)
				       (PRINTXDTMSG ITALICMSG)
				       (PRIN1 PR:1)
				       (PRIN1 ": ")
				       (PRINTXDTMSG NORMALMSG)
				       (PRIN1 PR:2)
				       (TERPRI)))
          (UPDATEDOCUMENT 'PROCESS)
          (SETWINDOWCONTENTS 'PROCESS EVENT)
          (SETDOCUMENTSPECS $DOC '((ACTIVE NIL])

(ShowStack
  [NLAMBDA (STK STKCOLORS)
    (DECLARE (SPECVARS . T))
    (PROG ((MAXTREESUBRHEIGHT 16)
	   (MAXTREESUBRWIDTH 55))
          (DECLARE (SPECVARS . T))
          (DISPLAYTREE 'PROCSTATE STK 'ProcStateTouchFn 'ProcStateSpecFn])
(ProcessTimeStamp
  [LAMBDA NIL
    (PRINT (CLOCK 2])

(ProcStateSpecFn
  [LAMBDA (NODE)
    (DECLARE (USEDFREE STKCOLORS))
    (SELECTQ (CADR (FASSOC NODE:1 STKCOLORS))
	     (NIL)
	     [BLACK '((BACKGROUND BLACK)
		     (TEXTSTRING 1 (INVERTED T)
				 (BOLD T]
	     [GREY '((BACKGROUND (QUOTE GREY))
		    (TEXTSTRING 1 (INVERTED NIL]
	     NIL])

(ProcStateTouchFn
  [LAMBDA (SUBR)
    NIL])

(PROCESSDEMO
  [LAMBDA (FLG)
    (SELECTQ FLG
	     (1 (CHATPRINT)
		SHOWTIMEFLG←NIL
		GCGAGFLG←T
		(for EXP in PROCESSDEMO1 do (EVAL EXP)))
	     (HELP "FLG not known" FLG])
)

(RPAQQ PROCESSDEMO1 ((DisplayAgenda Phrases (SynProc11 SynProc9 SynProc14 SynProc15)
				    11780)
		     (DisplayProcessEvent RunningProcess SynProc11 Phrases NIL 11832)
		     (DisplayProcess SynProc11 ((function NewNounPhrase)
				      (terminationAction CleanSTM))
				     11919)
		     (ShowStack [Controller (Input (NextLex)
						   (LexFits?))
					    (Syntax (NextWord)
						    (WordFits? (SynProc14)
							       (SynProc11)
							       (SynProc15]
				((Controller BLACK)
				 (Syntax BLACK)
				 (WordFits? BLACK)
				 (SynProc11 BLACK)
				 (SynProc14 GREY)))
		     (VISIBLE (QUOTE PROCESSMENU))
		     (NewUnit NP17 ("A ProperNounPhrase
        with head = 'Fred"))))
(* functions for displaying information associated with the 
Matcher)


(RPAQQ DMATCHERFNS (DisplayGoalTree MakeGoalTree))
(DEFINEQ

(DisplayGoalTree
  [LAMBDA (TOPNODE)                                         (* mlm: "29-DEC-77 08:27")
    (PROG ((MAXTREESUBRHEIGHT 16)
	   (MAXTREESUBRWIDTH 65))
          (DECLARE (SPECVARS . T))
          (VISIBLE 'GOALTREE)
          (DisplayTree 'GOALTREE (MakeGoalTree (OR TOPNODE (READ DATAIN])
(MakeGoalTree
  [LAMBDA (NODE)                                            (* edited: "15-NOV-77 19:04")
    <<NODE:1
    (CADR (FASSOC (CADR NODE)
		  GOALTYPEALST))> ! (for CHILD in (CDDR NODE) collect (MakeGoalTree CHILD)) >])
)

(RPAQQ MATCHERTREE1 [1 AlignAnchor [2 AlignMapDescUnique (3 AlignMapDescOneOf
							    (4 AlignAnchor (5 AlignMapDescUnique
									      (6 AlignMapDescOneOf
										 (7 AlignAnchor]
		       (8 AlignMapDescUnique (9 AlignMapDescOneOf (10 AlignAnchor)
						(11 AlignAnchor])
(* unit stuff)

(DEFINEQ

(NewUnit
  [NLAMBDA (NAME OTHER)
    (PROG (($DOC (GETDOCUMENT 'NEWUNITS)))
          (SETDOCUMENTSPECS $DOC '((ACTIVE T)))
          (VISIBLE 'NEWUNITS)
          (NEWGLUMP $DOC NAME)
          (RESETLST (RESETSAVE (OUTPUT $DOC:DOCUMENT.FILENAME))
		    (PRINTXDTMSG BOLDMSG)
		    (PRINT NAME)
		    (PRINTXDTMSG NORMALMSG)
		    (for X in OTHER do (SPACES 4)
				       (if (NLISTP X)
					   then (PRIN3 X)
						(TERPRI)
					 else (PRINTXDTMSG ITALICMSG)
					      (PRIN1 X:1)
					      (PRIN1 ":")
					      (PRINTXDTMSG NORMALMSG)
					      (PRIN1 (CADR X))
					      (TERPRI)))
		    (TERPRI))
          (UPDATEDOCUMENT 'NEWUNITS)
          (SETWINDOWCONTENTS 'NEWUNITS NAME)
          (SETDOCUMENTSPECS $DOC '((ACTIVE NIL])
)

(RPAQQ GOALTYPEALST ((AlignAnchor AA)
		     (AlignMapDescUnique AMDU)
		     (AlignMapDescOneOf AMDOO)))
(* variables)


(RPAQQ DMONITORVARS (DESKWINCAPTIONBKGRND DMONITORGLOBALVARS DMONITORDOCUMENTS DMONITORBARGRAPHS ↑W 
					  ↑G TIMEFUSELST DSYSMINFSLST BOLDMSG ITALICMSG BOLDITALICMSG 
					  NORMALMSG))

(RPAQQ DESKWINCAPTIONBKGRND WHITE)

(RPAQQ DMONITORGLOBALVARS (PROCESSFIL))

(RPAQQ DMONITORDOCUMENTS (PROCESS CURRPROCESS CURRAGENDA KRLWORKAREA))

(RPAQQ DMONITORBARGRAPHS (KRLSTORAGE TRACES))

(RPAQQ ↑W %)

(RPAQQ ↑G %)

(RPAQQ TIMEFUSELST ((EDITMENU 3)
		    (WORKAREA 5)
		    (MESSAGES 2)
		    (SNDMSG 2)
		    (HISTORY 4)
		    (MASTERSCOPE 4)
		    (HELPSYS 3)))

(RPAQQ DSYSMINFSLST ((ARRAYP 3000)
		     (SWPARRAYP 100)
		     (STACKP 200)
		     (LISTP 8000)
		     (VCELLP 500)
		     (LITATOM 500)
		     (FLOATP 500)
		     (FIXP 3000)
		     (STRINGP 1000)
		     (ATOM.CHARS 2000)
		     (STRING.CHARS 3000)
		     (TXDTRECORD 2000)
		     (TXDTADDR 500)
		     (TXDTGRABBEDOBJ 300)
		     (TXDTBUFFER 300)))

(RPAQQ BOLDMSG (% ))

(RPAQQ ITALICMSG (@))

(RPAQQ BOLDITALICMSG (`))

(RPAQQ NORMALMSG (%))

(RPAQ CONTROLIN NIL)

(RPAQ KCONTROLINJFN NIL)

(RPAQ KCONTROLOUTJFN NIL)

(RPAQ CONTROLOUT NIL)

(RPAQ PROCESSFIL NIL)
(* menus, windows, etc.)


(RPAQQ DMONITORMENUS (KRLMENU PROCESSMENU))
(DEFINEQ
(KRLMENU
  [LAMBDA (KEY)                                             (* mlm: " 8-MAY-78 15:19")
    (SELECTQ KEY
	     (LISTEN (PRINT 'LISTEN)
		     (LISPXUNREAD '(LISTEN)))
	     (SENDUNITS (for G in (COLLECTSELECTEDGLUMPS 'UNIT T) do (DONEUNITEDITING G)))
	     (SENDFNS (CHATPRINT "not implemented yet"))
	     (STORAGE (NKCMD (DSTORAGE))
		      (EVAL (READ CONTROLIN)))
	     (PROGN (PRINT KEY)
		    (LISPXUNREAD <KEY>])
(PROCESSMENU
  [LAMBDA (KEY)
    (SELECTQ (KEY)
	     (SHOULDNT)
	     (SHOULDNT])
)

(RPAQQ DMONITORWINDOWS (PROCESS CURRPROCESS CURRAGENDA KRLSTORAGE TRACES KRL KRLWORKAREA NEWUNITS 
				TRIGGERS))

(PUTPROPS PROCESS WINDOWSPECS ((INITIMEFUSE NIL)
			       (LEFT 10)
			       (WIDTH 250)
			       (HEIGHT 100)
			       (TOP 312)
			       (TOPMARGIN 2)
			       (CAPTION "Process Events" (CENTERED)
					(BACKGROUND HORIZSTRIPES)
					(BORDERWIDTH 1))
			       (ENDOFDOCFLG NIL)
			       (TOPMARGIN 8)
			       (WHENTOUCHED (QUOTE DWHENTOUCHEDFN1))))

(PUTPROPS CURRPROCESS WINDOWSPECS ((INITIMEFUSE NIL)
				   (LEFT 340)
				   (WIDTH 200)
				   (HEIGHT 150)
				   (TOP 312)
				   (TOPMARGIN 2)
				   (CAPTION "Current Process" (BACKGROUND HORIZSTRIPES)
					    (CENTERED)
					    (FONT 0)
					    (BORDERWIDTH 1))
				   (ENDOFDOCFLG NIL)
				   (TOPMARGIN 8)
				   (WHENTOUCHED (QUOTE DWHENTOUCHEDFN1))))

(PUTPROPS CURRAGENDA WINDOWSPECS ((INITIMEFUSE NIL)
				  (LEFT 10)
				  (RIGHT 539)
				  (HEIGHT 3 LINES)
				  (TOP 370)
				  (CAPTION "Current Agenda" (BACKGROUND HORIZSTRIPES)
					   (CENTERED)
					   (BORDERWIDTH 1))
				  (ENDOFDOCFLG NIL)
				  (TOPMARGIN 7)
				  (WHENTOUCHED (QUOTE DWHENTOUCHEDFN1))))

(PUTPROPS KRLSTORAGE WINDOWSPECS ((INITIMEFUSE 3)
				  (LEFT 25)
				  (BOTTOM 10)
				  (HEIGHT 400)
				  (WIDTH 400)
				  (BACKGROUND BLACK)
				  (CAPTION "KRL Storage" (BACKGROUND BLACK))
				  (LEFTMARGIN 20)
				  (RIGHTMARGIN 8)
				  (BOTTOMARGIN 25)
				  (TOPMARGIN 8)
				  (ADISREGION 6)
				  (ENDOFDOCFLG NIL)))

(PUTPROPS TRACES WINDOWSPECS ((LEFT 380)
			      (WIDTH 200)
			      (BOTTOM 20)
			      (HEIGHT 137)
			      (BACKGROUND WHITE)
			      (CAPTION "Traces" (NOT CENTERED)
				       (BACKGROUND THINBLACKVERTSTRIPES)
				       (BORDERWIDTH 1))
			      (VISIBLE T)
			      (INITIMEFUSE NIL)
			      (LEFTMARGIN 4)
			      (RIGHTMARGIN 4)
			      (TOPMARGIN 8)
			      (ENDOFDOCFLG NIL)))

(PUTPROPS KRL WINDOWSPECS ((LEFT SAMEAS TYPESCRIPT)
			   (RIGHT 595)
			   (TOP 18 LESS THAN TYPESCRIPT)
			   (BOTTOM SAMEAS TYPESCRIPT)
			   (CAPTION "KRL" (BACKGROUND THINWHITEVERTSTRIPES)
				    (CENTERED T))
			   (VISIBLE NIL)
			   (ENDOFDOCFLG T)
			   (INITIMEFUSE 10)
			   (TYPE PERMANENT)))

(PUTPROPS KRLWORKAREA WINDOWSPECS ((INITIMEFUSE 5)
				   (PAGEHEIGHT 0)
				   (NOT VISIBLE)
				   (FONT GACHA10)
				   (LEFT 0)
				   (WIDTH 550)
				   (HEIGHT 300)
				   (TOP 0)
				   (CAPTION "KRL Work Area" (BACKGROUND BLACK))
				   (ENDOFDOCFLG T)
				   (VISIBLE T)
				   (WHENTOUCHED (QUOTE DWHENTOUCHEDFN1))))

(PUTPROPS NEWUNITS WINDOWSPECS ((BOTTOM 10)
				(HEIGHT 5 LINES)
				(LEFT 10)
				(WIDTH 20 COLUMNS)
				(FONT (QUOTE HELVETICA8))
				(CAPTION "New Units" (BACKGROUND BLACK)
					 (NOT CENTERED))
				(INITIMEFUSE 5)
				(ENDOFDOCFLG NIL)))

(PUTPROPS TRIGGERS WINDOWSPECS ((INITIMEFUSE NIL)
				(LEFT 10)
				(TOP 220)
				(RIGHT 460)
				(HEIGHT 10 LINES)
				(CAPTION "Triggers" (CENTERED)
					 (BACKGROUND HORIZSTRIPES)
					 (BORDERWIDTH 1))))

(RPAQQ DMONITORCANVASES (PROCSTATE GOALTREE))

(PUTPROPS PROCSTATE WINDOWSPECS ((INITIMEFUSE NIL)
				 (LEFT 10)
				 (TOP 192)
				 (WIDTH 300)
				 (HEIGHT 150)
				 (CAPTION "Process state" (BACKGROUND WHITEGRAPH)
					  (CENTERED)
					  (FONT 4)
					  (BORDERWIDTH 1))))

(PUTPROPS GOALTREE WINDOWSPECS ((LEFT 10)
				(RIGHT 325)
				(TOP 300)
				(BOTTOM 25)
				(CAPTION "Goal Tree" CENTERED (BACKGROUND WHITEGRAPH)
					 (BORDER 1))
				(INITIMEFUSE 4)))

(RPAQQ DMONITORDESKTOPS (PROCESSDESK TRIGGERDESK MATCHERDESK KRLWORKDESK KRLSTATEDESK KRLDATADESK))

(PUTPROPS PROCESSDESK WINDOWSPECS ((BACKGROUND BLACKSTRIPESLEFT)
				   (BORDER 2)
				   (LEFT 40)
				   (RIGHT 589)
				   (TOP 450)
				   (HEIGHT 402)
				   (CAPTION "Process Desktop" (BACKGROUND DESKWINCAPTIONBKGRND)
					    (CENTERED T)
					    (BORDER 2))
				   (INITIMEFUSE 8)
				   (VISIBLE NIL)))

(PUTPROPS TRIGGERDESK WINDOWSPECS ((BACKGROUND BLACKSTRIPESRIGHT)
				   (BORDER 2)
				   (LEFT 80)
				   (RIGHT 550)
				   (TOP 300)
				   (HEIGHT 250)
				   (CAPTION "Triggers Desktop" (BACKGROUND DESKWINCAPTIONBKGRND)
					    (CENTERED T)
					    (BORDER 2))
				   (INITIMEFUSE 8)
				   (VISIBLE NIL)))

(PUTPROPS MATCHERDESK WINDOWSPECS ((BACKGROUND WHITESTRIPESLEFT)
				   (BORDER 2)
				   (LEFT 75)
				   (WIDTH 400)
				   (BOTTOM 25)
				   (HEIGHT 325)
				   (CAPTION "Matcher Desktop" (BACKGROUND DESKWINCAPTIONBKGRND)
					    (CENTERED T)
					    (BORDER 2))
				   (VISIBLE NIL)
				   (INITIMEFUSE 5)))

(PUTPROPS KRLWORKDESK WINDOWSPECS ((LEFT 90)
				   (RIGHT 595)
				   (TOP 10 LESS THAN (KRL BOTTOM))
				   (HEIGHT 350)
				   (DESKY -320)
				   (DESKX -15)
				   (CAPTION "KRL Work Desk" (BACKGROUND DESKWINCAPTIONBKGRND)
					    (CENTERED T)
					    (BORDER 2))
				   (VISIBLE NIL)
				   (BACKGROUND THINCLOSEVERTSTRIPES)
				   (BORDER 2)
				   (INITIMEFUSE 6)))

(PUTPROPS KRLDATADESK WINDOWSPECS ((TOP 500)
				   (HEIGHT 110)
				   (RIGHT 590)
				   (WIDTH 200)
				   (BACKGROUND VERTSTRIPES)
				   (CAPTION "KRL Data Desk" (BACKGROUND DESKWINCAPTIONBKGRND)
					    (CENTERED T)
					    (BORDER 2))
				   (INITIMEFUSE 5)
				   (VISIBLE NIL)))

(PUTPROPS TRACES BARGRAPHSPECS ((BARS 4)
				(WIDTH 30)
				(BASE BOTTOM)
				(HEIGHT 75)
				(BOXED 2)
				(BOXEMPTY T)))

(RPAQQ DMONITORMENUS (KRLMENU PROCESSMENU))

(PUTPROPS KRLMENU WINDOWSPECS ((HEIGHT 4 LINES)
			       (CAPTION "KRL" CENTERED)
			       (LEFT 460)
			       (BOTTOM 460)
			       (VISIBLE NIL)
			       (INITIMEFUSE NIL)))

(PUTPROPS PROCESSMENU WINDOWSPECS ((WIDTH 300)
				   (LEFT 10)
				   (CAPTION "PROCESS COMMANDS" (CENTERED)
					    (FONT HELVETICA8))
				   (TOP 42)
				   (HEIGHT 1 LINES)
				   (BACKGROUND BLACK)
				   (VISIBLE NIL)
				   (INITIMEFUSE NIL)
				   (ENDOFDOCFLG NIL)
				   (ONDESKTOP PROCESSDESK)
				   (RIGHTMARGIN 2)
				   (FONT HELVETICA8)))

(PUTPROPS KRLMENU MENUCOMS [(SENDUNITS "Send Units"
				       (Sends all units "selected" in the Unit Work Area to the KRL 
					      job.))
	   (SENDFNS "Send Functions"
		    (Sends all functions in the Work Area that came from the KRL job back to it))
	   (STORAGE "KRL Storage" (Displays storage information for the KRL job as a bargraph))
	   (GOAWAY "Leave Monitor"
		   (Leaves KRL Monitor and returns to straight DLISP; to return to the Monitor, type
			   (SetUpKrlMonitor T])

(PUTPROPS PROCESSMENU MENUCOMS ((SHOW "Show")
				(SUSPEND "Suspend")
				(KILL "Kill")
				(MOVEB "MoveBefore")
				(MOVEA "MoveAfter")
				(PAUSEAT "PauseAt")))
(PUTPROP (QUOTE DESKWINCAPTIONBKGRND)
	 (QUOTE BACKGROUND)
	 (GETPROP DESKWINCAPTIONBKGRND (QUOTE BACKGROUND)))
(ADDPROP (QUOTE MENUMENU)
	 (QUOTE MENUCOMS)
	 (QUOTE (PROCESSMENU "Process"))
	 T)
(ADDPROP (QUOTE MENUMENU)
	 (QUOTE MENUCOMS)
	 (QUOTE (KRLMENU "Krl"))
	 T)
(DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS 

(ADDTOVAR NLAMA NKCMD)

(ADDTOVAR NLAML NewUnit ShowStack DisplayProcessEvent DisplayAgenda DisplayProcess)
)
(DECLARE: DONTCOPY EVAL@COMPILE DONTEVAL@LOAD 
(LOAD? (QUOTE <KBA>RECORDS)
       (QUOTE SYSLOAD))
(LOAD? (QUOTE <KBA>DISPCOMP)
       (QUOTE SYSLOAD))
)
(DECLARE: DONTCOPY
  (FILEMAP (NIL (230 241) (2200 6956 (SetUpKrlMonitor 2212 . 4761) (KRL 4765 . 5050) (KLINK 5054 . 5887) (
UNLINK 5891 . 6953)) (7077 9985 (KCMD 7089 . 7632) (NKCMD 7636 . 8230) (DONEKEDITING 8234 . 9578) (
NEWUSEREXEC 9582 . 9982)) (10200 13492 (DisplayProcess 10212 . 10975) (DisplayAgenda 10979 . 11578) (
DisplayProcessEvent 11582 . 12597) (ShowStack 12601 . 12856) (ProcessTimeStamp 12860 . 12917) (
ProcStateSpecFn 12921 . 13234) (ProcStateTouchFn 13238 . 13288) (PROCESSDEMO 13292 . 13489)) (14349 
14947 (DisplayGoalTree 14361 . 14686) (MakeGoalTree 14690 . 14944)) (15266 16070 (NewUnit 15278 . 
16067)) (17558 18124 (KRLMENU 17570 . 18029) (PROCESSMENU 18033 . 18121)))))
STOP