diff --git a/library/SPY b/library/SPY
index f34ab505..16b6cda5 100644
--- a/library/SPY
+++ b/library/SPY
@@ -1,22 +1,22 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED "29-Apr-94 14:13:52" {DSK}<king>export>lispcore>library>SPY.;4 64372  
 
-      changes to%:  (FILES GRAPHER)
-                    (FNS SPY.GRAPH.EDITOR SPY.UPDATE.TITLE SPY.MERGEINFO SPY.MAKEGRAPHNODES SPY.MAX 
-                         SPY.MERGE SPY.MERGE1 SPY.MERGETREE SPY.NEXT.TREE SPY.SUM SPY.MAKE.TREE 
-                         SPY.DELETE SPY.DUMP.BUFFER SPY.ORIGINAL SPY.MERGE.CALLEES)
+(FILECREATED " 4-Jan-2022 14:09:48" {DSK}<Users>kaplan>Local>medley3.5>my-medley>library>SPY.;2 63314  
 
-      previous date%: "28-Apr-94 15:56:32" {DSK}<king>export>lispcore>library>SPY.;3)
+      :CHANGES-TO (VARS SPYCOMS)
+                  (FNS SPY.MAKE.TREE)
+
+      :PREVIOUS-DATE "29-Apr-94 14:13:52" {DSK}<Users>kaplan>Local>medley3.5>my-medley>library>SPY.;1
+)
 
 
 (* ; "
-Copyright (c) 1984, 1985, 1987, 1988, 1990, 1991, 1993, 1994 by Venue & Xerox Corporation.  All rights reserved.
+Copyright (c) 1984-1985, 1987-1988, 1990-1991, 1993-1994 by Venue & Xerox Corporation.
 ")
 
 (PRETTYCOMPRINT SPYCOMS)
 
-(RPAQQ SPYCOMS 
-       ((VARS SPY.BORDERS SPY.BUFFER.SIZE SPY.FRAGMENTS SPY.NOMERGEFNS SPY.MERGEINFO (SPY.HASH)
+(RPAQQ SPYCOMS
+       [(VARS SPY.BORDERS SPY.BUFFER.SIZE SPY.FRAGMENTS SPY.NOMERGEFNS SPY.MERGEINFO (SPY.HASH)
               (SPY.GRAPH.MENU)
               SPY.SHOW.PERCENTAGES SPY.SMALLGHOSTS SPY.ICON)
         (INITVARS (SPY.NEXT 0)
@@ -42,38 +42,41 @@ Copyright (c) 1984, 1985, 1987, 1988, 1990, 1991, 1993, 1994 by Venue & Xerox Co
         (MACROS WITH-SPY WITH.SPY)
         (DECLARE%: DONTCOPY (RECORDS SPYRECORD SPYDATA))
         (INITRECORDS SPYRECORD)
-        (DECLARE%: DOCOPY DOEVAL@COMPILE (FILES GRAPHER READNUMBER IMAGEOBJ))))
+        (DECLARE%: DOCOPY DOEVAL@COMPILE (FILES GRAPHER READNUMBER IMAGEOBJ))
+        (P (MOVD? 'NILL 'MODERNWINDOW])
 
-(RPAQQ SPY.BORDERS ((NORMAL "Normal" 2 -1)
-                        (GHOST "Shown elsewhere" 2 8840)
-                        (RECURSIVEGHOST "End of recursive chain" 2 0 -1)
-                        (MERGED "Includes other branches" 4 42405)
-                        (SELFRECURSIVE "Includes self-recursive calls" 2 61375)
-                        (RECURSIVE "Head of recursive chain" 4 28086)
-                        (ENDOFLINE "exceeded depth limit" 6 64510)))
+(RPAQQ SPY.BORDERS
+       ((NORMAL "Normal" 2 -1)
+        (GHOST "Shown elsewhere" 2 8840)
+        (RECURSIVEGHOST "End of recursive chain" 2 0 -1)
+        (MERGED "Includes other branches" 4 42405)
+        (SELFRECURSIVE "Includes self-recursive calls" 2 61375)
+        (RECURSIVE "Head of recursive chain" 4 28086)
+        (ENDOFLINE "exceeded depth limit" 6 64510)))
 
 (RPAQQ SPY.BUFFER.SIZE 5120)
 
 (RPAQQ SPY.FRAGMENTS T)
 
-(RPAQQ SPY.NOMERGEFNS (SI::*UNWIND-PROTECT* CL:EVAL \EVAL-PROGN \INTERPRET-ARGUMENTS \INTERPRETER
-                                 \INTERPRETER1 ERRORSET \EVAL \EVALFORM APPLY \PROGV EVAL))
+(RPAQQ SPY.NOMERGEFNS (SI::*UNWIND-PROTECT* CL:EVAL \EVAL-PROGN \INTERPRET-ARGUMENTS \INTERPRETER 
+                             \INTERPRETER1 ERRORSET \EVAL \EVALFORM APPLY \PROGV EVAL))
 
-(RPAQQ SPY.MERGEINFO ((EXEC :EXEC)
-                          (EXEC-READ-LINE :EXEC)
-                          (EXEC-READ :EXEC)
-                          (XCL-USER::LEX-DO-EVENT :EXEC)
-                          (DO-EVENT :EXEC)
-                          (EVAL-INPUT :EXEC)
-                          (SI::*UNWIND-PROTECT* :ANY)
-                          (\MAKE.PROCESS0 T)
-                          (\PROC.REPEATEDLYEVALQT T)
-                          (\EVALFORM T :EVAL)
-                          (PROGN PROGN :EVAL T)
-                          (TTYIN1 TTYIN)
-                          (TTBIN TTYIN)
-                          (TTWAITFORINPUT TTYIN)
-                          (\PROGV :ANY)))
+(RPAQQ SPY.MERGEINFO
+       ((EXEC :EXEC)
+        (EXEC-READ-LINE :EXEC)
+        (EXEC-READ :EXEC)
+        (XCL-USER::LEX-DO-EVENT :EXEC)
+        (DO-EVENT :EXEC)
+        (EVAL-INPUT :EXEC)
+        (SI::*UNWIND-PROTECT* :ANY)
+        (\MAKE.PROCESS0 T)
+        (\PROC.REPEATEDLYEVALQT T)
+        (\EVALFORM T :EVAL)
+        (PROGN PROGN :EVAL T)
+        (TTYIN1 TTYIN)
+        (TTBIN TTYIN)
+        (TTWAITFORINPUT TTYIN)
+        (\PROGV :ANY)))
 
 (RPAQQ SPY.HASH NIL)
 
@@ -102,19 +105,19 @@ Copyright (c) 1984, 1985, 1987, 1988, 1990, 1991, 1993, 1994 by Venue & Xerox Co
 
 (RPAQ? SPY.TREE )
 
-(RPAQQ SPYOBJCOMS ((FNS SPYOBJ SPYOBJ.BUTTON SPYOBJ.SAVE SPYOBJ.COPY SPYOBJ.GET SPYOBJ.IMAGEBOX 
-                            SPYOBJ.DISPLAY SPYOBJ.LABEL SPYOBJ.HEIGHT SPYOBJ.COPYIN SPY.COPYBUTTON 
-                            SPY.MERGEINFO)
-                       [VARS (SPYOBJ.IMAGEFNS (IMAGEFNSCREATE (FUNCTION SPYOBJ.DISPLAY)
-                                                     (FUNCTION SPYOBJ.IMAGEBOX)
-                                                     (FUNCTION SPYOBJ.SAVE)
-                                                     (FUNCTION SPYOBJ.GET)
-                                                     (FUNCTION SPYOBJ.COPY)
-                                                     (FUNCTION SPYOBJ.BUTTON)
-                                                     (FUNCTION SPYOBJ.COPYIN)
-                                                     NIL NIL NIL NIL NIL NIL 'SPYNODE]
-                       (DECLARE%: DONTCOPY DOEVAL@COMPILE (RECORDS FX SPYOBJDATA))
-                       (INITRECORDS SPYOBJDATA)))
+(RPAQQ SPYOBJCOMS
+       ((FNS SPYOBJ SPYOBJ.BUTTON SPYOBJ.SAVE SPYOBJ.COPY SPYOBJ.GET SPYOBJ.IMAGEBOX SPYOBJ.DISPLAY 
+             SPYOBJ.LABEL SPYOBJ.HEIGHT SPYOBJ.COPYIN SPY.COPYBUTTON SPY.MERGEINFO)
+        [VARS (SPYOBJ.IMAGEFNS (IMAGEFNSCREATE (FUNCTION SPYOBJ.DISPLAY)
+                                      (FUNCTION SPYOBJ.IMAGEBOX)
+                                      (FUNCTION SPYOBJ.SAVE)
+                                      (FUNCTION SPYOBJ.GET)
+                                      (FUNCTION SPYOBJ.COPY)
+                                      (FUNCTION SPYOBJ.BUTTON)
+                                      (FUNCTION SPYOBJ.COPYIN)
+                                      NIL NIL NIL NIL NIL NIL 'SPYNODE]
+        (DECLARE%: DONTCOPY DOEVAL@COMPILE (RECORDS FX SPYOBJDATA))
+        (INITRECORDS SPYOBJDATA)))
 (DEFINEQ
 
 (SPYOBJ
@@ -176,148 +179,145 @@ Copyright (c) 1984, 1985, 1987, 1988, 1990, 1991, 1993, 1994 by Venue & Xerox Co
             then '(:INTERPRETER CL:EVAL])
 )
 
-(RPAQ SPYOBJ.IMAGEFNS (IMAGEFNSCREATE (FUNCTION SPYOBJ.DISPLAY)
-                                 (FUNCTION SPYOBJ.IMAGEBOX)
-                                 (FUNCTION SPYOBJ.SAVE)
-                                 (FUNCTION SPYOBJ.GET)
-                                 (FUNCTION SPYOBJ.COPY)
-                                 (FUNCTION SPYOBJ.BUTTON)
-                                 (FUNCTION SPYOBJ.COPYIN)
-                                 NIL NIL NIL NIL NIL NIL 'SPYNODE))
+(RPAQ SPYOBJ.IMAGEFNS
+      (IMAGEFNSCREATE (FUNCTION SPYOBJ.DISPLAY)
+             (FUNCTION SPYOBJ.IMAGEBOX)
+             (FUNCTION SPYOBJ.SAVE)
+             (FUNCTION SPYOBJ.GET)
+             (FUNCTION SPYOBJ.COPY)
+             (FUNCTION SPYOBJ.BUTTON)
+             (FUNCTION SPYOBJ.COPYIN)
+             NIL NIL NIL NIL NIL NIL 'SPYNODE))
 (DECLARE%: DONTCOPY DOEVAL@COMPILE 
 (DECLARE%: EVAL@COMPILE
 
-(ACCESSFNS FX ((FXBLOCK (ADDSTACKBASE DATUM)))           (* ; "frame extension index")
-                  (BLOCKRECORD FXBLOCK ((FLAGS BITS 3)       (* ; "= \STK.FX")
-                                        (FAST FLAG)
-                                        (NIL FLAG)
-                                        (INCALL FLAG)        (* ; 
-                                                           "set when fncall microcode has to punt")
-                                        (VALIDNAMETABLE FLAG)(* ; 
-                                "if on, NAMETABLE field is filled in.  If off, is same as FNHEADER")
-                                        (NOPUSH FLAG)        (* ; 
-                         "when returning to this frame, don't push a value.  Set by interrupt code")
-                                        (USECNT BITS 8)
-                                        (%#ALINK WORD)       (* ; "low bit is SLOWP")
-                                        (FNHEADER FULLXPOINTER)
-                                        (NEXTBLOCK WORD)
-                                        (PC WORD)
-                                        (NAMETABLE# FULLXPOINTER)
-                                        (%#BLINK WORD)
-                                        (%#CLINK WORD)))
-                  (BLOCKRECORD FXBLOCK ((FLAGBYTE BYTE)
-                                        (NIL BYTE)
-                                        (NIL BITS 15)        (* ; "most of the bits of #ALINK")
-                                        (SLOWP FLAG)         (* ; 
-                         "if on, then BLINK and CLINK fields are valid.  If off, they are implicit")
-                                        (NIL FULLXPOINTER 2)
-                                        (NAMETABHI WORD)
-                                        (NAMETABLO WORD)))
-                  (TYPE? (IEQ (fetch (FX FLAGS) of DATUM)
-                                  \STK.FX))
-                  [ACCESSFNS FX ((NAMETABLE (COND
-                                               ((fetch (FX VALIDNAMETABLE) of DATUM)
-                                                (fetch (FX NAMETABLE#) of DATUM))
-                                               (T (fetch (FX FNHEADER) of DATUM)))
-                                        (PROGN (replace (FX FAST) of DATUM with NIL)
-                                               (replace (FX NAMETABLE#) of DATUM with
-                                                                                         NEWVALUE)
-                                               (replace (FX VALIDNAMETABLE) of DATUM
-                                                  with T)))
-                                 (FRAMENAME (fetch (FNHEADER FRAMENAME)
-                                               of (fetch (FX NAMETABLE) of DATUM)))
-                                 (INVALIDP (EQ DATUM 0))     (* ; 
-                                   "true when A/CLink points at nobody, i.e. FX is bottom of stack")
-                                 [FASTP (NOT (fetch (FX SLOWP) of DATUM))
-                                        (PROGN (CHECK (NULL NEWVALUE))
-                                               (COND
-                                                  ((fetch (FX FASTP) of DATUM)
-                                                   (replace (FX %#BLINK) of DATUM
-                                                      with (fetch (FX DUMMYBF) of DATUM))
-                                                   (replace (FX %#CLINK) of DATUM
-                                                      with (fetch (FX %#ALINK) of DATUM))
-                                                   (replace (FX SLOWP) of DATUM with
-                                                                                        T]
-                                 [BLINK (COND
-                                           ((fetch (FX FASTP) of DATUM)
-                                            (fetch (FX DUMMYBF) of DATUM))
-                                           (T (fetch (FX %#BLINK) of DATUM)))
-                                        (PROGN (replace (FX %#BLINK) of DATUM with 
-                                                                                            NEWVALUE)
-                                               (COND
-                                                  ((fetch (FX FASTP) of DATUM)
-                                                   (replace (FX %#CLINK) of DATUM
-                                                      with (fetch (FX %#ALINK) of DATUM))
-                                                   (replace (FX SLOWP) of DATUM with
-                                                                                        T]
-                                 [CLINK (IDIFFERENCE (COND
-                                                        ((fetch (FX FASTP) of DATUM)
-                                                         (fetch (FX %#ALINK) of DATUM))
-                                                        (T (fetch (FX %#CLINK) of DATUM)))
-                                               \#ALINK.OFFSET)
-                                        (PROGN (replace (FX %#CLINK) of DATUM
-                                                  with (IPLUS NEWVALUE \#ALINK.OFFSET))
-                                               (COND
-                                                  ((fetch (FX FASTP) of DATUM)
-                                                   (replace (FX %#BLINK) of DATUM
-                                                      with (fetch (FX DUMMYBF) of DATUM))
-                                                   (replace (FX SLOWP) of DATUM with
-                                                                                        T]
-                                 [ALINK (IDIFFERENCE (FLOOR (fetch (FX %#ALINK) of DATUM)
-                                                            WORDSPERCELL)
-                                               \#ALINK.OFFSET)
-                                        (PROGN [COND
-                                                  ((fetch (FX FASTP) of DATUM)
-                                                   (replace (FX %#BLINK) of DATUM
-                                                      with (fetch (FX DUMMYBF) of DATUM))
-                                                   (replace (FX %#CLINK) of DATUM
-                                                      with (fetch (FX %#ALINK) of DATUM]
-                                               (replace (FX %#ALINK) of DATUM
-                                                  with (IPLUS NEWVALUE \#ALINK.OFFSET
-                                                                  (SUB1 WORDSPERCELL]
-                                 [ACLINK (SHOULDNT)
-                                        (PROGN [COND
-                                                  ((fetch (FX FASTP) of DATUM)
-                                                   (replace (FX %#BLINK) of DATUM
-                                                      with (fetch (FX DUMMYBF) of DATUM]
+(ACCESSFNS FX ((FXBLOCK (ADDSTACKBASE DATUM)))               (* ; "frame extension index")
+              (BLOCKRECORD FXBLOCK ((FLAGS BITS 3)           (* ; "= \STK.FX")
+                                    (FAST FLAG)
+                                    (NIL FLAG)
+                                    (INCALL FLAG)            (* ; 
+                                                             "set when fncall microcode has to punt")
+                                    (VALIDNAMETABLE FLAG)    (* ; 
+                                  "if on, NAMETABLE field is filled in.  If off, is same as FNHEADER")
+                                    (NOPUSH FLAG)            (* ; 
+                           "when returning to this frame, don't push a value.  Set by interrupt code")
+                                    (USECNT BITS 8)
+                                    (%#ALINK WORD)           (* ; "low bit is SLOWP")
+                                    (FNHEADER FULLXPOINTER)
+                                    (NEXTBLOCK WORD)
+                                    (PC WORD)
+                                    (NAMETABLE# FULLXPOINTER)
+                                    (%#BLINK WORD)
+                                    (%#CLINK WORD)))
+              (BLOCKRECORD FXBLOCK ((FLAGBYTE BYTE)
+                                    (NIL BYTE)
+                                    (NIL BITS 15)            (* ; "most of the bits of #ALINK")
+                                    (SLOWP FLAG)             (* ; 
+                           "if on, then BLINK and CLINK fields are valid.  If off, they are implicit")
+                                    (NIL FULLXPOINTER 2)
+                                    (NAMETABHI WORD)
+                                    (NAMETABLO WORD)))
+              (TYPE? (IEQ (fetch (FX FLAGS) of DATUM)
+                          \STK.FX))
+              [ACCESSFNS FX ((NAMETABLE (COND
+                                           ((fetch (FX VALIDNAMETABLE) of DATUM)
+                                            (fetch (FX NAMETABLE#) of DATUM))
+                                           (T (fetch (FX FNHEADER) of DATUM)))
+                                    (PROGN (replace (FX FAST) of DATUM with NIL)
+                                           (replace (FX NAMETABLE#) of DATUM with NEWVALUE)
+                                           (replace (FX VALIDNAMETABLE) of DATUM with T)))
+                             (FRAMENAME (fetch (FNHEADER FRAMENAME) of (fetch (FX NAMETABLE)
+                                                                          of DATUM)))
+                             (INVALIDP (EQ DATUM 0))         (* ; 
+                                     "true when A/CLink points at nobody, i.e. FX is bottom of stack")
+                             [FASTP (NOT (fetch (FX SLOWP) of DATUM))
+                                    (PROGN (CHECK (NULL NEWVALUE))
+                                           (COND
+                                              ((fetch (FX FASTP) of DATUM)
+                                               (replace (FX %#BLINK) of DATUM
+                                                  with (fetch (FX DUMMYBF) of DATUM))
                                                (replace (FX %#CLINK) of DATUM
-                                                  with (IPLUS NEWVALUE \#ALINK.OFFSET))
-                                               (replace (FX %#ALINK) of DATUM
-                                                  with (IPLUS NEWVALUE \#ALINK.OFFSET
-                                                                  (SUB1 WORDSPERCELL]
+                                                  with (fetch (FX %#ALINK) of DATUM))
+                                               (replace (FX SLOWP) of DATUM with T]
+                             [BLINK (COND
+                                       ((fetch (FX FASTP) of DATUM)
+                                        (fetch (FX DUMMYBF) of DATUM))
+                                       (T (fetch (FX %#BLINK) of DATUM)))
+                                    (PROGN (replace (FX %#BLINK) of DATUM with NEWVALUE)
+                                           (COND
+                                              ((fetch (FX FASTP) of DATUM)
+                                               (replace (FX %#CLINK) of DATUM
+                                                  with (fetch (FX %#ALINK) of DATUM))
+                                               (replace (FX SLOWP) of DATUM with T]
+                             [CLINK (IDIFFERENCE (COND
+                                                    ((fetch (FX FASTP) of DATUM)
+                                                     (fetch (FX %#ALINK) of DATUM))
+                                                    (T (fetch (FX %#CLINK) of DATUM)))
+                                           \#ALINK.OFFSET)
+                                    (PROGN (replace (FX %#CLINK) of DATUM with (IPLUS NEWVALUE 
+                                                                                      \#ALINK.OFFSET)
+                                                  )
+                                           (COND
+                                              ((fetch (FX FASTP) of DATUM)
+                                               (replace (FX %#BLINK) of DATUM
+                                                  with (fetch (FX DUMMYBF) of DATUM))
+                                               (replace (FX SLOWP) of DATUM with T]
+                             [ALINK (IDIFFERENCE (FLOOR (fetch (FX %#ALINK) of DATUM)
+                                                        WORDSPERCELL)
+                                           \#ALINK.OFFSET)
+                                    (PROGN [COND
+                                              ((fetch (FX FASTP) of DATUM)
+                                               (replace (FX %#BLINK) of DATUM
+                                                  with (fetch (FX DUMMYBF) of DATUM))
+                                               (replace (FX %#CLINK) of DATUM
+                                                  with (fetch (FX %#ALINK) of DATUM]
+                                           (replace (FX %#ALINK) of DATUM with (IPLUS NEWVALUE 
+                                                                                      \#ALINK.OFFSET
+                                                                                      (SUB1 
+                                                                                         WORDSPERCELL
+                                                                                            ]
+                             [ACLINK (SHOULDNT)
+                                    (PROGN [COND
+                                              ((fetch (FX FASTP) of DATUM)
+                                               (replace (FX %#BLINK) of DATUM
+                                                  with (fetch (FX DUMMYBF) of DATUM]
+                                           (replace (FX %#CLINK) of DATUM with (IPLUS NEWVALUE 
+                                                                                      \#ALINK.OFFSET)
+                                                  )
+                                           (replace (FX %#ALINK) of DATUM with (IPLUS NEWVALUE 
+                                                                                      \#ALINK.OFFSET
+                                                                                      (SUB1 
+                                                                                         WORDSPERCELL
+                                                                                            ]
                                                              (* ; 
-                                    "replaces A & C Links at once more efficiently than separately")
-                                 (DUMMYBF (IDIFFERENCE DATUM WORDSPERCELL))
+                                      "replaces A & C Links at once more efficiently than separately")
+                             (DUMMYBF (IDIFFERENCE DATUM WORDSPERCELL))
 
-                                 (* ;; "This is either an actual BF or %"residual%" BF that provides enough BF to find its IVAR slot.  This means that when a FX is copied, the cell preceding the FX is copied too.")
+                             (* ;; "This is either an actual BF or %"residual%" BF that provides enough BF to find its IVAR slot.  This means that when a FX is copied, the cell preceding the FX is copied too.")
 
-                                 (IVAR (fetch (BF IVAR) of (fetch (FX DUMMYBF)
-                                                                      of DATUM)))
-                                 [CHECKED (AND (type? FX DATUM)
-                                               (OR (IEQ (fetch (FX DUMMYBF) of DATUM)
-                                                        (fetch (FX BLINK) of DATUM))
-                                                   (AND (fetch (BF RESIDUAL)
-                                                           of (fetch (FX DUMMYBF)
-                                                                     of DATUM))
-                                                        (IEQ (fetch (BF IVAR)
-                                                                of (fetch (FX DUMMYBF)
-                                                                          of DATUM))
-                                                             (fetch (BF IVAR)
-                                                                of (fetch (FX BLINK)
-                                                                          of DATUM]
-                                 (FIRSTPVAR (IPLUS DATUM (fetch (FX FXSIZE) of T)))
+                             (IVAR (fetch (BF IVAR) of (fetch (FX DUMMYBF) of DATUM)))
+                             [CHECKED (AND (type? FX DATUM)
+                                           (OR (IEQ (fetch (FX DUMMYBF) of DATUM)
+                                                    (fetch (FX BLINK) of DATUM))
+                                               (AND (fetch (BF RESIDUAL) of (fetch (FX DUMMYBF)
+                                                                               of DATUM))
+                                                    (IEQ (fetch (BF IVAR) of (fetch (FX DUMMYBF)
+                                                                                of DATUM))
+                                                         (fetch (BF IVAR) of (fetch (FX BLINK)
+                                                                                of DATUM]
+                             (FIRSTPVAR (IPLUS DATUM (fetch (FX FXSIZE) of T)))
                                                              (* ; "stack offset of PVAR0")
-                                 (FXSIZE (PROGN 10))         (* ; 
-                                                           "fixed overhead from flags thru clink")
-                                 (PADDING (PROGN 4))         (* ; 
-                                                          "doublecell of garbage for microcode use")
-                                 (FIRSTTEMP (IPLUS (fetch (FX FIRSTPVAR) of DATUM)
-                                                   (fetch (FX NPVARWORDS) of DATUM)
-                                                   (fetch (FX PADDING) of DATUM)))
+                             (FXSIZE (PROGN 10))             (* ; 
+                                                             "fixed overhead from flags thru clink")
+                             (PADDING (PROGN 4))             (* ; 
+                                                            "doublecell of garbage for microcode use")
+                             (FIRSTTEMP (IPLUS (fetch (FX FIRSTPVAR) of DATUM)
+                                               (fetch (FX NPVARWORDS) of DATUM)
+                                               (fetch (FX PADDING) of DATUM)))
                                                              (* ; 
-                                               "note that NPVARWORDS is obtained from the FNHEADER")
-                                 (SIZE (IDIFFERENCE (fetch (FX NEXTBLOCK) of DATUM)
-                                              DATUM])
+                                                 "note that NPVARWORDS is obtained from the FNHEADER")
+                             (SIZE (IDIFFERENCE (fetch (FX NEXTBLOCK) of DATUM)
+                                          DATUM])
 
 (RECORD SPYOBJDATA (CACHEDLABEL PERCENT LABEL))
 )
@@ -745,7 +745,9 @@ Copyright (c) 1984, 1985, 1987, 1988, 1990, 1991, 1993, 1994 by Venue & Xerox Co
            ", " TOPCOUNT " samples"])
 
 (SPY.MAKE.TREE
-  [LAMBDA (TREES SPYDATA WINDOW)                      (* ; "Edited 28-Apr-94 13:59 by sybalsky")
+  [LAMBDA (TREES SPYDATA WINDOW)                             (* ; "Edited  4-Jan-2022 14:08 by rmk")
+                                                             (* ; 
+                                                             "Edited 28-Apr-94 13:59 by sybalsky")
     (PROG (GRAPH IDS W H THRSH TOPCOUNT (*PACKAGE* (fetch (SPYDATA PACKAGE) of SPYDATA))
                  (*READTABLE* (fetch (SPYDATA READTABLE) of SPYDATA))
                  (*PRINT-CASE* (fetch (SPYDATA PRINT-CASE) of SPYDATA)))
@@ -755,8 +757,7 @@ Copyright (c) 1984, 1985, 1987, 1988, 1990, 1991, 1993, 1994 by Venue & Xerox Co
           (SETQ THRSH (QUOTIENT (TIMES TOPCOUNT (fetch (SPYDATA THRESHOLD) of SPYDATA))
                              100))
           (SETQ SPY.NODES)
-          (SETQ SPY.TOPNODES (for X in TREES collect (SPY.MAKEGRAPHNODES X THRSH 
-                                                                        SPYDATA)))
+          (SETQ SPY.TOPNODES (for X in TREES collect (SPY.MAKEGRAPHNODES X THRSH SPYDATA)))
           (SETQ TITLE (SPY.TITLE (CAR SPY.TOPNODES)
                              TOPCOUNT SPYDATA))
           (SETQ SPY.WINDOW (SHOWGRAPH (LAYOUTGRAPH (REVERSE SPY.NODES)
@@ -773,7 +774,8 @@ Copyright (c) 1984, 1985, 1987, 1988, 1990, 1991, 1993, 1994 by Venue & Xerox Co
           (WINDOWPROP SPY.WINDOW 'SPYDATA SPYDATA)
           (WINDOWPROP SPY.WINDOW 'TREES TREES)
           (WINDOWPROP SPY.WINDOW 'SPYTITLE TITLE)
-          (WINDOWPROP SPY.WINDOW 'TOPCOUNT TOPCOUNT])
+          (WINDOWPROP SPY.WINDOW 'TOPCOUNT TOPCOUNT)
+          (MODERNWINDOW SPY.WINDOW])
 
 (SPY.UPDATE.TITLE
   [LAMBDA (W)                                         (* ; "Edited 29-Apr-94 14:03 by sybalsky")
@@ -965,23 +967,23 @@ Copyright (c) 1984, 1985, 1987, 1988, 1990, 1991, 1993, 1994 by Venue & Xerox Co
 )
 (DECLARE%: EVAL@COMPILE 
 
-[PUTPROPS WITH-SPY MACRO ((FORM)
+(PUTPROPS WITH-SPY MACRO [(FORM)
                           (PROGN (SPY.START)
-                                 (PROG1 FORM (SPY.END]
+                                 (PROG1 FORM (SPY.END])
 
-[PUTPROPS WITH.SPY MACRO ((FORM)
+(PUTPROPS WITH.SPY MACRO [(FORM)
                           (PROGN (SPY.START)
-                                 (PROG1 FORM (SPY.END]
+                                 (PROG1 FORM (SPY.END])
 )
 (DECLARE%: DONTCOPY 
 (DECLARE%: EVAL@COMPILE
 
 (DATATYPE SPYRECORD (NAME COUNT SUM CALLEES STATUS TREEFROM)
-                        STATUS _ 'NORMAL (INIT (DEFPRINT 'SPYRECORD 'SPY.PRINT)))
+                    STATUS _ 'NORMAL (INIT (DEFPRINT 'SPYRECORD 'SPY.PRINT)))
 
-(PROPRECORD SPYDATA (DELETED CUMULATIVE MERGETYPE THRESHOLD SPYMENU DEPTH NOGHOSTS PACKAGE 
-                               READTABLE PRINT-CASE MERGEINFO PENDING)
-                        CUMULATIVE _ T)
+(PROPRECORD SPYDATA (DELETED CUMULATIVE MERGETYPE THRESHOLD SPYMENU DEPTH NOGHOSTS PACKAGE READTABLE
+                           PRINT-CASE MERGEINFO PENDING)
+                    CUMULATIVE _ T)
 )
 
 (/DECLAREDATATYPE 'SPYRECORD '(POINTER POINTER POINTER POINTER POINTER POINTER)
@@ -1010,19 +1012,21 @@ Copyright (c) 1984, 1985, 1987, 1988, 1990, 1991, 1993, 1994 by Venue & Xerox Co
 
 (FILESLOAD GRAPHER READNUMBER IMAGEOBJ)
 )
+
+(MOVD? 'NILL 'MODERNWINDOW)
 (PUTPROPS SPY COPYRIGHT ("Venue & Xerox Corporation" 1984 1985 1987 1988 1990 1991 1993 1994))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (5474 8081 (SPYOBJ 5484 . 5773) (SPYOBJ.BUTTON 5775 . 5885) (SPYOBJ.SAVE 5887 . 6006) (
-SPYOBJ.COPY 6008 . 6070) (SPYOBJ.GET 6072 . 6201) (SPYOBJ.IMAGEBOX 6203 . 6727) (SPYOBJ.DISPLAY 6729
- . 7028) (SPYOBJ.LABEL 7030 . 7166) (SPYOBJ.HEIGHT 7168 . 7381) (SPYOBJ.COPYIN 7383 . 7426) (
-SPY.COPYBUTTON 7428 . 7520) (SPY.MERGEINFO 7522 . 8079)) (19431 60601 (SPY.FIND.TREE 19441 . 19850) (
-SPY.TOGGLE 19852 . 20042) (SPY.TREE 20044 . 21156) (SPY.LEGEND 21158 . 21508) (SPY.GRAPH.EDITOR 21510
- . 31075) (SPY.END 31077 . 31319) (SPY.MAKEGRAPHNODES 31321 . 33421) (SPY.MAX 33423 . 34306) (
-SPY.MERGE 34308 . 35739) (SPY.MERGE1 35741 . 42224) (SPY.MERGETREE 42226 . 45156) (SPY.NEXT.TREE 45158
- . 45832) (SPY.SUM 45834 . 46523) (SPY.TITLE 46525 . 46742) (SPY.MAKE.TREE 46744 . 48632) (
-SPY.UPDATE.TITLE 48634 . 51210) (SPY.DELETE 51212 . 51747) (SPY.DRAWBOX 51749 . 52274) (
-SPY.BUFFER.ENTRY 52276 . 52514) (SPY.BUTTON 52516 . 53085) (SPY.END.ENTRY 53087 . 53167) (SPY.START 
-53169 . 53453) (SPY.INIT 53455 . 53690) (\SPY.INTERRUPT 53692 . 54328) (SPY.DUMP.BUFFER 54330 . 55790)
- (SPY.START.ENTRY 55792 . 55920) (SPY.ADD.ENTRY 55922 . 56304) (SPY.ORIGINAL 56306 . 57133) (
-SPY.OVERFLOW 57135 . 57236) (SPY.MERGE.CALLEES 57238 . 60274) (SPY.PRINT 60276 . 60599)))))
+  (FILEMAP (NIL (4753 7360 (SPYOBJ 4763 . 5052) (SPYOBJ.BUTTON 5054 . 5164) (SPYOBJ.SAVE 5166 . 5285) (
+SPYOBJ.COPY 5287 . 5349) (SPYOBJ.GET 5351 . 5480) (SPYOBJ.IMAGEBOX 5482 . 6006) (SPYOBJ.DISPLAY 6008
+ . 6307) (SPYOBJ.LABEL 6309 . 6445) (SPYOBJ.HEIGHT 6447 . 6660) (SPYOBJ.COPYIN 6662 . 6705) (
+SPY.COPYBUTTON 6707 . 6799) (SPY.MERGEINFO 6801 . 7358)) (18202 59509 (SPY.FIND.TREE 18212 . 18621) (
+SPY.TOGGLE 18623 . 18813) (SPY.TREE 18815 . 19927) (SPY.LEGEND 19929 . 20279) (SPY.GRAPH.EDITOR 20281
+ . 29846) (SPY.END 29848 . 30090) (SPY.MAKEGRAPHNODES 30092 . 32192) (SPY.MAX 32194 . 33077) (
+SPY.MERGE 33079 . 34510) (SPY.MERGE1 34512 . 40995) (SPY.MERGETREE 40997 . 43927) (SPY.NEXT.TREE 43929
+ . 44603) (SPY.SUM 44605 . 45294) (SPY.TITLE 45296 . 45513) (SPY.MAKE.TREE 45515 . 47540) (
+SPY.UPDATE.TITLE 47542 . 50118) (SPY.DELETE 50120 . 50655) (SPY.DRAWBOX 50657 . 51182) (
+SPY.BUFFER.ENTRY 51184 . 51422) (SPY.BUTTON 51424 . 51993) (SPY.END.ENTRY 51995 . 52075) (SPY.START 
+52077 . 52361) (SPY.INIT 52363 . 52598) (\SPY.INTERRUPT 52600 . 53236) (SPY.DUMP.BUFFER 53238 . 54698)
+ (SPY.START.ENTRY 54700 . 54828) (SPY.ADD.ENTRY 54830 . 55212) (SPY.ORIGINAL 55214 . 56041) (
+SPY.OVERFLOW 56043 . 56144) (SPY.MERGE.CALLEES 56146 . 59182) (SPY.PRINT 59184 . 59507)))))
 STOP
diff --git a/library/SPY.LCOM b/library/SPY.LCOM
index 77d0b7aa..7bea1f1f 100644
Binary files a/library/SPY.LCOM and b/library/SPY.LCOM differ
diff --git a/library/TEDITHCPY b/library/TEDITHCPY
index 544a7945..89c32ff2 100644
--- a/library/TEDITHCPY
+++ b/library/TEDITHCPY
@@ -1,12 +1,11 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED "21-Sep-2021 15:33:24" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITHCPY.;10 106458 
 
-      changes to%:  (FNS TEDIT.HARDCOPYFN)
-                    (VARS TEDITHCPYCOMS)
+(FILECREATED "26-Jan-2022 23:03:27" {DSK}<Users>kaplan>Local>medley3.5>my-medley>library>TEDITHCPY.;15 106802 
 
-      previous date%: "21-Sep-2021 12:54:04" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITHCPY.;7)
+      :CHANGES-TO (VARS TEDITHCPYCOMS)
+
+      :PREVIOUS-DATE "27-Sep-2021 23:28:48" 
+{DSK}<Users>kaplan>Local>medley3.5>my-medley>library>TEDITHCPY.;14)
 
 
 (* ; "
@@ -35,18 +34,18 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
 
               (VARS (TEDIT.DEFAULTPAGEREGION (CREATEREGION 2794 1905 16256 23495)))
                                                              (* ; 
-                                                           "0.75 inches from bottom, 1 from top")
-              )
+                                                             "0.75 inches from bottom, 1 from top"))
         [COMS 
               (* ;; "Support for the window-menu's HARDCOPY button, LISTFILES, etc.")
 
               (FNS TEDIT.HARDCOPYFN \TEDIT.HARDCOPY \TEDIT.PRESS.HARDCOPY)
-              (P (LISTPUT (ASSOC 'CONVERSION (ASSOC 'INTERPRESS PRINTFILETYPES))
-                        'TEDIT
-                        (FUNCTION \TEDIT.HARDCOPY)))
+              [P (LET [(IPVALUES (ASSOC 'CONVERSION (ASSOC 'INTERPRESS PRINTFILETYPES]
+                      (COND (IPVALUES                        (* ; 
+                                          "Only install INTERPRESS printing if INTERPRESS is loaded.")
+                                   (LISTPUT IPVALUES 'TEDIT (FUNCTION \TEDIT.HARDCOPY]
               (P (LET [(PRESSVALUES (ASSOC 'CONVERSION (ASSOC 'PRESS PRINTFILETYPES]
                       (COND (PRESSVALUES                     (* ; 
-                                                  "Only install PRESS printing if PRESS is loaded.")
+                                                    "Only install PRESS printing if PRESS is loaded.")
                                    (LISTPUT PRESSVALUES 'TEDIT (FUNCTION \TEDIT.PRESS.HARDCOPY]
         [COMS 
               (* ;; "vars for Japanese Line Break")
@@ -1568,14 +1567,16 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
         PFILE)])
 )
 
-(LISTPUT (ASSOC 'CONVERSION (ASSOC 'INTERPRESS PRINTFILETYPES))
-       'TEDIT
-       (FUNCTION \TEDIT.HARDCOPY))
+[LET [(IPVALUES (ASSOC 'CONVERSION (ASSOC 'INTERPRESS PRINTFILETYPES]
+     (COND
+        (IPVALUES                                            (* ; 
+                                          "Only install INTERPRESS printing if INTERPRESS is loaded.")
+               (LISTPUT IPVALUES 'TEDIT (FUNCTION \TEDIT.HARDCOPY]
 
 [LET [(PRESSVALUES (ASSOC 'CONVERSION (ASSOC 'PRESS PRINTFILETYPES]
      (COND
         (PRESSVALUES                                         (* ; 
-                                                  "Only install PRESS printing if PRESS is loaded.")
+                                                    "Only install PRESS printing if PRESS is loaded.")
                (LISTPUT PRESSVALUES 'TEDIT (FUNCTION \TEDIT.PRESS.HARDCOPY]
 
 
@@ -1616,11 +1617,11 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
 (PUTPROPS TEDITHCPY COPYRIGHT ("Venue & Xerox Corporation" 1983 1984 1985 1986 1987 1988 1989 1990 
 1991 1992 1993 1994 2021))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (3655 100373 (TEDIT.HARDCOPY 3665 . 4916) (TEDIT.HCPYFILE 4918 . 6992) (
-\TEDIT.HARDCOPY.DISPLAYLINE 6994 . 21139) (\TEDIT.HARDCOPY.FORMATLINE 21141 . 68463) (
-\DOFORMATTING.HARDCOPY 68465 . 81758) (\TEDIT.HARDCOPY.MODIFYLOOKS 81760 . 84167) (
-\TEDIT.HCPYLOOKS.UPDATE 84169 . 94777) (\TEDIT.HCPYFMTSPEC 94779 . 99799) (\TEDIT.INTEGER.IMAGEBOX 
-99801 . 100371)) (100462 101546 (\TEDIT.SCALE 100472 . 100766) (\TEDIT.SCALEREGION 100768 . 101544)) (
-101789 104340 (TEDIT.HARDCOPYFN 101799 . 102704) (\TEDIT.HARDCOPY 102706 . 103615) (
-\TEDIT.PRESS.HARDCOPY 103617 . 104338)) (105405 106308 (TEDIT-BOOK 105415 . 106306)))))
+  (FILEMAP (NIL (3784 100502 (TEDIT.HARDCOPY 3794 . 5045) (TEDIT.HCPYFILE 5047 . 7121) (
+\TEDIT.HARDCOPY.DISPLAYLINE 7123 . 21268) (\TEDIT.HARDCOPY.FORMATLINE 21270 . 68592) (
+\DOFORMATTING.HARDCOPY 68594 . 81887) (\TEDIT.HARDCOPY.MODIFYLOOKS 81889 . 84296) (
+\TEDIT.HCPYLOOKS.UPDATE 84298 . 94906) (\TEDIT.HCPYFMTSPEC 94908 . 99928) (\TEDIT.INTEGER.IMAGEBOX 
+99930 . 100500)) (100591 101675 (\TEDIT.SCALE 100601 . 100895) (\TEDIT.SCALEREGION 100897 . 101673)) (
+101918 104469 (TEDIT.HARDCOPYFN 101928 . 102833) (\TEDIT.HARDCOPY 102835 . 103744) (
+\TEDIT.PRESS.HARDCOPY 103746 . 104467)) (105749 106652 (TEDIT-BOOK 105759 . 106650)))))
 STOP
diff --git a/library/TEDITHCPY.LCOM b/library/TEDITHCPY.LCOM
index e8c7905c..1e4f0f93 100644
Binary files a/library/TEDITHCPY.LCOM and b/library/TEDITHCPY.LCOM differ
diff --git a/library/TEDITSCREEN b/library/TEDITSCREEN
index 7ea78f69..020367ec 100644
--- a/library/TEDITSCREEN
+++ b/library/TEDITSCREEN
@@ -1,12 +1,12 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
 
-(FILECREATED "29-Sep-2021 22:03:57" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITSCREEN.;8 214517 
+(FILECREATED "12-Jan-2022 18:56:46" 
+{DSK}<Users>kaplan>Local>medley3.5>my-medley>library>TEDITSCREEN.;11 214540 
 
-      changes to%:  (FNS \DISPLAYLINE)
+      :CHANGES-TO (FNS \SHOWTEXT)
 
-      previous date%: "21-Sep-2021 12:53:40" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEDITSCREEN.;7)
+      :PREVIOUS-DATE "12-Jan-2022 18:27:35" 
+{DSK}<Users>kaplan>Local>medley3.5>my-medley>library>TEDITSCREEN.;10)
 
 
 (* ; "
@@ -1409,14 +1409,13 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
 (DECLARE%: EVAL@COMPILE DONTCOPY 
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS MI-TEDIT.BLTCHAR MACRO [(CHARCODE DISPLAYSTREAM CURX DISPLAYDATA DDPILOTBBT 
-                                                 CLIPRIGHT)
-                                          (COND
-                                             ((EQ 'MAIKO (MACHINETYPE))
-                                              (SUBRCALL TEDIT.BLTCHAR CHARCODE DISPLAYSTREAM CURX 
-                                                     DISPLAYDATA DDPILOTBBT CLIPRIGHT))
-                                             (T (\TEDIT.BLTCHAR CHARCODE DISPLAYSTREAM CURX 
-                                                       DISPLAYDATA DDPILOTBBT CLIPRIGHT])
+(PUTPROPS MI-TEDIT.BLTCHAR MACRO [(CHARCODE DISPLAYSTREAM CURX DISPLAYDATA DDPILOTBBT CLIPRIGHT)
+                                  (COND
+                                     ((EQ 'MAIKO (MACHINETYPE))
+                                      (SUBRCALL TEDIT.BLTCHAR CHARCODE DISPLAYSTREAM CURX DISPLAYDATA
+                                             DDPILOTBBT CLIPRIGHT))
+                                     (T (\TEDIT.BLTCHAR CHARCODE DISPLAYSTREAM CURX DISPLAYDATA 
+                                               DDPILOTBBT CLIPRIGHT])
 )
 )
 (DEFINEQ
@@ -2212,53 +2211,58 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
              (\TEDIT.FIXINSSEL SEL TEXTOBJ CH#1 DCH])
 
 (\SHOWTEXT
-  [LAMBDA (TEXTOBJ LINES WINDOW)                        (* ; "Edited 12-Jun-90 19:22 by mitani")
-                                                             (* Fill the editor window with text, 
-                                                           starting from the top of the file.)
+  [LAMBDA (TEXTOBJ LINES WINDOW)
+
+    (* ;; "Edited 12-Jan-2022 18:56 by rmk: I took out the WAITINGCURSOR, the resetsave wasn't working for some reason, and it really isn't necessary for modern machines.")
+
+    (* ;; "Edited 12-Jun-90 19:22 by mitani")
+
+    (* ;; "Fill the editor window with text, starting from the top of the file.")
+
     (COND
-       ((fetch (TEXTOBJ \WINDOW) of TEXTOBJ)         (* If there is no edit window, just 
-                                                           return.)
-        (PROG (WREG)
-              (SETQ WINDOW (OR WINDOW (\TEDIT.PRIMARYW TEXTOBJ)))
-              (DSPFILL (PROG1 (DSPCLIPPINGREGION NIL WINDOW) (* For region within a window%:)
-                                                             (* (CREATEREGION (fetch
-                                                           (TEXTOBJ WLEFT) of TEXTOBJ)
-                                                           (fetch (TEXTOBJ WBOTTOM) of TEXTOBJ)
-                                                           (IDIFFERENCE (fetch
-                                                           (TEXTOBJ WRIGHT) of TEXTOBJ)
-                                                           (fetch (TEXTOBJ WLEFT) of TEXTOBJ))
-                                                           (IDIFFERENCE (fetch
-                                                           (TEXTOBJ WTOP) of TEXTOBJ)
-                                                           (fetch (TEXTOBJ WBOTTOM) of TEXTOBJ))))
-                           )
-                     WHITESHADE
-                     'REPLACE WINDOW)                        (* Clear the window.)
-              (RETURN (RESETLST
-                          (RESETSAVE (CURSOR WAITINGCURSOR)) (* Display the hourglass cursor as 
-                                                           we work)
-                          (SETQ LINES
-                           (create LINEDESCRIPTOR
-                                  YBOT _ (WINDOWPROP WINDOW 'HEIGHT)
-                                  CHAR1 _ 0
-                                  CHARLIM _ 0
-                                  SPACELEFT _ -1
-                                  RIGHTMARGIN _ (SUB1 (fetch (TEXTOBJ WRIGHT) of TEXTOBJ))
-                                  NEXTLINE _ NIL
-                                  CHARTOP _ -1
-                                  LHEIGHT _ 0
-                                  LXLIM _ (fetch (TEXTOBJ WRIGHT) of TEXTOBJ)
-                                  CR\END _ T
-                                  ASCENT _ 0
-                                  DESCENT _ 0
-                                  LTRUEASCENT _ 0
-                                  LFMTSPEC _ TEDIT.DEFAULT.FMTSPEC))
-                                                             (* Make sure we have the anchor 
-                                                           pseudo-line)
-                          (WINDOWPROP WINDOW 'LINES LINES)
-                          (\FILLWINDOW (WINDOWPROP WINDOW 'HEIGHT)
-                                 LINES TEXTOBJ NIL WINDOW)   (* Fill the window as usual)
-                          (\TEDIT.SET.WINDOW.EXTENT TEXTOBJ WINDOW)
-                          LINES)])
+       ((fetch (TEXTOBJ \WINDOW) of TEXTOBJ)                 (* ; 
+                                                           "If there is no edit window, just return.")
+        (PROG1 (PROG (WREG)
+                     (SETQ WINDOW (OR WINDOW (\TEDIT.PRIMARYW TEXTOBJ)))
+                     (DSPFILL (PROG1 (DSPCLIPPINGREGION NIL WINDOW)
+                                                             (* ; "For region within a window:")
+
+                                 (* ;; "(CREATEREGION (fetch (TEXTOBJ WLEFT) of TEXTOBJ) (fetch (TEXTOBJ WBOTTOM) of TEXTOBJ) (IDIFFERENCE (fetch (TEXTOBJ WRIGHT) of TEXTOBJ) (fetch (TEXTOBJ WLEFT) of TEXTOBJ)) (IDIFFERENCE (fetch (TEXTOBJ WTOP) of TEXTOBJ) (fetch (TEXTOBJ WBOTTOM) of TEXTOBJ)))")
+
+                                  )
+                            WHITESHADE
+                            'REPLACE WINDOW)                 (* ; "Clear the window.")
+                     (RETURN (RESETLST
+
+                                 (* ;; "RMK: For reasons unknown, the original cursor is not restored when this exits.  But there is presumably no need for this waiting indicator in modern times.  This only fills lines visible within a window, and machines are really fast.")
+
+                                 (* ;; "Display the hourglass cursor as we work")
+
+                                 (AND NIL (RESETSAVE (CURSOR WAITINGCURSOR)))
+                                 (SETQ LINES
+                                  (create LINEDESCRIPTOR
+                                         YBOT _ (WINDOWPROP WINDOW 'HEIGHT)
+                                         CHAR1 _ 0
+                                         CHARLIM _ 0
+                                         SPACELEFT _ -1
+                                         RIGHTMARGIN _ (SUB1 (fetch (TEXTOBJ WRIGHT) of TEXTOBJ))
+                                         NEXTLINE _ NIL
+                                         CHARTOP _ -1
+                                         LHEIGHT _ 0
+                                         LXLIM _ (fetch (TEXTOBJ WRIGHT) of TEXTOBJ)
+                                         CR\END _ T
+                                         ASCENT _ 0
+                                         DESCENT _ 0
+                                         LTRUEASCENT _ 0
+                                         LFMTSPEC _ TEDIT.DEFAULT.FMTSPEC))
+                                                             (* ; 
+                                                           "Make sure we have the anchor pseudo-line")
+                                 (WINDOWPROP WINDOW 'LINES LINES)
+                                 (\FILLWINDOW (WINDOWPROP WINDOW 'HEIGHT)
+                                        LINES TEXTOBJ NIL WINDOW)
+                                                             (* ; "Fill the window as usual")
+                                 (\TEDIT.SET.WINDOW.EXTENT TEXTOBJ WINDOW)
+                                 LINES)])
 
 (\TEDIT.ADJUST.LINES
   [LAMBDA (TEXTOBJ FIRSTLINE WINDOW LINETOP DY)          (* ; "Edited 30-May-91 15:59 by jds")
@@ -2979,25 +2983,25 @@ Copyright (c) 1983-1994, 2021 by Venue & Xerox Corporation.
 
 
 
-(* (VARS (TEDIT.DONT.BREAK.CHARS (CHARCODE ("41,42" "41,43" "41,53" "41,54" "41,74" "41,115" 
-"41,133" "41,131" "41,127" "Hira,41" "Hira,43" "Hira,45" "Hira,47" "Hira,51" "Hira,103" "Hira,143" 
-"Hira,145" "Hira,147" "Hira,156" "Kata,41" "Kata,43" "Kata,45" "Kata,47" "Kata,51" "Kata,103" 
-"Kata,143" "Kata,145" "Kata,147" "Kata,156"))) (TEDIT.DONT.LAST.CHARS (CHARCODE ("41,114" "41,132" 
-"41,130" "41,126"))) (GLOBALVARS TEDIT.DONT.BREAK.CHARS TEDIT.DONT.LAST.CHARS)))
+(* (VARS (TEDIT.DONT.BREAK.CHARS (CHARCODE ("41,42" "41,43" "41,53" "41,54" "41,74" "41,115" "41,133" 
+"41,131" "41,127" "Hira,41" "Hira,43" "Hira,45" "Hira,47" "Hira,51" "Hira,103" "Hira,143" "Hira,145" 
+"Hira,147" "Hira,156" "Kata,41" "Kata,43" "Kata,45" "Kata,47" "Kata,51" "Kata,103" "Kata,143" 
+"Kata,145" "Kata,147" "Kata,156"))) (TEDIT.DONT.LAST.CHARS (CHARCODE ("41,114" "41,132" "41,130" 
+"41,126"))) (GLOBALVARS TEDIT.DONT.BREAK.CHARS TEDIT.DONT.LAST.CHARS)))
 
 (PUTPROPS TEDITSCREEN COPYRIGHT ("Venue & Xerox Corporation" 1983 1984 1985 1986 1987 1988 1989 1990 
 1991 1992 1993 1994 2021))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (2767 76759 (\FORMATLINE 2777 . 56505) (\TEDIT.NSCHAR.RUN 56507 . 63324) (
-\TEDIT.PURGE.SPACES 63326 . 63784) (\DOFORMATTING 63786 . 76757)) (76760 98628 (\DISPLAYLINE 76770 . 
-94628) (\TEDIT.LINECACHE 94630 . 95381) (\TEDIT.CREATE.LINECACHE 95383 . 96127) (\TEDIT.BLTCHAR 96129
- . 98626)) (99342 213797 (TEDIT.CR.UPDATESCREEN 99352 . 100603) (TEDIT.DELETELINE 100605 . 101639) (
-TEDIT.INSERT.DISPLAYTEXT 101641 . 116880) (TEDIT.INSERT.UPDATESCREEN 116882 . 123634) (
-TEDIT.UPDATE.SCREEN 123636 . 124854) (\BACKFORMAT 124856 . 129167) (\FILLWINDOW 129169 . 144273) (
-\FIXDLINES 144275 . 151512) (\FIXILINES 151514 . 159489) (\SHOWTEXT 159491 . 162747) (
-\TEDIT.ADJUST.LINES 162749 . 170216) (\TEDIT.CLEAR.SCREEN.BELOW.LINE 170218 . 170948) (
-\TEDIT.CLOSEUPLINES 170950 . 179466) (\TEDIT.COPY.LINEDESCRIPTOR 179468 . 185034) (
-\TEDIT.FIXCHANGEDLINE 185036 . 196215) (\TEDIT.FIXCHANGEDPART 196217 . 208644) (\TEDIT.INSERTLINE 
-208646 . 209466) (\TEDIT.LINE.LIST 209468 . 209794) (\TEDIT.MARK.LINES.DIRTY 209796 . 211482) (
-\TEDIT.NEXT.LINE.BOTTOM 211484 . 213795)))))
+  (FILEMAP (NIL (2761 76753 (\FORMATLINE 2771 . 56499) (\TEDIT.NSCHAR.RUN 56501 . 63318) (
+\TEDIT.PURGE.SPACES 63320 . 63778) (\DOFORMATTING 63780 . 76751)) (76754 98622 (\DISPLAYLINE 76764 . 
+94622) (\TEDIT.LINECACHE 94624 . 95375) (\TEDIT.CREATE.LINECACHE 95377 . 96121) (\TEDIT.BLTCHAR 96123
+ . 98620)) (99237 213820 (TEDIT.CR.UPDATESCREEN 99247 . 100498) (TEDIT.DELETELINE 100500 . 101534) (
+TEDIT.INSERT.DISPLAYTEXT 101536 . 116775) (TEDIT.INSERT.UPDATESCREEN 116777 . 123529) (
+TEDIT.UPDATE.SCREEN 123531 . 124749) (\BACKFORMAT 124751 . 129062) (\FILLWINDOW 129064 . 144168) (
+\FIXDLINES 144170 . 151407) (\FIXILINES 151409 . 159384) (\SHOWTEXT 159386 . 162770) (
+\TEDIT.ADJUST.LINES 162772 . 170239) (\TEDIT.CLEAR.SCREEN.BELOW.LINE 170241 . 170971) (
+\TEDIT.CLOSEUPLINES 170973 . 179489) (\TEDIT.COPY.LINEDESCRIPTOR 179491 . 185057) (
+\TEDIT.FIXCHANGEDLINE 185059 . 196238) (\TEDIT.FIXCHANGEDPART 196240 . 208667) (\TEDIT.INSERTLINE 
+208669 . 209489) (\TEDIT.LINE.LIST 209491 . 209817) (\TEDIT.MARK.LINES.DIRTY 209819 . 211505) (
+\TEDIT.NEXT.LINE.BOTTOM 211507 . 213818)))))
 STOP
diff --git a/library/TEDITSCREEN.LCOM b/library/TEDITSCREEN.LCOM
index da9f5701..9f8ccc37 100644
Binary files a/library/TEDITSCREEN.LCOM and b/library/TEDITSCREEN.LCOM differ
diff --git a/library/TEDITWINDOW b/library/TEDITWINDOW
index 9e5137b1..96997d8a 100644
--- a/library/TEDITWINDOW
+++ b/library/TEDITWINDOW
@@ -1,12 +1,12 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
 
-(FILECREATED " 1-Jan-2022 23:55:46" 
-{DSK}<Users>kaplan>Local>medley3.5>my-medley>library>TEDITWINDOW.;31 189222 
+(FILECREATED "21-Jan-2022 23:14:36" 
+{DSK}<Users>kaplan>Local>medley3.5>my-medley>library>TEDITWINDOW.;32 189300 
 
-      :CHANGES-TO (FNS TEDIT.CREATEW)
+      :CHANGES-TO (FNS TEDIT.GETINPUT)
 
-      :PREVIOUS-DATE " 1-Jan-2022 17:37:20" 
-{DSK}<Users>kaplan>Local>medley3.5>my-medley>library>TEDITWINDOW.;30)
+      :PREVIOUS-DATE " 1-Jan-2022 23:55:46" 
+{DSK}<Users>kaplan>Local>medley3.5>my-medley>library>TEDITWINDOW.;31)
 
 
 (* ; "
@@ -1471,7 +1471,7 @@ Copyright (c) 1983-1991, 1993-1994, 1999, 2021 by John Sybalsky & Xerox Corporat
 (DEFINEQ
 
 (TEDIT.GETINPUT
-  [LAMBDA (STREAM PROMPTSTRING DEFAULTSTRING DELIMITER.LIST)
+  [LAMBDA (STREAM PROMPTSTRING DEFAULTSTRING DELIMITER.LIST) (* ; "Edited 21-Jan-2022 23:14 by rmk")
                                                              (* ; "Edited 30-May-91 23:34 by jds")
 
     (* ;; "Ask for input (file names, &c) for TEdit, perhaps with a default.")
@@ -1487,20 +1487,20 @@ Copyright (c) 1983-1991, 1993-1994, 1999, 2021 by John Sybalsky & Xerox Corporat
                              TPROMPT))
            (COND
               (TPROMPT                                       (* ; 
-                                                     "If it's our own promptwindow, just clear it.")
+                                                       "If it's our own promptwindow, just clear it.")
                      (CLEARW TPROMPT))
               (T                                             (* ; 
-                                            "If it's the system's window, just move to a new line.")
+                                              "If it's the system's window, just move to a new line.")
                  (FRESHLINE PROMPTWINDOW)))
-           (RETURN (PROG1 (PROMPTFORWORD PROMPTSTRING DEFAULTSTRING NIL (OR TPROMPT PROMPTWINDOW)
+           (RETURN (PROG1 (TTYINPROMPTFORWORD PROMPTSTRING DEFAULTSTRING NIL (OR TPROMPT PROMPTWINDOW
+                                                                                 )
                                  NIL
                                  'TTY
                                  (OR DELIMITER.LIST (CHARCODE (EOL LF TAB ESCAPE)))
-                                 NIL)                        (* ; 
-                                                           "Get what the guy wants to tell us")
+                                 NIL)                        (* ; "Get what the guy wants to tell us")
                        (WINDOWPROP (OR TPROMPT PROMPTWINDOW)
                               'PROCESS NIL)                  (* ; 
-                           "Now detach the prompt window from its process, to avoid a circularity.")
+                             "Now detach the prompt window from its process, to avoid a circularity.")
                        )])
 
 (\TEDIT.MAKEFILENAME
@@ -2874,25 +2874,25 @@ Copyright (c) 1983-1991, 1993-1994, 1999, 2021 by John Sybalsky & Xerox Corporat
 (PUTPROPS TEDITWINDOW COPYRIGHT ("John Sybalsky & Xerox Corporation" 1983 1984 1985 1986 1987 1988 
 1989 1990 1991 1993 1994 1999 2021))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (7220 95654 (TEDIT.CREATEW 7230 . 9984) (\TEDIT.CREATEW.FROM.REGION 9986 . 10970) (
-TEDIT.CURSORMOVEDFN 10972 . 22358) (TEDIT.CURSOROUTFN 22360 . 22895) (TEDIT.WINDOW.SETUP 22897 . 24706
-) (TEDIT.MINIMAL.WINDOW.SETUP 24708 . 32497) (\TEDIT.ACTIVE.WINDOWP 32499 . 33480) (
-\TEDIT.BUTTONEVENTFN 33482 . 58472) (\TEDIT.WINDOW.OPS 58474 . 62435) (\TEDIT.EXPANDFN 62437 . 62840) 
-(\TEDIT.MAINW 62842 . 64131) (\TEDIT.PRIMARYW 64133 . 65345) (\TEDIT.COPYINSERTFN 65347 . 66318) (
-\TEDIT.NEWREGIONFN 66320 . 68787) (\TEDIT.SET.WINDOW.EXTENT 68789 . 74891) (\TEDIT.SHRINK.ICONCREATE 
-74893 . 77165) (\TEDIT.SHRINKFN 77167 . 77742) (\TEDIT.SPLITW 77744 . 83845) (\TEDIT.UNSPLITW 83847 . 
-89541) (\TEDIT.WINDOW.SETUP 89543 . 95263) (\SAFE.FIRST 95265 . 95652)) (96984 97891 (TEDITWINDOWP 
-96994 . 97889)) (97928 100424 (TEDIT.GETINPUT 97938 . 99921) (\TEDIT.MAKEFILENAME 99923 . 100422)) (
-100473 106924 (TEDIT.PROMPTPRINT 100483 . 103387) (TEDIT.PROMPTFLASH 103389 . 105344) (
-\TEDIT.PROMPT.PAGEFULLFN 105346 . 106922)) (107159 111152 (TEXTSTREAM.TITLE 107169 . 107790) (
-\TEDIT.ORIGINAL.WINDOW.TITLE 107792 . 109768) (\TEDIT.WINDOW.TITLE 109770 . 110440) (
-\TEXTSTREAM.FILENAME 110442 . 111150)) (111195 156094 (TEDIT.DEACTIVATE.WINDOW 111205 . 118512) (
-\TEDIT.REPAINTFN 118514 . 121371) (\TEDIT.RESHAPEFN 121373 . 126993) (\TEDIT.SCROLLFN 126995 . 156092)
-) (156136 158185 (\TEDIT.PROCIDLEFN 156146 . 157495) (\TEDIT.PROCENTRYFN 157497 . 157790) (
-\TEDIT.PROCEXITFN 157792 . 158183)) (158264 169264 (\EDIT.DOWNCARET 158274 . 158955) (\EDIT.FLIPCARET 
-158957 . 160492) (TEDIT.FLASHCARET 160494 . 161608) (\EDIT.UPCARET 161610 . 162063) (
-TEDIT.NORMALIZECARET 162065 . 168016) (\SETCARET 168018 . 168938) (\TEDIT.CARET 168940 . 169262)) (
-169298 183053 (TEDIT.ADD.MENUITEM 169308 . 171223) (TEDIT.DEFAULT.MENUFN 171225 . 180492) (
-TEDIT.REMOVE.MENUITEM 180494 . 181495) (\TEDIT.CREATEMENU 181497 . 181950) (\TEDIT.MENU.WHENHELDFN 
-181952 . 182722) (\TEDIT.MENU.WHENSELECTEDFN 182724 . 183051)))))
+  (FILEMAP (NIL (7221 95655 (TEDIT.CREATEW 7231 . 9985) (\TEDIT.CREATEW.FROM.REGION 9987 . 10971) (
+TEDIT.CURSORMOVEDFN 10973 . 22359) (TEDIT.CURSOROUTFN 22361 . 22896) (TEDIT.WINDOW.SETUP 22898 . 24707
+) (TEDIT.MINIMAL.WINDOW.SETUP 24709 . 32498) (\TEDIT.ACTIVE.WINDOWP 32500 . 33481) (
+\TEDIT.BUTTONEVENTFN 33483 . 58473) (\TEDIT.WINDOW.OPS 58475 . 62436) (\TEDIT.EXPANDFN 62438 . 62841) 
+(\TEDIT.MAINW 62843 . 64132) (\TEDIT.PRIMARYW 64134 . 65346) (\TEDIT.COPYINSERTFN 65348 . 66319) (
+\TEDIT.NEWREGIONFN 66321 . 68788) (\TEDIT.SET.WINDOW.EXTENT 68790 . 74892) (\TEDIT.SHRINK.ICONCREATE 
+74894 . 77166) (\TEDIT.SHRINKFN 77168 . 77743) (\TEDIT.SPLITW 77745 . 83846) (\TEDIT.UNSPLITW 83848 . 
+89542) (\TEDIT.WINDOW.SETUP 89544 . 95264) (\SAFE.FIRST 95266 . 95653)) (96985 97892 (TEDITWINDOWP 
+96995 . 97890)) (97929 100502 (TEDIT.GETINPUT 97939 . 99999) (\TEDIT.MAKEFILENAME 100001 . 100500)) (
+100551 107002 (TEDIT.PROMPTPRINT 100561 . 103465) (TEDIT.PROMPTFLASH 103467 . 105422) (
+\TEDIT.PROMPT.PAGEFULLFN 105424 . 107000)) (107237 111230 (TEXTSTREAM.TITLE 107247 . 107868) (
+\TEDIT.ORIGINAL.WINDOW.TITLE 107870 . 109846) (\TEDIT.WINDOW.TITLE 109848 . 110518) (
+\TEXTSTREAM.FILENAME 110520 . 111228)) (111273 156172 (TEDIT.DEACTIVATE.WINDOW 111283 . 118590) (
+\TEDIT.REPAINTFN 118592 . 121449) (\TEDIT.RESHAPEFN 121451 . 127071) (\TEDIT.SCROLLFN 127073 . 156170)
+) (156214 158263 (\TEDIT.PROCIDLEFN 156224 . 157573) (\TEDIT.PROCENTRYFN 157575 . 157868) (
+\TEDIT.PROCEXITFN 157870 . 158261)) (158342 169342 (\EDIT.DOWNCARET 158352 . 159033) (\EDIT.FLIPCARET 
+159035 . 160570) (TEDIT.FLASHCARET 160572 . 161686) (\EDIT.UPCARET 161688 . 162141) (
+TEDIT.NORMALIZECARET 162143 . 168094) (\SETCARET 168096 . 169016) (\TEDIT.CARET 169018 . 169340)) (
+169376 183131 (TEDIT.ADD.MENUITEM 169386 . 171301) (TEDIT.DEFAULT.MENUFN 171303 . 180570) (
+TEDIT.REMOVE.MENUITEM 180572 . 181573) (\TEDIT.CREATEMENU 181575 . 182028) (\TEDIT.MENU.WHENHELDFN 
+182030 . 182800) (\TEDIT.MENU.WHENSELECTEDFN 182802 . 183129)))))
 STOP
diff --git a/library/TEDITWINDOW.LCOM b/library/TEDITWINDOW.LCOM
index a407325e..703235a1 100644
Binary files a/library/TEDITWINDOW.LCOM and b/library/TEDITWINDOW.LCOM differ
diff --git a/sources/ADIR b/sources/ADIR
index 638c2267..c07c861c 100644
--- a/sources/ADIR
+++ b/sources/ADIR
@@ -1,11 +1,11 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
 
-(FILECREATED "25-Jan-2022 17:19:00" {DSK}<Users>kaplan>Local>medley3.5>my-medley>sources>ADIR.;11 65609  
+(FILECREATED "26-Jan-2022 10:18:43" {DSK}<Users>kaplan>Local>medley3.5>my-medley>sources>ADIR.;12 66655  
 
-      :CHANGES-TO (FNS UNPACKFILENAME.STRING)
+      :CHANGES-TO (VARS ADIRCOMS)
 
-      :PREVIOUS-DATE " 5-Jan-2022 11:06:37" 
-{DSK}<Users>kaplan>Local>medley3.5>my-medley>sources>ADIR.;10)
+      :PREVIOUS-DATE "25-Jan-2022 17:19:00" 
+{DSK}<Users>kaplan>Local>medley3.5>my-medley>sources>ADIR.;11)
 
 
 (* ; "
@@ -30,6 +30,8 @@ Copyright (c) 1981-1988, 1990-1992, 1920, 2017, 2020-2021 by Venue & Xerox Corpo
               (DECLARE%: DONTCOPY (MACROS CANONICAL.DIRECTORY UNPACKFILE1.DIRECTORY 
                                          PACKFILENAME.ASSEMBLE UNPACKFILE1))
               (VARS \FILENAME.SYNTAX)
+              (FNS FILEDIRCASEARRAY)
+              (VARS (FILEDIRCASEARRAY (FILEDIRCASEARRAY)))
               (GLOBALVARS \FILENAME.SYNTAX))
         (COMS                                                (* ; "saving and restoring system state")
               (FNS LOGOUT MAKESYS SYSOUT SAVEVM HERALD INTERPRET.REM.CM \USEREVENT)
@@ -929,6 +931,24 @@ Copyright (c) 1981-1988, 1990-1992, 1920, 2017, 2020-2021 by Venue & Xerox Corpo
 )
 
 (RPAQQ \FILENAME.SYNTAX ("<" ">" ";"))
+(DEFINEQ
+
+(FILEDIRCASEARRAY
+  [LAMBDA NIL                                                (* ; "Edited  8-Jan-2022 20:15 by rmk")
+
+    (* ;; "Returns a case array suitable for case insensitive directory matching:  <, >, and / all map together in any position.  Presumably there are other well-formedness conditions that put < and > only in their proper positions.")
+                                                             (* ; "Edited  8-Jan-2022 20:12 by rmk")
+    (for I (CA _ (CASEARRAY)) from (CHARCODE a) to (CHARCODE z)
+       do [SETCASEARRAY CA I (IDIFFERENCE I (CONSTANT (IDIFFERENCE (CHARCODE a)
+                                                             (CHARCODE A]
+       finally (SETCASEARRAY CA (CHARCODE <)
+                      (CHARCODE /))
+             (SETCASEARRAY CA (CHARCODE >)
+                    (CHARCODE /))
+             (RETURN CA])
+)
+
+(RPAQ FILEDIRCASEARRAY (FILEDIRCASEARRAY))
 (DECLARE%: DOEVAL@COMPILE DONTCOPY
 
 (GLOBALVARS \FILENAME.SYNTAX)
@@ -1156,14 +1176,14 @@ Copyright (c) 1981-1988, 1990-1992, 1920, 2017, 2020-2021 by Venue & Xerox Corpo
 (PUTPROPS ADIR COPYRIGHT ("Venue & Xerox Corporation" 1981 1982 1983 1984 1985 1986 1987 1988 1990 
 1991 1992 1920 2017 2020 2021))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (2687 13812 (DELFILE 2697 . 2858) (FULLNAME 2860 . 3227) (INFILE 3229 . 3377) (INFILEP 
-3379 . 3514) (IOFILE 3516 . 3656) (OPENFILE 3658 . 4058) (OPENSTREAM 4060 . 8400) (OUTFILE 8402 . 8553
-) (OUTFILEP 8555 . 8691) (RENAMEFILE 8693 . 8999) (SIMPLE.FINDFILE 9001 . 9411) (VMEMSIZE 9413 . 9580)
- (\COPYSYS 9582 . 12531) (\FLUSHVM 12533 . 13605) (\LOGOUT0 13607 . 13810)) (14184 34416 (
-UNPACKFILENAME 14194 . 14380) (UNPACKFILENAME.STRING 14382 . 31295) (LASTCHPOS 31297 . 31991) (
-\UPF.NEXTPOS 31993 . 32638) (\UPF.TEMPFILEP 32640 . 33217) (FILENAMEFIELD 33219 . 33704) (PACKFILENAME
- 33706 . 34049) (PACKFILENAME.STRING 34051 . 34414)) (56056 63236 (LOGOUT 56066 . 56983) (MAKESYS 
-56985 . 58614) (SYSOUT 58616 . 60168) (SAVEVM 60170 . 60970) (HERALD 60972 . 61132) (INTERPRET.REM.CM 
-61134 . 62859) (\USEREVENT 62861 . 63234)) (63418 65145 (USERNAME 63428 . 64384) (SETUSERNAME 64386 . 
-65143)))))
+  (FILEMAP (NIL (2771 13896 (DELFILE 2781 . 2942) (FULLNAME 2944 . 3311) (INFILE 3313 . 3461) (INFILEP 
+3463 . 3598) (IOFILE 3600 . 3740) (OPENFILE 3742 . 4142) (OPENSTREAM 4144 . 8484) (OUTFILE 8486 . 8637
+) (OUTFILEP 8639 . 8775) (RENAMEFILE 8777 . 9083) (SIMPLE.FINDFILE 9085 . 9495) (VMEMSIZE 9497 . 9664)
+ (\COPYSYS 9666 . 12615) (\FLUSHVM 12617 . 13689) (\LOGOUT0 13691 . 13894)) (14268 34500 (
+UNPACKFILENAME 14278 . 14464) (UNPACKFILENAME.STRING 14466 . 31379) (LASTCHPOS 31381 . 32075) (
+\UPF.NEXTPOS 32077 . 32722) (\UPF.TEMPFILEP 32724 . 33301) (FILENAMEFIELD 33303 . 33788) (PACKFILENAME
+ 33790 . 34133) (PACKFILENAME.STRING 34135 . 34498)) (56022 56935 (FILEDIRCASEARRAY 56032 . 56933)) (
+57102 64282 (LOGOUT 57112 . 58029) (MAKESYS 58031 . 59660) (SYSOUT 59662 . 61214) (SAVEVM 61216 . 
+62016) (HERALD 62018 . 62178) (INTERPRET.REM.CM 62180 . 63905) (\USEREVENT 63907 . 64280)) (64464 
+66191 (USERNAME 64474 . 65430) (SETUSERNAME 65432 . 66189)))))
 STOP
diff --git a/sources/ADIR.LCOM b/sources/ADIR.LCOM
index da993a54..88f2aa6d 100644
Binary files a/sources/ADIR.LCOM and b/sources/ADIR.LCOM differ
diff --git a/sources/COREIO b/sources/COREIO
index c1b40da7..0fe52821 100644
--- a/sources/COREIO
+++ b/sources/COREIO
@@ -1,11 +1,11 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
 
-(FILECREATED "18-Jan-2022 11:22:04" {DSK}<Users>kaplan>Local>medley3.5>my-medley>sources>COREIO.;14 58002  
+(FILECREATED "26-Jan-2022 10:18:51" {DSK}<Users>kaplan>Local>medley3.5>my-medley>sources>COREIO.;15 56955  
 
-      :CHANGES-TO (FNS \CORE.DIRECTORYNAMEP)
+      :CHANGES-TO (VARS COREIOCOMS)
 
-      :PREVIOUS-DATE "11-Jan-2022 16:45:02" 
-{DSK}<Users>kaplan>Local>medley3.5>my-medley>sources>COREIO.;13)
+      :PREVIOUS-DATE "18-Jan-2022 11:22:04" 
+{DSK}<Users>kaplan>Local>medley3.5>my-medley>sources>COREIO.;14)
 
 
 (* ; "
@@ -27,8 +27,6 @@ Copyright (c) 1981-1988, 1990, 1993, 1999, 2018 by Venue & Xerox Corporation.
              \CORE.SETACCESSTIME \CORE.SETFILEINFO \CORE.GETNEXTBUFFER \CORE.UNPACKFILENAME)
         (FNS COREDEVICE \CREATECOREDEVICE)
         (FNS \NODIRCOREFDEV \NODIRCORE.OPENFILE)
-        (FNS FILEDIRCASEARRAY)
-        (VARS (FILEDIRCASEARRAY (FILEDIRCASEARRAY)))
         (DECLARE%: DONTCOPY (RECORDS CORE.PAGEENTRY COREFILEINFOBLK CORESTREAM COREDEVICE 
                                    COREGENFILESTATE))
         (INITRECORDS COREFILEINFOBLK)
@@ -902,24 +900,6 @@ Copyright (c) 1981-1988, 1990, 1993, 1999, 2018 by Venue & Xerox Corporation.
     (\CORE.SETACCESSTIME NAME ACCESS)
     NAME])
 )
-(DEFINEQ
-
-(FILEDIRCASEARRAY
-  [LAMBDA NIL                                                (* ; "Edited  8-Jan-2022 20:15 by rmk")
-
-    (* ;; "Returns a case array suitable for case insensitive directory matching:  <, >, and / all map together in any position.  Presumably there are other well-formedness conditions that put < and > only in their proper positions.")
-                                                             (* ; "Edited  8-Jan-2022 20:12 by rmk")
-    (for I (CA _ (CASEARRAY)) from (CHARCODE a) to (CHARCODE z)
-       do [SETCASEARRAY CA I (IDIFFERENCE I (CONSTANT (IDIFFERENCE (CHARCODE a)
-                                                             (CHARCODE A]
-       finally (SETCASEARRAY CA (CHARCODE <)
-                      (CHARCODE /))
-             (SETCASEARRAY CA (CHARCODE >)
-                    (CHARCODE /))
-             (RETURN CA])
-)
-
-(RPAQ FILEDIRCASEARRAY (FILEDIRCASEARRAY))
 (DECLARE%: DONTCOPY 
 (DECLARE%: EVAL@COMPILE
 
@@ -1017,16 +997,16 @@ Copyright (c) 1981-1988, 1990, 1993, 1999, 2018 by Venue & Xerox Corporation.
 (PUTPROPS COREIO COPYRIGHT ("Venue & Xerox Corporation" 1981 1982 1983 1984 1985 1986 1987 1988 1990 
 1993 1999 2018))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (1796 46254 (\CORE.CLOSEFILE 1806 . 2579) (\CORE.DELETEFILE 2581 . 4567) (
-\CORE.DIRECTORYNAMEP 4569 . 6250) (\CORE.FINDPAGE 6252 . 9481) (\CORE.GENERATEFILES 9483 . 12070) (
-\CORE.NEXTFILEFN 12072 . 12571) (\CORE.FILEINFOFN 12573 . 12802) (\CORE.GETFILEHANDLE 12804 . 14958) (
-\CORE.GETFILEINFO 14960 . 15923) (\CORE.GETFILEINFO.FROM.INFOBLOCK 15925 . 17462) (\CORE.GETFILENAME 
-17464 . 19753) (\CORE.GETINFOBLOCK 19755 . 22378) (\CORE.NAMESCAN 22380 . 23927) (\CORE.NAMESEGMENT 
-23929 . 24366) (\CORE.OPENFILE 24368 . 27487) (\COREFILE.SETPARAMETERS 27489 . 29670) (
-\CORE.PACKFILENAME 29672 . 30067) (\CORE.RELEASEPAGES 30069 . 30670) (\CORE.SETFILEPTR 30672 . 31771) 
-(\CORE.UPDATEOF 31773 . 33402) (\CORE.BACKFILEPTR 33404 . 35612) (\CORE.SETEOFPTR 35614 . 37483) (
-\CORE.SETACCESSTIME 37485 . 38110) (\CORE.SETFILEINFO 38112 . 40414) (\CORE.GETNEXTBUFFER 40416 . 
-44372) (\CORE.UNPACKFILENAME 44374 . 46252)) (46255 49888 (COREDEVICE 46265 . 46436) (
-\CREATECOREDEVICE 46438 . 49886)) (49889 52190 (\NODIRCOREFDEV 49899 . 50496) (\NODIRCORE.OPENFILE 
-50498 . 52188)) (52191 53096 (FILEDIRCASEARRAY 52201 . 53094)))))
+  (FILEMAP (NIL (1703 46161 (\CORE.CLOSEFILE 1713 . 2486) (\CORE.DELETEFILE 2488 . 4474) (
+\CORE.DIRECTORYNAMEP 4476 . 6157) (\CORE.FINDPAGE 6159 . 9388) (\CORE.GENERATEFILES 9390 . 11977) (
+\CORE.NEXTFILEFN 11979 . 12478) (\CORE.FILEINFOFN 12480 . 12709) (\CORE.GETFILEHANDLE 12711 . 14865) (
+\CORE.GETFILEINFO 14867 . 15830) (\CORE.GETFILEINFO.FROM.INFOBLOCK 15832 . 17369) (\CORE.GETFILENAME 
+17371 . 19660) (\CORE.GETINFOBLOCK 19662 . 22285) (\CORE.NAMESCAN 22287 . 23834) (\CORE.NAMESEGMENT 
+23836 . 24273) (\CORE.OPENFILE 24275 . 27394) (\COREFILE.SETPARAMETERS 27396 . 29577) (
+\CORE.PACKFILENAME 29579 . 29974) (\CORE.RELEASEPAGES 29976 . 30577) (\CORE.SETFILEPTR 30579 . 31678) 
+(\CORE.UPDATEOF 31680 . 33309) (\CORE.BACKFILEPTR 33311 . 35519) (\CORE.SETEOFPTR 35521 . 37390) (
+\CORE.SETACCESSTIME 37392 . 38017) (\CORE.SETFILEINFO 38019 . 40321) (\CORE.GETNEXTBUFFER 40323 . 
+44279) (\CORE.UNPACKFILENAME 44281 . 46159)) (46162 49795 (COREDEVICE 46172 . 46343) (
+\CREATECOREDEVICE 46345 . 49793)) (49796 52097 (\NODIRCOREFDEV 49806 . 50403) (\NODIRCORE.OPENFILE 
+50405 . 52095)))))
 STOP
diff --git a/sources/COREIO.LCOM b/sources/COREIO.LCOM
index b7187bd1..3a657691 100644
Binary files a/sources/COREIO.LCOM and b/sources/COREIO.LCOM differ
