(FILECREATED "18-JUL-78 09:42:39" <KRL>MYCIN.;27 19286  

     changes to:  MYCINDEMO

     previous date: "11-JUL-78 19:14:49" <KRL>MYCIN.;26)


(PRETTYCOMPRINT MYCINCOMS)

(RPAQQ MYCINCOMS [(* Reporting functions)
		  (FNS FINDOUT TRYING RULESUCCEEDED CONCLUDE RULEFAILED FINISHED PrintAntecedent)
		  (* Setup stuff and control functions)
		  (FNS LoadMycin SetUpMycinMonitor MYCIN MYCINEVAL DOIT MYCINMENU CHATSIGNAL 
		       MYCINDEMO)
		  (FNS GLUMPOTHER SELECTPRINT MYSELECT)
		  (VARS MYCINFILES NORMALMSG BOLDMSG ITALICMSG MYCINPICTURES (MYCINPICTUREFLG))
		  (PROP WINDOWSPECS * MYCINWINDOWS)
		  (PROP (WINDOWSPECS MENUCOMS)
			MYCINMENU)
		  (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS
			    (ADDVARS (NLAMA)
				     (NLAML FINISHED RULEFAILED CONCLUDE RULESUCCEEDED TRYING FINDOUT)
				     ))
		  (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY (P (LOAD? (QUOTE <KBA>DISPCOMP))
								     (LOAD? (QUOTE <KBA>RECORDS])
(* Reporting functions)

(DEFINEQ

(FINDOUT
  [NLAMBDA (WHAT CNTXT RLEV)
    (DECLARE (USEDFREE GOALSTACK))                          (* mlm: "15-JUN-78 12:44")
    (WINPROG (GLMP ADR1 ADR2 ($DOC (GETDOCUMENT 'GOAL))
		   (MULTIPLEFLG))
	     (DECLARE (SPECVARS MULTIPLEFLG))
	     (SETWINVARS (GETWINDOW 'GOAL))
	     (SETDOCUMENTSPECS $DOC '((ACTIVE T)))
	     (VISIBLE 'GOAL)
	     GLMP←(NEWGLUMP 'GOAL (create GLUMPID NAME ← WHAT))
	     (RESETFORM (OUTPUT $DOC:DOCUMENT.FILENAME)
			(PROG ((BOLDMSG (create TXDTMSGREC BOLD ← T FONTNUMBER ← 
						$DOC:DOCUMENT.FONTREC:FONTREC.FONTNUMBER))
			       (ITALICMSG (create TXDTMSGREC ITALIC ← T FONTNUMBER ← 
						  $DOC:DOCUMENT.FONTREC:FONTREC.FONTNUMBER))
			       (NORMALMSG (create TXDTMSGREC FONTNUMBER ← 
						  $DOC:DOCUMENT.FONTREC:FONTREC.FONTNUMBER)))
			      (PRINTXDTMSG BOLDMSG)
			      (TAB 2*(RLEV-1))              (* (UPDATEDOCUMENT $DOC))
                                                            (* (SETQ ADR1 (fetch (DOCUMENT END) of $DOC)))
			      (PRIN3 WHAT)                  (* (UPDATEDOCUMENT $DOC))
                                                            (* (SETQ ADR2 (fetch (DOCUMENT END) of $DOC)))
			      (PRINTXDTMSG NORMALMSG)
			      (SPACES 4)
			      (PRINT CNTXT)))               (* (MYSELECT (QUOTE GOAL) ADR1 ADR2 
							    (QUOTE EXPRESSION) WHAT NIL))
	     GOALSTACK←
	 <GLMP
	 !
	 GOALSTACK>
	     (UPDATEDOCUMENT 'GOAL)
	     (SETWINDOWCONTENTS 'GOAL GLMP:GLUMP.ID NIL T)
	     (MAKESELECTION NIL 'EXPRESSION GLMP GLMP:GLUMP.STARTADR GLMP:GLUMP.ENDADR)
	     (SETDOCUMENTSPECS $DOC '((ACTIVE NIL])

(TRYING
  [NLAMBDA (RULE CNTXT)
    NIL])

(RULESUCCEEDED
  [NLAMBDA (RULE ANT CONC CNTXT ANTFLG)                     (* mlm: "14-JUN-78 21:41")
    LASTRULEGLUMP←(PrintAntecedent RULE ANT NIL CNTXT])

(CONCLUDE
  [NLAMBDA (WHAT CNTXT VAL TALLY)                           (* mlm: "21-JUN-78 12:09")
    (PROG (GLMP ($DOC (GETDOCUMENT 'CONCLUSIONS)))
          (SETDOCUMENTSPECS $DOC '((ACTIVE T)))
          (VISIBLE 'CONCLUSIONS)
          (GLMP←(NEWGLUMP 'CONCLUSIONS (create GLUMPID NAME ← WHAT)))
          (RESETFORM (OUTPUT $DOC:DOCUMENT.FILENAME)
		     (PROG ((BOLDMSG (create TXDTMSGREC BOLD ← T FONTNUMBER ← 
					     $DOC:DOCUMENT.FONTREC:FONTREC.FONTNUMBER))
			    (ITALICMSG (create TXDTMSGREC ITALIC ← T FONTNUMBER ← 
					       $DOC:DOCUMENT.FONTREC:FONTREC.FONTNUMBER))
			    (NORMALMSG (create TXDTMSGREC FONTNUMBER ← 
					       $DOC:DOCUMENT.FONTREC:FONTREC.FONTNUMBER)))
		           (PRINTXDTMSG BOLDMSG)
		           (PRIN3 WHAT)
		           (PRINTXDTMSG NORMALMSG)
		           (PRINTXDTMSG ITALICMSG)
		           (PRIN3 " of ")
		           (PRINTXDTMSG NORMALMSG)
		           (PRIN3 CNTXT)
		           (PRINTXDTMSG ITALICMSG)
		           (PRIN3 " is ")
		           (PRINTXDTMSG NORMALMSG)
		           (PRIN3 VAL)
		           (PRIN3 " (")
		           (PRINTXDTMSG ITALICMSG)
		           (PRIN3 "tally")
		           (PRINTXDTMSG NORMALMSG)
		           (PRIN3 " = ")
		           (PRIN3 TALLY)
		           (PRIN3 ")")
		           (TERPRI)))
          (UPDATEDOCUMENT 'CONCLUSIONS)
          (SETWINDOWCONTENTS 'CONCLUSIONS GLMP:GLUMP.ID NIL T)
          (SETDOCUMENTSPECS $DOC '((ACTIVE NIL)))
          (if LASTRULEGLUMP
	      then GLMP:GLUMP.ID:GLUMPID.OTHER←LASTRULEGLUMP

          (* OTHER of Conclusions GLUMPID's point to the GLUMP of the rule that resulted in the conclusion -
	  OTHER of successful Rule GLUMPID's is a list of the Conclusion GLUMPs resulting from the rule)


		   LASTRULEGLUMP:GLUMP.ID:GLUMPID.OTHER←
		   <GLMP ! LASTRULEGLUMP:GLUMP.ID:GLUMPID.OTHER>])

(RULEFAILED
  [NLAMBDA (RULE CLAUSE ANT CNTXT)                          (* mlm: "12-JUN-78 22:07")
    (PrintAntecedent RULE ANT CLAUSE CNTXT])

(FINISHED
  [NLAMBDA (WHAT CNTXT RLEV)
    (DECLARE (USEDFREE GOALSTACK))                          (* mlm: "16-JUN-78 17:40")
    (while ~(EQUAL WHAT GOALSTACK:1:GLUMP.ID:GLUMPID.NAME) do GOALSTACK←GOALSTACK::1
       finally GOALSTACK←GOALSTACK::1)
    (SETWINDOWCONTENTS 'GOAL GOALSTACK:1:GLUMP.ID NIL T)
    (WINPROG ((MULTIPLEFLG))
	     (DECLARE (SPECVARS MULTIPLEFLG))
	     (SETWINVARS (GETWINDOW 'GOAL))
	     (MAKESELECTION NIL 'EXPRESSION GOALSTACK:1 GOALSTACK:1:GLUMP.STARTADR 
			    GOALSTACK:1:GLUMP.ENDADR])

(PrintAntecedent
  [LAMBDA (RULE ANT FAILEDCLAUSE)                           (* mlm: "14-JUN-78 22:09")
    (PROG (GLMP ($DOC (GETDOCUMENT 'RULES)))
          (SETDOCUMENTSPECS $DOC '((ACTIVE T)))
          (VISIBLE 'RULES)
          (GLMP←(NEWGLUMP 'RULES (create GLUMPID NAME ← RULE)))
          [RESETFORM (OUTPUT $DOC:DOCUMENT.FILENAME)
		     (PROG [(BOLDMSG (create TXDTMSGREC BOLD ← T FONTNUMBER ← 
					     $DOC:DOCUMENT.FONTREC:FONTREC.FONTNUMBER))
			    (ITALICMSG (create TXDTMSGREC ITALIC ← T FONTNUMBER ← 
					       $DOC:DOCUMENT.FONTREC:FONTREC.FONTNUMBER))
			    (NORMALMSG (create TXDTMSGREC FONTNUMBER ← 
					       $DOC:DOCUMENT.FONTREC:FONTREC.FONTNUMBER))
			    (BLACKMSG (create TXDTMSGREC FONTNUMBER ← 
					      $DOC:DOCUMENT.FONTREC:FONTREC.FONTNUMBER BACKGROUND ←(
						'BLACK]
		           (PRINTXDTMSG BOLDMSG)
		           (PRINT RULE)
		           (PRINTXDTMSG NORMALMSG)
		           (SPACES 2)
		           (PRINT ANT:1)
		           (for CL in ANT::1 as N from 1 to 99 do (SPACES 3)
								  (AND N=FAILEDCLAUSE
								       (PRINTXDTMSG BLACKMSG))
								  (PRINTDEF (SUBST CNTXT 'CNTXT CL)
									    4)
								  (AND N=FAILEDCLAUSE
								       (PRINTXDTMSG NORMALMSG))
								  (TERPRI)
			      finally (TERPRI)
				      (TERPRI]
          (UPDATEDOCUMENT 'RULES)
          (SETWINDOWCONTENTS 'RULES GLMP:GLUMP.ID)
          (SETDOCUMENTSPECS $DOC '((ACTIVE NIL)))
          (RETURN GLMP])
)
(* Setup stuff and control functions)

(DEFINEQ

(LoadMycin
  [LAMBDA (DONTSETUPFLG)                                    (* mlm: " 7-JUL-78 10:59")
    (DECLARE (USEDFREE MYCINFILES))
    (PUTPROP 'CHATSIGNAL 'CODE (GETD 'CHATSIGNAL))
    (LOADFILES 'KRL MYCINFILES 'COM T)
    (UNSAVEDEF 'CHATSIGNAL)
    (LOADFNS 'GENNAME '<KRL1>PROCESS.COM 'SYSLOAD)
    (AND ~DONTSETUPFLG (SetUpMycinMonitor])

(SetUpMycinMonitor
  [LAMBDA NIL
    (DECLARE (USEDFREE ADISOFILE MYCINFIL GOALSTACK LASTRULEGLUMP MYCINCOMM#))
                                                            (* mlm: "10-JUL-78 17:37")
    (PROG (TMP)
          (COND
	    ((NOT ADISOFILE)
	      (CONNECT T)))
          (CREATEWINDOW (QUOTE MYCINDESK)
			(CREATEDESKTOP (QUOTE MYCINDESK)
				       NIL))
          (SETQ TMP (CREATEDOCUMENT (QUOTE RULES)
				    (QUOTE MYCIN.LISPWINDOW)
				    T))
          [SETDOCUMENTSPECS TMP (QUOTE ((ACTIVE NIL]
          (SETQ MYCINFIL (fetch (DOCUMENT FILENAME) of TMP))
          (CREATEWINDOW (QUOTE RULES)
			(QUOTE RULES)
			NIL
			(QUOTE MYCINDESK))
          (CREATEDOCUMENT (QUOTE CONCLUSIONS)
			  MYCINFIL)
          (CREATEWINDOW (QUOTE CONCLUSIONS)
			(QUOTE CONCLUSIONS)
			NIL
			(QUOTE MYCINDESK))
          (CREATEDOCUMENT 'GOAL MYCINFIL)
          (CREATEWINDOW 'GOAL 'GOAL NIL 'MYCINDESK)
          (MAKEMENUS '(MYCINMENU))
          (SETWINDOWSPECS 'MYCINMENU '((RIGHT SAMEAS RULES)
			   (VISIBLE T)))
          (CREATEDOCUMENT (QUOTE MYCINTYPESCRIPT)
			  (QUOTE MYCINTYPESCRIPT.LISPWINDOW)
			  T)
          (CREATEWINDOW (QUOTE MYCINTYPESCRIPT)
			(QUOTE MYCINTYPESCRIPT))
          (GOALSTACK←NIL)
          (LASTRULEGLUMP←NIL)
          (MYCINCOMM#←0])

(MYCIN
  [LAMBDA (REPORTFIL)                                       (* mlm: " 6-JUL-78 22:45")
    (PROG (EXP)
      LP  (EXP←(READ REPORTFIL))
          (if 'STOP =EXP
	      then (RETURN))
          (MYCINEVAL EXP)
          (GO LP])

(MYCINEVAL
  [LAMBDA (EXP)
    (DECLARE (USEDFREE MYCINCOMM# MYCINPICTURES MYCINPICTUREFLG))
                                                            (* mlm: " 7-JUL-78 10:24")
    (SETQ MYCINCOMM# (ADD1 MYCINCOMM#))
    (COND
      ((EQ MYCINPICTUREFLG (QUOTE TEST))
	(CHATPRINT EXP)
	(CHATPRINT MYCINCOMM#)))
    (EVAL EXP)
    (COND
      ((AND (EQ T MYCINPICTUREFLG)
	    (FMEMB MYCINCOMM# MYCINPICTURES))
	(CHATPRINT)
	(SETQ FIGURE# MYCINCOMM#)
	(SNAPSHOT])

(DOIT
  [LAMBDA NIL
    (DECLARE (USEDFREE REPORTFIL MYCINFIL))                 (* mlm: "16-JUN-78 09:51")
    (CLOSEF REPORTFIL)
    (CLOSEF MYCINFIL)
    (SetUpMycinMonitor)
    (INPUT (INFILE REPORTFIL))
    (MYCIN REPORTFIL])

(MYCINMENU
  [LAMBDA (KEY)                                             (* mlm: "21-JUN-78 11:25")
    (SELECTQ KEY
	     (SHOWRULE (WINPROG (FROMSEL RULE (SEL (GETWINDOW 'CONCLUSIONS)
						   :DOCWINDOW.CURRSELECTIONS:1)
					 (MULTIPLEFLG)
					 ($RULEWIN (GETWINDOW 'RULES))
					 ($RULEDOC (GETDOCUMENT 'RULES)))
			        (DECLARE (SPECVARS MULTIPLEFLG))
			        (SETWINVARS $RULEWIN)
			        (OR SEL (CHATPRINT "Nothing selected in Conclusions window."))
			        FROMSEL←SEL:SELECTION.FROMSEL
			        (if 'GLUMP =FROMSEL:1
				    then RULE←FROMSEL:SELECTION1.OBJECT:GLUMP.ID:GLUMPID.OTHER
				  else                      (* change this to find the glump based on whatever is 
							    selected.)
				       (CHATPRINT "Selection must be a glump."))
			        (SETEDIT $RULEDOC:DOCUMENT.SETEDITCURBUF)
			        (MAKESELECTION)
			        $RULEWIN:DOCWINDOW.CURRSELECTIONS←NIL

          (* the preceding two statements are in case the rule we are aiming for is already selected, so it won't get 
	  deselected instead of selected)


			        (MAKESELECTION NIL 'GLUMP RULE RULE:GLUMP.STARTADR RULE:GLUMP.ENDADR)
			        (SETWINDOWCONTENTS 'RULES (TXDTUNBOX RULE:GLUMP.STARTADR):1-1)))
	     [SHOWCONCLUSIONS (WINPROG (FROMSEL CONCLST (SEL (GETWINDOW 'RULES)
							     :DOCWINDOW.CURRSELECTIONS:1)
						(MULTIPLEFLG)
						($CONCWIN (GETWINDOW 'CONCLUSIONS))
						($CONCDOC (GETDOCUMENT 'CONCLUSIONS)))
				       (DECLARE (SPECVARS MULTIPLEFLG))
				       (SETWINVARS $CONCWIN)
				       (OR SEL (CHATPRINT 
						   "Nothing selected in Rule Antecedents window."))
				       FROMSEL←SEL:SELECTION.FROMSEL
				       (if 'GLUMP =FROMSEL:1
					   then 
					 CONCLST←FROMSEL:SELECTION1.OBJECT:GLUMP.ID:GLUMPID.OTHER
					 else               (* change this to find the glump based on whatever is 
							    selected.)
					      (CHATPRINT "Selection must be a glump."))
				       (SETEDIT $CONCDOC:DOCUMENT.SETEDITCURBUF)
				       (SETWINDOWCONTENTS 'CONCLUSIONS
							  (TXDTUNBOX CONCLST:-1:GLUMP.STARTADR):1-1)
				       (MAKESELECTION)
				       $CONCWIN:DOCWINDOW.CURRSELECTIONS←NIL

          (* the preceding two statements are in case one of the conclusions we are aiming at is already selected, so it won't
	  be deselected instead of selected)


				       MULTIPLEFLG←T
				       (for CONC in CONCLST
					  do (MAKESELECTION NIL 'GLUMP CONC CONC:GLUMP.STARTADR 
							    CONC:GLUMP.ENDADR]
	     NIL])

(CHATSIGNAL
  [LAMBDA (SIG)
    (DECLARE (USEDFREE CHATCONTINUEFLG REPORTFIL))          (* mlm: " 7-JUL-78 12:25")

          (* called when a button is detected by CHAT or when a special signal character (128 through 191) is detected -
	  returns T to tell CHAT to continue, NIL to tell CHAT to exit.)


    (PROG NIL
          (CHATCONTINUEFLG←T)
          (SELECTQ SIG
		   (0 (CONTROL T)
		      (BUTTONREAD)
		      (while (AND (READP T)
				  (PEEKC T)='%)
			 do (READC T)
			    (BUTTONREAD)))
		   (193                                     (* signals a Send from MYCIN)
			(MYCINEVAL (READ REPORTFIL)))
		   (PROGN (RESETFORM (RADIX 8)
				     (PRIN1 "{" T))
			  (PRIN1 SIG T)
			  (PRIN1 "}" T)))
          (RESETFORM (ECHOMODE NIL)
		     (WAITING '←))
          (if CHATCONTINUEFLG
	      then (RETURN T)
	    else CHATCONTINUEFLG←T                          (* this is because if we have nested CHAT's, we only 
							    want to return from this one, not all the way to the 
							    top)
		 (RETURN])

(MYCINDEMO
  [LAMBDA (FLG)                                             (* mlm: "10-JUL-78 17:36")
    (SELECTQ FLG
	     [(NIL 1)
	       (SETQ DEMOFLG T)
	       (SETQ MYCINCOMM# 0)
	       (SETQQ CHECKMAILFLG DONTCHECK)
	       (SETQ GCGAGFLG T)
	       (for W in WINDOWLST do (INVISIBLE W)
		  unless (FMEMB W (QUOTE (MYCINTYPESCRIPT SCREEN MYCINDESK MYCINMENU GOAL RULES 
							  CONCLUSIONS]
	     (-1 (INVISIBLE (QUOTE MYCINDESK))
		 (CLOSECONNECTION T))
	     (-2 (KILLDOCUMENT (QUOTE RULES))
		 (KILLDOCUMENT (QUOTE CONCLUSIONS))
		 (KILLDOCUMENT (QUOTE GOAL))
		 (KILLDOCUMENT (QUOTE MYCINMENU))
		 (KILLDESKTOP (QUOTE MYCINDESK))
		 (CLOSECONNECTION T))
	     (HELP "unknown value for FLG in MYCINDEMO"])
)
(DEFINEQ

(GLUMPOTHER
  [LAMBDA (GLUMP)
    GLUMP:GLUMP.ID:GLUMPID.OTHER])

(SELECTPRINT
  [LAMBDA (WIN LST N LFTCOL STR1 STR2)                      (* mlm: "13-JUN-78 16:30")
    (PROG [STRTADR NDADR ($WIN (GETWINDOW WIN))
		   ($DOC (fetch (DOCWINDOW DOCUMENT) of (GETWINDOW WIN)))
		   (FIL (fetch (DOCUMENT FILENAME) of (fetch (DOCWINDOW DOCUMENT)
							 of (GETWINDOW WIN]
          (MAKECURRWIN $WIN)
          (WINPROG NIL
	           (SETWINVARS $WIN)
	           (TERPRI FIL)
	           (TERPRI FIL)
	           (PRIN3 (OR STR1 "[")
			  FIL)
	           [RESETFORM (OUTPUT FIL)
			      (for X in LST as NN from 1 to 99
				 do [COND
				      ((EQ N NN)
					(UPDATEDOCUMENT $DOC)
					(SETQ STRTADR (TXDTGOTO NIL (SUB1 (fetch (DOCUMENT END)
									     of $DOC]
				    (PRINTDEF X LFTCOL)
				    (TERPRI)
				    (COND
				      ((EQ NN N)
					(UPDATEDOCUMENT $DOC)
					[SETQ NDADR (TXDTGOTO NIL (SUB1 (fetch (DOCUMENT END)
									   of $DOC]
					(MAKESELECTION NIL (QUOTE EXPRESSION)
						       (CAR (NTH LST N))
						       STRTADR NDADR (TXDTTOSCREEN STRTADR)
						       (TXDTTOSCREEN NDADR]
	           (PRIN3 (OR STR2 "]
")
			  FIL)
	           (UPDATEDOCUMENT $DOC])

(MYSELECT
  [LAMBDA (DOCWIN CHAR1 CHAR2 TYPE OBJECT MULTIPLEFLG)
    (DECLARE (SPECVARS MULTIPLEFLG))                        (* mlm: "15-JUN-78 12:36")
    (WINPROG (ADR1 ADR2 ($DOC (GETWINDOW DOCWIN):DOCWINDOW.DOCUMENT)
		   ($WIN (GETWINDOW DOCWIN)))
	     (SETWINVARS $WIN)
	     (MAKESELECTION NIL TYPE OBJECT ADR1←(TXDTGOTO NIL CHAR1)
			    ADR2←(TXDTGOTO NIL CHAR2+1)
			    (TXDTTOSCREEN ADR1)
			    (TXDTTOSCREEN ADR2])
)

(RPAQQ MYCINFILES (<MODEL>DMISC <KBA>DNET DISPLAYFNS DSYSCHANGES))

(RPAQQ NORMALMSG (%))

(RPAQQ BOLDMSG (% ))

(RPAQQ ITALICMSG (@))

(RPAQQ MYCINPICTURES (24 30 32 56 59 76 84 121))

(RPAQ MYCINPICTUREFLG NIL)

(RPAQQ MYCINWINDOWS (MYCINDESK RULES CONCLUSIONS GOAL MYCINTYPESCRIPT))

(PUTPROPS MYCINDESK WINDOWSPECS ((BACKGROUND THINWHITEVERTSTRIPES)
				 (BORDER 2)
				 (LEFT 25)
				 (RIGHT 594)
				 (TOP 405)
				 (HEIGHT 370)
				 (CAPTION "Mycin Desk Top" (BACKGROUND WHITE)
					  (CENTERED T)
					  (BORDER 2))
				 (INITIMEFUSE 12)
				 (VISIBLE T)))

(PUTPROPS RULES WINDOWSPECS ((LEFT 10)
			     (HEIGHT 12 LINES)
			     (TOP 340)
			     (WIDTH 550)
			     (TOPMARGIN 4)
			     (ENDOFDOCFLG NIL)
			     (FONT (QUOTE GACHA10))
			     (WHENTOUCHED (QUOTE DWHENTOUCHEDFN1))
			     (CAPTION "Rule Antecedents" (BACKGROUND HORIZSTRIPES)
				      (CENTERED T)
				      (BORDER 1))
			     (VISIBLE T)
			     (INITIMEFUSE 12)))

(PUTPROPS CONCLUSIONS WINDOWSPECS ((LEFT SAMEAS RULES)
				   (WIDTH 300)
				   (TOP 15 LESS THAN (RULES BOTTOM))
				   (HEIGHT 8 LINES)
				   (CAPTION "Conclusions" (BORDER 1)
					    (BACKGROUND THINBLACKHORIZSTRIPES)
					    (CENTERED T))
				   (FONT HELVETICA8)
				   (INITIMEFUSE 12)
				   (VISIBLE T)
				   (TOPMARGIN 6)
				   (ENDOFDOCFLG NIL)
				   (WHENTOUCHED (QUOTE DWHENTOUCHEDFN1))))

(PUTPROPS GOAL WINDOWSPECS ((HEIGHT 8 LINES)
			    (TOP 15 LESS THAN (RULES BOTTOM))
			    (RIGHT SAMEAS RULES)
			    (LEFT 15 MORE THAN (CONCLUSIONS RIGHT))
			    (VISIBLE T)
			    (INITIMEFUSE 12)
			    (CAPTION "Current Goal" (BACKGROUND THINWHITEHORIZSTRIPES)
				     (BORDER 1)
				     (CENTERED))
			    (ENDOFDOCFLG NIL)
			    (WHENTOUCHED (QUOTE DWHENTOUCHEDFN1))
			    (TOPMARGIN 4)
			    (FONT (QUOTE HELVETICA8))))

(PUTPROPS MYCINTYPESCRIPT WINDOWSPECS ((LEFT SAMEAS TYPESCRIPT)
				       (TOP SAMEAS TYPESCRIPT)
				       (BOTTOM 30 MORE THAN (MYCINDESK TOP))
				       (RIGHT SAMEAS MYCINDESK)
				       (FONT GACHA10)
				       (CAPTION "Mycin Typescript" (CENTERED T)
						(BACKGROUND BLACK)
						(BORDER 1))
				       (BORDER 1)
				       (INITIMEFUSE 12)
				       (ENDOFDOCFLG NIL)))

(PUTPROPS MYCINMENU WINDOWSPECS ((LEFT 450)
				 (HEIGHT 2 LINES)
				 (CAPTION "MYCIN" CENTERED)
				 (BOTTOM 10)
				 (ONDESKTOP MYCINDESK)
				 (VISIBLE NIL)
				 (INITIMEFUSE NIL)))

(PUTPROPS MYCINMENU MENUCOMS ((SHOWRULE "Show Rule"
					(Scrolls Rule Antecedents window so that the rule which 
						 caused the selected conclusion is visible))
	   (SHOWCONCLUSIONS "Show Conclusions"
			    (Shows the conclusions resulting from the application of the selected 
				   rule.))))
(DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS 

(ADDTOVAR NLAMA )

(ADDTOVAR NLAML FINISHED RULEFAILED CONCLUDE RULESUCCEEDED TRYING FINDOUT)
)
(DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY 
(LOAD? (QUOTE <KBA>DISPCOMP))
(LOAD? (QUOTE <KBA>RECORDS))
)
(DECLARE: DONTCOPY
  (FILEMAP (NIL (1019 7095 (FINDOUT 1031 . 2694) (TRYING 2698 . 2745) (RULESUCCEEDED 2749 . 2920) (
CONCLUDE 2924 . 4827) (RULEFAILED 4831 . 4988) (FINISHED 4992 . 5552) (PrintAntecedent 5556 . 7092)) (
7143 14376 (LoadMycin 7155 . 7524) (SetUpMycinMonitor 7528 . 8873) (MYCIN 8877 . 9138) (MYCINEVAL 9142 .
9634) (DOIT 9638 . 9894) (MYCINMENU 9898 . 12498) (CHATSIGNAL 12502 . 13611) (MYCINDEMO 13615 . 14373))
(14378 16152 (GLUMPOTHER 14390 . 14460) (SELECTPRINT 14464 . 15695) (MYSELECT 15699 . 16149)))))
STOP