diff --git a/sources/AOFD b/sources/AOFD
index 3f7c304b..d4d64b75 100644
--- a/sources/AOFD
+++ b/sources/AOFD
@@ -1,10 +1,11 @@
-(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED " 5-Sep-2021 08:26:16" {DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>AOFD.;7 38270  
+(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10 FORMAT XCCS)
+(FILECREATED " 9-Aug-2021 23:30:19" {DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>AOFD.;5 38301  
 
-      changes to%:  (FNS \BASEBYTES.IO.INIT \STRINGSTREAM.INIT)
+      changes to%:  (VARS AOFDCOMS)
+                    (FNS \STRINGSTREAM.INIT)
 
-      previous date%: " 9-Aug-2021 23:30:19" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>AOFD.;6)
+      previous date%: " 8-Aug-2021 00:11:00" 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>AOFD.;4)
 
 
 (* ; "
@@ -803,16 +804,16 @@ Copyright (c) 1981-1987, 1990, 2021 by Venue & Xerox Corporation.
 )
 (PUTPROPS AOFD COPYRIGHT ("Venue & Xerox Corporation" 1981 1982 1983 1984 1985 1986 1987 1990 2021))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (2584 3691 (\ADD-OPEN-STREAM 2594 . 2871) (\GENERIC-UNREGISTER-STREAM 2873 . 3689)) (
-3732 10989 (CLOSEALL 3742 . 4447) (CLOSEF 4449 . 5645) (EOFCLOSEF 5647 . 5943) (INPUT 5945 . 6717) (
-OPENP 6719 . 7118) (OUTPUT 7120 . 7894) (POSITION 7896 . 8708) (RANDACCESSP 8710 . 9185) (\IOMODEP 
-9187 . 9824) (WHENCLOSE 9826 . 10987)) (10990 11112 (STREAMADDPROP 11000 . 11110)) (12276 25157 (
-\BASEBYTES.IO.INIT 12286 . 15482) (\MAKEBASEBYTESTREAM 15484 . 18796) (\MBS.OUTCHARFN 18798 . 19186) (
-\BASEBYTES.NAME.FROM.STREAM 19188 . 19651) (\BASEBYTES.BOUT 19653 . 20370) (\BASEBYTES.SETFILEPTR 
-20372 . 20993) (\BASEBYTES.READP 20995 . 21631) (\BASEBYTES.BIN 21633 . 22164) (\BASEBYTES.PEEKBIN 
-22166 . 22997) (\BASEBYTES.TRUNCATEFN 22999 . 23503) (\BASEBYTES.OPENFN 23505 . 23995) (
-\BASEBYTES.BLOCKIO 23997 . 25155)) (25280 28589 (OPENSTRINGSTREAM 25290 . 27007) (MAKE-STRING-FORMAT 
-27009 . 28587)) (28861 33522 (\STRINGSTREAM.INIT 28871 . 33520)) (33599 37171 (GETSTREAM 33609 . 33832
-) (\ADDOFD 33834 . 34121) (\CLEAROFD 34123 . 34404) (\DELETEOFD 34406 . 34557) (\GETSTREAM 34559 . 
-36723) (\SEARCHOPENFILES 36725 . 37169)))))
+  (FILEMAP (NIL (2615 3722 (\ADD-OPEN-STREAM 2625 . 2902) (\GENERIC-UNREGISTER-STREAM 2904 . 3720)) (
+3763 11020 (CLOSEALL 3773 . 4478) (CLOSEF 4480 . 5676) (EOFCLOSEF 5678 . 5974) (INPUT 5976 . 6748) (
+OPENP 6750 . 7149) (OUTPUT 7151 . 7925) (POSITION 7927 . 8739) (RANDACCESSP 8741 . 9216) (\IOMODEP 
+9218 . 9855) (WHENCLOSE 9857 . 11018)) (11021 11143 (STREAMADDPROP 11031 . 11141)) (12307 25188 (
+\BASEBYTES.IO.INIT 12317 . 15513) (\MAKEBASEBYTESTREAM 15515 . 18827) (\MBS.OUTCHARFN 18829 . 19217) (
+\BASEBYTES.NAME.FROM.STREAM 19219 . 19682) (\BASEBYTES.BOUT 19684 . 20401) (\BASEBYTES.SETFILEPTR 
+20403 . 21024) (\BASEBYTES.READP 21026 . 21662) (\BASEBYTES.BIN 21664 . 22195) (\BASEBYTES.PEEKBIN 
+22197 . 23028) (\BASEBYTES.TRUNCATEFN 23030 . 23534) (\BASEBYTES.OPENFN 23536 . 24026) (
+\BASEBYTES.BLOCKIO 24028 . 25186)) (25311 28620 (OPENSTRINGSTREAM 25321 . 27038) (MAKE-STRING-FORMAT 
+27040 . 28618)) (28892 33553 (\STRINGSTREAM.INIT 28902 . 33551)) (33630 37202 (GETSTREAM 33640 . 33863
+) (\ADDOFD 33865 . 34152) (\CLEAROFD 34154 . 34435) (\DELETEOFD 34437 . 34588) (\GETSTREAM 34590 . 
+36754) (\SEARCHOPENFILES 36756 . 37200)))))
 STOP
diff --git a/sources/AOFD.LCOM b/sources/AOFD.LCOM
index c09b0072..a471bc3b 100644
Binary files a/sources/AOFD.LCOM and b/sources/AOFD.LCOM differ
diff --git a/sources/ATERM b/sources/ATERM
index 18346fa5..096e3457 100644
--- a/sources/ATERM
+++ b/sources/ATERM
@@ -1,10 +1,10 @@
-(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED " 5-Sep-2021 08:25:38" {DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>ATERM.;5 57504  
+(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10 FORMAT XCCS)
+(FILECREATED " 7-Aug-2021 12:47:09" {DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>ATERM.;3 57513  
 
-      changes to%:  (FNS \INITBCPLDISPLAY)
+      changes to%:  (FNS \FILLBUFFER)
 
-      previous date%: " 7-Aug-2021 12:47:09" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>ATERM.;4)
+      previous date%: "23-Jun-2021 12:31:16" 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>ATERM.;2)
 
 
 (* ; "
@@ -1142,18 +1142,18 @@ Copyright (c) 1982-1988, 1990, 2021 by Venue & Xerox Corporation.
 )
 (PUTPROPS ATERM COPYRIGHT ("Venue & Xerox Corporation" 1982 1983 1984 1985 1986 1987 1988 1990 2021))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (2983 31940 (BKLINBUF 2993 . 3468) (CLEARBUF 3470 . 4802) (LINBUF 4804 . 4990) (
-PAGEFULLFN 4992 . 6473) (SETLINELENGTH 6475 . 6671) (SYSBUF 6673 . 6859) (TERMCHARWIDTH 6861 . 7278) (
-TERMINAL-INPUT 7280 . 7848) (TERMINAL-OUTPUT 7850 . 8436) (\CHDEL1 8438 . 8707) (\CLOSELINE 8709 . 
-8998) (\DECPARENCOUNT 9000 . 10583) (\ECHOCHAR 10585 . 11277) (\FILLBUFFER 11279 . 24270) (
-\FILLBUFFER.WORDSEPRP 24272 . 24517) (\FILLBUFFER.BACKUP 24519 . 24698) (\GETCHAR 24700 . 25089) (
-\INCPARENCOUNT 25091 . 27703) (\RESETLINE 27705 . 28029) (\RESETTERMINAL 28031 . 28795) (\SAVELINEBUF 
-28797 . 30768) (\STOPSCROLL? 30770 . 31938)) (32151 36007 (\DSCCOUT 32161 . 35301) (\INITBCPLDISPLAY 
-35303 . 36005)) (36200 37450 (VIDEOCOLOR 36210 . 37448)) (38282 44136 (\PEEKREFILL 38292 . 42403) (
-\READREFILL 42405 . 42999) (\RATOM/RSTRING-REFILL 43001 . 43579) (\READCREFILL 43581 . 44134)) (44137 
-45966 (DRIBBLE 44147 . 45748) (DRIBBLEFILE 45750 . 45964)) (45967 52642 (\SETUP.DEFAULT.LINEBUF 45977
- . 48434) (\CREATELINEBUFFER 48436 . 50858) (\LINEBUF.READP 50860 . 51209) (\LINEBUF.EOFP 51211 . 
-51550) (\LINEBUF.PEEKBIN 51552 . 51759) (\OPENLINEBUF 51761 . 52640)) (52717 53956 (LINEBUFFER-EOFP 
-52727 . 53185) (LINEBUFFER-SKIPSEPRS 53187 . 53954)) (54313 54587 (\INTERMP 54323 . 54454) (\OUTTERMP 
-54456 . 54585)))))
+  (FILEMAP (NIL (2992 31949 (BKLINBUF 3002 . 3477) (CLEARBUF 3479 . 4811) (LINBUF 4813 . 4999) (
+PAGEFULLFN 5001 . 6482) (SETLINELENGTH 6484 . 6680) (SYSBUF 6682 . 6868) (TERMCHARWIDTH 6870 . 7287) (
+TERMINAL-INPUT 7289 . 7857) (TERMINAL-OUTPUT 7859 . 8445) (\CHDEL1 8447 . 8716) (\CLOSELINE 8718 . 
+9007) (\DECPARENCOUNT 9009 . 10592) (\ECHOCHAR 10594 . 11286) (\FILLBUFFER 11288 . 24279) (
+\FILLBUFFER.WORDSEPRP 24281 . 24526) (\FILLBUFFER.BACKUP 24528 . 24707) (\GETCHAR 24709 . 25098) (
+\INCPARENCOUNT 25100 . 27712) (\RESETLINE 27714 . 28038) (\RESETTERMINAL 28040 . 28804) (\SAVELINEBUF 
+28806 . 30777) (\STOPSCROLL? 30779 . 31947)) (32160 36016 (\DSCCOUT 32170 . 35310) (\INITBCPLDISPLAY 
+35312 . 36014)) (36209 37459 (VIDEOCOLOR 36219 . 37457)) (38291 44145 (\PEEKREFILL 38301 . 42412) (
+\READREFILL 42414 . 43008) (\RATOM/RSTRING-REFILL 43010 . 43588) (\READCREFILL 43590 . 44143)) (44146 
+45975 (DRIBBLE 44156 . 45757) (DRIBBLEFILE 45759 . 45973)) (45976 52651 (\SETUP.DEFAULT.LINEBUF 45986
+ . 48443) (\CREATELINEBUFFER 48445 . 50867) (\LINEBUF.READP 50869 . 51218) (\LINEBUF.EOFP 51220 . 
+51559) (\LINEBUF.PEEKBIN 51561 . 51768) (\OPENLINEBUF 51770 . 52649)) (52726 53965 (LINEBUFFER-EOFP 
+52736 . 53194) (LINEBUFFER-SKIPSEPRS 53196 . 53963)) (54322 54596 (\INTERMP 54332 . 54463) (\OUTTERMP 
+54465 . 54594)))))
 STOP
diff --git a/sources/ATERM.LCOM b/sources/ATERM.LCOM
index be0e20bd..35118f62 100644
Binary files a/sources/ATERM.LCOM and b/sources/ATERM.LCOM differ
diff --git a/sources/BSP b/sources/BSP
index 18f718bb..024df423 100644
--- a/sources/BSP
+++ b/sources/BSP
@@ -1,59 +1,58 @@
-(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED " 5-Sep-2021 08:26:22" {DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>BSP.;2 149423 
+(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP")
+(FILECREATED "19-Jan-93 10:23:19" {DSK}<python>lde>lispcore>sources>BSP.;3 149048 
 
-      changes to%:  (FNS \BSPINIT)
+      changes to%:  (RECORDS BSPSOC ACKPUP BSPSTREAM)
 
-      previous date%: "19-Jan-93 10:23:19" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>BSP.;1)
+      previous date%: " 4-Jan-93 17:24:25" {DSK}<python>lde>lispcore>sources>BSP.;2)
 
 
 (* ; "
-Copyright (c) 1982-1983, 1900, 1984-1987, 1990, 1993, 2021 by Venue & Xerox Corporation.
+Copyright (c) 1982, 1983, 1900, 1984, 1985, 1986, 1987, 1990, 1993 by Venue & Xerox Corporation.  All rights reserved.
 ")
 
 (PRETTYCOMPRINT BSPCOMS)
 
-(RPAQQ BSPCOMS
-       ((DECLARE%: EVAL@COMPILE DONTCOPY                     (* ; 
-                                               "This socket record has both RTP and BSP state info")
+(RPAQQ BSPCOMS 
+       ((DECLARE%: EVAL@COMPILE DONTCOPY                     (* ; 
+                                               "This socket record has both RTP and BSP state info")
                (RECORDS BSPSOC ACKPUP BSPSTREAM)
                (CONSTANTS * RTPSTATES)
                (CONSTANTS * RTPEVENTS)
                (CONSTANTS (WORDSPERPORT 3))
                (MACROS RTP.OTHERFN BSP.OTHERFN BSP.INPUT.ERROR BSP.OUTPUT.ERROR \BSPINCFILEPTR))
-        (COMS                                                (* ; 
-                                                           "User-level RTP socket manipulation")
+        (COMS                                                (* ; 
+                                                           "User-level RTP socket manipulation")
               (FNS OPENRTPSOCKET CLOSERTPSOCKET \INIT.RTPPROCESS))
-        (COMS                                                (* ; "RTP process")
+        (COMS                                                (* ; "RTP process")
               (FNS \RTP.SOCKET.PROCESS \RTP.HANDLE.INPUT \RTP.HANDLE.PUP \RTP.HANDLE.RFC \RTP.CLEANUP
                    \RTP.ACTION \RTP.ERROR \RTP.SHOW.FAILURE \RTP.FILTER \SEND.ABORT 
                    \SEND.ANSWERING.RFC \SEND.END \SEND.ENDREPLY \SEND.RFC \FILLRTPPUP \SETRTPPORTS)
               (FNS \BSPINIT \BSPEVENTFN \BSP.CLOSE.OPEN.SOCKETS))
-        (COMS                                                (* ; "Creating BSP stream")
+        (COMS                                                (* ; "Creating BSP stream")
               (FNS OPENBSPSTREAM \SMASHBSPSTREAM BSPOUTPUTSTREAM BSPINPUTSTREAM BSPFRNADDRESS 
                    CLOSEBSPSTREAM \BSP.FLUSHINPUT BSPOPENP GETBSPUSERINFO SETBSPUSERINFO)
               (FNS CREATEBSPSTREAM ENDBSPSTREAM))
-        (COMS                                                (* ; "BSP stream functions")
+        (COMS                                                (* ; "BSP stream functions")
               (FNS BSPBIN \BSP.GETNEXTBUFFER BSPPEEKBIN BSPREADP BSPEOFP \BSPBACKFILEPTR 
                    \BSP.PREPARE.INPUT \BSP.GETFILEPTR \BSP.DECLARE.FILEPTR \BSP.SETFILEPTR 
                    \BSP.SKIPBYTES \BSP.CLEANUP.INPUT BSPBOUT \BSP.OTHERBOUT \BSPWRITEBLOCK 
                    BSPFORCEOUTPUT \BSP.SENDBUFFER \BSP.PREPARE.OUTPUT BSPGETMARK BSPPUTMARK 
                    BSP.PUTINTERRUPT))
-        (COMS                                                (* ; "BSP pup handler")
+        (COMS                                                (* ; "BSP pup handler")
               (FNS \BSP.HANDLE.INPUT \BSP.HANDLE.ACK \BSP.HANDLE.DATA \BSP.HANDLE.ERROR 
                    \BSP.HANDLE.INTERRUPT \BSP.HANDLE.INTERRUPTREPLY \SEND.ACK \SEARCH.OUTPUTQ 
                    \SETBSPTIMEOUT \TRANSMIT.STRATEGY))
-        (COMS                                                (* ; "BSP utilities")
+        (COMS                                                (* ; "BSP utilities")
               (FNS \BSP.DEFAULT.ERROR.HANDLER \BSP.TIMERFN \BSP.FLUSH.SOCKET.QUEUES \FILLBSPPUP 
                    BSPHELP))
-        [COMS                                                (* ; "debugging")
+        [COMS                                                (* ; "debugging")
               (FNS PPSOC PPSOC.CURRENT PRINTTIMER PRINTPUPQUEUE BSPPRINTPUP \RTP.INFO.HOOK)
               (DECLARE%: DONTCOPY (ALISTS (PUPPRINTMACROS 8 9 16 17 18 20]
         (INITRECORDS BSPSOC)
         (SYSRECORDS BSPSOC)
         (DECLARE%: DONTEVAL@LOAD DOCOPY (P (\BSPINIT)))
-        (COMS                                                (* ; 
-                                                           "Some of these may want to be constants")
+        (COMS                                                (* ; 
+                                                           "Some of these may want to be constants")
               (INITVARS (\BSPSOCKETS)
                      (\RFC.TIMEOUT 2000)
                      (\RTP.DALLY.TIMEOUT 5000)
@@ -79,84 +78,84 @@ Copyright (c) 1982-1983, 1900, 1984-1987, 1990, 1993, 2021 by Venue & Xerox Corp
 (DECLARE%: EVAL@COMPILE
 
 (DATATYPE BSPSOC ((FRNPORT WORD)
-                      (FRNSOCKET FIXP)                       (* ; "Net,host,socket of partner")
+                      (FRNSOCKET FIXP)                       (* ; "Net,host,socket of partner")
                       (LCLPORT WORD)
-                      (LCLSOCKET FIXP)                       (* ; "Net,host,socket of us")
-                      (RTPSTATE BYTE)                        (* ; 
-                                           "The current state of the RTP connection, see RTPSTATES")
-                      (RTPPROCESS POINTER)                   (* ; "Process handle for RTP demon")
-                      (RTPEVENT POINTER)                     (* ; "Notified when RTPSTATE changes")
-                      (PUPSOC POINTER)                       (* ; 
-                                                           "The packet-level socket used by us")
-                      (CONNID POINTER)                       (* ; 
-                                                           "A large integer, the connection ID")
-                      (RTPTIMER POINTER)                     (* ; 
-                                                         "Timer used for timing out some RTP steps")
-                      (RTPTIMEOUT WORD)                      (* ; 
-                                                      "Timeout for current RTP op, or zero if none")
-                      (BSPINPUTHANDLER POINTER)              (* ; 
-                                       "Function that is the top-level loop of the watcher process")
+                      (LCLSOCKET FIXP)                       (* ; "Net,host,socket of us")
+                      (RTPSTATE BYTE)                        (* ; 
+                                           "The current state of the RTP connection, see RTPSTATES")
+                      (RTPPROCESS POINTER)                   (* ; "Process handle for RTP demon")
+                      (RTPEVENT POINTER)                     (* ; "Notified when RTPSTATE changes")
+                      (PUPSOC POINTER)                       (* ; 
+                                                           "The packet-level socket used by us")
+                      (CONNID POINTER)                       (* ; 
+                                                           "A large integer, the connection ID")
+                      (RTPTIMER POINTER)                     (* ; 
+                                                         "Timer used for timing out some RTP steps")
+                      (RTPTIMEOUT WORD)                      (* ; 
+                                                      "Timeout for current RTP op, or zero if none")
+                      (BSPINPUTHANDLER POINTER)              (* ; 
+                                       "Function that is the top-level loop of the watcher process")
 
-                      (* ;; "The rest of this structure is dedicated to handling the BSP")
+                      (* ;; "The rest of this structure is dedicated to handling the BSP")
 
-                      (BSPINPUTSTREAM POINTER)               (* ; "Pointer back to STREAM object")
-                      (BSPTIMER POINTER)                     (* ; "Timer for BSP use")
+                      (BSPINPUTSTREAM POINTER)               (* ; "Pointer back to STREAM object")
+                      (BSPTIMER POINTER)                     (* ; "Timer for BSP use")
                       (BSPTIMEOUT WORD)
-                      (BSPFAILUREREASON POINTER)             (* ; 
-                                                          "Why connection was broken or not opened")
-                      (BSPOTHERPUPFN POINTER)                (* ; 
-                                                      "Called on error, interrupt and non-bsp pups")
-                      (BSPERRORHANDLER POINTER)              (* ; "Called for bsp errors")
-                      (BSPIOTIMEOUT POINTER)                 (* ; 
-                               "if non-zero will cause prepare.output and prepare.input to timeout")
-                      (RCVBYTEID POINTER)                    (* ; "ID of as far as we have acked")
-                      (RCVINTERRUPTID POINTER)               (* ; "ID of next incoming interrupt")
-                      (BSPINPUTQ POINTER)                    (* ; 
-                                                           "Queue of all pups we have received")
-                      (%#UNREADPUPS WORD)                    (* ; 
-                                              "How many pups do we have before first hole in input")
-                      (XMITBYTEID POINTER)                   (* ; "Id of next outgoing pup")
-                      (XMITINTERRUPTID POINTER)              (* ; "id of next outgoing interrupt")
-                      (LASTACKID POINTER)                    (* ; 
-                                            "Id of last ack, i.e.  how far our partner has read us")
+                      (BSPFAILUREREASON POINTER)             (* ; 
+                                                          "Why connection was broken or not opened")
+                      (BSPOTHERPUPFN POINTER)                (* ; 
+                                                      "Called on error, interrupt and non-bsp pups")
+                      (BSPERRORHANDLER POINTER)              (* ; "Called for bsp errors")
+                      (BSPIOTIMEOUT POINTER)                 (* ; 
+                               "if non-zero will cause prepare.output and prepare.input to timeout")
+                      (RCVBYTEID POINTER)                    (* ; "ID of as far as we have acked")
+                      (RCVINTERRUPTID POINTER)               (* ; "ID of next incoming interrupt")
+                      (BSPINPUTQ POINTER)                    (* ; 
+                                                           "Queue of all pups we have received")
+                      (%#UNREADPUPS WORD)                    (* ; 
+                                              "How many pups do we have before first hole in input")
+                      (XMITBYTEID POINTER)                   (* ; "Id of next outgoing pup")
+                      (XMITINTERRUPTID POINTER)              (* ; "id of next outgoing interrupt")
+                      (LASTACKID POINTER)                    (* ; 
+                                            "Id of last ack, i.e.  how far our partner has read us")
                       (%#UNACKEDPUPS WORD)
-                      (%#UNACKEDBYTES WORD)                  (* ; 
-                                         "how many pups/bytes have we sent that haven't been acked")
-                      (BSPOUTPUTQ POINTER)                   (* ; 
-                                                           "Queue of sent but not acked pups")
-                      (BYTESPERPUP WORD)                     (* ; 
-                                                         "Maximum size we are allowed to grow pups")
-                      (PUPALLOC WORD)                        (* ; 
-                  "Remaining outgoing pup allocation, i.e.  partner's allocation less #UNACKEDPUPS")
-                      (BYTEALLOC WORD)                       (* ; 
-                                                           "Remaining outgoing byte allocation")
+                      (%#UNACKEDBYTES WORD)                  (* ; 
+                                         "how many pups/bytes have we sent that haven't been acked")
+                      (BSPOUTPUTQ POINTER)                   (* ; 
+                                                           "Queue of sent but not acked pups")
+                      (BYTESPERPUP WORD)                     (* ; 
+                                                         "Maximum size we are allowed to grow pups")
+                      (PUPALLOC WORD)                        (* ; 
+                  "Remaining outgoing pup allocation, i.e.  partner's allocation less #UNACKEDPUPS")
+                      (BYTEALLOC WORD)                       (* ; 
+                                                           "Remaining outgoing byte allocation")
                       (MAXPUPALLOC WORD)
                       (PUPALLOCCOUNT WORD)
-                      (ADATACOUNT WORD)                      (* ; "incremented once per AData sent")
-                      (LASTADATATIME POINTER)                (* ; "Time last ADATA was sent")
-                      (ADATATIMEOUT WORD)                    (* ; 
-                                                           "Timeout currently in use for AData")
-                      (INACTIVITYTIMER POINTER)              (* ; 
-                                                     "Time of last incoming pup on this connection")
-                      (LISTENING FLAG)                       (* ; 
-                                                "if socket was opened as a server rather than user")
-                      (INTERRUPTOUT FLAG)                    (* ; 
-                                                           "an unacked interrupt is outstanding")
-                      (INTERRUPTIN FLAG)                     (* ; "an interrupt has been received")
-                      (ACKPENDING FLAG)                      (* ; 
-                                                           "Adata was received, we need to ack")
-                      (ACKREQUESTED FLAG)                    (* ; 
-                                                       "We have sent an Adata, are waiting for ack")
-                      (SENTZEROALLOC FLAG)                   (* ; "Need to send gratuitous ack")
-                      (BSPNOACTIVITY FLAG)                   (* ; 
-                     "True if BSPINACTIVITYTIMEOUT has passed with no sign of life from other side")
-                      (BSPUSERSTATE POINTER)                 (* ; 
-                                                         "For applications use to do as it pleases")
-                      (NIL WORD)                             (* ; "No longer used")
-                      (IOTIMEOUTFN POINTER)                  (* ; 
-                                                     "function to be called when prepare.* timeout")
-                      (BSPWHENCLOSEDFN POINTER)              (* ; 
-                                                           "Called when connection is closed")
+                      (ADATACOUNT WORD)                      (* ; "incremented once per AData sent")
+                      (LASTADATATIME POINTER)                (* ; "Time last ADATA was sent")
+                      (ADATATIMEOUT WORD)                    (* ; 
+                                                           "Timeout currently in use for AData")
+                      (INACTIVITYTIMER POINTER)              (* ; 
+                                                     "Time of last incoming pup on this connection")
+                      (LISTENING FLAG)                       (* ; 
+                                                "if socket was opened as a server rather than user")
+                      (INTERRUPTOUT FLAG)                    (* ; 
+                                                           "an unacked interrupt is outstanding")
+                      (INTERRUPTIN FLAG)                     (* ; "an interrupt has been received")
+                      (ACKPENDING FLAG)                      (* ; 
+                                                           "Adata was received, we need to ack")
+                      (ACKREQUESTED FLAG)                    (* ; 
+                                                       "We have sent an Adata, are waiting for ack")
+                      (SENTZEROALLOC FLAG)                   (* ; "Need to send gratuitous ack")
+                      (BSPNOACTIVITY FLAG)                   (* ; 
+                     "True if BSPINACTIVITYTIMEOUT has passed with no sign of life from other side")
+                      (BSPUSERSTATE POINTER)                 (* ; 
+                                                         "For applications use to do as it pleases")
+                      (NIL WORD)                             (* ; "No longer used")
+                      (IOTIMEOUTFN POINTER)                  (* ; 
+                                                     "function to be called when prepare.* timeout")
+                      (BSPWHENCLOSEDFN POINTER)              (* ; 
+                                                           "Called when connection is closed")
                       (BSPINPUTEVENT POINTER)
                       (BSPLOCK POINTER)
                       (BSPINITTIMER POINTER)
@@ -175,7 +174,7 @@ Copyright (c) 1982-1983, 1900, 1984-1987, 1990, 1993, 2021 by Venue & Xerox Corp
                                         (LCLPUPADDRESS (CONS (fetch LCLPORT of DATUM)
                                                              (fetch LCLSOCKET of DATUM]
 
-                     (* ;; "Note: I assume record pkg does not break up the first six words (the two ports).  I hope I don't have to force it")
+                     (* ;; "Note: I assume record pkg does not break up the first six words (the two ports).  I hope I don't have to force it")
 
                      RTPTIMER _ (CREATECELL \FIXP)
                      BSPTIMER _ (CREATECELL \FIXP)
@@ -186,25 +185,25 @@ Copyright (c) 1982-1983, 1900, 1984-1987, 1990, 1993, 2021 by Venue & Xerox Corp
 
 (BLOCKRECORD ACKPUP ((ACKBYTESPERPUP WORD)
                          (ACKPUPS WORD)
-                         (ACKBYTES WORD))                    (* ; 
-                                                     "body of ACK pup, giving partner's allocation")
+                         (ACKBYTES WORD))                    (* ; 
+                                                     "body of ACK pup, giving partner's allocation")
                         )
 
 (ACCESSFNS BSPSTREAM [(BSPSOC (fetch F1 of DATUM)
                                  (replace F1 of DATUM with NEWVALUE))
-                                                             (* ; "BSPSOC object")
+                                                             (* ; "BSPSOC object")
                           (BSPOUTPUTSTREAM (fetch F2 of DATUM)
                                  (replace F2 of DATUM with NEWVALUE))
-                                                             (* ; 
-                                              "If this stream is the input side, gives output side")
+                                                             (* ; 
+                                              "If this stream is the input side, gives output side")
                           (BSPCURRENTPUP (fetch F3 of DATUM)
                                  (replace F3 of DATUM with NEWVALUE))
-                                                             (* ; 
-                                        "PUP whose body is the current buffer.  Could be redundant")
+                                                             (* ; 
+                                        "PUP whose body is the current buffer.  Could be redundant")
                           (MARKPENDING (fetch F4 of DATUM)
                                  (replace F4 of DATUM with NEWVALUE))
-                                                             (* ; 
-                                                           "On input, true if next byte is a mark")
+                                                             (* ; 
+                                                           "On input, true if next byte is a mark")
                           (BSPFILEPTRHI (fetch FW6 of DATUM)
                                  (replace FW6 of DATUM with NEWVALUE))
                           (BSPFILEPTRLO (fetch FW7 of DATUM)
@@ -318,17 +317,16 @@ Copyright (c) 1982-1983, 1900, 1984-1987, 1990, 1993, 2021 by Venue & Xerox Corp
 )
 
 
-(RPAQQ RTPEVENTS
-       ((\EVENT.OPEN 0)
-        (\EVENT.OPENLISTENING 1)
-        (\EVENT.OPENIMMEDIATE 2)
-        (\EVENT.CLOSE 3)
-        (\EVENT.FORCECLOSE 4)
-        (\EVENT.RFC 5)
-        (\EVENT.ABORT 6)
-        (\EVENT.END 7)
-        (\EVENT.ENDREPLY 8)
-        (\EVENT.TIMEOUT 9)))
+(RPAQQ RTPEVENTS ((\EVENT.OPEN 0)
+                      (\EVENT.OPENLISTENING 1)
+                      (\EVENT.OPENIMMEDIATE 2)
+                      (\EVENT.CLOSE 3)
+                      (\EVENT.FORCECLOSE 4)
+                      (\EVENT.RFC 5)
+                      (\EVENT.ABORT 6)
+                      (\EVENT.END 7)
+                      (\EVENT.ENDREPLY 8)
+                      (\EVENT.TIMEOUT 9)))
 (DECLARE%: EVAL@COMPILE 
 
 (RPAQQ \EVENT.OPEN 0)
@@ -374,47 +372,44 @@ Copyright (c) 1982-1983, 1900, 1984-1987, 1990, 1993, 2021 by Venue & Xerox Corp
 
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS RTP.OTHERFN MACRO ((PUP SOCKET)
-                                     (SELECTQ (fetch OTHERPUPFN of SOCKET)
-                                         (RELEASE.PUP (RELEASE.PUP PUP))
-                                         (\BSP.PUPHANDLER 
-                                              (\BSP.PUPHANDLER PUP SOCKET))
-                                         (APPLY* (fetch OTHERPUPFN of SOCKET)
-                                                PUP SOCKET))))
+[PUTPROPS RTP.OTHERFN MACRO ((PUP SOCKET)
+                             (SELECTQ (fetch OTHERPUPFN of SOCKET)
+                                 (RELEASE.PUP (RELEASE.PUP PUP))
+                                 (\BSP.PUPHANDLER 
+                                      (\BSP.PUPHANDLER PUP SOCKET))
+                                 (APPLY* (fetch OTHERPUPFN of SOCKET)
+                                        PUP SOCKET]
 
-(PUTPROPS BSP.OTHERFN MACRO [(PUP SOCKET)
-                                     (SELECTQ (fetch BSPOTHERPUPFN of SOCKET)
-                                         (RELEASE.PUP (RELEASE.PUP PUP))
-                                         (APPLY* (fetch BSPOTHERPUPFN of SOCKET)
-                                                PUP
-                                                (fetch BSPINPUTSTREAM of SOCKET])
+[PUTPROPS BSP.OTHERFN MACRO ((PUP SOCKET)
+                             (SELECTQ (fetch BSPOTHERPUPFN of SOCKET)
+                                 (RELEASE.PUP (RELEASE.PUP PUP))
+                                 (APPLY* (fetch BSPOTHERPUPFN of SOCKET)
+                                        PUP
+                                        (fetch BSPINPUTSTREAM of SOCKET]
 
-(PUTPROPS BSP.INPUT.ERROR MACRO (OPENLAMBDA (STREAM ERRCODE)
-                                          (APPLY* (fetch BSPERRORHANDLER
-                                                     of (fetch BSPSOC of STREAM))
-                                                 STREAM ERRCODE)))
+(PUTPROPS BSP.INPUT.ERROR MACRO (OPENLAMBDA (STREAM ERRCODE)
+                                       (APPLY* (fetch BSPERRORHANDLER
+                                                  of (fetch BSPSOC of STREAM))
+                                              STREAM ERRCODE)))
 
-(PUTPROPS BSP.OUTPUT.ERROR MACRO (OPENLAMBDA (STREAM ERRCODE)
-                                           (APPLY* (fetch BSPERRORHANDLER
-                                                      of (fetch BSPSOC of STREAM))
-                                                  STREAM ERRCODE)))
+(PUTPROPS BSP.OUTPUT.ERROR MACRO (OPENLAMBDA (STREAM ERRCODE)
+                                        (APPLY* (fetch BSPERRORHANDLER
+                                                   of (fetch BSPSOC of STREAM))
+                                               STREAM ERRCODE)))
 
-(PUTPROPS \BSPINCFILEPTR MACRO [(STREAM N)
-                                        (PROG (NEWLO)
-                                              (replace BSPFILEPTRLO of STREAM
-                                                 with (COND
-                                                             ((IGREATERP (SETQ NEWLO
-                                                                          (IPLUS (fetch 
-                                                                                        BSPFILEPTRLO
-                                                                                    of STREAM)
-                                                                                 N))
-                                                                     MAX.SMALL.INTEGER)
-                                                              (add (fetch BSPFILEPTRHI
-                                                                          of STREAM)
-                                                                     1)
-                                                              (SUB1 (IDIFFERENCE NEWLO 
-                                                                           MAX.SMALL.INTEGER)))
-                                                             (T NEWLO])
+[PUTPROPS \BSPINCFILEPTR MACRO ((STREAM N)
+                                (PROG (NEWLO)
+                                      (replace BSPFILEPTRLO of STREAM
+                                         with (COND
+                                                     ((IGREATERP (SETQ NEWLO
+                                                                  (IPLUS (fetch BSPFILEPTRLO
+                                                                            of STREAM)
+                                                                         N))
+                                                             MAX.SMALL.INTEGER)
+                                                      (add (fetch BSPFILEPTRHI of STREAM)
+                                                             1)
+                                                      (SUB1 (IDIFFERENCE NEWLO MAX.SMALL.INTEGER)))
+                                                     (T NEWLO]
 )
 )
 
@@ -2667,34 +2662,33 @@ Copyright (c) 1982-1983, 1900, 1984-1987, 1990, 1993, 2021 by Venue & Xerox Corp
        \BSP.MIN.ADATA.TIMEOUT \BSP.MAX.ADATA.TIMEOUT \BSP.INACTIVITY.TIMEOUT 
        \BSP.NO.INACTIVITY.TIMEOUT)
 )
-(PUTPROPS BSP COPYRIGHT ("Venue & Xerox Corporation" 1982 1983 1900 1984 1985 1986 1987 1990 1993 2021
-))
+(PUTPROPS BSP COPYRIGHT ("Venue & Xerox Corporation" 1982 1983 1900 1984 1985 1986 1987 1990 1993))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (22186 30354 (OPENRTPSOCKET 22196 . 27464) (CLOSERTPSOCKET 27466 . 29656) (
-\INIT.RTPPROCESS 29658 . 30352)) (30383 56738 (\RTP.SOCKET.PROCESS 30393 . 31244) (\RTP.HANDLE.INPUT 
-31246 . 32231) (\RTP.HANDLE.PUP 32233 . 33765) (\RTP.HANDLE.RFC 33767 . 36259) (\RTP.CLEANUP 36261 . 
-37305) (\RTP.ACTION 37307 . 47779) (\RTP.ERROR 47781 . 48247) (\RTP.SHOW.FAILURE 48249 . 49686) (
-\RTP.FILTER 49688 . 51153) (\SEND.ABORT 51155 . 52073) (\SEND.ANSWERING.RFC 52075 . 53820) (\SEND.END 
-53822 . 54034) (\SEND.ENDREPLY 54036 . 54258) (\SEND.RFC 54260 . 55632) (\FILLRTPPUP 55634 . 56317) (
-\SETRTPPORTS 56319 . 56736)) (56739 59996 (\BSPINIT 56749 . 58588) (\BSPEVENTFN 58590 . 58929) (
-\BSP.CLOSE.OPEN.SOCKETS 58931 . 59994)) (60033 74318 (OPENBSPSTREAM 60043 . 67019) (\SMASHBSPSTREAM 
-67021 . 68392) (BSPOUTPUTSTREAM 68394 . 68750) (BSPINPUTSTREAM 68752 . 68986) (BSPFRNADDRESS 68988 . 
-69205) (CLOSEBSPSTREAM 69207 . 71911) (\BSP.FLUSHINPUT 71913 . 72464) (BSPOPENP 72466 . 73745) (
-GETBSPUSERINFO 73747 . 74007) (SETBSPUSERINFO 74009 . 74316)) (74319 74780 (CREATEBSPSTREAM 74329 . 
-74625) (ENDBSPSTREAM 74627 . 74778)) (74818 99611 (BSPBIN 74828 . 74960) (\BSP.GETNEXTBUFFER 74962 . 
-76639) (BSPPEEKBIN 76641 . 76792) (BSPREADP 76794 . 77994) (BSPEOFP 77996 . 78776) (\BSPBACKFILEPTR 
-78778 . 79212) (\BSP.PREPARE.INPUT 79214 . 83634) (\BSP.GETFILEPTR 83636 . 83932) (
-\BSP.DECLARE.FILEPTR 83934 . 84109) (\BSP.SETFILEPTR 84111 . 84728) (\BSP.SKIPBYTES 84730 . 85518) (
-\BSP.CLEANUP.INPUT 85520 . 86554) (BSPBOUT 86556 . 86777) (\BSP.OTHERBOUT 86779 . 87035) (
-\BSPWRITEBLOCK 87037 . 87296) (BSPFORCEOUTPUT 87298 . 88335) (\BSP.SENDBUFFER 88337 . 91173) (
-\BSP.PREPARE.OUTPUT 91175 . 95052) (BSPGETMARK 95054 . 95531) (BSPPUTMARK 95533 . 97142) (
-BSP.PUTINTERRUPT 97144 . 99609)) (99644 129131 (\BSP.HANDLE.INPUT 99654 . 102515) (\BSP.HANDLE.ACK 
-102517 . 111645) (\BSP.HANDLE.DATA 111647 . 116579) (\BSP.HANDLE.ERROR 116581 . 117781) (
-\BSP.HANDLE.INTERRUPT 117783 . 119293) (\BSP.HANDLE.INTERRUPTREPLY 119295 . 120756) (\SEND.ACK 120758
- . 122678) (\SEARCH.OUTPUTQ 122680 . 124159) (\SETBSPTIMEOUT 124161 . 126045) (\TRANSMIT.STRATEGY 
-126047 . 129129)) (129162 133566 (\BSP.DEFAULT.ERROR.HANDLER 129172 . 129586) (\BSP.TIMERFN 129588 . 
-132024) (\BSP.FLUSH.SOCKET.QUEUES 132026 . 132905) (\FILLBSPPUP 132907 . 133428) (BSPHELP 133430 . 
-133564)) (133593 143408 (PPSOC 133603 . 138899) (PPSOC.CURRENT 138901 . 139240) (PRINTTIMER 139242 . 
-139724) (PRINTPUPQUEUE 139726 . 142001) (BSPPRINTPUP 142003 . 142675) (\RTP.INFO.HOOK 142677 . 143406)
+  (FILEMAP (NIL (21817 29985 (OPENRTPSOCKET 21827 . 27095) (CLOSERTPSOCKET 27097 . 29287) (
+\INIT.RTPPROCESS 29289 . 29983)) (30014 56369 (\RTP.SOCKET.PROCESS 30024 . 30875) (\RTP.HANDLE.INPUT 
+30877 . 31862) (\RTP.HANDLE.PUP 31864 . 33396) (\RTP.HANDLE.RFC 33398 . 35890) (\RTP.CLEANUP 35892 . 
+36936) (\RTP.ACTION 36938 . 47410) (\RTP.ERROR 47412 . 47878) (\RTP.SHOW.FAILURE 47880 . 49317) (
+\RTP.FILTER 49319 . 50784) (\SEND.ABORT 50786 . 51704) (\SEND.ANSWERING.RFC 51706 . 53451) (\SEND.END 
+53453 . 53665) (\SEND.ENDREPLY 53667 . 53889) (\SEND.RFC 53891 . 55263) (\FILLRTPPUP 55265 . 55948) (
+\SETRTPPORTS 55950 . 56367)) (56370 59627 (\BSPINIT 56380 . 58219) (\BSPEVENTFN 58221 . 58560) (
+\BSP.CLOSE.OPEN.SOCKETS 58562 . 59625)) (59664 73949 (OPENBSPSTREAM 59674 . 66650) (\SMASHBSPSTREAM 
+66652 . 68023) (BSPOUTPUTSTREAM 68025 . 68381) (BSPINPUTSTREAM 68383 . 68617) (BSPFRNADDRESS 68619 . 
+68836) (CLOSEBSPSTREAM 68838 . 71542) (\BSP.FLUSHINPUT 71544 . 72095) (BSPOPENP 72097 . 73376) (
+GETBSPUSERINFO 73378 . 73638) (SETBSPUSERINFO 73640 . 73947)) (73950 74411 (CREATEBSPSTREAM 73960 . 
+74256) (ENDBSPSTREAM 74258 . 74409)) (74449 99242 (BSPBIN 74459 . 74591) (\BSP.GETNEXTBUFFER 74593 . 
+76270) (BSPPEEKBIN 76272 . 76423) (BSPREADP 76425 . 77625) (BSPEOFP 77627 . 78407) (\BSPBACKFILEPTR 
+78409 . 78843) (\BSP.PREPARE.INPUT 78845 . 83265) (\BSP.GETFILEPTR 83267 . 83563) (
+\BSP.DECLARE.FILEPTR 83565 . 83740) (\BSP.SETFILEPTR 83742 . 84359) (\BSP.SKIPBYTES 84361 . 85149) (
+\BSP.CLEANUP.INPUT 85151 . 86185) (BSPBOUT 86187 . 86408) (\BSP.OTHERBOUT 86410 . 86666) (
+\BSPWRITEBLOCK 86668 . 86927) (BSPFORCEOUTPUT 86929 . 87966) (\BSP.SENDBUFFER 87968 . 90804) (
+\BSP.PREPARE.OUTPUT 90806 . 94683) (BSPGETMARK 94685 . 95162) (BSPPUTMARK 95164 . 96773) (
+BSP.PUTINTERRUPT 96775 . 99240)) (99275 128762 (\BSP.HANDLE.INPUT 99285 . 102146) (\BSP.HANDLE.ACK 
+102148 . 111276) (\BSP.HANDLE.DATA 111278 . 116210) (\BSP.HANDLE.ERROR 116212 . 117412) (
+\BSP.HANDLE.INTERRUPT 117414 . 118924) (\BSP.HANDLE.INTERRUPTREPLY 118926 . 120387) (\SEND.ACK 120389
+ . 122309) (\SEARCH.OUTPUTQ 122311 . 123790) (\SETBSPTIMEOUT 123792 . 125676) (\TRANSMIT.STRATEGY 
+125678 . 128760)) (128793 133197 (\BSP.DEFAULT.ERROR.HANDLER 128803 . 129217) (\BSP.TIMERFN 129219 . 
+131655) (\BSP.FLUSH.SOCKET.QUEUES 131657 . 132536) (\FILLBSPPUP 132538 . 133059) (BSPHELP 133061 . 
+133195)) (133224 143039 (PPSOC 133234 . 138530) (PPSOC.CURRENT 138532 . 138871) (PRINTTIMER 138873 . 
+139355) (PRINTPUPQUEUE 139357 . 141632) (BSPPRINTPUP 141634 . 142306) (\RTP.INFO.HOOK 142308 . 143037)
 ))))
 STOP
diff --git a/sources/BSP.LCOM b/sources/BSP.LCOM
index 9e07782a..a0dc176a 100644
Binary files a/sources/BSP.LCOM and b/sources/BSP.LCOM differ
diff --git a/sources/CLSTREAMS b/sources/CLSTREAMS
index 3007e6ff..527c1c1d 100644
--- a/sources/CLSTREAMS
+++ b/sources/CLSTREAMS
@@ -1,95 +1,104 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10)
-(FILECREATED " 5-Sep-2021 08:24:05" 
-|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>CLSTREAMS.;2| 52344  
+(FILECREATED " 3-Apr-91 15:11:53" |{PELE:MV:ENVOS}<LISPCORE>SOURCES>CLSTREAMS.;4| 54013  
 
-      |changes| |to:|  (FNS %INITIALIZE-CLSTREAM-TYPES)
+      |changes| |to:|  (FUNCTIONS CL:WITH-INPUT-FROM-STRING)
 
-      |previous| |date:| " 3-Apr-91 15:11:53" 
-|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>CLSTREAMS.;1|)
+      |previous| |date:| "27-Feb-91 20:05:55" |{PELE:MV:ENVOS}<LISPCORE>SOURCES>CLSTREAMS.;3|)
 
 
-; Copyright (c) 1985-1988, 1990-1991, 2021 by Venue & Xerox Corporation.
+; Copyright (c) 1985, 1986, 1987, 1988, 1990, 1991 by Venue & Xerox Corporation.  All rights reserved.
 
 (PRETTYCOMPRINT CLSTREAMSCOMS)
 
-(RPAQQ CLSTREAMSCOMS
-       (
+(RPAQQ CLSTREAMSCOMS (
 
-(* |;;;| "Implements a number of stream functions from CommonLisp.  See CLtL chapter 21")
+(* |;;;| "Implements a number of stream functions from CommonLisp.  See CLtL chapter 21")
 
-        (COMS 
-              (* |;;| "documented functions and macros")
+                          (COMS 
+                                (* |;;| "documented functions and macros")
 
-              (FUNCTIONS OPEN CL:CLOSE CL:STREAM-EXTERNAL-FORMAT)
-              (FUNCTIONS CL:STREAM-ELEMENT-TYPE CL:INPUT-STREAM-P CL:OUTPUT-STREAM-P 
-                     XCL:OPEN-STREAM-P)
-              (COMS (FUNCTIONS FILE-STREAM-POSITION)
-                    (SETFS FILE-STREAM-POSITION))
-              (FUNCTIONS CL:MAKE-SYNONYM-STREAM XCL:SYNONYM-STREAM-P XCL:SYNONYM-STREAM-SYMBOL 
-                     XCL:FOLLOW-SYNONYM-STREAMS)
-              (FUNCTIONS CL:MAKE-BROADCAST-STREAM XCL:BROADCAST-STREAM-P XCL:BROADCAST-STREAM-STREAMS
-                     )
-              (FUNCTIONS CL:MAKE-CONCATENATED-STREAM XCL:CONCATENATED-STREAM-P 
-                     XCL:CONCATENATED-STREAM-STREAMS)
-              (FUNCTIONS CL:MAKE-TWO-WAY-STREAM XCL:TWO-WAY-STREAM-P XCL:TWO-WAY-STREAM-OUTPUT-STREAM
-                     XCL:TWO-WAY-STREAM-INPUT-STREAM)
-              (FUNCTIONS CL:MAKE-ECHO-STREAM XCL:ECHO-STREAM-P XCL:ECHO-STREAM-INPUT-STREAM 
-                     XCL:ECHO-STREAM-OUTPUT-STREAM)
-              (FUNCTIONS CL:MAKE-STRING-INPUT-STREAM MAKE-CONCATENATED-STRING-INPUT-STREAM)
-              (FUNCTIONS %MAKE-INITIAL-STRING-STREAM-CONTENTS)
-              (FUNCTIONS CL:WITH-OPEN-STREAM CL:WITH-INPUT-FROM-STRING CL:WITH-OUTPUT-TO-STRING 
-                     CL:WITH-OPEN-FILE)
-              (FUNCTIONS CL:MAKE-STRING-OUTPUT-STREAM MAKE-FILL-POINTER-OUTPUT-STREAM 
-                     CL:GET-OUTPUT-STREAM-STRING \\STRING-STREAM-OUTCHARFN 
-                     \\ADJUSTABLE-STRING-STREAM-OUTCHARFN))
-        (COMS 
-              (* |;;| "helpers")
+                                (FUNCTIONS OPEN CL:CLOSE CL:STREAM-EXTERNAL-FORMAT)
+                                (FUNCTIONS CL:STREAM-ELEMENT-TYPE CL:INPUT-STREAM-P 
+                                       CL:OUTPUT-STREAM-P XCL:OPEN-STREAM-P)
+                                (COMS (FUNCTIONS FILE-STREAM-POSITION)
+                                      (SETFS FILE-STREAM-POSITION))
+                                (FUNCTIONS CL:MAKE-SYNONYM-STREAM XCL:SYNONYM-STREAM-P 
+                                       XCL:SYNONYM-STREAM-SYMBOL XCL:FOLLOW-SYNONYM-STREAMS)
+                                (FUNCTIONS CL:MAKE-BROADCAST-STREAM XCL:BROADCAST-STREAM-P 
+                                       XCL:BROADCAST-STREAM-STREAMS)
+                                (FUNCTIONS CL:MAKE-CONCATENATED-STREAM XCL:CONCATENATED-STREAM-P 
+                                       XCL:CONCATENATED-STREAM-STREAMS)
+                                (FUNCTIONS CL:MAKE-TWO-WAY-STREAM XCL:TWO-WAY-STREAM-P 
+                                       XCL:TWO-WAY-STREAM-OUTPUT-STREAM 
+                                       XCL:TWO-WAY-STREAM-INPUT-STREAM)
+                                (FUNCTIONS CL:MAKE-ECHO-STREAM XCL:ECHO-STREAM-P 
+                                       XCL:ECHO-STREAM-INPUT-STREAM XCL:ECHO-STREAM-OUTPUT-STREAM)
+                                (FUNCTIONS CL:MAKE-STRING-INPUT-STREAM 
+                                       MAKE-CONCATENATED-STRING-INPUT-STREAM)
+                                (FUNCTIONS %MAKE-INITIAL-STRING-STREAM-CONTENTS)
+                                (FUNCTIONS CL:WITH-OPEN-STREAM CL:WITH-INPUT-FROM-STRING 
+                                       CL:WITH-OUTPUT-TO-STRING CL:WITH-OPEN-FILE)
+                                (FUNCTIONS CL:MAKE-STRING-OUTPUT-STREAM 
+                                       MAKE-FILL-POINTER-OUTPUT-STREAM CL:GET-OUTPUT-STREAM-STRING 
+                                       \\STRING-STREAM-OUTCHARFN \\ADJUSTABLE-STRING-STREAM-OUTCHARFN
+                                       ))
+                          (COMS 
+                                (* |;;| "helpers")
 
-              (FUNCTIONS %NEW-FILE PREDICT-NAME)
-              (DECLARE\: EVAL@COMPILE DONTCOPY (FUNCTIONS INTERLISP-ACCESS)))
-        (COMS 
-              (* |;;| "methods for the special devices")
+                                (FUNCTIONS %NEW-FILE PREDICT-NAME)
+                                (DECLARE\: EVAL@COMPILE DONTCOPY (FUNCTIONS INTERLISP-ACCESS)))
+                          (COMS 
+                                (* |;;| "methods for the special devices")
 
-              (FNS %BROADCAST-STREAM-DEVICE-BOUT %BROADCAST-STREAM-DEVICE-OUTCHARFN 
-                   %BROADCAST-STREAM-DEVICE-CLOSEFILE %BROADCAST-STREAM-DEVICE-FORCEOUTPUT)
-              (FUNCTIONS %BROADCAST-STREAM-DEVICE-CHARSETFN)
-              (FNS %CONCATENATED-STREAM-DEVICE-BIN %CONCATENATED-STREAM-DEVICE-CLOSEFILE 
-                   %CONCATENATED-STREAM-DEVICE-EOFP %CONCATENATED-STREAM-DEVICE-PEEKBIN 
-                   %CONCATENATED-STREAM-DEVICE-BACKFILEPTR)
-              (FUNCTIONS %CONCATENATED-STREAM-DEVICE-CHARSETFN)
-              (FNS %ECHO-STREAM-DEVICE-BIN)
-              (FUNCTIONS %SYNONYM-STREAM-DEVICE-GET-INDIRECT-STREAM)
-              (FNS %SYNONYM-STREAM-DEVICE-BIN %SYNONYM-STREAM-DEVICE-BOUT 
-                   %SYNONYM-STREAM-DEVICE-OUTCHARFN %SYNONYM-STREAM-DEVICE-CLOSEFILE 
-                   %SYNONYM-STREAM-DEVICE-EOFP %SYNONYM-STREAM-DEVICE-FORCEOUTPUT 
-                   %SYNONYM-STREAM-DEVICE-GETFILEINFO %SYNONYM-STREAM-DEVICE-PEEKBIN 
-                   %SYNONYM-STREAM-DEVICE-READP %SYNONYM-STREAM-DEVICE-BACKFILEPTR 
-                   %SYNONYM-STREAM-DEVICE-SETFILEINFO %SYNONYM-STREAM-DEVICE-CHARSETFN)
-              (FNS %TWO-WAY-STREAM-DEVICE-BIN %TWO-WAY-STREAM-DEVICE-INPUTSTREAM 
-                   %TWO-WAY-STREAM-DEVICE-BOUT %TWO-WAY-STREAM-DEVICE-OUTPUTSTREAM 
-                   %TWO-WAY-STREAM-DEVICE-OUTCHARFN %TWO-WAY-STREAM-DEVICE-CLOSEFILE 
-                   %TWO-WAY-STREAM-DEVICE-EOFP %TWO-WAY-STREAM-DEVICE-READP 
-                   %TWO-WAY-STREAM-DEVICE-BACKFILEPTR %TWO-WAY-STREAM-DEVICE-FORCEOUTPUT 
-                   %TWO-WAY-STREAM-DEVICE-PEEKBIN %TWO-WAY-STREAM-DEVICE-CHARSETFN)
-              (FUNCTIONS %FILL-POINTER-STREAM-DEVICE-CLOSEFILE %FILL-POINTER-STREAM-DEVICE-GETFILEPTR
-                     )
-              (GLOBALVARS %SYNONYM-STREAM-DEVICE %BROADCAST-STREAM-DEVICE %CONCATENATED-STREAM-DEVICE
-                     %TWO-WAY-STREAM-DEVICE %ECHO-STREAM-DEVICE \\FILL-POINTER-STREAM-DEVICE))
-        (COMS 
-              (* |;;| "helper stuff")
+                                (FNS %BROADCAST-STREAM-DEVICE-BOUT %BROADCAST-STREAM-DEVICE-OUTCHARFN
+                                     %BROADCAST-STREAM-DEVICE-CLOSEFILE 
+                                     %BROADCAST-STREAM-DEVICE-FORCEOUTPUT)
+                                (FUNCTIONS %BROADCAST-STREAM-DEVICE-CHARSETFN)
+                                (FNS %CONCATENATED-STREAM-DEVICE-BIN 
+                                     %CONCATENATED-STREAM-DEVICE-CLOSEFILE 
+                                     %CONCATENATED-STREAM-DEVICE-EOFP 
+                                     %CONCATENATED-STREAM-DEVICE-PEEKBIN 
+                                     %CONCATENATED-STREAM-DEVICE-BACKFILEPTR)
+                                (FUNCTIONS %CONCATENATED-STREAM-DEVICE-CHARSETFN)
+                                (FNS %ECHO-STREAM-DEVICE-BIN)
+                                (FUNCTIONS %SYNONYM-STREAM-DEVICE-GET-INDIRECT-STREAM)
+                                (FNS %SYNONYM-STREAM-DEVICE-BIN %SYNONYM-STREAM-DEVICE-BOUT 
+                                     %SYNONYM-STREAM-DEVICE-OUTCHARFN 
+                                     %SYNONYM-STREAM-DEVICE-CLOSEFILE %SYNONYM-STREAM-DEVICE-EOFP 
+                                     %SYNONYM-STREAM-DEVICE-FORCEOUTPUT 
+                                     %SYNONYM-STREAM-DEVICE-GETFILEINFO 
+                                     %SYNONYM-STREAM-DEVICE-PEEKBIN %SYNONYM-STREAM-DEVICE-READP 
+                                     %SYNONYM-STREAM-DEVICE-BACKFILEPTR 
+                                     %SYNONYM-STREAM-DEVICE-SETFILEINFO 
+                                     %SYNONYM-STREAM-DEVICE-CHARSETFN)
+                                (FNS %TWO-WAY-STREAM-DEVICE-BIN %TWO-WAY-STREAM-DEVICE-INPUTSTREAM 
+                                     %TWO-WAY-STREAM-DEVICE-BOUT %TWO-WAY-STREAM-DEVICE-OUTPUTSTREAM
+                                     %TWO-WAY-STREAM-DEVICE-OUTCHARFN 
+                                     %TWO-WAY-STREAM-DEVICE-CLOSEFILE %TWO-WAY-STREAM-DEVICE-EOFP 
+                                     %TWO-WAY-STREAM-DEVICE-READP %TWO-WAY-STREAM-DEVICE-BACKFILEPTR
+                                     %TWO-WAY-STREAM-DEVICE-FORCEOUTPUT 
+                                     %TWO-WAY-STREAM-DEVICE-PEEKBIN %TWO-WAY-STREAM-DEVICE-CHARSETFN)
+                                (FUNCTIONS %FILL-POINTER-STREAM-DEVICE-CLOSEFILE 
+                                       %FILL-POINTER-STREAM-DEVICE-GETFILEPTR)
+                                (GLOBALVARS %SYNONYM-STREAM-DEVICE %BROADCAST-STREAM-DEVICE 
+                                       %CONCATENATED-STREAM-DEVICE %TWO-WAY-STREAM-DEVICE 
+                                       %ECHO-STREAM-DEVICE \\FILL-POINTER-STREAM-DEVICE))
+                          (COMS 
+                                (* |;;| "helper stuff")
 
-              (FNS %SYNONYM-STREAM-DEVICE-GET-STREAM))
-        (COMS 
-              (* |;;| "module initialization")
+                                (FNS %SYNONYM-STREAM-DEVICE-GET-STREAM))
+                          (COMS 
+                                (* |;;| "module initialization")
 
-              (VARIABLES *DEBUG-IO* *QUERY-IO* *TERMINAL-IO* *ERROR-OUTPUT* *STANDARD-OUTPUT* 
-                     *STANDARD-INPUT*)
-              (FUNCTIONS %INITIALIZE-STANDARD-STREAMS)
-              (FNS %INITIALIZE-CLSTREAM-TYPES)
-              (DECLARE\: DONTEVAL@LOAD DOCOPY                (* \; "initialization")
-                     (P (%INITIALIZE-CLSTREAM-TYPES)
-                        (%INITIALIZE-STANDARD-STREAMS))))
-        (PROP FILETYPE CLSTREAMS)))
+                                (VARIABLES *DEBUG-IO* *QUERY-IO* *TERMINAL-IO* *ERROR-OUTPUT* 
+                                       *STANDARD-OUTPUT* *STANDARD-INPUT*)
+                                (FUNCTIONS %INITIALIZE-STANDARD-STREAMS)
+                                (FNS %INITIALIZE-CLSTREAM-TYPES)
+                                (DECLARE\: DONTEVAL@LOAD DOCOPY 
+                                                             (* \; "initialization")
+                                       (P (%INITIALIZE-CLSTREAM-TYPES)
+                                          (%INITIALIZE-STANDARD-STREAMS))))
+                          (PROP FILETYPE CLSTREAMS)))
 
 
 
@@ -107,7 +116,7 @@
                           (IF-DOES-NOT-EXIST NIL DOES-NOT-EXIST-P)
                           (EXTERNAL-FORMAT :DEFAULT))
 
-(* |;;;| "Return a stream which reads from or writes to Filename.  Defined keywords: :direction (one of :input, :output or :probe :element-type), Type of object to read or write, default String-Char, :if-exists (one of :error, :new-version, :overwrite, :append or nil), :if-does-not-exist (one of :error, :create or nil). :external-format (one of :DEFAULT, :EUC, :JIS, :W-MS, :MS or :XCCS).  The specification of :external-format is based on the JEIDA proposal.  See the manual for details.")
+(* |;;;| "Return a stream which reads from or writes to Filename.  Defined keywords: :direction (one of :input, :output or :probe :element-type), Type of object to read or write, default String-Char, :if-exists (one of :error, :new-version, :overwrite, :append or nil), :if-does-not-exist (one of :error, :create or nil). :external-format (one of :DEFAULT, :EUC, :JIS, :W-MS, :MS or :XCCS).  The specification of :external-format is based on the JEIDA proposal.  See the manual for details.")
 
    (CL:UNLESS (MEMQ DIRECTION '(:INPUT :OUTPUT :IO :PROBE))
           (CL:ERROR "~S isn't a valid direction for open." DIRECTION))
@@ -133,14 +142,14 @@
                   ELSE 'TEXT))
      (STREAM NIL))
 
-(* |;;;| "Do hairy defaulting of :if-exists and :if-does-not-exist keywords.")
+(* |;;;| "Do hairy defaulting of :if-exists and :if-does-not-exist keywords.")
 
     (CL:UNLESS EXISTS-P
         (SETQ IF-EXISTS (CL:IF (EQ (CL:PATHNAME-VERSION PATHNAME)
                                    :NEWEST)
                             :NEW-VERSION
-                            :ERROR)))                        (* \; 
-                            "If the file does not exist, it is OK to have :if-exists :overwrite.  ")
+                            :ERROR)))                        (* \; 
+                            "If the file does not exist, it is OK to have :if-exists :overwrite.  ")
     (CL:UNLESS DOES-NOT-EXIST-P
         (SETQ IF-DOES-NOT-EXIST (COND
                                    ((OR (EQ IF-EXISTS :APPEND)
@@ -149,16 +158,16 @@
                                    ((EQ DIRECTION :PROBE)
                                     NIL)
                                    (T :CREATE))))
-    (CL:LOOP                                                 (* \; 
-                                      "See if the file exists and handle the existential keywords.")
+    (CL:LOOP                                                 (* \; 
+                                      "See if the file exists and handle the existential keywords.")
      (LET* ((NAME (PREDICT-NAME PATHNAME))
             (CL:NAMESTRING (MKSTRING NAME)))
            (IF NAME
-               THEN                                      (* \; "file exists")
+               THEN                                      (* \; "file exists")
                      (IF FOR-OUTPUT
                          THEN 
 
-                               (* |;;| "open for output/both")
+                               (* |;;| "open for output/both")
 
                                (CASE IF-EXISTS
                                    (:ERROR 
@@ -180,15 +189,15 @@
                                       (RETURN NIL))
                                    (:APPEND 
                                       (IF (EQ DIRECTION :OUTPUT)
-                                          THEN           (* \; 
-                                    "if the direction is output it is the same as interlisp append")
+                                          THEN           (* \; 
+                                    "if the direction is output it is the same as interlisp append")
                                                 (SETQ STREAM (OPENSTREAM CL:NAMESTRING 'APPEND
                                                                     'OLD
                                                                     `((TYPE ,FILE-TYPE)
                                                                       (EXTERNALFORMAT 
                                                                              ,EXTERNAL-FORMAT))))
-                                        ELSE             (* \; 
-                    "if direction is io it opens the file for both and goes to the end of the file")
+                                        ELSE             (* \; 
+                    "if direction is io it opens the file for both and goes to the end of the file")
                                               (SETQ STREAM (OPENSTREAM CL:NAMESTRING 'BOTH
                                                                   'OLD
                                                                   `((TYPE ,FILE-TYPE)
@@ -201,7 +210,7 @@
                        |elseif| FOR-INPUT
                          |then| 
 
-                               (* |;;| "open for input/both")
+                               (* |;;| "open for input/both")
 
                                (SETQ STREAM (OPENSTREAM CL:NAMESTRING ACCESS 'OLD
                                                    `((TYPE ,FILE-TYPE)
@@ -209,14 +218,14 @@
                                (RETURN NIL)
                        |else| 
 
-                             (* |;;| "open for probe")
+                             (* |;;| "open for probe")
 
                              (SETQ STREAM (|create| STREAM
                                                  FULLFILENAME _ (FULLNAME CL:NAMESTRING)))
                              (RETURN NIL))
              |else| 
 
-                   (* |;;| "file does not exist")
+                   (* |;;| "file does not exist")
 
                    (|if| FOR-OUTPUT
                        |then| (CASE IF-DOES-NOT-EXIST
@@ -244,28 +253,28 @@
                                       ((NIL) (CL:RETURN-FROM OPEN NIL))
                                       (T (CL:ERROR "~S is not a valid value for :if-does-not-exist."
                                                 IF-DOES-NOT-EXIST)))
-                     |else|                              (* \; "Open for probe.")
+                     |else|                              (* \; "Open for probe.")
                            (RETURN NIL)))))
     (STREAMPROP STREAM :FILE-STREAM-P T)
     STREAM))
 
 (CL:DEFUN CL:CLOSE (STREAM &KEY ABORT)
 
-(* |;;;| "Close a stream.  If ABORT, then don't keep the file")
+(* |;;;| "Close a stream.  If ABORT, then don't keep the file")
 
    (|if| (STREAMP STREAM)
        |then| (|if| (OPENP STREAM)
                       |then| 
 
-                            (* |;;| 
-               "determine 'deletability' of stream's file before closing, as that trashes the info")
+                            (* |;;| 
+               "determine 'deletability' of stream's file before closing, as that trashes the info")
 
                             (LET ((ABORTABLE (AND (DIRTYABLE STREAM)
                                                   (NOT (APPENDONLY STREAM)))))
                                  (CLOSEF STREAM)
                                  (|if| (AND ABORT ABORTABLE)
-                                     |then|              (* \; 
-     "eventually we will change device CLOSEF methods to take an ABORT arg.  For now, simulate it.")
+                                     |then|              (* \; 
+     "eventually we will change device CLOSEF methods to take an ABORT arg.  For now, simulate it.")
                                            (DELFILE (CL:NAMESTRING STREAM)))))
      |else| (ERROR "Closing a non-stream" STREAM))
    T)
@@ -280,7 +289,7 @@
    (CL:WHEN (NOT (STREAMP STREAM))
           (\\ILLEGAL.ARG STREAM))
 
-   (* |;;| "we return T instead of the stream because Symbolics does")
+   (* |;;| "we return T instead of the stream because Symbolics does")
 
    (AND (\\IOMODEP STREAM 'INPUT T)
         T))
@@ -289,14 +298,14 @@
    (CL:WHEN (NOT (STREAMP STREAM))
           (\\ILLEGAL.ARG STREAM))
 
-   (* |;;| "we return T instead of the stream because Symbolics does")
+   (* |;;| "we return T instead of the stream because Symbolics does")
 
    (AND (\\IOMODEP STREAM 'OUTPUT T)
         T))
 
 (CL:DEFUN XCL:OPEN-STREAM-P (STREAM)
 
-   (* |;;| "is stream an open stream?")
+   (* |;;| "is stream an open stream?")
 
    (AND (STREAMP STREAM)
         (OPENED STREAM)))
@@ -308,7 +317,7 @@
 
 (CL:DEFUN CL:MAKE-SYNONYM-STREAM (CL:SYMBOL)
 
-   (* |;;| "A CommonLisp function for shadowing a stream.  See CLtL p.  329")
+   (* |;;| "A CommonLisp function for shadowing a stream.  See CLtL p.  329")
 
    (LET ((STREAM (|create| STREAM
                         DEVICE _ %SYNONYM-STREAM-DEVICE
@@ -319,7 +328,7 @@
                         OUTCHARFN _ (FUNCTION %SYNONYM-STREAM-DEVICE-OUTCHARFN))))
         (STREAMPROP STREAM 'XCL:SYNONYM-STREAM-P T)
 
-        (* |;;| "save the synonym stream in the OPENFILELST field of %SYNONYM-STREAM-DEVICE")
+        (* |;;| "save the synonym stream in the OPENFILELST field of %SYNONYM-STREAM-DEVICE")
 
         (|replace| (FDEV OPENFILELST) |of| %SYNONYM-STREAM-DEVICE
            |with| (CONS STREAM (|fetch| (FDEV OPENFILELST) |of| %SYNONYM-STREAM-DEVICE)))
@@ -334,7 +343,7 @@
 
 (CL:DEFUN XCL:FOLLOW-SYNONYM-STREAMS (STREAM)
 
-(* |;;;| "Return the non-synonym stream at the heart of STREAM.")
+(* |;;;| "Return the non-synonym stream at the heart of STREAM.")
 
    (CL:IF (XCL:SYNONYM-STREAM-P STREAM)
        (XCL:FOLLOW-SYNONYM-STREAMS (CL:SYMBOL-VALUE (XCL:SYNONYM-STREAM-SYMBOL STREAM)))
@@ -342,7 +351,7 @@
 
 (CL:DEFUN CL:MAKE-BROADCAST-STREAM (&REST STREAMS)
 
-   (* |;;| "CommonLisp function that makes a broadcast stream.  See CLtL p329")
+   (* |;;| "CommonLisp function that makes a broadcast stream.  See CLtL p329")
 
    (IF (FOR STREAM? IN STREAMS ALWAYS (STREAMP STREAM?))
        THEN (LET ((STREAM (|create| STREAM
@@ -357,20 +366,20 @@
 
 (CL:DEFUN XCL:BROADCAST-STREAM-P (STREAM)
 
-   (* |;;| "is stream a broadcast stream?")
+   (* |;;| "is stream a broadcast stream?")
 
    (STREAMPROP STREAM 'XCL:BROADCAST-STREAM-P))
 
 (CL:DEFUN XCL:BROADCAST-STREAM-STREAMS (STREAM)
 
-   (* |;;| "return all of the streams that STREAM broadcasts to")
+   (* |;;| "return all of the streams that STREAM broadcasts to")
 
    (AND (XCL:BROADCAST-STREAM-P STREAM)
         (FETCH (STREAM F1) OF STREAM)))
 
 (CL:DEFUN CL:MAKE-CONCATENATED-STREAM (&REST STREAMS)
 
-   (* |;;| "CommonLisp function that creates a  concatenated stream.  See CLtL p.  329")
+   (* |;;| "CommonLisp function that creates a  concatenated stream.  See CLtL p.  329")
 
    (IF (FOR STREAM? IN STREAMS ALWAYS (STREAMP STREAM?))
        THEN (LET ((STREAM (|create| STREAM
@@ -387,14 +396,14 @@
 
 (CL:DEFUN XCL:CONCATENATED-STREAM-STREAMS (STREAM)
 
-   (* |;;| "return all of STREAM's concatenated streams")
+   (* |;;| "return all of STREAM's concatenated streams")
 
    (AND (XCL:CONCATENATED-STREAM-P STREAM)
         (FETCH (STREAM F1) OF STREAM)))
 
 (CL:DEFUN CL:MAKE-TWO-WAY-STREAM (CL::INPUT-STREAM CL::OUTPUT-STREAM)
 
-   (* |;;| "A CommonLisp function for splicing together two streams.  See CLtL p.  329")
+   (* |;;| "A CommonLisp function for splicing together two streams.  See CLtL p.  329")
 
    (CL:UNLESS (STREAMP CL::INPUT-STREAM)
           (\\ILLEGAL.ARG CL::INPUT-STREAM))
@@ -409,7 +418,7 @@
                         OUTCHARFN _ (FUNCTION %TWO-WAY-STREAM-DEVICE-OUTCHARFN))))
         (STREAMPROP STREAM 'XCL:TWO-WAY-STREAM-P T)
 
-        (* |;;| "save STREAM  in the OPENFILELST field of %TWO-WAY-STREAM-DEVICE")
+        (* |;;| "save STREAM  in the OPENFILELST field of %TWO-WAY-STREAM-DEVICE")
 
         (|replace| (FDEV OPENFILELST) |of| %TWO-WAY-STREAM-DEVICE
            |with| (CONS STREAM (|fetch| (FDEV OPENFILELST) |of| %TWO-WAY-STREAM-DEVICE)))
@@ -417,7 +426,7 @@
 
 (CL:DEFUN XCL:TWO-WAY-STREAM-P (STREAM)
 
-   (* |;;| "is STREAM a two-way stream?")
+   (* |;;| "is STREAM a two-way stream?")
 
    (STREAMPROP STREAM 'XCL:TWO-WAY-STREAM-P))
 
@@ -431,7 +440,7 @@
 
 (CL:DEFUN CL:MAKE-ECHO-STREAM (CL::INPUT-STREAM CL::OUTPUT-STREAM)
 
-   (* |;;| "A CommonLisp function for making an echo  stream.  See CLtL p.  329")
+   (* |;;| "A CommonLisp function for making an echo  stream.  See CLtL p.  329")
 
    (CL:UNLESS (STREAMP CL::INPUT-STREAM)
           (\\ILLEGAL.ARG CL::INPUT-STREAM))
@@ -446,7 +455,7 @@
                         OUTCHARFN _ (FUNCTION %TWO-WAY-STREAM-DEVICE-OUTCHARFN))))
         (STREAMPROP STREAM 'XCL:ECHO-STREAM-P T)
 
-        (* |;;| "save STREAM  in the OPENFILELST field of %ECHO-STREAM-DEVICE")
+        (* |;;| "save STREAM  in the OPENFILELST field of %ECHO-STREAM-DEVICE")
 
         (|replace| (FDEV OPENFILELST) |of| %ECHO-STREAM-DEVICE
            |with| (CONS STREAM (|fetch| (FDEV OPENFILELST) |of| %ECHO-STREAM-DEVICE)))
@@ -454,7 +463,7 @@
 
 (CL:DEFUN XCL:ECHO-STREAM-P (STREAM)
 
-   (* |;;| "is stream an echo stream?")
+   (* |;;| "is stream an echo stream?")
 
    (STREAMPROP STREAM 'XCL:ECHO-STREAM-P))
 
@@ -469,13 +478,13 @@
 (CL:DEFUN CL:MAKE-STRING-INPUT-STREAM (STRING &OPTIONAL (CL::START 0)
                                                  (CL::END NIL))
 
-(* |;;;| "A CommonLisp function for producing a stream from a string.  See CLtL p.  330")
+(* |;;;| "A CommonLisp function for producing a stream from a string.  See CLtL p.  330")
 
    (OPENSTRINGSTREAM (|if| (OR (NOT (CL:ZEROP CL::START))
                                    (NOT (NULL CL::END)))
                          |then| 
 
-                               (* |;;| "A displaced array is ok here because the stream's uses GETBASEBYTE directly and doesn't go through the array code at all. ")
+                               (* |;;| "A displaced array is ok here because the stream's uses GETBASEBYTE directly and doesn't go through the array code at all. ")
 
                                (SUBSTRING STRING (CL:1+ CL::START)
                                       CL::END)
@@ -522,11 +531,11 @@
                  ,@CL::DECLS
                  ,@(CL:IF CL::INDEXP
 
-                       (* |;;| "This exists as a fudge for the fat string problem.  It WILL GO AWAY when STRINGSTREAMS HAVE THEIR OWN DEVICE.")
+                       (* |;;| "This exists as a fudge for the fat string problem.  It WILL GO AWAY when STRINGSTREAMS HAVE THEIR OWN DEVICE.")
 
                        `((CL:MULTIPLE-VALUE-PROG1 (PROGN ,@CL::BODY)
 
-                                (* |;;| "(IF (FASL::FAT-STRING-P $STRING$) (SETF ,INDEX (+ $START$ (IL:IQUOTIENT (IL:GETFILEPTR ,VAR) 2))) (SETF ,INDEX (+ $START$ (IL:GETFILEPTR ,VAR))))")
+                                (* |;;| "(IF (FASL::FAT-STRING-P $STRING$) (SETF ,INDEX (+ $START$ (IL:IQUOTIENT (IL:GETFILEPTR ,VAR) 2))) (SETF ,INDEX (+ $START$ (IL:GETFILEPTR ,VAR))))")
 
                                 (CL:SETF ,CL::INDEX (+ CL::$START$ (GETFILEPTR ,CL::VAR)))))
                        CL::BODY))))
@@ -546,7 +555,7 @@
                                  &BODY
                                  (FORMS DECLS))
 
-(* |;;;| "The file whose name is File-Name is opened using the OPEN-ARGS and bound to the variable VAR. The Forms are executed, and when they terminate, normally or otherwise, the file is closed.")
+(* |;;;| "The file whose name is File-Name is opened using the OPEN-ARGS and bound to the variable VAR. The Forms are executed, and when they terminate, normally or otherwise, the file is closed.")
 
    (LET ((ABORTP (GENSYM)))
         `(LET ((,VAR (OPEN ,@OPEN-ARGS))
@@ -559,7 +568,7 @@
 
 (DEFINLINE CL:MAKE-STRING-OUTPUT-STREAM ()
 
-(* |;;;| "A function for producing a string stream. See also the function get-output-stream-string.  Also, see CLtL p.  330")
+(* |;;;| "A function for producing a string stream. See also the function get-output-stream-string.  Also, see CLtL p.  330")
 
    (MAKE-FILL-POINTER-OUTPUT-STREAM))
 
@@ -574,8 +583,8 @@
                                      F1 _ STRING
                                      ACCESS _ 'OUTPUT
                                      OTHERPROPS _ '(STRING-OUTPUT-STREAM T))))
-                                                             (* \; 
-                                             "give it a canned property list to save some consing.")
+                                                             (* \; 
+                                             "give it a canned property list to save some consing.")
                      (|replace| (STREAM OUTCHARFN) |of| STREAM
                         |with| (|if| (EXTENDABLE-ARRAY-P STRING)
                                        |then| (FUNCTION \\ADJUSTABLE-STRING-STREAM-OUTCHARFN)
@@ -586,7 +595,7 @@
 
 (CL:DEFUN CL:GET-OUTPUT-STREAM-STRING (STRING-OUTPUT-STREAM)
 
-(* |;;;| "A CommonLisp function for getting the contents of the buffer created by a call to make-string-output-stream.  See CLtL p.  330")
+(* |;;;| "A CommonLisp function for getting the contents of the buffer created by a call to make-string-output-stream.  See CLtL p.  330")
 
    (|if| (NOT (STREAMPROP STRING-OUTPUT-STREAM 'STRING-OUTPUT-STREAM))
        |then| (ERROR "Stream not a string-output-stream" STRING-OUTPUT-STREAM)
@@ -615,7 +624,7 @@
           ELSE (ADD (FETCH (STREAM CHARPOSITION) OF STREAM)
                           1))
 
-        (* |;;| "Do the equivalent of VECTOR-PUSH-EXTEND inline to save the significant! overhead of calculating the new length at each character.")
+        (* |;;| "Do the equivalent of VECTOR-PUSH-EXTEND inline to save the significant! overhead of calculating the new length at each character.")
 
         (CL:UNLESS (CL:VECTOR-PUSH CH STRING)
             (LET ((CURRENT-LENGTH (CL:ARRAY-TOTAL-SIZE STRING)))
@@ -680,7 +689,7 @@
 
 (CL:DEFUN %BROADCAST-STREAM-DEVICE-CHARSETFN (STREAM NEWVALUE)
 
-   (* |;;| "charset function for broadcast streams.  Not clear what the value should be, so we arbitrarily return the value of the last stream.")
+   (* |;;| "charset function for broadcast streams.  Not clear what the value should be, so we arbitrarily return the value of the last stream.")
 
    (FOR S IN (FETCH (STREAM F1) OF STREAM) DO (SETQ $$VAL (ACCESS-CHARSET S 
                                                                                      NEWVALUE))))
@@ -709,7 +718,7 @@
 
 (CL:DEFUN %CONCATENATED-STREAM-DEVICE-CHARSETFN (STREAM NEWVALUE)
 
-   (* |;;| "the charset method for concatenated stream devices")
+   (* |;;| "the charset method for concatenated stream devices")
 
    (LET ((STREAMS (FETCH (STREAM F1) OF STREAM)))
         (IF STREAMS
@@ -725,7 +734,7 @@
 
 (CL:DEFUN %SYNONYM-STREAM-DEVICE-GET-INDIRECT-STREAM (SYNONYM-STREAM)
 
-   (* |;;| "given a synonym-stream, find out what it is currently tracking")
+   (* |;;| "given a synonym-stream, find out what it is currently tracking")
 
    (CL:SYMBOL-VALUE (XCL:SYNONYM-STREAM-SYMBOL SYNONYM-STREAM)))
 (DEFINEQ
@@ -880,7 +889,7 @@
 
 (CL:DEFUN %FILL-POINTER-STREAM-DEVICE-CLOSEFILE (STREAM &OPTIONAL ABORTFLAG)
 
-(* |;;;| "the CLOSEFILE method for the fill-pointer-string-stream device")
+(* |;;;| "the CLOSEFILE method for the fill-pointer-string-stream device")
 
    (|replace| F1 |of| STREAM |with| NIL)
    STREAM)
@@ -923,8 +932,8 @@
 
 (CL:DEFUN %INITIALIZE-STANDARD-STREAMS ()
 
-   (* |;;| 
- "Called when CLSTREAMS is loaded.  Almost everything is same as *TERMINAL-IO* to start with.")
+   (* |;;| 
+ "Called when CLSTREAMS is loaded.  Almost everything is same as *TERMINAL-IO* to start with.")
 
    (CL:SETQ *QUERY-IO* (CL:MAKE-TWO-WAY-STREAM (CL:MAKE-SYNONYM-STREAM '\\LINEBUF.OFD)
                               (CL:MAKE-SYNONYM-STREAM '\\TERM.OFD)))
@@ -944,51 +953,27 @@
 (%INITIALIZE-STANDARD-STREAMS)
 )
 
-(PUTPROPS CLSTREAMS FILETYPE CL:COMPILE-FILE)
-(PUTPROPS CLSTREAMS COPYRIGHT ("Venue & Xerox Corporation" 1985 1986 1987 1988 1990 1991 2021))
+(PUTPROPS CLSTREAMS FILETYPE CL:COMPILE-FILE)
+(PUTPROPS CLSTREAMS COPYRIGHT ("Venue & Xerox Corporation" 1985 1986 1987 1988 1990 1991))
 (DECLARE\: DONTCOPY
-  (FILEMAP (NIL (5231 14534 (OPEN 5231 . 14534)) (14536 15482 (CL:CLOSE 14536 . 15482)) (15484 15562 (
-CL:STREAM-EXTERNAL-FORMAT 15484 . 15562)) (15564 15631 (CL:STREAM-ELEMENT-TYPE 15564 . 15631)) (15633 
-15867 (CL:INPUT-STREAM-P 15633 . 15867)) (15869 16105 (CL:OUTPUT-STREAM-P 15869 . 16105)) (16107 16244
- (XCL:OPEN-STREAM-P 16107 . 16244)) (16246 16313 (FILE-STREAM-POSITION 16246 . 16313)) (16365 17285 (
-CL:MAKE-SYNONYM-STREAM 16365 . 17285)) (17287 17376 (XCL:SYNONYM-STREAM-P 17287 . 17376)) (17378 17516
- (XCL:SYNONYM-STREAM-SYMBOL 17378 . 17516)) (17518 17796 (XCL:FOLLOW-SYNONYM-STREAMS 17518 . 17796)) (
-17798 18585 (CL:MAKE-BROADCAST-STREAM 17798 . 18585)) (18587 18730 (XCL:BROADCAST-STREAM-P 18587 . 
-18730)) (18732 18947 (XCL:BROADCAST-STREAM-STREAMS 18732 . 18947)) (18949 19658 (
-CL:MAKE-CONCATENATED-STREAM 18949 . 19658)) (19660 19759 (XCL:CONCATENATED-STREAM-P 19660 . 19759)) (
-19761 19974 (XCL:CONCATENATED-STREAM-STREAMS 19761 . 19974)) (19976 21057 (CL:MAKE-TWO-WAY-STREAM 
-19976 . 21057)) (21059 21196 (XCL:TWO-WAY-STREAM-P 21059 . 21196)) (21198 21343 (
-XCL:TWO-WAY-STREAM-OUTPUT-STREAM 21198 . 21343)) (21345 21489 (XCL:TWO-WAY-STREAM-INPUT-STREAM 21345
- . 21489)) (21491 22547 (CL:MAKE-ECHO-STREAM 21491 . 22547)) (22549 22678 (XCL:ECHO-STREAM-P 22549 . 
-22678)) (22680 22818 (XCL:ECHO-STREAM-INPUT-STREAM 22680 . 22818)) (22820 22959 (
-XCL:ECHO-STREAM-OUTPUT-STREAM 22820 . 22959)) (22961 23696 (CL:MAKE-STRING-INPUT-STREAM 22961 . 23696)
-) (23698 24147 (MAKE-CONCATENATED-STRING-INPUT-STREAM 23698 . 24147)) (24149 24309 (
-%MAKE-INITIAL-STRING-STREAM-CONTENTS 24149 . 24309)) (27401 28823 (MAKE-FILL-POINTER-OUTPUT-STREAM 
-27401 . 28823)) (28825 29564 (CL:GET-OUTPUT-STREAM-STRING 28825 . 29564)) (29566 30059 (
-\\STRING-STREAM-OUTCHARFN 29566 . 30059)) (30061 31951 (\\ADJUSTABLE-STRING-STREAM-OUTCHARFN 30061 . 
-31951)) (31980 32062 (%NEW-FILE 31980 . 32062)) (32064 32209 (PREDICT-NAME 32064 . 32209)) (32450 
-33638 (%BROADCAST-STREAM-DEVICE-BOUT 32460 . 32683) (%BROADCAST-STREAM-DEVICE-OUTCHARFN 32685 . 33136)
- (%BROADCAST-STREAM-DEVICE-CLOSEFILE 33138 . 33377) (%BROADCAST-STREAM-DEVICE-FORCEOUTPUT 33379 . 
-33636)) (33640 34053 (%BROADCAST-STREAM-DEVICE-CHARSETFN 33640 . 34053)) (34054 36113 (
-%CONCATENATED-STREAM-DEVICE-BIN 34064 . 34469) (%CONCATENATED-STREAM-DEVICE-CLOSEFILE 34471 . 34784) (
-%CONCATENATED-STREAM-DEVICE-EOFP 34786 . 35150) (%CONCATENATED-STREAM-DEVICE-PEEKBIN 35152 . 35627) (
-%CONCATENATED-STREAM-DEVICE-BACKFILEPTR 35629 . 36111)) (36115 36450 (
-%CONCATENATED-STREAM-DEVICE-CHARSETFN 36115 . 36450)) (36451 36670 (%ECHO-STREAM-DEVICE-BIN 36461 . 
-36668)) (36672 36897 (%SYNONYM-STREAM-DEVICE-GET-INDIRECT-STREAM 36672 . 36897)) (36898 40243 (
-%SYNONYM-STREAM-DEVICE-BIN 36908 . 37096) (%SYNONYM-STREAM-DEVICE-BOUT 37098 . 37299) (
-%SYNONYM-STREAM-DEVICE-OUTCHARFN 37301 . 38008) (%SYNONYM-STREAM-DEVICE-CLOSEFILE 38010 . 38594) (
-%SYNONYM-STREAM-DEVICE-EOFP 38596 . 38787) (%SYNONYM-STREAM-DEVICE-FORCEOUTPUT 38789 . 39027) (
-%SYNONYM-STREAM-DEVICE-GETFILEINFO 39029 . 39266) (%SYNONYM-STREAM-DEVICE-PEEKBIN 39268 . 39491) (
-%SYNONYM-STREAM-DEVICE-READP 39493 . 39604) (%SYNONYM-STREAM-DEVICE-BACKFILEPTR 39606 . 39752) (
-%SYNONYM-STREAM-DEVICE-SETFILEINFO 39754 . 40003) (%SYNONYM-STREAM-DEVICE-CHARSETFN 40005 . 40241)) (
-40244 44569 (%TWO-WAY-STREAM-DEVICE-BIN 40254 . 40427) (%TWO-WAY-STREAM-DEVICE-INPUTSTREAM 40429 . 
-40620) (%TWO-WAY-STREAM-DEVICE-BOUT 40622 . 40794) (%TWO-WAY-STREAM-DEVICE-OUTPUTSTREAM 40796 . 40986)
- (%TWO-WAY-STREAM-DEVICE-OUTCHARFN 40988 . 41850) (%TWO-WAY-STREAM-DEVICE-CLOSEFILE 41852 . 43275) (
-%TWO-WAY-STREAM-DEVICE-EOFP 43277 . 43453) (%TWO-WAY-STREAM-DEVICE-READP 43455 . 43648) (
-%TWO-WAY-STREAM-DEVICE-BACKFILEPTR 43650 . 43786) (%TWO-WAY-STREAM-DEVICE-FORCEOUTPUT 43788 . 44017) (
-%TWO-WAY-STREAM-DEVICE-PEEKBIN 44019 . 44232) (%TWO-WAY-STREAM-DEVICE-CHARSETFN 44234 . 44567)) (44571
- 44796 (%FILL-POINTER-STREAM-DEVICE-CLOSEFILE 44571 . 44796)) (44798 44917 (
-%FILL-POINTER-STREAM-DEVICE-GETFILEPTR 44798 . 44917)) (45157 45396 (%SYNONYM-STREAM-DEVICE-GET-STREAM
- 45167 . 45394)) (45627 46101 (%INITIALIZE-STANDARD-STREAMS 45627 . 46101)) (46102 52065 (
-%INITIALIZE-CLSTREAM-TYPES 46112 . 52063)))))
+  (FILEMAP (NIL (34128 35316 (%BROADCAST-STREAM-DEVICE-BOUT 34138 . 34361) (
+%BROADCAST-STREAM-DEVICE-OUTCHARFN 34363 . 34814) (%BROADCAST-STREAM-DEVICE-CLOSEFILE 34816 . 35055) (
+%BROADCAST-STREAM-DEVICE-FORCEOUTPUT 35057 . 35314)) (35732 37791 (%CONCATENATED-STREAM-DEVICE-BIN 
+35742 . 36147) (%CONCATENATED-STREAM-DEVICE-CLOSEFILE 36149 . 36462) (%CONCATENATED-STREAM-DEVICE-EOFP
+ 36464 . 36828) (%CONCATENATED-STREAM-DEVICE-PEEKBIN 36830 . 37305) (
+%CONCATENATED-STREAM-DEVICE-BACKFILEPTR 37307 . 37789)) (38129 38348 (%ECHO-STREAM-DEVICE-BIN 38139 . 
+38346)) (38576 41921 (%SYNONYM-STREAM-DEVICE-BIN 38586 . 38774) (%SYNONYM-STREAM-DEVICE-BOUT 38776 . 
+38977) (%SYNONYM-STREAM-DEVICE-OUTCHARFN 38979 . 39686) (%SYNONYM-STREAM-DEVICE-CLOSEFILE 39688 . 
+40272) (%SYNONYM-STREAM-DEVICE-EOFP 40274 . 40465) (%SYNONYM-STREAM-DEVICE-FORCEOUTPUT 40467 . 40705) 
+(%SYNONYM-STREAM-DEVICE-GETFILEINFO 40707 . 40944) (%SYNONYM-STREAM-DEVICE-PEEKBIN 40946 . 41169) (
+%SYNONYM-STREAM-DEVICE-READP 41171 . 41282) (%SYNONYM-STREAM-DEVICE-BACKFILEPTR 41284 . 41430) (
+%SYNONYM-STREAM-DEVICE-SETFILEINFO 41432 . 41681) (%SYNONYM-STREAM-DEVICE-CHARSETFN 41683 . 41919)) (
+41922 46247 (%TWO-WAY-STREAM-DEVICE-BIN 41932 . 42105) (%TWO-WAY-STREAM-DEVICE-INPUTSTREAM 42107 . 
+42298) (%TWO-WAY-STREAM-DEVICE-BOUT 42300 . 42472) (%TWO-WAY-STREAM-DEVICE-OUTPUTSTREAM 42474 . 42664)
+ (%TWO-WAY-STREAM-DEVICE-OUTCHARFN 42666 . 43528) (%TWO-WAY-STREAM-DEVICE-CLOSEFILE 43530 . 44953) (
+%TWO-WAY-STREAM-DEVICE-EOFP 44955 . 45131) (%TWO-WAY-STREAM-DEVICE-READP 45133 . 45326) (
+%TWO-WAY-STREAM-DEVICE-BACKFILEPTR 45328 . 45464) (%TWO-WAY-STREAM-DEVICE-FORCEOUTPUT 45466 . 45695) (
+%TWO-WAY-STREAM-DEVICE-PEEKBIN 45697 . 45910) (%TWO-WAY-STREAM-DEVICE-CHARSETFN 45912 . 46245)) (46835
+ 47074 (%SYNONYM-STREAM-DEVICE-GET-STREAM 46845 . 47072)) (47780 53743 (%INITIALIZE-CLSTREAM-TYPES 
+47790 . 53741)))))
 STOP
diff --git a/sources/CLSTREAMS.LCOM b/sources/CLSTREAMS.LCOM
index 4ddb39f0..5affa03b 100644
Binary files a/sources/CLSTREAMS.LCOM and b/sources/CLSTREAMS.LCOM differ
diff --git a/sources/COREIO b/sources/COREIO
index e7a6eb4c..8f07436e 100644
--- a/sources/COREIO
+++ b/sources/COREIO
@@ -1,15 +1,14 @@
-(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED " 5-Sep-2021 08:25:40" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>COREIO.;2 55065  
+(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP")
+(FILECREATED " 4-Oct-2018 14:13:06" {DSK}<Users>kaplan>Local>medley3.5>lispcore>sources>COREIO.;4 55097  
 
-      changes to%:  (FNS \CREATECOREDEVICE)
+      changes to%:  (FNS \CORE.GETFILEINFO)
 
-      previous date%: " 4-Oct-2018 14:13:06" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>COREIO.;1)
+      previous date%: "28-Jun-99 16:15:28" 
+{DSK}<Users>kaplan>Local>medley3.5>lispcore>sources>COREIO.;3)
 
 
 (* ; "
-Copyright (c) 1981-1988, 1990, 1993, 1999, 2018, 2021 by Venue & Xerox Corporation.
+Copyright (c) 1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1993, 1999, 2018 by Venue & Xerox Corporation.  All rights reserved.
 ")
 
 (PRETTYCOMPRINT COREIOCOMS)
@@ -953,18 +952,18 @@ Copyright (c) 1981-1988, 1990, 1993, 1999, 2018, 2021 by Venue & Xerox Corporati
 )
 )
 (PUTPROPS COREIO COPYRIGHT ("Venue & Xerox Corporation" 1981 1982 1983 1984 1985 1986 1987 1988 1990 
-1993 1999 2018 2021))
+1993 1999 2018))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (1718 43242 (\CORE.CLOSEFILE 1728 . 2501) (\CORE.DELETEFILE 2503 . 4489) (
-\CORE.DIRECTORYNAMEP 4491 . 4752) (\CORE.FINDPAGE 4754 . 7983) (\CORE.GENERATEFILES 7985 . 10572) (
-\CORE.NEXTFILEFN 10574 . 11073) (\CORE.FILEINFOFN 11075 . 11304) (\CORE.GETFILEHANDLE 11306 . 13460) (
-\CORE.GETFILEINFO 13462 . 14425) (\CORE.GETFILEINFO.FROM.INFOBLOCK 14427 . 15964) (\CORE.GETFILENAME 
-15966 . 18255) (\CORE.GETINFOBLOCK 18257 . 20880) (\CORE.NAMESCAN 20882 . 22649) (\CORE.NAMESEGMENT 
-22651 . 23088) (\CORE.OPENFILE 23090 . 26209) (\COREFILE.SETPARAMETERS 26211 . 28392) (
-\CORE.PACKFILENAME 28394 . 28789) (\CORE.RELEASEPAGES 28791 . 29392) (\CORE.SETFILEPTR 29394 . 30493) 
-(\CORE.UPDATEOF 30495 . 32124) (\CORE.BACKFILEPTR 32126 . 34334) (\CORE.SETEOFPTR 34336 . 36205) (
-\CORE.SETACCESSTIME 36207 . 36832) (\CORE.SETFILEINFO 36834 . 38025) (\CORE.GETNEXTBUFFER 38027 . 
-41983) (\CORE.UNPACKFILENAME 41985 . 43240)) (43243 46876 (COREDEVICE 43253 . 43424) (
-\CREATECOREDEVICE 43426 . 46874)) (46877 49178 (\NODIRCOREFDEV 46887 . 47484) (\NODIRCORE.OPENFILE 
-47486 . 49176)))))
+  (FILEMAP (NIL (1755 43279 (\CORE.CLOSEFILE 1765 . 2538) (\CORE.DELETEFILE 2540 . 4526) (
+\CORE.DIRECTORYNAMEP 4528 . 4789) (\CORE.FINDPAGE 4791 . 8020) (\CORE.GENERATEFILES 8022 . 10609) (
+\CORE.NEXTFILEFN 10611 . 11110) (\CORE.FILEINFOFN 11112 . 11341) (\CORE.GETFILEHANDLE 11343 . 13497) (
+\CORE.GETFILEINFO 13499 . 14462) (\CORE.GETFILEINFO.FROM.INFOBLOCK 14464 . 16001) (\CORE.GETFILENAME 
+16003 . 18292) (\CORE.GETINFOBLOCK 18294 . 20917) (\CORE.NAMESCAN 20919 . 22686) (\CORE.NAMESEGMENT 
+22688 . 23125) (\CORE.OPENFILE 23127 . 26246) (\COREFILE.SETPARAMETERS 26248 . 28429) (
+\CORE.PACKFILENAME 28431 . 28826) (\CORE.RELEASEPAGES 28828 . 29429) (\CORE.SETFILEPTR 29431 . 30530) 
+(\CORE.UPDATEOF 30532 . 32161) (\CORE.BACKFILEPTR 32163 . 34371) (\CORE.SETEOFPTR 34373 . 36242) (
+\CORE.SETACCESSTIME 36244 . 36869) (\CORE.SETFILEINFO 36871 . 38062) (\CORE.GETNEXTBUFFER 38064 . 
+42020) (\CORE.UNPACKFILENAME 42022 . 43277)) (43280 46913 (COREDEVICE 43290 . 43461) (
+\CREATECOREDEVICE 43463 . 46911)) (46914 49215 (\NODIRCOREFDEV 46924 . 47521) (\NODIRCORE.OPENFILE 
+47523 . 49213)))))
 STOP
diff --git a/sources/COREIO.LCOM b/sources/COREIO.LCOM
index 8211a8e3..7b710410 100644
Binary files a/sources/COREIO.LCOM and b/sources/COREIO.LCOM differ
diff --git a/sources/FILEIO b/sources/FILEIO
index be4f21ef..d1e42be7 100644
--- a/sources/FILEIO
+++ b/sources/FILEIO
@@ -1,12 +1,11 @@
-(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED " 5-Sep-2021 08:26:24" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>FILEIO.;90 178473 
+(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10 FORMAT XCCS)
+(FILECREATED "13-Aug-2021 18:39:18" 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>FILEIO.;87 178368 
 
-      changes to%:  (FNS \FDEVINSTANCE \NULLDEVICE)
-                    (RECORDS FDEV)
+      changes to%:  (FNS COPYCHARS)
 
-      previous date%: " 5-Sep-2021 08:17:18" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>FILEIO.;89)
+      previous date%: " 8-Aug-2021 14:53:49" 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>FILEIO.;86)
 
 
 (* ; "
@@ -958,8 +957,7 @@ Copyright (c) 1981-1993, 1999, 2020-2021 by Venue & Xerox Corporation.
                    OPENP _ (FUNCTION NILL)
                    UNREGISTERFILE _ (FUNCTION NILL)
                    CHARSETFN _ (FUNCTION \GENERIC.CHARSET)
-                   BREAKCONNECTION _ (FUNCTION NILL)
-                   DEFAULTEXTERNALFORMAT _ *DEFAULT-EXTERNALFORMAT*)
+                   BREAKCONNECTION _ (FUNCTION NILL))
 
 (RECORD FILEGENOBJ (NEXTFILEFN FILEINFOFN . GENFILESTATE))
 )
@@ -3397,44 +3395,44 @@ update the map")
 (PUTPROPS FILEIO COPYRIGHT ("Venue & Xerox Corporation" 1981 1982 1983 1984 1985 1986 1987 1988 1989 
 1990 1991 1992 1993 1999 2020 2021))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (28448 31938 (STREAMPROP 28458 . 28892) (GETSTREAMPROP 28894 . 29367) (PUTSTREAMPROP 
-29369 . 31786) (STREAMP 31788 . 31936)) (31981 34500 (\DEFPRINT.BY.NAME 31991 . 33143) (
-\STREAM.DEFPRINT 33145 . 34193) (\FDEV.DEFPRINT 34195 . 34498)) (34758 39799 (\GETACCESS 34768 . 35222
-) (\SETACCESS 35224 . 39797)) (63184 64437 (MAKE-EXTERNALFORMAT 63194 . 64435)) (65670 73499 (
-\INSTALL.EXTERNALFORMAT 65680 . 67129) (\REMOVE.EXTERNALFORMAT 67131 . 67962) (FIND-FORMAT 67964 . 
-68781) (\EXTERNALFORMAT 68783 . 73497)) (73822 75685 (\CREATE.THROUGH.EXTERNALFORMAT 73832 . 74634) (
-\THROUGHIN 74636 . 75060) (\THROUGHBACKCCODE 75062 . 75333) (\THROUGHOUTCHARFN 75335 . 75683)) (75793 
-81762 (\DEFINEDEVICE 75803 . 78119) (\GETDEVICEFROMNAME 78121 . 78594) (\GETDEVICEFROMHOSTNAME 78596
- . 79640) (\REMOVEDEVICE 79642 . 80765) (\REMOVEDEVICE.NAMES 80767 . 81760)) (81802 106462 (\CLOSEFILE
- 81812 . 82637) (\DELETEFILE 82639 . 82933) (\DEVICEEVENT 82935 . 84705) (\GENERATEFILES 84707 . 85185
-) (\GENERATENEXTFILE 85187 . 85838) (\GENERATEFILEINFO 85840 . 86301) (\GETFILENAME 86303 . 86692) (
-\GENERIC.OUTFILEP 86694 . 87164) (\OPENFILE 87166 . 89744) (\DO.PARAMS.AT.OPEN 89746 . 92299) (
-\RENAMEFILE 92301 . 92725) (\REVALIDATEFILE 92727 . 95329) (\PAGED.REVALIDATEFILELST 95331 . 96889) (
-\PAGED.REVALIDATEFILES 96891 . 98610) (\PAGED.REVALIDATEFILE 98612 . 100895) (\BUFFERED.REVALIDATEFILE
- 100897 . 103183) (\BUFFERED.REVALIDATEFILELST 103185 . 104369) (\PRINT-REVALIDATION-RESULT 104371 . 
-104786) (\TRUNCATEFILE 104788 . 105179) (\FILE-CONFLICT 105181 . 106460)) (106498 111161 (
-\GENERATENOFILES 106508 . 108604) (\NULLFILEGENERATOR 108606 . 108850) (\NOFILESNEXTFILEFN 108852 . 
-110843) (\NOFILESINFOFN 110845 . 111159)) (111280 113188 (\FILE.NOT.OPEN 111290 . 111803) (
-\FILE.WONT.OPEN 111805 . 112133) (\ILLEGAL.DEVICEOP 112135 . 112417) (\IS.NOT.RANDACCESSP 112419 . 
-112865) (\STREAM.NOT.OPEN 112867 . 113186)) (113323 115621 (\FDEVINSTANCE 113333 . 115619)) (117171 
-124545 (CNDIR 117181 . 118486) (DIRECTORYNAME 118488 . 122671) (DIRECTORYNAMEP 122673 . 123289) (
-HOSTNAMEP 123291 . 124098) (\ADD.CONNECTED.DIR 124100 . 124543)) (124590 151977 (\BACKFILEPTR 124600
- . 124788) (\BACKPEEKBIN 124790 . 125151) (\BACKBIN 125153 . 125504) (BIN 125506 . 125723) (\BIN 
-125725 . 126002) (\BINS 126004 . 126290) (BOUT 126292 . 126654) (\BOUT 126656 . 126971) (\BOUTS 126973
- . 127284) (COPYBYTES 127286 . 130618) (COPYCHARS 130620 . 134286) (COPYFILE 134288 . 135085) (
-\COPYOPENFILE 135087 . 138160) (\INFER.FILE.TYPE 138162 . 139116) (EOFP 139118 . 139415) (FORCEOUTPUT 
-139417 . 139664) (\FLUSH.OPEN.STREAMS 139666 . 140022) (CHARSET 140024 . 141688) (ACCESS-CHARSET 
-141690 . 141907) (GETEOFPTR 141909 . 142159) (GETFILEINFO 142161 . 145354) (\TYPE.FROM.FILETYPE 145356
- . 145826) (\FILETYPE.FROM.TYPE 145828 . 146007) (GETFILEPTR 146009 . 146261) (SETFILEINFO 146263 . 
-149876) (SETFILEPTR 149878 . 151597) (BOUT16 151599 . 151784) (BIN16 151786 . 151975)) (152080 157285 
-(\GENERIC.BINS 152090 . 152370) (\GENERIC.BOUTS 152372 . 152637) (\GENERIC.RENAMEFILE 152639 . 154470)
- (\GENERIC.OPENP 154472 . 155787) (\GENERIC.READP 155789 . 156830) (\GENERIC.CHARSET 156832 . 157283))
- (157286 157625 (\MAP-OPEN-STREAMS 157296 . 157623)) (159495 161575 (\EOF.ACTION 159505 . 159756) (
-\EOSERROR 159758 . 159951) (\GETEOFPTR 159953 . 160135) (\INCFILEPTR 160137 . 160487) (\PEEKBIN 160489
- . 160680) (\SETCLOSEDFILELENGTH 160682 . 161016) (\SETEOFPTR 161018 . 161206) (\SETFILEPTR 161208 . 
-161573)) (161576 162118 (\FIXPOUT 161586 . 161886) (\FIXPIN 161888 . 162116)) (162119 162685 (\BOUTEOL
- 162129 . 162683)) (165777 175641 (\BUFFERED.BIN 165787 . 166639) (\BUFFERED.PEEKBIN 166641 . 167423) 
-(\BUFFERED.BOUT 167425 . 168285) (\BUFFERED.BINS 168287 . 171972) (\BUFFERED.BOUTS 171974 . 173775) (
-\BUFFERED.COPYBYTES 173777 . 175639)) (175670 178022 (\NULLDEVICE 175680 . 177698) (\NULL.OPENFILE 
-177700 . 178020)))))
+  (FILEMAP (NIL (28411 31901 (STREAMPROP 28421 . 28855) (GETSTREAMPROP 28857 . 29330) (PUTSTREAMPROP 
+29332 . 31749) (STREAMP 31751 . 31899)) (31944 34463 (\DEFPRINT.BY.NAME 31954 . 33106) (
+\STREAM.DEFPRINT 33108 . 34156) (\FDEV.DEFPRINT 34158 . 34461)) (34721 39762 (\GETACCESS 34731 . 35185
+) (\SETACCESS 35187 . 39760)) (63079 64332 (MAKE-EXTERNALFORMAT 63089 . 64330)) (65565 73394 (
+\INSTALL.EXTERNALFORMAT 65575 . 67024) (\REMOVE.EXTERNALFORMAT 67026 . 67857) (FIND-FORMAT 67859 . 
+68676) (\EXTERNALFORMAT 68678 . 73392)) (73717 75580 (\CREATE.THROUGH.EXTERNALFORMAT 73727 . 74529) (
+\THROUGHIN 74531 . 74955) (\THROUGHBACKCCODE 74957 . 75228) (\THROUGHOUTCHARFN 75230 . 75578)) (75688 
+81657 (\DEFINEDEVICE 75698 . 78014) (\GETDEVICEFROMNAME 78016 . 78489) (\GETDEVICEFROMHOSTNAME 78491
+ . 79535) (\REMOVEDEVICE 79537 . 80660) (\REMOVEDEVICE.NAMES 80662 . 81655)) (81697 106357 (\CLOSEFILE
+ 81707 . 82532) (\DELETEFILE 82534 . 82828) (\DEVICEEVENT 82830 . 84600) (\GENERATEFILES 84602 . 85080
+) (\GENERATENEXTFILE 85082 . 85733) (\GENERATEFILEINFO 85735 . 86196) (\GETFILENAME 86198 . 86587) (
+\GENERIC.OUTFILEP 86589 . 87059) (\OPENFILE 87061 . 89639) (\DO.PARAMS.AT.OPEN 89641 . 92194) (
+\RENAMEFILE 92196 . 92620) (\REVALIDATEFILE 92622 . 95224) (\PAGED.REVALIDATEFILELST 95226 . 96784) (
+\PAGED.REVALIDATEFILES 96786 . 98505) (\PAGED.REVALIDATEFILE 98507 . 100790) (\BUFFERED.REVALIDATEFILE
+ 100792 . 103078) (\BUFFERED.REVALIDATEFILELST 103080 . 104264) (\PRINT-REVALIDATION-RESULT 104266 . 
+104681) (\TRUNCATEFILE 104683 . 105074) (\FILE-CONFLICT 105076 . 106355)) (106393 111056 (
+\GENERATENOFILES 106403 . 108499) (\NULLFILEGENERATOR 108501 . 108745) (\NOFILESNEXTFILEFN 108747 . 
+110738) (\NOFILESINFOFN 110740 . 111054)) (111175 113083 (\FILE.NOT.OPEN 111185 . 111698) (
+\FILE.WONT.OPEN 111700 . 112028) (\ILLEGAL.DEVICEOP 112030 . 112312) (\IS.NOT.RANDACCESSP 112314 . 
+112760) (\STREAM.NOT.OPEN 112762 . 113081)) (113218 115516 (\FDEVINSTANCE 113228 . 115514)) (117066 
+124440 (CNDIR 117076 . 118381) (DIRECTORYNAME 118383 . 122566) (DIRECTORYNAMEP 122568 . 123184) (
+HOSTNAMEP 123186 . 123993) (\ADD.CONNECTED.DIR 123995 . 124438)) (124485 151872 (\BACKFILEPTR 124495
+ . 124683) (\BACKPEEKBIN 124685 . 125046) (\BACKBIN 125048 . 125399) (BIN 125401 . 125618) (\BIN 
+125620 . 125897) (\BINS 125899 . 126185) (BOUT 126187 . 126549) (\BOUT 126551 . 126866) (\BOUTS 126868
+ . 127179) (COPYBYTES 127181 . 130513) (COPYCHARS 130515 . 134181) (COPYFILE 134183 . 134980) (
+\COPYOPENFILE 134982 . 138055) (\INFER.FILE.TYPE 138057 . 139011) (EOFP 139013 . 139310) (FORCEOUTPUT 
+139312 . 139559) (\FLUSH.OPEN.STREAMS 139561 . 139917) (CHARSET 139919 . 141583) (ACCESS-CHARSET 
+141585 . 141802) (GETEOFPTR 141804 . 142054) (GETFILEINFO 142056 . 145249) (\TYPE.FROM.FILETYPE 145251
+ . 145721) (\FILETYPE.FROM.TYPE 145723 . 145902) (GETFILEPTR 145904 . 146156) (SETFILEINFO 146158 . 
+149771) (SETFILEPTR 149773 . 151492) (BOUT16 151494 . 151679) (BIN16 151681 . 151870)) (151975 157180 
+(\GENERIC.BINS 151985 . 152265) (\GENERIC.BOUTS 152267 . 152532) (\GENERIC.RENAMEFILE 152534 . 154365)
+ (\GENERIC.OPENP 154367 . 155682) (\GENERIC.READP 155684 . 156725) (\GENERIC.CHARSET 156727 . 157178))
+ (157181 157520 (\MAP-OPEN-STREAMS 157191 . 157518)) (159390 161470 (\EOF.ACTION 159400 . 159651) (
+\EOSERROR 159653 . 159846) (\GETEOFPTR 159848 . 160030) (\INCFILEPTR 160032 . 160382) (\PEEKBIN 160384
+ . 160575) (\SETCLOSEDFILELENGTH 160577 . 160911) (\SETEOFPTR 160913 . 161101) (\SETFILEPTR 161103 . 
+161468)) (161471 162013 (\FIXPOUT 161481 . 161781) (\FIXPIN 161783 . 162011)) (162014 162580 (\BOUTEOL
+ 162024 . 162578)) (165672 175536 (\BUFFERED.BIN 165682 . 166534) (\BUFFERED.PEEKBIN 166536 . 167318) 
+(\BUFFERED.BOUT 167320 . 168180) (\BUFFERED.BINS 168182 . 171867) (\BUFFERED.BOUTS 171869 . 173670) (
+\BUFFERED.COPYBYTES 173672 . 175534)) (175565 177917 (\NULLDEVICE 175575 . 177593) (\NULL.OPENFILE 
+177595 . 177915)))))
 STOP
diff --git a/sources/FILEIO.LCOM b/sources/FILEIO.LCOM
index 0cb54c49..c4b4e82c 100644
Binary files a/sources/FILEIO.LCOM and b/sources/FILEIO.LCOM differ
diff --git a/sources/IMAGEIO b/sources/IMAGEIO
index ab2199b9..ea111516 100644
--- a/sources/IMAGEIO
+++ b/sources/IMAGEIO
@@ -1,11 +1,11 @@
-(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED " 5-Sep-2021 08:24:49" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>IMAGEIO.;6 79647  
+(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10 FORMAT XCCS)
+(FILECREATED " 2-Aug-2021 19:41:35" 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>IMAGEIO.;4 79616  
 
-      changes to%:  (FNS \DISPLAYINIT \4DISPLAYINIT \8DISPLAYINIT \24DISPLAYINIT)
+      changes to%:  (FNS \DISPLAYINIT)
 
-      previous date%: " 2-Aug-2021 19:41:35" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>IMAGEIO.;5)
+      previous date%: "28-Jun-99 16:33:59" 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>IMAGEIO.;1)
 
 
 (* ; "
@@ -1509,24 +1509,24 @@ Copyright (c) 1983-1991, 1993-1994, 1999, 2021 by Venue & Xerox Corporation.
 (PUTPROPS IMAGEIO COPYRIGHT ("Venue & Xerox Corporation" 1983 1984 1985 1986 1987 1988 1989 1990 1991 
 1993 1994 1999 2021))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (3384 12141 (IMAGESTREAMP 3394 . 4226) (IMAGESTREAMTYPE 4228 . 4441) (IMAGESTREAMTYPEP 
-4443 . 5078) (OPENIMAGESTREAM 5080 . 10034) (\GOOD.DASHLST 10036 . 12139)) (12176 14473 (
-DRAWDASHEDLINE 12186 . 14471)) (14474 21814 (DSPBACKCOLOR 14484 . 14856) (DSPBOTTOMMARGIN 14858 . 
-15243) (DSPCOLOR 15245 . 15609) (DSPCLIPPINGREGION 15611 . 16316) (DSPRESET 16318 . 16598) (DSPFONT 
-16600 . 16964) (DSPLEFTMARGIN 16966 . 17347) (DSPLINEFEED 17349 . 17649) (DSPOPERATION 17651 . 18028) 
-(DSPRIGHTMARGIN 18030 . 18413) (DSPTOPMARGIN 18415 . 18794) (DSPSCALE 18796 . 19163) (DSPSPACEFACTOR 
-19165 . 19558) (DSPXPOSITION 19560 . 19865) (DSPYPOSITION 19867 . 20172) (DSPROTATE 20174 . 20469) (
-DSPPUSHSTATE 20471 . 20717) (DSPPOPSTATE 20719 . 20962) (DSPDEFAULTSTATE 20964 . 21216) (DSPSCALE2 
-21218 . 21509) (DSPTRANSLATE 21511 . 21812)) (21815 30616 (DSPNEWPAGE 21825 . 22517) (DRAWBETWEEN 
-22519 . 23221) (DRAWCIRCLE 23223 . 23719) (DRAWARC 23721 . 24238) (DRAWCURVE 24240 . 24917) (
-DRAWELLIPSE 24919 . 25705) (DRAWLINE 25707 . 26097) (DRAWPOLYGON 26099 . 26554) (DRAWPOINT 26556 . 
-26975) (FILLPOLYGON 26977 . 27543) (DRAWTO 27545 . 27963) (FILLCIRCLE 27965 . 28188) (MOVETO 28190 . 
-28554) (RELDRAWTO 28556 . 29473) (BITMAPIMAGESIZE 29475 . 29646) (SCALEDBITBLT 29648 . 30614)) (30617 
-37656 (\DRAWPOINT.GENERIC 30627 . 30974) (\DRAWPOLYGON.GENERIC 30976 . 33284) (\DRAWCIRCLE.GENERIC 
-33286 . 34944) (\DRAWELLIPSE.GENERIC 34946 . 37654)) (37657 43043 (\IMAGEIOINIT 37667 . 41800) (
-\NOIMAGE.DSPFONT 41802 . 42877) (\UNIMPIMAGEOP 42879 . 43041)) (43166 46290 (INSURE.BRUSH 43176 . 
-44550) (BRUSHP 44552 . 45342) (\POSSIBLECOLOR 45344 . 45895) (NEGSHADE 45897 . 46288)) (46846 47530 (
-DASHINGP 46856 . 47186) (INSURE.DASHING 47188 . 47528)) (58011 78460 (\DisplayEventFn 58021 . 58531) (
-\DISPLAYINIT 58533 . 64212) (\4DISPLAYINIT 64214 . 68851) (\8DISPLAYINIT 68853 . 73492) (
-\24DISPLAYINIT 73494 . 78201) (\DISPLAYSTREAMTYPEBPP 78203 . 78458)))))
+  (FILEMAP (NIL (3353 12110 (IMAGESTREAMP 3363 . 4195) (IMAGESTREAMTYPE 4197 . 4410) (IMAGESTREAMTYPEP 
+4412 . 5047) (OPENIMAGESTREAM 5049 . 10003) (\GOOD.DASHLST 10005 . 12108)) (12145 14442 (
+DRAWDASHEDLINE 12155 . 14440)) (14443 21783 (DSPBACKCOLOR 14453 . 14825) (DSPBOTTOMMARGIN 14827 . 
+15212) (DSPCOLOR 15214 . 15578) (DSPCLIPPINGREGION 15580 . 16285) (DSPRESET 16287 . 16567) (DSPFONT 
+16569 . 16933) (DSPLEFTMARGIN 16935 . 17316) (DSPLINEFEED 17318 . 17618) (DSPOPERATION 17620 . 17997) 
+(DSPRIGHTMARGIN 17999 . 18382) (DSPTOPMARGIN 18384 . 18763) (DSPSCALE 18765 . 19132) (DSPSPACEFACTOR 
+19134 . 19527) (DSPXPOSITION 19529 . 19834) (DSPYPOSITION 19836 . 20141) (DSPROTATE 20143 . 20438) (
+DSPPUSHSTATE 20440 . 20686) (DSPPOPSTATE 20688 . 20931) (DSPDEFAULTSTATE 20933 . 21185) (DSPSCALE2 
+21187 . 21478) (DSPTRANSLATE 21480 . 21781)) (21784 30585 (DSPNEWPAGE 21794 . 22486) (DRAWBETWEEN 
+22488 . 23190) (DRAWCIRCLE 23192 . 23688) (DRAWARC 23690 . 24207) (DRAWCURVE 24209 . 24886) (
+DRAWELLIPSE 24888 . 25674) (DRAWLINE 25676 . 26066) (DRAWPOLYGON 26068 . 26523) (DRAWPOINT 26525 . 
+26944) (FILLPOLYGON 26946 . 27512) (DRAWTO 27514 . 27932) (FILLCIRCLE 27934 . 28157) (MOVETO 28159 . 
+28523) (RELDRAWTO 28525 . 29442) (BITMAPIMAGESIZE 29444 . 29615) (SCALEDBITBLT 29617 . 30583)) (30586 
+37625 (\DRAWPOINT.GENERIC 30596 . 30943) (\DRAWPOLYGON.GENERIC 30945 . 33253) (\DRAWCIRCLE.GENERIC 
+33255 . 34913) (\DRAWELLIPSE.GENERIC 34915 . 37623)) (37626 43012 (\IMAGEIOINIT 37636 . 41769) (
+\NOIMAGE.DSPFONT 41771 . 42846) (\UNIMPIMAGEOP 42848 . 43010)) (43135 46259 (INSURE.BRUSH 43145 . 
+44519) (BRUSHP 44521 . 45311) (\POSSIBLECOLOR 45313 . 45864) (NEGSHADE 45866 . 46257)) (46815 47499 (
+DASHINGP 46825 . 47155) (INSURE.DASHING 47157 . 47497)) (57980 78429 (\DisplayEventFn 57990 . 58500) (
+\DISPLAYINIT 58502 . 64181) (\4DISPLAYINIT 64183 . 68820) (\8DISPLAYINIT 68822 . 73461) (
+\24DISPLAYINIT 73463 . 78170) (\DISPLAYSTREAMTYPEBPP 78172 . 78427)))))
 STOP
diff --git a/sources/IMAGEIO.LCOM b/sources/IMAGEIO.LCOM
index 98a72149..9b048189 100644
Binary files a/sources/IMAGEIO.LCOM and b/sources/IMAGEIO.LCOM differ
diff --git a/sources/LEAF b/sources/LEAF
index e08cd9c0..d55282fe 100644
--- a/sources/LEAF
+++ b/sources/LEAF
@@ -1,26 +1,26 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED " 5-Sep-2021 08:25:29" {DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LEAF.;2 744110Q
+(FILECREATED "19-Jan-93 10:41:31" {DSK}<python>lde>lispcore>sources>LEAF.;2 745474Q
 
-      changes to%:  (FNS \LEAF.DEVICEP \LEAFINIT)
+      changes to%:  (RECORDS SEQUINPACKET SEQUIN LOOKUPFILEDATA LEAFDATA LEAFERRORDATA LEAFPARAMSDATA
+                           LEAFPACKET LEAFINFOBLOCK LEAFSTREAM LEAFDEVICE PUPFILESERVER)
 
-      previous date%: "19-Jan-93 10:41:31" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LEAF.;1)
+      previous date%: " 4-Jan-93 23:36:15" {DSK}<python>lde>lispcore>sources>LEAF.;1)
 
 
 (* ; "
-Copyright (c) 1983-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
+Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 by Venue & Xerox Corporation.  All rights reserved.
 ")
 
 (PRETTYCOMPRINT LEAFCOMS)
 
-(RPAQQ LEAFCOMS
+(RPAQQ LEAFCOMS 
        (
 
-(* ;;; "Support for the Leaf random-access filing protocol")
+(* ;;; "Support for the Leaf random-access filing protocol")
 
         (E (RESETSAVE (RADIX 8)))
         (COMS 
-              (* ;; "SEQUIN protocol")
+              (* ;; "SEQUIN protocol")
 
               (DECLARE%: EVAL@COMPILE DONTCOPY (COMS * SEQUINCOMS)
                      (FILES (LOADCOMP)
@@ -33,7 +33,7 @@ Copyright (c) 1983-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
                    \SEQUIN.OUT.OF.THE.BLUE \SEQUIN.HANDLE.ACK \SEQUIN.RETRANSMIT 
                    \SEQUIN.RETRANSMITNEXT))
         (COMS 
-              (* ;; "LEAF device operations")
+              (* ;; "LEAF device operations")
 
               (FNS \LEAF.CLOSEFILE \LEAF.DELETEFILE \LEAF.DEVICEP \LEAF.RECONNECT 
                    \LEAF.DIRECTORYNAMEP \LEAF.GENERATEFILES \LEAF.GETFILE \PARSE.REMOTE.FILENAME 
@@ -45,18 +45,18 @@ Copyright (c) 1983-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
                    \LEAF.SETFILEINFO \LEAF.SETFILETYPE \LEAF.SETVALIDATION \LEAF.TRUNCATEFILE 
                    \LEAF.WRITEPAGES))
         (COMS 
-              (* ;; "Main routing point for LEAF pups")
+              (* ;; "Main routing point for LEAF pups")
 
               (FNS \SENDLEAF))
         (COMS 
-              (* ;; "Managing LEAF connections")
+              (* ;; "Managing LEAF connections")
 
               (FNS \OPENLEAFCONNECTION \LEAF.BREAKCONNECTION \CLOSELEAFCONNECTION \LEAF.EVENTFN)
-                                                             (* ; 
-                                                           "This generic fn ought to be on FILEIO")
+                                                             (* ; 
+                                                           "This generic fn ought to be on FILEIO")
               (FNS BREAKCONNECTION))
         (COMS 
-              (* ;; "Functions called when various SEQUIN events occur")
+              (* ;; "Functions called when various SEQUIN events occur")
 
               (FNS \LEAF.ACKED \LEAF.FIX.BROKEN.SEQUIN \LEAF.REPAIR.BROKEN.PUP 
                    \LEAF.USE.NEW.CONNECTION \LEAF.RESENDPUPS \LEAF.HANDLE.INPUT 
@@ -65,14 +65,14 @@ Copyright (c) 1983-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
                    \LEAF.MAYBE.FLUSH.CACHE \LEAF.WHENCLOSED \LEAF.IDLE?))
         (ADDVARS (NETWORKOSTYPES))
         (COMS 
-              (* ;; "Miscellaneous and error handling")
+              (* ;; "Miscellaneous and error handling")
 
               (FNS \ADDLEAFSTRING \FIXPASSWORD \GETLEAFSTRING \IFSERRORSTRING \LEAF.ERROR 
                    \LEAF.DIRECTORYNAMEONLY GETHOSTINFO GETOSTYPE EXPANDING-PAGEFULLFN)
               (VARS (DEFAULT.OSTYPE 'IFS))
               (GLOBALVARS DEFAULT.OSTYPE))
         (COMS 
-              (* ;; "LookUpFile stuff")
+              (* ;; "LookUpFile stuff")
 
               (FNS \IFS.LOOKUPFILE)
               (DECLARE%: EVAL@COMPILE DONTCOPY (COMS * LOOKUPFILECOMS)))
@@ -111,120 +111,119 @@ Copyright (c) 1983-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
 
 (DECLARE%: EVAL@COMPILE DONTCOPY 
 
-(RPAQQ SEQUINCOMS
-       ((RECORDS SEQUINPACKET SEQUIN)
-        (CONSTANTS * SEQUINOPS)
-        (CONSTANTS * SEQUINSTATES)
-        (CONSTANTS (\SC.EQUAL 0)
-               (\SC.PREVIOUS 1)
-               (\SC.DUPLICATE 2)
-               (\SC.AHEAD 3)
-               (\SC.OUTOFRANGE 4)
-               (\PT.SEQUIN 260Q)
-               (\SS.NOSOCKET 10Q)
-               (\SEQUIN.DEFAULT.ALLOCATION 12Q)
-               (\SEQUIN.DEFAULT.RETRANSMITMAX 5))
-        (MACROS SEQUINOP)))
+(RPAQQ SEQUINCOMS ((RECORDS SEQUINPACKET SEQUIN)
+                       (CONSTANTS * SEQUINOPS)
+                       (CONSTANTS * SEQUINSTATES)
+                       (CONSTANTS (\SC.EQUAL 0)
+                              (\SC.PREVIOUS 1)
+                              (\SC.DUPLICATE 2)
+                              (\SC.AHEAD 3)
+                              (\SC.OUTOFRANGE 4)
+                              (\PT.SEQUIN 260Q)
+                              (\SS.NOSOCKET 10Q)
+                              (\SEQUIN.DEFAULT.ALLOCATION 12Q)
+                              (\SEQUIN.DEFAULT.RETRANSMITMAX 5))
+                       (MACROS SEQUINOP)))
 (DECLARE%: EVAL@COMPILE
 
 (ACCESSFNS SEQUINPACKET ((SEQUINSTART (fetch PUPBASE of DATUM)))
                             (BLOCKRECORD SEQUINSTART ((NIL 2 WORD)
-                                                             (* ; "Pup length, typeword")
+                                                             (* ; "Pup length, typeword")
                                                       (ALLOCATE BYTE)
                                                       (RECEIVESEQ BYTE)
                                                       (SEQCONTROL BYTE)
                                                       (SENDSEQ BYTE)
-                                                             (* ; 
-                                                    "Sequin uses ID fields of PUP for control info")
+                                                             (* ; 
+                                                    "Sequin uses ID fields of PUP for control info")
                                                       )))
 
 (DATATYPE SEQUIN (
-                      (* ;; "First: stuff used by SEQUIN level")
+                      (* ;; "First: stuff used by SEQUIN level")
 
-                      (SEQNAME POINTER)                      (* ; "Name of partner")
-                      (SEQFRNPORT POINTER)                   (* ; "Foreign socket")
-                      (SEQSOCKET POINTER)                    (* ; "Local socket")
-                      (SEQSTATE BYTE)                        (* ; "Sequin connection state")
-                      (MYSENDSEQ BYTE)                       (* ; 
-     "Number I will next send.  These must be byte fields so that they will wrap around correctly!")
-                      (MYRECEIVESEQ BYTE)                    (* ; 
-             "Number I next expect to receive, i.e.  Partner's Send number of first unacked packet")
-                      (LASTACKEDSEQ BYTE)                    (* ; 
- "Last Receive seq from partner: all packets with sequence numbers before this one have been acked")
-                      (SEQOUTALLOC WORD)                     (* ; 
-                    "Output allocation: the number of packets I may send without their being acked")
-                      (SEQINALLOC WORD)                      (* ; 
-                                                         "Input allocation: what I tell my partner")
-                      (SEQMAXALLOC WORD)                     (* ; 
-                                                     "The largest I will let output allocation get")
-                      (%#UNACKEDSEQS WORD)                   (* ; 
-                         "Number of data packets we have sent for which no acks have been received")
-                      (SEQINPUTQLENGTH WORD)                 (* ; 
-                                                          "Number of packets in input (done) queue")
-                      (SEQTIMEOUT WORD)                      (* ; "Timeout before retransmission")
-                      (SEQBASETIMEOUT WORD)                  (* ; 
-                                                           "Timeout for this connection in general")
-                      (SEQRETRANSMITMAX WORD)                (* ; 
-                                                  "How many times to retransmit before complaining")
-                      (%#SEQRESTARTS WORD)                   (* ; "Some statistical info...")
+                      (SEQNAME POINTER)                      (* ; "Name of partner")
+                      (SEQFRNPORT POINTER)                   (* ; "Foreign socket")
+                      (SEQSOCKET POINTER)                    (* ; "Local socket")
+                      (SEQSTATE BYTE)                        (* ; "Sequin connection state")
+                      (MYSENDSEQ BYTE)                       (* ; 
+     "Number I will next send.  These must be byte fields so that they will wrap around correctly!")
+                      (MYRECEIVESEQ BYTE)                    (* ; 
+             "Number I next expect to receive, i.e.  Partner's Send number of first unacked packet")
+                      (LASTACKEDSEQ BYTE)                    (* ; 
+ "Last Receive seq from partner: all packets with sequence numbers before this one have been acked")
+                      (SEQOUTALLOC WORD)                     (* ; 
+                    "Output allocation: the number of packets I may send without their being acked")
+                      (SEQINALLOC WORD)                      (* ; 
+                                                         "Input allocation: what I tell my partner")
+                      (SEQMAXALLOC WORD)                     (* ; 
+                                                     "The largest I will let output allocation get")
+                      (%#UNACKEDSEQS WORD)                   (* ; 
+                         "Number of data packets we have sent for which no acks have been received")
+                      (SEQINPUTQLENGTH WORD)                 (* ; 
+                                                          "Number of packets in input (done) queue")
+                      (SEQTIMEOUT WORD)                      (* ; "Timeout before retransmission")
+                      (SEQBASETIMEOUT WORD)                  (* ; 
+                                                           "Timeout for this connection in general")
+                      (SEQRETRANSMITMAX WORD)                (* ; 
+                                                  "How many times to retransmit before complaining")
+                      (%#SEQRESTARTS WORD)                   (* ; "Some statistical info...")
                       (%#SEQRETRANSMITS WORD)
                       (%#SEQDUPLICATES WORD)
                       (%#SEQTIMEOUTS WORD)
                       (%#SEQTURNOVERS WORD)
-                      (SEQRETRANSMITQ POINTER)               (* ; "Sequin output queue")
+                      (SEQRETRANSMITQ POINTER)               (* ; "Sequin output queue")
                       (SEQTIMER POINTER)
                       (SEQPROCESS POINTER)
                       (SEQIGNOREDUPLICATES FLAG)
                       (SEQRETRANSMITTING FLAG)
                       (SEQCLOSEME FLAG)
                       (SEQCLOSEDFORLOGOUT FLAG)
-                      (SEQLASTRESTARTTIMER POINTER)          (* ; 
-                                                  "Allows for some aging of the connection timeout")
+                      (SEQLASTRESTARTTIMER POINTER)          (* ; 
+                                                  "Allows for some aging of the connection timeout")
                       (SEQLASTRESTART POINTER)
                       (SEQRETRANSMITNEXT POINTER)
-                      (SEQEVENT POINTER)                     (* ; 
-                               "Signaled when there is input, state changed, or allocation changed")
-                      (SEQLOCK POINTER)                      (* ; "Monitor lock for this structure")
+                      (SEQEVENT POINTER)                     (* ; 
+                               "Signaled when there is input, state changed, or allocation changed")
+                      (SEQLOCK POINTER)                      (* ; "Monitor lock for this structure")
 
-                      (* ;; "Second-level functions invoked by SEQUIN")
+                      (* ;; "Second-level functions invoked by SEQUIN")
 
-                      (SEQACKED POINTER)                     (* ; 
-                                                           "(PUP SEQUIN) called when PUP is acked")
-                      (SEQINPUT POINTER)                     (* ; 
-                                               "(PUP SEQUIN) called when PUP arrives as input data")
-                      (SEQBROKEN POINTER)                    (* ; "(SEQUIN PUP) called when a BROKEN sequin arrives (PUP = NIL) or attempt to send PUP on broken connection")
-                      (SEQABORTED POINTER)                   (* ; 
-                                "(SEQUIN) called when PUP arrives with outlandish sequence numbers")
-                      (SEQTIMEDOUT POINTER)                  (* ; 
-                                  "(SEQUIN) called when about to retransmit SEQRETRANSMITMAX times")
-                      (SEQCLOSED POINTER)                    (* ; 
-         "(SEQUIN) called when a connection is flushed, but before its retransmit queue is flushed")
-                      (SEQIDLETIMEOUTCOMPUTER POINTER)       (* ; "Computes timeout before calling SEQIDLEFN when no activity on connection.  T means forever, NIL means don't")
-                      (SEQIDLEFN POINTER)                    (* ; 
-                      "Called when nothing otherwise is happening, after timeout of SEQIDLETIMEOUT")
+                      (SEQACKED POINTER)                     (* ; 
+                                                           "(PUP SEQUIN) called when PUP is acked")
+                      (SEQINPUT POINTER)                     (* ; 
+                                               "(PUP SEQUIN) called when PUP arrives as input data")
+                      (SEQBROKEN POINTER)                    (* ; "(SEQUIN PUP) called when a BROKEN sequin arrives (PUP = NIL) or attempt to send PUP on broken connection")
+                      (SEQABORTED POINTER)                   (* ; 
+                                "(SEQUIN) called when PUP arrives with outlandish sequence numbers")
+                      (SEQTIMEDOUT POINTER)                  (* ; 
+                                  "(SEQUIN) called when about to retransmit SEQRETRANSMITMAX times")
+                      (SEQCLOSED POINTER)                    (* ; 
+         "(SEQUIN) called when a connection is flushed, but before its retransmit queue is flushed")
+                      (SEQIDLETIMEOUTCOMPUTER POINTER)       (* ; "Computes timeout before calling SEQIDLEFN when no activity on connection.  T means forever, NIL means don't")
+                      (SEQIDLEFN POINTER)                    (* ; 
+                      "Called when nothing otherwise is happening, after timeout of SEQIDLETIMEOUT")
 
-                      (* ;; "Stuff used by clients of SEQUIN, in particular, LEAF")
+                      (* ;; "Stuff used by clients of SEQUIN, in particular, LEAF")
 
-                      (SEQDONEQ POINTER)                     (* ; 
-                                               "Sequins acked but kept around for further handling")
+                      (SEQDONEQ POINTER)                     (* ; 
+                                               "Sequins acked but kept around for further handling")
                       (NIL POINTER)
                       (NIL POINTER)
-                      (LEAFCACHEDFILE POINTER)               (* ; 
-                                    "Last file accessed, to speed up repeated lookups of same name")
-                      (LEAFCACHETIMER POINTER)               (* ; "To timeout the cache")
+                      (LEAFCACHEDFILE POINTER)               (* ; 
+                                    "Last file accessed, to speed up repeated lookups of same name")
+                      (LEAFCACHETIMER POINTER)               (* ; "To timeout the cache")
                       (LEAFCACHEHITS WORD)
                       (LEAFCACHEMISSES WORD)
                       (LEAFTIMEOUTCOUNT WORD)
                       (LEAFCLOSING FLAG)
-                      (LEAFOPENCLOSELOCK POINTER)            (* ; 
-                           "Monitor lock to keep GETFILE and CLOSEFILE from stepping on each other")
+                      (LEAFOPENCLOSELOCK POINTER)            (* ; 
+                           "Monitor lock to keep GETFILE and CLOSEFILE from stepping on each other")
                       (LEAFABORTBUTTONWINDOW POINTER)
                       (LEAFABORTSTATUS POINTER)
                       (LEAFTIMEOUTSTATUS POINTER)
                       (SEQTIMEDIN POINTER)
                       (NIL POINTER)
-                      (SEQOPENERRORHANDLER POINTER)          (* ; 
-                                          "(SEQUIN PUP) called on errors trying to open connection")
+                      (SEQOPENERRORHANDLER POINTER)          (* ; 
+                                          "(SEQUIN PUP) called on errors trying to open connection")
                       )
                      SEQSTATE _ \SS.UNOPENED SEQOUTALLOC _ 1 SEQINALLOC _ \SEQUIN.DEFAULT.ALLOCATION
                      SEQRETRANSMITMAX _ \SEQUIN.DEFAULT.RETRANSMITMAX SEQRETRANSMITQ _
@@ -309,18 +308,17 @@ Copyright (c) 1983-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
          (SEQUIN 116Q POINTER))
        '120Q)
 
-(RPAQQ SEQUINOPS
-       ((\SEQUIN.DATA 0)
-        (\SEQUIN.ACK 1)
-        (\SEQUIN.NOOP 2)
-        (\SEQUIN.RESTART 3)
-        (\SEQUIN.OPEN 5)
-        (\SEQUIN.BREAK 6)
-        (\SEQUIN.OBSOLETE.CLOSE 7)
-        (\SEQUIN.DESTROY 11Q)
-        (\SEQUIN.DALLYING 12Q)
-        (\SEQUIN.QUIT 13Q)
-        (\SEQUIN.BROKEN 14Q)))
+(RPAQQ SEQUINOPS ((\SEQUIN.DATA 0)
+                      (\SEQUIN.ACK 1)
+                      (\SEQUIN.NOOP 2)
+                      (\SEQUIN.RESTART 3)
+                      (\SEQUIN.OPEN 5)
+                      (\SEQUIN.BREAK 6)
+                      (\SEQUIN.OBSOLETE.CLOSE 7)
+                      (\SEQUIN.DESTROY 11Q)
+                      (\SEQUIN.DALLYING 12Q)
+                      (\SEQUIN.QUIT 13Q)
+                      (\SEQUIN.BROKEN 14Q)))
 (DECLARE%: EVAL@COMPILE 
 
 (RPAQQ \SEQUIN.DATA 0)
@@ -432,8 +430,8 @@ Copyright (c) 1983-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
 )
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS SEQUINOP MACRO ((SEQ OP . ARGS)
-                                  (APPLY* (fetch (SEQUIN OP) of SEQ) . ARGS)))
+[PUTPROPS SEQUINOP MACRO ((SEQ OP . ARGS)
+                          (APPLY* (fetch (SEQUIN OP) of SEQ) . ARGS]
 )
 
 
@@ -3855,7 +3853,7 @@ This shouldn't happen: Lisp and the server have different ideas about which file
 (RPAQ? *UPPER-CASE-FILE-NAMES* T)
 (DECLARE%: EVAL@COMPILE DONTCOPY 
 
-(RPAQQ LEAFCOMPILETIMECOMS
+(RPAQQ LEAFCOMPILETIMECOMS 
        ((RECORDS LEAFDATA LEAFERRORDATA LEAFPARAMSDATA LEAFPACKET LEAFINFOBLOCK LEAFSTREAM LEAFDEVICE
                PUPFILESERVER)
         (MACROS .NAMEORSTREAM. .PAGE.IS.AFTER.EOF. INCLEAFSTAT)
@@ -3915,8 +3913,8 @@ This shouldn't happen: Lisp and the server have different ideas about which file
                            (HANDLE WORD)
                            (FILEADDRESS FIXP)
                            (DATALENGTH WORD)
-                           (LEAFFIRSTDATAWORD WORD))         (* ; 
-                                                        "Format of typical file operation request.")
+                           (LEAFFIRSTDATAWORD WORD))         (* ; 
+                                                        "Format of typical file operation request.")
                           (BLOCKRECORD LEAFDATA ((LEAFOPCODE BITS 5)
                                                  (ANSWERBIT BITS 1)
                                                  (LEAFLENGTH BITS 12Q)
@@ -3926,45 +3924,45 @@ This shouldn't happen: Lisp and the server have different ideas about which file
                                                  (NIL BITS 2)
                                                  (JUSTHIADDR BITS 13Q)
                                                  (LOADDR WORD))
-                                                             (* ; 
-                                                           "Details of the file address format")
+                                                             (* ; 
+                                                           "Details of the file address format")
                                  (SYNONYM LEAFOPCODE (OPCODE)))
                           (BLOCKRECORD LEAFDATA ((NIL 2 WORD)
                                                  (SIGNEXTEND BITS 5)
                                                  (NIL BITS 33Q))
-                                                             (* ; "more details")
+                                                             (* ; "more details")
                                  )
                           (BLOCKRECORD LEAFDATA ((NIL 2 WORD)
                                                  (OPENMODE WORD))
-                                                             (* ; "format of OPEN file request")
+                                                             (* ; "format of OPEN file request")
                                  )
                           (BLOCKRECORD LEAFDATA ((NIL 5 WORD)
                                                  (LEAFFILETYPE WORD)
                                                  (LEAFBYTESIZE WORD))
-                                                             (* ; "For accessing the file's TYPE")
+                                                             (* ; "For accessing the file's TYPE")
                                  )
                           (BLOCKRECORD LEAFDATA ((NIL 5 WORD)
                                                  (LEAFFILEDATE FIXP))
-                                                             (* ; 
-                                                    "Format of SETFILEINFO of CREATIONDATE request")
+                                                             (* ; 
+                                                    "Format of SETFILEINFO of CREATIONDATE request")
                                  ))
 
 (BLOCKRECORD LEAFERRORDATA ((NIL WORD)
-                                (LEAFERRORCODE WORD)         (* ; "Error subcode in ERROR leafop")
-                                (LEAFERROROPCODE BITS 5)     (* ; 
-                                                "The OPCODE in the Leaf packet provoking the error")
+                                (LEAFERRORCODE WORD)         (* ; "Error subcode in ERROR leafop")
+                                (LEAFERROROPCODE BITS 5)     (* ; 
+                                                "The OPCODE in the Leaf packet provoking the error")
                                 (NIL BITS 13Q)
-                                (LEAFERRORHANDLE WORD)       (* ; "The handle in the provoking op")
-                                (LEAFERRORMSG WORD)          (* ; 
-                                                           "Actually IFSSTRING starting here")
+                                (LEAFERRORHANDLE WORD)       (* ; "The handle in the provoking op")
+                                (LEAFERRORMSG WORD)          (* ; 
+                                                           "Actually IFSSTRING starting here")
                                 ))
 
 (BLOCKRECORD LEAFPARAMSDATA ((NIL WORD)
                                  (LEAFPMAXDATALENGTH WORD)
-                                 (LEAFPLOCKTIMEOUT WORD)     (* ; 
-                                                         "File Lock timeout, in units of 5 seconds")
-                                 (LEAFPCONNTIMEOUT WORD)     (* ; 
-                                                           "Overall connection timeout, same units")
+                                 (LEAFPLOCKTIMEOUT WORD)     (* ; 
+                                                         "File Lock timeout, in units of 5 seconds")
+                                 (LEAFPCONNTIMEOUT WORD)     (* ; 
+                                                           "Overall connection timeout, same units")
                                  ))
 
 (ACCESSFNS LEAFPACKET ((LEAFSTATUS (fetch EPUSERFIELD of DATUM)
@@ -3980,14 +3978,14 @@ This shouldn't happen: Lisp and the server have different ideas about which file
 
 (BLOCKRECORD LEAFINFOBLOCK ((LFCREATIONDATE FIXP)
                                 (LFWRITEDATE FIXP)
-                                (LFREADDATE FIXP))           (* ; "just like leader page")
+                                (LFREADDATE FIXP))           (* ; "just like leader page")
                                (BLOCKRECORD LEAFINFOBLOCK ((HICREATE WORD)
                                                            (LOCREATE WORD)
                                                            (HIWRITE WORD)
                                                            (LOWRITE WORD)
                                                            (HIREAD WORD)
                                                            (LOREAD WORD))
-                                                             (* ; "for VALIDATION use")
+                                                             (* ; "for VALIDATION use")
                                       )
                                (CREATE (\ALLOCBLOCK 3)))
 
@@ -4010,25 +4008,25 @@ This shouldn't happen: Lisp and the server have different ideas about which file
                                   (replace DEVICEINFO of DATUM with NEWVALUE))))
 
 (DATATYPE PUPFILESERVER (
-                             (* ;; "Info common to various pup protocols used on a file server, independent of whether a connection is now open")
+                             (* ;; "Info common to various pup protocols used on a file server, independent of whether a connection is now open")
 
                              (NIL BYTE)
                              (PFSNAME POINTER)
-                             (PFSADDRESS POINTER)            (* ; "Pup address")
+                             (PFSADDRESS POINTER)            (* ; "Pup address")
                              (PFSOSTYPE POINTER)
-                             (PFSLEAFFLG POINTER)            (* ; 
-                                              "Indicates something about whether LEAF is available")
-                             (PFSLEAFSEQUIN POINTER)         (* ; 
-                                                       "Pointer to SEQUIN for open leaf connection")
-                             (PFSLEAFTIMER POINTER)          (* ; 
-                                                           "Timeout for handling dead servers")
-                             (PFSLOOKUPFILESOCKET POINTER)   (* ; 
-                                                           "The Pup socket for LookupFile requests")
-                             (PFSLOOKUPFILELOCK POINTER)     (* ; "Lock to secure it")
-                             (PFSLOOKUPFAILCNT POINTER)      (* ; 
-                                                    "Counter used until we know the service exists")
-                             (PFSKNOWNDIRS POINTER)          (* ; 
-                             "List of directories known to exist on this host (for DIRECTORYNAMEP)")
+                             (PFSLEAFFLG POINTER)            (* ; 
+                                              "Indicates something about whether LEAF is available")
+                             (PFSLEAFSEQUIN POINTER)         (* ; 
+                                                       "Pointer to SEQUIN for open leaf connection")
+                             (PFSLEAFTIMER POINTER)          (* ; 
+                                                           "Timeout for handling dead servers")
+                             (PFSLOOKUPFILESOCKET POINTER)   (* ; 
+                                                           "The Pup socket for LookupFile requests")
+                             (PFSLOOKUPFILELOCK POINTER)     (* ; "Lock to secure it")
+                             (PFSLOOKUPFAILCNT POINTER)      (* ; 
+                                                    "Counter used until we know the service exists")
+                             (PFSKNOWNDIRS POINTER)          (* ; 
+                             "List of directories known to exist on this host (for DIRECTORYNAMEP)")
                              (NIL POINTER)))
 )
 
@@ -4049,36 +4047,35 @@ This shouldn't happen: Lisp and the server have different ideas about which file
        '30Q)
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS .NAMEORSTREAM. MACRO (OPENLAMBDA (FILENAME)
-                                         (COND
-                                            ((type? STREAM FILENAME)
-                                             (fetch FULLFILENAME of FILENAME))
-                                            (T FILENAME))))
+[PUTPROPS .NAMEORSTREAM. MACRO (OPENLAMBDA (FILENAME)
+                                      (COND
+                                         ((type? STREAM FILENAME)
+                                          (fetch FULLFILENAME of FILENAME))
+                                         (T FILENAME]
 
-(PUTPROPS .PAGE.IS.AFTER.EOF. MACRO [OPENLAMBDA (STREAM PAGE#)
-                                              (AND (IGEQ PAGE# (fetch EPAGE of STREAM))
-                                                   (OR (NOT (IEQP (fetch EPAGE of STREAM)
-                                                                  PAGE#))
-                                                       (EQ (fetch EOFFSET of STREAM)
-                                                           0])
+[PUTPROPS .PAGE.IS.AFTER.EOF. MACRO (OPENLAMBDA (STREAM PAGE#)
+                                           (AND (IGEQ PAGE# (fetch EPAGE of STREAM))
+                                                (OR (NOT (IEQP (fetch EPAGE of STREAM)
+                                                               PAGE#))
+                                                    (EQ (fetch EOFFSET of STREAM)
+                                                        0]
 
-(PUTPROPS INCLEAFSTAT MACRO ((X)
-                                     (change X (IPLUS16 DATUM 1))))
+[PUTPROPS INCLEAFSTAT MACRO ((X)
+                             (change X (IPLUS16 DATUM 1]
 )
 
-(RPAQQ LEAFOPCODES
-       ((\LEAFOP.ERROR 0)
-        (\LEAFOP.OPEN 1)
-        (\LEAFOP.CLOSE 2)
-        (\LEAFOP.DELETE 3)
-        (\LEAFOP.LENGTH 4)
-        (\LEAFOP.TRUNCATE 5)
-        (\LEAFOP.READ 6)
-        (\LEAFOP.WRITE 7)
-        (\LEAFOP.RESET 10Q)
-        (\LEAFOP.NOOP 11Q)
-        (\LEAFOP.TELNET 12Q)
-        (\LEAFOP.PARAMS 13Q)))
+(RPAQQ LEAFOPCODES ((\LEAFOP.ERROR 0)
+                        (\LEAFOP.OPEN 1)
+                        (\LEAFOP.CLOSE 2)
+                        (\LEAFOP.DELETE 3)
+                        (\LEAFOP.LENGTH 4)
+                        (\LEAFOP.TRUNCATE 5)
+                        (\LEAFOP.READ 6)
+                        (\LEAFOP.WRITE 7)
+                        (\LEAFOP.RESET 10Q)
+                        (\LEAFOP.NOOP 11Q)
+                        (\LEAFOP.TELNET 12Q)
+                        (\LEAFOP.PARAMS 13Q)))
 (DECLARE%: EVAL@COMPILE 
 
 (RPAQQ \LEAFOP.ERROR 0)
@@ -4120,24 +4117,23 @@ This shouldn't happen: Lisp and the server have different ideas about which file
        (\LEAFOP.PARAMS 13Q))
 )
 
-(RPAQQ IFSERRORS
-       ((\IFSERROR.BAD.CHARACTER 312Q)
-        (\IFSERROR.MALFORMED '(311Q 312Q))
-        (\IFSERROR.FILE.NOT.FOUND 317Q)
-        (\IFSERROR.PROTECTION 320Q)
-        (\IFSERROR.BUSY 321Q)
-        (\IFSERROR.INVALID.DIRECTORY 322Q)
-        (\IFSERROR.ALLOCATION 323Q)
-        (\IFSERROR.USERNAME 330Q)
-        (\IFSERROR.PASSWORD 331Q)
-        (\IFSERROR.NO.LOGIN 332Q)
-        (\PASSWORD.ERRORS '(330Q 331Q 332Q 337Q))
-        (\IFSERROR.CONNECTNAME 333Q)
-        (\IFSERROR.CONNECTPASSWORD 334Q)
-        (\CONNECT.PASSWORD.ERRORS '(333Q 334Q))
-        (\IFSERROR.NEED.USERNAME 337Q)
-        (\IFS.ERROR.BROKEN.LEAF 1751Q)
-        (\IFSERROR.BAD.HANDLE 1763Q)))
+(RPAQQ IFSERRORS ((\IFSERROR.BAD.CHARACTER 312Q)
+                      (\IFSERROR.MALFORMED '(311Q 312Q))
+                      (\IFSERROR.FILE.NOT.FOUND 317Q)
+                      (\IFSERROR.PROTECTION 320Q)
+                      (\IFSERROR.BUSY 321Q)
+                      (\IFSERROR.INVALID.DIRECTORY 322Q)
+                      (\IFSERROR.ALLOCATION 323Q)
+                      (\IFSERROR.USERNAME 330Q)
+                      (\IFSERROR.PASSWORD 331Q)
+                      (\IFSERROR.NO.LOGIN 332Q)
+                      (\PASSWORD.ERRORS '(330Q 331Q 332Q 337Q))
+                      (\IFSERROR.CONNECTNAME 333Q)
+                      (\IFSERROR.CONNECTPASSWORD 334Q)
+                      (\CONNECT.PASSWORD.ERRORS '(333Q 334Q))
+                      (\IFSERROR.NEED.USERNAME 337Q)
+                      (\IFS.ERROR.BROKEN.LEAF 1751Q)
+                      (\IFSERROR.BAD.HANDLE 1763Q)))
 (DECLARE%: EVAL@COMPILE 
 
 (RPAQQ \IFSERROR.BAD.CHARACTER 312Q)
@@ -4371,41 +4367,41 @@ This shouldn't happen: Lisp and the server have different ideas about which file
                              (NIL POINTER)))
 )
 (PUTPROPS LEAF COPYRIGHT ("Venue & Xerox Corporation" 3677Q 3700Q 3701Q 3702Q 3703Q 3704Q 3706Q 3707Q 
-3710Q 3711Q 3745Q))
+3710Q 3711Q))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (55030Q 70126Q (CLOSESEQUIN 55042Q . 56061Q) (INITSEQUIN 56063Q . 61167Q) (GETSEQUIN 
-61171Q . 62702Q) (PUTSEQUIN 62704Q . 70124Q)) (70127Q 153532Q (\SEQUIN.CONTROL 70141Q . 71412Q) (
-\SEQUIN.PUT 71414Q . 76437Q) (\SEQUIN.PROCESS 76441Q . 113715Q) (\SEQUIN.CLOSE 113717Q . 114604Q) (
-\SEQUIN.FLUSH.CONNECTION 114606Q . 116617Q) (\SEQUIN.CLEANUP 116621Q . 117752Q) (
-\SEQUIN.FLUSH.RETRANSMIT 117754Q . 121211Q) (\SEQUIN.COMPARE 121213Q . 122352Q) (\SEQUIN.HANDLE.INPUT 
-122354Q . 140331Q) (\SEQUIN.OUT.OF.THE.BLUE 140333Q . 141156Q) (\SEQUIN.HANDLE.ACK 141160Q . 145412Q) 
-(\SEQUIN.RETRANSMIT 145414Q . 150762Q) (\SEQUIN.RETRANSMITNEXT 150764Q . 153530Q)) (153603Q 417505Q (
-\LEAF.CLOSEFILE 153615Q . 166666Q) (\LEAF.DELETEFILE 166670Q . 172453Q) (\LEAF.DEVICEP 172455Q . 
-207444Q) (\LEAF.RECONNECT 207446Q . 211363Q) (\LEAF.DIRECTORYNAMEP 211365Q . 214676Q) (
-\LEAF.GENERATEFILES 214700Q . 215312Q) (\LEAF.GETFILE 215314Q . 251753Q) (\PARSE.REMOTE.FILENAME 
-251755Q . 261161Q) (\LEAF.STRIP.QUOTES 261163Q . 262654Q) (\LEAF.GETFILEDATES 262656Q . 265051Q) (
-\LEAF.GETFILEINFO 265053Q . 270430Q) (\LEAF.GETFILEINFO.OPEN 270432Q . 277251Q) (\LEAF.GETFILENAME 
-277253Q . 301470Q) (\LEAF.OPENFILE 301472Q . 315543Q) (\LEAF.READFILENAME 315545Q . 321456Q) (
-\LEAF.ADD.QUOTES 321460Q . 324102Q) (\LEAF.READFILEPROP 324104Q . 327153Q) (\LEAF.READPAGES 327155Q . 
-336312Q) (\LEAF.REQUESTPAGE 336314Q . 345224Q) (\LEAF.LOOKUPCACHE 345226Q . 352162Q) (CLEAR.LEAF.CACHE
- 352164Q . 354134Q) (LEAF.ASSURE.FINISHED 354136Q . 361267Q) (\LEAF.FORCEOUTPUT 361271Q . 361563Q) (
-\LEAF.FLUSH.CACHE 361565Q . 362771Q) (\LEAF.RENAMEFILE 362773Q . 363745Q) (\LEAF.REOPENFILE 363747Q . 
-371322Q) (\LEAF.CREATIONDATE 371324Q . 372161Q) (\LEAF.SETCREATIONDATE 372163Q . 375676Q) (
-\LEAF.SETFILEINFO 375700Q . 377562Q) (\LEAF.SETFILETYPE 377564Q . 404346Q) (\LEAF.SETVALIDATION 
-404350Q . 406705Q) (\LEAF.TRUNCATEFILE 406707Q . 412102Q) (\LEAF.WRITEPAGES 412104Q . 417503Q)) (
-417570Q 425677Q (\SENDLEAF 417602Q . 425675Q)) (425753Q 456434Q (\OPENLEAFCONNECTION 425765Q . 450073Q
-) (\LEAF.BREAKCONNECTION 450075Q . 451701Q) (\CLOSELEAFCONNECTION 451703Q . 452543Q) (\LEAF.EVENTFN 
-452545Q . 456432Q)) (456523Q 461306Q (BREAKCONNECTION 456535Q . 461304Q)) (461412Q 573776Q (
-\LEAF.ACKED 461424Q . 462133Q) (\LEAF.FIX.BROKEN.SEQUIN 462135Q . 502075Q) (\LEAF.REPAIR.BROKEN.PUP 
-502077Q . 506171Q) (\LEAF.USE.NEW.CONNECTION 506173Q . 522016Q) (\LEAF.RESENDPUPS 522020Q . 522430Q) (
-\LEAF.HANDLE.INPUT 522432Q . 531742Q) (\LEAF.OPENERRORHANDLER 531744Q . 533367Q) (\LEAF.TIMEDIN 
-533371Q . 534354Q) (\LEAF.TIMEDOUT 534356Q . 542671Q) (\LEAF.NOT.RESPONDING 542673Q . 544243Q) (
-\LEAF.TIMEDOUT.EXCESSIVE 544245Q . 556712Q) (\LEAF.ABORT.FROMMENU 556714Q . 557643Q) (
-\LEAF.STREAM.IN.QUEUE 557645Q . 564240Q) (\LEAF.IDLE 564242Q . 566302Q) (\LEAF.MAYBE.FLUSH.CACHE 
-566304Q . 567375Q) (\LEAF.WHENCLOSED 567377Q . 572565Q) (\LEAF.IDLE? 572567Q . 573774Q)) (574121Q 
-627734Q (\ADDLEAFSTRING 574133Q . 600001Q) (\FIXPASSWORD 600003Q . 602140Q) (\GETLEAFSTRING 602142Q . 
-602672Q) (\IFSERRORSTRING 602674Q . 611061Q) (\LEAF.ERROR 611063Q . 616362Q) (\LEAF.DIRECTORYNAMEONLY 
-616364Q . 617105Q) (GETHOSTINFO 617107Q . 624405Q) (GETOSTYPE 624407Q . 624626Q) (EXPANDING-PAGEFULLFN
- 624630Q . 627732Q)) (630141Q 654726Q (\IFS.LOOKUPFILE 630153Q . 654724Q)) (656667Q 661016Q (\LEAFINIT
- 656701Q . 661014Q)) (661074Q 674131Q (PRINTLEAF 661106Q . 674127Q)))))
+  (FILEMAP (NIL (55721Q 71017Q (CLOSESEQUIN 55733Q . 56752Q) (INITSEQUIN 56754Q . 62060Q) (GETSEQUIN 
+62062Q . 63573Q) (PUTSEQUIN 63575Q . 71015Q)) (71020Q 154423Q (\SEQUIN.CONTROL 71032Q . 72303Q) (
+\SEQUIN.PUT 72305Q . 77330Q) (\SEQUIN.PROCESS 77332Q . 114606Q) (\SEQUIN.CLOSE 114610Q . 115475Q) (
+\SEQUIN.FLUSH.CONNECTION 115477Q . 117510Q) (\SEQUIN.CLEANUP 117512Q . 120643Q) (
+\SEQUIN.FLUSH.RETRANSMIT 120645Q . 122102Q) (\SEQUIN.COMPARE 122104Q . 123243Q) (\SEQUIN.HANDLE.INPUT 
+123245Q . 141222Q) (\SEQUIN.OUT.OF.THE.BLUE 141224Q . 142047Q) (\SEQUIN.HANDLE.ACK 142051Q . 146303Q) 
+(\SEQUIN.RETRANSMIT 146305Q . 151653Q) (\SEQUIN.RETRANSMITNEXT 151655Q . 154421Q)) (154474Q 420376Q (
+\LEAF.CLOSEFILE 154506Q . 167557Q) (\LEAF.DELETEFILE 167561Q . 173344Q) (\LEAF.DEVICEP 173346Q . 
+210335Q) (\LEAF.RECONNECT 210337Q . 212254Q) (\LEAF.DIRECTORYNAMEP 212256Q . 215567Q) (
+\LEAF.GENERATEFILES 215571Q . 216203Q) (\LEAF.GETFILE 216205Q . 252644Q) (\PARSE.REMOTE.FILENAME 
+252646Q . 262052Q) (\LEAF.STRIP.QUOTES 262054Q . 263545Q) (\LEAF.GETFILEDATES 263547Q . 265742Q) (
+\LEAF.GETFILEINFO 265744Q . 271321Q) (\LEAF.GETFILEINFO.OPEN 271323Q . 300142Q) (\LEAF.GETFILENAME 
+300144Q . 302361Q) (\LEAF.OPENFILE 302363Q . 316434Q) (\LEAF.READFILENAME 316436Q . 322347Q) (
+\LEAF.ADD.QUOTES 322351Q . 324773Q) (\LEAF.READFILEPROP 324775Q . 330044Q) (\LEAF.READPAGES 330046Q . 
+337203Q) (\LEAF.REQUESTPAGE 337205Q . 346115Q) (\LEAF.LOOKUPCACHE 346117Q . 353053Q) (CLEAR.LEAF.CACHE
+ 353055Q . 355025Q) (LEAF.ASSURE.FINISHED 355027Q . 362160Q) (\LEAF.FORCEOUTPUT 362162Q . 362454Q) (
+\LEAF.FLUSH.CACHE 362456Q . 363662Q) (\LEAF.RENAMEFILE 363664Q . 364636Q) (\LEAF.REOPENFILE 364640Q . 
+372213Q) (\LEAF.CREATIONDATE 372215Q . 373052Q) (\LEAF.SETCREATIONDATE 373054Q . 376567Q) (
+\LEAF.SETFILEINFO 376571Q . 400453Q) (\LEAF.SETFILETYPE 400455Q . 405237Q) (\LEAF.SETVALIDATION 
+405241Q . 407576Q) (\LEAF.TRUNCATEFILE 407600Q . 412773Q) (\LEAF.WRITEPAGES 412775Q . 420374Q)) (
+420461Q 426570Q (\SENDLEAF 420473Q . 426566Q)) (426644Q 457325Q (\OPENLEAFCONNECTION 426656Q . 450764Q
+) (\LEAF.BREAKCONNECTION 450766Q . 452572Q) (\CLOSELEAFCONNECTION 452574Q . 453434Q) (\LEAF.EVENTFN 
+453436Q . 457323Q)) (457414Q 462177Q (BREAKCONNECTION 457426Q . 462175Q)) (462303Q 574667Q (
+\LEAF.ACKED 462315Q . 463024Q) (\LEAF.FIX.BROKEN.SEQUIN 463026Q . 502766Q) (\LEAF.REPAIR.BROKEN.PUP 
+502770Q . 507062Q) (\LEAF.USE.NEW.CONNECTION 507064Q . 522707Q) (\LEAF.RESENDPUPS 522711Q . 523321Q) (
+\LEAF.HANDLE.INPUT 523323Q . 532633Q) (\LEAF.OPENERRORHANDLER 532635Q . 534260Q) (\LEAF.TIMEDIN 
+534262Q . 535245Q) (\LEAF.TIMEDOUT 535247Q . 543562Q) (\LEAF.NOT.RESPONDING 543564Q . 545134Q) (
+\LEAF.TIMEDOUT.EXCESSIVE 545136Q . 557603Q) (\LEAF.ABORT.FROMMENU 557605Q . 560534Q) (
+\LEAF.STREAM.IN.QUEUE 560536Q . 565131Q) (\LEAF.IDLE 565133Q . 567173Q) (\LEAF.MAYBE.FLUSH.CACHE 
+567175Q . 570266Q) (\LEAF.WHENCLOSED 570270Q . 573456Q) (\LEAF.IDLE? 573460Q . 574665Q)) (575012Q 
+630625Q (\ADDLEAFSTRING 575024Q . 600672Q) (\FIXPASSWORD 600674Q . 603031Q) (\GETLEAFSTRING 603033Q . 
+603563Q) (\IFSERRORSTRING 603565Q . 611752Q) (\LEAF.ERROR 611754Q . 617253Q) (\LEAF.DIRECTORYNAMEONLY 
+617255Q . 617776Q) (GETHOSTINFO 620000Q . 625276Q) (GETOSTYPE 625300Q . 625517Q) (EXPANDING-PAGEFULLFN
+ 625521Q . 630623Q)) (631032Q 655617Q (\IFS.LOOKUPFILE 631044Q . 655615Q)) (657560Q 661707Q (\LEAFINIT
+ 657572Q . 661705Q)) (661765Q 675022Q (PRINTLEAF 661777Q . 675020Q)))))
 STOP
diff --git a/sources/LEAF.LCOM b/sources/LEAF.LCOM
index a6ac2f2a..55420435 100644
Binary files a/sources/LEAF.LCOM and b/sources/LEAF.LCOM differ
diff --git a/sources/LLDISPLAY b/sources/LLDISPLAY
index ff68522e..7e2d3b8c 100644
--- a/sources/LLDISPLAY
+++ b/sources/LLDISPLAY
@@ -1,11 +1,11 @@
-(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED " 5-Sep-2021 08:25:49" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LLDISPLAY.;9 268917 
+(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10 FORMAT XCCS)
+(FILECREATED " 8-Aug-2021 00:19:22" 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LLDISPLAY.;7 268927 
 
-      changes to%:  (FNS \CREATEDISPLAY)
+      changes to%:  (FNS READBITMAP)
 
-      previous date%: " 8-Aug-2021 00:19:22" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LLDISPLAY.;8)
+      previous date%: " 1-Aug-2021 23:41:37" 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LLDISPLAY.;6)
 
 
 (* ; "
@@ -4528,42 +4528,42 @@ Copyright (c) 1981-1990, 1993-1994, 2021 by Venue & Xerox Corporation.
 (PUTPROPS LLDISPLAY COPYRIGHT ("Venue & Xerox Corporation" 1981 1982 1983 1984 1985 1986 1987 1988 
 1989 1990 1993 1994 2021))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (20534 23202 (\FBITMAPBIT 20544 . 21004) (\FBITMAPBIT.UFN 21006 . 22025) (
-\NEWPAGE.DISPLAY 22027 . 22162) (INITBITMASKS 22164 . 23200)) (25247 25756 (\CreateCursorBitMap 25257
- . 25754)) (25873 84961 (BITBLT 25883 . 36273) (BLTSHADE 36275 . 37053) (\BITBLTSUB 37055 . 47190) (
-\GETPILOTBBTSCRATCHBM 47192 . 47807) (BITMAPCOPY 47809 . 48385) (BITMAPCREATE 48387 . 49947) (
-BITMAPBIT 49949 . 58336) (BLTCHAR 58338 . 58954) (\BLTCHAR 58956 . 59458) (\MEDW.BLTCHAR 59460 . 64338
-) (\CHANGECHARSET.DISPLAY 64340 . 67298) (\INDICATESTRING 67300 . 68496) (\SLOWBLTCHAR 68498 . 75594) 
-(TEXTUREP 75596 . 75866) (INVERT.TEXTURE 75868 . 76142) (INVERT.TEXTURE.BITMAP 76144 . 77679) (
-BITMAPWIDTH 77681 . 78053) (READBITMAP 78055 . 80565) (\INSUREBITSPERPIXEL 80567 . 80862) (
-MAXIMUMCOLOR 80864 . 81005) (OPPOSITECOLOR 81007 . 81186) (MAXIMUMSHADE 81188 . 81399) (OPPOSITESHADE 
-81401 . 81580) (\MEDW.BITBLT 81582 . 84959)) (84963 90278 (FINISH-READING-BITMAP 84963 . 90278)) (
-91541 92022 (BITMAPBIT.EXPANDER 91551 . 92020)) (92023 140557 (\BITBLT.DISPLAY 92033 . 115272) (
-\BITBLT.BITMAP 115274 . 124373) (\BITBLT.MERGE 124375 . 126628) (\BLTSHADE.DISPLAY 126630 . 133730) (
-\BLTSHADE.BITMAP 133732 . 140555)) (140558 149878 (\BITBLT.BITMAP.SLOW 140568 . 149876)) (149879 
-166260 (\PUNT.BLTSHADE.BITMAP 149889 . 156985) (\PUNT.BITBLT.BITMAP 156987 . 166258)) (166261 169701 (
-\SCALEDBITBLT.DISPLAY 166271 . 167904) (\BACKCOLOR.DISPLAY 167906 . 169699)) (174019 176292 (
-DISPLAYSTREAMP 174029 . 174637) (DSPSOURCETYPE 174639 . 175648) (DSPXOFFSET 175650 . 175969) (
-DSPYOFFSET 175971 . 176290)) (176293 192594 (DSPCREATE 176303 . 178407) (DSPDESTINATION 178409 . 
-181512) (DSPTEXTURE 181514 . 181676) (\DISPLAYSTREAMINCRXPOSITION 181678 . 181965) (\SFFixDestination 
-181967 . 183145) (\SFFixClippingRegion 183147 . 185319) (\SFFixFont 185321 . 186371) (\SFFIXLINELENGTH
- 186373 . 187869) (\UPDATE-SYNONYM-STREAM-LINELENGTH-FIELD 187871 . 189684) (\SFFixY 189686 . 192592))
- (192595 194789 (\MEDW.XOFFSET 192605 . 193746) (\MEDW.YOFFSET 193748 . 194787)) (194790 202716 (
-\DSPCLIPPINGREGION.DISPLAY 194800 . 195546) (\DSPFONT.DISPLAY 195548 . 197918) (\DISPLAY.PILOTBITBLT 
-197920 . 198069) (\DSPLINEFEED.DISPLAY 198071 . 198642) (\DSPLEFTMARGIN.DISPLAY 198644 . 199375) (
-\DSPOPERATION.DISPLAY 199377 . 200401) (\DSPRIGHTMARGIN.DISPLAY 200403 . 201248) (
-\DSPXPOSITION.DISPLAY 201250 . 202107) (\DSPYPOSITION.DISPLAY 202109 . 202714)) (207486 212522 (
-TTYDISPLAYSTREAM 207496 . 212520)) (212841 213871 (DSPSCROLL 212851 . 213551) (PAGEHEIGHT 213553 . 
-213869)) (213916 216938 (\DSPRESET.DISPLAY 213926 . 216936)) (217498 238136 (\DSPPRINTCHAR 217508 . 
-225346) (\DSPPRINTCR/LF 225348 . 238134)) (238137 238729 (\TTYBACKGROUND 238147 . 238727)) (238730 
-242017 (DSPBACKUP 238740 . 242015)) (242201 242457 (COLORDISPLAYP 242211 . 242455)) (242458 244529 (
-DISPLAYBEFOREEXIT 242468 . 243294) (DISPLAYAFTERENTRY 243296 . 244527)) (244909 249441 (
-\DSPCLIPTRANSFORMX 244919 . 245508) (\DSPCLIPTRANSFORMY 245510 . 246235) (\DSPTRANSFORMREGION 246237
- . 246769) (\DSPUNTRANSFORMY 246771 . 247031) (\DSPUNTRANSFORMX 247033 . 247293) (
-\OFFSETCLIPPINGREGION 247295 . 249439)) (250747 253334 (UPDATESCREENDIMENSIONS 250757 . 251386) (
-\CreateScreenBitMap 251388 . 253332)) (253893 267052 (\CoerceToDisplayDevice 253903 . 254316) (
-\CREATEDISPLAY 254318 . 256158) (DISPLAYSTREAMINIT 256160 . 259304) (\STARTDISPLAY 259306 . 262217) (
-\MOVE.WINDOWS.ONTO.SCREEN 262219 . 264411) (\UPDATE.PBT.RASTERWIDTHS 264413 . 266195) (\STOPDISPLAY 
-266197 . 266689) (\DEFINEDISPLAYINFO 266691 . 267050)) (267660 268421 (INITIALIZEDISPLAYSTREAMS 267670
- . 268419)))))
+  (FILEMAP (NIL (20544 23212 (\FBITMAPBIT 20554 . 21014) (\FBITMAPBIT.UFN 21016 . 22035) (
+\NEWPAGE.DISPLAY 22037 . 22172) (INITBITMASKS 22174 . 23210)) (25257 25766 (\CreateCursorBitMap 25267
+ . 25764)) (25883 84971 (BITBLT 25893 . 36283) (BLTSHADE 36285 . 37063) (\BITBLTSUB 37065 . 47200) (
+\GETPILOTBBTSCRATCHBM 47202 . 47817) (BITMAPCOPY 47819 . 48395) (BITMAPCREATE 48397 . 49957) (
+BITMAPBIT 49959 . 58346) (BLTCHAR 58348 . 58964) (\BLTCHAR 58966 . 59468) (\MEDW.BLTCHAR 59470 . 64348
+) (\CHANGECHARSET.DISPLAY 64350 . 67308) (\INDICATESTRING 67310 . 68506) (\SLOWBLTCHAR 68508 . 75604) 
+(TEXTUREP 75606 . 75876) (INVERT.TEXTURE 75878 . 76152) (INVERT.TEXTURE.BITMAP 76154 . 77689) (
+BITMAPWIDTH 77691 . 78063) (READBITMAP 78065 . 80575) (\INSUREBITSPERPIXEL 80577 . 80872) (
+MAXIMUMCOLOR 80874 . 81015) (OPPOSITECOLOR 81017 . 81196) (MAXIMUMSHADE 81198 . 81409) (OPPOSITESHADE 
+81411 . 81590) (\MEDW.BITBLT 81592 . 84969)) (84973 90288 (FINISH-READING-BITMAP 84973 . 90288)) (
+91551 92032 (BITMAPBIT.EXPANDER 91561 . 92030)) (92033 140567 (\BITBLT.DISPLAY 92043 . 115282) (
+\BITBLT.BITMAP 115284 . 124383) (\BITBLT.MERGE 124385 . 126638) (\BLTSHADE.DISPLAY 126640 . 133740) (
+\BLTSHADE.BITMAP 133742 . 140565)) (140568 149888 (\BITBLT.BITMAP.SLOW 140578 . 149886)) (149889 
+166270 (\PUNT.BLTSHADE.BITMAP 149899 . 156995) (\PUNT.BITBLT.BITMAP 156997 . 166268)) (166271 169711 (
+\SCALEDBITBLT.DISPLAY 166281 . 167914) (\BACKCOLOR.DISPLAY 167916 . 169709)) (174029 176302 (
+DISPLAYSTREAMP 174039 . 174647) (DSPSOURCETYPE 174649 . 175658) (DSPXOFFSET 175660 . 175979) (
+DSPYOFFSET 175981 . 176300)) (176303 192604 (DSPCREATE 176313 . 178417) (DSPDESTINATION 178419 . 
+181522) (DSPTEXTURE 181524 . 181686) (\DISPLAYSTREAMINCRXPOSITION 181688 . 181975) (\SFFixDestination 
+181977 . 183155) (\SFFixClippingRegion 183157 . 185329) (\SFFixFont 185331 . 186381) (\SFFIXLINELENGTH
+ 186383 . 187879) (\UPDATE-SYNONYM-STREAM-LINELENGTH-FIELD 187881 . 189694) (\SFFixY 189696 . 192602))
+ (192605 194799 (\MEDW.XOFFSET 192615 . 193756) (\MEDW.YOFFSET 193758 . 194797)) (194800 202726 (
+\DSPCLIPPINGREGION.DISPLAY 194810 . 195556) (\DSPFONT.DISPLAY 195558 . 197928) (\DISPLAY.PILOTBITBLT 
+197930 . 198079) (\DSPLINEFEED.DISPLAY 198081 . 198652) (\DSPLEFTMARGIN.DISPLAY 198654 . 199385) (
+\DSPOPERATION.DISPLAY 199387 . 200411) (\DSPRIGHTMARGIN.DISPLAY 200413 . 201258) (
+\DSPXPOSITION.DISPLAY 201260 . 202117) (\DSPYPOSITION.DISPLAY 202119 . 202724)) (207496 212532 (
+TTYDISPLAYSTREAM 207506 . 212530)) (212851 213881 (DSPSCROLL 212861 . 213561) (PAGEHEIGHT 213563 . 
+213879)) (213926 216948 (\DSPRESET.DISPLAY 213936 . 216946)) (217508 238146 (\DSPPRINTCHAR 217518 . 
+225356) (\DSPPRINTCR/LF 225358 . 238144)) (238147 238739 (\TTYBACKGROUND 238157 . 238737)) (238740 
+242027 (DSPBACKUP 238750 . 242025)) (242211 242467 (COLORDISPLAYP 242221 . 242465)) (242468 244539 (
+DISPLAYBEFOREEXIT 242478 . 243304) (DISPLAYAFTERENTRY 243306 . 244537)) (244919 249451 (
+\DSPCLIPTRANSFORMX 244929 . 245518) (\DSPCLIPTRANSFORMY 245520 . 246245) (\DSPTRANSFORMREGION 246247
+ . 246779) (\DSPUNTRANSFORMY 246781 . 247041) (\DSPUNTRANSFORMX 247043 . 247303) (
+\OFFSETCLIPPINGREGION 247305 . 249449)) (250757 253344 (UPDATESCREENDIMENSIONS 250767 . 251396) (
+\CreateScreenBitMap 251398 . 253342)) (253903 267062 (\CoerceToDisplayDevice 253913 . 254326) (
+\CREATEDISPLAY 254328 . 256168) (DISPLAYSTREAMINIT 256170 . 259314) (\STARTDISPLAY 259316 . 262227) (
+\MOVE.WINDOWS.ONTO.SCREEN 262229 . 264421) (\UPDATE.PBT.RASTERWIDTHS 264423 . 266205) (\STOPDISPLAY 
+266207 . 266699) (\DEFINEDISPLAYINFO 266701 . 267060)) (267670 268431 (INITIALIZEDISPLAYSTREAMS 267680
+ . 268429)))))
 STOP
diff --git a/sources/LLDISPLAY.LCOM b/sources/LLDISPLAY.LCOM
index 29e9024a..b7217ed9 100644
--- a/sources/LLDISPLAY.LCOM
+++ b/sources/LLDISPLAY.LCOM
@@ -1,10 +1,10 @@
-(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED " 5-Sep-2021 08:25:49" ("compiled on " 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LLDISPLAY.;9) " 5-Sep-2021 08:04:36" 
-"COMPILE-FILEd" in "FULL  5-Sep-2021 ..." dated " 5-Sep-2021 08:04:43")
-(FILECREATED " 5-Sep-2021 08:25:49" {DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LLDISPLAY.;9
- 268917 changes to%: (FNS \CREATEDISPLAY) previous date%: " 8-Aug-2021 00:19:22" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LLDISPLAY.;8)
+(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10 FORMAT XCCS)
+(FILECREATED " 8-Aug-2021 00:19:22" ("compiled on " 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LLDISPLAY.;7) " 6-Aug-2021 20:53:08" 
+"COMPILE-FILEd" in "FULL  6-Aug-2021 ..." dated " 6-Aug-2021 20:53:13")
+(FILECREATED " 8-Aug-2021 00:19:22" {DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LLDISPLAY.;7
+ 268927 changes to%: (FNS READBITMAP) previous date%: " 1-Aug-2021 23:41:37" 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LLDISPLAY.;6)
 (RPAQQ LLDISPLAYCOMS ((DECLARE%: DONTCOPY (EXPORT (RECORDS PILOTBBT \DISPLAYDATA DISPLAYSTATE 
 DISPLAYINFO) (MACROS \GETDISPLAYDATA))) (* ; 
 "User-visible records are on ADISPLAY --- must be init'ed here") (INITRECORDS BITMAP PILOTBBT REGION 
@@ -120,18 +120,18 @@ NIL $ldk
 ()
 (RPAQ CursorBitMap (\CreateCursorBitMap))
 BITBLT :D8
-(L (11 CLIPPINGREGION 10 TEXTURE 9 OPERATION 8 SOURCETYPE 7 HEIGHT 6 WIDTH 5 DESTINATIONBOTTOM 4 DESTINATIONLEFT 3 DESTINATION 2 SOURCEBOTTOM 1 SOURCELEFT 0 SOURCE) F 19 \SCREENBITMAPS) ®D£jb¿E£jb
+(L (11 CLIPPINGREGION 10 TEXTURE 9 OPERATION 8 SOURCETYPE 7 HEIGHT 6 WIDTH 5 DESTINATIONBOTTOM 4 DESTINATIONLEFT 3 DESTINATION 2 SOURCEBOTTOM 1 SOURCELEFT 0 SOURCE) F 19 \SOFTCURSORP F 20 \SOFTCURSORUPP F 21 \CURSORDESTINATION F 22 \SCREENBITMAPS) œD£jb¿E£jb
 ¿Ggð²NCdÃ²¿GCDEFGGG
ghHÉ.É¹GHDEFGGGlIð@@dÃ²]¿A£jb¿B£jb¿@¹AºB»Fµ3@Èb¿Gµ@Èb¿±É@ÈBÙ½dMñ²ì¿M°è@ÈAÙ¼dLñ²É¿L°ÅghÉ0X¢±…A¦HÉ
 b¿B§HÉ
-b¿HÉ¹AHÉØbHÈ"¾dNñ¡¿NºBHÉØbHÈ$_¿dOñ¢¿O»FµNHÈ#JÙb¿Gµ%HÈ%KÙb¿G¥HÉ6b¿Fjñ´	Gjñ³4hHÈ%KÙ_¿dOñ²Ö¿O°ÑHÈ#JÙ_¿dOñ²­¿O°¨CdÃ¢±Ï¿@	¢±ªh__¿`²>`´h@gh
-`ð_²`È_¿`jÍ¿¿@gh_`ð³hO
-W&—O	¿IABCDEFGGGGGJK
O´‚±^¿`OÍ¿±JIABCDEFGGGGGJK
gh_@Cð’±ð@	¢±æC	¢±Õ@dC
-¢±Ê¿h__ _"¿`²>`´h@gh
-`ð_"²`È_ ¿`jÍ¿¿@gh_`ð³hO
-W&—O	¿IABFG
+b¿HÉ¹AHÉØbHÈ"¾dNñ¡¿NºBHÉØbHÈ$_¿dOñ¢¿O»FµNHÈ#JÙb¿Gµ%HÈ%KÙb¿G¥HÉ6b¿Fjñ´	Gjñ³4hHÈ%KÙ_¿dOñ²Ö¿O°ÑHÈ#JÙ_¿dOñ²­¿O°¨CdÃ¢±Æ¿@	¢±¡h__¿W&²8W(´h@gh
+W*ð_²`È_¿`jÍ¿¿@gh_`ð³hO
+W,—O	¿IABCDEFGGGGGJK
O´‚±U¿`OÍ¿±AIABCDEFGGGGGJK
gh_@Cð’±ç@	¢±ÝC	¢±Ì@dC
+¢±Á¿h__ _"¿W&²8W(´h@gh
+W*ð_"²`È_ ¿`jÍ¿¿@gh_`ð³hO
+W,—O	¿IABFG
 _jdFGgg
-¿O"Ÿ¿`O Í¿OjdODEFGGGGG
@	¿OÉ.É_$¿IABODEFGGGGGJKlO$h(893 TOTOPW 886 BKBITBLT 850 \SOFTCURSORUPCURRENT 841 BKBITBLT 818 BITMAPCREATE 806 \TOTOPWDS 795 DSPDESTINATION 777 \GETSTREAM 764 \SOFTCURSORDOWN 730 DSPDESTINATION 725 \GETSTREAM 685 WOVERLAPP 673 WINDOWP 663 WINDOWP 648 \GETSTREAM 636 \BITBLT.BITMAP 597 \SOFTCURSORUPCURRENT 584 \BITBLT.BITMAP 558 \TOTOPWDS 547 DSPDESTINATION 529 \GETSTREAM 516 \SOFTCURSORDOWN 482 DSPDESTINATION 477 \GETSTREAM 440 WINDOWP 214 \GETSTREAM 61 \GETSTREAM 49 \BLTSHADE.BITMAP)
-(908 IMAGEOPS 901 STREAM 856 \EM.DISPINTERRUPT 835 REPLACE 830 INPUT 784 \TOPWDS 771 OUTPUT 755 \EM.DISPINTERRUPT 745 \EM.DISPINTERRUPT 735 \CURSORDESTINATION 719 OUTPUT 710 \SOFTCURSORUPP 703 \SOFTCURSORP 642 OUTPUT 603 \EM.DISPINTERRUPT 536 \TOPWDS 523 OUTPUT 507 \EM.DISPINTERRUPT 497 \EM.DISPINTERRUPT 487 \CURSORDESTINATION 471 OUTPUT 462 \SOFTCURSORUPP 455 \SOFTCURSORP 429 BITMAP 404 \DISPLAYDATA 380 \DISPLAYDATA 345 \DISPLAYDATA 328 \DISPLAYDATA 305 \DISPLAYDATA 294 \DISPLAYDATA 277 \DISPLAYDATA 266 \DISPLAYDATA 256 \DISPLAYDATA 226 \DISPLAYDATA 219 STREAM 208 OUTPUT 189 BITMAP 169 BITMAP 155 BITMAP 140 BITMAP 110 BITMAP 77 IMAGEOPS 70 STREAM 55 OUTPUT 28 BITMAP 18 TEXTURE)
+¿O"Ÿ¿`O Í¿OjdODEFGGGGG
@	¿OÉ.É_$¿IABODEFGGGGGJKlO$h(875 TOTOPW 868 BKBITBLT 832 \SOFTCURSORUPCURRENT 823 BKBITBLT 800 BITMAPCREATE 788 \TOTOPWDS 777 DSPDESTINATION 759 \GETSTREAM 746 \SOFTCURSORDOWN 715 DSPDESTINATION 710 \GETSTREAM 676 WOVERLAPP 664 WINDOWP 654 WINDOWP 639 \GETSTREAM 627 \BITBLT.BITMAP 588 \SOFTCURSORUPCURRENT 575 \BITBLT.BITMAP 549 \TOTOPWDS 538 DSPDESTINATION 520 \GETSTREAM 507 \SOFTCURSORDOWN 476 DSPDESTINATION 471 \GETSTREAM 440 WINDOWP 214 \GETSTREAM 61 \GETSTREAM 49 \BLTSHADE.BITMAP)
+(890 IMAGEOPS 883 STREAM 838 \EM.DISPINTERRUPT 817 REPLACE 812 INPUT 766 \TOPWDS 753 OUTPUT 737 \EM.DISPINTERRUPT 727 \EM.DISPINTERRUPT 704 OUTPUT 633 OUTPUT 594 \EM.DISPINTERRUPT 527 \TOPWDS 514 OUTPUT 498 \EM.DISPINTERRUPT 488 \EM.DISPINTERRUPT 465 OUTPUT 429 BITMAP 404 \DISPLAYDATA 380 \DISPLAYDATA 345 \DISPLAYDATA 328 \DISPLAYDATA 305 \DISPLAYDATA 294 \DISPLAYDATA 277 \DISPLAYDATA 266 \DISPLAYDATA 256 \DISPLAYDATA 226 \DISPLAYDATA 219 STREAM 208 OUTPUT 189 BITMAP 169 BITMAP 155 BITMAP 140 BITMAP 110 BITMAP 77 IMAGEOPS 70 STREAM 55 OUTPUT 28 BITMAP 18 TEXTURE)
 ()
 BLTSHADE :D8
 (L (7 CLIPPINGREGION 6 OPERATION 5 HEIGHT 4 WIDTH 3 DESTINATIONBOTTOM 2 DESTINATIONLEFT 1 DESTINATION 0 TEXTURE)) [AdÃ²¿@ABµjCµjDEFG
ghHÉ.É¹@HBµjCµjDEFd¥H
@@ -168,7 +168,7 @@ BITMAPCREATE :D8
 NIL
 ( 102 "bits in BITMAP -- too big" 88 131066)
 BITMAPBIT :D8
-(P 15 SOFTCURSORUP P 14 DISPINTERRUPT P 13 DD P 12 TY P 11 TX P 6 bitmapbase P 5 oldword P 4 HEIGHT P 3 OLDVALUE P 2 WORDX P 1 BITX P 0 NBITS I 3 NEWVALUE I 2 Y I 1 X I 0 BITMAP F 16 \SCREENBITMAPS) ò°
+(P 15 SOFTCURSORUP P 14 DISPINTERRUPT P 13 DD P 12 TY P 11 TX P 6 bitmapbase P 5 oldword P 4 HEIGHT P 3 OLDVALUE P 2 WORDX P 1 BITX P 0 NBITS I 3 NEWVALUE I 2 Y I 1 X I 0 BITMAP F 16 \SOFTCURSORP F 17 \SOFTCURSORUPP F 18 \CURSORDESTINATION F 19 \SCREENBITMAPS) é°
 @Ã¢±+@ÈXjAñ’±A@Èýñ¢±üjBñ’±õB@È\ýñ¢±åHkð²[Cdjð²¿@ÉABkLkÙ@Èh8³@ÉABlLkÙ@Èh8@ÉABlLkÙ@Èh8@É@ÈBÙkÙ@ÈÚÐ^C²jCñ¯C@È	ñ–C	¿Hdkð²c¿AââââZNJÐÈ]`Alå_¿_ÉOl
 OØÐÈYCµMIåjð² jjð�NJÐMImÿæåÍ¿°èNJÐMIäÍ¿°Ýklð²mAlçYdââââZNJÐÈ]d`Alå_¿_ÉOl
 OØÐÈå[C²NJÐMKæCllAlåÙÚ
@@ -177,27 +177,27 @@ BITMAPBIT :D8
 [C—NACKoH
 0
@ghbÉ0_AO
 _BO
-_O¢±þºd¢±þµ `²3`´h@
-`ð_²`È_¿`jÍ¿¿@`ð³h@
-W –@	¿OÉOOCû_¿Ož¿`OÍO(739 \SOFTCURSORUPCURRENT 711 \TOTOPWDS 701 DSPDESTINATION 684 \SOFTCURSORDOWN 650 DSPDESTINATION 613 \DSPCLIPTRANSFORMY 603 \DSPCLIPTRANSFORMX 579 \GETSTREAM 563 ERROR 550 \PUTBASE24 539 \GETBASE24 435 LRSH 415 LLSH 382 \GETBASEFIXP 275 \GETBASEFIXP 220 \ILLEGAL.ARG 212 MAXIMUMCOLOR)
-(745 \EM.DISPINTERRUPT 719 \DISPLAYDATA 691 \TOPWDS 675 \EM.DISPINTERRUPT 665 \EM.DISPINTERRUPT 655 \CURSORDESTINATION 641 \SOFTCURSORUPP 634 \SOFTCURSORP 593 \DISPLAYDATA 586 STREAM 573 OUTPUT 375 ARRAYP 366 ARRAYP 352 4BITMASKARRAY 268 ARRAYP 259 ARRAYP 245 BITMASKARRAY 205 BITMAP 186 BITMAP 174 BITMAP 166 BITMAP 154 BITMAP 139 BITMAP 127 BITMAP 112 BITMAP 98 BITMAP 84 BITMAP 57 BITMAP 35 BITMAP 18 BITMAP 8 BITMAP)
+_O¢±þºd¢±þµ W ²-W"´h@
+W$ð_²`È_¿`jÍ¿¿@`ð³h@
+W&–@	¿OÉOOCû_¿Ož¿`OÍO(730 \SOFTCURSORUPCURRENT 702 \TOTOPWDS 692 DSPDESTINATION 675 \SOFTCURSORDOWN 644 DSPDESTINATION 613 \DSPCLIPTRANSFORMY 603 \DSPCLIPTRANSFORMX 579 \GETSTREAM 563 ERROR 550 \PUTBASE24 539 \GETBASE24 435 LRSH 415 LLSH 382 \GETBASEFIXP 275 \GETBASEFIXP 220 \ILLEGAL.ARG 212 MAXIMUMCOLOR)
+(736 \EM.DISPINTERRUPT 710 \DISPLAYDATA 682 \TOPWDS 666 \EM.DISPINTERRUPT 656 \EM.DISPINTERRUPT 593 \DISPLAYDATA 586 STREAM 573 OUTPUT 375 ARRAYP 366 ARRAYP 352 4BITMASKARRAY 268 ARRAYP 259 ARRAYP 245 BITMASKARRAY 205 BITMAP 186 BITMAP 174 BITMAP 166 BITMAP 154 BITMAP 139 BITMAP 127 BITMAP 112 BITMAP 98 BITMAP 84 BITMAP 57 BITMAP 35 BITMAP 18 BITMAP 8 BITMAP)
 ( 557 "unknown bits per pixel size.")
 BLTCHAR :D8
 (I 1 DISPLAYSTREAM I 0 CHARCODE) 2@d—¿j@ñ¡@…@	AdghÉ0(47 \BLTCHAR 30 \GETSTREAM 17 \ILLEGAL.ARG)
 (42 \DISPLAYDATA 35 STREAM 24 OUTPUT)
 ()
 \BLTCHAR :D8
-(P 0 A0276 I 2 DISPLAYDATA I 1 DISPLAYSTREAM I 0 CHARCODE) (AghbÉ.ÉZ@ABlH(11 \GETSTREAM)
+(P 0 A0140 I 2 DISPLAYDATA I 1 DISPLAYSTREAM I 0 CHARCODE) (AghbÉ.ÉZ@ABlH(11 \GETSTREAM)
 (25 IMAGEOPS 18 STREAM 5 OUTPUT)
 ()
 \MEDW.BLTCHAR :D8
-(L (2 DISPLAYDATA 1 DISPLAYSTREAM 0 CHARCODE) F 7 \SCREENBITMAPS) p@lÿå\¿BdÉ>@ãð¨@ã
+(L (2 DISPLAYDATA 1 DISPLAYSTREAM 0 CHARCODE) F 7 \SOFTCURSORP F 8 \SOFTCURSORUPP F 9 \CURSORDESTINATION F 10 \SCREENBITMAPS) 	p@lÿå\¿BdÉ>@ãð¨@ã
 ¿BÉ—@A
 BÉ[BÉ0LÐÈØYBÉñŸKBÉñ™l
A
-°ÃBKBÉLÐÈØ¿BÉ¸KHØ»IHØYBÈ#Xñ‘H¹KBÈ"Xñ‘K€HºIJñ´‚±™BÉ*XÈ	jð’±‡h]¾`²0`´hA
-`ð^²`È½`jÍ¿¿A`ð³hA
-W–A	¿HJÍ¿HIJÙÍ¿HBÉLÐÈJØKÙÍ¿Hjv¿N�¿`MÍih(261 \SOFTCURSORUPCURRENT 222 \TOTOPWDS 212 DSPDESTINATION 195 \SOFTCURSORDOWN 164 DSPDESTINATION 68 \DSPPRINTCR/LF 35 \SLOWBLTCHAR 23 \CHANGECHARSET.DISPLAY)
-(267 \EM.DISPINTERRUPT 202 \TOPWDS 186 \EM.DISPINTERRUPT 178 \EM.DISPINTERRUPT 169 \CURSORDESTINATION 155 \SOFTCURSORUPP 148 \SOFTCURSORP 132 PILOTBBT)
+°ÃBKBÉLÐÈØ¿BÉ¸KHØ»IHØYBÈ#Xñ‘H¹KBÈ"Xñ‘K€HºIJñ´‚±ŽBÉ*XÈ	jð³}h]¾W²*W´hA
+Wð^²`È½`jÍ¿¿A`ð³hA
+W–A	¿HJÍ¿HIJÙÍ¿HBÉLÐÈJØKÙÍ¿Hjv¿N�¿`MÍih(250 \SOFTCURSORUPCURRENT 211 \TOTOPWDS 201 DSPDESTINATION 184 \SOFTCURSORDOWN 156 DSPDESTINATION 68 \DSPPRINTCR/LF 35 \SLOWBLTCHAR 23 \CHANGECHARSET.DISPLAY)
+(256 \EM.DISPINTERRUPT 191 \TOPWDS 175 \EM.DISPINTERRUPT 167 \EM.DISPINTERRUPT 132 PILOTBBT)
 ()
 \CHANGECHARSET.DISPLAY :D8
 (P 4 \INTERRUPTABLE P 2 BM P 1 CSINFO P 0 PBT I 1 CHARSET I 0 DISPLAYDATA) Š@É*@ÉÉAàÐÉµA@Éh"@IÉ¿@IÉ¿@IÉ0¿@A>¿IÉºHJÈàààànÿÿåÍ¿@È'IÈ
@@ -215,18 +215,17 @@ BLTCHAR :D8
 (75 ^ 52 %# 16 SI::RESETUNWIND)
 ( 81 "" 58 "")
 \SLOWBLTCHAR :D8
-(P 16 CSINFO P 15 HEIGHTMOVED P 14 YPOS P 13 SOFTCURSORUP P 12 DISPINTERRUPT P 11 SOURCEBIT P 10 WIDTH P 9 DESTBIT P 8 PILOTBBT P 7 CURX P 6 RIGHT P 5 LEFT P 4 NEWX P 2 DD P 1 CHAR8CODE P 0 ROTATION I 1 DISPLAYSTREAM I 0 CHARCODE F 17 \SCREENBITMAPS) T@@lÿåYAÉ0ZdÉÈXdjð¢±‡€JÉ_JÉIÐÈØ\JÉñ²l
A
-¿JÉ_JÉIÐÈØ¼JL¿OJÉØ_¿JÈ"dOñ¢¿O½JÈ#LJÉØ»dKñ‘¿K¾JÉ*_¿NMñ¢±OÈ	jð’±
-M_¿NMÙ_¿JÉIÐÈMØOÙ_¿JÉÈdkð³adlð²¿Oàà_¿Oàà_¿Oàà_°Ddlð²¿Oààà_¿Oààà_¿Oààà_°$lð²lOÚ_¿lOÚ_¿lOÚ_„¿ 
`²3`´hA
-`ð_²`È_¿`jÍ¿¿A`ð³hA
-W"–A	¿OOÍ¿OOÍ¿OOÍ¿Ojv¿OŸ¿`OÍ¿±·0JÉ_¿JÉIÐÈ_¿JÉÉ@ãàÐÉµ
@ãJÉh_ ¿HdlZð²;¿AOOØ
+(P 16 CSINFO P 15 HEIGHTMOVED P 14 YPOS P 13 SOFTCURSORUP P 12 DISPINTERRUPT P 11 SOURCEBIT P 10 WIDTH P 9 DESTBIT P 8 PILOTBBT P 7 CURX P 6 RIGHT P 5 LEFT P 4 NEWX P 2 DD P 1 CHAR8CODE P 0 ROTATION I 1 DISPLAYSTREAM I 0 CHARCODE F 17 \SOFTCURSORP F 18 \SOFTCURSORUPP F 19 \CURSORDESTINATION F 20 \SCREENBITMAPS) K@@lÿåYAÉ0ZdÉÈXdjð¢±~€JÉ_JÉIÐÈØ\JÉñ²l
A
+¿JÉ_JÉIÐÈØ¼JL¿OJÉØ_¿JÈ"dOñ¢¿O½JÈ#LJÉØ»dKñ‘¿K¾JÉ*_¿NMñ¢±OÈ	jð’±M_¿NMÙ_¿JÉIÐÈMØOÙ_¿JÉÈdkð³adlð²¿Oàà_¿Oàà_¿Oàà_°Ddlð²¿Oààà_¿Oààà_¿Oààà_°$lð²lOÚ_¿lOÚ_¿lOÚ_„¿ 
W"²-W$´hA
+W&ð_²`È_¿`jÍ¿¿A`ð³hA
+W(–A	¿OOÍ¿OOÍ¿OOÍ¿Ojv¿OŸ¿`OÍ¿±·0JÉ_¿JÉIÐÈ_¿JÉÉ@ãàÐÉµ
@ãJÉh_ ¿HdlZð²;¿AOOØ
 ¿O ÉjJÉIÐÈAJÉO È
 ÙkØOO È
 O ÈØO
°Hnð²8AOOÙ
 ¿O ÉjJÉIÐÈAJÉO ÈÙJÉO È
-O ÈØO
‰o	h(592 ERROR 581 BKBITBLT 539 \DSPYPOSITION.DISPLAY 520 BKBITBLT 477 \DSPYPOSITION.DISPLAY 455 \CREATECHARSET 396 \SOFTCURSORUPCURRENT 361 \TOTOPWDS 351 DSPDESTINATION 334 \SOFTCURSORDOWN 300 DSPDESTINATION 275 SHOULDNT 55 \DSPPRINTCR/LF)
-(402 \EM.DISPINTERRUPT 341 \TOPWDS 325 \EM.DISPINTERRUPT 315 \EM.DISPINTERRUPT 305 \CURSORDESTINATION 291 \SOFTCURSORUPP 284 \SOFTCURSORP 111 \DISPLAYDATA 83 \DISPLAYDATA)
-( 587 "Not implemented to rotate by other than 0, 90 or 270")
+O ÈØO
‰o	h(583 ERROR 572 BKBITBLT 530 \DSPYPOSITION.DISPLAY 511 BKBITBLT 468 \DSPYPOSITION.DISPLAY 446 \CREATECHARSET 387 \SOFTCURSORUPCURRENT 352 \TOTOPWDS 342 DSPDESTINATION 325 \SOFTCURSORDOWN 294 DSPDESTINATION 275 SHOULDNT 55 \DSPPRINTCR/LF)
+(393 \EM.DISPINTERRUPT 332 \TOPWDS 316 \EM.DISPINTERRUPT 306 \EM.DISPINTERRUPT 111 \DISPLAYDATA 83 \DISPLAYDATA)
+( 578 "Not implemented to rotate by other than 0, 90 or 270")
 TEXTUREP :D8
 (I 0 OBJECT) @d3 ³Ã´@Èkð´@NIL
 (18 BITMAP 10 BITMAP)
@@ -274,7 +273,7 @@ OPPOSITESHADE :D8
 NIL
 ()
 \MEDW.BITBLT :D8
-(P 9 A0279 P 8 A0278 P 7 SOURCEBOTTOMTRANSFORMED P 6 SOURCELEFTTRANSFORMED P 3 SRCWIN P 2 A0277 P 1 DD P 0 DSTWIN I 11 CLIPPINGREGION I 10 TEXTURE I 9 OPERATION I 8 SOURCETYPE I 7 HEIGHT I 6 WIDTH I 5 DESTINATIONBOTTOM I 4 DESTINATIONLEFT I 3 DESTINATION I 2 SOURCEBOTTOM I 1 SOURCELEFT I 0 SOURCE F 10 \SCREENBITMAPS) 
+(P 9 A0143 P 8 A0142 P 7 SOURCEBOTTOMTRANSFORMED P 6 SOURCELEFTTRANSFORMED P 3 SRCWIN P 2 A0141 P 1 DD P 0 DSTWIN I 11 CLIPPINGREGION I 10 TEXTURE I 9 OPERATION I 8 SOURCETYPE I 7 HEIGHT I 6 WIDTH I 5 DESTINATIONBOTTOM I 4 DESTINATIONLEFT I 3 DESTINATION I 2 SOURCEBOTTOM I 1 SOURCELEFT I 0 SOURCE F 10 \SCREENBITMAPS) 
 @	³C	ªo	¿@Ã²Z@²WCi
 CghÉ0HÉ2ÉHºHÉ2@ABCDEFGGGGGABlJ±–CÃ´‚±¯C´‚±¨@i
 !@ghÉ0AIÉØµABIÉØµBKÉ2ÉJ_¿KÉ2IÉNOCDEFGGGGGNIÈ"¼dLñ¡¿LOIÈ$½dMñ¡¿MlO±Þ@
@@ -313,28 +312,28 @@ BITMAPBIT.EXPANDER :D8
 NIL
 ( 32 (OPCODES MISC4 6))
 \BITBLT.DISPLAY :D8
-(L (11 CLIPPINGREGION 10 TEXTURE 9 OPERATION 8 SOURCETYPE 7 HEIGHT 6 WIDTH 5 DESTINATIONBOTTOM 4 DESTINATIONLEFT 3 DESTINATION 2 SOURCEBOTTOM 1 SOURCELEFT 0 SOURCEBITMAP) F 48 \SCREENBITMAPS) “0ðð@dÃ²[¿A£jb¿B£jb¿AºB»Fµ3@Èb¿Gµ@Èb¿±Í@ÈBÙ½dMñ²ì¿M°è@ÈAÙ¼dLñ²É¿L°ÅghÉ0X¢±‰@¹A¦HÉ
+(L (11 CLIPPINGREGION 10 TEXTURE 9 OPERATION 8 SOURCETYPE 7 HEIGHT 6 WIDTH 5 DESTINATIONBOTTOM 4 DESTINATIONLEFT 3 DESTINATION 2 SOURCEBOTTOM 1 SOURCELEFT 0 SOURCEBITMAP) F 48 \SCREENBITMAPS F 49 \SOFTCURSORP F 50 \SOFTCURSORUPP F 51 \CURSORDESTINATION) x0ðð@dÃ²[¿A£jb¿B£jb¿AºB»Fµ3@Èb¿Gµ@Èb¿±Í@ÈBÙ½dMñ²ì¿M°è@ÈAÙ¼dLñ²É¿L°ÅghÉ0X¢±‰@¹A¦HÉ
 b¿B§HÉ
-b¿HÉb¿AHÉØbHÈ"¾dNñ¡¿NºBHÉØbHÈ$_¿dOñ¢¿O»FµNHÈ#JÙb¿Gµ%HÈ%KÙb¿G¥HÉ6b¿Fjñ´	Gjñ³4hHÈ%KÙ_¿dOñ²Ö¿O°ÑHÈ#JÙ_¿dOñ²­¿O°¨CdÃ¢±Ï¿I	¢±ªh__¿`²>`´h@gh
-`ð_²`È_¿`jÍ¿¿@gh_`ð³hO
-W`—O	¿@ABCDEFGGGGGJK
O´‚± ¿`OÍ¿±Œ@ABCDEFGGGGGJK
gh_IdCð’±"	³I¢±,Id	¢±¿C	¢±øIdC
-¢±í¿I	ÉÉ.C	ÉÉ.ð¢±Èh__ _"¿`²>`´hIgh
-`ð_"²`È_ ¿`jÍ¿¿Igh_`ð³hO
+b¿HÉb¿AHÉØbHÈ"¾dNñ¡¿NºBHÉØbHÈ$_¿dOñ¢¿O»FµNHÈ#JÙb¿Gµ%HÈ%KÙb¿G¥HÉ6b¿Fjñ´	Gjñ³4hHÈ%KÙ_¿dOñ²Ö¿O°ÑHÈ#JÙ_¿dOñ²­¿O°¨CdÃ¢±Æ¿I	¢±¡h__¿Wb²8Wd´h@gh
+Wfð_²`È_¿`jÍ¿¿@gh_`ð³hO
+W`—O	¿@ABCDEFGGGGGJK
O´‚±Ž¿`OÍ¿±z@ABCDEFGGGGGJK
gh_IdCð’±	³I¢±#Id	¢±¿C	¢±ïIdC
+¢±ä¿I	ÉÉ.C	ÉÉ.ð¢±¿h__ _"¿Wb²8Wd´hIgh
+Wfð_"²`È_ ¿`jÍ¿¿Igh_`ð³hO
 W`—O	¿@ABFG
 _jdFGgg
 ¿O"Ÿ¿`O Í¿OjdODEFGGGGG
I	¿I²hI
 hO
-ð¢±ü°)OÉ0_JÉ_L¿O`ð³hO
+ð¢±ó°)OÉ0_JÉ_L¿O`ð³hO
 W`—O	¿DOJÉØb¿EOJÉØb
-¿OJÈ"_B¿OJÈ$_F¿OJÈ#_H¿OJÈ%_D¿G²nOBGOJÉØ_(¿dO(ñ¢¿O(_B¿OFGOJÉØ_*¿dO*ñ¢¿O*_F¿OHO(GØ_$¿dO$ñ’¿O$_H¿ODO*GØ_&¿dO&ñ’¿O&_D¿OLÈ_N¿@È_PONð³2OPkð²@jON	ON°ONkð¢±Ñ@ON	
-b¿DdOBñ¢¿OB_B¿EdOFñ¢¿OF_F¿F�DFØdOHñ’¿OH_H¿GžEGØdODñ’¿OD_D¿DAÙ_>¿EBÙ_@¿JOBO>Ù_,¿dO,ñ¢¿O,djñ¡¿j_B¿KOFO@Ù_.¿dO.ñ¢¿O.djñ¡¿j_F¿@ÈOHO>Ù_0¿dO0ñ’¿O0JFØ_2¿dO2ñ’¿O2_H¿@ÈODO@Ù_4¿dO4ñ’¿O4KGØ_6¿dO6ñ’¿O6_D¿OHOBñ¢±õODOFñ¢±ìG¦OJÉb¿ON	_R¿Gdgð²~¿Gd²¿ONkð™G	b�G£OR°JGd3 —ORåORæ°<Ã²G`µld
+¿OJÈ"_B¿OJÈ$_F¿OJÈ#_H¿OJÈ%_D¿G²nOBGOJÉØ_(¿dO(ñ¢¿O(_B¿OFGOJÉØ_*¿dO*ñ¢¿O*_F¿OHO(GØ_$¿dO$ñ’¿O$_H¿ODO*GØ_&¿dO&ñ’¿O&_D¿OLÈ_N¿@È_PONð³2OPkð²@jON	ON°ONkð¢±È@ON	
+b¿DdOBñ¢¿OB_B¿EdOFñ¢¿OF_F¿F�DFØdOHñ’¿OH_H¿GžEGØdODñ’¿OD_D¿DAÙ_>¿EBÙ_@¿JOBO>Ù_,¿dO,ñ¢¿O,djñ¡¿j_B¿KOFO@Ù_.¿dO.ñ¢¿O.djñ¡¿j_F¿@ÈOHO>Ù_0¿dO0ñ’¿O0JFØ_2¿dO2ñ’¿O2_H¿@ÈODO@Ù_4¿dO4ñ’¿O4KGØ_6¿dO6ñ’¿O6_D¿OHOBñ¢±ìODOFñ¢±ãG¦OJÉb¿ON	_R¿Gdgð²~¿Gd²¿ONkð™G	b�G£OR°JGd3 —ORåORæ°<Ã²G`µld
 
 °ONkð©GON
 †G	b¿ONdkð³)¿GON
-°gð²ONdkðœ¿G	b¿ONkð³ONOBÚ_B¿ONOHÚ_H¿ONO>Ú_>¿h_8_:¿`²4`´hO
-`ð_:²`È_8¿`jÍ¿¿O`ð³hO
-W`—O	¿`/ODOFÙ_T¿OHOBÙ_V¿OLÈODO@ØÙ_X¿OBO>Ø_Z¿@ÈODÙ_\¿OB_^¿`OVÍ¿`OTÍ	¿Ggð²"`@O^O\OLOZOXOVOTGG
° `@O^O\OLOZOXOTGGG
O:Ÿ¿`O8Í¿°.OÉ.É_<¿@ABODEFGGGGGJKlO<h(1877 \SOFTCURSORUPCURRENT 1868 \BITBLTSUB 1836 \BITBLT.MERGE 1701 \TOTOPWDS 1690 DSPDESTINATION 1671 \SOFTCURSORDOWN 1637 DSPDESTINATION 1576 INSURE.B&W.TEXTURE 1552 COLORTEXTUREFROMCOLOR# 1532 \ILLEGAL.ARG 1524 COLORNUMBERP 1508 INVERT.TEXTURE.BITMAP 1498 BITMAPCREATE 1450 INSURE.B&W.TEXTURE 1416 MAXIMUMSHADE 1183 UNCOLORIZEBITMAP 1178 COLORMAP 1160 COLORIZEBITMAP 1153 MAXIMUMCOLOR 927 \TOTOPWDS 916 DSPDESTINATION 869 DSPDESTINATION 861 DSPDESTINATION 850 TOTOPW 843 BKBITBLT 807 \SOFTCURSORUPCURRENT 798 BKBITBLT 775 BITMAPCREATE 763 \TOTOPWDS 752 DSPDESTINATION 734 \GETSTREAM 721 \SOFTCURSORDOWN 687 DSPDESTINATION 682 \GETSTREAM 633 \INSUREWINDOW 618 \INSUREWINDOW 607 WOVERLAPP 595 WINDOWP 584 WFROMDS 570 WINDOWP 555 \GETSTREAM 543 \BITBLT.BITMAP 504 \SOFTCURSORUPCURRENT 491 \BITBLT.BITMAP 465 \TOTOPWDS 454 DSPDESTINATION 436 \GETSTREAM 423 \SOFTCURSORDOWN 389 DSPDESTINATION 384 \GETSTREAM 347 WINDOWP 117 \GETSTREAM)
-(1905 IMAGEOPS 1898 STREAM 1883 \EM.DISPINTERRUPT 1843 \SYSPILOTBBT 1811 \SYSPILOTBBT 1803 MERGE 1791 PILOTBBT 1786 \SYSPILOTBBT 1776 PILOTBBT 1771 \SYSPILOTBBT 1753 BITMAP 1728 BITMAP 1679 \TOPWDS 1662 \EM.DISPINTERRUPT 1652 \EM.DISPINTERRUPT 1642 \CURSORDESTINATION 1627 \SOFTCURSORUPP 1620 \SOFTCURSORP 1559 TEXTURE 1503 \BBSCRATCHTEXTURE 1488 \BBSCRATCHTEXTURE 1479 BITMAP 1427 MERGE 1123 BITMAP 1050 \DISPLAYDATA 1020 \DISPLAYDATA 999 \DISPLAYDATA 987 \DISPLAYDATA 975 \DISPLAYDATA 963 \DISPLAYDATA 950 \DISPLAYDATA 936 \DISPLAYDATA 905 \TOPWDS 893 \DISPLAYDATA 884 STREAM 813 \EM.DISPINTERRUPT 792 REPLACE 787 INPUT 741 \TOPWDS 728 OUTPUT 712 \EM.DISPINTERRUPT 702 \EM.DISPINTERRUPT 692 \CURSORDESTINATION 676 OUTPUT 667 \SOFTCURSORUPP 660 \SOFTCURSORP 640 STREAM 625 STREAM 549 OUTPUT 510 \EM.DISPINTERRUPT 443 \TOPWDS 430 OUTPUT 414 \EM.DISPINTERRUPT 404 \EM.DISPINTERRUPT 394 \CURSORDESTINATION 378 OUTPUT 369 \SOFTCURSORUPP 362 \SOFTCURSORP 336 BITMAP 311 \DISPLAYDATA 287 \DISPLAYDATA 252 \DISPLAYDATA 235 \DISPLAYDATA 212 \DISPLAYDATA 201 \DISPLAYDATA 184 \DISPLAYDATA 173 \DISPLAYDATA 161 \DISPLAYDATA 129 \DISPLAYDATA 122 STREAM 111 OUTPUT 92 BITMAP 72 BITMAP 58 BITMAP 43 BITMAP 15 BITMAP)
+°gð²ONdkðœ¿G	b¿ONkð³ONOBÚ_B¿ONOHÚ_H¿ONO>Ú_>¿h_8_:¿Wb².Wd´
hO
+Wfð_:²`È_8¿`jÍ¿¿O`ð³hO
+W`—O	¿`/ODOFÙ_T¿OHOBÙ_V¿OLÈODO@ØÙ_X¿OBO>Ø_Z¿@ÈODÙ_\¿OB_^¿`OVÍ¿`OTÍ	¿Ggð²"`@O^O\OLOZOXOVOTGG
° `@O^O\OLOZOXOTGGG
O:Ÿ¿`O8Í¿°.OÉ.É_<¿@ABODEFGGGGGJKlO<h(1850 \SOFTCURSORUPCURRENT 1841 \BITBLTSUB 1809 \BITBLT.MERGE 1674 \TOTOPWDS 1663 DSPDESTINATION 1644 \SOFTCURSORDOWN 1613 DSPDESTINATION 1558 INSURE.B&W.TEXTURE 1534 COLORTEXTUREFROMCOLOR# 1514 \ILLEGAL.ARG 1506 COLORNUMBERP 1490 INVERT.TEXTURE.BITMAP 1480 BITMAPCREATE 1432 INSURE.B&W.TEXTURE 1398 MAXIMUMSHADE 1165 UNCOLORIZEBITMAP 1160 COLORMAP 1142 COLORIZEBITMAP 1135 MAXIMUMCOLOR 909 \TOTOPWDS 898 DSPDESTINATION 851 DSPDESTINATION 843 DSPDESTINATION 832 TOTOPW 825 BKBITBLT 789 \SOFTCURSORUPCURRENT 780 BKBITBLT 757 BITMAPCREATE 745 \TOTOPWDS 734 DSPDESTINATION 716 \GETSTREAM 703 \SOFTCURSORDOWN 672 DSPDESTINATION 667 \GETSTREAM 624 \INSUREWINDOW 609 \INSUREWINDOW 598 WOVERLAPP 586 WINDOWP 575 WFROMDS 561 WINDOWP 546 \GETSTREAM 534 \BITBLT.BITMAP 495 \SOFTCURSORUPCURRENT 482 \BITBLT.BITMAP 456 \TOTOPWDS 445 DSPDESTINATION 427 \GETSTREAM 414 \SOFTCURSORDOWN 383 DSPDESTINATION 378 \GETSTREAM 347 WINDOWP 117 \GETSTREAM)
+(1878 IMAGEOPS 1871 STREAM 1856 \EM.DISPINTERRUPT 1816 \SYSPILOTBBT 1784 \SYSPILOTBBT 1776 MERGE 1764 PILOTBBT 1759 \SYSPILOTBBT 1749 PILOTBBT 1744 \SYSPILOTBBT 1726 BITMAP 1701 BITMAP 1652 \TOPWDS 1635 \EM.DISPINTERRUPT 1625 \EM.DISPINTERRUPT 1541 TEXTURE 1485 \BBSCRATCHTEXTURE 1470 \BBSCRATCHTEXTURE 1461 BITMAP 1409 MERGE 1105 BITMAP 1032 \DISPLAYDATA 1002 \DISPLAYDATA 981 \DISPLAYDATA 969 \DISPLAYDATA 957 \DISPLAYDATA 945 \DISPLAYDATA 932 \DISPLAYDATA 918 \DISPLAYDATA 887 \TOPWDS 875 \DISPLAYDATA 866 STREAM 795 \EM.DISPINTERRUPT 774 REPLACE 769 INPUT 723 \TOPWDS 710 OUTPUT 694 \EM.DISPINTERRUPT 684 \EM.DISPINTERRUPT 661 OUTPUT 631 STREAM 616 STREAM 540 OUTPUT 501 \EM.DISPINTERRUPT 434 \TOPWDS 421 OUTPUT 405 \EM.DISPINTERRUPT 395 \EM.DISPINTERRUPT 372 OUTPUT 336 BITMAP 311 \DISPLAYDATA 287 \DISPLAYDATA 252 \DISPLAYDATA 235 \DISPLAYDATA 212 \DISPLAYDATA 201 \DISPLAYDATA 184 \DISPLAYDATA 173 \DISPLAYDATA 161 \DISPLAYDATA 129 \DISPLAYDATA 122 STREAM 111 OUTPUT 92 BITMAP 72 BITMAP 58 BITMAP 43 BITMAP 15 BITMAP)
 ()
 \BITBLT.BITMAP :D8
 (L (13 CLIPPEDSOURCEBOTTOM 12 CLIPPEDSOURCELEFT 11 CLIPPINGREGION 10 TEXTURE 9 OPERATION 8 SOURCETYPE 7 HEIGHT 6 WIDTH 5 DESTINATIONBOTTOM 4 DESTINATIONLEFT 3 DESTBITMAP 2 SOURCEBOTTOM 1 SOURCELEFT 0 SOURCEBITMAP) P 18 \INTERRUPTABLE) ð0CÈ[CÈ\j]d^@È_CÈZG²QMG_¿dOñ¢¿O½NG_¿dOñ¢¿O¾JGGØ_¿dOñ’¿OºKGGØ_¿dOñ’¿O»DdMñ¡¿M½EdNñ¡¿N¾F™DFØdJñ‘¿JºGšEGØdKñ‘¿K»DAÙXEBÙYGdjñ¡¿jMHÙ_¿dOñ¢¿O½Gdjñ¡¿jNIÙ_¿dOñ¢¿O¾@ÈJHÙ_¿dOñ’¿OGFØ_¿dOñ’¿Oº@ÈKIÙ_ ¿dO ñ’¿O GGØ_"¿dO"ñ’¿O"[JMñ´dNñ¡hGgð²WGµnÿÿ°K3 ›Gnÿÿånÿÿæ°<Lkð©GL
@@ -354,13 +353,13 @@ NIL
 (158 INPUT 136 ERASE 131 TEXTURE 111 REPLACE 106 INPUT 58 ERASE 53 TEXTURE 33 REPLACE 28 INPUT 6 REPLACE)
 ()
 \BLTSHADE.DISPLAY :D8
-(L (7 CLIPPINGREGION 6 OPERATION 5 HEIGHT 4 WIDTH 3 DESTINATIONBOTTOM 2 DESTINATIONLEFT 1 STREAM 0 TEXTURE) F 14 \SCREENBITMAPS) `à
AÉ0]A`ð³hA
+(L (7 CLIPPINGREGION 6 OPERATION 5 HEIGHT 4 WIDTH 3 DESTINATIONBOTTOM 2 DESTINATIONLEFT 1 STREAM 0 TEXTURE) F 14 \SCREENBITMAPS F 15 \SOFTCURSORP F 16 \SOFTCURSORUPP F 17 \CURSORDESTINATION) Wà
AÉ0]A`ð³hA
 W–A	¿BMÉØbCMÉØbMÈ"¸MÈ$ºMÈ#»MÈ%¹G²`HGMÉØ_¿dOñ¢¿O¸JGMÉØ_¿dOñ¢¿OºKOGØ_¿dOñ’¿O»IOGØ_¿dOñ’¿O¹MÉ\dÈ^BdHñ¡¿H¸CdJñ¡¿JºD™BDØdKñ‘¿K»E™CEØdIñ‘¿I¹KHñ´IJñ¡h@	dgð¨dgð²¿@¤MÉ6°RNkð³G@Ni°;dgð§dgðš¿@N	å°(dgð“¿@°gðœNkð¨@N
 µ@	bNkð³NHÚ¸NKÚ»@N
-b¿h__¿`²3`´hA
-`ð_²`È_¿`jÍ¿¿A`ð³hA
-W–A	¿IJÙ_¿`KHÙÍ¿`OÍ	¿`hHhLHLÈIÙOgFµMÉ@NMÉÚMÉ

¿Ož¿`OÍi(594 \SOFTCURSORUPCURRENT 585 \BITBLTSUB 489 \TOTOPWDS 479 DSPDESTINATION 462 \SOFTCURSORDOWN 428 DSPDESTINATION 398 COLORTEXTUREFROMCOLOR# 376 \ILLEGAL.ARG 368 COLORNUMBERP 335 MAXIMUMSHADE 309 COLORNUMBERP 271 TYPENAME 37 \TOTOPWDS 27 DSPDESTINATION)
-(600 \EM.DISPINTERRUPT 577 \DISPLAYDATA 568 \DISPLAYDATA 554 TEXTURE 543 BITMAP 532 \SYSPILOTBBT 522 PILOTBBT 517 \SYSPILOTBBT 506 PILOTBBT 501 \SYSPILOTBBT 469 \TOPWDS 453 \EM.DISPINTERRUPT 443 \EM.DISPINTERRUPT 433 \CURSORDESTINATION 419 \SOFTCURSORUPP 412 \SOFTCURSORP 355 LISTP 344 BITMAP 325 FIXP 317 SMALLP 285 NEW-ATOM 277 LITATOM 211 BITMAP 202 \DISPLAYDATA 138 \DISPLAYDATA 112 \DISPLAYDATA 95 \DISPLAYDATA 86 \DISPLAYDATA 77 \DISPLAYDATA 68 \DISPLAYDATA 57 \DISPLAYDATA 45 \DISPLAYDATA 17 \TOPWDS 8 STREAM)
+b¿h__¿W²-W ´hA
+W"ð_²`È_¿`jÍ¿¿A`ð³hA
+W–A	¿IJÙ_¿`KHÙÍ¿`OÍ	¿`hHhLHLÈIÙOgFµMÉ@NMÉÚMÉ

¿Ož¿`OÍi(585 \SOFTCURSORUPCURRENT 576 \BITBLTSUB 480 \TOTOPWDS 470 DSPDESTINATION 453 \SOFTCURSORDOWN 422 DSPDESTINATION 398 COLORTEXTUREFROMCOLOR# 376 \ILLEGAL.ARG 368 COLORNUMBERP 335 MAXIMUMSHADE 309 COLORNUMBERP 271 TYPENAME 37 \TOTOPWDS 27 DSPDESTINATION)
+(591 \EM.DISPINTERRUPT 568 \DISPLAYDATA 559 \DISPLAYDATA 545 TEXTURE 534 BITMAP 523 \SYSPILOTBBT 513 PILOTBBT 508 \SYSPILOTBBT 497 PILOTBBT 492 \SYSPILOTBBT 460 \TOPWDS 444 \EM.DISPINTERRUPT 434 \EM.DISPINTERRUPT 355 LISTP 344 BITMAP 325 FIXP 317 SMALLP 285 NEW-ATOM 277 LITATOM 211 BITMAP 202 \DISPLAYDATA 138 \DISPLAYDATA 112 \DISPLAYDATA 95 \DISPLAYDATA 86 \DISPLAYDATA 77 \DISPLAYDATA 68 \DISPLAYDATA 57 \DISPLAYDATA 45 \DISPLAYDATA 17 \TOPWDS 8 STREAM)
 ()
 \BLTSHADE.BITMAP :D8
 (L (7 CLIPPINGREGION 6 OPERATION 5 HEIGHT 4 WIDTH 3 DESTINATIONBOTTOM 2 DESTINATIONLEFT 1 DESTINATIONBITMAP 0 TEXTURE) P 10 \INTERRUPTABLE) ú 	jXdYAÈZAÈ[AÈ\dkð‘h¼G²IHG½dMñ¡¿M¸IG¾dNñ¡¿N¹KGGØ_¿dOñ’¿O»JGGØ_¿dOñ’¿OºB£jb¿C£jb¿BdHñ¡¿H¸CdIñ¡¿I¹D™BDØdKñ‘¿K»E™CEØdJñ‘¿JºKHñ´JIñ¡h@	dgð¨dgð²{¿L²q@µ	L	ŽLiµ@	bLµ‚±ù
@@ -421,18 +420,18 @@ Q
 (145 ERASE 138 INVERT 121 INVERT 110 PAINT 99 ERASE 86 \DISPLAYDATA 77 \DISPLAYDATA 53 INVERT 43 INPUT 32 \DISPLAYDATA 23 \DISPLAYDATA 16 STREAM 5 OUTPUT)
 ()
 DSPXOFFSET :D8
-(P 0 A0291 I 1 DISPLAYSTREAM I 0 XOFFSET) 'AghbÉ.É\@AlH(11 \GETSTREAM)
+(P 0 A0155 I 1 DISPLAYSTREAM I 0 XOFFSET) 'AghbÉ.É\@AlH(11 \GETSTREAM)
 (25 IMAGEOPS 18 STREAM 5 OUTPUT)
 ()
 DSPYOFFSET :D8
-(P 0 A0292 I 1 DISPLAYSTREAM I 0 YOFFSET) 'AghbÉ.É^@AlH(11 \GETSTREAM)
+(P 0 A0156 I 1 DISPLAYSTREAM I 0 YOFFSET) 'AghbÉ.É^@AlH(11 \GETSTREAM)
 (25 IMAGEOPS 18 STREAM 5 OUTPUT)
 ()
 DSPCREATE :D8
-(P 0 DSTRM I 0 DESTINATION F 8 DEFAULTFONT) k€@µ
+(P 0 DSTRM I 0 DESTINATION F 8 DEFAULTFONT F 9 \DISPLAYIMAGEOPS F 10 DisplayFDEV) e€@µ
 `b„¿ldjÏ0¿dg(¿djÏ¿`dj6¿dk.¿dk,¿`dkÏ
 ¿¹dI*¿dj¿d`¿odnÿdhºdJ
-¿d`¿dj¿dj¿dj¿dj¿»dK0¿d`.¿d`
+¿d`¿dj¿dj¿dj¿dj¿»dK0¿dW.¿dW
 ¿dnÿÿÍ5¿`¼dLÍ4¿dh2¿dg*¿dg&¿dg$¿`½dMÍ¿dj¿dj¿dkÏ¿djÍ¿dlÏ¿dh¿djÏ¿dg
 ¿XWH
 @H
@@ -440,15 +439,14 @@ DSPCREATE :D8
 `@È_¿^Oó‘N�OH
 gH
 gH
-H(359 DSPOPERATION 348 DSPSOURCETYPE 337 DSPRIGHTMARGIN 306 DSPFONT 298 DSPDESTINATION 291 DSPFONT 281 \SETACCESS)
-(353 REPLACE 342 INPUT 317 BITMAP 311 SCREENWIDTH 276 OUTPUT 225 FILELINELENGTH 217 \STREAM.NOT.OPEN 208 \STREAM.NOT.OPEN 199 \EOSERROR 182 \STREAM.DEFAULT.MAXBUFFERS 167 DisplayFDEV 158 \DISPLAYIMAGEOPS 123 ScreenBitMap 93 SCREENWIDTH 69 |PILOTBBTTYPE#| 48 |\DISPLAYDATATYPE#| 34 \DSPPRINTCHAR 18 BITMAP 10 ScreenBitMap)
+H(353 DSPOPERATION 342 DSPSOURCETYPE 331 DSPRIGHTMARGIN 300 DSPFONT 292 DSPDESTINATION 285 DSPFONT 275 \SETACCESS)
+(347 REPLACE 336 INPUT 311 BITMAP 305 SCREENWIDTH 270 OUTPUT 219 FILELINELENGTH 211 \STREAM.NOT.OPEN 202 \STREAM.NOT.OPEN 193 \EOSERROR 176 \STREAM.DEFAULT.MAXBUFFERS 123 ScreenBitMap 93 SCREENWIDTH 69 |PILOTBBTTYPE#| 48 |\DISPLAYDATATYPE#| 34 \DSPPRINTCHAR 18 BITMAP 10 ScreenBitMap)
 ( 101 -16383)
 DSPDESTINATION :D8
-(P 4 CL::$$TYPE-VALUE P 3 CL::$$TYPE-VALUE P 2 CL::$$TYPE-VALUE P 1 \INTERRUPTABLE P 0 DD I 1 DISPLAYSTREAM I 0 DESTINATION F 5 XDisplayFDEV) 
-AghbÉ0XdÉ@¢±åA@JÃ²@@Èdkð—¿`°5dlð—¿`°(dlð—¿`°lð•`ŽˆJÃ´U
+(P 4 CL::$$TYPE-VALUE P 3 CL::$$TYPE-VALUE P 2 CL::$$TYPE-VALUE P 1 \INTERRUPTABLE P 0 DD I 1 DISPLAYSTREAM I 0 DESTINATION F 5 DisplayFDEV F 6 \4DISPLAYFDEV F 7 XDisplayFDEV F 8 \8DISPLAYFDEV F 9 \24DISPLAYFDEV) ýAghbÉ0XdÉ@¢±ØA@JÃ²2@Èdkð“¿U°,dlð“¿V°#dlð”¿W°lð’W�‰JÃ´W
 ¿A@KÃ²A@Èdkð—¿`°:dlð—¿`°-dlð—¿`° lð–`°ŒKÃ´`.¿H@¿@LÃ—HA
-…LÃ(254 \SFFixDestination 213 SHOULDNT 119 SHOULDNT 14 \GETSTREAM)
-(261 SCREEN 246 BITMAP 227 \XDISPLAYIMAGEOPS 220 SCREEN 206 \24DISPLAYIMAGEOPS 195 \8DISPLAYIMAGEOPS 182 \4DISPLAYIMAGEOPS 169 \DISPLAYIMAGEOPS 157 BITMAP 149 BITMAP 139 STREAM 126 SCREEN 113 \24DISPLAYFDEV 102 \8DISPLAYFDEV 89 \4DISPLAYFDEV 76 DisplayFDEV 64 BITMAP 56 BITMAP 46 STREAM 28 \DISPLAYDATA 21 STREAM 8 OUTPUT)
+…LÃ(241 \SFFixDestination 200 SHOULDNT 105 SHOULDNT 14 \GETSTREAM)
+(248 SCREEN 233 BITMAP 214 \XDISPLAYIMAGEOPS 207 SCREEN 193 \24DISPLAYIMAGEOPS 182 \8DISPLAYIMAGEOPS 169 \4DISPLAYIMAGEOPS 156 \DISPLAYIMAGEOPS 144 BITMAP 136 BITMAP 126 STREAM 112 SCREEN 64 BITMAP 56 BITMAP 46 STREAM 28 \DISPLAYDATA 21 STREAM 8 OUTPUT)
 ()
 DSPTEXTURE :D8
 (I 1 DISPLAYSTREAM I 0 TEXTURE) 	@A
@@ -478,8 +476,8 @@ NIL
 (56 %%SYNONYM-STREAM-DEVICE 26 FONTDESCRIPTOR 5 STREAM)
 ()
 \UPDATE-SYNONYM-STREAM-LINELENGTH-FIELD :D8
-(P 7 SI::%%$$MAP-FIRST-SUBLIST P 6 X P 1 SI::%%$$MAP-FIRST-LIST P 0 NEWLENGTH I 0 DISPLAYSTREAM) o@Èa`ÉYOµI^É	²'NÉ	@ð²NHÍ¿`ÉZµ`É\µO_°Ç[ÉNð”KHÍ¿J°Þ]ÉNð”MHÍ¿L°Ø(41 CL:SYMBOL-VALUE 31 BOUNDP)
-(65 %%TWO-WAY-STREAM-DEVICE 55 %%ECHO-STREAM-DEVICE 10 %%SYNONYM-STREAM-DEVICE)
+(P 7 SI::%%$$MAP-FIRST-SUBLIST P 6 X P 1 SI::%%$$MAP-FIRST-LIST P 0 NEWLENGTH I 0 DISPLAYSTREAM F 8 %%SYNONYM-STREAM-DEVICE F 9 %%ECHO-STREAM-DEVICE F 10 %%TWO-WAY-STREAM-DEVICE) f@ÈaWÉYOµI^É	²!NÉ	@ð²NHÍ¿WÉZµWÉ\µO_°Í[ÉNð”KHÍ¿J°á]ÉNð”MHÍ¿L°Ø(38 CL:SYMBOL-VALUE 28 BOUNDP)
+NIL
 ()
 \SFFixY :D8
 (P 4 BM P 3 CHARTOP P 2 TOP P 1 Y P 0 PBT I 1 CSINFO I 0 DISPLAYDATA) È@É*@É@ÉØ’
@@ -623,20 +621,20 @@ expand-\MAYBE-DRIBBLE-CHAR :D8
 (543 STREAM 537 STREAM 511 STREAM 505 STREAM 400 \MACHINETYPE 378 STREAM 372 STREAM 268 STREAM 262 STREAM 195 STREAM 189 STREAM 113 STREAM 107 STREAM 63 CHARTABLE 53 CHARTABLE 10 \CARET.UP)
 ( 421 ((880 . 2500)))
 \DSPPRINTCR/LF :D8
-(P 15 SOFTCURSORUP P 14 DISPINTERRUPT P 13 KEPTWIDTH P 12 HGHT P 11 DBITMAP P 10 BKGRND P 9 WDTH P 8 LFT P 7 X P 6 CLIPREG P 5 FONT P 4 ROTATION P 3 Y P 2 AMOUNT/BELOW P 1 BTM P 0 DD I 1 DISPLAY-STREAM I 0 CHARCODE F 16 \SCREENBITMAPS F 17 \TERM.OFD) åAdW"ð²¿¿`–A	¿AÉ0QHÉ¢±THÉÈ\jð’±>HÉ
+(P 15 SOFTCURSORUP P 14 DISPINTERRUPT P 13 KEPTWIDTH P 12 HGHT P 11 DBITMAP P 10 BKGRND P 9 WDTH P 8 LFT P 7 X P 6 CLIPREG P 5 FONT P 4 ROTATION P 3 Y P 2 AMOUNT/BELOW P 1 BTM P 0 DD I 1 DISPLAY-STREAM I 0 CHARCODE F 16 \SOFTCURSORP F 17 \SCREENBITMAPS F 18 \SOFTCURSORUPP F 19 \CURSORDESTINATION F 20 \TERM.OFD) ÓAdW(ð²¿¿`–A	¿AÉ0QHÉ¢±KHÉÈ\jð’±5HÉ
 @l
ð²AHÉ2[•AkK¿LdlZð•¿N°nðœNNØmÿØ‰o	A
-¿HÉLdlZð—¿jHÉÙ°nð“HÉ‰o	Ø_¿HÉ¢±®LdlZð²,¿OHÉØHÈ#HÉÈ	ÙÙZjñ°5nð²*HÈ"HÉÈ	ØOHÉØÙZjñ„¢±F`
HÈ"_¿HÉ_¿HÈ$¹HÈ%IÙ_¿HÈ#OÙ_¿HÉ6_¿ `²3`´hA
-`ð_²`È_¿`jÍ¿¿A`ð³hA
-W –A	¿JOñ›hjdOOIO°eLlZð²3OOJØIOOIOJÙ_Ogg
+¿HÉLdlZð—¿jHÉÙ°nð“HÉ‰o	Ø_¿HÉ¢±¥LdlZð²,¿OHÉØHÈ#HÉÈ	ÙÙZjñ°5nð²*HÈ"HÉÈ	ØOHÉØÙZjñ„¢±=`
HÈ"_¿HÉ_¿HÈ$¹HÈ%IÙ_¿HÈ#OÙ_¿HÉ6_¿ W ²-W$´hA
+W&ð_²`È_¿`jÍ¿¿A`ð³hA
+W"–A	¿JOñ›hjdOOIO°eLlZð²3OOJØIOOIOJÙ_Ogg
 ¿hjdOOOØ°,OOIOOJØIOJÙOgg
 ¿hjdOOIJOggO
¿OŸ¿`OÍ¿LlZð”OJÙƒOJØ_�OA
-±b@l
ð²HÉ2[•AkK¿HÉA
-¿HÉHÉØ»HÉ¢±'HÈ$YHÉÈ	ØKHÉØÙZjñ¢±üPHÈ"_¿HÉ_¿HÈ%IÙ_¿HÈ#OÙ_¿HÉ6_¿ `²3`´hA
-`ð_²`È_¿`jÍ¿¿A`ð³hA
-W –A	¿JOñ�hjdOOIOO°0OOIOOIJØOOJÙgg
+±Y@l
ð²HÉ2[•AkK¿HÉA
+¿HÉHÉØ»HÉ¢±HÈ$YHÉÈ	ØKHÉØÙZjñ¢±óPHÈ"_¿HÉ_¿HÈ%IÙ_¿HÈ#OÙ_¿HÉ6_¿ W ²-W$´hA
+W&ð_²`È_¿`jÍ¿¿A`ð³hA
+W"–A	¿JOñ�hjdOOIOO°0OOIOOIJØOOJÙgg
 ¿hjdOOIOJggO
¿OŸ¿`OÍ¿KJØ[€KA
-h(993 DSPYPOSITION 968 \SOFTCURSORUPCURRENT 959 BKBITBLT 929 BKBITBLT 875 \TOTOPWDS 865 DSPDESTINATION 848 \SOFTCURSORDOWN 814 DSPDESTINATION 673 DSPXPOSITION 638 DSPXPOSITION 600 \SOFTCURSORUPCURRENT 591 BKBITBLT 561 BKBITBLT 514 BKBITBLT 454 \TOTOPWDS 444 DSPDESTINATION 427 \SOFTCURSORDOWN 393 DSPDESTINATION 303 SHOULDNT 187 ERROR 145 DSPYPOSITION 139 ERROR 25 \CARET.DOWN 12 \STOPSCROLL?)
-(974 \EM.DISPINTERRUPT 951 REPLACE 946 TEXTURE 923 REPLACE 918 INPUT 855 \TOPWDS 839 \EM.DISPINTERRUPT 829 \EM.DISPINTERRUPT 819 \CURSORDESTINATION 805 \SOFTCURSORUPP 798 \SOFTCURSORP 776 \DISPLAYDATA 757 \DISPLAYDATA 746 \DISPLAYDATA 726 \DISPLAYDATA 716 FONTDESCRIPTOR 709 \DISPLAYDATA 700 \DISPLAYDATA 688 \DISPLAYDATA 654 \DISPLAYDATA 606 \EM.DISPINTERRUPT 583 REPLACE 578 TEXTURE 555 REPLACE 550 INPUT 508 REPLACE 503 INPUT 434 \TOPWDS 418 \EM.DISPINTERRUPT 408 \EM.DISPINTERRUPT 398 \CURSORDESTINATION 384 \SOFTCURSORUPP 377 \SOFTCURSORP 355 \DISPLAYDATA 338 \DISPLAYDATA 327 \DISPLAYDATA 316 \DISPLAYDATA 290 \DISPLAYDATA 279 FONTDESCRIPTOR 272 \DISPLAYDATA 264 \DISPLAYDATA 243 FONTDESCRIPTOR 236 \DISPLAYDATA 228 \DISPLAYDATA 219 \DISPLAYDATA 197 \DISPLAYDATA 152 \DISPLAYDATA 89 \DISPLAYDATA 62 FONTDESCRIPTOR 55 \DISPLAYDATA 43 \DISPLAYDATA 32 STREAM 18 \CARET.UP)
+h(975 DSPYPOSITION 950 \SOFTCURSORUPCURRENT 941 BKBITBLT 911 BKBITBLT 857 \TOTOPWDS 847 DSPDESTINATION 830 \SOFTCURSORDOWN 799 DSPDESTINATION 664 DSPXPOSITION 629 DSPXPOSITION 591 \SOFTCURSORUPCURRENT 582 BKBITBLT 552 BKBITBLT 505 BKBITBLT 445 \TOTOPWDS 435 DSPDESTINATION 418 \SOFTCURSORDOWN 387 DSPDESTINATION 303 SHOULDNT 187 ERROR 145 DSPYPOSITION 139 ERROR 25 \CARET.DOWN 12 \STOPSCROLL?)
+(956 \EM.DISPINTERRUPT 933 REPLACE 928 TEXTURE 905 REPLACE 900 INPUT 837 \TOPWDS 821 \EM.DISPINTERRUPT 811 \EM.DISPINTERRUPT 767 \DISPLAYDATA 748 \DISPLAYDATA 737 \DISPLAYDATA 717 \DISPLAYDATA 707 FONTDESCRIPTOR 700 \DISPLAYDATA 691 \DISPLAYDATA 679 \DISPLAYDATA 645 \DISPLAYDATA 597 \EM.DISPINTERRUPT 574 REPLACE 569 TEXTURE 546 REPLACE 541 INPUT 499 REPLACE 494 INPUT 425 \TOPWDS 409 \EM.DISPINTERRUPT 399 \EM.DISPINTERRUPT 355 \DISPLAYDATA 338 \DISPLAYDATA 327 \DISPLAYDATA 316 \DISPLAYDATA 290 \DISPLAYDATA 279 FONTDESCRIPTOR 272 \DISPLAYDATA 264 \DISPLAYDATA 243 FONTDESCRIPTOR 236 \DISPLAYDATA 228 \DISPLAYDATA 219 \DISPLAYDATA 197 \DISPLAYDATA 152 \DISPLAYDATA 89 \DISPLAYDATA 62 FONTDESCRIPTOR 55 \DISPLAYDATA 43 \DISPLAYDATA 32 STREAM 18 \CARET.UP)
 ( 182 "Only rotations supported are 0, 90 and 270" 134 "Only rotations supported are 0, 90 and 270")
 \TTYBACKGROUND :D8
 (P 0 X F 1 \LINEBUF.OFD) DQÉ`ð²/`²``ð¥¿`ŠdjHµô(65 \BACKGROUND 39 WAIT.FOR.TTY)
@@ -732,10 +730,10 @@ NIL
 NIL
 ()
 \CREATEDISPLAY :D8
-(P 0 FDEV I 0 DISPLAYNAME) a `d@¿djÏ¿djÏ¿djÏ0¿dg¿dg¿dgD¿dg¿dg^¿dgF¿dg¿dgb¿dg`¿dg¿dg¿dg
-¿dg¿dg¿dg,¿dg.¿dg0¿dgT¿dg>¿dg@¿gh¹dI¿d`h¿dgR¿dgP¿dgN¿dgH¿dgB¿dg<¿dg:¿dg*¿dg ¿dg¿dg¿dg¿X@H
-H(349 \DEFINEDEVICE)
-(338 \GENERIC.RENAMEFILE 329 NILL 320 NILL 311 NILL 302 NILL 293 \GENERIC.READP 284 \ILLEGAL.DEVICEOP 275 NILL 266 \GENERIC.CHARSET 257 \ILLEGAL.DEVICEOP 248 \IS.NOT.RANDACCESSP 239 \IS.NO.RANDACCESSP 230 *DEFAULT-EXTERNALFORMAT* 216 OFF 208 \NONPAGEDBOUTS 199 \ILLEGAL.DEVICEOP 190 \PAGEDBACKFILEPTR 181 \ILLEGAL.DEVICEOP 172 \DSPPRINTCHAR 163 \ILLEGAL.DEVICEOP 154 NILL 145 NILL 136 NILL 127 \CREATEDISPLAYA0023 118 \CREATEDISPLAYA0021 109 \ILLEGAL.DEVICEOP 100 NILL 91 \GENERATENOFILES 82 NILL 73 \ILLEGAL.DEVICEOP 64 \CREATEDISPLAYA0014 55 NILL 46 NILL 37 NILL 7 |FDEVTYPE#|)
+(P 0 FDEV I 0 DISPLAYNAME) X `d@¿djÏ¿djÏ¿djÏ0¿dg¿dg¿dgD¿dg¿dg^¿dgF¿dg¿dgb¿dg`¿dg¿dg¿dg
+¿dg¿dg¿dg,¿dg.¿dg0¿dgT¿dg>¿dg@¿gh¹dI¿dgR¿dgP¿dgN¿dgH¿dgB¿dg<¿dg:¿dg*¿dg ¿dg¿dg¿dg¿X@H
+H(340 \DEFINEDEVICE)
+(329 \GENERIC.RENAMEFILE 320 NILL 311 NILL 302 NILL 293 NILL 284 \GENERIC.READP 275 \ILLEGAL.DEVICEOP 266 NILL 257 \GENERIC.CHARSET 248 \ILLEGAL.DEVICEOP 239 \IS.NOT.RANDACCESSP 230 \IS.NO.RANDACCESSP 216 OFF 208 \NONPAGEDBOUTS 199 \ILLEGAL.DEVICEOP 190 \PAGEDBACKFILEPTR 181 \ILLEGAL.DEVICEOP 172 \DSPPRINTCHAR 163 \ILLEGAL.DEVICEOP 154 NILL 145 NILL 136 NILL 127 \CREATEDISPLAYA0023 118 \CREATEDISPLAYA0021 109 \ILLEGAL.DEVICEOP 100 NILL 91 \GENERATENOFILES 82 NILL 73 \ILLEGAL.DEVICEOP 64 \CREATEDISPLAYA0014 55 NILL 46 NILL 37 NILL 7 |FDEVTYPE#|)
 ()
 DISPLAYSTREAMINIT :D8
 (P 2 TTYFONTHEIGHT P 1 TTYHEIGHT P 0 TTYFONT I 0 N F 3 TtyDisplayStream) «chS
@@ -750,10 +748,11 @@ Z`S
 (167 \LastTTYLines 155 SCREENHEIGHT 148 SCREENHEIGHT 133 SCREENWIDTH 115 SCREENWIDTH 91 FONTDESCRIPTOR 76 SCREENHEIGHT 62 \LastTTYLines 52 \TopLevelTtyWindow 47 \DEFAULTTTYDISPLAYSTREAM 35 ScreenBitMap 27 FONTDESCRIPTOR)
 ()
 \STARTDISPLAY :D8
-(P 2 \INTERRUPTABLE P 1 W P 0 OLDWINDOWS F 3 \MAINSCREEN F 4 \WINDOWWORLD F 5 WINDOWBACKGROUNDSHADE) H``ðœ``ð³AT²>	¸``ó«``ó–H	¿HŒdI	µò``
+(P 2 \INTERRUPTABLE P 1 W P 0 OLDWINDOWS F 3 \MAINSCREEN F 4 \WINDOWWORLD F 5 \CURSORDESTINATION F 6 WINDOWBACKGROUNDSHADE F 7 \CURSORDESTWIDTH F 8 \CURSORDESTHEIGHT F 9 \CURSORDESTRASTERWIDTH) <``ðœ``ð³AT²>	¸``ó«``ó–H	¿HŒdI	µò``
 É`È
-¿ijd``hSµC````ÈH²LU	¿H	°:`¿S`¿S`¿°–dI	µò``h(299 \OPENW1 243 REVERSE 236 CHANGEBACKGROUND 142 SHOWDISPLAY 113 \CreateScreenBitMap 90 \CLOSEW1 76 \MOVE.WINDOWS.ONTO.SCREEN 45 REVERSE 40 OPENWINDOWS 7 UPDATESCREENDIMENSIONS)
-(324 \OLDSCREENWIDTH 319 SCREENWIDTH 314 \OLDSCREENHEIGHT 309 SCREENHEIGHT 283 SCREENHEIGHT 278 SCREEN 269 SCREENWIDTH 264 SCREEN 255 ScreenBitMap 250 SCREEN 227 \CURSORDESTRASTERWIDTH 220 BITMAP 215 ScreenBitMap 210 \CURSORDESTHEIGHT 205 SCREENHEIGHT 200 \CURSORDESTWIDTH 195 SCREENWIDTH 190 \CURSORDESTINATION 185 ScreenBitMap 177 WHOLESCREEN 172 WHOLEDISPLAY 162 SCREENHEIGHT 157 SCREENWIDTH 149 \DisplayStarted 135 BITMAP 130 ScreenBitMap 123 BITMAP 118 ScreenBitMap 108 SCREENHEIGHT 103 SCREENWIDTH 68 SCREENHEIGHT 63 \OLDSCREENHEIGHT 56 SCREENWIDTH 51 \OLDSCREENWIDTH 29 \OLDSCREENHEIGHT 24 SCREENHEIGHT 17 \OLDSCREENWIDTH 12 SCREENWIDTH)
+¿ijd``hSµ7`c
+`c`c`ÈcH²LV	¿H	°:`¿S`¿S`¿°¢dI	µò``h(287 \OPENW1 231 REVERSE 224 CHANGEBACKGROUND 142 SHOWDISPLAY 113 \CreateScreenBitMap 90 \CLOSEW1 76 \MOVE.WINDOWS.ONTO.SCREEN 45 REVERSE 40 OPENWINDOWS 7 UPDATESCREENDIMENSIONS)
+(312 \OLDSCREENWIDTH 307 SCREENWIDTH 302 \OLDSCREENHEIGHT 297 SCREENHEIGHT 271 SCREENHEIGHT 266 SCREEN 257 SCREENWIDTH 252 SCREEN 243 ScreenBitMap 238 SCREEN 211 BITMAP 206 ScreenBitMap 199 SCREENHEIGHT 192 SCREENWIDTH 185 ScreenBitMap 177 WHOLESCREEN 172 WHOLEDISPLAY 162 SCREENHEIGHT 157 SCREENWIDTH 149 \DisplayStarted 135 BITMAP 130 ScreenBitMap 123 BITMAP 118 ScreenBitMap 108 SCREENHEIGHT 103 SCREENWIDTH 68 SCREENHEIGHT 63 \OLDSCREENHEIGHT 56 SCREENWIDTH 51 \OLDSCREENWIDTH 29 \OLDSCREENHEIGHT 24 SCREENHEIGHT 17 \OLDSCREENWIDTH 12 SCREENWIDTH)
 ()
 \MOVE.WINDOWS.ONTO.SCREEN :D8
 (P 4 REG P 3 YFACTOR P 2 XFACTOR P 1 W I 0 WINDOWS) Ú@Hµ+h´&```ëZ``ë[@HµAhYÉLLØmÿØ`óµLLØmÿØ`ó•Iµ¥i°¢HX°™Yd	ð²\Ii
diff --git a/sources/LLETHER b/sources/LLETHER
index 5005f079..6bc70986 100644
--- a/sources/LLETHER
+++ b/sources/LLETHER
@@ -1,11 +1,10 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED " 5-Sep-2021 08:25:17" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LLETHER.;2 139621 
+(FILECREATED " 3-May-2021 23:13:56" {DSK}<home>larry>ilisp>medley>sources>LLETHER.;4 139646 
 
-      changes to%:  (FNS \ETHERINIT)
+      changes to%:  (FNS \ETHEREVENTFN \ETHER-AVAILABLE)
+                    (VARS LLETHERCOMS)
 
-      previous date%: " 3-May-2021 23:13:56" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LLETHER.;1)
+      previous date%: " 2-May-2021 12:37:02" {DSK}<home>larry>ilisp>medley>sources>LLETHER.;3)
 
 
 (* ; "
@@ -17,25 +16,25 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
 (RPAQQ LLETHERCOMS
        [(DECLARE%: EVAL@COMPILE DONTCOPY (FILES (SOURCE)
                                                 LLNSDECLS))
-        [COMS                                                (* ; 
-                                                           "Stuff that should be somewhere else!")
+        [COMS                                                (* ; 
+                                                           "Stuff that should be somewhere else!")
               (INITVARS (ERRORMESSAGESTREAM T)
                      (PROMPTWINDOW T))
               (GLOBALVARS ERRORMESSAGESTREAM PROMPTWINDOW)
-              (COMS                                          (* ; 
-                       "Queue management for data which can be chain-linked through the first cell")
+              (COMS                                          (* ; 
+                       "Queue management for data which can be chain-linked through the first cell")
                     (DECLARE%: DONTCOPY (EXPORT (RECORDS SYSQUEUE QABLEITEM)
                                                (MACROS \QUEUEHEAD)))
                     (INITRECORDS SYSQUEUE)
                     (SYSRECORDS SYSQUEUE)
                     (FNS CANONICAL.HOSTNAME \ENQUEUE \DEQUEUE \QUEUELENGTH \ONQUEUE \UNQUEUE)
-                                                             (* ; 
-                                                           "Queue management constructed by TCONC")
+                                                             (* ; 
+                                                           "Queue management constructed by TCONC")
                     (EXPORT (MACROS \DETCONC \ENTCONC \PEEKTCONC]
-        (COMS                                                (* ; "General packet management")
+        (COMS                                                (* ; "General packet management")
               (DECLARE%: DONTCOPY 
 
-                     (* ;; "Skeletal ether packet.  Other users define with respect to")
+                     (* ;; "Skeletal ether packet.  Other users define with respect to")
 
                      (EXPORT (RECORDS ETHERPACKET ETHERAUX)
                             (CONSTANTS \EPT.PUP \EPT.XIP \3MBTYPE.XIP \10MBTYPE.XIP \EPT.10TO3 
@@ -58,7 +57,7 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
                    \NSADDRESS.DEFPRINT \NSADDRESS.PRINT.DECIMAL \LOADNSHOSTNUMBER \STORENSHOSTNUMBER
                    PRINTNSHOSTNUMBER)
               (DECLARE%: DONTEVAL@LOAD DOCOPY (P (DEFPRINT 'NSADDRESS '\NSADDRESS.DEFPRINT]
-        [COMS                                                (* ; "Assorted Level 0")
+        [COMS                                                (* ; "Assorted Level 0")
               (FNS \ETHERINIT \ETHEREVENTFN \ETHER-AVAILABLE \TIME.NOT.SET \SETETHERFLAGS \FLUSHNDBS
                    \FLUSH.NDB.QUEUE)
               (FNS \CHECKSUM \HANDLE.RAW.OTHER \HANDLE.RAW.PACKET \ADD.PACKET.FILTER 
@@ -71,7 +70,7 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
               (DECLARE%: DONTEVAL@LOAD DOCOPY (P (\ETHERINIT)
                                                  (MOVD? 'NILL 'BLOCK)
                                                  (MOVD? 'NILL '\STASH.PASSWORDS]
-        (COMS                                                (* ; "Assorted routing stuff")
+        (COMS                                                (* ; "Assorted routing stuff")
               (DECLARE%: DONTCOPY (EXPORT (RECORDS NDB ROUTING))
                      (CONSTANTS \RT.INFINITY)
                      (MACROS ENCAPSULATE.ETHERPACKET TRANSMIT.ETHERPACKET BROADCASTP 
@@ -84,7 +83,7 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
               (SYSRECORDS NDB)
               (FNS ENCAPSULATE.ETHERPACKET TRANSMIT.ETHERPACKET)
               
-              (* ;; "Routing table management.  Table is naked array of specified size (choices are 8, 16, 32, 64, based on availability of pointer hunks for those sizes).  These are global vars rather than constants so you can play with them (but you'd better restart ether immediately).")
+              (* ;; "Routing table management.  Table is naked array of specified size (choices are 8, 16, 32, 64, based on availability of pointer hunks for those sizes).  These are global vars rather than constants so you can play with them (but you'd better restart ether immediately).")
 
               (FNS \AGE.ROUTING.TABLE \ADD.ROUTING.TABLE.ENTRY \CLEAR.ROUTING.TABLE 
                    \MAP.ROUTING.TABLE PRINTROUTINGTABLE \ROUTINGTABLE.INFOHOOK)
@@ -103,29 +102,29 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
                      (\LOCALNDBS)
                      (\NSFLG)
                      (\IPFLG)))
-        (COMS                                                (* ; "10 to 3 translation ugliness")
+        (COMS                                                (* ; "10 to 3 translation ugliness")
               (FNS \TRANSLATE.10TO3 \NOTE.10TO3 \HANDLE.RAW.10TO3)
               (DECLARE%: DONTCOPY (RECORDS ETHERTRANS)
                      (CONSTANTS \TRANS.OP.REQUEST \TRANS.OP.RESPONSE \TRANS.DATALENGTH)
                      
-                     (* ;; "The \TRANS.DATALENGTH includes the space for 10TO3OPERATION and two 3-word/1-word translation pairs.")
+                     (* ;; "The \TRANS.DATALENGTH includes the space for 10TO3OPERATION and two 3-word/1-word translation pairs.")
 ))
-        (COMS                                                (* ; "Printing routines for packets")
+        (COMS                                                (* ; "Printing routines for packets")
               (FNS PRINTPACKET \MAYBEPRINTPACKET PRINT10TO3 PRINTPACKETDATA PRINTPACKETQUEUE 
                    TIME.SINCE.PACKET MAKE-NETWORK-TRACE-WINDOW \CHANGE.ETHER.TRACING)
               (INITVARS (\RAWTRACING))
               (ADDVARS (\PACKET.PRINTERS (512 . PRINTPUP)
                               (1537 . PRINT10TO3)))
               (GLOBALVARS \RAWTRACING \PACKET.PRINTERS PUPTRACEFILE XIPTRACEFILE \RCLKMILLISECOND))
-        (COMS                                                (* ; "For PUP/XIPTRACETIME, functions to convert time from internal ticks to decimal fractions of a second.")
+        (COMS                                                (* ; "For PUP/XIPTRACETIME, functions to convert time from internal ticks to decimal fractions of a second.")
               (FNS \CENTICLOCK)
               [VARS (\CENTICLOCKFACTOR)
                     (\CENTICLOCKBOX (NCREATE 'FIXP]
               (ADDVARS (\SYSTEMCACHEVARS \CENTICLOCKFACTOR))
               (DECLARE%: EVAL@COMPILE DONTCOPY (GLOBALVARS \CENTICLOCKFACTOR \CENTICLOCKBOX)
                      (RECORDS CENTICLOCK)))
-        (COMS                                                (* ; 
-                                                      "3MB stuff, which is not needed in DandeLion")
+        (COMS                                                (* ; 
+                                                      "3MB stuff, which is not needed in DandeLion")
               (FNS \3MBGETPACKET \3MB.CREATENDB \3MBSENDPACKET \3MBWATCHER \3MBENCAPSULATE 
                    \3MB.BROADCASTP \3MBFLUSH)
               (INITVARS (\MAXWATCHERGETS 5))
@@ -133,12 +132,12 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
                      (EXPORT (MACROS \SERIALNUMBER))
                      (CONSTANTS \3MBENCAPSULATION.WORDS \3MBTYPE.PUP)
                      (GLOBALVARS \MAXWATCHERGETS *MAXIMUM-PACKET-SIZE*)))
-        (COMS                                                (* ; "Debugging")
+        (COMS                                                (* ; "Debugging")
               (FNS ASSURE.ETHER.ON INITPUPLEVEL1 TURN.ON.ETHER RESTART.ETHER TURN.OFF.ETHER 
                    PRINTWORDS)
               (VARS ROUTINGINFOMACRO)
               (DECLARE%: EVAL@COMPILE DONTCOPY (LOCALVARS . T)))
-        (COMS                                                (* ; "Opcodes")
+        (COMS                                                (* ; "Opcodes")
               (FNS \DEVICE.INPUT \DEVICE.OUTPUT \D0.STARTIO)
               (DECLARE%: DONTCOPY (CONSTANTS * D0DEVICES)
                      (EXPORT (PROP DOPVAL \DEVICE.INPUT \DEVICE.OUTPUT \D0.STARTIO])
@@ -174,13 +173,13 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
                         (SYSQUEUETAIL POINTER)))
 
 (BLOCKRECORD QABLEITEM ((NIL BITS 4)
-                            (QLINK POINTER)                  (* ; 
-   "Link to next thing in queue always in first pointer of datum, independent of what the datum is")
+                            (QLINK POINTER)                  (* ; 
+   "Link to next thing in queue always in first pointer of datum, independent of what the datum is")
                             )
                            (BLOCKRECORD QABLEITEM ((NIL BITS 4)
                                                    (LINK POINTER)
-                                                             (* ; 
-                                                           "Let's also be able to call it a LINK")
+                                                             (* ; 
+                                                           "Let's also be able to call it a LINK")
                                                    )))
 )
 
@@ -383,38 +382,38 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
 (* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
 
 (DATATYPE ETHERPACKET ((NIL BYTE)
-                           (EPLINK POINTER)                  (* ; "For queue maintenence")
-                           (EPFLAGS BYTE)                    (* ; 
-                                                           "optional flags for some applications")
-                           (EPUSERFIELD POINTER)             (* ; 
-                                                           "Arbitrary pointer for applications")
+                           (EPLINK POINTER)                  (* ; "For queue maintenence")
+                           (EPFLAGS BYTE)                    (* ; 
+                                                           "optional flags for some applications")
+                           (EPUSERFIELD POINTER)             (* ; 
+                                                           "Arbitrary pointer for applications")
                            (NIL BYTE)
-                           (EPPLIST POINTER)                 (* ; 
-                                                  "Extra field for use as an A-list for properties")
-                           (EPTRANSMITTING FLAG)             (* ; 
-                                "True while packet is being transmitted and hence cannot be reused")
-                           (EPRECEIVING FLAG)                (* ; 
-          "True when a packet has been seen at the head of the network's input queue at least once")
+                           (EPPLIST POINTER)                 (* ; 
+                                                  "Extra field for use as an A-list for properties")
+                           (EPTRANSMITTING FLAG)             (* ; 
+                                "True while packet is being transmitted and hence cannot be reused")
+                           (EPRECEIVING FLAG)                (* ; 
+          "True when a packet has been seen at the head of the network's input queue at least once")
                            (NIL BITS 6)
-                           (EPREQUEUE POINTER)               (* ; 
-                                                  "Where to requeue this packet after transmission")
+                           (EPREQUEUE POINTER)               (* ; 
+                                                  "Where to requeue this packet after transmission")
                            (NIL BYTE)
                            (EPSOCKET POINTER)
                            (NIL BYTE)
                            (EPNETWORK POINTER)
-                           (EPTYPE WORD)                     (* ; 
-                                          "Type of packet to be encapsulated (PUP or XIP or 10TO3)")
+                           (EPTYPE WORD)                     (* ; 
+                                          "Type of packet to be encapsulated (PUP or XIP or 10TO3)")
                            (NIL WORD)
-                           (EPTIMESTAMP FIXP)                (* ; 
-                                                        "Gets RCLK value when transmitted/received")
-                           (EPREQUEUEFN POINTER)             (* ; "FN to perform requeueing")
-                           (NIL 4 WORD)                      (* ; "Space for expansion")
-                                                             (* ; 
-       "Note: This next field wants to be quad+2 aligned so that the 10mb packet is quad+3 aligned")
-                           (EPENCAPSULATION 8 WORD)          (* ; 
-                                            "10mb encapsulation, or 3mb encapsulation with padding")
-                           (EPBODY 289 WORD)                 (* ; 
-                                  "Body of packet, header up to 16 words plus data up to 546 bytes")
+                           (EPTIMESTAMP FIXP)                (* ; 
+                                                        "Gets RCLK value when transmitted/received")
+                           (EPREQUEUEFN POINTER)             (* ; "FN to perform requeueing")
+                           (NIL 4 WORD)                      (* ; "Space for expansion")
+                                                             (* ; 
+       "Note: This next field wants to be quad+2 aligned so that the 10mb packet is quad+3 aligned")
+                           (EPENCAPSULATION 8 WORD)          (* ; 
+                                            "10mb encapsulation, or 3mb encapsulation with padding")
+                           (EPBODY 289 WORD)                 (* ; 
+                                  "Body of packet, header up to 16 words plus data up to 546 bytes")
                            ))
 
 (ACCESSFNS ETHERAUX ((AUXPTR (CDR (ASSOC 'AUXPTR (fetch EPPLIST of DATUM)))
@@ -1707,39 +1706,39 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
 (DECLARE%: DONTCOPY 
 (* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE
 
-(DATATYPE NDB ((NETTYPE BYTE)                            (* ; "10 or 3 for now")
-                   (NDBNEXT POINTER)                         (* ; "Link to next NDB")
-                   (NDBPUPNET# BYTE)                         (* ; 
-          "Pup number of this net.  May be different from NS net number, though not in Xerox world")
-                   (NDBNSNET# POINTER)                       (* ; 
-                                            "Can be 32-bits, so might as well leave its box around")
-                   (NDBTASK# BYTE)                           (* ; "Task # of this network")
-                   (NDBBROADCASTP POINTER)                   (* ; 
-                                        "Function that returns true if packet is of broadcast type")
-                   (NDBPUPHOST# BYTE)                        (* ; 
-                "My pup address on this net.  NS address is global to all nets, so not needed here")
-                   (NDBTRANSMITTER POINTER)                  (* ; 
-                     "(NDB PACKET) -- fn to send a raw packet on this net.  returns NIL on failure")
+(DATATYPE NDB ((NETTYPE BYTE)                            (* ; "10 or 3 for now")
+                   (NDBNEXT POINTER)                         (* ; "Link to next NDB")
+                   (NDBPUPNET# BYTE)                         (* ; 
+          "Pup number of this net.  May be different from NS net number, though not in Xerox world")
+                   (NDBNSNET# POINTER)                       (* ; 
+                                            "Can be 32-bits, so might as well leave its box around")
+                   (NDBTASK# BYTE)                           (* ; "Task # of this network")
+                   (NDBBROADCASTP POINTER)                   (* ; 
+                                        "Function that returns true if packet is of broadcast type")
+                   (NDBPUPHOST# BYTE)                        (* ; 
+                "My pup address on this net.  NS address is global to all nets, so not needed here")
+                   (NDBTRANSMITTER POINTER)                  (* ; 
+                     "(NDB PACKET) -- fn to send a raw packet on this net.  returns NIL on failure")
                    (NIL BYTE)
-                   (NDBENCAPSULATOR POINTER)                 (* ; 
-   "(NDB PACKET HOST LENGTH TYPE) -- fn to encapsulate and send a higher-level packet on this net ")
-                   (NDBCSB POINTER)                          (* ; "Pointer to CSB for this network")
+                   (NDBENCAPSULATOR POINTER)                 (* ; 
+   "(NDB PACKET HOST LENGTH TYPE) -- fn to encapsulate and send a higher-level packet on this net ")
+                   (NDBCSB POINTER)                          (* ; "Pointer to CSB for this network")
                    (NDBIQLENGTH BYTE)
-                   (NDBIQ POINTER)                           (* ; 
-                                                           "Queue of empty packets for receiver")
-                   (NDBTQ POINTER)                           (* ; "Queue of packets to transmit")
-                   (NDBTRANSLATIONS POINTER)                 (* ; 
-                                         "Cache of translations, 3:10 or 10:3 according to network")
-                   (NDBETHERFLUSHER POINTER)                 (* ; "Turns off this ether.  Args NDB")
+                   (NDBIQ POINTER)                           (* ; 
+                                                           "Queue of empty packets for receiver")
+                   (NDBTQ POINTER)                           (* ; "Queue of packets to transmit")
+                   (NDBTRANSLATIONS POINTER)                 (* ; 
+                                         "Cache of translations, 3:10 or 10:3 according to network")
+                   (NDBETHERFLUSHER POINTER)                 (* ; "Turns off this ether.  Args NDB")
                    (NDBWATCHER POINTER)
-                   (NDBCANHEARSELF POINTER)                  (* ; 
-                                            "True if receiver can hear packets sent by transmitter")
+                   (NDBCANHEARSELF POINTER)                  (* ; 
+                                            "True if receiver can hear packets sent by transmitter")
                    (NDBIPNET# POINTER)
                    (NDBIPHOST# POINTER)
-                   (NDBPUPTYPE WORD)                         (* ; 
-                                                      "The packet encapsulation of PUP on this net")
+                   (NDBPUPTYPE WORD)                         (* ; 
+                                                      "The packet encapsulation of PUP on this net")
                    (NIL WORD)
-                   (NIL POINTER)                             (* ; "Spares")
+                   (NIL POINTER)                             (* ; "Spares")
                    ))
 
 (RECORD ROUTING (RTNET# RTHOPCOUNT RTGATEWAY# RTNDB RTTIMER RTRECENT))
@@ -2233,14 +2232,14 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
 
 (ACCESSFNS ETHERTRANS [(TRANSBODY (LOCF (fetch (ETHERPACKET EPBODY) of DATUM]
                           [BLOCKRECORD TRANSBODY ((TRANSOPERATION WORD)
-                                                             (* ; "Request or response")
+                                                             (* ; "Request or response")
                                                   (BASETRANSNSHOST 3 WORD)
-                                                             (* ; "Known or desired NS address")
+                                                             (* ; "Known or desired NS address")
                                                   (TRANSPUPHOST BYTE)
-                                                             (* ; "Known or desired PUP address")
-                                                  (NIL BYTE) (* ; "Padding")
+                                                             (* ; "Known or desired PUP address")
+                                                  (NIL BYTE) (* ; "Padding")
                                                   (BASETRANSSENDERNSHOST 3 WORD)
-                                                             (* ; "Sender's info")
+                                                             (* ; "Sender's info")
                                                   (TRANSSENDERPUPHOST BYTE)
                                                   (NIL BYTE))
                                  [ACCESSFNS BASETRANSNSHOST ((TRANSNSHOST (\LOADNSHOSTNUMBER
@@ -2253,8 +2252,8 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
                                                                            NEWVALUE]
                           [ACCESSFNS ETHERTRANS
                                  ([TRANSNSADDRESS
-                                   (PROGN                    (* ; 
-                                        "Kludge to get a pointer that looks like a full ns address")
+                                   (PROGN                    (* ; 
+                                        "Kludge to get a pointer that looks like a full ns address")
                                           (\ADDBASE DATUM (CONSTANT (+ (INDEXF (FETCH
                                                                                 (ETHERPACKET EPBODY)
                                                                                   of T))
@@ -2761,20 +2760,20 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
 (ACCESSFNS 3MBENCAPSULATION [(3MBENCAPSTART (LOCF (fetch (ETHERPACKET EPENCAPSULATION)
                                                          of DATUM]
                                 (BLOCKRECORD 3MBENCAPSTART ((NIL 5 WORD)
-                                                             (* ; "waste space")
+                                                             (* ; "waste space")
                                                             (3MBLENGTH WORD)
-                                                             (* ; 
-                                             "Length of packet in words, starting at the next word")
+                                                             (* ; 
+                                             "Length of packet in words, starting at the next word")
                                                             (3MBDESTHOST BYTE)
-                                                             (* ; "Immediate destination host")
+                                                             (* ; "Immediate destination host")
                                                             (3MBSOURCEHOST BYTE)
-                                                             (* ; "Us")
+                                                             (* ; "Us")
                                                             (3MBTYPE WORD)
-                                                             (* ; 
-                                                           "Type of packet -- PUP or XIP or 10TO3")
+                                                             (* ; 
+                                                           "Type of packet -- PUP or XIP or 10TO3")
                                                             )
                                        [ACCESSFNS 3MBLENGTH ((3MBBASE (LOCF DATUM]
-                                                             (* ; "What to hand to BCPL")
+                                                             (* ; "What to hand to BCPL")
                                        )
                                 (TYPE? (type? ETHERPACKET DATUM)))
 
@@ -2951,30 +2950,30 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
 (PUTPROPS LLETHER COPYRIGHT ("Venue & Xerox Corporation" 1982 1983 1984 1985 1986 1987 1988 1990 1991 
 1992 1993 2021))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (10767 19223 (CANONICAL.HOSTNAME 10777 . 12366) (\ENQUEUE 12368 . 15013) (\DEQUEUE 15015
- . 16342) (\QUEUELENGTH 16344 . 16644) (\ONQUEUE 16646 . 16912) (\UNQUEUE 16914 . 19221)) (52924 56790
- (\ALLOCATE.ETHERPACKET 52934 . 53975) (\RELEASE.ETHERPACKET 53977 . 55050) (RELEASE.PUP 55052 . 55197
-) (\FLUSH.PACKET.QUEUE 55199 . 55550) (\REQUEUE.ETHERPACKET 55552 . 56066) (\EP.PUT.AUX 56068 . 56788)
-) (57364 68745 (\SETLOCALNSNUMBERS 57374 . 58759) (\LOADNSADDRESS 58761 . 59053) (\STORENSADDRESS 
-59055 . 59236) (\PRINTNSADDRESS 59238 . 60321) (\NSADDRESS.DEFPRINT 60323 . 65268) (
-\NSADDRESS.PRINT.DECIMAL 65270 . 67401) (\LOADNSHOSTNUMBER 67403 . 68032) (\STORENSHOSTNUMBER 68034 . 
-68438) (PRINTNSHOSTNUMBER 68440 . 68743)) (68858 74606 (\ETHERINIT 68868 . 69438) (\ETHEREVENTFN 69440
- . 71972) (\ETHER-AVAILABLE 71974 . 72132) (\TIME.NOT.SET 72134 . 72460) (\SETETHERFLAGS 72462 . 72913
-) (\FLUSHNDBS 72915 . 74093) (\FLUSH.NDB.QUEUE 74095 . 74604)) (74607 77899 (\CHECKSUM 74617 . 76549) 
-(\HANDLE.RAW.OTHER 76551 . 76906) (\HANDLE.RAW.PACKET 76908 . 77420) (\ADD.PACKET.FILTER 77422 . 77654
-) (\DEL.PACKET.FILTER 77656 . 77897)) (85732 86257 (ENCAPSULATE.ETHERPACKET 85742 . 86014) (
-TRANSMIT.ETHERPACKET 86016 . 86255)) (86545 99141 (\AGE.ROUTING.TABLE 86555 . 88704) (
-\ADD.ROUTING.TABLE.ENTRY 88706 . 89402) (\CLEAR.ROUTING.TABLE 89404 . 90131) (\MAP.ROUTING.TABLE 90133
- . 90661) (PRINTROUTINGTABLE 90663 . 94288) (\ROUTINGTABLE.INFOHOOK 94290 . 99139)) (99626 106411 (
-\TRANSLATE.10TO3 99636 . 101420) (\NOTE.10TO3 101422 . 103038) (\HANDLE.RAW.10TO3 103040 . 106409)) (
-110393 125215 (PRINTPACKET 110403 . 110964) (\MAYBEPRINTPACKET 110966 . 112623) (PRINT10TO3 112625 . 
-113993) (PRINTPACKETDATA 113995 . 119285) (PRINTPACKETQUEUE 119287 . 119716) (TIME.SINCE.PACKET 119718
- . 120203) (MAKE-NETWORK-TRACE-WINDOW 120205 . 123747) (\CHANGE.ETHER.TRACING 123749 . 125213)) (
-125586 126401 (\CENTICLOCK 125596 . 126399)) (126856 132956 (\3MBGETPACKET 126866 . 128286) (
-\3MB.CREATENDB 128288 . 129003) (\3MBSENDPACKET 129005 . 131188) (\3MBWATCHER 131190 . 131928) (
-\3MBENCAPSULATE 131930 . 132478) (\3MB.BROADCASTP 132480 . 132651) (\3MBFLUSH 132653 . 132954)) (
-135910 137853 (ASSURE.ETHER.ON 135920 . 136250) (INITPUPLEVEL1 136252 . 136732) (TURN.ON.ETHER 136734
- . 136879) (RESTART.ETHER 136881 . 137255) (TURN.OFF.ETHER 137257 . 137575) (PRINTWORDS 137577 . 
-137851)) (138128 138663 (\DEVICE.INPUT 138138 . 138303) (\DEVICE.OUTPUT 138305 . 138499) (\D0.STARTIO 
-138501 . 138661)))))
+  (FILEMAP (NIL (10792 19248 (CANONICAL.HOSTNAME 10802 . 12391) (\ENQUEUE 12393 . 15038) (\DEQUEUE 15040
+ . 16367) (\QUEUELENGTH 16369 . 16669) (\ONQUEUE 16671 . 16937) (\UNQUEUE 16939 . 19246)) (52949 56815
+ (\ALLOCATE.ETHERPACKET 52959 . 54000) (\RELEASE.ETHERPACKET 54002 . 55075) (RELEASE.PUP 55077 . 55222
+) (\FLUSH.PACKET.QUEUE 55224 . 55575) (\REQUEUE.ETHERPACKET 55577 . 56091) (\EP.PUT.AUX 56093 . 56813)
+) (57389 68770 (\SETLOCALNSNUMBERS 57399 . 58784) (\LOADNSADDRESS 58786 . 59078) (\STORENSADDRESS 
+59080 . 59261) (\PRINTNSADDRESS 59263 . 60346) (\NSADDRESS.DEFPRINT 60348 . 65293) (
+\NSADDRESS.PRINT.DECIMAL 65295 . 67426) (\LOADNSHOSTNUMBER 67428 . 68057) (\STORENSHOSTNUMBER 68059 . 
+68463) (PRINTNSHOSTNUMBER 68465 . 68768)) (68883 74631 (\ETHERINIT 68893 . 69463) (\ETHEREVENTFN 69465
+ . 71997) (\ETHER-AVAILABLE 71999 . 72157) (\TIME.NOT.SET 72159 . 72485) (\SETETHERFLAGS 72487 . 72938
+) (\FLUSHNDBS 72940 . 74118) (\FLUSH.NDB.QUEUE 74120 . 74629)) (74632 77924 (\CHECKSUM 74642 . 76574) 
+(\HANDLE.RAW.OTHER 76576 . 76931) (\HANDLE.RAW.PACKET 76933 . 77445) (\ADD.PACKET.FILTER 77447 . 77679
+) (\DEL.PACKET.FILTER 77681 . 77922)) (85757 86282 (ENCAPSULATE.ETHERPACKET 85767 . 86039) (
+TRANSMIT.ETHERPACKET 86041 . 86280)) (86570 99166 (\AGE.ROUTING.TABLE 86580 . 88729) (
+\ADD.ROUTING.TABLE.ENTRY 88731 . 89427) (\CLEAR.ROUTING.TABLE 89429 . 90156) (\MAP.ROUTING.TABLE 90158
+ . 90686) (PRINTROUTINGTABLE 90688 . 94313) (\ROUTINGTABLE.INFOHOOK 94315 . 99164)) (99651 106436 (
+\TRANSLATE.10TO3 99661 . 101445) (\NOTE.10TO3 101447 . 103063) (\HANDLE.RAW.10TO3 103065 . 106434)) (
+110418 125240 (PRINTPACKET 110428 . 110989) (\MAYBEPRINTPACKET 110991 . 112648) (PRINT10TO3 112650 . 
+114018) (PRINTPACKETDATA 114020 . 119310) (PRINTPACKETQUEUE 119312 . 119741) (TIME.SINCE.PACKET 119743
+ . 120228) (MAKE-NETWORK-TRACE-WINDOW 120230 . 123772) (\CHANGE.ETHER.TRACING 123774 . 125238)) (
+125611 126426 (\CENTICLOCK 125621 . 126424)) (126881 132981 (\3MBGETPACKET 126891 . 128311) (
+\3MB.CREATENDB 128313 . 129028) (\3MBSENDPACKET 129030 . 131213) (\3MBWATCHER 131215 . 131953) (
+\3MBENCAPSULATE 131955 . 132503) (\3MB.BROADCASTP 132505 . 132676) (\3MBFLUSH 132678 . 132979)) (
+135935 137878 (ASSURE.ETHER.ON 135945 . 136275) (INITPUPLEVEL1 136277 . 136757) (TURN.ON.ETHER 136759
+ . 136904) (RESTART.ETHER 136906 . 137280) (TURN.OFF.ETHER 137282 . 137600) (PRINTWORDS 137602 . 
+137876)) (138153 138688 (\DEVICE.INPUT 138163 . 138328) (\DEVICE.OUTPUT 138330 . 138524) (\D0.STARTIO 
+138526 . 138686)))))
 STOP
diff --git a/sources/LLETHER.LCOM b/sources/LLETHER.LCOM
index d862c05a..c08375cd 100644
Binary files a/sources/LLETHER.LCOM and b/sources/LLETHER.LCOM differ
diff --git a/sources/LLKEY b/sources/LLKEY
index 2627c342..3c772daf 100644
--- a/sources/LLKEY
+++ b/sources/LLKEY
@@ -1,11 +1,8 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED " 5-Sep-2021 08:25:46" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LLKEY.;11 199942 
+(FILECREATED "27-Aug-2021 16:18:18" {DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LLKEY.;9 199890 
 
-      changes to%:  (FNS \INIT.KEYBOARD.STREAM)
-
-      previous date%: "27-Aug-2021 16:18:18" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LLKEY.;10)
+      previous date%: "24-Aug-2021 16:54:52" 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LLKEY.;7)
 
 
 (* ; "
@@ -3925,33 +3922,33 @@ Copyright (c) 1982-1990, 1992, 1999, 1920, 2000, 2018, 2021 by Venue & Xerox Cor
 (PUTPROPS LLKEY COPYRIGHT ("Venue & Xerox Corporation" 1982 1983 1984 1985 1986 1987 1988 1989 1990 
 1992 1999 1920 2000 2018 2021))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (14748 22064 (BKSYSCHARCODE 14758 . 15107) (\CLEARSYSBUF 15109 . 15667) (\GETKEY 15669
- . 16844) (\NSYSBUFCHARS 16846 . 17588) (\SAVESYSBUF 17590 . 19199) (\SYSBUFP 19201 . 19505) (
-\GETSYSBUF 19507 . 19687) (\PUTSYSBUF 19689 . 20902) (\PEEKSYSBUF 20904 . 22062)) (23361 60195 (
-\KEYBOARDINIT 23371 . 25091) (\KEYBOARDEVENTFN 25093 . 29793) (\ALLOCLOCKED 29795 . 30385) (
-\SETIOPOINTERS 30387 . 34923) (\KEYBOARDOFF 34925 . 35339) (\KEYBOARDON 35341 . 35720) (\KEYHANDLER 
-35722 . 35853) (\KEYHANDLER1 35855 . 43301) (\RESETKEYBOARD 43303 . 44951) (\DOMOUSECHORDING 44953 . 
-48773) (\DOTRANSITIONS 48775 . 49452) (\DECODETRANSITION 49454 . 56143) (MOUSECHORDWAIT 56145 . 56809)
- (\TRACKCURSOR 56811 . 60193)) (95899 117449 (KEYACTION 95909 . 96762) (KEYACTIONTABLE 96764 . 97946) 
-(KEYBOARDTYPE 97948 . 99050) (RESETKEYACTION 99052 . 100811) (\KEYBOARD.MACHINE-SPECIFIC-KEYACTIONS 
-100813 . 102715) (\KEYACTION1 102717 . 112833) (KEYDOWNP 112835 . 113170) (KEYNUMBERP 113172 . 113370)
- (\KEYNAMETONUMBER 113372 . 114066) (\KEYNUMBERTONAME 114068 . 114258) (MODIFY.KEYACTIONS 114260 . 
-115121) (METASHIFT 115123 . 116067) (SHIFTDOWNP 116069 . 117447)) (117512 117808 (
-SETUP.OFFICE.KEYBOARD 117522 . 117806)) (120511 122223 (\INIT.KEYBOARD.STREAM 120521 . 122221)) (
-122488 138865 (\DOBUFFEREDTRANSITIONS 122498 . 137928) (\TIMER.INTERRUPTFRAME 137930 . 138655) (
-\PERIODIC.INTERRUPTFRAME 138657 . 138863)) (139119 143196 (\HARDCURSORUP 139129 . 141011) (
-\HARDCURSORPOSITION 141013 . 143049) (\HARDCURSORDOWN 143051 . 143194)) (143197 167257 (CURSOR.INIT 
-143207 . 146907) (\CURSORDESTINATION 146909 . 149227) (\SOFTCURSORUP 149229 . 154483) (
-\SOFTCURSORUPCURRENT 154485 . 161521) (\SOFTCURSORPOSITION 161523 . 162288) (\SOFTCURSORDOWN 162290 . 
-162998) (CURSORPROP 163000 . 163342) (GETCURSORPROP 163344 . 163532) (PUTCURSORPROP 163534 . 164689) (
-\CURSORBITSPERPIXEL 164691 . 166807) (\CURSORIMAGEPROPNAME 166809 . 167033) (\CURSORMASKPROPNAME 
-167035 . 167255)) (167258 185208 (CURSORCREATE 167268 . 169943) (CURSOR 169945 . 171757) (
-\CURSOR-VALID-P 171759 . 172846) (\CURSORUP 172848 . 174563) (\CURSORPOSITION 174565 . 177093) (
-\CURSORDOWN 177095 . 177328) (ADJUSTCURSORPOSITION 177330 . 177908) (CURSORPOSITION 177910 . 179452) (
-CURSORSCREEN 179454 . 180110) (CURSOREXIT 180112 . 181503) (FLIPCURSOR 181505 . 182631) (FLIPCURSORBAR
- 182633 . 183613) (LASTMOUSEX 183615 . 183869) (LASTMOUSEY 183871 . 184125) (CREATEPOSITION 184127 . 
-184333) (POSITIONP 184335 . 184619) (CURSORHOTSPOT 184621 . 185206)) (186446 187994 (GETMOUSESTATE 
-186456 . 187115) (\EVENTKEYS 187117 . 187992)) (194421 195217 (MACHINETYPE 194431 . 194831) (
-SETMAINTPANEL 194833 . 195215)) (195247 196386 (BEEPON 195257 . 195910) (BEEPOFF 195912 . 196384)) (
-196837 197100 (WITHOUT-INTERRUPTS 196847 . 197098)))))
+  (FILEMAP (NIL (14696 22012 (BKSYSCHARCODE 14706 . 15055) (\CLEARSYSBUF 15057 . 15615) (\GETKEY 15617
+ . 16792) (\NSYSBUFCHARS 16794 . 17536) (\SAVESYSBUF 17538 . 19147) (\SYSBUFP 19149 . 19453) (
+\GETSYSBUF 19455 . 19635) (\PUTSYSBUF 19637 . 20850) (\PEEKSYSBUF 20852 . 22010)) (23309 60143 (
+\KEYBOARDINIT 23319 . 25039) (\KEYBOARDEVENTFN 25041 . 29741) (\ALLOCLOCKED 29743 . 30333) (
+\SETIOPOINTERS 30335 . 34871) (\KEYBOARDOFF 34873 . 35287) (\KEYBOARDON 35289 . 35668) (\KEYHANDLER 
+35670 . 35801) (\KEYHANDLER1 35803 . 43249) (\RESETKEYBOARD 43251 . 44899) (\DOMOUSECHORDING 44901 . 
+48721) (\DOTRANSITIONS 48723 . 49400) (\DECODETRANSITION 49402 . 56091) (MOUSECHORDWAIT 56093 . 56757)
+ (\TRACKCURSOR 56759 . 60141)) (95847 117397 (KEYACTION 95857 . 96710) (KEYACTIONTABLE 96712 . 97894) 
+(KEYBOARDTYPE 97896 . 98998) (RESETKEYACTION 99000 . 100759) (\KEYBOARD.MACHINE-SPECIFIC-KEYACTIONS 
+100761 . 102663) (\KEYACTION1 102665 . 112781) (KEYDOWNP 112783 . 113118) (KEYNUMBERP 113120 . 113318)
+ (\KEYNAMETONUMBER 113320 . 114014) (\KEYNUMBERTONAME 114016 . 114206) (MODIFY.KEYACTIONS 114208 . 
+115069) (METASHIFT 115071 . 116015) (SHIFTDOWNP 116017 . 117395)) (117460 117756 (
+SETUP.OFFICE.KEYBOARD 117470 . 117754)) (120459 122171 (\INIT.KEYBOARD.STREAM 120469 . 122169)) (
+122436 138813 (\DOBUFFEREDTRANSITIONS 122446 . 137876) (\TIMER.INTERRUPTFRAME 137878 . 138603) (
+\PERIODIC.INTERRUPTFRAME 138605 . 138811)) (139067 143144 (\HARDCURSORUP 139077 . 140959) (
+\HARDCURSORPOSITION 140961 . 142997) (\HARDCURSORDOWN 142999 . 143142)) (143145 167205 (CURSOR.INIT 
+143155 . 146855) (\CURSORDESTINATION 146857 . 149175) (\SOFTCURSORUP 149177 . 154431) (
+\SOFTCURSORUPCURRENT 154433 . 161469) (\SOFTCURSORPOSITION 161471 . 162236) (\SOFTCURSORDOWN 162238 . 
+162946) (CURSORPROP 162948 . 163290) (GETCURSORPROP 163292 . 163480) (PUTCURSORPROP 163482 . 164637) (
+\CURSORBITSPERPIXEL 164639 . 166755) (\CURSORIMAGEPROPNAME 166757 . 166981) (\CURSORMASKPROPNAME 
+166983 . 167203)) (167206 185156 (CURSORCREATE 167216 . 169891) (CURSOR 169893 . 171705) (
+\CURSOR-VALID-P 171707 . 172794) (\CURSORUP 172796 . 174511) (\CURSORPOSITION 174513 . 177041) (
+\CURSORDOWN 177043 . 177276) (ADJUSTCURSORPOSITION 177278 . 177856) (CURSORPOSITION 177858 . 179400) (
+CURSORSCREEN 179402 . 180058) (CURSOREXIT 180060 . 181451) (FLIPCURSOR 181453 . 182579) (FLIPCURSORBAR
+ 182581 . 183561) (LASTMOUSEX 183563 . 183817) (LASTMOUSEY 183819 . 184073) (CREATEPOSITION 184075 . 
+184281) (POSITIONP 184283 . 184567) (CURSORHOTSPOT 184569 . 185154)) (186394 187942 (GETMOUSESTATE 
+186404 . 187063) (\EVENTKEYS 187065 . 187940)) (194369 195165 (MACHINETYPE 194379 . 194779) (
+SETMAINTPANEL 194781 . 195163)) (195195 196334 (BEEPON 195205 . 195858) (BEEPOFF 195860 . 196332)) (
+196785 197048 (WITHOUT-INTERRUPTS 196795 . 197046)))))
 STOP
diff --git a/sources/LLKEY.LCOM b/sources/LLKEY.LCOM
index b3bc7888..550e93c5 100644
Binary files a/sources/LLKEY.LCOM and b/sources/LLKEY.LCOM differ
diff --git a/sources/LOCALFILE b/sources/LOCALFILE
index 745ac5a8..db90128c 100644
--- a/sources/LOCALFILE
+++ b/sources/LOCALFILE
@@ -1,46 +1,49 @@
-(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED " 5-Sep-2021 08:25:33" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LOCALFILE.;2 279897 
+(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP")
+(FILECREATED "19-Jan-93 10:55:28" {DSK}<python>lde>lispcore>sources>LOCALFILE.;2 285483 
 
-      changes to%:  (FNS \LFCreateDevice)
+      changes to%:  (RECORDS Page RandomPage FileID VolumeID DiskFileID LVBootFiles RootFileArray 
+                           LogicalVolumeDescriptor PVBootFiles SubVolumeDesc SubVolumeArray 
+                           PhysicalVolumeDescriptor LogicalSubVolumeMarker SubVolumeMarkerPage 
+                           RootDirEntry RootDirEntryArray RootDirectory PageGroup FileDescriptor 
+                           Label LFDEV DLIONSTREAM LeaderPage GenerateFileState GeneratedFile 
+                           DIRSEARCHSTATE PARSEDFILENAME ExpandedName DFSFileSpec Key Interval Index
+                           BufferArray Buffer \BTREEBUF)
 
-      previous date%: "19-Jan-93 10:55:28" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>LOCALFILE.;1)
+      previous date%: " 5-Jan-93 01:04:33" {DSK}<python>lde>lispcore>sources>LOCALFILE.;1)
 
 
 (* ; "
-Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
+Copyright (c) 1985, 1986, 1987, 1988, 1990, 1993 by Venue & Xerox Corporation.  All rights reserved.
 ")
 
 (PRETTYCOMPRINT LOCALFILECOMS)
 
-(RPAQQ LOCALFILECOMS
-       (
+(RPAQQ LOCALFILECOMS (
 
-(* ;;; "This is the Dandelion/Dove local hard disk file system.")
+(* ;;; "This is the Dandelion/Dove local hard disk file system.")
 
-        (DECLARE%: EVAL@COMPILE DONTCOPY (FILES (SOURCE)
-                                                DISKVMEMDECLS)
-               (FILES MESATYPES)
-               (LOCALVARS . T))
-        
+                          (DECLARE%: EVAL@COMPILE DONTCOPY (FILES (SOURCE)
+                                                                  DISKVMEMDECLS)
+                                 (FILES MESATYPES)
+                                 (LOCALVARS . T))
+                          
 
-(* ;;; "Declare low-level data types on which all file system modules depend.")
+(* ;;; "Declare low-level data types on which all file system modules depend.")
 
-        (FNS \PFFetchString \PFReplaceString)
-        (DECLARE%: EVAL@COMPILE DONTCOPY (COMS * PILOTFILECOMPILECOMS))
-        (INITRECORDS PageGroup FileDescriptor)
-        
+                          (FNS \PFFetchString \PFReplaceString)
+                          (DECLARE%: EVAL@COMPILE DONTCOPY (COMS * PILOTFILECOMPILECOMS))
+                          (INITRECORDS PageGroup FileDescriptor)
+                          
 
-(* ;;; "Define the various modules of the file system.")
+(* ;;; "Define the various modules of the file system.")
 
-        (COMS * LFCOMS)
-        (COMS * LFDIRECTORYCOMS)
-        (COMS * SCAVENGEDSKDIRECTORYCOMS)
-        (COMS * LFPILOTFILECOMS)
-        (COMS * LFALLOCATIONMAPCOMS)
-        (COMS * LFFILEMAPCOMS)
-        (PROP MAKEFILE-ENVIRONMENT LOCALFILE)))
+                          (COMS * LFCOMS)
+                          (COMS * LFDIRECTORYCOMS)
+                          (COMS * SCAVENGEDSKDIRECTORYCOMS)
+                          (COMS * LFPILOTFILECOMS)
+                          (COMS * LFALLOCATIONMAPCOMS)
+                          (COMS * LFFILEMAPCOMS)
+                          (PROP MAKEFILE-ENVIRONMENT LOCALFILE)))
 
 
 
@@ -100,59 +103,60 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
 )
 (DECLARE%: EVAL@COMPILE DONTCOPY 
 
-(RPAQQ PILOTFILECOMPILECOMS
-       (
-        (* ;; "Assorted system constants")
+(RPAQQ PILOTFILECOMPILECOMS (
+                                 (* ;; "Assorted system constants")
 
-        (CONSTANTS (pilotVersion 8))
-        (CONSTANTS (maxPagesPerFile 8388607)
-               (lastPageNumber (SUB1 maxPagesPerFile))
-               (nullVolumePage 0)
-               (maxLogicalVolumes 10))
-        (CONSTANTS (hardMicrocode 0)
-               (bftGerm 2))
-        
-        (* ;; "Interesting Pilot file types.")
+                                 (CONSTANTS (pilotVersion 8))
+                                 (CONSTANTS (maxPagesPerFile 8388607)
+                                        (lastPageNumber (SUB1 maxPagesPerFile))
+                                        (nullVolumePage 0)
+                                        (maxLogicalVolumes 10))
+                                 (CONSTANTS (hardMicrocode 0)
+                                        (bftGerm 2))
+                                 
+                                 (* ;; "Interesting Pilot file types.")
 
-        (CONSTANTS (tUnassigned 0)
-               (tPhysicalVolumeRootPage 1)
-               (tSubVolumeMarkerPage 4)
-               (tLogicalVolumeRootPage 5)
-               (tFreePage 6)
-               (tVolumeAllocationMap 7)
-               (tVolumeFileMap 8)
-               (tRootDirectory 18)
-               (tLispDirectory 10048)
-               (tLispFile 10049)
-               (tDiagnosticMicrocode 65535)
-               (pilotVolume 0)
-               (nonPilotVolume 3))
-        
-        (* ;; "Logical volume root page, physical volume root page, and marker page types")
+                                 (CONSTANTS (tUnassigned 0)
+                                        (tPhysicalVolumeRootPage 1)
+                                        (tSubVolumeMarkerPage 4)
+                                        (tLogicalVolumeRootPage 5)
+                                        (tFreePage 6)
+                                        (tVolumeAllocationMap 7)
+                                        (tVolumeFileMap 8)
+                                        (tRootDirectory 18)
+                                        (tLispDirectory 10048)
+                                        (tLispFile 10049)
+                                        (tDiagnosticMicrocode 65535)
+                                        (pilotVolume 0)
+                                        (nonPilotVolume 3))
+                                 
+                                 (* ;; 
+                       "Logical volume root page, physical volume root page, and marker page types")
 
-        (CONSTANTS (logicalVolumeSeal 45771))
-        (RECORDS Page RandomPage FileID VolumeID DiskFileID LVBootFiles RootFileArray 
-               LogicalVolumeDescriptor)
-        (CONSTANTS (physicalVolumeSeal 41610))
-        (RECORDS PVBootFiles SubVolumeDesc SubVolumeArray PhysicalVolumeDescriptor)
-        (RECORDS LogicalSubVolumeMarker SubVolumeMarkerPage)
-        (MACROS LVEqual SwapIn&Dirty LvBasePageAddr MarkerPageAddr)
-        
-        (* ;; "Volume root directory stuff")
+                                 (CONSTANTS (logicalVolumeSeal 45771))
+                                 (RECORDS Page RandomPage FileID VolumeID DiskFileID LVBootFiles 
+                                        RootFileArray LogicalVolumeDescriptor)
+                                 (CONSTANTS (physicalVolumeSeal 41610))
+                                 (RECORDS PVBootFiles SubVolumeDesc SubVolumeArray 
+                                        PhysicalVolumeDescriptor)
+                                 (RECORDS LogicalSubVolumeMarker SubVolumeMarkerPage)
+                                 (MACROS LVEqual SwapIn&Dirty LvBasePageAddr MarkerPageAddr)
+                                 
+                                 (* ;; "Volume root directory stuff")
 
-        (CONSTANTS (rootDirSeal 30167)
-               (rootDirVersion 2)
-               (rootDirMaxEntries 84))
-        (RECORDS RootDirEntry RootDirEntryArray RootDirectory)
-        
-        (* ;; "Miscellaneous records")
+                                 (CONSTANTS (rootDirSeal 30167)
+                                        (rootDirVersion 2)
+                                        (rootDirMaxEntries 84))
+                                 (RECORDS RootDirEntry RootDirEntryArray RootDirectory)
+                                 
+                                 (* ;; "Miscellaneous records")
 
-        (RECORDS PageGroup FileDescriptor)
-        (RECORDS Label)
-        
-        (* ;; "The following are for diagnostic purposes.")
+                                 (RECORDS PageGroup FileDescriptor)
+                                 (RECORDS Label)
+                                 
+                                 (* ;; "The following are for diagnostic purposes.")
 
-        (MACROS DISPLAYWORDS DISPLAYLABEL DISPLAYPAGE)))
+                                 (MACROS DISPLAYWORDS DISPLAYLABEL DISPLAYPAGE)))
 
 
 
@@ -265,53 +269,53 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
 
 (MESARECORD DiskFileID ((fID VolumeID)
                             (firstPage SWAPPEDFIXP)
-                            (da SWAPPEDFIXP))                (* Booting information)
+                            (da SWAPPEDFIXP))                (* Booting information)
                            )
 
 (MESAARRAY LVBootFiles ((0 5))
-                           DiskFileID                        (* Booting information)
+                           DiskFileID                        (* Booting information)
                            )
 
 (MESAARRAY RootFileArray ((6 14))
                              FileID)
 
-(MESARECORD LogicalVolumeDescriptor ((seal WORD)         (* Validation ; absolutely must be 
-                                                           first field)
-                                         (version WORD)      (* must be 2nd field)
-                                         (vID VolumeID)      (* ID of This Volume)
-                                         (labelLength WORD)  (* Length of th ASCII name of this 
-                                                           volume)
-                                         (label 40 BYTE)     (* Volume name in AScII)
+(MESARECORD LogicalVolumeDescriptor ((seal WORD)         (* Validation ; absolutely must be 
+                                                           first field)
+                                         (version WORD)      (* must be 2nd field)
+                                         (vID VolumeID)      (* ID of This Volume)
+                                         (labelLength WORD)  (* Length of th ASCII name of this 
+                                                           volume)
+                                         (label 40 BYTE)     (* Volume name in AScII)
                                          (type WORD)
                                          (volumeSize SWAPPEDFIXP)
-                                                             (* Number of pages in this volume)
+                                                             (* Number of pages in this volume)
                                          (bootingInfo LVBootFiles)
-                                                             (* Defines 6 PILOT file types)
+                                                             (* Defines 6 PILOT file types)
                                          (NIL WORD)
                                          (NIL BITS 15)
-                                         (changing FLAG)     (* Change field decls from here on 
-                                                           only)
-                                                             (* boolean _ T)
+                                         (changing FLAG)     (* Change field decls from here on 
+                                                           only)
+                                                             (* boolean _ T)
                                          (freePageCount SWAPPEDFIXP)
-                                                             (* Number of free pages remaining)
+                                                             (* Number of free pages remaining)
                                          (vamStart SWAPPEDFIXP)
                                          (vfmStart SWAPPEDFIXP)
-                                                             (* Relative address of the start of 
-                                                           the volume file map)
+                                                             (* Relative address of the start of 
+                                                           the volume file map)
                                          (lowerBound SWAPPEDFIXP)
                                          (volumeRootDirectory SWAPPEDFIXP)
                                          (rootFileID RootFileArray)
                                          (lastIDAllocated SWAPPEDFIXP)
 
-         (* Highest numbered File.ID given out on this volume.
-       We reserve the first set of IDs for Pilot's own use.
-       In particular, files of type IN PilotRootFileType may have their ID the same as 
-       their File.Type.)
+         (* Highest numbered File.ID given out on this volume.
+       We reserve the first set of IDs for Pilot's own use.
+       In particular, files of type IN PilotRootFileType may have their ID the same as 
+       their File.Type.)
 
                                          (scavengerLogVolume VolumeID)
                                          (lastTimeOpendForWrite SWAPPEDFIXP)
                                          (NIL 131 WORD)
-                                         (checksum WORD)     (* Must be the last field)
+                                         (checksum WORD)     (* Must be the last field)
                                          )
                                         (ACCESSFNS (LVlabel (\PFFetchString
                                                              (LOCF (fetch (
@@ -362,24 +366,24 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
 (MESAARRAY SubVolumeArray ((0 9))
                               SubVolumeDesc)
 
-(MESARECORD PhysicalVolumeDescriptor ((seal WORD)        (* Validation)
+(MESARECORD PhysicalVolumeDescriptor ((seal WORD)        (* Validation)
                                           (version WORD)
                                           (labelLength WORD)
                                           (pvID VolumeID)
                                           (bootingInfo PVBootFiles)
-                                                             (* Defines 4 PILOT file types)
-                                          (label 40 BYTE)    (* Ascii name of the volume)
+                                                             (* Defines 4 PILOT file types)
+                                          (label 40 BYTE)    (* Ascii name of the volume)
                                           (subVolumeCount WORD)
                                           (subVolumeMarkerID VolumeID)
-                                                             (* Marker pages belong to this 
-                                                           Pseudo File)
+                                                             (* Marker pages belong to this 
+                                                           Pseudo File)
                                           (badPageCount SWAPPEDFIXP)
                                           (maxBadPages SWAPPEDFIXP)
                                           (onLineCount WORD)
                                           (subVolumes SubVolumeArray)
-                                                             (* See SubVolumeDesc record for 
-                                                           description of each of six entries 
-                                                           stored here)
+                                                             (* See SubVolumeDesc record for 
+                                                           description of each of six entries 
+                                                           stored here)
                                           (NIL 47 WORD)
                                           (localTimeParametersValid WORD)
                                           (localTimeParameters 2 WORD)
@@ -424,38 +428,39 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
                                         (volumeRootDirectory SWAPPEDFIXP)))
 
 (MESARECORD SubVolumeMarkerPage ((logical LogicalSubVolumeMarker)
-                                                             (* Incomplete)
+                                                             (* Incomplete)
                                      )
                                     (CREATE (create Page))
                                     (TYPE? (type? Page DATUM)))
 )
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS LVEqual MACRO ((a b)
-                                 (MESAEQUAL (fetch (LogicalVolumeDescriptor vID) of a)
-                                        (fetch (LogicalVolumeDescriptor vID) of b)
-                                        VolumeID)))
+(PUTPROPS LVEqual MACRO ((a b)
+                         (MESAEQUAL (fetch (LogicalVolumeDescriptor vID) of a)
+                                (fetch (LogicalVolumeDescriptor vID) of b)
+                                VolumeID)))
 
-(PUTPROPS SwapIn&Dirty MACRO (OPENLAMBDA (page)
-                                       (\PUTBASE page 0 (\GETBASE page 0))))
+[PUTPROPS SwapIn&Dirty MACRO (OPENLAMBDA (page)
+                                    (\PUTBASE page 0 (\GETBASE page 0]
 
-(PUTPROPS LvBasePageAddr MACRO ((vol)
-                                        (fetch (SubVolumeDesc pvPage)
-                                           of (FMESAELT (fetch (PhysicalVolumeDescriptor
-                                                                        subVolumes) of 
-                                                                                      \PhysVolumePage
-                                                                   )
-                                                         SubVolumeArray vol))))
+[PUTPROPS LvBasePageAddr MACRO ((vol)
+                                (fetch (SubVolumeDesc pvPage) of (FMESAELT
+                                                                          (fetch (
+                                                                             PhysicalVolumeDescriptor
+                                                                                      subVolumes)
+                                                                             of \PhysVolumePage)
+                                                                          SubVolumeArray vol]
 
-(PUTPROPS MarkerPageAddr MACRO [(vol)
-                                        (fetch (SubVolumeDesc nPages)
-                                           of (FMESAELT (fetch (PhysicalVolumeDescriptor
-                                                                        subVolumes) of 
-                                                                                      \PhysVolumePage
-                                                                   )
-                                                         SubVolumeArray
-                                                         (OR (FIXP vol)
-                                                             (\PFVolumeNumber vol])
+[PUTPROPS MarkerPageAddr MACRO ((vol)
+                                (fetch (SubVolumeDesc nPages) of (FMESAELT
+                                                                          (fetch (
+                                                                             PhysicalVolumeDescriptor
+                                                                                      subVolumes)
+                                                                             of \PhysVolumePage)
+                                                                          SubVolumeArray
+                                                                          (OR (FIXP vol)
+                                                                              (\PFVolumeNumber
+                                                                               vol]
 )
 
 
@@ -512,14 +517,14 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
                          (volumePage SWAPPEDFIXP)
                          (nextFilePage SWAPPEDFIXP)))
 
-(DATATYPE FileDescriptor (fileID                         (* ; 
-                                                  "Can be either a FIXP or a pointer to a VolumeID")
-                                    (volNum FIXP)            (* ; "0..9")
-                                    (type WORD)              (* ; "Pilot file type")
-                                    (size FIXP)              (* ; 
-                                           "Current number of (Pilot) pages allocated to this file")
-                                    (PAGEGROUP POINTER)      (* ; 
-                                                    "Caches the last PageGroup found for this file")
+(DATATYPE FileDescriptor (fileID                         (* ; 
+                                                  "Can be either a FIXP or a pointer to a VolumeID")
+                                    (volNum FIXP)            (* ; "0..9")
+                                    (type WORD)              (* ; "Pilot file type")
+                                    (size FIXP)              (* ; 
+                                           "Current number of (Pilot) pages allocated to this file")
+                                    (PAGEGROUP POINTER)      (* ; 
+                                                    "Caches the last PageGroup found for this file")
                                     ))
 )
 
@@ -538,14 +543,14 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
        '10)
 (DECLARE%: EVAL@COMPILE
 
-(MESARECORD Label ((fileID SWAPPEDFIXP)                  (* valid in label of every page)
+(MESARECORD Label ((fileID SWAPPEDFIXP)                  (* valid in label of every page)
                        (NIL 3 WORD)
                        (filePageLo WORD)
-                       (filePageHi BITS 7)                   (* 23 bit page number, valid in 
-                                                           label of every page)
-                                                             (* always zero)
-                       (pageZeroAttributes BITS 9)           (* valid only in label of page 0)
-                       (attributesInAllPages WORD)           (* valid in label of every page)
+                       (filePageHi BITS 7)                   (* 23 bit page number, valid in 
+                                                           label of every page)
+                                                             (* always zero)
+                       (pageZeroAttributes BITS 9)           (* valid only in label of page 0)
+                       (attributesInAllPages WORD)           (* valid in label of every page)
                        (dontCare 2 WORD))
                       (ACCESSFNS (filePage (\MAKENUMBER (fetch (Label filePageHi) of DATUM)
                                                   (fetch (Label filePageLo) of DATUM))
@@ -565,47 +570,46 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
 
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS DISPLAYWORDS MACRO [LAMBDA (Start Number)
+[PUTPROPS DISPLAYWORDS MACRO (LAMBDA (Start Number)
 
-                                       (* ;; 
-                                     "Prints out the first Number words of the object Start")
+                               (* ;; "Prints out the first Number words of the object Start")
 
-                                       [for I from 0 to (SUB1 Number)
-                                          do (PRIN1 (\GETBASE Start I))
-                                                (PRIN1 " ")
-                                                (COND
-                                                   ((EQ (IREMAINDER (ADD1 I)
-                                                               14)
-                                                        0)
-                                                    (TERPRI]
-                                       (TERPRI])
+                               [for I from 0 to (SUB1 Number)
+                                  do (PRIN1 (\GETBASE Start I))
+                                        (PRIN1 " ")
+                                        (COND
+                                           ((EQ (IREMAINDER (ADD1 I)
+                                                       14)
+                                                0)
+                                            (TERPRI]
+                               (TERPRI]
 
-(PUTPROPS DISPLAYLABEL MACRO [LAMBDA (vol volumePageNumber)
+[PUTPROPS DISPLAYLABEL MACRO (LAMBDA (vol volumePageNumber)
 
-                                       (* ;; "Prints the label of the given page.")
+                               (* ;; "Prints the label of the given page.")
 
-                                       (PROG ((L (create Label)))
-                                             (if (type? LogicalVolumeDescriptor vol)
-                                                 then (SETQ vol (\PFVolumeNumber vol)))
-                                             (\PFTransferPage (IPLUS (LvBasePageAddr vol)
-                                                                         volumePageNumber)
-                                                    (create Page)
-                                                    'VRR L)
-                                             (DISPLAYWORDS L 10])
+                               (PROG ((L (create Label)))
+                                     (if (type? LogicalVolumeDescriptor vol)
+                                         then (SETQ vol (\PFVolumeNumber vol)))
+                                     (\PFTransferPage (IPLUS (LvBasePageAddr vol)
+                                                                 volumePageNumber)
+                                            (create Page)
+                                            'VRR L)
+                                     (DISPLAYWORDS L 10]
 
-(PUTPROPS DISPLAYPAGE MACRO [LAMBDA (vol volumePageNumber)
+[PUTPROPS DISPLAYPAGE MACRO (LAMBDA (vol volumePageNumber)
 
-                                      (* ;; "Prints out the specified page of the disk.")
+                              (* ;; "Prints out the specified page of the disk.")
 
-                                      (PROG ((P (create Page)))
-                                            (if (type? LogicalVolumeDescriptor vol)
-                                                then (SETQ vol (\PFVolumeNumber vol)))
-                                            (\PFTransferPage (IPLUS (LvBasePageAddr vol)
-                                                                        volumePageNumber)
-                                                   P
-                                                   'VRR
-                                                   (create Label))
-                                            (DISPLAYWORDS P WORDSPERPAGE])
+                              (PROG ((P (create Page)))
+                                    (if (type? LogicalVolumeDescriptor vol)
+                                        then (SETQ vol (\PFVolumeNumber vol)))
+                                    (\PFTransferPage (IPLUS (LvBasePageAddr vol)
+                                                                volumePageNumber)
+                                           P
+                                           'VRR
+                                           (create Label))
+                                    (DISPLAYWORDS P WORDSPERPAGE]
 )
 )
 
@@ -628,51 +632,50 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
 (* ;;; "Define the various modules of the file system.")
 
 
-(RPAQQ LFCOMS
-       (
+(RPAQQ LFCOMS (
 
-(* ;;; "This module handles the interface to the device-independent part of the file system: it provides a vector of standard device-specific file system operations.  This used to be the sole contents of the file LOCALFILE.")
+(* ;;; "This module handles the interface to the device-independent part of the file system: it provides a vector of standard device-specific file system operations.  This used to be the sole contents of the file LOCALFILE.")
 
-        (DECLARE%: EVAL@COMPILE DONTCOPY 
+                   (DECLARE%: EVAL@COMPILE DONTCOPY 
 
-               (* ;; "File system datatypes")
+                          (* ;; "File system datatypes")
 
-               (CONSTANTS (lispFileVersion 2)
-                      (leaderPageSeal 54321))
-               (RECORDS LFDEV DLIONSTREAM LeaderPage)
-               
-               (* ;; "Error mechanism")
+                          (CONSTANTS (lispFileVersion 2)
+                                 (leaderPageSeal 54321))
+                          (RECORDS LFDEV DLIONSTREAM LeaderPage)
+                          
+                          (* ;; "Error mechanism")
 
-               (MACROS DiskError))
-        
-        (* ;; "Public entry")
+                          (MACROS DiskError))
+                   
+                   (* ;; "Public entry")
 
-        (FNS CREATEDSKDIRECTORY PURGEDSKDIRECTORY LISPDIRECTORYP VOLUMES VOLUMESIZE)
-        (FNS \DFSCurrentVolume \DFSFreeDiskPages)
-        (FNS \LFEntryPoint \LFNormalizeVolumeName)
-        
-        (* ;; "Device management")
+                   (FNS CREATEDSKDIRECTORY PURGEDSKDIRECTORY LISPDIRECTORYP VOLUMES VOLUMESIZE)
+                   (FNS \DFSCurrentVolume \DFSFreeDiskPages)
+                   (FNS \LFEntryPoint \LFNormalizeVolumeName)
+                   
+                   (* ;; "Device management")
 
-        (FNS \LFCreateDevice \LFOpenDevice \LFCloseDevice)
-        (GLOBALVARS \LFdevice \LFtopMonitor \LFrunSize)
-        (P (\LFCreateDevice))
-        (INITVARS (\LFtopMonitor (CREATE.MONITORLOCK 'topMonitor))
-               (\LFrunSize 20))
-        
-        (* ;; "Device methods")
+                   (FNS \LFCreateDevice \LFOpenDevice \LFCloseDevice)
+                   (GLOBALVARS \LFdevice \LFtopMonitor \LFrunSize)
+                   (P (\LFCreateDevice))
+                   (INITVARS (\LFtopMonitor (CREATE.MONITORLOCK 'topMonitor))
+                          (\LFrunSize 20))
+                   
+                   (* ;; "Device methods")
 
-        (FNS \LFOpenFile \LFGetStreamForFile \LFOpenOldFile \LFGenFileID \LFCreateFile 
-             \LFMakeLeaderPage \LFUpdateLeaderPage \LFWriteLeaderPage)
-        (FNS \LFCloseFile)
-        (FNS \LFDeleteFile)
-        (FNS \LFReadPages)
-        (FNS \LFWritePages \LFExtendFileIfNecessary \LFExtendFile)
-        (FNS \LFGetFileInfo \LFSetFileInfo)
-        (FNS \LFGetFileName)
-        (FNS \LFEventFn)
-        (FNS \LFDirectoryNameP)
-        (FNS \LFTruncateFile)
-        (FNS \LFRenameFile)))
+                   (FNS \LFOpenFile \LFGetStreamForFile \LFOpenOldFile \LFGenFileID \LFCreateFile 
+                        \LFMakeLeaderPage \LFUpdateLeaderPage \LFWriteLeaderPage)
+                   (FNS \LFCloseFile)
+                   (FNS \LFDeleteFile)
+                   (FNS \LFReadPages)
+                   (FNS \LFWritePages \LFExtendFileIfNecessary \LFExtendFile)
+                   (FNS \LFGetFileInfo \LFSetFileInfo)
+                   (FNS \LFGetFileName)
+                   (FNS \LFEventFn)
+                   (FNS \LFDirectoryNameP)
+                   (FNS \LFTruncateFile)
+                   (FNS \LFRenameFile)))
 
 
 
@@ -775,12 +778,12 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
 
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS DiskError MACRO ((errorType fileName CONTINUEOKFLG)
-                                   (PROG ((\INTERRUPTABLE T))
+[PUTPROPS DiskError MACRO ((errorType fileName CONTINUEOKFLG)
+                           (PROG ((\INTERRUPTABLE T))
 
-         (* * Gross hack to allow the error to show up as a break rather than a 9318)
+         (* * Gross hack to allow the error to show up as a break rather than a 9318)
 
-                                         (LISPERROR errorType fileName CONTINUEOKFLG))))
+                                 (LISPERROR errorType fileName CONTINUEOKFLG]
 )
 )
 
@@ -1761,78 +1764,79 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
                                                       NEW-NAME])
 )
 
-(RPAQQ LFDIRECTORYCOMS
-       [
+(RPAQQ LFDIRECTORYCOMS [
 
-(* ;;; "This module handles the Lisp directory part of the file system.  The Lisp directory maps literal file names onto Pilot file ID numbers (which can then be looked up in the volume file map).  This module used to be in the file LFDIRECTORY.")
+(* ;;; "This module handles the Lisp directory part of the file system.  The Lisp directory maps literal file names onto Pilot file ID numbers (which can then be looked up in the volume file map).  This module used to be in the file LFDIRECTORY.")
 
-        
-        (* ;; "Known problem: the directory is currently stored as a list rather than a tree, so searches in a large directory take quite some time.")
+                            
+                            (* ;; "Known problem: the directory is currently stored as a list rather than a tree, so searches in a large directory take quite some time.")
 
-        (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (directorySize 50))
-               (RECORDS GenerateFileState GeneratedFile DIRSEARCHSTATE PARSEDFILENAME ExpandedName 
-                      DFSFileSpec)
-               (MACROS CONDCONCAT)
-               (MACROS PRINTDIRECTORY))
-        
-        (* ;; "Format of a directory entry is : ")
+                            (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (directorySize 50))
+                                   (RECORDS GenerateFileState GeneratedFile DIRSEARCHSTATE 
+                                          PARSEDFILENAME ExpandedName DFSFileSpec)
+                                   (MACROS CONDCONCAT)
+                                   (MACROS PRINTDIRECTORY))
+                            
+                            (* ;; "Format of a directory entry is : ")
 
-        
-        (* ;; "bang (check ;  should always contain !) ")
+                            
+                            (* ;; "bang (check ;  should always contain !) ")
 
-        
-        (* ;; "type (0 = hole, 1 = file) ")
+                            
+                            (* ;; "type (0 = hole, 1 = file) ")
 
-        
-        (* ;; "entryLength ")
+                            
+                            (* ;; "entryLength ")
 
-        
-        (* ;; "fileID (4 bytes) ")
+                            
+                            (* ;; "fileID (4 bytes) ")
 
-        
-        (* ;; "version# (2 bytes) ")
+                            
+                            (* ;; "version# (2 bytes) ")
 
-        
-        (* ;; "filenameLength ")
+                            
+                            (* ;; "filenameLength ")
 
-        
-        (* ;; "filename (filenameLength bytes)")
+                            
+                            (* ;; "filename (filenameLength bytes)")
 
-        
-        (* ;; "Routines for mapping file names onto volumes and directories")
+                            
+                            (* ;; "Routines for mapping file names onto volumes and directories")
 
-        (FNS \LFFindDirectory \LFFindDirectoryVol \LFParseFileName)
-        
-        (* ;; "Creating and opening directories")
+                            (FNS \LFFindDirectory \LFFindDirectoryVol \LFParseFileName)
+                            
+                            (* ;; "Creating and opening directories")
 
-        (FNS \LFMakeVolumeDirectory \LFDirectoryP \LFPurgeDirectory \LFCloseDirectory)
-        
-        (* ;; "Functions for making, deleting, and finding entries in a directory.")
+                            (FNS \LFMakeVolumeDirectory \LFDirectoryP \LFPurgeDirectory 
+                                 \LFCloseDirectory)
+                            
+                            (* ;; 
+                          "Functions for making, deleting, and finding entries in a directory.")
 
-        (FNS \LFMakeDirEntry \LFRemoveDirEntry \LFReadFileID \LFFindDirHole \LFMakeDirHole 
-             \LFCheckBang)
-        (FNS \LFDirectorySearch \LFVersions)
-        (FNS \LFFileSpec \LFUnpackName \LFFullFileName \LFFileName)
-        (FNS \LFDirectoryScrambled)
-        (FNS \LFDWIN \LFDWOUT)
-        
-        (* ;; "Directory enumeration")
+                            (FNS \LFMakeDirEntry \LFRemoveDirEntry \LFReadFileID \LFFindDirHole 
+                                 \LFMakeDirHole \LFCheckBang)
+                            (FNS \LFDirectorySearch \LFVersions)
+                            (FNS \LFFileSpec \LFUnpackName \LFFullFileName \LFFileName)
+                            (FNS \LFDirectoryScrambled)
+                            (FNS \LFDWIN \LFDWOUT)
+                            
+                            (* ;; "Directory enumeration")
 
-        (FNS \LFGenerateFiles \LFFindNextFile \LFSortFiles \LFHighestVersions \LFFindInfo 
-             \LFReturnNextFile \LFReturnInfo)
-        (GLOBALVARS \LFtopMonitor)
-        
-        (* ;; "Holding onto directory streams")
+                            (FNS \LFGenerateFiles \LFFindNextFile \LFSortFiles \LFHighestVersions 
+                                 \LFFindInfo \LFReturnNextFile \LFReturnInfo)
+                            (GLOBALVARS \LFtopMonitor)
+                            
+                            (* ;; "Holding onto directory streams")
 
-        (FNS \LFGetDirectory \LFPutDirectory \LFCreateDirectories)
-        (GLOBALVARS \LFdirectories)
-        (P (\LFCreateDirectories))
-        
-        (* ;; "Case array manipulation")
+                            (FNS \LFGetDirectory \LFPutDirectory \LFCreateDirectories)
+                            (GLOBALVARS \LFdirectories)
+                            (P (\LFCreateDirectories))
+                            
+                            (* ;; "Case array manipulation")
 
-        (FNS \LFINITCASEARRAY \LFCASEARRAYFETCH)
-        (GLOBALVARS \LFCASEARRAY \DISKNAMECASEARRAY)
-        (INITVARS (\LFCASEARRAY (\LFINITCASEARRAY])
+                            (FNS \LFINITCASEARRAY \LFCASEARRAYFETCH)
+                            (GLOBALVARS \LFCASEARRAY \DISKNAMECASEARRAY)
+                            (INITVARS (\LFCASEARRAY (\LFINITCASEARRAY])
 
 
 
@@ -1868,10 +1872,10 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
 
 (TYPERECORD ExpandedName (VOLNUM CHARLIST VERSION)
 
-         (* VERSION is the version indicator (either a positive integer or one of OLD, 
-       OLDEST, NEW) -
-       VOLNUM is the logical volume number, -
-       and the CHARLIST is a list of characters in the name.)
+         (* VERSION is the version indicator (either a positive integer or one of OLD, 
+       OLDEST, NEW) -
+       VOLNUM is the logical volume number, -
+       and the CHARLIST is a list of characters in the name.)
 
                              )
 
@@ -1880,35 +1884,36 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
 
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS CONDCONCAT MACRO [ARGS `(CONCATLIST (for STR in %, (CONS 'LIST ARGS)
-                                                         when STR collect STR])
+[PUTPROPS CONDCONCAT MACRO (ARGS `(CONCATLIST (for STR in %, (CONS 'LIST ARGS) when
+                                                                                       STR
+                                                 collect STR]
 )
 
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS PRINTDIRECTORY MACRO
-          [LAMBDA (STREAM)                               (* hts%: " 6-Aug-85 12:19")
+[PUTPROPS PRINTDIRECTORY MACRO (LAMBDA (STREAM)          (* hts%: " 6-Aug-85 12:19")
 
-         (* * Prints the contents of a Lisp directory --
-       for debugging.)
+         (* * Prints the contents of a Lisp directory --
+       for debugging.)
 
-            (SETFILEPTR (\DTEST STREAM 'STREAM)
-                   0)
-            (bind TYPE LENGTH START until (\EOFP STREAM)
-               do (SETQ START (GETFILEPTR STREAM))
-                     (\LFCheckBang STREAM)
-                     (SETQ TYPE (BIN STREAM))
-                     (SETQ LENGTH (BIN STREAM))
-                     (if (EQ TYPE 1)
-                         then (printout NIL (\WIN STREAM)
-                                         " "
-                                         (\WIN STREAM)
-                                         " "
-                                         (\WIN STREAM)
-                                         " "
-                                         (PACKC (to (BIN STREAM) collect (BIN STREAM)))
-                                         T))
-                     (SETFILEPTR STREAM (PLUS START (TIMES LENGTH BYTESPERWORD])
+                                 (SETFILEPTR (\DTEST STREAM 'STREAM)
+                                        0)
+                                 (bind TYPE LENGTH START until (\EOFP STREAM)
+                                    do (SETQ START (GETFILEPTR STREAM))
+                                          (\LFCheckBang STREAM)
+                                          (SETQ TYPE (BIN STREAM))
+                                          (SETQ LENGTH (BIN STREAM))
+                                          (if (EQ TYPE 1)
+                                              then (printout NIL (\WIN STREAM)
+                                                              " "
+                                                              (\WIN STREAM)
+                                                              " "
+                                                              (\WIN STREAM)
+                                                              " "
+                                                              (PACKC (to (BIN STREAM)
+                                                                        collect (BIN STREAM)))
+                                                              T))
+                                          (SETFILEPTR STREAM (PLUS START (TIMES LENGTH BYTESPERWORD]
 )
 )
 
@@ -2884,16 +2889,16 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
 
 (RPAQQ SCAVENGEDSKDIRECTORYCOMS (
 
-(* ;;; "This module contains routines for scavenging the Lisp directory in the event that it should become smashed.  It used to be in the file SCAVENGEDSKDIRECTORY.")
+(* ;;; "This module contains routines for scavenging the Lisp directory in the event that it should become smashed.  It used to be in the file SCAVENGEDSKDIRECTORY.")
 
                                      
-                                     (* ;; "Directory (LFDIRECTORY) level stuff")
+                                     (* ;; "Directory (LFDIRECTORY) level stuff")
 
                                      (FNS FILENAMEFROMID SCAVENGEDSKDIRECTORY SCAVENGEVOLUME 
                                           \LFScavFileName \LFScavVersion)
                                      (GLOBALVARS \LFtopMonitor)
                                      
-                                     (* ;; "Volume file map (LFFILEMAP) level stuff")
+                                     (* ;; "Volume file map (LFFILEMAP) level stuff")
 
                                      (FNS \VFMGenerateFileIDs)))
 
@@ -3090,80 +3095,81 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
                collect (fetch (Key fileID) of currentKey))))])
 )
 
-(RPAQQ LFPILOTFILECOMS
-       (
+(RPAQQ LFPILOTFILECOMS (
 
-(* ;;; "This module (together with its two sub-modules, FILEMAP and ALLOCATIONMAP) define the necessary subset of the Pilot file system.  This used to be contained in the file LFPILOTFILE.")
+(* ;;; "This module (together with its two sub-modules, FILEMAP and ALLOCATIONMAP) define the necessary subset of the Pilot file system.  This used to be contained in the file LFPILOTFILE.")
 
-        
-        (* ;; "These functions transfer pages to and from the disk")
+                            
+                            (* ;; "These functions transfer pages to and from the disk")
 
-        (FNS \PFGetPhysicalVolumePage)
-        (FNS \PFGetLogicalVolumePage \PFPutLogicalVolumePage)
-        (FNS \PFGetMarkerPage \PFPutMarkerPage)
-        (FNS \PFGetFreePage \PFCreateFreePage)
-        (FNS \PFGetAllocationMapPage \PFPutAllocationMapPage)
-        (FNS \PFGetFileMapPage \PFPutFileMapPage)
-        (FNS \PFGetPage \PFPutPage \PFCreatePage)
-        (FNS \PFTransferFilePage)
-        (FNS \PFTransferPage)
-        [DECLARE%: DONTEVAL@LOAD (P (\LOCKFN '\PFTransferPage]
-        (RESOURCES label)
-        
-        (* ;; "File Descriptor pool for system files")
+                            (FNS \PFGetPhysicalVolumePage)
+                            (FNS \PFGetLogicalVolumePage \PFPutLogicalVolumePage)
+                            (FNS \PFGetMarkerPage \PFPutMarkerPage)
+                            (FNS \PFGetFreePage \PFCreateFreePage)
+                            (FNS \PFGetAllocationMapPage \PFPutAllocationMapPage)
+                            (FNS \PFGetFileMapPage \PFPutFileMapPage)
+                            (FNS \PFGetPage \PFPutPage \PFCreatePage)
+                            (FNS \PFTransferFilePage)
+                            (FNS \PFTransferPage)
+                            [DECLARE%: DONTEVAL@LOAD (P (\LOCKFN '\PFTransferPage]
+                            (RESOURCES label)
+                            
+                            (* ;; "File Descriptor pool for system files")
 
-        (FNS \PFCreateFileDescriptors \PFInitFileDescriptors)
-        (GLOBALVARS \PFLogicalVolumeFileD \PFMarkerFileD \PFFreeFileD \PFAllocationMapFileD 
-               \PFFileMapFileD)
-        (P (\PFCreateFileDescriptors))
-        
-        (* ;; "Physical volume interface")
+                            (FNS \PFCreateFileDescriptors \PFInitFileDescriptors)
+                            (GLOBALVARS \PFLogicalVolumeFileD \PFMarkerFileD \PFFreeFileD 
+                                   \PFAllocationMapFileD \PFFileMapFileD)
+                            (P (\PFCreateFileDescriptors))
+                            
+                            (* ;; "Physical volume interface")
 
-        (FNS \PFCreatePhysicalVolume)
-        (GLOBALVARS \PhysVolumePage)
-        (P (\PFCreatePhysicalVolume))
-        
-        (* ;; "Interface to logical volumes,")
+                            (FNS \PFCreatePhysicalVolume)
+                            (GLOBALVARS \PhysVolumePage)
+                            (P (\PFCreatePhysicalVolume))
+                            
+                            (* ;; "Interface to logical volumes,")
 
-        (FNS \PFCreateVols \PFInitializeVols \PFGetVols \PFGetVol \PFVolumeNumber)
-        (GLOBALVARS \DFSLogicalVolumes \DFSLogicalVolumeHash)
-        (P (\PFCreateVols))
-        (FNS \PFGetLVPage)
-        
-        (* ;; "Pilot integrity")
+                            (FNS \PFCreateVols \PFInitializeVols \PFGetVols \PFGetVol \PFVolumeNumber
+                                 )
+                            (GLOBALVARS \DFSLogicalVolumes \DFSLogicalVolumeHash)
+                            (P (\PFCreateVols))
+                            (FNS \PFGetLVPage)
+                            
+                            (* ;; "Pilot integrity")
 
-        (FNS \PFVersionOK \PFPilotVolumeP)
-        
-        (* ;; "Pilot initialization")
+                            (FNS \PFVersionOK \PFPilotVolumeP)
+                            
+                            (* ;; "Pilot initialization")
 
-        (FNS \PFEnsureInitialized)
-        (GLOBALVARS \PFInitialized)
-        (INITVARS (\PFInitialized NIL)
-               \PFDebugFlag)
-        (P (ADDTOVAR \SYSTEMCACHEVARS \PFInitialized))
-        (P (\PFEnsureInitialized))
-        
-        (* ;; "Root directory management")
+                            (FNS \PFEnsureInitialized)
+                            (GLOBALVARS \PFInitialized)
+                            (INITVARS (\PFInitialized NIL)
+                                   \PFDebugFlag)
+                            (P (ADDTOVAR \SYSTEMCACHEVARS \PFInitialized))
+                            (P (\PFEnsureInitialized))
+                            
+                            (* ;; "Root directory management")
 
-        (FNS \PFFindDirectoryID \PFInsertDirectoryID \PFRemoveDirectoryID)
-        (FNS \PFFindRootDirEntry \PFAddRootDirEntry \PFRemoveRootDirEntry \PFFindRootDirEntryNum 
-             \PFPatchRootDirEntries)
-        (FNS \PFGetRootDirectory \PFPutRootDirectory \PFCreateRootDirectory \PFPurgeRootDirectory)
-        (FNS \GetRootDirectoryType \PFPutRootDirectoryType)
-        
-        (* ;; "Pilot file management")
+                            (FNS \PFFindDirectoryID \PFInsertDirectoryID \PFRemoveDirectoryID)
+                            (FNS \PFFindRootDirEntry \PFAddRootDirEntry \PFRemoveRootDirEntry 
+                                 \PFFindRootDirEntryNum \PFPatchRootDirEntries)
+                            (FNS \PFGetRootDirectory \PFPutRootDirectory \PFCreateRootDirectory 
+                                 \PFPurgeRootDirectory)
+                            (FNS \GetRootDirectoryType \PFPutRootDirectoryType)
+                            
+                            (* ;; "Pilot file management")
 
-        (FNS \PFNewPages \PFTrimHelper \PFFindPageAddr \PFFindFileSize \PFFreeDiskPages 
-             \PFRoomForFile \PFSaveBuffers)
-        
-        (* ;; "Lisp vmem")
+                            (FNS \PFNewPages \PFTrimHelper \PFFindPageAddr \PFFindFileSize 
+                                 \PFFreeDiskPages \PFRoomForFile \PFSaveBuffers)
+                            
+                            (* ;; "Lisp vmem")
 
-        (FNS \PFCurrentVol)
-        
-        (* ;; 
-"Display stub;  real volume display stuff is implemented on a library package called VOLUMEDISPLAY.")
+                            (FNS \PFCurrentVol)
+                            
+                            (* ;; 
+"Display stub;  real volume display stuff is implemented on a library package called VOLUMEDISPLAY.")
 
-        (FNS \PFDsplyVolumes)))
+                            (FNS \PFDsplyVolumes)))
 
 
 
@@ -3700,7 +3706,7 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
 
 (RPAQ? \PFDebugFlag NIL)
 
-(ADDTOVAR \SYSTEMCACHEVARS \PFInitialized)
+(ADDTOVAR \SYSTEMCACHEVARS \PFInitialized)
 
 (\PFEnsureInitialized)
 
@@ -4127,36 +4133,38 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
         then (\DSKDISPLAY.UPDATE])
 )
 
-(RPAQQ LFALLOCATIONMAPCOMS
-       (
+(RPAQQ LFALLOCATIONMAPCOMS (
 
-(* ;;; "Implements the 1108 file system volume file map.  Very roughly translates the Pilot file VolAllocMapImpl.mesa.  Used to be contained in the separate file LFALLOCATIONMAP.  Must be loaded after the PILOTFILE module.")
+(* ;;; "Implements the 1108 file system volume file map.  Very roughly translates the Pilot file VolAllocMapImpl.mesa.  Used to be contained in the separate file LFALLOCATIONMAP.  Must be loaded after the PILOTFILE module.")
 
-        
-        (* ;; "Needed improvement : Restructure interface with FILEIO so that a page can be allocated and written in one fell swoop.  MFile/Pilot have a special interface for this.")
+                                
+                                (* ;; "Needed improvement : Restructure interface with FILEIO so that a page can be allocated and written in one fell swoop.  MFile/Pilot have a special interface for this.")
 
-        (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (BITSPERPAGE 4096)))
-        
-        (* ;; "Public routines")
+                                (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (BITSPERPAGE 4096)))
+                                
+                                (* ;; "Public routines")
 
-        (FNS \VAMAllocPageGroup \VAMFreePageGroup \VAMInit \VAMRecomputeFreePageCount)
-        
-        (* ;; "Private routines:")
+                                (FNS \VAMAllocPageGroup \VAMFreePageGroup \VAMInit 
+                                     \VAMRecomputeFreePageCount)
+                                
+                                (* ;; "Private routines:")
 
-        (FNS \VAMFilePageNumber \VAMEnoughSpace \VAMFindFreePages \VAMCheckEndOfVol \VAMUpdateVAM 
-             \VAMAdjustGroup)
-        (RESOURCES \DFSVAMpage \DFSVAMjunkPage)
-        (GLOBALVARS \VAMmonitor)
-        [INITVARS (\VAMmonitor (CREATE.MONITORLOCK 'VAMmonitor]
-        
-        (* ;; "buffer management")
+                                (FNS \VAMFilePageNumber \VAMEnoughSpace \VAMFindFreePages 
+                                     \VAMCheckEndOfVol \VAMUpdateVAM \VAMAdjustGroup)
+                                (RESOURCES \DFSVAMpage \DFSVAMjunkPage)
+                                (GLOBALVARS \VAMmonitor)
+                                [INITVARS (\VAMmonitor (CREATE.MONITORLOCK 'VAMmonitor]
+                                
+                                (* ;; "buffer management")
 
-        (FNS \VAMGetVAMPageFor \VAMBufferInit \VAMBufferSave \VAMMarkBufferDirty)
-        (GLOBALVARS \VAMbuffer \VAMbufferVolume \VAMbufferVolumePage \VAMbufferDirty)
-        
-        (* ;; "Initialize VAM")
+                                (FNS \VAMGetVAMPageFor \VAMBufferInit \VAMBufferSave 
+                                     \VAMMarkBufferDirty)
+                                (GLOBALVARS \VAMbuffer \VAMbufferVolume \VAMbufferVolumePage 
+                                       \VAMbufferDirty)
+                                
+                                (* ;; "Initialize VAM")
 
-        (P (\VAMInit))))
+                                (P (\VAMInit))))
 
 
 
@@ -4552,10 +4560,10 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
 
 (\VAMInit)
 
-(RPAQQ LFFILEMAPCOMS
+(RPAQQ LFFILEMAPCOMS 
        (
 
-(* ;;; "Implements the volume file map, which maps Pilot file ID numbers onto runs of disk pages.  Roughly equivalent to the Pilot file VolFileMapImpl.mesa.  Must be loaded after the PILOTFILE module.  Used to be contained in a separate file called LFFILEMAP.")
+(* ;;; "Implements the volume file map, which maps Pilot file ID numbers onto runs of disk pages.  Roughly equivalent to the Pilot file VolFileMapImpl.mesa.  Must be loaded after the PILOTFILE module.  Used to be contained in a separate file called LFFILEMAP.")
 
         (DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS Key Interval Index BufferArray Buffer)
                (RECORDS \BTREEBUF)
@@ -4565,15 +4573,15 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
                (FNS ShowIntervals))
         (INITRECORDS \BTREEBUF)
         
-        (* ;; "Initialization routines")
+        (* ;; "Initialization routines")
 
         (FNS \VFMInit)
         
-        (* ;; "The following are public entry points to the volume file map module")
+        (* ;; "The following are public entry points to the volume file map module")
 
         (FNS \VFMDeletePageGroup \VFMGetPageGroup \VFMInsertPageGroup)
         
-        (* ;; "The following are routines internal to the volume file map module.")
+        (* ;; "The following are routines internal to the volume file map module.")
 
         (FNS \VFMContextSet \VFMCreateVPage \VFMDelete \VFMDelete1 \VFMDelete2 \VFMFind \VFMFreeVPage
              \VFMGet \VFMGet1 \VFMInsert \VFMInsert1 \VFMLower \VFMMerge \VFMMerge1 \VFMPutNext 
@@ -4581,23 +4589,23 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
         (GLOBALVARS \VFMmaxID \VFMmaxKey \VFMnullKey \VFMvolumeHandle \VFMinterval \VFMold \VFMlow 
                \VFMhigh \VFMoldPtr \VFMlowPtr \VFMhighPtr \VFMmonitor)
         
-        (* ;; "Buffer management")
+        (* ;; "Buffer management")
 
         (FNS \VFMGetBufferFor \VFMSaveBuffer \VFMClearBuffers \VFMKillBuffer \VFMCorrectBufferP 
              \VFMMarkBufferDirty)
         (GLOBALVARS \VFMbufferPool \VFMbufferSize \VFMbuffer \VFMxtraBuffer)
         (INITVARS (\VFMbufferSize 10))
         
-        (* ;; "Interval cache interface")
+        (* ;; "Interval cache interface")
 
         (FNS \VFMCreateIntervals \VFMClearIntervals \VFMGetInterval \VFMBlankInterval)
         (GLOBALVARS \VFMintervals)
         
-        (* ;; "BLT routine that doesn't stomp on itself for overlapping intervals")
+        (* ;; "BLT routine that doesn't stomp on itself for overlapping intervals")
 
         (FNS \VFMSmartBLT)
         
-        (* ;; "Loading initialization")
+        (* ;; "Loading initialization")
 
         (FNS \VFMAtLoad)
         (P (\VFMAtLoad))))
@@ -4626,8 +4634,8 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
                            Index)
 
 (MESARECORD Buffer ((data BufferArray)
-                        (used WORD))                         (* This is the structure for a BTree 
-                                                           page)
+                        (used WORD))                         (* This is the structure for a BTree 
+                                                           page)
                        (CREATE (create Page))
                        (TYPE? (type? Page DATUM)))
 )
@@ -5646,78 +5654,78 @@ Copyright (c) 1985-1988, 1990, 1993, 2021 by Venue & Xerox Corporation.
 
 (\VFMAtLoad)
 
-(PUTPROPS LOCALFILE MAKEFILE-ENVIRONMENT (:READTABLE "INTERLISP" :PACKAGE "INTERLISP"))
-(PUTPROPS LOCALFILE COPYRIGHT ("Venue & Xerox Corporation" 1985 1986 1987 1988 1990 1993 2021))
+(PUTPROPS LOCALFILE MAKEFILE-ENVIRONMENT (:READTABLE "INTERLISP" :PACKAGE "INTERLISP"))
+(PUTPROPS LOCALFILE COPYRIGHT ("Venue & Xerox Corporation" 1985 1986 1987 1988 1990 1993))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (1654 2969 (\PFFetchString 1664 . 2297) (\PFReplaceString 2299 . 2967)) (35342 40139 (
-CREATEDSKDIRECTORY 35352 . 36705) (PURGEDSKDIRECTORY 36707 . 38706) (LISPDIRECTORYP 38708 . 39164) (
-VOLUMES 39166 . 39846) (VOLUMESIZE 39848 . 40137)) (40140 40893 (\DFSCurrentVolume 40150 . 40525) (
-\DFSFreeDiskPages 40527 . 40891)) (40894 42363 (\LFEntryPoint 40904 . 41935) (\LFNormalizeVolumeName 
-41937 . 42361)) (42399 46155 (\LFCreateDevice 42409 . 44940) (\LFOpenDevice 44942 . 45775) (
-\LFCloseDevice 45777 . 46153)) (46384 63722 (\LFOpenFile 46394 . 50798) (\LFGetStreamForFile 50800 . 
-54353) (\LFOpenOldFile 54355 . 56354) (\LFGenFileID 56356 . 56657) (\LFCreateFile 56659 . 59409) (
-\LFMakeLeaderPage 59411 . 61400) (\LFUpdateLeaderPage 61402 . 63327) (\LFWriteLeaderPage 63329 . 63720
-)) (63723 65229 (\LFCloseFile 63733 . 65227)) (65230 66465 (\LFDeleteFile 65240 . 66463)) (66466 69900
- (\LFReadPages 66476 . 69898)) (69901 74116 (\LFWritePages 69911 . 71115) (\LFExtendFileIfNecessary 
-71117 . 72844) (\LFExtendFile 72846 . 74114)) (74117 77774 (\LFGetFileInfo 74127 . 76383) (
-\LFSetFileInfo 76385 . 77772)) (77775 78266 (\LFGetFileName 77785 . 78264)) (78267 80662 (\LFEventFn 
-78277 . 80660)) (80663 82221 (\LFDirectoryNameP 80673 . 82219)) (82222 84360 (\LFTruncateFile 82232 . 
-84358)) (84361 90137 (\LFRenameFile 84371 . 90135)) (95625 99114 (\LFFindDirectory 95635 . 96102) (
-\LFFindDirectoryVol 96104 . 97661) (\LFParseFileName 97663 . 99112)) (99165 104134 (
-\LFMakeVolumeDirectory 99175 . 100721) (\LFDirectoryP 100723 . 102897) (\LFPurgeDirectory 102899 . 
-103825) (\LFCloseDirectory 103827 . 104132)) (104220 112016 (\LFMakeDirEntry 104230 . 106352) (
-\LFRemoveDirEntry 106354 . 107781) (\LFReadFileID 107783 . 108340) (\LFFindDirHole 108342 . 110457) (
-\LFMakeDirHole 110459 . 111774) (\LFCheckBang 111776 . 112014)) (112017 118265 (\LFDirectorySearch 
-112027 . 115500) (\LFVersions 115502 . 118263)) (118266 125624 (\LFFileSpec 118276 . 121815) (
-\LFUnpackName 121817 . 123868) (\LFFullFileName 123870 . 124727) (\LFFileName 124729 . 125622)) (
-125625 126719 (\LFDirectoryScrambled 125635 . 126717)) (126720 127291 (\LFDWIN 126730 . 127006) (
-\LFDWOUT 127008 . 127289)) (127331 139924 (\LFGenerateFiles 127341 . 131901) (\LFFindNextFile 131903
- . 134243) (\LFSortFiles 134245 . 135179) (\LFHighestVersions 135181 . 135934) (\LFFindInfo 135936 . 
-138817) (\LFReturnNextFile 138819 . 139413) (\LFReturnInfo 139415 . 139922)) (140038 140976 (
-\LFGetDirectory 140048 . 140255) (\LFPutDirectory 140257 . 140486) (\LFCreateDirectories 140488 . 
-140974)) (141112 142480 (\LFINITCASEARRAY 141122 . 142265) (\LFCASEARRAYFETCH 142267 . 142478)) (
-143602 151967 (FILENAMEFROMID 143612 . 144733) (SCAVENGEDSKDIRECTORY 144735 . 150350) (SCAVENGEVOLUME 
-150352 . 150547) (\LFScavFileName 150549 . 151505) (\LFScavVersion 151507 . 151965)) (152090 153290 (
-\VFMGenerateFileIDs 152100 . 153288)) (156338 156531 (\PFGetPhysicalVolumePage 156348 . 156529)) (
-156532 157174 (\PFGetLogicalVolumePage 156542 . 156856) (\PFPutLogicalVolumePage 156858 . 157172)) (
-157175 157955 (\PFGetMarkerPage 157185 . 157568) (\PFPutMarkerPage 157570 . 157953)) (157956 158742 (
-\PFGetFreePage 157966 . 158361) (\PFCreateFreePage 158363 . 158740)) (158743 159421 (
-\PFGetAllocationMapPage 158753 . 159097) (\PFPutAllocationMapPage 159099 . 159419)) (159422 160052 (
-\PFGetFileMapPage 159432 . 159740) (\PFPutFileMapPage 159742 . 160050)) (160053 161346 (\PFGetPage 
-160063 . 160497) (\PFPutPage 160499 . 160874) (\PFCreatePage 160876 . 161344)) (161347 164311 (
-\PFTransferFilePage 161357 . 164309)) (164312 165715 (\PFTransferPage 164322 . 165713)) (166517 172216
- (\PFCreateFileDescriptors 166527 . 169538) (\PFInitFileDescriptors 169540 . 172214)) (172431 172818 (
-\PFCreatePhysicalVolume 172441 . 172816)) (172964 175675 (\PFCreateVols 172974 . 174365) (
-\PFInitializeVols 174367 . 174725) (\PFGetVols 174727 . 175125) (\PFGetVol 175127 . 175271) (
-\PFVolumeNumber 175273 . 175673)) (175789 176424 (\PFGetLVPage 175799 . 176422)) (176458 177483 (
-\PFVersionOK 176468 . 177065) (\PFPilotVolumeP 177067 . 177481)) (177522 179067 (\PFEnsureInitialized 
-177532 . 179065)) (179315 180902 (\PFFindDirectoryID 179325 . 179816) (\PFInsertDirectoryID 179818 . 
-180311) (\PFRemoveDirectoryID 180313 . 180900)) (180903 184231 (\PFFindRootDirEntry 180913 . 181643) (
-\PFAddRootDirEntry 181645 . 182311) (\PFRemoveRootDirEntry 182313 . 183247) (\PFFindRootDirEntryNum 
-183249 . 183910) (\PFPatchRootDirEntries 183912 . 184229)) (184232 187435 (\PFGetRootDirectory 184242
- . 185314) (\PFPutRootDirectory 185316 . 186078) (\PFCreateRootDirectory 186080 . 186894) (
-\PFPurgeRootDirectory 186896 . 187433)) (187436 188332 (\GetRootDirectoryType 187446 . 187668) (
-\PFPutRootDirectoryType 187670 . 188330)) (188372 197368 (\PFNewPages 188382 . 190895) (\PFTrimHelper 
-190897 . 193619) (\PFFindPageAddr 193621 . 195201) (\PFFindFileSize 195203 . 195856) (\PFFreeDiskPages
- 195858 . 196221) (\PFRoomForFile 196223 . 197120) (\PFSaveBuffers 197122 . 197366)) (197396 200157 (
-\PFCurrentVol 197406 . 200155)) (200275 200549 (\PFDsplyVolumes 200285 . 200547)) (202416 211074 (
-\VAMAllocPageGroup 202426 . 206276) (\VAMFreePageGroup 206278 . 209749) (\VAMInit 209751 . 209980) (
-\VAMRecomputeFreePageCount 209982 . 211072)) (211110 217837 (\VAMFilePageNumber 211120 . 211572) (
-\VAMEnoughSpace 211574 . 212614) (\VAMFindFreePages 212616 . 215060) (\VAMCheckEndOfVol 215062 . 
-215445) (\VAMUpdateVAM 215447 . 216820) (\VAMAdjustGroup 216822 . 217835)) (218139 220266 (
-\VAMGetVAMPageFor 218149 . 219297) (\VAMBufferInit 219299 . 219644) (\VAMBufferSave 219646 . 220014) (
-\VAMMarkBufferDirty 220016 . 220264)) (224345 225879 (ShowIntervals 224355 . 225877)) (226122 226574 (
-\VFMInit 226132 . 226572)) (226660 243898 (\VFMDeletePageGroup 226670 . 237396) (\VFMGetPageGroup 
-237398 . 239953) (\VFMInsertPageGroup 239955 . 243896)) (243983 269051 (\VFMContextSet 243993 . 244196
-) (\VFMCreateVPage 244198 . 245125) (\VFMDelete 245127 . 246749) (\VFMDelete1 246751 . 247992) (
-\VFMDelete2 247994 . 249520) (\VFMFind 249522 . 251071) (\VFMFreeVPage 251073 . 251864) (\VFMGet 
-251866 . 253415) (\VFMGet1 253417 . 254331) (\VFMInsert 254333 . 255102) (\VFMInsert1 255104 . 257002)
- (\VFMLower 257004 . 258197) (\VFMMerge 258199 . 259800) (\VFMMerge1 259802 . 263966) (\VFMPutNext 
-263968 . 265295) (\VFMReadNext 265297 . 266517) (\VFMSplit 266519 . 267208) (\VFMSplit1 267210 . 
-269049)) (269280 273683 (\VFMGetBufferFor 269290 . 270987) (\VFMSaveBuffer 270989 . 271720) (
-\VFMClearBuffers 271722 . 271910) (\VFMKillBuffer 271912 . 272756) (\VFMCorrectBufferP 272758 . 273135
-) (\VFMMarkBufferDirty 273137 . 273681)) (273864 278050 (\VFMCreateIntervals 273874 . 274767) (
-\VFMClearIntervals 274769 . 275130) (\VFMGetInterval 275132 . 277022) (\VFMBlankInterval 277024 . 
-278048)) (278200 278877 (\VFMSmartBLT 278210 . 278875)) (278918 279663 (\VFMAtLoad 278928 . 279661))))
+  (FILEMAP (NIL (2508 3823 (\PFFetchString 2518 . 3151) (\PFReplaceString 3153 . 3821)) (37577 42374 (
+CREATEDSKDIRECTORY 37587 . 38940) (PURGEDSKDIRECTORY 38942 . 40941) (LISPDIRECTORYP 40943 . 41399) (
+VOLUMES 41401 . 42081) (VOLUMESIZE 42083 . 42372)) (42375 43128 (\DFSCurrentVolume 42385 . 42760) (
+\DFSFreeDiskPages 42762 . 43126)) (43129 44598 (\LFEntryPoint 43139 . 44170) (\LFNormalizeVolumeName 
+44172 . 44596)) (44634 48390 (\LFCreateDevice 44644 . 47175) (\LFOpenDevice 47177 . 48010) (
+\LFCloseDevice 48012 . 48388)) (48619 65957 (\LFOpenFile 48629 . 53033) (\LFGetStreamForFile 53035 . 
+56588) (\LFOpenOldFile 56590 . 58589) (\LFGenFileID 58591 . 58892) (\LFCreateFile 58894 . 61644) (
+\LFMakeLeaderPage 61646 . 63635) (\LFUpdateLeaderPage 63637 . 65562) (\LFWriteLeaderPage 65564 . 65955
+)) (65958 67464 (\LFCloseFile 65968 . 67462)) (67465 68700 (\LFDeleteFile 67475 . 68698)) (68701 72135
+ (\LFReadPages 68711 . 72133)) (72136 76351 (\LFWritePages 72146 . 73350) (\LFExtendFileIfNecessary 
+73352 . 75079) (\LFExtendFile 75081 . 76349)) (76352 80009 (\LFGetFileInfo 76362 . 78618) (
+\LFSetFileInfo 78620 . 80007)) (80010 80501 (\LFGetFileName 80020 . 80499)) (80502 82897 (\LFEventFn 
+80512 . 82895)) (82898 84456 (\LFDirectoryNameP 82908 . 84454)) (84457 86595 (\LFTruncateFile 84467 . 
+86593)) (86596 92372 (\LFRenameFile 86606 . 92370)) (99417 102906 (\LFFindDirectory 99427 . 99894) (
+\LFFindDirectoryVol 99896 . 101453) (\LFParseFileName 101455 . 102904)) (102957 107926 (
+\LFMakeVolumeDirectory 102967 . 104513) (\LFDirectoryP 104515 . 106689) (\LFPurgeDirectory 106691 . 
+107617) (\LFCloseDirectory 107619 . 107924)) (108012 115808 (\LFMakeDirEntry 108022 . 110144) (
+\LFRemoveDirEntry 110146 . 111573) (\LFReadFileID 111575 . 112132) (\LFFindDirHole 112134 . 114249) (
+\LFMakeDirHole 114251 . 115566) (\LFCheckBang 115568 . 115806)) (115809 122057 (\LFDirectorySearch 
+115819 . 119292) (\LFVersions 119294 . 122055)) (122058 129416 (\LFFileSpec 122068 . 125607) (
+\LFUnpackName 125609 . 127660) (\LFFullFileName 127662 . 128519) (\LFFileName 128521 . 129414)) (
+129417 130511 (\LFDirectoryScrambled 129427 . 130509)) (130512 131083 (\LFDWIN 130522 . 130798) (
+\LFDWOUT 130800 . 131081)) (131123 143716 (\LFGenerateFiles 131133 . 135693) (\LFFindNextFile 135695
+ . 138035) (\LFSortFiles 138037 . 138971) (\LFHighestVersions 138973 . 139726) (\LFFindInfo 139728 . 
+142609) (\LFReturnNextFile 142611 . 143205) (\LFReturnInfo 143207 . 143714)) (143830 144768 (
+\LFGetDirectory 143840 . 144047) (\LFPutDirectory 144049 . 144278) (\LFCreateDirectories 144280 . 
+144766)) (144904 146272 (\LFINITCASEARRAY 144914 . 146057) (\LFCASEARRAYFETCH 146059 . 146270)) (
+147394 155759 (FILENAMEFROMID 147404 . 148525) (SCAVENGEDSKDIRECTORY 148527 . 154142) (SCAVENGEVOLUME 
+154144 . 154339) (\LFScavFileName 154341 . 155297) (\LFScavVersion 155299 . 155757)) (155882 157082 (
+\VFMGenerateFileIDs 155892 . 157080)) (161347 161540 (\PFGetPhysicalVolumePage 161357 . 161538)) (
+161541 162183 (\PFGetLogicalVolumePage 161551 . 161865) (\PFPutLogicalVolumePage 161867 . 162181)) (
+162184 162964 (\PFGetMarkerPage 162194 . 162577) (\PFPutMarkerPage 162579 . 162962)) (162965 163751 (
+\PFGetFreePage 162975 . 163370) (\PFCreateFreePage 163372 . 163749)) (163752 164430 (
+\PFGetAllocationMapPage 163762 . 164106) (\PFPutAllocationMapPage 164108 . 164428)) (164431 165061 (
+\PFGetFileMapPage 164441 . 164749) (\PFPutFileMapPage 164751 . 165059)) (165062 166355 (\PFGetPage 
+165072 . 165506) (\PFPutPage 165508 . 165883) (\PFCreatePage 165885 . 166353)) (166356 169320 (
+\PFTransferFilePage 166366 . 169318)) (169321 170724 (\PFTransferPage 169331 . 170722)) (171526 177225
+ (\PFCreateFileDescriptors 171536 . 174547) (\PFInitFileDescriptors 174549 . 177223)) (177440 177827 (
+\PFCreatePhysicalVolume 177450 . 177825)) (177973 180684 (\PFCreateVols 177983 . 179374) (
+\PFInitializeVols 179376 . 179734) (\PFGetVols 179736 . 180134) (\PFGetVol 180136 . 180280) (
+\PFVolumeNumber 180282 . 180682)) (180798 181433 (\PFGetLVPage 180808 . 181431)) (181467 182492 (
+\PFVersionOK 181477 . 182074) (\PFPilotVolumeP 182076 . 182490)) (182531 184076 (\PFEnsureInitialized 
+182541 . 184074)) (184320 185907 (\PFFindDirectoryID 184330 . 184821) (\PFInsertDirectoryID 184823 . 
+185316) (\PFRemoveDirectoryID 185318 . 185905)) (185908 189236 (\PFFindRootDirEntry 185918 . 186648) (
+\PFAddRootDirEntry 186650 . 187316) (\PFRemoveRootDirEntry 187318 . 188252) (\PFFindRootDirEntryNum 
+188254 . 188915) (\PFPatchRootDirEntries 188917 . 189234)) (189237 192440 (\PFGetRootDirectory 189247
+ . 190319) (\PFPutRootDirectory 190321 . 191083) (\PFCreateRootDirectory 191085 . 191899) (
+\PFPurgeRootDirectory 191901 . 192438)) (192441 193337 (\GetRootDirectoryType 192451 . 192673) (
+\PFPutRootDirectoryType 192675 . 193335)) (193377 202373 (\PFNewPages 193387 . 195900) (\PFTrimHelper 
+195902 . 198624) (\PFFindPageAddr 198626 . 200206) (\PFFindFileSize 200208 . 200861) (\PFFreeDiskPages
+ 200863 . 201226) (\PFRoomForFile 201228 . 202125) (\PFSaveBuffers 202127 . 202371)) (202401 205162 (
+\PFCurrentVol 202411 . 205160)) (205280 205554 (\PFDsplyVolumes 205290 . 205552)) (208010 216668 (
+\VAMAllocPageGroup 208020 . 211870) (\VAMFreePageGroup 211872 . 215343) (\VAMInit 215345 . 215574) (
+\VAMRecomputeFreePageCount 215576 . 216666)) (216704 223431 (\VAMFilePageNumber 216714 . 217166) (
+\VAMEnoughSpace 217168 . 218208) (\VAMFindFreePages 218210 . 220654) (\VAMCheckEndOfVol 220656 . 
+221039) (\VAMUpdateVAM 221041 . 222414) (\VAMAdjustGroup 222416 . 223429)) (223733 225860 (
+\VAMGetVAMPageFor 223743 . 224891) (\VAMBufferInit 224893 . 225238) (\VAMBufferSave 225240 . 225608) (
+\VAMMarkBufferDirty 225610 . 225858)) (229940 231474 (ShowIntervals 229950 . 231472)) (231717 232169 (
+\VFMInit 231727 . 232167)) (232255 249493 (\VFMDeletePageGroup 232265 . 242991) (\VFMGetPageGroup 
+242993 . 245548) (\VFMInsertPageGroup 245550 . 249491)) (249578 274646 (\VFMContextSet 249588 . 249791
+) (\VFMCreateVPage 249793 . 250720) (\VFMDelete 250722 . 252344) (\VFMDelete1 252346 . 253587) (
+\VFMDelete2 253589 . 255115) (\VFMFind 255117 . 256666) (\VFMFreeVPage 256668 . 257459) (\VFMGet 
+257461 . 259010) (\VFMGet1 259012 . 259926) (\VFMInsert 259928 . 260697) (\VFMInsert1 260699 . 262597)
+ (\VFMLower 262599 . 263792) (\VFMMerge 263794 . 265395) (\VFMMerge1 265397 . 269561) (\VFMPutNext 
+269563 . 270890) (\VFMReadNext 270892 . 272112) (\VFMSplit 272114 . 272803) (\VFMSplit1 272805 . 
+274644)) (274875 279278 (\VFMGetBufferFor 274885 . 276582) (\VFMSaveBuffer 276584 . 277315) (
+\VFMClearBuffers 277317 . 277505) (\VFMKillBuffer 277507 . 278351) (\VFMCorrectBufferP 278353 . 278730
+) (\VFMMarkBufferDirty 278732 . 279276)) (279459 283645 (\VFMCreateIntervals 279469 . 280362) (
+\VFMClearIntervals 280364 . 280725) (\VFMGetInterval 280727 . 282617) (\VFMBlankInterval 282619 . 
+283643)) (283795 284472 (\VFMSmartBLT 283805 . 284470)) (284513 285258 (\VFMAtLoad 284523 . 285256))))
 )
 STOP
diff --git a/sources/LOCALFILE.LCOM b/sources/LOCALFILE.LCOM
index 2e3db2a8..2476bf49 100644
Binary files a/sources/LOCALFILE.LCOM and b/sources/LOCALFILE.LCOM differ
diff --git a/sources/NSFILING b/sources/NSFILING
index d19c37b8..d72afd0a 100644
--- a/sources/NSFILING
+++ b/sources/NSFILING
@@ -1,15 +1,13 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED " 5-Sep-2021 08:23:45" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>NSFILING.;2 294878 
+(FILECREATED "28-Jun-99 17:07:34" {DSK}<project>medley3.5>sources>NSFILING.;2 294552 
 
-      changes to%:  (FNS \NSFILING.LOGIN \NSFILING.HOSTNAMEP \NSFILING.INIT)
+      changes to%:  (FNS \NSFILING.GENERATEFILES)
 
-      previous date%: "28-Jun-99 17:07:34" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>NSFILING.;1)
+      previous date%: "19-Jan-93 10:59:09" {DSK}<project>medley3.5>sources>NSFILING.;1)
 
 
 (* ; "
-Copyright (c) 1983-1988, 1990, 1993, 1999, 2021 by Venue & Xerox Corporation.
+Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1993, 1999 by Venue & Xerox Corporation.  All rights reserved.
 ")
 
 (PRETTYCOMPRINT NSFILINGCOMS)
@@ -573,13 +571,13 @@ Copyright (c) 1983-1988, 1990, 1993, 1999, 2021 by Venue & Xerox Corporation.
 
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS WITHOUT.SESSION.MONITOR MACRO [(SESSION . FORMS)
-                                                 (LET ((LOCK (fetch FSSESSIONLOCK of SESSION)
-                                                             ))
-                                                      (DECLARE (LOCALVARS LOCK))
-                                                      (RELEASE.MONITORLOCK LOCK)
-                                                      (PROG1 (PROGN . FORMS)
-                                                             (OBTAIN.MONITORLOCK LOCK])
+(PUTPROPS WITHOUT.SESSION.MONITOR  MACRO
+   [(SESSION . FORMS)
+    (LET ((LOCK (fetch FSSESSIONLOCK of SESSION)))
+         (DECLARE (LOCALVARS LOCK))
+         (RELEASE.MONITORLOCK LOCK)
+         (PROG1 (PROGN . FORMS)
+                (OBTAIN.MONITORLOCK LOCK])
 )
 
 (DECLARE%: DOEVAL@COMPILE DONTCOPY
@@ -4660,48 +4658,48 @@ Copyright (c) 1983-1988, 1990, 1993, 1999, 2021 by Venue & Xerox Corporation.
 (ADDTOVAR LAMA FILING.CALL)
 )
 (PUTPROPS NSFILING COPYRIGHT ("Venue & Xerox Corporation" 1983 1984 1985 1986 1987 1988 1990 1993 1999
- 2021))
+))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (34555 35401 (\FILINGSESSION.DEFPRINT 34565 . 35079) (\FILINGHANDLE.DEFPRINT 35081 . 
-35399)) (35402 39129 (\GET.FILING.ATTRIBUTE 35412 . 36725) (\PUT.FILING.ATTRIBUTE 36727 . 37925) (
-\GET.SESSION.HANDLE 37927 . 38346) (\PUT.SESSION.HANDLE 38348 . 39127)) (42161 78110 (
-\GETFILINGCONNECTION 42171 . 44066) (\NSFILING.GET.NEW.SESSION 44068 . 44553) (\NSFILING.GET.STREAM 
-44555 . 46331) (\NSFILING.COURIER.OPEN 46333 . 46598) (\NSFILING.CLOSE.BULKSTREAM 46600 . 46878) (
-\NSFILING.RELEASE.BULKSTREAM 46880 . 47809) (FILING.CALL 47811 . 56410) (\NSFILING.LOGIN 56412 . 69591
-) (\NSFILING.AFTER.LOGIN 69593 . 70124) (\NSFILING.SET.CONTINUANCE 70126 . 70799) (\NSFILING.LOGOUT 
-70801 . 70982) (\NSFILING.DISCARD.SESSION 70984 . 72681) (\VALID.FILING.CONNECTIONP 72683 . 74279) (
-\NSFILING.CLOSE.CONNECTIONS 74281 . 77143) (BREAK.NSFILING.CONNECTION 77145 . 78108)) (78188 91568 (
-\NSFILING.CONNECT 78198 . 80615) (\NSFILING.MAYBE.CREATE 80617 . 83656) (\NSFILING.REMOVEQUOTES 83658
- . 84283) (\NSFILING.ADDQUOTES 84285 . 87023) (\FILING.ATTRIBUTE.TYPE.SEQUENCE 87025 . 87239) (
-\FILING.ATTRIBUTE.TYPE 87241 . 87744) (\LISP.TO.NSFILING.ATTRIBUTE 87746 . 91566)) (91604 144728 (
-\NSFILING.GETFILE 91614 . 112897) (\NSFILING.LOOKUP.CACHE 112899 . 114961) (\NSFILING.ADD.TO.CACHE 
-114963 . 117326) (\NSFILING.OPEN.HANDLE 117328 . 119431) (\NSFILING.CONFLICTP 119433 . 120927) (
-\NSFILING.CHECK.ACCESS 120929 . 122292) (\NSFILING.FILLIN.ATTRIBUTES 122294 . 124041) (
-\NSFILING.COMPOSE.PATHNAME 124043 . 124544) (\NSFILING.PARSE.FILENAME 124546 . 130083) (
-\NSFILING.ERRORHANDLER 130085 . 134903) (\NSFILING.WHENCLOSED 134905 . 136177) (\NSFILING.CLOSE.HANDLE
- 136179 . 136472) (\NSFILING.FULLNAME 136474 . 144726)) (144761 212876 (\NSFILING.OPENFILE 144771 . 
-149963) (\NSFILING.HANDLE.ERROR 149965 . 150843) (\NSFILING.CLOSEFILE 150845 . 153468) (
-\NSFILING.EVENTFN 153470 . 156228) (\NSFILING.DELETEFILE 156230 . 157898) (\NSFILING.CHILDLESS-P 
-157900 . 158603) (\NSFILING.DIRECTORYNAMEP 158605 . 159012) (\NSFILING.HOSTNAMEP 159014 . 162109) (
-\NSFILING.GETFILENAME 162111 . 162371) (\NSFILING.GETFILEINFO 162373 . 165781) (
-\NSFILING.GET.ATTRIBUTES 165783 . 166179) (\NSFILING.GETFILEINFO.FROM.PLIST 166181 . 169141) (
-\NSFILING.GDATE 169143 . 169333) (\NSFILING.SETFILEINFO 169335 . 172517) (\NSFILING.GET/SETINFO 172519
- . 173983) (\NSFILING.UPDATE.ATTRIBUTES 173985 . 174956) (\NSFILING.GETEOFPTR 174958 . 175492) (
-\NSFILING.GENERATEFILES 175494 . 191356) (\NSFILING.GENERATE.STARS 191358 . 191948) (
-\NSFILING.NEXTFILE 191950 . 193528) (\NSFILING.FILEINFOFN 193530 . 193757) (\NSFILING.RENAMEFILE 
-193759 . 194359) (\NSFILING.COPYFILE 194361 . 194959) (\NSFILING.COPY/RENAME 194961 . 212874)) (212915
- 263523 (\NSRANDOM.CLOSEFILE 212925 . 214721) (\NSRANDOM.RELEASE.HANDLE 214723 . 215916) (
-\NSRANDOM.RELEASE.LOCK 215918 . 216257) (\NSRANDOM.RELEASE.IF.ERROR 216259 . 216459) (
-\NSRANDOM.CREATE.STREAM 216461 . 222527) (\NSRANDOM.READPAGES 222529 . 227319) (\NSRANDOM.READ.SEGMENT
- 227321 . 237847) (\NSRANDOM.PREPARE.CACHE 237849 . 245181) (\NSRANDOM.FETCH.CACHE 245183 . 247356) (
-\NSRANDOM.CHECK.CACHE 247358 . 248403) (\NSRANDOM.WRITEPAGES 248405 . 253948) (\NSRANDOM.WRITE.SEGMENT
- 253950 . 255544) (\NSRANDOM.WROTE.HANDLE 255546 . 257352) (\NSRANDOM.SETEOFPTR 257354 . 258883) (
-\NSRANDOM.TRUNCATEFILE 258885 . 261799) (\NSRANDOM.UPDATE.VALIDATION 261801 . 262704) (
-\NSRANDOM.OPENFILE 262706 . 263521)) (263555 278063 (\NSRANDOM.HANDLE.ERROR 263565 . 266011) (
-\NSRANDOM.PROCEEDABLE.ERROR 266013 . 267269) (\NSRANDOM.REESTABLISH 267271 . 268743) (
-\NSRANDOM.STREAM.CHANGED 268745 . 270015) (\NSRANDOM.DESTROY.STREAM 270017 . 270787) (
-\NSRANDOM.SESSION.WATCHER 270789 . 276698) (\NSRANDOM.ENSURE.WATCHER 276700 . 278061)) (278104 289314 
-(GC-FILING-DIRECTORY 278114 . 285537) (\NSGC.COLLECT.DIRECTORIES 285539 . 289312)) (289364 294055 (
-\NSFILING.DESERIALIZE 289374 . 291476) (\NSFILING.DESERIALIZE1 291478 . 294053)) (294056 294543 (
-\NSFILING.INIT 294066 . 294541)))))
+  (FILEMAP (NIL (34234 35080 (\FILINGSESSION.DEFPRINT 34244 . 34758) (\FILINGHANDLE.DEFPRINT 34760 . 
+35078)) (35081 38808 (\GET.FILING.ATTRIBUTE 35091 . 36404) (\PUT.FILING.ATTRIBUTE 36406 . 37604) (
+\GET.SESSION.HANDLE 37606 . 38025) (\PUT.SESSION.HANDLE 38027 . 38806)) (41840 77789 (
+\GETFILINGCONNECTION 41850 . 43745) (\NSFILING.GET.NEW.SESSION 43747 . 44232) (\NSFILING.GET.STREAM 
+44234 . 46010) (\NSFILING.COURIER.OPEN 46012 . 46277) (\NSFILING.CLOSE.BULKSTREAM 46279 . 46557) (
+\NSFILING.RELEASE.BULKSTREAM 46559 . 47488) (FILING.CALL 47490 . 56089) (\NSFILING.LOGIN 56091 . 69270
+) (\NSFILING.AFTER.LOGIN 69272 . 69803) (\NSFILING.SET.CONTINUANCE 69805 . 70478) (\NSFILING.LOGOUT 
+70480 . 70661) (\NSFILING.DISCARD.SESSION 70663 . 72360) (\VALID.FILING.CONNECTIONP 72362 . 73958) (
+\NSFILING.CLOSE.CONNECTIONS 73960 . 76822) (BREAK.NSFILING.CONNECTION 76824 . 77787)) (77867 91247 (
+\NSFILING.CONNECT 77877 . 80294) (\NSFILING.MAYBE.CREATE 80296 . 83335) (\NSFILING.REMOVEQUOTES 83337
+ . 83962) (\NSFILING.ADDQUOTES 83964 . 86702) (\FILING.ATTRIBUTE.TYPE.SEQUENCE 86704 . 86918) (
+\FILING.ATTRIBUTE.TYPE 86920 . 87423) (\LISP.TO.NSFILING.ATTRIBUTE 87425 . 91245)) (91283 144407 (
+\NSFILING.GETFILE 91293 . 112576) (\NSFILING.LOOKUP.CACHE 112578 . 114640) (\NSFILING.ADD.TO.CACHE 
+114642 . 117005) (\NSFILING.OPEN.HANDLE 117007 . 119110) (\NSFILING.CONFLICTP 119112 . 120606) (
+\NSFILING.CHECK.ACCESS 120608 . 121971) (\NSFILING.FILLIN.ATTRIBUTES 121973 . 123720) (
+\NSFILING.COMPOSE.PATHNAME 123722 . 124223) (\NSFILING.PARSE.FILENAME 124225 . 129762) (
+\NSFILING.ERRORHANDLER 129764 . 134582) (\NSFILING.WHENCLOSED 134584 . 135856) (\NSFILING.CLOSE.HANDLE
+ 135858 . 136151) (\NSFILING.FULLNAME 136153 . 144405)) (144440 212555 (\NSFILING.OPENFILE 144450 . 
+149642) (\NSFILING.HANDLE.ERROR 149644 . 150522) (\NSFILING.CLOSEFILE 150524 . 153147) (
+\NSFILING.EVENTFN 153149 . 155907) (\NSFILING.DELETEFILE 155909 . 157577) (\NSFILING.CHILDLESS-P 
+157579 . 158282) (\NSFILING.DIRECTORYNAMEP 158284 . 158691) (\NSFILING.HOSTNAMEP 158693 . 161788) (
+\NSFILING.GETFILENAME 161790 . 162050) (\NSFILING.GETFILEINFO 162052 . 165460) (
+\NSFILING.GET.ATTRIBUTES 165462 . 165858) (\NSFILING.GETFILEINFO.FROM.PLIST 165860 . 168820) (
+\NSFILING.GDATE 168822 . 169012) (\NSFILING.SETFILEINFO 169014 . 172196) (\NSFILING.GET/SETINFO 172198
+ . 173662) (\NSFILING.UPDATE.ATTRIBUTES 173664 . 174635) (\NSFILING.GETEOFPTR 174637 . 175171) (
+\NSFILING.GENERATEFILES 175173 . 191035) (\NSFILING.GENERATE.STARS 191037 . 191627) (
+\NSFILING.NEXTFILE 191629 . 193207) (\NSFILING.FILEINFOFN 193209 . 193436) (\NSFILING.RENAMEFILE 
+193438 . 194038) (\NSFILING.COPYFILE 194040 . 194638) (\NSFILING.COPY/RENAME 194640 . 212553)) (212594
+ 263202 (\NSRANDOM.CLOSEFILE 212604 . 214400) (\NSRANDOM.RELEASE.HANDLE 214402 . 215595) (
+\NSRANDOM.RELEASE.LOCK 215597 . 215936) (\NSRANDOM.RELEASE.IF.ERROR 215938 . 216138) (
+\NSRANDOM.CREATE.STREAM 216140 . 222206) (\NSRANDOM.READPAGES 222208 . 226998) (\NSRANDOM.READ.SEGMENT
+ 227000 . 237526) (\NSRANDOM.PREPARE.CACHE 237528 . 244860) (\NSRANDOM.FETCH.CACHE 244862 . 247035) (
+\NSRANDOM.CHECK.CACHE 247037 . 248082) (\NSRANDOM.WRITEPAGES 248084 . 253627) (\NSRANDOM.WRITE.SEGMENT
+ 253629 . 255223) (\NSRANDOM.WROTE.HANDLE 255225 . 257031) (\NSRANDOM.SETEOFPTR 257033 . 258562) (
+\NSRANDOM.TRUNCATEFILE 258564 . 261478) (\NSRANDOM.UPDATE.VALIDATION 261480 . 262383) (
+\NSRANDOM.OPENFILE 262385 . 263200)) (263234 277742 (\NSRANDOM.HANDLE.ERROR 263244 . 265690) (
+\NSRANDOM.PROCEEDABLE.ERROR 265692 . 266948) (\NSRANDOM.REESTABLISH 266950 . 268422) (
+\NSRANDOM.STREAM.CHANGED 268424 . 269694) (\NSRANDOM.DESTROY.STREAM 269696 . 270466) (
+\NSRANDOM.SESSION.WATCHER 270468 . 276377) (\NSRANDOM.ENSURE.WATCHER 276379 . 277740)) (277783 288993 
+(GC-FILING-DIRECTORY 277793 . 285216) (\NSGC.COLLECT.DIRECTORIES 285218 . 288991)) (289043 293734 (
+\NSFILING.DESERIALIZE 289053 . 291155) (\NSFILING.DESERIALIZE1 291157 . 293732)) (293735 294222 (
+\NSFILING.INIT 293745 . 294220)))))
 STOP
diff --git a/sources/NSFILING.LCOM b/sources/NSFILING.LCOM
index 15f539ae..15d9ca11 100644
Binary files a/sources/NSFILING.LCOM and b/sources/NSFILING.LCOM differ
diff --git a/sources/PROC b/sources/PROC
index 19a34dba..af933e05 100644
--- a/sources/PROC
+++ b/sources/PROC
@@ -1,14 +1,13 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED " 5-Sep-2021 08:25:19" {DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>PROC.;2 175702 
+(FILECREATED "17-Jun-99 21:58:52" {DSK}<project>medley3.5>sources>PROC.;2 173526 
 
-      changes to%:  (FNS \PROCESS.INIT)
+      changes to%:  (RECORDS MONITORLOCK)
 
-      previous date%: "17-Jun-99 21:58:52" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>PROC.;1)
+      previous date%: "31-Jan-98 18:03:02" {DSK}<project>medley3.5>sources>PROC.;1)
 
 
 (* ; "
-Copyright (c) 1982-1988, 1990-1993, 1998-1999, 2021 by Venue & Xerox Corporation.
+Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993, 1998, 1999 by Venue & Xerox Corporation.  All rights reserved.
 The following program was created in 1982 but has not been published
 within the meaning of the copyright law, is furnished under license,
 and may not be used, copied and/or disclosed except in accordance
@@ -1303,12 +1302,14 @@ with the terms of said license.
 
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS PROCESS.WAIT MACRO [(WAITCOND TIMEOUT)
-                                      (bind ($$TIMEOUT _ (AND TIMEOUT (SETUPTIMER TIMEOUT)))
-                                         until (AND $$TIMEOUT (TIMEREXPIRED? $$TIMEOUT))
-                                         do (if (SETQ $$VAL WAITCOND)
-                                                    then (RETURN $$VAL)
-                                                  else (BLOCK])
+(PUTPROPS PROCESS.WAIT  MACRO
+   [(WAITCOND TIMEOUT)
+    (bind ($$TIMEOUT _ (AND TIMEOUT (SETUPTIMER TIMEOUT))) until (AND $$TIMEOUT (
+                                                                                        TIMEREXPIRED?
+                                                                                         $$TIMEOUT))
+       do (if (SETQ $$VAL WAITCOND)
+                  then (RETURN $$VAL)
+                else (BLOCK])
 )
 (DEFINEQ
 
@@ -1592,18 +1593,17 @@ with the terms of said license.
 )
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS AWAIT.CONDITION MACRO [(CONDITION EVNT TIMEOUT TIMERP)
-                                         (PROG [($$TIMER TIMEOUT)
-                                                ($$EV (\DTEST EVNT 'EVENT]
-                                               (DECLARE (LOCALVARS $$TIMER $$EV))
-                                           LP  (RETURN (OR CONDITION (COND
-                                                                        ((NEQ (\PROCESS.GO.TO.SLEEP
-                                                                               $$EV $$TIMER TIMERP)
-                                                                              $$EV)
-                                                                         NIL)
-                                                                        (T (AND $$TIMER (SETQ $$TIMER
-                                                                                         T))
-                                                                           (GO LP])
+(PUTPROPS AWAIT.CONDITION  MACRO
+   [(CONDITION EVNT TIMEOUT TIMERP)
+    (PROG [($$TIMER TIMEOUT)
+           ($$EV (\DTEST EVNT 'EVENT]
+          (DECLARE (LOCALVARS $$TIMER $$EV))
+      LP  (RETURN (OR CONDITION (COND
+                                   ((NEQ (\PROCESS.GO.TO.SLEEP $$EV $$TIMER TIMERP)
+                                         $$EV)
+                                    NIL)
+                                   (T (AND $$TIMER (SETQ $$TIMER T))
+                                      (GO LP])
 )
 
 (RPAQ? \PROCESS.AFTEREXIT.EVENT )
@@ -1646,47 +1646,46 @@ with the terms of said license.
 
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS .RELEASE.LOCK. MACRO
-          [(LOCK EVENIFNOTMINE)
-           (UNINTERRUPTABLY
-               [PROG ((OWNER (ffetch MLOCKOWNER of LOCK))
-                      TAIL PREV NEXTPROC)
-                     (COND
-                        ((OR (NULL OWNER)
-                             (AND (NEQ OWNER (THIS.PROCESS))
-                                  (NOT EVENIFNOTMINE)))
-                         (RETURN)))
-                     (freplace MLOCKOWNER of LOCK with NIL)
+(PUTPROPS .RELEASE.LOCK.  MACRO
+   [(LOCK EVENIFNOTMINE)
+    (UNINTERRUPTABLY
+        [PROG ((OWNER (ffetch MLOCKOWNER of LOCK))
+               TAIL PREV NEXTPROC)
+              (COND
+                 ((OR (NULL OWNER)
+                      (AND (NEQ OWNER (THIS.PROCESS))
+                           (NOT EVENIFNOTMINE)))
+                  (RETURN)))
+              (freplace MLOCKOWNER of LOCK with NIL)
                                                              (* ; 
                                                       "Now remove LOCK from my list of owned locks")
-                     [COND
-                        ((EQ (SETQ PREV (fetch PROCOWNEDLOCKS of OWNER))
-                             LOCK)
-                         (replace PROCOWNEDLOCKS of OWNER with (ffetch MLOCKLINK
-                                                                              of LOCK)))
-                        (T (do (COND
-                                      ((NULL PREV)
-                                       (RETURN (\MP.ERROR \MP.PROCERROR 
-                                                      "Lock not found among owner's owned locks" LOCK
-                                                      )))
-                                      [(EQ (fetch MLOCKLINK of PREV)
-                                           LOCK)
-                                       (RETURN (replace MLOCKLINK of PREV
-                                                  with (ffetch MLOCKLINK of LOCK]
-                                      (T (SETQ PREV (fetch MLOCKLINK of PREV]
-                     (freplace MLOCKLINK of LOCK with NIL)
-                     (COND
-                        ((SETQ TAIL (ffetch MLOCKQUEUETAIL of LOCK))
-                         (SETQ NEXTPROC (fetch PROCEVENTLINK of TAIL))
-                         [COND
-                            ((EQ NEXTPROC TAIL)              (* ; "Only one process in queue")
-                             (freplace MLOCKQUEUETAIL of LOCK with NIL))
-                            (T (replace PROCEVENTLINK of TAIL with (fetch 
-                                                                                      PROCEVENTLINK
-                                                                                  of NEXTPROC]
-                         (replace PROCEVENTLINK of NEXTPROC
-                            with (replace PROCEVENTORLOCK of NEXTPROC with NIL))
-                         (\RUN.PROCESS NEXTPROC LOCK])])
+              [COND
+                 ((EQ (SETQ PREV (fetch PROCOWNEDLOCKS of OWNER))
+                      LOCK)
+                  (replace PROCOWNEDLOCKS of OWNER with (ffetch MLOCKLINK
+                                                                       of LOCK)))
+                 (T (do (COND
+                               ((NULL PREV)
+                                (RETURN (\MP.ERROR \MP.PROCERROR 
+                                               "Lock not found among owner's owned locks" LOCK)))
+                               [(EQ (fetch MLOCKLINK of PREV)
+                                    LOCK)
+                                (RETURN (replace MLOCKLINK of PREV
+                                           with (ffetch MLOCKLINK of LOCK]
+                               (T (SETQ PREV (fetch MLOCKLINK of PREV]
+              (freplace MLOCKLINK of LOCK with NIL)
+              (COND
+                 ((SETQ TAIL (ffetch MLOCKQUEUETAIL of LOCK))
+                  (SETQ NEXTPROC (fetch PROCEVENTLINK of TAIL))
+                  [COND
+                     ((EQ NEXTPROC TAIL)                     (* ; "Only one process in queue")
+                      (freplace MLOCKQUEUETAIL of LOCK with NIL))
+                     (T (replace PROCEVENTLINK of TAIL with (fetch PROCEVENTLINK
+                                                                           of NEXTPROC]
+                  (replace PROCEVENTLINK of NEXTPROC with (replace PROCEVENTORLOCK
+                                                                         of NEXTPROC with
+                                                                                         NIL))
+                  (\RUN.PROCESS NEXTPROC LOCK])])
 )
 )
 
@@ -1805,22 +1804,22 @@ with the terms of said license.
 )
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS WITH.MONITOR MACRO [(LOCK . FORMS)
-                                      (LET (SI::*LOCKED-MONITOR* SI::*RESETFORMS*)
-                                           (DECLARE (CL:SPECIAL SI::*LOCKED-MONITOR* 
-                                                               SI::*RESETFORMS*))
-                                           (CL:UNWIND-PROTECT
-                                               (PROGN (OBTAIN.MONITORLOCK LOCK NIL 'WITH.MONITOR)
-                                                                                             . FORMS)
-                                               (SI::MONITOR-UNWIND))])
+(PUTPROPS WITH.MONITOR  MACRO
+   [(LOCK . FORMS)
+    (LET (SI::*LOCKED-MONITOR* SI::*RESETFORMS*)
+         (DECLARE (CL:SPECIAL SI::*LOCKED-MONITOR* SI::*RESETFORMS*))
+         (CL:UNWIND-PROTECT
+             (PROGN (OBTAIN.MONITORLOCK LOCK NIL 'WITH.MONITOR) . FORMS)
+             (SI::MONITOR-UNWIND))])
 
-(PUTPROPS WITH.FAST.MONITOR MACRO [(LOCK . FORMS)
-                                           (UNINTERRUPTABLY
-                                               ([LAMBDA (UNLOCK)
-                                                  (PROG1 (PROGN . FORMS)
-                                                      (AND (NEQ UNLOCK T)
-                                                           (RELEASE.MONITORLOCK UNLOCK)))]
-                                                (OBTAIN.MONITORLOCK LOCK)))])
+(PUTPROPS WITH.FAST.MONITOR  MACRO
+   [(LOCK . FORMS)
+    (UNINTERRUPTABLY
+        ([LAMBDA (UNLOCK)
+           (PROG1 (PROGN . FORMS)
+               (AND (NEQ UNLOCK T)
+                    (RELEASE.MONITORLOCK UNLOCK)))]
+         (OBTAIN.MONITORLOCK LOCK)))])
 )
 (DEFINEQ
 
@@ -2461,52 +2460,51 @@ with the terms of said license.
 (DECLARE%: DONTCOPY 
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS \RESCHEDULE MACRO
-          [LAMBDA (OLDPROC)
+(PUTPROPS \RESCHEDULE  MACRO
+   [LAMBDA (OLDPROC)
 
-            (* ;; "Causes process switch, saving current context in OLDPROC's handle, or nowhere if OLDPROC is NIL.  Must be called uninterruptably!")
+     (* ;; "Causes process switch, saving current context in OLDPROC's handle, or nowhere if OLDPROC is NIL.  Must be called uninterruptably!")
 
-            (PROG (PQUEUE PROC)
-              TOP 
+     (PROG (PQUEUE PROC)
+       TOP 
 
-             (* ;; "Maybe check for events here?")
+      (* ;; "Maybe check for events here?")
 
-                  (SETQ PQUEUE \HIGHEST.PRIORITY.QUEUE)
-              LP  (COND
-                     ((SETQ PROC (fetch PQNEXT of PQUEUE))
-                      [COND
-                         ((NEQ PROC OLDPROC)                 (* ; 
+           (SETQ PQUEUE \HIGHEST.PRIORITY.QUEUE)
+       LP  (COND
+              ((SETQ PROC (fetch PQNEXT of PQUEUE))
+               [COND
+                  ((NEQ PROC OLDPROC)                        (* ; 
                "Yes, there is a process switch required here.  Below is roughly the body of RESUME")
-                          (LET ((TOFX (fetch PROCFX of PROC))
-                                FROMFX)
-                               (COND
-                                  ((fetch (FX INVALIDP) of TOFX)
-                                   (\MP.ERROR \MP.STACKRELEASED "Process's stack has been released!"
-                                          PROC)))
-                               (SETQ \RUNNING.PROCESS PROC)
-                               (replace PROCFX of PROC with 0)
-                               (\PROC.RESUME TOFX (COND
-                                                         (OLDPROC (SETQ FROMFX (fetch PROCFX
-                                                                                  of OLDPROC))
-                                                                (COND
-                                                                   ((NOT (fetch (FX INVALIDP)
-                                                                            of FROMFX))
+                   (LET ((TOFX (fetch PROCFX of PROC))
+                         FROMFX)
+                        (COND
+                           ((fetch (FX INVALIDP) of TOFX)
+                            (\MP.ERROR \MP.STACKRELEASED "Process's stack has been released!" PROC)))
+                        (SETQ \RUNNING.PROCESS PROC)
+                        (replace PROCFX of PROC with 0)
+                        (\PROC.RESUME TOFX (COND
+                                              (OLDPROC (SETQ FROMFX (fetch PROCFX of OLDPROC)
+                                                        )
+                                                     (COND
+                                                        ((NOT (fetch (FX INVALIDP) of FROMFX)
+                                                              )
                                                              (* ; 
                      "Release stack pointer of OLDPROC if it hasn't been yet.  should never happen")
-                                                                    (\DECUSECOUNT FROMFX)))
-                                                                (replace PROCFX of OLDPROC
-                                                                   with (\MYALINK))
-                                                                NIL)
-                                                         (T  (* ; 
+                                                         (\DECUSECOUNT FROMFX)))
+                                                     (replace PROCFX of OLDPROC with
+                                                                                        (\MYALINK))
+                                                     NIL)
+                                              (T             (* ; 
                                                    "no OLDPROC to resume later, so jettison caller")
-                                                            (\MYALINK]
-                      (RETURN (fetch WAKEREASON of PROC)))
-                     ((SETQ PQUEUE (fetch PQLOWER of PQUEUE))
-                      (GO LP))
-                     (T                                      (* ; 
+                                                 (\MYALINK]
+               (RETURN (fetch WAKEREASON of PROC)))
+              ((SETQ PQUEUE (fetch PQLOWER of PQUEUE))
+               (GO LP))
+              (T                                             (* ; 
                                                            "nobody runnable, wait for events")
-                        (\MP.ERROR \MP.PROCERROR "No runnable process!!" OLDPROC)
-                        (GO TOP])
+                 (\MP.ERROR \MP.PROCERROR "No runnable process!!" OLDPROC)
+                 (GO TOP])
 )
 )
 (DEFINEQ
@@ -2850,19 +2848,22 @@ with the terms of said license.
 (DECLARE%: DONTCOPY 
 (* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS THIS.PROCESS MACRO (NIL \RUNNING.PROCESS))
+(PUTPROPS THIS.PROCESS  MACRO
+   (NIL \RUNNING.PROCESS))
 
-(PUTPROPS TTY.PROCESS MACRO [X (COND
-                                          ((CAR X)
-                                           'IGNOREMACRO)
-                                          (T '\TTY.PROCESS])
+(PUTPROPS TTY.PROCESS  MACRO
+   [X (COND
+         ((CAR X)
+          'IGNOREMACRO)
+         (T '\TTY.PROCESS])
 
-(PUTPROPS TTY.PROCESSP MACRO [X (COND
-                                           ((CAR X)
-                                            'IGNOREMACRO)
-                                           (T '(OR (NULL (THIS.PROCESS))
-                                                   (EQ (THIS.PROCESS)
-                                                       (TTY.PROCESS])
+(PUTPROPS TTY.PROCESSP  MACRO
+   [X (COND
+         ((CAR X)
+          'IGNOREMACRO)
+         (T '(OR (NULL (THIS.PROCESS))
+                 (EQ (THIS.PROCESS)
+                     (TTY.PROCESS])
 )
 (DECLARE%: DOEVAL@COMPILE DONTCOPY
 
@@ -2886,18 +2887,21 @@ with the terms of said license.
 
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS ALIVEPROCP MACRO ((p)
-                                    (NOT (DEADPROCP p))))
+(PUTPROPS ALIVEPROCP  MACRO
+   ((p)
+    (NOT (DEADPROCP p))))
 
-(PUTPROPS DEADPROCP MACRO ((p)
-                                   (fetch PROCDELETED of p)))
+(PUTPROPS DEADPROCP  MACRO
+   ((p)
+    (fetch PROCDELETED of p)))
 
-(PUTPROPS \COERCE.TO.PROCESS MACRO [OPENLAMBDA (P ERRORFLG)
-                                             (COND
-                                                ((AND (type? PROCESS P)
-                                                      (NOT (fetch PROCDELETED of P)))
-                                                 P)
-                                                (T (FIND.PROCESS P ERRORFLG])
+(PUTPROPS \COERCE.TO.PROCESS  MACRO
+   [OPENLAMBDA (P ERRORFLG)
+     (COND
+        ((AND (type? PROCESS P)
+              (NOT (fetch PROCDELETED of P)))
+         P)
+        (T (FIND.PROCESS P ERRORFLG])
 )
 
 (DECLARE%: DOEVAL@COMPILE DONTCOPY
@@ -3360,41 +3364,41 @@ with the terms of said license.
 (ADDTOVAR LAMA PROCESSPROP ADD.PROCESS)
 )
 (PUTPROPS PROC COPYRIGHT ("Venue & Xerox Corporation" T 1982 1983 1984 1985 1986 1987 1988 1990 1991 
-1992 1993 1998 1999 2021))
+1992 1993 1998 1999))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (22376 42643 (PROCESSWORLD 22386 . 31731) (ADD.PROCESS 31733 . 35890) (DEL.PROCESS 35892
- . 36839) (PROCESS.RETURN 36841 . 36988) (FIND.PROCESS 36990 . 37624) (MAP.PROCESSES 37626 . 37952) (
-PROCESSP 37954 . 38122) (RELPROCESSP 38124 . 38306) (RESTART.PROCESS 38308 . 38877) (WAKE.PROCESS 
-38879 . 39609) (SUSPEND.PROCESS 39611 . 39998) (PROCESS.RESULT 40000 . 40978) (PROCESS-STATUS 40980 . 
-42375) (PROCESS.FINISHEDP 42377 . 42641)) (42644 55851 (THIS.PROCESS 42654 . 42787) (TTY.PROCESS 42789
- . 49616) (TTY.PROCESSP 49618 . 49834) (PROCESS.TTY 49836 . 50186) (GIVE.TTY.PROCESS 50188 . 50998) (
-ALLOW.BUTTON.EVENTS 51000 . 51244) (SPAWN.MOUSE 51246 . 53459) (\WAIT.FOR.TTY 53461 . 53651) (
-WAIT.FOR.TTY 53653 . 55849)) (55852 58470 (RESET 55862 . 56694) (ERROR! 56696 . 58468)) (58835 64183 (
-PROCESSPROP 58845 . 63297) (PROCESS.NAME 63299 . 63604) (PROCESS.WINDOW 63606 . 64181)) (64385 69420 (
-DISMISS 64395 . 65210) (BLOCK 65212 . 67436) (WAITFORINPUT 67438 . 68667) (\WAITFORSYSBUFP 68669 . 
-69418)) (69621 70118 (EVAL.AS.PROCESS 69631 . 69854) (EVAL.IN.TTY.PROCESS 69856 . 70116)) (70755 76539
- (PROCESS.READ 70765 . 71603) (PROCESS.EVALV 71605 . 72183) (PROCESS.EVAL 72185 . 73162) (
-\PROCESS.EVAL1 73164 . 74267) (PROCESS.APPLY 74269 . 75253) (\PROCESS.APPLY1 75255 . 76537)) (78705 
-84010 (CREATE.EVENT 78715 . 78877) (NOTIFY.EVENT 78879 . 80387) (AWAIT.EVENT 80389 . 81011) (
-\UNQUEUE.EVENT 81013 . 82488) (\ENQUEUE.EVENT/LOCK 82490 . 83783) (\EVENT.DEFPRINT 83785 . 84008)) (
-90012 95003 (OBTAIN.MONITORLOCK 90022 . 92886) (CREATE.MONITORLOCK 92888 . 93107) (RELEASE.MONITORLOCK
- 93109 . 93443) (SI::MONITOR-UNWIND 93445 . 94031) (MONITOR.AWAIT.EVENT 94033 . 94767) (
-\MONITORLOCK.DEFPRINT 94769 . 95001)) (96189 118665 (\MAKE.PROCESS0 96199 . 103398) (\MAKE.PROCESS1 
-103400 . 104964) (\PROCESS.MOVEFRAME 104966 . 109515) (\RELEASE.PROCESS 109517 . 112567) (
-\UNWIND.PROCESS 112569 . 112895) (\MAYBEBLOCK 112897 . 113052) (\BACKGROUND.PROCESS 113054 . 113295) (
-\MOUSE.PROCESS 113297 . 115846) (\TIMER.PROCESS 115848 . 116404) (\PROCESS.RELEASE.LOCKS 116406 . 
-116820) (\SET.PROCESS.NAME 116822 . 118358) (\PROCESS.DEFPRINT 118360 . 118663)) (118666 133021 (
-\START.PROCESSES 118676 . 118849) (\PROCESS.GO.TO.SLEEP 118851 . 122605) (\PROC.RESUME 122607 . 122981
-) (\RUN.PROCESS 122983 . 126319) (\SUSPEND.PROCESS 126321 . 129382) (\UNQUEUE.TIMER 129384 . 130083) (
-\ENQUEUE.TIMER 130085 . 131992) (\GET.PRIORITY.QUEUE 131994 . 133019)) (136000 143222 (\PROCESS.INIT 
-136010 . 136636) (\PROCESS.EVENTFN 136638 . 138374) (\PROCESS.BEFORE.LOGOUT 138376 . 139895) (
-\PROCESS.AFTER.EXIT 139897 . 140205) (\PROCESS.RESET.TIMERS 140207 . 141736) (\PROC.AFTER.WINDOWWORLD 
-141738 . 142423) (\TURN.ON.PROCESSES 142425 . 143220)) (143253 144482 (\PROC.CODEFORTFRAME 143263 . 
-144084) (\PROC.REPEATEDLYEVALQT 144086 . 144480)) (144516 151248 (BREAK.PROCESS 144526 . 144842) (
-\SELECTPROCESS 144844 . 147284) (\PROCESS.MAKEFRAME 147286 . 149337) (\PROCESS.MAKEFRAME0 149339 . 
-151246)) (154009 155932 (\CHECK.PQUEUE 154019 . 155930)) (155933 174262 (PPROC 155943 . 157224) (
-PPROCWINDOW 157226 . 157717) (PPROCREPAINTFN 157719 . 158433) (PPROCRESHAPEFN 158435 . 158698) (
-PPROCEXTENT 158700 . 159184) (PPROC1 159186 . 161204) (PROCESS.STATUS.WINDOW 161206 . 165288) (
-\PSW.SELECTED 165290 . 165584) (\PSWOP.SELECTED 165586 . 169486) (PROCESS.BACKTRACE 169488 . 172679) (
-\INVALIDATE.PROCESS.WINDOW 172681 . 173415) (\UPDATE.PROCESS.WINDOW 173417 . 174260)))))
+  (FILEMAP (NIL (22392 42659 (PROCESSWORLD 22402 . 31747) (ADD.PROCESS 31749 . 35906) (DEL.PROCESS 35908
+ . 36855) (PROCESS.RETURN 36857 . 37004) (FIND.PROCESS 37006 . 37640) (MAP.PROCESSES 37642 . 37968) (
+PROCESSP 37970 . 38138) (RELPROCESSP 38140 . 38322) (RESTART.PROCESS 38324 . 38893) (WAKE.PROCESS 
+38895 . 39625) (SUSPEND.PROCESS 39627 . 40014) (PROCESS.RESULT 40016 . 40994) (PROCESS-STATUS 40996 . 
+42391) (PROCESS.FINISHEDP 42393 . 42657)) (42660 55867 (THIS.PROCESS 42670 . 42803) (TTY.PROCESS 42805
+ . 49632) (TTY.PROCESSP 49634 . 49850) (PROCESS.TTY 49852 . 50202) (GIVE.TTY.PROCESS 50204 . 51014) (
+ALLOW.BUTTON.EVENTS 51016 . 51260) (SPAWN.MOUSE 51262 . 53475) (\WAIT.FOR.TTY 53477 . 53667) (
+WAIT.FOR.TTY 53669 . 55865)) (55868 58486 (RESET 55878 . 56710) (ERROR! 56712 . 58484)) (58851 64199 (
+PROCESSPROP 58861 . 63313) (PROCESS.NAME 63315 . 63620) (PROCESS.WINDOW 63622 . 64197)) (64401 69436 (
+DISMISS 64411 . 65226) (BLOCK 65228 . 67452) (WAITFORINPUT 67454 . 68683) (\WAITFORSYSBUFP 68685 . 
+69434)) (69637 70134 (EVAL.AS.PROCESS 69647 . 69870) (EVAL.IN.TTY.PROCESS 69872 . 70132)) (70768 76552
+ (PROCESS.READ 70778 . 71616) (PROCESS.EVALV 71618 . 72196) (PROCESS.EVAL 72198 . 73175) (
+\PROCESS.EVAL1 73177 . 74280) (PROCESS.APPLY 74282 . 75266) (\PROCESS.APPLY1 75268 . 76550)) (78718 
+84023 (CREATE.EVENT 78728 . 78890) (NOTIFY.EVENT 78892 . 80400) (AWAIT.EVENT 80402 . 81024) (
+\UNQUEUE.EVENT 81026 . 82501) (\ENQUEUE.EVENT/LOCK 82503 . 83796) (\EVENT.DEFPRINT 83798 . 84021)) (
+89263 94254 (OBTAIN.MONITORLOCK 89273 . 92137) (CREATE.MONITORLOCK 92139 . 92358) (RELEASE.MONITORLOCK
+ 92360 . 92694) (SI::MONITOR-UNWIND 92696 . 93282) (MONITOR.AWAIT.EVENT 93284 . 94018) (
+\MONITORLOCK.DEFPRINT 94020 . 94252)) (94863 117339 (\MAKE.PROCESS0 94873 . 102072) (\MAKE.PROCESS1 
+102074 . 103638) (\PROCESS.MOVEFRAME 103640 . 108189) (\RELEASE.PROCESS 108191 . 111241) (
+\UNWIND.PROCESS 111243 . 111569) (\MAYBEBLOCK 111571 . 111726) (\BACKGROUND.PROCESS 111728 . 111969) (
+\MOUSE.PROCESS 111971 . 114520) (\TIMER.PROCESS 114522 . 115078) (\PROCESS.RELEASE.LOCKS 115080 . 
+115494) (\SET.PROCESS.NAME 115496 . 117032) (\PROCESS.DEFPRINT 117034 . 117337)) (117340 131695 (
+\START.PROCESSES 117350 . 117523) (\PROCESS.GO.TO.SLEEP 117525 . 121279) (\PROC.RESUME 121281 . 121655
+) (\RUN.PROCESS 121657 . 124993) (\SUSPEND.PROCESS 124995 . 128056) (\UNQUEUE.TIMER 128058 . 128757) (
+\ENQUEUE.TIMER 128759 . 130666) (\GET.PRIORITY.QUEUE 130668 . 131693)) (134377 141599 (\PROCESS.INIT 
+134387 . 135013) (\PROCESS.EVENTFN 135015 . 136751) (\PROCESS.BEFORE.LOGOUT 136753 . 138272) (
+\PROCESS.AFTER.EXIT 138274 . 138582) (\PROCESS.RESET.TIMERS 138584 . 140113) (\PROC.AFTER.WINDOWWORLD 
+140115 . 140800) (\TURN.ON.PROCESSES 140802 . 141597)) (141630 142859 (\PROC.CODEFORTFRAME 141640 . 
+142461) (\PROC.REPEATEDLYEVALQT 142463 . 142857)) (142893 149625 (BREAK.PROCESS 142903 . 143219) (
+\SELECTPROCESS 143221 . 145661) (\PROCESS.MAKEFRAME 145663 . 147714) (\PROCESS.MAKEFRAME0 147716 . 
+149623)) (151838 153761 (\CHECK.PQUEUE 151848 . 153759)) (153762 172091 (PPROC 153772 . 155053) (
+PPROCWINDOW 155055 . 155546) (PPROCREPAINTFN 155548 . 156262) (PPROCRESHAPEFN 156264 . 156527) (
+PPROCEXTENT 156529 . 157013) (PPROC1 157015 . 159033) (PROCESS.STATUS.WINDOW 159035 . 163117) (
+\PSW.SELECTED 163119 . 163413) (\PSWOP.SELECTED 163415 . 167315) (PROCESS.BACKTRACE 167317 . 170508) (
+\INVALIDATE.PROCESS.WINDOW 170510 . 171244) (\UPDATE.PROCESS.WINDOW 171246 . 172089)))))
 STOP
diff --git a/sources/PROC.LCOM b/sources/PROC.LCOM
index c39d05b1..aa9c5028 100644
Binary files a/sources/PROC.LCOM and b/sources/PROC.LCOM differ
diff --git a/sources/SPP b/sources/SPP
index 7aef6838..6eb341be 100644
--- a/sources/SPP
+++ b/sources/SPP
@@ -1,20 +1,17 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED " 5-Sep-2021 08:25:44" {DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SPP.;2 107386 
+(FILECREATED "19-Jan-93 11:20:29" {DSK}<python>lde>lispcore>sources>SPP.;3 107246 
 
-      changes to%:  (FNS \CREATE.SPP.DEVICE)
-
-      previous date%: "19-Jan-93 11:20:29" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>SPP.;1)
+      previous date%: " 5-Jan-93 02:24:51" {DSK}<python>lde>lispcore>sources>SPP.;2)
 
 
 (* ; "
-Copyright (c) 1983-1988, 1990-1991, 1993, 2021 by Xerox Corporation.
+Copyright (c) 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1993 by Xerox Corporation.  All rights reserved.
 ")
 
 (PRETTYCOMPRINT SPPCOMS)
 
-(RPAQQ SPPCOMS
-       ((COMS                                                (* ; "Sequenced Packet Protocol.")
+(RPAQQ SPPCOMS 
+       ((COMS                                                (* ; "Sequenced Packet Protocol.")
               (DECLARE%: EVAL@COMPILE DONTCOPY (FILES (SOURCE)
                                                       SPPDECLS)
                      (MACROS RETRANSMITINDEX SEQ.ADD1 SEQ.GREATERP SEQ.GEQ)
@@ -32,8 +29,8 @@ Copyright (c) 1983-1988, 1990-1991, 1993, 2021 by Xerox Corporation.
               (FNS \SPPWATCHER \SPP.HANDLE.INPUT \SPP.HANDLE.DATA \SPP.HANDLE.ATTN 
                    \SPP.RELEASE.ACKED.PACKETS \SPP.NOT.RESPONDING \SPP.PROBE \SPP.RETRANSMIT.NEXT 
                    \SPP.DUPLICATE.REQUEST \SPP.ESTABLISH \SPPGETERROR \SPPSENDERROR))
-        [COMS                                                (* ; 
-                                                   "Stream interface to Sequenced Packet Protocol.")
+        [COMS                                                (* ; 
+                                                   "Stream interface to Sequenced Packet Protocol.")
               (FNS \INITSPP \SPP.EVENTFN \CREATE.SPP.DEVICE SPP.OPEN \SPP.CREATE.STREAM 
                    SPP.DESTADDRESS SPPOUTPUTSTREAM SPP.OPENP \STREAM.FROM.PACKET SPP.FORCEOUTPUT 
                    SPP.FLUSH.TO.EOF SPP.SENDEOM SPP.CLEAREOM SPP.SENDATTENTION SPP.CLEARATTENTION 
@@ -43,7 +40,7 @@ Copyright (c) 1983-1988, 1990-1991, 1993, 2021 by Xerox Corporation.
                    SPP.DSTYPE SPP.READP SPP.EOFP)
               (FNS SPPSTREAMP)
               (DECLARE%: DONTEVAL@LOAD DOCOPY (P (\INITSPP]
-        (COMS                                                (* ; "Debugging")
+        (COMS                                                (* ; "Debugging")
               (ALISTS (XIPPRINTMACROS 5))
               (FNS PPSPP \SPP.INFO.HOOK PPSPPSTREAM \SPP.CHECK.INPUT.QUEUE PRINTSPP)
               (INITVARS (PRINTSPPDATAFLG))
@@ -60,20 +57,20 @@ Copyright (c) 1983-1988, 1990-1991, 1993, 2021 by Xerox Corporation.
 
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS RETRANSMITINDEX MACRO ((SEQNO)
-                                         (IMOD SEQNO \SPP.RETRANSMITQ.SIZE)))
+(PUTPROPS RETRANSMITINDEX MACRO ((SEQNO)
+                                 (IMOD SEQNO \SPP.RETRANSMITQ.SIZE)))
 
-(PUTPROPS SEQ.ADD1 MACRO [(FORM INC)
-                                  (\LOLOC (\ADDBASE FORM (OR INC 1])
+[PUTPROPS SEQ.ADD1 MACRO ((FORM INC)
+                          (\LOLOC (\ADDBASE FORM (OR INC 1]
 
-(PUTPROPS SEQ.GREATERP MACRO ((X Y)
-                                      (ILESSP (\LOLOC (IDIFFERENCE (IDIFFERENCE X Y)
-                                                             1))
-                                             32768)))
+(PUTPROPS SEQ.GREATERP MACRO ((X Y)
+                              (ILESSP (\LOLOC (IDIFFERENCE (IDIFFERENCE X Y)
+                                                     1))
+                                     32768)))
 
-(PUTPROPS SEQ.GEQ MACRO ((X Y)
-                                 (ILESSP (\LOLOC (IDIFFERENCE X Y))
-                                        32768)))
+(PUTPROPS SEQ.GEQ MACRO ((X Y)
+                         (ILESSP (\LOLOC (IDIFFERENCE X Y))
+                                32768)))
 )
 
 (DECLARE%: DOEVAL@COMPILE DONTCOPY
@@ -1892,27 +1889,27 @@ Copyright (c) 1983-1988, 1990-1991, 1993, 2021 by Xerox Corporation.
 
 (GLOBALVARS PRINTSPPDATAFLG)
 )
-(PUTPROPS SPP COPYRIGHT ("Xerox Corporation" 1983 1984 1985 1986 1987 1988 1990 1991 1993 2021))
+(PUTPROPS SPP COPYRIGHT ("Xerox Corporation" 1983 1984 1985 1986 1987 1988 1990 1991 1993))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (8890 29259 (\SPPCONNECTION 8900 . 10083) (\SPP.CREATE.CON 10085 . 11032) (
-\SPP.CREATE.STREAMS 11034 . 11920) (\SPP.CREATE.WATCHER 11922 . 12734) (\SPP.SENDPKT 12736 . 16331) (
-\FILLINSPP 16333 . 17131) (\SPP.SYSPKT 17133 . 18083) (\GETSPP 18085 . 20394) (\SENDSPP 20396 . 23864)
- (\SPP.SEND.ENDREPLY 23866 . 24294) (\TERMINATESPP 24296 . 26552) (\SPP.CLEANUP 26554 . 29257)) (29260
- 64314 (\SPPWATCHER 29270 . 36551) (\SPP.HANDLE.INPUT 36553 . 45376) (\SPP.HANDLE.DATA 45378 . 50139) 
-(\SPP.HANDLE.ATTN 50141 . 51622) (\SPP.RELEASE.ACKED.PACKETS 51624 . 53157) (\SPP.NOT.RESPONDING 53159
- . 55873) (\SPP.PROBE 55875 . 56144) (\SPP.RETRANSMIT.NEXT 56146 . 58266) (\SPP.DUPLICATE.REQUEST 
-58268 . 58860) (\SPP.ESTABLISH 58862 . 63497) (\SPPGETERROR 63499 . 63953) (\SPPSENDERROR 63955 . 
-64312)) (64378 96249 (\INITSPP 64388 . 65023) (\SPP.EVENTFN 65025 . 65595) (\CREATE.SPP.DEVICE 65597
- . 66491) (SPP.OPEN 66493 . 72101) (\SPP.CREATE.STREAM 72103 . 72302) (SPP.DESTADDRESS 72304 . 72751) 
-(SPPOUTPUTSTREAM 72753 . 73043) (SPP.OPENP 73045 . 73361) (\STREAM.FROM.PACKET 73363 . 73899) (
-SPP.FORCEOUTPUT 73901 . 75438) (SPP.FLUSH.TO.EOF 75440 . 76584) (SPP.SENDEOM 76586 . 77384) (
-SPP.CLEAREOM 77386 . 77991) (SPP.SENDATTENTION 77993 . 78619) (SPP.CLEARATTENTION 78621 . 79373) (
-SPP.CLOSE 79375 . 80441) (\SPP.CLOSE.IF.ERROR 80443 . 80615) (\SPP.RESETCLOSE 80617 . 80865) (
-SPP.BACKFILEPTR 80867 . 81168) (\SPP.GETFILEPTR 81170 . 81408) (\SPP.SETFILEPTR 81410 . 82121) (
-\SPP.SKIPBYTES 82123 . 83162) (\SPP.BOUTS 83164 . 83925) (\SPP.OTHER.BOUT 83927 . 84282) (
-\SPP.GETNEXTBUFFER 84284 . 86222) (\SPP.STREAM.LOST 86224 . 86382) (\SPP.DEFAULT.ERRORHANDLER 86384 . 
-87163) (\SPP.PREPARE.INPUT 87165 . 92016) (\SPP.PREPARE.OUTPUT 92018 . 93442) (SPP.DSTYPE 93444 . 
-94964) (SPP.READP 94966 . 95361) (SPP.EOFP 95363 . 96247)) (96250 96485 (SPPSTREAMP 96260 . 96483)) (
-96609 107169 (PPSPP 96619 . 101808) (\SPP.INFO.HOOK 101810 . 102683) (PPSPPSTREAM 102685 . 103054) (
-\SPP.CHECK.INPUT.QUEUE 103056 . 104356) (PRINTSPP 104358 . 107167)))))
+  (FILEMAP (NIL (8755 29124 (\SPPCONNECTION 8765 . 9948) (\SPP.CREATE.CON 9950 . 10897) (
+\SPP.CREATE.STREAMS 10899 . 11785) (\SPP.CREATE.WATCHER 11787 . 12599) (\SPP.SENDPKT 12601 . 16196) (
+\FILLINSPP 16198 . 16996) (\SPP.SYSPKT 16998 . 17948) (\GETSPP 17950 . 20259) (\SENDSPP 20261 . 23729)
+ (\SPP.SEND.ENDREPLY 23731 . 24159) (\TERMINATESPP 24161 . 26417) (\SPP.CLEANUP 26419 . 29122)) (29125
+ 64179 (\SPPWATCHER 29135 . 36416) (\SPP.HANDLE.INPUT 36418 . 45241) (\SPP.HANDLE.DATA 45243 . 50004) 
+(\SPP.HANDLE.ATTN 50006 . 51487) (\SPP.RELEASE.ACKED.PACKETS 51489 . 53022) (\SPP.NOT.RESPONDING 53024
+ . 55738) (\SPP.PROBE 55740 . 56009) (\SPP.RETRANSMIT.NEXT 56011 . 58131) (\SPP.DUPLICATE.REQUEST 
+58133 . 58725) (\SPP.ESTABLISH 58727 . 63362) (\SPPGETERROR 63364 . 63818) (\SPPSENDERROR 63820 . 
+64177)) (64243 96114 (\INITSPP 64253 . 64888) (\SPP.EVENTFN 64890 . 65460) (\CREATE.SPP.DEVICE 65462
+ . 66356) (SPP.OPEN 66358 . 71966) (\SPP.CREATE.STREAM 71968 . 72167) (SPP.DESTADDRESS 72169 . 72616) 
+(SPPOUTPUTSTREAM 72618 . 72908) (SPP.OPENP 72910 . 73226) (\STREAM.FROM.PACKET 73228 . 73764) (
+SPP.FORCEOUTPUT 73766 . 75303) (SPP.FLUSH.TO.EOF 75305 . 76449) (SPP.SENDEOM 76451 . 77249) (
+SPP.CLEAREOM 77251 . 77856) (SPP.SENDATTENTION 77858 . 78484) (SPP.CLEARATTENTION 78486 . 79238) (
+SPP.CLOSE 79240 . 80306) (\SPP.CLOSE.IF.ERROR 80308 . 80480) (\SPP.RESETCLOSE 80482 . 80730) (
+SPP.BACKFILEPTR 80732 . 81033) (\SPP.GETFILEPTR 81035 . 81273) (\SPP.SETFILEPTR 81275 . 81986) (
+\SPP.SKIPBYTES 81988 . 83027) (\SPP.BOUTS 83029 . 83790) (\SPP.OTHER.BOUT 83792 . 84147) (
+\SPP.GETNEXTBUFFER 84149 . 86087) (\SPP.STREAM.LOST 86089 . 86247) (\SPP.DEFAULT.ERRORHANDLER 86249 . 
+87028) (\SPP.PREPARE.INPUT 87030 . 91881) (\SPP.PREPARE.OUTPUT 91883 . 93307) (SPP.DSTYPE 93309 . 
+94829) (SPP.READP 94831 . 95226) (SPP.EOFP 95228 . 96112)) (96115 96350 (SPPSTREAMP 96125 . 96348)) (
+96474 107034 (PPSPP 96484 . 101673) (\SPP.INFO.HOOK 101675 . 102548) (PPSPPSTREAM 102550 . 102919) (
+\SPP.CHECK.INPUT.QUEUE 102921 . 104221) (PRINTSPP 104223 . 107032)))))
 STOP
diff --git a/sources/SPP.LCOM b/sources/SPP.LCOM
index 4a85b742..0de3e498 100644
Binary files a/sources/SPP.LCOM and b/sources/SPP.LCOM differ
diff --git a/sources/TEXTOFD b/sources/TEXTOFD
deleted file mode 100644
index fd4cb4b4..00000000
--- a/sources/TEXTOFD
+++ /dev/null
@@ -1,2681 +0,0 @@
-(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED " 5-Sep-2021 08:24:00" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>TEXTOFD.;1 176137 
-
-      changes to%:  (FNS \TEXTINIT)
-
-      previous date%: " 6-May-2021 10:18:06" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>TEXTOFD.;1)
-
-
-(* ; "
-Copyright (c) 1983-1991, 1993-1995, 1999-2001, 2021 by John Sybalsky & Xerox Corporation.
-")
-
-(PRETTYCOMPRINT TEXTOFDCOMS)
-
-(RPAQQ TEXTOFDCOMS
-       [(FILES TEDITDCL)
-        (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (\SCRATCHLEN 64))
-               (FILES (LOADCOMP)
-                      TEDITDCL))
-        (FNS COPYTEXTSTREAM OPENTEXTSTREAM REOPENTEXTSTREAM TEDIT.STREAMCHANGEDP TEXTSTREAMP TXTFILE
-             \DELETECH \SETUPGETCH \TEDIT.REOPEN.STREAM \TEDIT.COPYTEXTSTREAM.PIECEMAPFN \TEXTINIT 
-             \TEXTMARK \TEXTTTYBOUT)
-        (FNS \INSERTCH \INSERTCR)
-        (COMS 
-
-(* ;;; "Functions to manipulate the Piece Table (PCTB)")
-
-              (FNS \CHTOPC \CHTOPCNO \CLEARPCTB \CREATEPIECEORSTREAM \DELETEPIECE \FINDPIECE 
-                   \INSERTPIECE \MAKEPCTB \SPLITPIECE \INSERT.FIRST.PIECE))
-        (COMS                                                (* ; 
-                                                           "Generic-IO type operations support")
-              (FNS \TEXTCLOSEF \TEXTCLOSEF-SUBTREE \TEXTDSPFONT \TEXTEOFP \TEXTGETEOFPTR 
-                   \TEXTGETFILEPTR \TEXTOPENF \TEXTOPENF-SUBTREE \TEXTOUTCHARFN \TEXTBACKFILEPTR 
-                   \TEXTBOUT \TEDITOUTCHARFN \TEXTSETEOF \TEXTSETFILEPTR \TEXTDSPXPOSITION 
-                   \TEXTDSPYPOSITION \TEXTLEFTMARGIN \TEXTRIGHTMARGIN \TEXTDSPCHARWIDTH 
-                   \TEXTDSPSTRINGWIDTH \TEXTDSPLINEFEED)
-              (FNS \TEXTBIN \TEDIT.TEXTBIN.STRINGSETUP \TEDIT.TEXTBIN.FILESETUP 
-                   \TEDIT.TEXTBIN.NEW.PAGE)
-              (FNS \TEXTPEEKBIN \TEDIT.PEEKBIN.NEW.PAGE))
-        (COMS                                                (* ; "Support for TEXTPROP")
-              (FNS CGETTEXTPROP CTEXTPROP GETTEXTPROP PUTTEXTPROP TEXTPROP))
-        [COMS 
-              (* ;; "Support for error handling:  The old error handler for the stream-not-open error.  This is here, because you only want to do this ONCE, even if you load TEXTOFD multiple times (as, e.g., in development)")
-
-              (INITVARS (*TEDIT-OLD-STREAM-ERROR-HANDLER* (CONDITION-HANDLER 'XCL:STREAM-NOT-OPEN]
-        (DECLARE%: DONTEVAL@LOAD DOCOPY (P (\TEXTINIT)))
-        (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA)
-                                                                             (NLAML)
-                                                                             (LAMA TEXTPROP])
-
-(FILESLOAD TEDITDCL)
-(DECLARE%: EVAL@COMPILE DONTCOPY 
-(DECLARE%: EVAL@COMPILE 
-
-(RPAQQ \SCRATCHLEN 64)
-
-
-(CONSTANTS (\SCRATCHLEN 64))
-)
-
-
-(FILESLOAD (LOADCOMP)
-       TEDITDCL)
-)
-(DEFINEQ
-
-(COPYTEXTSTREAM
-  [LAMBDA (ORIGINAL CROSSCOPY)            (* ; 
-                                                "Edited 24-Apr-95 12:02 by sybalsky:mv:envos")
-
-    (* ;; "Given a stream, textobj or window, returns a new textstream with the same contents.  If CROSSCOPY then strings will really be allocated providing copies of the text else the fileptrs still will be aliases as in the rest of TEDIT.")
-
-    (PROG ((TEXTOBJ (TEXTOBJ ORIGINAL))
-           TSEL PCTB PCLST NEWSTREAM NEWTEXTOBJ)
-          (SETQ PCTB (fetch (TEXTOBJ PCTB) of TEXTOBJ))
-          (SETQ TSEL (fetch (TEXTOBJ SCRATCHSEL) of TEXTOBJ))
-          (SETQ NEWSTREAM (OPENTEXTSTREAM NIL NIL NIL NIL (fetch (TEXTOBJ EDITPROPS)
-                                                                 of TEXTOBJ)))
-                                                             (* ; 
-                           "First create an empty textstream into which the pieces can be hammered")
-          (SETQ NEWTEXTOBJ (TEXTOBJ NEWSTREAM))
-          (replace (SELECTION CH#) of TSEL with 1)
-                                                             (* ; 
-                                                           "Set up to select the whole source text")
-          (replace (SELECTION CHLIM) of TSEL with (ADD1 (fetch (TEXTOBJ TEXTLEN)
-                                                                       of TEXTOBJ)))
-          (replace (SELECTION DCH) of TSEL with (fetch (TEXTOBJ TEXTLEN) of
-                                                                                         TEXTOBJ))
-          (SETQ PCLST (TEDIT.SELECTED.PIECES TEXTOBJ TSEL CROSSCOPY (FUNCTION 
-                                                                     \TEDIT.COPYTEXTSTREAM.PIECEMAPFN
-                                                                     )
-                             TEXTOBJ NEWTEXTOBJ))            (* ; 
-                  "now get a list of copies of the pieces to be inserted into the empty textstream")
-          (\TEDIT.INSERT.PIECES NEWTEXTOBJ 1 PCLST (fetch (TEXTOBJ TEXTLEN) of TEXTOBJ)
-                 NIL NIL CROSSCOPY)                          (* ; 
-                                                          "Put the pieces into the copy textstream")
-          (replace (TEXTOBJ TEXTLEN) of NEWTEXTOBJ with (fetch (TEXTOBJ TEXTLEN)
-                                                                       of TEXTOBJ))
-                                                             (* ; 
-                                                      "The copy is the same length as the original")
-          (replace (TEXTOBJ MENUFLG) of NEWTEXTOBJ with (fetch (TEXTOBJ MENUFLG)
-                                                                       of TEXTOBJ))
-                                                             (* ; 
-                                                     "And if the original is a menu, so's the copy")
-          (RETURN NEWSTREAM])
-
-(OPENTEXTSTREAM
-  [LAMBDA (TEXT WINDOW START END PROPS)                  (* ; "Edited  4-May-93 14:38 by jds")
-                                                             (* ; 
-     "Create a text-type STREAM to describe TEXT.  Optionally, connect that to WINDOW for display.")
-    (PROG* ([WAS-TEXTSTREAM (AND (type? STREAM TEXT)
-                                 (type? TEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of TEXT]
-            [TEXTOBJ (COND
-                        (WAS-TEXTSTREAM                      (* ; 
-                               "If the guy gave us a text stream to edit, use its TEXTOBJ as ours.")
-                               (create TEXTOBJ
-                                  reusing (fetch (TEXTSTREAM TEXTOBJ) of TEXT)
-                                        \INSERTFIRSTCH _ -1 \INSERTNEXTCH _ -1 \INSERTPCVALID _ NIL))
-                        ((type? TEXTOBJ TEXT)
-                         (create TEXTOBJ using TEXT \INSERTFIRSTCH _ -1 \INSERTNEXTCH _ -1 
-                                                   \INSERTPCVALID _ NIL))
-                        (T (create TEXTOBJ]
-            (TEDIT.GET.FINISHEDFORMS NIL)
-            [PROPS (APPEND PROPS (COPY TEDIT.DEFAULT.PROPS)
-                          (COPY (fetch (TEXTOBJ EDITPROPS) of TEXTOBJ]
-            [TEXTOBJ.WINDOW.VALID (AND WINDOW (EQ WINDOW (\TEDIT.PRIMARYW TEXTOBJ))
-                                       (EQ TEXTOBJ (WINDOWPROP WINDOW 'TEXTOBJ]
-            FONT SEL PCTB PC TEXTSTREAM OTEXTOBJ PROP CLEARGET? PARALOOKS PWINDOW)
-                                                             (* ; 
-                                                    "Remember if the textobj had a window already.")
-           (replace (TEXTOBJ \WINDOW) of TEXTOBJ with (AND WINDOW (LIST WINDOW)))
-                                                             (* ; 
-              "Necessary because some incoming object types depend on knowing where the window is.")
-           (replace (TEXTOBJ LINES) of TEXTOBJ with NIL)
-
-     (* ;; "This is here so if we re-OPENTEXTSTREAM an existing stream/window pair we don't get two sets of line descriptors")
-
-           (for PROPNAME in PROPS by (CDDR PROPNAME) as PROPVAL
-              in (CDR PROPS) by (CDDR PROPVAL) do (TEXTPROP TEXTOBJ PROPNAME PROPVAL)
-                  )                                          (* ; 
-                                          "Save the PROPS for later people who'd like to know them")
-           [SETQ FONT (COND
-                         ((type? CHARLOOKS (LISTGET PROPS 'FONT))
-                          (LISTGET PROPS 'FONT))
-                         (T (\TEDIT.PARSE.CHARLOOKS.LIST [OR (LISTGET PROPS 'LOOKS)
-                                                             (COND
-                                                                [(LISTP (LISTGET PROPS 'FONT))
-                                                                 (FONTCREATE (LISTGET PROPS
-                                                                                    'FONT]
-                                                                (T (OR (LISTGET PROPS 'FONT)
-                                                                       DEFAULTFONT]
-                                   NIL TEXTOBJ]              (* ; 
-"Find the default font for this session -- either what the guy tells us, or the global default font")
-           (SETQ PARALOOKS (LISTGET PROPS 'PARALOOKS))
-
-     (* ;; "Get the default paragraph looks.  This must come before the first piece is created, so its fields can be filled in right.")
-
-           (replace (TEXTOBJ FMTSPEC) of TEXTOBJ
-              with (\TEDIT.UNIQUIFY.PARALOOKS [SETQ PARALOOKS (\TEDIT.PARSE.PARALOOKS.LIST
-                                                                   (OR PARALOOKS
-                                                                       (create FMTSPEC
-                                                                          using 
-                                                                                TEDIT.DEFAULT.FMTSPEC
-                                                                              ]
-                              TEXTOBJ))
-           [COND
-              [WAS-TEXTSTREAM                                (* ; 
-                                                    "We got a TEXTOFD stream to edit;  just use it")
-                     (SETQ OTEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of TEXT))
-                     (SETQ TEXTSTREAM TEXT)
-                     (for SELN in (LIST (fetch (TEXTOBJ SEL) of TEXTOBJ)
-                                                (fetch (TEXTOBJ SCRATCHSEL) of TEXTOBJ)
-                                                (fetch (TEXTOBJ SHIFTEDSEL) of TEXTOBJ)
-                                                (fetch (TEXTOBJ MOVESEL) of TEXTOBJ)
-                                                (fetch (TEXTOBJ DELETESEL) of TEXTOBJ))
-                        do 
-
-                              (* ;; "Make all the selections point to the CURRENT textobj!")
-
-                              (COND
-                                 ((EQ OTEXTOBJ (fetch (SELECTION \TEXTOBJ) of SELN))
-                                  (replace (SELECTION \TEXTOBJ) of SELN with TEXTOBJ))
-                                 (T (replace (SELECTION SET) of SELN with NIL)))
-                              (replace (SELECTION ONFLG) of SELN with NIL))
-                     (replace (TEXTSTREAM TEXTOBJ) of TEXTSTREAM with TEXTOBJ)
-                     (replace (TEXTOBJ STREAMHINT) of TEXTOBJ with TEXTSTREAM)
-                     (SETQ PCTB (fetch (TEXTOBJ PCTB) of TEXTOBJ))
-                     (replace (TEXTOBJ EDITFINISHEDFLG) of TEXTOBJ with NIL)
-                                                             (* ; "Mark the edit incomplete.")
-                     (replace (TEXTOBJ \DIRTY) of TEXTOBJ with NIL)
-                                                             (* ; "And mark it not changed.")
-                     (COND
-                        (FONT                                (* ; 
-                                                  "If a new default font was specified, set it up.")
-                              (replace (TEXTOBJ DEFAULTCHARLOOKS) of TEXTOBJ
-                                 with (\TEDIT.UNIQUIFY.CHARLOOKS FONT TEXTOBJ]
-              ((type? TEXTOBJ TEXT)                      (* ; 
-                     "We got a TEXTOBJ to edit; fill in the stream, since it might have been GC'd.")
-               (SETQ TEXTSTREAM (replace (TEXTOBJ STREAMHINT) of TEXTOBJ
-                                   with (create TEXTSTREAM
-                                                   TEXTOBJ _ TEXTOBJ)))
-               (SETQ PCTB (fetch (TEXTOBJ PCTB) of TEXTOBJ))
-               (for FORM in TEDIT.GET.FINISHEDFORMS do (EVAL FORM)))
-              (T                                             (* ; 
-                                 "Otherwise, create a TEXTOFD to describe the text we're editing.-")
-                 (SETQ TEXTSTREAM (replace (TEXTOBJ STREAMHINT) of TEXTOBJ
-                                     with (create TEXTSTREAM
-                                                     TEXTOBJ _ TEXTOBJ)))
-                 [replace (TEXTOBJ PCTB) of TEXTOBJ
-                    with (SETQ PCTB (TEDIT.BUILD.PCTB TEXT TEXTOBJ START END FONT PARALOOKS
-                                               (LISTGET PROPS 'CLEARGET]
-
-                 (* ;; "(setq pc (\\editelt pctb (add1 |\\FirstPieceOffset|)))")
-
-                 (SETQ PC (\GETBASEPTR (\FIRSTNODE PCTB)
-                                 0))
-                 (for FORM in TEDIT.GET.FINISHEDFORMS do (EVAL FORM))
-                 (replace (TEXTOBJ TEXTLEN) of TEXTOBJ with (fetch (BTREENODE TOTLEN)
-                                                                           of PCTB]
-           (replace (TEXTOBJ CARETLOOKS) of TEXTOBJ
-              with (\TEDIT.UNIQUIFY.CHARLOOKS (\TEDIT.CARETLOOKS.VERIFY TEXTOBJ
-                                                         (replace (TEXTOBJ DEFAULTCHARLOOKS)
-                                                            of TEXTOBJ with (
-                                                                            \TEDIT.UNIQUIFY.CHARLOOKS
-                                                                                     FONT TEXTOBJ)))
-                              TEXTOBJ))
-           (replace (TEXTOBJ CARET) of TEXTOBJ with (create
-                                                                 TEDITCARET
-                                                                 TCCARETDS _
-                                                                 (AND WINDOW (WINDOWPROP WINDOW
-                                                                                    'DSP))
-                                                                 TCFORCEUP _ T))
-           (replace (TEXTOBJ TXTREADONLY) of TEXTOBJ with (LISTGET PROPS 'READONLY))
-           (replace (TEXTOBJ TXTTERMSA) of TEXTOBJ with (AND (SETQ PROP
-                                                                          (LISTGET PROPS 'TERMTABLE))
-                                                                         (fetch TERMSA
-                                                                            of PROP)))
-           (replace (TEXTOBJ TXTRTBL) of TEXTOBJ with (LISTGET PROPS 'READTABLE))
-           (replace (TEXTOBJ TXTWTBL) of TEXTOBJ with (LISTGET PROPS 'BOUNDTABLE))
-           [COND
-              ((LISTGET PROPS 'PAGEFORMAT)                   (* ; 
-                              "A default page formatting was supplied.  Impose it on the document.")
-               (TEDIT.PAGEFORMAT TEXTOBJ (LISTGET PROPS 'PAGEFORMAT]
-           (SETQ SEL (fetch (TEXTOBJ SEL) of TEXTOBJ))
-           (SETQ PROP (LISTGET PROPS 'SEL))                  (* ; "Initial Selection, if any.")
-           (COND
-              ((EQ PROP 'DON'T)                              (* ; 
-                                        "A SEL prop of DON'T means don't make an initial selection")
-               (replace (SELECTION SET) of SEL with NIL))
-              ((type? SELECTION PROP)                    (* ; 
-                                             "We came in with an explicit initial sel.  Set it up.")
-               (\COPYSEL PROP SEL)
-               (replace (SELECTION SET) of SEL with T)
-               (replace (SELECTION \TEXTOBJ) of SEL with TEXTOBJ))
-              ((AND (fetch (SELECTION SET) of SEL)
-                    (NOT PROP))                              (* ; 
-                                       "If we came into this with a valid selection, highlight it.")
-               (replace (SELECTION \TEXTOBJ) of SEL with TEXTOBJ))
-              (T                                             (* ; 
-    "Starting without a selection;  let's start with a point selection before the first character.")
-                 (replace (SELECTION CH#) of SEL with (COND
-                                                                     ((FIXP PROP))
-                                                                     (PROP (CAR PROP))
-                                                                     (1)))
-                 (replace (SELECTION CHLIM) of SEL with (COND
-                                                                       ((FIXP PROP))
-                                                                       (PROP (IPLUS (CAR PROP)
-                                                                                    (CADR PROP)))
-                                                                       (1)))
-                 (replace (SELECTION DCH) of SEL with (COND
-                                                                     ((FIXP PROP)
-                                                                      0)
-                                                                     (PROP (CADR PROP))
-                                                                     (0)))
-                 (replace (SELECTION DX) of SEL with 0)
-                 (replace (SELECTION POINT) of SEL with 'LEFT)
-                 (replace (SELECTION SELKIND) of SEL with 'CHAR)
-                 (replace (SELECTION SET) of SEL with (NOT (fetch (TEXTOBJ 
-                                                                                         TXTREADONLY)
-                                                                          of TEXTOBJ)))
-                 (replace (SELECTION \TEXTOBJ) of SEL with TEXTOBJ)))
-           [COND
-              ((fetch (SELECTION SET) of SEL)        (* ; 
-                            "If there's an initial selection, it implies initial caret looks, too.")
-               (replace (TEXTOBJ CARETLOOKS) of TEXTOBJ with (\TEDIT.GET.INSERT.CHARLOOKS
-                                                                          TEXTOBJ SEL]
-           (COND
-              ((AND WINDOW (NOT TEXTOBJ.WINDOW.VALID))       (* ; 
-                                                       "Only if there's a window to display it in:")
-               (replace (TEXTOBJ \WINDOW) of TEXTOBJ with NIL)
-               (\TEDIT.WINDOW.SETUP WINDOW TEXTOBJ TEXTSTREAM PROPS)
-                                                             (* ; 
-                                                 "Set up the window, and display the initial text.")
-               )
-              ((SETQ PWINDOW (LISTGET PROPS 'PROMPTWINDOW))
-
-               (* ;; "There is no window for the session, but he has passed in a promptwindow to use, install it in the textobj")
-
-               (replace (TEXTOBJ PROMPTWINDOW) of TEXTOBJ with PWINDOW)))
-           (\SETUPGETCH (create EDITMARK
-                                   PC _ (\GETBASEPTR (\FIRSTNODE PCTB)
-                                               0)
-                                   PCOFF _ 0
-                                   PCNO _ 1)
-                  TEXTOBJ)                                   (* ; "Set the file ptr to 0")
-           (RETURN TEXTSTREAM])
-
-(REOPENTEXTSTREAM
-  [LAMBDA (STREAM)                                       (* ; "Edited 31-May-91 14:18 by jds")
-    (replace (STREAM ACCESS) of STREAM with 'BOTH)
-    (replace (STREAM BINABLE) of STREAM with T)
-    (replace (STREAM STRMBINFN) of STREAM with (FUNCTION \TEXTBIN))
-    (replace (STREAM STRMBOUTFN) of STREAM with (FUNCTION \TEXTBOUT))
-    STREAM])
-
-(TEDIT.STREAMCHANGEDP
-  [LAMBDA (STREAM RESET?)                                (* ; "Edited 31-May-91 13:57 by jds")
-    (PROG1 (fetch (TEXTOBJ \DIRTY) of (TEXTOBJ STREAM))
-        (COND
-           (RESET? (replace (TEXTOBJ \DIRTY) of (TEXTOBJ STREAM) with NIL))))])
-
-(TEXTSTREAMP
-  (LAMBDA (STREAM)                                           (* jds " 3-Apr-84 14:34")
-          
-          (* Returns the stream if it is a text stream, else NIL)
-
-    (AND (STREAMP STREAM)
-         (type? TEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of STREAM))
-         STREAM)))
-
-(TXTFILE
-  [LAMBDA (TEXTOBJ)                                      (* ; "Edited 31-May-91 13:58 by jds")
-                                                             (* This function is for compiled 
-                                                           access to the TXTFILE field in 
-                                                           RESETSAVE expressions)
-    (fetch (TEXTOBJ TXTFILE) of TEXTOBJ])
-
-(\DELETECH
-  [LAMBDA (CH# CHLIM LEN TEXTOBJ DONTDIRTY)             (* ; "Edited 29-Jan-99 17:28 by kaplan")
-
-    (* ;; "Delete the indicated characters from the text object represented by TEXTOBJ")
-
-    (* ;; 
-  "If DONTDIRTY is non-NIL, then don't notice this change for purposes of UNDO or dirtiness.")
-
-    (COND
-       ((OR DONTDIRTY (NOT (fetch (TEXTOBJ TXTREADONLY) of TEXTOBJ)))
-
-        (* ;; "Only delete characters if changes are permitted, or if it's a TEdit-internal fixup change, e.g., when an NS character 255-x sequence is seen.")
-
-        (LET ((\INFIRSTCH (fetch (TEXTOBJ \INSERTFIRSTCH) of TEXTOBJ))
-              (TEXTLEN (fetch (TEXTOBJ TEXTLEN) of TEXTOBJ))
-              (PCTB (fetch (TEXTOBJ PCTB) of TEXTOBJ))
-              START-OF-PIECE PCLST)
-             (\TEDIT.CHECK (IGEQ LEN 0)
-                    "LEN of delete must be >0.")
-             (\TEDIT.CHECK (IEQP LEN (IDIFFERENCE CHLIM CH#)))
-             [COND
-                ((AND (fetch (TEXTOBJ \INSERTPCVALID) of TEXTOBJ)
-                      (IEQP CHLIM (fetch (TEXTOBJ \INSERTNEXTCH) of TEXTOBJ))
-                      (IGEQ CH# \INFIRSTCH))                 (* ; 
-         "The deletion is from the end of the most recent type-in.  Just adjust the buffer string.")
-                 (freplace (TEXTOBJ \INSERTLEN) of TEXTOBJ with
-                                                                   (replace (PIECE PLEN)
-                                                                      of (fetch (TEXTOBJ
-                                                                                         \INSERTPC)
-                                                                                of TEXTOBJ)
-                                                                      with (IDIFFERENCE CH# 
-                                                                                      \INFIRSTCH)))
-                                                             (* ; "Cut back the length")
-                 (freplace (TEXTOBJ \INSERTNEXTCH) of TEXTOBJ
-                    with (IPLUS (fetch (TEXTOBJ \INSERTLEN) of TEXTOBJ)
-                                    \INFIRSTCH))             (* ; 
-                        "and ch# of next insertion (i.e., 1 past the top CH# in the insert piece.)")
-                 (replace THLEN of (fetch (TEXTOBJ TXTHISTORY) of TEXTOBJ)
-                    with (IDIFFERENCE (fetch THLEN of (fetch (TEXTOBJ TXTHISTORY)
-                                                                     of TEXTOBJ))
-                                    LEN))                    (* ; 
-                                     "Reduce the length of the insertion in the history list, too.")
-                 (COND
-                    ((ZEROP (fetch (TEXTOBJ \INSERTLEN) of TEXTOBJ))
-
-                     (* ;; "He's completely emptied the type-in piece.  Remove it and force creation of a fresh one at next type-in.")
-
-                     (\DELETEPIECE (fetch (TEXTOBJ \INSERTPC) of TEXTOBJ)
-                            PCTB)                            (* UPDATEPCNODES (fetch
-                                                           (TEXTOBJ \INSERTPC) of TEXTOBJ)
-                                                           (IMINUS LEN) PCTB)
-                     (replace (TEXTOBJ \INSERTPCVALID) of TEXTOBJ with NIL)
-                                                             (* ; 
-                                                 "Force the next insertion to be in a fresh piece.")
-                     )
-                    (T (UPDATEPCNODES (fetch (TEXTOBJ \INSERTPC) of TEXTOBJ)
-                              (IMINUS LEN)
-                              PCTB)))                        (* ; "Adjust CH#s in the Piece Table.")
-                 )
-                ((ILEQ CH# TEXTLEN)                          (* ; 
-                                      "General case of deletion: Remove pieces as needed to do it.")
-                 (PROG (PCN PC1 PCNON PCSOUT (HIPC NIL)
-                            HI LO)
-                       (SETQ PC1 (\CHTOPC CH# PCTB T))   (* ; 
-                                                "Piece # of piece containing start of deleted text")
-                       (COND
-                          ((IGREATERP CH# START-OF-PIECE)    (* ; 
-                              "Split the piece, so the deleted text now starts on a piece boundary")
-                           (\SPLITPIECE PC1 (- CH# START-OF-PIECE)
-                                  TEXTOBJ))
-                          (T (SETQ PC1 (fetch (PIECE PREVPIECE) of PC1))
-                                                             (* ; 
-                                                "PC1 _ piece before the first piee to be deleted.-")
-                             ))
-                       (COND
-                          ((ILEQ CHLIM TEXTLEN)              (* ; 
-                                      "Find the peice that contains the END of the deleted section")
-                           (SETQ PCN (\CHTOPC CHLIM PCTB T)))
-                          (T 
-                             (* ;; 
- "Deleting past end, so n+1-th piece is the symbol LASTPIECE, which starts 1 past end of all text.")
-
-                             (SETQ START-OF-PIECE (ADD1 TEXTLEN))
-                             (SETQ PCN 'LASTPIECE)
-                             (SETQ HIPC NIL)))
-                       [COND
-                          ((ATOM PCN)                        (* ; 
-                                                           "Deleting before the end of text.")
-                           )
-                          (T                                 (* ; 
-                                                        "Deleting in front of a real piece of text")
-                             (COND
-                                ([AND (IGREATERP CHLIM START-OF-PIECE)
-                                      (ILESSP CHLIM (IPLUS START-OF-PIECE (fetch (PIECE PLEN)
-                                                                             of PCN]
-                                 (SETQ HIPC (\SPLITPIECE PCN (- CHLIM START-OF-PIECE)
-                                                   TEXTOBJ PCNON))
-                                 (SETQ PCTB (fetch (TEXTOBJ PCTB) of TEXTOBJ)))
-                                (T (SETQ HIPC PCN]           (* ; 
-                                                   "if not on a piece bound, split the last piece.")
-                       (AND PC1 (EQ PC1 HIPC)
-                            (HELP "circular"))
-                       [SETQ PCLST (bind NPC [PC _ (COND
-                                                          (PC1 (fetch (PIECE NEXTPIECE)
-                                                                  of PC1))
-                                                          (T 
-                                                             (* ;; 
-                                                         "(\EDITELT PCTB (ADD1 \FirstPieceOffset))")
-
-                                                             (\GETBASEPTR (\FIRSTNODE PCTB)
-                                                                    0]
-                                      while (AND PC (NEQ PC HIPC))
-                                      collect (PROG1 PC
-                                                      (SETQ PC (fetch (PIECE NEXTPIECE)
-                                                                  of PC)))]
-                       [OR DONTDIRTY (\TEDIT.HISTORYADD TEXTOBJ
-                                            (create TEDITHISTORYEVENT
-                                                   THACTION _ 'Delete
-                                                   THLEN _ LEN
-                                                   THCH# _ CH#
-                                                   THFIRSTPIECE _ (CAR PCLST]
-                                                             (* ; 
-                                                           "Add this event to the history list")
-
-                  (* ;; "Actually delete the pieces:")
-
-                       (for PC in PCLST do [AND (fetch (PIECE POBJ) of PC)
-                                                            (IMAGEOBJPROP (fetch (PIECE POBJ)
-                                                                             of PC)
-                                                                   'WHENDELETEDFN)
-                                                            (APPLY* (IMAGEOBJPROP (fetch
-                                                                                   (PIECE POBJ)
-                                                                                     of PC)
-                                                                           'WHENDELETEDFN)
-                                                                   (fetch (PIECE POBJ)
-                                                                      of PC)
-                                                                   (CAR (fetch (TEXTOBJ \WINDOW)
-                                                                           of TEXTOBJ] 
-                                                             (* \DELETEPIECE PC PCTB)
-                                                      (\DELETETREE PC (fetch (PIECE PTREENODE)
-                                                                         of PC)))
-
-                  (* ;; "Link around the deleted pieces:")
-
-                       (COND
-                          (PC1 (replace (PIECE NEXTPIECE) of PC1 with HIPC)))
-                       (COND
-                          (HIPC (replace (PIECE PREVPIECE) of HIPC with PC1)))
-
-                  (* ;; "Unchain the deleted pieces from the rest of the document.")
-
-                       (AND (CAR (FLAST PCLST))
-                            (replace (PIECE PREVPIECE) of (CAR (FLAST PCLST)) with NIL))
-                       (AND (CAR PCLST)
-                            (replace (PIECE PREVPIECE) of (CAR PCLST) with NIL))
-                       (replace (TEXTOBJ \INSERTPCVALID) of TEXTOBJ with NIL)
-                                                             (* ; 
-                                                 "Force the next insertion to be in a fresh piece.")
-                       (\TEDIT.DIFFUSE.PARALOOKS PC1 HIPC)   (* ; 
-                                                           "PROPOGATE PARALOOKS THRU THE DELETION")
-                   ]
-             (freplace (TEXTOBJ TEXTLEN) of TEXTOBJ with (IDIFFERENCE TEXTLEN LEN))
-                                                             (* ; "Update the file's length")
-             (OR DONTDIRTY (replace (TEXTOBJ \DIRTY) of TEXTOBJ with T])
-
-(\SETUPGETCH
-  [LAMBDA (CH# TEXTOBJ)                                  (* ; "Edited 14-Apr-93 17:14 by jds")
-
-(* ;;; "Set up TEXTOBJ so that the next \GETCH will retrieve character # CH#")
-
-    (* ;; "NB that 1st char in the textobj is #1.")
-
-    (* ;; "(declare (localvars . t))")
-
-    (PROG (PC PCNO PS PF CHOFFSET CHARSLEFT (PCTB (fetch (TEXTOBJ PCTB) of TEXTOBJ))
-              (STREAM (fetch (TEXTOBJ STREAMHINT) of TEXTOBJ))
-              FPOS OFFST SUBSTREAM START-OF-PIECE)
-          (replace (TEXTSTREAM FATSTREAMP) of STREAM with NIL)
-          [COND
-             [(LISTP CH#)                                    (* ; 
-                                                   "If CH# is a piece-offset pair, make use of it.")
-              (SETQ PC (fetch (EDITMARK PC) of CH#))
-              (SETQ CHOFFSET (fetch (EDITMARK PCOFF) of CH#))
-              (COND
-                 ((ATOM PC)                                  (* ; 
-                                                    "This SETUPGETCH is to the final pseudo-piece!")
-                  (freplace (TEXTSTREAM PIECE) of STREAM with PC)
-                  (freplace (STREAM COFFSET) of STREAM with 0)
-                  (freplace (STREAM CPAGE) of STREAM with 0)
-                  (freplace (TEXTSTREAM PCSTARTPG) of STREAM with 0)
-                  (freplace (TEXTSTREAM PCSTARTCH) of STREAM with 0)
-                  (freplace (TEXTSTREAM PCOFFSET) of STREAM with 0)
-                  (RETURN]
-             ((IGREATERP CH# (IMAX 1 (fetch (TEXTOBJ TEXTLEN) of TEXTOBJ)))
-              (ERROR "TRYING TO \SETUPGETCH BEYOND END OF TEXT"))
-             (T 
-                (* ;; "CH# is indeed a character number.  Find the corresponding piece, its pcno, and the offset within that piece.")
-
-                (SETQ PC (\CHTOPC CH# PCTB T))
-
-                (* ;; "(setq pc (\\editelt pctb (add1 pcno)))")
-
-                (SETQ CHOFFSET (- CH# START-OF-PIECE]
-          (freplace (TEXTSTREAM PIECE) of STREAM with PC)
-          (replace (STREAM BINABLE) of STREAM with T)
-          (SETQ CHARSLEFT (IDIFFERENCE (fetch (PIECE PLEN) of PC)
-                                 CHOFFSET))
-          (freplace (TEXTSTREAM PCOFFSET) of STREAM with CHOFFSET)
-          (COND
-             ((SETQ PS (ffetch (PIECE PSTR) of PC))  (* ; "This piece resides in a STRING.")
-              (\TEDIT.TEXTBIN.STRINGSETUP CHOFFSET CHARSLEFT STREAM PS))
-             ((SETQ PF (ffetch (PIECE PFILE) of PC)) (* ; "This piece resides on a FILE")
-              (\TEDIT.TEXTBIN.FILESETUP PC CHOFFSET CHARSLEFT STREAM PF (fetch (PIECE PFATP)
-                                                                               of PC)))
-             [(SETQ PF (ffetch (PIECE POBJ) of PC))  (* ; 
-          "This piece points to an object.  set up so \TextBin will be called, and will return it.")
-              (COND
-                 ((SETQ SUBSTREAM (IMAGEOBJPROP PF 'SUBSTREAM))
-                                                             (* ; 
-                                         "There is a stream below this one! Reflect things upward.")
-                                                             (* ; 
-                                    "This is a simple object.  Just set things up so it gets read.")
-                  (\SETUPGETCH (ADD1 CHOFFSET)
-                         (fetch (TEXTSTREAM TEXTOBJ) of SUBSTREAM))
-                  (replace (STREAM BINABLE) of STREAM with NIL)
-                  (freplace (TEXTSTREAM CHARSLEFT) of STREAM with 0)
-                  (freplace (STREAM COFFSET) of STREAM with CHOFFSET)
-                  (freplace (STREAM CBUFSIZE) of STREAM with (fetch (PIECE PLEN)
-                                                                            of PC))
-                  (freplace (STREAM CPAGE) of STREAM with 0)
-                  (freplace (TEXTSTREAM PCSTARTCH) of STREAM with CHOFFSET)
-                  (freplace (TEXTSTREAM PCSTARTPG) of STREAM with 0)
-                  (replace (TEXTSTREAM CURRENTPARALOOKS) of STREAM with
-                                                                           (fetch (TEXTSTREAM
-                                                                                       
-                                                                                     CURRENTPARALOOKS
-                                                                                       ) of
-                                                                                         SUBSTREAM))
-                  (replace (TEXTSTREAM CURRENTLOOKS) of STREAM with (fetch
-                                                                                 (TEXTSTREAM 
-                                                                                        CURRENTLOOKS)
-                                                                                   of SUBSTREAM))
-                  (RETURN))
-                 (T                                          (* ; 
-                                    "This is a simple object.  Just set things up so it gets read.")
-                    (freplace (TEXTSTREAM CHARSLEFT) of STREAM with 1)
-                    (freplace (STREAM COFFSET) of STREAM with 0)
-                    (freplace (STREAM CBUFSIZE) of STREAM with 1)
-                    (freplace (STREAM CPAGE) of STREAM with 0)
-                    (freplace (TEXTSTREAM PCSTARTCH) of STREAM with 0)
-                    (freplace (TEXTSTREAM PCSTARTPG) of STREAM with 0)
-                    (replace (STREAM BINABLE) of STREAM with NIL)
-                                                             (* ; 
-                                                          "Force the next BIN to go thru our code.")
-                    ]
-             (T (ERROR "Piece is neither a file nor a string??" PC)))
-          (replace (TEXTSTREAM CURRENTPARALOOKS) of STREAM with
-                                                                   (\TEDIT.APPLY.PARASTYLES
-                                                                    (fetch (PIECE PPARALOOKS)
-                                                                       of PC)
-                                                                    PC TEXTOBJ))
-                                                             (* ; 
-                                                         "Set the character looks and font caches.")
-          (replace (TEXTSTREAM CURRENTLOOKS) of STREAM with (\TEDIT.APPLY.STYLES
-                                                                         (ffetch (PIECE PLOOKS)
-                                                                            of PC)
-                                                                         PC TEXTOBJ])
-
-(\TEDIT.REOPEN.STREAM
-  [LAMBDA (TEXTSTREAM PIECESTREAM)                       (* ; "Edited 11-Jun-99 15:12 by rmk:")
-                                                             (* ; "Edited 11-Jun-99 15:12 by rmk:")
-                                                             (* ; "Edited 11-Jun-99 14:24 by rmk:")
-                                                             (* ; "Edited 15-Apr-93 15:53 by jds")
-
-    (* ;; "Re-open the backing file stream, and propogate the change thru the entire piece table.  Also, if TXTFILE is set to the closed stream, fill it in as well.")
-
-    (LET* ([NEWSTREAM (OPENSTREAM PIECESTREAM 'INPUT NIL '((TYPE TEXT]
-           (TEXTOBJ (TEXTOBJ TEXTSTREAM))
-           (PCTB (fetch (TEXTOBJ PCTB) of TEXTOBJ))
-           PC)
-          (SETQ PC (\GETBASEPTR (\FIRSTNODE PCTB)
-                          0))
-
-          (* ;; "Run thru the pieces, correcting any that used this stream to use the new one:")
-
-          (while PC do (COND
-                                  ((EQ (fetch (PIECE PFILE) of PC)
-                                       PIECESTREAM)
-                                   (replace (PIECE PFILE) of PC with NEWSTREAM)))
-                              (SETQ PC (fetch (PIECE NEXTPIECE) of PC)))
-
-          (* ;; "Check the TXTFILE, and if it uses the closed stream, fix it as well:")
-
-          (COND
-             ((EQ (fetch (TEXTOBJ TXTFILE) of TEXTOBJ)
-                  PIECESTREAM)                               (* ; 
-                                                     "Yup, it was the old, closed stream.  Fix it.")
-              (replace (TEXTOBJ TXTFILE) of TEXTOBJ with NEWSTREAM)))
-
-          (* ;; "Return the new value for the stream:")
-
-          NEWSTREAM])
-
-(\TEDIT.COPYTEXTSTREAM.PIECEMAPFN
-  [LAMBDA (PC TEXTOBJ FROMOBJ TOOBJ)                     (* ; "Edited 31-May-91 14:00 by jds")
-                                                             (* Called by COPYTEXTSTREAM via 
-                                                           TEDIT.SELECTED.PIECES, to do the 
-                                                           copy-operation processing on the 
-                                                           candidate pieces.)
-    (PROG (OBJ NEWOBJ COPYFN)
-          (SETQ PC (create PIECE using PC PNEW _ T)) (* No matter what, we need a fresh 
-                                                           copy.)
-          [COND
-             ((fetch (PIECE POBJ) of PC)             (* This piece describes an object)
-              (SETQ OBJ (fetch (PIECE POBJ) of PC))
-              [COND
-                 [(SETQ COPYFN (IMAGEOBJPROP OBJ 'COPYFN))
-                  (SETQ NEWOBJ (APPLY* COPYFN OBJ (fetch (TEXTOBJ STREAMHINT) of FROMOBJ)
-                                      (fetch (TEXTOBJ STREAMHINT) of TOOBJ)))
-                  (COND
-                     ((EQ NEWOBJ 'DON'T)                     (* He said not to copy this piece --
-                                                           abort the whole copy.)
-                      (TEDIT.PROMPTPRINT TEXTOBJ "COPY of this object not allowed." T)
-                      (RETFROM 'TEDIT.COPY))
-                     (NEWOBJ (replace (PIECE POBJ) of PC with NEWOBJ))
-                     (T (replace (PIECE POBJ) of PC with (COPYALL OBJ]
-                 (OBJ                                        (* No copy fn; just strike off a 
-                                                           copy of our own)
-                      (replace (PIECE POBJ) of PC with (COPYALL OBJ]
-              (COND
-                 ((SETQ COPYFN (IMAGEOBJPROP OBJ 'WHENCOPIEDFN))
-                                                             (* If there's an eventfn for 
-                                                           copying, use it.)
-                  (APPLY* COPYFN OBJ (CAR (fetch (TEXTOBJ \WINDOW) of TOOBJ))
-                         (fetch (TEXTOBJ STREAMHINT) of FROMOBJ)
-                         (fetch (TEXTOBJ STREAMHINT) of TOOBJ]
-          (RETURN PC])
-
-(\TEXTINIT
-  [LAMBDA NIL                                           (* ; "Edited  6-May-2021 10:17 by rmk:")
-                                                             (* ; 
-                                          "Create the FDEV and STREAM prototypes for TEXT streams.")
-
-    (* ;; "TEXT streams make use of the following STREAM fields:")
-
-    (* ;; "(DEVICE (* FDEV of this guy -- The TEXT device)")
-
-    (* ;; "F1 (* The STREAM for the PFILE of the current piece (or NIL))")
-
-    (* ;; "F2 (* # chars left in piece at end of underlying file's page)")
-
-    (* ;; "F3 (* The TEXTOBJ for this stream)")
-
-    (* ;; "F4")
-
-    (* ;; "F5 (* The PIECE we're currently inside)")
-
-    (* ;; "(FW6 WORD) (* CPAGE for the start of the piece, for BACKFILEPTR)")
-
-    (* ;; "(FW7 WORD) (* COFFSET for the start of the piece, for BACKFILEPTR)")
-
-    (* ;; "(FW8 WORD)")
-
-    (SETQ \TEXTIMAGEOPS (create IMAGEOPS
-                               IMAGETYPE _ 'TEXT
-                               IMXPOSITION _ (FUNCTION \TEXTDSPXPOSITION)
-                               IMYPOSITION _ (FUNCTION \TEXTDSPYPOSITION)
-                               IMLEFTMARGIN _ (FUNCTION \TEXTLEFTMARGIN)
-                               IMRIGHTMARGIN _ (FUNCTION \TEXTRIGHTMARGIN)
-                               IMFONT _ (FUNCTION \TEXTDSPFONT)
-                               IMCLOSEFN _ (FUNCTION NILL)
-                               IMFONTCREATE _ 'DISPLAY
-                               IMLINEFEED _ (FUNCTION \TEXTDSPLINEFEED)
-                               IMCHARWIDTH _ (FUNCTION \TEXTDSPCHARWIDTH)
-                               IMSTRINGWIDTH _ (FUNCTION \TEXTDSPSTRINGWIDTH)))
-    (SETQ \TEXTFDEV (create FDEV
-                           DEVICENAME _ 'TEXT
-                           RESETABLE _ T
-                           RANDOMACCESSP _ T
-                           PAGEMAPPED _ NIL
-                           GETFILENAME _ (FUNCTION NILL)
-                           BIN _ (FUNCTION \TEXTBIN)
-                           BOUT _ (FUNCTION \TEXTBOUT)
-                           CLOSEFILE _ (FUNCTION \TEXTCLOSEF)
-                           OPENFILE _ (FUNCTION \TEXTOPENF)
-                           DELETEFILE _ (FUNCTION NILL)
-                           DIRECTORYNAMEP _ (FUNCTION NILL)
-                           EVENTFN _ (FUNCTION NILL)
-                           GENERATEFILES _ (FUNCTION \GENERATENOFILES)
-                           GETFILEINFO _ (FUNCTION NILL)
-                           HOSTNAMEP _ (FUNCTION NILL)
-                           READPAGES _ (FUNCTION NILL)
-                           REOPENFILE _ [FUNCTION (LAMBDA (FILE ACCESS RECOG OTHERINFO FDEV STREAM)
-                                                    (replace (STREAM ACCESS) of STREAM
-                                                       with 'BOTH)
-                                                    STREAM]
-                           SETFILEINFO _ (FUNCTION NILL)
-                           BACKFILEPTR _ (FUNCTION \TEXTBACKFILEPTR)
-                           SETFILEPTR _ (FUNCTION \TEXTSETFILEPTR)
-                           PEEKBIN _ (FUNCTION \TEXTPEEKBIN)
-                           GETEOFPTR _ (FUNCTION \TEXTGETEOFPTR)
-                           GETFILEPTR _ (FUNCTION \TEXTGETFILEPTR)
-                           EOFP _ (FUNCTION \TEXTEOFP)
-                           FDBINABLE _ T
-                           FDBOUTABLE _ NIL
-                           FDEXTENDABLE _ NIL
-                           TRUNCATEFILE _ (FUNCTION NILL)
-                           WRITEPAGES _ (FUNCTION NILL)))
-    (SETQ \TEXTOFD
-     (create STREAM
-            BINABLE _ T
-            BOUTABLE _ NIL
-            ACCESS _ 'BOTH
-            USERCLOSEABLE _ T
-            USERVISIBLE _ T
-            DEVICE _ \TEXTFDEV
-            F1 _ NIL
-            F2 _ 0
-            F3 _ NIL
-            F5 _ NIL
-            FW6 _ 0
-            FW7 _ 0
-            MAXBUFFERS _ 10
-            IMAGEOPS _ \TEXTIMAGEOPS
-            IMAGEDATA _ (create TEXTIMAGEDATA)
-            OUTCHARFN _ (FUNCTION \TEDITOUTCHARFN)))         (* ; "The prototypical Text stream")
-
-    (* ;; "Set up so that FILE NOT OPENs on TEdit streams are caught and fixed.")
-
-    (CL:SETF (CONDITION-HANDLER 'XCL:STREAM-NOT-OPEN)
-           (FUNCTION (LAMBDA (CONDITION)
-                       (LET ((STREAM (STREAM-ERROR-STREAM CONDITION)))
-                            (COND
-                               [(AND (BOUNDP 'ERRORPOS)
-                                     (TEXTSTREAMP STREAM))
-                                                             (* ; 
-           "This happened in the error handler, and it happened to a TEdit stream, so try the fix:")
-                                (LET ((XCL::RESULT (REOPENTEXTSTREAM STREAM)))
-                                     (CL:WHEN XCL::RESULT
-                                         (ENVAPPLY (STKNAME ERRORPOS)
-                                                (SUBST XCL::RESULT STREAM (STKARGS ERRORPOS))
-                                                (STKNTH -1 ERRORPOS ERRORPOS)
-                                                ERRORPOS T T))]
-                               (*TEDIT-OLD-STREAM-ERROR-HANDLER* 
-                                                             (* ; 
-                         "Some other kind of stream, so punt to the old handler (if there is one):")
-                                      (APPLY* *TEDIT-OLD-STREAM-ERROR-HANDLER* CONDITION])
-
-(\TEXTMARK
-  [LAMBDA (TEXTOBJ)                                      (* ; "Edited 31-May-91 14:18 by jds")
-    (PROG ((STREAM (fetch (TEXTOBJ STREAMHINT) of TEXTOBJ)))
-          (RETURN (CONS (ffetch (TEXTSTREAM PIECE) of STREAM)
-                        (IDIFFERENCE (create BYTEPTR
-                                            PAGE _ (ffetch (STREAM CPAGE) of STREAM)
-                                            OFFSET _ (ffetch (STREAM COFFSET) of STREAM))
-                               (create BYTEPTR
-                                      PAGE _ (ffetch (TEXTSTREAM PCSTARTPG) of STREAM)
-                                      OFFSET _ (ffetch (TEXTSTREAM PCSTARTCH) of STREAM])
-
-(\TEXTTTYBOUT
-  [LAMBDA (STREAM BYTE)                                  (* ; "Edited 31-May-91 14:18 by jds")
-                                                             (* Do BOUT to a text stream, which 
-                                                           is an insertion at the caret.)
-    (PROG ((TEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of STREAM)))
-          (COND
-             ((EQ BYTE ERASECHARCODE)
-              (\TEDIT.CHARDELETE TEXTOBJ "" (fetch (TEXTOBJ SEL) of TEXTOBJ)))
-             ((EQ IGNORE.CCE (fetch CCECHO of (\SYNCODE (OR (fetch (TEXTOBJ TXTTERMSA)
-                                                                       of TEXTOBJ)
-                                                                    \PRIMTERMSA)
-                                                             BYTE)))
-                                                             (* Nothing, ignore it)
-              )
-             (T (SELCHARQ BYTE
-                     ((EOL CR LF) 
-                          (\TEXTBOUT STREAM BYTE)
-                          (replace (STREAM CHARPOSITION) of STREAM with 0))
-                     (PROGN (\TEXTBOUT STREAM BYTE)
-                            (add (fetch (STREAM CHARPOSITION) of STREAM)
-                                   1])
-)
-(DEFINEQ
-
-(\INSERTCH
-  [LAMBDA (CH CH# TEXTOBJ INSERTMARK)                   (* ; "Edited 29-Jan-99 17:19 by kaplan")
-
-    (* ;; "If the current ch is 1+last ch in the distinguished INPUTPIECE, then append this text to that piece (make a new one if need be.), and fix up ch#s in the PCTB")
-
-    (* ;; "else, create a new input piece (as a substring of the old one) and INSERT it at the right spot, perhaps after splitting a piece to make room.")
-
-    (COND
-       ((NOT (fetch (TEXTOBJ TXTREADONLY) of TEXTOBJ))
-
-        (* ;; "Only insert if the document is allowed to change.")
-
-        (PROG (PC (LEN (COND
-                          ((type? STRINGP CH)
-                           (NCHARS CH))
-                          (T 1)))
-                  [FATP (COND
-                           [(type? STRINGP CH)
-                            (AND (fetch (STRINGP FATSTRINGP) of CH)
-                                 (NOT (NULL (for CHAR instring CH
-                                               thereis (IGREATERP CHAR \MAXTHINCHAR]
-                           (T (IGREATERP CH \MAXTHINCHAR]
-                  CHNO NEWPC PREVPC EVENT REPLACING (NEWFLAG NIL)
-                  (\INEXTCH (fetch (TEXTOBJ \INSERTNEXTCH) of TEXTOBJ))
-                  (\INLEN (fetch (TEXTOBJ \INSERTLEN) of TEXTOBJ))
-                  (\INLEFT (fetch (TEXTOBJ \INSERTLEFT) of TEXTOBJ))
-                  (\INSTRING (fetch (TEXTOBJ \INSERTSTRING) of TEXTOBJ))
-                  (\INPC (fetch (TEXTOBJ \INSERTPC) of TEXTOBJ))
-                  (\INFIRSTCH (fetch (TEXTOBJ \INSERTFIRSTCH) of TEXTOBJ))
-                  (PCTB (ffetch (TEXTOBJ PCTB) of TEXTOBJ))
-                  (TEXTLEN (fetch (TEXTOBJ TEXTLEN) of TEXTOBJ))
-                  (IMARKPC (fetch (EDITMARK PC) of INSERTMARK))
-                  (IMARKCH (fetch (EDITMARK PCOFF) of INSERTMARK))
-                  PLOOKS NLOOKS START-OF-PIECE)
-              [COND
-                 ((ZEROP LEN)                                (* ; "Nothing to insert, really!")
-                  (RETURN))
-                 [(ZEROP (fetch (BTREENODE COUNT) of PCTB))
-                                                             (* ; "PCTB is empty.")
-                  (\INSERT.FIRST.PIECE TEXTOBJ)
-                  (SETQ \INPC (fetch (TEXTOBJ \INSERTPC) of TEXTOBJ))
-                  (SETQ \INSTRING (fetch (TEXTOBJ \INSERTSTRING) of TEXTOBJ))
-                  (COND
-                     ((type? STRINGP CH)                 (* ; 
-                                       "If input is a string, copy it to the insert piece's string")
-                      (RPLSTRING \INSTRING 1 CH))
-                     (T                                      (* ; 
-                                         "If it's a single charcode, move it to the piece's string")
-                        (RPLCHARCODE \INSTRING 1 CH)))
-                  (replace (PIECE PLEN) of \INPC (freplace (TEXTOBJ \INSERTLEN)
-                                                            of TEXTOBJ with LEN))
-                  (freplace (TEXTOBJ \INSERTLEFT) of TEXTOBJ with (IDIFFERENCE 512 LEN))
-                  (freplace (TEXTOBJ \INSERTNEXTCH) of TEXTOBJ with LEN)
-                  (\TEDIT.HISTORYADD TEXTOBJ (create TEDITHISTORYEVENT
-                                                    THACTION _ 'Insert
-                                                    THLEN _ (fetch (PIECE PLEN) of \INPC)
-                                                    THCH# _ CH#
-                                                    THFIRSTPIECE _ (LIST \INPC)
-                                                    THPOINT _ 'RIGHT]
-                 ((OR [AND (fetch (TEXTOBJ \INSERTPCVALID) of TEXTOBJ)
-                           (OR (IEQP CH# \INEXTCH)
-                               (AND INSERTMARK (EQ IMARKPC (fetch (PIECE NEXTPIECE) of \INPC)
-                                                   )
-                                    (EQ IMARKCH 0]
-                      (AND NIL (EQ CH# 1)
-                           (EQ \INEXTCH -1)))
-
-                  (* ;; "We're inserting at the end of a previous insertion, for which we already have a piece built.  Just add to it.")
-
-                  (* ;; "Or, First insertion to empty document.")
-
-                  (COND
-                     ((IGEQ \INLEFT LEN)                     (* ; 
-                                                 "There's enough room in this piece -- fill it in.")
-                      (COND
-                         ((type? STRINGP CH)             (* ; 
-                                       "If input is a string, copy it to the insert piece's string")
-                          (RPLSTRING \INSTRING (ADD1 \INLEN)
-                                 CH))
-                         (T                                  (* ; 
-                                         "If it's a single charcode, move it to the piece's string")
-                            (RPLCHARCODE \INSTRING (ADD1 \INLEN)
-                                   CH)))
-                      (replace (PIECE PLEN) of \INPC with (freplace (TEXTOBJ 
-                                                                                           \INSERTLEN
-                                                                                           )
-                                                                         of TEXTOBJ
-                                                                         with (IPLUS \INLEN LEN))
-                             )                               (* ; 
-                                                           "Fix the length of the insert piece")
-                      (freplace (TEXTOBJ \INSERTLEFT) of TEXTOBJ with (IDIFFERENCE 
-                                                                                         \INLEFT LEN)
-                             )                               (* ; "And the space left in the piece")
-                      (freplace (TEXTOBJ \INSERTNEXTCH) of TEXTOBJ with (IPLUS \INEXTCH 
-                                                                                           LEN))
-                                                             (* ; "And the next CH#")
-                                                             (* ; "And the piece # for future use")
-                      )
-                     (T                                      (* ; 
-                                                     "No room.  Chop this piece & start a new one.")
-                        (replace (PIECE PSTR) of \INPC with (SUBSTRING \INSTRING 1 \INLEN
-                                                                               ))
-                                                             (* ; 
-                                                        "Chop the current piece's string to length")
-                        (SETQ NEWPC (create PIECE
-                                           PSTR _ (ALLOCSTRING 512 '% )
-                                           PLOOKS _ (fetch (PIECE PLOOKS) of \INPC)
-                                           PPARALOOKS _ (fetch (PIECE PPARALOOKS) of \INPC)
-                                           PPARALAST _ NIL
-                                           PNEW _ T))        (* ; "Create the new piece")
-                        (freplace (TEXTOBJ \INSERTSTRING) of TEXTOBJ
-                           with (SETQ \INSTRING (fetch (PIECE PSTR) of NEWPC)))
-                                                             (* ; 
-                                                           "Set the \INSTRING field in TEXTOBJ")
-                        (COND
-                           ((type? STRINGP CH)           (* ; 
-                                       "If input is a string, copy it to the insert piece's string")
-                            (RPLSTRING \INSTRING 1 CH))
-                           (T                                (* ; 
-                                         "If it's a single charcode, move it to the piece's string")
-                              (RPLCHARCODE \INSTRING 1 CH)))
-                        (replace (PIECE PLEN) of NEWPC with LEN)
-                                                             (* ; 
-                                         "So far, the present input is the only thing in the piece")
-                        (replace (TEXTOBJ \INSERTPCNO) of TEXTOBJ
-                           with (\INSERTPIECE NEWPC (OR (fetch (PIECE NEXTPIECE)
-                                                                   of \INPC)
-                                                                'LASTPIECE)
-                                           TEXTOBJ))         (* ; 
-                                          "Insert the new piece into the text and save the piece #")
-
-                        (* ;; "(SETQ PCTB (fetch PCTB of TEXTOBJ))")
-                                                             (* ; 
-                                                           "Which may have caused a PCTB overflow")
-                                                             (* ; 
-                                                       "This does not happen, after change pctree.")
-                        (freplace (TEXTOBJ \INSERTPC) of TEXTOBJ with (SETQ \INPC NEWPC))
-                        (freplace (TEXTOBJ \INSERTLEFT) of TEXTOBJ with (IDIFFERENCE
-                                                                                     512 LEN))
-                        (freplace (TEXTOBJ \INSERTLEN) of TEXTOBJ with LEN)
-                        (replace (TEXTOBJ \INSERTFIRSTCH) of TEXTOBJ with CH#)
-                                                             (* ; 
-                                                           "CH# of the first inserted character")
-                        (replace (TEXTOBJ \INSERTNEXTCH) of TEXTOBJ with (IPLUS CH# LEN))
-                                                             (* ; 
-                            "The CH# of the next character, if it's inserted at the current caret.")
-                        (replace THFIRSTPIECE of (fetch (TEXTOBJ TXTHISTORY) of
-                                                                                         TEXTOBJ)
-                           with (NCONC1 (fetch (TEXTOBJ TXTHISTORY) of TEXTOBJ)
-                                           NEWPC))
-                        (SETQ NEWFLAG T)                     (* ; "Note the new piece's creation")
-                        ))
-                  (add (fetch THLEN of (fetch (TEXTOBJ TXTHISTORY) of TEXTOBJ))
-                         LEN)                                (* ; 
-                                             "Update the length of the insertion/replacement text.")
-                  )
-                 (T 
-                    (* ;; "NEW INSERTION POINT;  IF THERE'S ANYTHING LEFT OF THE PREVIOUS INSERT PIECE, CRACK OFF A NEW ONE & FILL IT.  THEN FIGURE OUT WHERE TO SHOEHORN IT IN.")
-
-                    (SETQ PC (OR IMARKPC (\CHTOPC CH# PCTB T)))
-                    [COND
-                       ((AND \INPC (IGEQ \INLEFT LEN))       (* ; 
-                                 "There's room left in the prior input-piece's string;  re-use it.")
-                        (SETQ NEWPC (create PIECE
-                                           PSTR _ (SUBSTRING \INSTRING (ADD1 \INLEN))
-                                           PLOOKS _ (fetch (TEXTOBJ CARETLOOKS) of TEXTOBJ)
-                                           PPARALOOKS _ (fetch (PIECE PPARALOOKS) of \INPC)
-                                           PPARALAST _ NIL
-                                           PNEW _ T))        (* ; "Build the new piece")
-                        (replace (PIECE PSTR) of \INPC with (SUBSTRING \INSTRING 1 \INLEN
-                                                                               ))
-                        (freplace (TEXTOBJ \INSERTLEFT) of TEXTOBJ with (IDIFFERENCE
-                                                                                     \INLEFT LEN)))
-                       (T                                    (* ; 
-                                                          "No room left;  build a whole new piece.")
-                          (SETQ NEWPC (create PIECE
-                                             PSTR _ (freplace (TEXTOBJ \INSERTSTRING)
-                                                       of TEXTOBJ with (ALLOCSTRING 512))
-                                             PLOOKS _ (fetch (TEXTOBJ CARETLOOKS) of TEXTOBJ)
-                                             PPARALOOKS _ (OR (AND \INPC (fetch (PIECE PPARALOOKS
-                                                                                           )
-                                                                            of \INPC))
-                                                              (\TEDIT.UNIQUIFY.PARALOOKS
-                                                               (create FMTSPEC
-                                                                  copying (fetch (TEXTOBJ
-                                                                                          FMTSPEC)
-                                                                                 of TEXTOBJ))
-                                                               TEXTOBJ))
-                                             PPARALAST _ NIL
-                                             PNEW _ T))
-                          (freplace (TEXTOBJ \INSERTLEFT) of TEXTOBJ with (IDIFFERENCE
-                                                                                       512 LEN]
-                    (freplace (TEXTOBJ \INSERTPC) of TEXTOBJ with (SETQ \INPC NEWPC))
-                    (replace (PIECE PLEN) of NEWPC with LEN)
-                    (freplace (TEXTOBJ \INSERTSTRING) of TEXTOBJ with
-                                                                         (SETQ \INSTRING
-                                                                          (fetch (PIECE PSTR)
-                                                                             of NEWPC)))
-                    (COND
-                       ((type? STRINGP CH)               (* ; 
-                                                           "Insert the characters into the piece")
-                        (RPLSTRING \INSTRING 1 CH))
-                       (T (RPLCHARCODE \INSTRING 1 CH)))
-                    (freplace (TEXTOBJ \INSERTLEN) of TEXTOBJ with LEN)
-                    (freplace (TEXTOBJ \INSERTFIRSTCH) of TEXTOBJ with CH#)
-                                                             (* ; 
-                                               "Cache the first-inserted-ch #, for backspace speed")
-                    (SETQ NEWFLAG T)
-                    (COND
-                       ((OR (IGREATERP CH# TEXTLEN)
-                            (IEQP CH# START-OF-PIECE))       (* ; 
-                      "We're inserting on a piece boundary;  do it, then remember the prior piece.")
-                        (\INSERTPIECE \INPC PC TEXTOBJ NIL))
-                       (T                                    (* ; 
-                          "Not on a piece boundary;  split the piece we're inside of, then insert.")
-                          (\INSERTPIECE \INPC (\SPLITPIECE PC (- CH# START-OF-PIECE)
-                                                         TEXTOBJ)
-                                 TEXTOBJ NIL)))
-                    [COND
-                       ((NOT (fetch (PIECE PPARALOOKS) of \INPC))
-                                                             (* ; 
-                          "There weren't any paralooks available at creation time.  Find some now.")
-                        [SETQ PLOOKS (AND (fetch (PIECE PREVPIECE) of \INPC)
-                                          (fetch (PIECE PPARALOOKS) of (fetch
-                                                                                (PIECE PREVPIECE)
-                                                                                  of \INPC]
-                        [SETQ NLOOKS (AND (fetch (PIECE NEXTPIECE) of \INPC)
-                                          (fetch (PIECE PPARALOOKS) of (fetch
-                                                                                (PIECE NEXTPIECE)
-                                                                                  of \INPC]
-                        (replace (PIECE PPARALOOKS) of \INPC
-                           with (COND
-                                       ((NOT PLOOKS)         (* ; 
-                                                           "No preceding para to take looks from")
-                                        (OR NLOOKS (fetch (TEXTOBJ FMTSPEC) of TEXTOBJ)))
-                                       ((NOT NLOOKS)         (* ; 
-                                                           "No succeeding paras to take looks from")
-                                        (OR PLOOKS (fetch (TEXTOBJ FMTSPEC) of TEXTOBJ)))
-                                       (T PLOOKS]
-                    (replace (TEXTOBJ \INSERTPCNO) of TEXTOBJ with 0)
-                                                             (* ; 
-                                                           "Save the pcno for future insertions")
-                    (SETQ PCTB (fetch (TEXTOBJ PCTB) of TEXTOBJ))
-                                                             (* ; 
-                                                    "The PCTB may have expanded during the insert.")
-                    (SETQ PREVPC (OR (fetch (PIECE PREVPIECE) of NEWPC)
-                                     PC))                    (* ; 
-                                      "The piece we're to take the inserted characters' looks from")
-                    (replace (PIECE PLOOKS) of NEWPC with (fetch (TEXTOBJ CARETLOOKS)
-                                                                         of TEXTOBJ))
-                    [replace (PIECE PPARALOOKS) of NEWPC
-                       with (COND
-                                   ((ZEROP TEXTLEN)          (* ; 
-                                                           "No text yet;  use default paralooks")
-                                    (fetch (TEXTOBJ FMTSPEC) of TEXTOBJ))
-                                   ((SETQ PREVPC (fetch (PIECE NEXTPIECE) of \INPC))
-                                                             (* ; 
-                                                          "There's later text.  Use its para looks")
-                                    (fetch (PIECE PPARALOOKS) of PREVPC))
-                                   ((SETQ PREVPC (fetch (PIECE PREVPIECE) of \INPC))
-                                                             (* ; 
-                                         "There's earlier text.  Use its looks, copied if need be.")
-                                    (COND
-                                       ((fetch (PIECE PPARALAST) of PREVPC)
-                                        (fetch (PIECE PPARALOOKS) of PREVPC))
-                                       (T (fetch (PIECE PPARALOOKS) of PREVPC]
-                    (SETQ EVENT (fetch (TEXTOBJ TXTHISTORY) of TEXTOBJ))
-                                                             (* ; "Prior edit event.")
-                    [SETQ REPLACING (AND (EQ (fetch THACTION of EVENT)
-                                             'Delete)
-                                         (IEQP CH# (fetch THCH# of EVENT]
-                    (COND
-                       ((AND (fetch (TEXTOBJ \INSERTPCVALID) of TEXTOBJ)
-                             (IEQP CH# \INEXTCH)
-                             (EQ (fetch THACTION of EVENT)
-                                 'Insert))
-
-                        (* ;; "We're continuing a prior insertion, even if we had to create a new piece.  Just continue the old history event, too.")
-
-                        (add (fetch THLEN of EVENT)
-                               LEN))
-                       (T                                    (* ; 
-                          "Nope, this is a new insertion/replacement.  Make the new history event.")
-                          (\TEDIT.HISTORYADD TEXTOBJ (create TEDITHISTORYEVENT
-                                                            THACTION _ (COND
-                                                                          (REPLACING 'Replace)
-                                                                          (T 'Insert))
-                                                            THLEN _ (fetch (PIECE PLEN)
-                                                                       of \INPC)
-                                                            THCH# _ CH#
-                                                            THFIRSTPIECE _ \INPC
-                                                            THPOINT _ 'RIGHT
-                                                            THOLDINFO _ (AND REPLACING EVENT]
-              [OR NEWFLAG (PROGN                             (* ; 
-                           "We didn't add a piece, so we must update character numbers in the PCTB")
-                                                             (* ; "The insert-piece's PCTB entry")
-
-                                 (* ;; "(for I from (IPLUS PCNO \EltsPerPiece) to (\EDITELT PCTB \PCTBLastPieceOffset) by \EltsPerPiece do (\EDITSETA PCTB I (IPLUS (\EDITELT PCTB I) LEN)))")
-
-                                 (COND
-                                    ((NOT (AND (EQ CH# 1)
-                                               (EQ \INEXTCH -1)))
-                                                             (* ; 
-                            "Update character numbers in the PCTB doesn't need when 1st insertion.")
-                                     (UPDATEPCNODES \INPC LEN PCTB]
-              (freplace (TEXTOBJ TEXTLEN) of TEXTOBJ with (SETQ TEXTLEN (IPLUS LEN 
-                                                                                           TEXTLEN)))
-              (replace (TEXTOBJ \INSERTNEXTCH) of TEXTOBJ with (IPLUS CH# LEN))
-              (replace (TEXTOBJ \INSERTPCVALID) of TEXTOBJ with T)
-              (replace (TEXTOBJ \DIRTY) of TEXTOBJ with T)
-              (replace (PIECE PFATP) of \INPC with (OR (fetch (PIECE PFATP)
-                                                                      of \INPC)
-                                                                   FATP])
-
-(\INSERTCR
-  [LAMBDA (CH CH# TEXTOBJ)                               (* ; "Edited 31-May-91 14:00 by jds")
-
-    (* ;; "Handle insertion of CR and meta-CR.  The former causes a paragraph break, while the latter doesn't.  Note, though, that inserting a meta-CR causes the doucment to become formatted.")
-
-    (COND
-       ((fetch (TEXTOBJ TXTREADONLY) of TEXTOBJ))
-       (T (LET (INPC)
-               (COND
-                  ([AND (NOT (fetch (TEXTOBJ FORMATTEDP) of TEXTOBJ))
-                        (NOT (IEQP CH (CHARCODE CR]          (* ; 
-              "Inserting a meta-CR into an unformatted document.  Start by setting up para breaks.")
-                   (\TEDIT.CONVERT.TO.FORMATTED TEXTOBJ)))
-               (\INSERTCH (CHARCODE CR)
-                      CH# TEXTOBJ)                           (* ; "Put the CR in")
-               (COND
-                  ((IEQP CH (CHARCODE CR))                   (* ; 
-                                     "It's really a CR, rather than a meta-CR so do para breaking.")
-                   (SETQ INPC (fetch (TEXTOBJ \INSERTPC) of TEXTOBJ))
-                   (AND INPC (replace (PIECE PPARALAST) of INPC with T))
-                                                             (* ; 
-             "Mark the end of the paragraph (INPC might be NIL if the insert got refused somehow).")
-                   (replace (TEXTOBJ \INSERTPCVALID) of TEXTOBJ with NIL)
-                                                             (* ; 
-                                                          "FORCE A NEW PIECE ON THE NEXT CHARACTER")
-                   ])
-)
-
-
-
-(* ;;; "Functions to manipulate the Piece Table (PCTB)")
-
-(DEFINEQ
-
-(\CHTOPC
-  [LAMBDA (CH# PCTB TELL-PC-START?)                      (* ; "Edited 15-Apr-93 16:05 by jds")
-
-    (* ;; "Given a character # in a text object, and the object's piece table, return a pointer to the piece containing that character, else NIL.")
-
-    (* ;; "If TELL-PC-START? is not NIL, sets the free variable START-OF-PIECE to the ch# of the piece's start.")
-
-    (LET ((TREE PCTB)
-          (BASE-CH# 1)
-          TBASE-CH# FOUND)
-         (while (type? BTREENODE TREE)
-            do [for I from 1 to (fetch (BTREENODE COUNT) of TREE)
-                      as OFST from 2 by 4
-                      do (COND
-                                ((IGREATERP (SETQ TBASE-CH# (IPLUS BASE-CH# (\GETBASEFIXP TREE OFST))
-                                             )
-                                        CH#)
-                                 (SETQ FOUND (\GETBASEPTR TREE (- OFST 2)))
-                                 (RETURN))
-                                (T (SETQ BASE-CH# TBASE-CH#]
-                  (SETQ TREE FOUND))
-         (AND TELL-PC-START? (SETQ START-OF-PIECE BASE-CH#))
-         (OR TREE 'LASTPIECE])
-
-(\CHTOPCNO
-  [LAMBDA (CH# PCTB)                                    (* ; "Edited 13-Jun-90 00:47 by mitani")
-
-    (* ;; "Given a character # in a text object, and the object's piece table, return a pointer to the piece containing that character, else NIL")
-
-    (DECLARE (LOCALVARS . T))
-    (LET ((INDEX 0)
-          (TREE (fetch (PCTNODE HI) of PCTB))
-          CHNUM)
-         [while TREE do (COND
-                                   [(IEQP CH# (SETQ CHNUM (fetch (PCTNODE CHNUM) of TREE)))
-                                                             (* ; "FIND NODE")
-                                    (RETURN (SETQ INDEX (IPLUS INDEX (fetch (PCTNODE RANK)
-                                                                        of TREE]
-                                   ((IGREATERP CH# CHNUM)    (* ; "MOVE RIGHT")
-                                    (SETQ INDEX (IPLUS INDEX (fetch (PCTNODE RANK) of TREE)))
-                                    (SETQ TREE (fetch (PCTNODE HI) of TREE)))
-                                   ((ILESSP CH# CHNUM)       (* ; "MOVE LEFT")
-                                    (SETQ TREE (fetch (PCTNODE LO) of TREE]
-         (IMAX INDEX 1])
-
-(\CLEARPCTB
-  [LAMBDA (PCTB)                                         (* ; "Edited 23-Feb-88 11:11 by jds")
-          
-          (* ;; "(PROG ((OLASTPC (\EDITELT PCTB \PCTBLastPieceOffset))) (\EDITSETA PCTB \FirstPieceOffset 1) (* Create the LASTPIECE pseudo-piece placeholder in the first piece of the table) (\EDITSETA PCTB (ADD1 \FirstPieceOffset) (QUOTE LASTPIECE)) (for I from \SecondPieceOffset to OLASTPC do (* Now remove the other pieces, setting them to NIL) (\EDITSETA PCTB I NIL)) (\EDITSETA PCTB \PCTBLastPieceOffset (ADD1 \FirstPieceOffset)) (* Fix up the last-piece pointer) (\EDITSETA PCTB \PCTBFreePieces (IPLUS (\EDITELT PCTB \PCTBFreePieces) (LRSH (IDIFFERENCE OLASTPC (ADD1 \FirstPieceOffset)) 1))) (* And the free count of pieces.) (RETURN PCTB))")
-
-    (HELP])
-
-(\CREATEPIECEORSTREAM
-  [LAMBDA (STRING LOOKS PARALOOKS START END)             (* ; "Edited 11-Jun-99 14:25 by rmk:")
-                                                             (* ; "Edited 31-May-91 14:18 by jds")
-
-    (* ;; "Given a source for text, build a PIECE to describe it.")
-
-    (* ;; "HOWEVER-- if it's aformatted file, return the stream for that file.")
-
-    (PROG (PC)
-          [SETQ PC
-           (COND
-              ((STRINGP STRING)                              (* ; "It's a string.")
-               (create PIECE
-                      PSTR _ STRING
-                      PFILE _ NIL
-                      PLEN _ (NCHARS STRING)
-                      PPARALAST _ NIL
-                      PPARALOOKS _ PARALOOKS
-                      PFATP _ (fetch (STRINGP FATSTRINGP) of STRING)))
-              ((NULL STRING)                                 (* ; 
-                                                   "If it's NIL, use an empty string for the text.")
-               (create PIECE
-                      PSTR _ ""
-                      PFILE _ NIL
-                      PLEN _ 0
-                      PPARALAST _ NIL
-                      PPARALOOKS _ PARALOOKS))
-              ((ATOM STRING)                                 (* ; 
-                                                           "An atom is a file name.  Open it.")
-               [SETQ STRING (OPENSTREAM STRING 'INPUT 'OLD '(TYPE TEXT]
-               (RETURN STRING))
-              [(STREAMP STRING)
-               (COND
-                  [(EQ NoBits (fetch (STREAM ACCESSBITS) of STRING))
-                                                             (* ; 
-                                                        "If the stream is no longer open, open it.")
-                   (RETURN (OPENSTREAM STRING 'INPUT 'OLD '((TYPE TEXT]
-                  (T (RETURN STRING]
-              ((type? PIECE STRING)
-               STRING)
-              (T                                             (* ; 
-                                                      "Anything else is coerced to a string first.")
-                 (SETQ STRING (MKSTRING STRING))
-                 (create PIECE
-                        PSTR _ STRING
-                        PFILE _ NIL
-                        PLEN _ (NCHARS STRING)
-                        PPARALAST _ NIL
-                        PPARALOOKS _ PARALOOKS]
-          (replace (PIECE PLOOKS) of PC with (OR LOOKS (CHARLOOKS.FROM.FONT DEFAULTFONT))
-                 )
-          (replace (PIECE PPARALOOKS) of PC with (OR PARALOOKS (create FMTSPEC
-                                                                              using 
-                                                                                TEDIT.DEFAULT.FMTSPEC
-                                                                                  )))
-          (RETURN PC])
-
-(\DELETEPIECE
-  [LAMBDA (PC PCTB PC#)                                  (* ; "Edited 20-Apr-93 19:06 by jds")
-
-    (* ;; "Remove piece PC from the piece table PCTB.  Adjust the character numbers of succeeding pieces, if need be.")
-
-    (PROG (PCNODE (NEXT (fetch (PIECE NEXTPIECE) of PC))
-                 (PREV (fetch (PIECE PREVPIECE) of PC)))
-          (\DELETETREE PC (fetch (PIECE PTREENODE) of PC))
-          (COND
-             (NEXT (replace (PIECE PREVPIECE) of NEXT with PREV)))
-                                                             (* ; 
-                                                           "Break any forward link from the piece")
-          (COND
-             (PREV (replace (PIECE NEXTPIECE) of PREV with NEXT)))
-                                                             (* ; "and any backward link.")
-      ])
-
-(\FINDPIECE
-  [LAMBDA (PC PCTB)                                      (* ; "Edited 31-May-91 13:53 by jds")
-
-         (* Given a piece and the pctb it's in, return the elt %# of the CH# entry for 
-       that piece in the table)
-
-    (LET ((NODE (FINDPCNODE PC PCTB)))
-         (INDEX (fetch (PCTNODE CHNUM) of NODE)
-                PCTB])
-
-(\INSERTPIECE
-  [LAMBDA (NEW OLD TEXTOBJ DONTUPDATECH#S PC# NEW-PREVLEN PREV)
-                                                             (* ; "Edited  7-Oct-94 17:43 by jds")
-
-    (* ;; "Insert the piece NEW in front of the piece OLD;  re-allocate PCTB if need be")
-
-    (PROG* ((PLEN (fetch (PIECE PLEN) of NEW))
-            (PCTB (fetch (TEXTOBJ PCTB) of TEXTOBJ))
-            OLDLEN PCNODE PREVPC)
-           (COND
-              ((ZEROP (fetch (BTREENODE COUNT) of PCTB))
-                                                             (* ; "PCTB is empty.")
-               (replace (PIECE NEXTPIECE) of NEW with NIL)
-               (replace (PIECE PREVPIECE) of NEW with NIL)
-               (replace (BTREENODE DOWN1) of PCTB with NEW)
-               (replace (BTREENODE COUNT) of PCTB with 1)
-               (replace (BTREENODE TOTLEN) of PCTB with PLEN)
-               (RETURN 1)))
-           (SETQ OLDLEN (fetch (BTREENODE TOTLEN) of PCTB))
-           [SETQ PCNODE (COND
-                           ((OR (NULL OLD)
-                                (ATOM OLD))                  (* ; "Inserting in front of a symbol OR NIL, which must be LASTPIECE, the end-of-doc marker.  Go find the node that contains it.")
-                            (\LASTNODE PCTB))
-                           (T                                (* ; 
-         "Normal case; go find the btree node that contains the piece we're inserting in front of.")
-                              (FINDPCNODE OLD PCTB]
-           (\INSERTTREE NEW OLD PCNODE NEW-PREVLEN NIL PREV)
-
-     (* ;; "Update inter-piece linkages:")
-
-           (COND
-              [(OR (NULL OLD)
-                   (ATOM OLD))                               (* ; "Inserting in front of a symbol OR NIL, which must be LASTPIECE, the end-of-doc marker.  Go find the node that contains it.")
-               (replace (PIECE NEXTPIECE) of NEW with NIL)
-               (replace (PIECE PREVPIECE) of NEW with (AND (NOT (ZEROP OLDLEN))
-                                                                       (SETQ PREVPC (\CHTOPC
-                                                                                     OLDLEN PCTB]
-              (T                                             (* ; 
-         "Normal case; go find the btree node that contains the piece we're inserting in front of.")
-                 (replace (PIECE NEXTPIECE) of NEW with OLD)
-                 (replace (PIECE PREVPIECE) of NEW with (SETQ PREVPC (ffetch
-                                                                                  (PIECE PREVPIECE)
-                                                                                    of OLD)))
-                 (replace (PIECE PREVPIECE) of OLD with NEW)))
-           (AND PREVPC (replace (PIECE NEXTPIECE) of PREVPC with NEW])
-
-(\MAKEPCTB
-  [LAMBDA (PC1 MINLEN)                                   (* ; "Edited 15-Apr-93 15:48 by jds")
-
-    (* ;; "Create a new piece table, with PC1 as its first piece, and a dummy piece at the end, with 1st ch# of 1+ (chlim of pc1)")
-
-    (* ;; "A piece Table has the following format: It's an array, with 2 header words (1_# of pieces left in table unused) (2_offset of last used word in tbl), followed by 2-word entries: the first ch# in the piece, and a pointer to the piece.")
-
-    (* ;; "NEW piece tree ")
-
-    (* ;; "ROOT->LO: total hight of piece tree")
-
-    (* ;; "ROOT->HI : Top node of piece tree")
-
-    (LET ((PCTB (CREATE BTREENODE))
-          PLEN)
-         (COND
-            (PC1 (FREPLACE (BTREENODE COUNT) OF PCTB WITH 2)
-                 (FREPLACE (BTREENODE TOTLEN) OF PCTB WITH (SETQ PLEN (FETCH
-                                                                                   (PIECE PLEN)
-                                                                                     OF PC1)))
-                 (FREPLACE (BTREENODE DOWN1) OF PCTB WITH PC1)
-                 (FREPLACE (BTREENODE DLEN1) OF PCTB WITH PLEN)
-                 (FREPLACE (BTREENODE DOWN2) OF PCTB WITH 'LASTPIECE)
-                 (FREPLACE (BTREENODE DLEN2) OF PCTB WITH 0)
-                 (FREPLACE (PIECE PTREENODE) OF PC1 WITH PCTB))
-            (T 
-               (* ;; 
-             "No initial piece, so create a 0-long document, with only the ending-piece dummy")
-
-               (FREPLACE (BTREENODE COUNT) OF PCTB WITH 1)
-               (FREPLACE (BTREENODE TOTLEN) OF PCTB WITH 0)
-               (FREPLACE (BTREENODE DOWN1) OF PCTB WITH 'LASTPIECE)
-               (FREPLACE (BTREENODE DLEN1) OF PCTB WITH 0)))
-         PCTB])
-
-(\SPLITPIECE
-  [LAMBDA (PC CH TEXTOBJ PC#)                            (* ; "Edited 21-Apr-93 17:49 by jds")
-
-    (* ;; "Split the piece PC before CH (rel to start of PIECE);  return the new second piece.")
-
-    (* ;; "PC#, if present, points at the CH# entry for the piece being split.")
-
-    (PROG* ((PCTB (ffetch (TEXTOBJ PCTB) of TEXTOBJ))
-            (NEWPC (create PIECE using PC))
-            CHNO NEWLEN NEXTPC)
-           (SETQ CHNO CH)                                    (* ; 
-                                                    "Offset within the piece before which to break")
-           (COND
-              ((ILEQ CHNO 0)
-               (SHOULDNT "Splitting a piece at the start.")))
-           (replace (PIECE PPARALAST) of PC with NIL)
-                                                             (* ; 
-                                 "There can be no para break before the split, as things now work.")
-           (COND
-              ((ffetch (PIECE PSTR) of PC)           (* ; 
-                                  "This piece points to a string.  Split it for the two new pieces")
-               (freplace (PIECE PSTR) of NEWPC with (SUBSTRING (ffetch (PIECE PSTR)
-                                                                              of PC)
-                                                                       (ADD1 CHNO)))
-               (freplace (PIECE PLEN) of NEWPC with (IDIFFERENCE (ffetch (PIECE
-                                                                                          PLEN)
-                                                                                of PC)
-                                                                       CHNO))
-               (freplace (PIECE PSTR) of PC with (SUBSTRING (ffetch (PIECE PSTR)
-                                                                           of PC)
-                                                                    1 CHNO))
-               (freplace (PIECE PLEN) of PC with CHNO))
-              ((ffetch (PIECE PFILE) of PC)          (* ; 
-                                       "This piece points to a file.  Set the fileptrs accordingly")
-               (freplace (PIECE PFILE) of NEWPC with (ffetch (PIECE PFILE)
-                                                                    of PC))
-               [freplace (PIECE PFPOS) of NEWPC with (COND
-                                                                    ((fetch (PIECE PFATP)
-                                                                        of NEWPC)
-                                                             (* ; 
-                                     "This is a FAT piece;  need to allow 2 bytes per char skipped")
-                                                                     (IPLUS (ffetch (PIECE PFPOS)
-                                                                               of PC)
-                                                                            CHNO CHNO))
-                                                                    (T 
-                                                             (* ; 
-                                                           "Regular piece;  allow 1 byte per char")
-                                                                       (IPLUS (ffetch
-                                                                               (PIECE PFPOS)
-                                                                                 of PC)
-                                                                              CHNO]
-               (freplace (PIECE PLEN) of NEWPC with (IDIFFERENCE (ffetch (PIECE
-                                                                                          PLEN)
-                                                                                of PC)
-                                                                       CHNO))
-               (FREPLACE (PIECE PLEN) OF PC WITH CHNO)))
-           (PROGN                                            (* UNINTERRUPTABLY)
-                  (SETQ NEXTPC (ffetch (PIECE NEXTPIECE) of PC))
-                                                             (* LET ((PCNODE (FETCH
-                                                           (PIECE PTREENODE) OF PC)))
-                                                           (* ;; 
-                                      "Update the length of the original piece in it's tree entry.")
-                                                           (for ITEM# from 0 by 4 as I from 1 
-                                                           to (fetch (BTREENODE COUNT) of 
-                                                           PCNODE) when (EQ (\GETBASEPTR PCNODE 
-                                                           ITEM#) PC) do (* ;;
-                                                           "FIXME - I think this can be done as aport of \INSERTPIECE / \INSERTTREEE, by looking back 1 from the OLD entry and updating. --JDS")
-                                                           (\PUTBASEFIXP PCNODE
-                                                           (IPLUS ITEM# 2) (fetch
-                                                           (PIECE PLEN) of PC))
-                                                           (RETURN)))
-                  (\INSERTPIECE NEWPC (OR NEXTPC 'LASTPIECE)
-                         TEXTOBJ NIL NIL (IMINUS (fetch (PIECE PLEN) of NEWPC))
-                         PC)
-
-                  (* ;; "update nextlink and prevlink")
-
-                  (COND
-                     ((NULL NEXTPC)                          (* ; 
-                                                           "PC is last piece (not LASTPIECE)")
-                                                             (* ; "NEWPC is new last piece.")
-                      (replace (PIECE NEXTPIECE) of NEWPC with NIL))
-                     (T (replace (PIECE NEXTPIECE) of NEWPC with NEXTPC)
-                        (replace (PIECE PREVPIECE) of NEXTPC with NEWPC)))
-                  (replace (PIECE NEXTPIECE) of PC with NEWPC)
-                  (replace (PIECE PREVPIECE) of NEWPC with PC))
-                                                             (* ; "Now set its starting CH#")
-           (replace (TEXTOBJ \INSERTPCVALID) of TEXTOBJ with NIL)
-                                                             (* ; 
-                                         "Whenever you split a piece, you can't add to it anymore.")
-           (RETURN NEWPC])
-
-(\INSERT.FIRST.PIECE
-  [LAMBDA (TEXTOBJ)                                      (* ; "Edited 31-May-91 14:00 by jds")
-
-    (* ;; "Insert 1st piece to empty PCTB.")
-
-    (PROG (PC)
-          (\INSERTPIECE [SETQ PC (\CREATEPIECEORSTREAM NIL (CHARLOOKS.FROM.FONT DEFAULTFONT)
-                                            (COND
-                                               (TEXTOBJ (fetch (TEXTOBJ FMTSPEC) of TEXTOBJ))
-                                               (T (create FMTSPEC using TEDIT.DEFAULT.FMTSPEC
-                                                         ]
-                 NIL TEXTOBJ)
-          (replace (TEXTOBJ \INSERTPC) of TEXTOBJ with PC)
-          (replace (PIECE PSTR) of PC with (freplace (TEXTOBJ \INSERTSTRING)
-                                                          of TEXTOBJ with (ALLOCSTRING 512])
-)
-
-
-
-(* ; "Generic-IO type operations support")
-
-(DEFINEQ
-
-(\TEXTCLOSEF
-  [LAMBDA (STREAM)                                       (* ; "Edited 15-Apr-93 16:43 by jds")
-                                                             (* ; 
-                                                           "Close the files underlying a stream")
-    (PROG ((TEXTOBJ (TEXTOBJ STREAM))
-           PCTB PC)
-          (SETQ PCTB (fetch (TEXTOBJ PCTB) of TEXTOBJ))
-          [OR (ZEROP (fetch (TEXTOBJ TEXTLEN) of TEXTOBJ))
-              (COND
-                 ((TYPE? PIECE (SETQ PC (\GETBASEPTR (\FIRSTNODE PCTB)
-                                                   0)))
-                  (fetch (PIECE PFILE) of PC)
-                  (CLOSEF? (fetch (PIECE PFILE) of PC))
-                  (SETQ PC (FETCH (PIECE NEXTPIECE) OF PC))
-                  (WHILE PC DO (AND (fetch (PIECE PFILE) of PC)
-                                            (CLOSEF? (fetch (PIECE PFILE) of PC)))
-                                      (SETQ PC (FETCH (PIECE NEXTPIECE) OF PC]
-
-     (* ;; "And close the REAL file as well, in case we'd made a local cache.")
-
-          (CLOSEF? (fetch (TEXTOBJ TXTFILE) of TEXTOBJ])
-
-(\TEXTCLOSEF-SUBTREE
-  [LAMBDA (PCTREE)                                       (* ; "Edited 31-May-91 14:00 by jds")
-
-    (* ;; "Run thru the pieces in the document, closing the underlying file")
-
-    (* ;; "by traverse pctree")
-
-    (LET (PC)
-         (COND
-            ((NULL PCTREE)
-             NIL)
-            (T (SETQ PC (fetch (PCTNODE PCE) of PCTREE))
-               (AND (NOT (ATOM PC))
-                    (fetch (PIECE PFILE) of PC)
-                    (CLOSEF? (fetch (PIECE PFILE) of PC)))
-               (\TEXTCLOSEF-SUBTREE (fetch (PCTNODE LO) of PCTREE))
-               (\TEXTCLOSEF-SUBTREE (fetch (PCTNODE HI) of PCTREE])
-
-(\TEXTDSPFONT
-  [LAMBDA (STREAM NEWFONT)                               (* ; "Edited 31-May-91 14:02 by jds")
-
-    (* ;; "Set the font for a TEdit window.  Need change the caret looks, for character insertion, and the WINDOW's looks, so that TEXEC type-out to the window does the right thing.")
-
-    (LET ((TEXTOBJ (TEXTOBJ STREAM)))
-         (PROG1 (fetch (CHARLOOKS CLFONT) of (fetch (TEXTOBJ CARETLOOKS) of TEXTOBJ))
-             [COND
-                (NEWFONT 
-
-                       (* ;; "Only do this if there's a new font to set:")
-
-                       (TEDIT.CARETLOOKS STREAM (\GETFONTDESC NEWFONT 'DISPLAY))
-                       (COND
-                          ((fetch (TEXTOBJ \WINDOW) of TEXTOBJ)
-
-                           (* ;; "Update the windows, if there are any.")
-
-                           (for WIN in (fetch (TEXTOBJ \WINDOW) of TEXTOBJ)
-                              do (DSPFONT NEWFONT WIN])])
-
-(\TEXTEOFP
-  [LAMBDA (STREAM)                                       (* ; "Edited 31-May-91 14:18 by jds")
-
-    (* ;; "Test for EOF on a text stream: At end of a piece, and there's no more pieces.")
-
-    (OR (NOT (fetch (TEXTSTREAM PIECE) of STREAM))
-        (EQ (fetch (TEXTSTREAM PIECE) of STREAM)
-            'LASTPIECE)
-        (AND (IEQP (fetch (STREAM COFFSET) of STREAM)
-                   (fetch (STREAM CBUFSIZE) of STREAM))
-             (ZEROP (fetch (TEXTSTREAM CHARSLEFT) of STREAM))
-             (OR (NOT (fetch (PIECE NEXTPIECE) of (fetch (TEXTSTREAM PIECE) of STREAM
-                                                                 )))
-                 (bind (PC _ (fetch (PIECE NEXTPIECE) of (fetch (TEXTSTREAM PIECE)
-                                                                        of STREAM))) while
-                                                                                         PC
-                    do (COND
-                              ((NOT (ZEROP (fetch (PIECE PLEN) of PC)))
-                               (RETURN NIL)))
-                          (SETQ PC (fetch (PIECE NEXTPIECE) of PC)) finally (RETURN
-                                                                                         T])
-
-(\TEXTGETEOFPTR
-  [LAMBDA (STREAM)                                       (* ; "Edited 31-May-91 13:58 by jds")
-    (fetch (TEXTOBJ TEXTLEN) of (fetch (TEXTSTREAM TEXTOBJ) of STREAM])
-
-(\TEXTGETFILEPTR
-  [LAMBDA (STREAM)                                       (* ; "Edited 28-Mar-94 15:32 by jds")
-
-    (* ;; "GETFILEPTR fn for text streams.")
-
-    (PROG ((PC (fetch (TEXTSTREAM PIECE) of STREAM))
-           (CHARSLEFT (fetch (TEXTSTREAM CHARSLEFT) of STREAM))
-           (OFFSET (fetch (STREAM COFFSET) of STREAM))
-           (LIMIT (fetch (STREAM CBUFSIZE) of STREAM))
-           PLEN)
-          (COND
-             ((EQ PC 'LASTPIECE)                             (* ; "STREAM is Empty Document")
-              (RETURN 0))
-             [PC                                             (* ; 
-                                     "There's a piece.  That means he's inside the file somewhere.")
-                 (SETQ PLEN (fetch (PIECE PLEN) of PC))
-                 (RETURN (IMIN [SUB1 (IPLUS (\TEDIT.PIECE-CHNO PC)
-                                            (IDIFFERENCE PLEN CHARSLEFT)
-                                            (COND
-                                               ((fetch (TEXTSTREAM FATSTREAMP) of STREAM)
-                                                             (* ; 
-  "This is a 16-bit stream;  The difference is in BYTES, and needs to be divided by 2 to get chars")
-                                                (IQUOTIENT (IDIFFERENCE OFFSET LIMIT)
-                                                       2))
-                                               (T (IDIFFERENCE OFFSET LIMIT]
-                               (fetch (TEXTOBJ TEXTLEN) of (fetch (TEXTSTREAM TEXTOBJ)
-                                                                      of STREAM]
-             (T                                              (* ; 
-                                             "Lack of a current piece means he walked off the end.")
-                (RETURN (IMAX 1 (fetch (TEXTOBJ TEXTLEN) of (fetch (TEXTSTREAM TEXTOBJ)
-                                                                       of STREAM])
-
-(\TEXTOPENF
-  [LAMBDA (STREAM ACCESS ASDF QWER ZXCV)                 (* ; "Edited 31-May-91 13:58 by jds")
-                                                             (* Return the stream, opened for 
-                                                           input)
-    (PROG ((TEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of STREAM))
-           PCTB PC)
-          (SETQ PCTB (fetch (TEXTOBJ PCTB) of TEXTOBJ))
-          (\TEXTOPENF-SUBTREE (fetch (PCTNODE HI) of PCTB))
-
-     (* ;; "(for I from (ADD1 \FirstPieceOffset) to (SUB1 (\EDITELT PCTB \PCTBLastPieceOffset)) by \EltsPerPiece do (SETQ PC (\EDITELT PCTB I)) (COND ((AND (fetch PFILE of PC) (EQ (fetch ACCESSBITS of (fetch PFILE of PC)) NoBits)) (\TEDIT.REOPEN.STREAM STREAM (fetch PFILE of PC)))))")
-
-          (RETURN STREAM])
-
-(\TEXTOPENF-SUBTREE
-  [LAMBDA (PCTREE)                                       (* ; "Edited 31-May-91 14:19 by jds")
-    (LET (PC)
-         (COND
-            ((NULL PCTREE)
-             NIL)
-            (T (SETQ PC (fetch (PCTNODE PCE) of PCTREE))
-               [COND
-                  ((AND (fetch (PIECE PFILE) of PC)
-                        (EQ (fetch (STREAM ACCESSBITS) of (fetch (PIECE PFILE)
-                                                                     of PC))
-                            NoBits))
-                   (\TEDIT.REOPEN.STREAM STREAM (fetch (PIECE PFILE) of PC]
-               (\TEXTOPENF-SUBTREE (fetch (PCTNODE LO) of PCTREE))
-               (\TEXTOPENF-SUBTREE (fetch (PCTNODE HI) of PCTREE])
-
-(\TEXTOUTCHARFN
-  [LAMBDA (CH STREAM)                                    (* ; "Edited 31-May-91 13:59 by jds")
-    (\INSERTCH CH (fetch (TEXTOBJ TEXTLEN) of (fetch (TEXTSTREAM TEXTOBJ)
-                                                             of STREAM))
-           (fetch (TEXTSTREAM TEXTOBJ) of STREAM])
-
-(\TEXTBACKFILEPTR
-  [LAMBDA (STREAM)                                       (* ; "Edited 28-Mar-94 15:32 by jds")
-
-    (* ;; "Use this to BACKFILEPTR a text stream.")
-
-    [PROG (PC PS PF REALFILE)
-          (COND
-             [(AND (IEQP (fetch (STREAM CPAGE) of STREAM)
-                         (fetch (TEXTSTREAM PCSTARTPG) of STREAM))
-                   (IEQP (fetch (STREAM COFFSET) of STREAM)
-                         (fetch (TEXTSTREAM PCSTARTCH) of STREAM)))
-                                                             (* ; 
-                                             "Hit start of piece;  back to PREVPIECE & keep going.")
-              [SETQ PC (replace (TEXTSTREAM PIECE) of STREAM
-                          with (fetch (PIECE PREVPIECE) of (fetch (TEXTSTREAM PIECE)
-                                                                          of STREAM]
-                                                             (* ; "Move to previous piece")
-              (replace (STREAM BINABLE) of STREAM with T)
-              (replace (TEXTSTREAM FATSTREAMP) of STREAM with NIL)
-                                                             (* add (fetch (TEXTSTREAM PCNO) of 
-                                                           STREAM) -1)
-              (while (AND PC (ZEROP (fetch (PIECE PLEN) of PC)))
-                 do                                      (* ; 
-                                               "Skip over any zero-length pieces as we back along.")
-                       (SETQ PC (fetch (PIECE PREVPIECE) of PC)))
-              (COND
-                 [PC (replace (TEXTSTREAM CURRENTLOOKS) of STREAM
-                        with (\TEDIT.APPLY.STYLES (fetch (PIECE PLOOKS) of PC)
-                                        PC
-                                        (fetch (TEXTSTREAM TEXTOBJ) of STREAM)))
-                     (COND
-                        ((SETQ PS (fetch (PIECE PSTR) of PC))
-                                                             (* ; "This piece lives in a string.")
-                         (\TEDIT.TEXTBIN.STRINGSETUP (SUB1 (fetch (PIECE PLEN) of PC))
-                                1 STREAM PS)
-
-                         (* ;; "Set the stream up so that it will use PS for BINs, starting at offset 0 (the front of the piece), and will run for as many chars as there are in the piece.")
-
-                         )
-                        ((SETQ PF (fetch (PIECE PFILE) of PC))
-                                                             (* ; "This piece lives on a file.")
-                         (\TEDIT.TEXTBIN.FILESETUP PC (SUB1 (fetch (PIECE PLEN) of PC))
-                                1 STREAM PF (fetch (PIECE PFATP) of PC)
-                                'PEEKBIN))
-                        ((fetch (PIECE POBJ) of PC)
-                         (replace (TEXTSTREAM CHARSLEFT) of STREAM with 0))
-                        (T (ERROR "CAN'T GET TO NEXT PIECE"]
-                 (T (ERROR "Trying to BACKFILEPTR thru start of text."]
-             ((ZEROP (fetch (STREAM COFFSET) of STREAM))
-                                                             (* ; "Move back 1 file page")
-              (SETQ REALFILE (fetch (TEXTSTREAM REALFILE) of STREAM))
-              (replace (TEXTSTREAM CHARSLEFT) of STREAM with (IPLUS (fetch
-                                                                                 (TEXTSTREAM 
-                                                                                        CHARSLEFT)
-                                                                                   of STREAM)
-                                                                                (fetch
-                                                                                 (STREAM CBUFSIZE)
-                                                                                   of STREAM)))
-              (replace (STREAM COFFSET) of REALFILE with 0)
-              (COND
-                 ((fetch (TEXTSTREAM FATSTREAMP) of STREAM)
-                                                             (* ; 
-                                                           "16 bit stream, so back up 2 bytes.")
-                  (\BACKFILEPTR REALFILE)
-                  (\BACKFILEPTR REALFILE))
-                 (T (\BACKFILEPTR REALFILE)))
-              (\PEEKBIN REALFILE)
-              (replace (STREAM CPAGE) of STREAM with (fetch (STREAM CPAGE)
-                                                                    of REALFILE))
-              (replace (STREAM COFFSET) of STREAM with (fetch (STREAM COFFSET)
-                                                                      of REALFILE))
-              (replace (STREAM CBUFSIZE) of STREAM with (fetch (STREAM CBUFSIZE)
-                                                                       of REALFILE))
-              (replace (STREAM CPPTR) of STREAM with (fetch (STREAM CPPTR)
-                                                                    of REALFILE)))
-             (T                                              (* ; "JUST ACT CASUAL & DO IT.")
-                (COND
-                   ((fetch (TEXTSTREAM FATSTREAMP) of STREAM)
-                                                             (* ; 
-                                                           "16 bit stream, so back up 2 bytes.")
-                    (\PAGEDBACKFILEPTR STREAM)
-                    (\PAGEDBACKFILEPTR STREAM))
-                   (T (\PAGEDBACKFILEPTR STREAM]
-    T])
-
-(\TEXTBOUT
-  [LAMBDA (STREAM BYTE)                                  (* ; "Edited 10-May-93 16:59 by jds")
-                                                             (* ; 
-                                    "Do BOUT to a text stream, which is an insertion at the caret.")
-    (PROG ((TEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of STREAM))
-           (CH# (ADD1 (\TEXTGETFILEPTR STREAM)))
-           WINDOW TEXTLEN PS PC PSTR OFFST)
-          (SETQ TEXTLEN (fetch (TEXTOBJ TEXTLEN) of TEXTOBJ))
-          (SETQ WINDOW (fetch (TEXTOBJ \WINDOW) of TEXTOBJ))
-          (AND WINDOW (\TEDIT.MARK.LINES.DIRTY TEXTOBJ CH# CH#))
-          (\INSERTCH BYTE CH# TEXTOBJ)
-          (AND WINDOW (TEDIT.UPDATE.SCREEN TEXTOBJ))
-          (AND (fetch (TEXTOBJ TXTREADONLY) of TEXTOBJ)
-               (RETURN))                                     (* ; 
-                                                     "If teh stream is readonly, nothing happened!")
-          [SETQ PS (ffetch (PIECE PSTR) of (SETQ PC (fetch (TEXTOBJ \INSERTPC)
-                                                               of TEXTOBJ]
-                                                             (* ; "This piece resides in a STRING.")
-          (replace (TEXTSTREAM PIECE) of STREAM with PC)
-          (freplace (STREAM CPPTR) of STREAM with (ADDBASE (ffetch (STRINGP BASE)
-                                                                          of PS)
-                                                                     (LRSH (SETQ OFFST
-                                                                            (ffetch (STRINGP
-                                                                                         OFFST)
-                                                                               of PS))
-                                                                           1)))
-          (freplace (STREAM CPAGE) of STREAM with 0)
-          (freplace (STREAM COFFSET) of STREAM with (IPLUS (freplace (TEXTSTREAM
-                                                                                      PCSTARTCH)
-                                                                          of STREAM
-                                                                          with (LOGAND 1 OFFST))
-                                                                       (fetch (TEXTOBJ \INSERTLEN
-                                                                                         )
-                                                                          of TEXTOBJ)))
-          (freplace (TEXTSTREAM PCSTARTPG) of STREAM with 0)
-                                                             (* ; 
-                                                 "Page # within the 'file' where this piece starts")
-          (freplace (STREAM CBUFSIZE) of STREAM with (fetch (STREAM COFFSET)
-                                                                    of STREAM))
-          (freplace (STREAM EPAGE) of STREAM with 1)
-          (freplace (TEXTSTREAM CHARSLEFT) of STREAM with 0)
-          (freplace (TEXTSTREAM REALFILE) of STREAM with NIL])
-
-(\TEDITOUTCHARFN
-  [LAMBDA (STREAM CHARCODE)                              (* ; "Edited 31-May-91 14:19 by jds")
-
-    (* ;; "OUTCHARFN for TEdit streams -- always BOUTs the character, because TEdit streams deal in complete charcodes rather than bytes. BUT -- does update the CHARPOSITION of the stream, which is used by some code to decide things.")
-
-    (COND
-       ((EQ CHARCODE (CHARCODE EOL))
-        (\BOUT STREAM (CHARCODE CR))
-        (freplace (STREAM CHARPOSITION) of STREAM with 0))
-       (T (\BOUT STREAM CHARCODE)
-          (freplace (STREAM CHARPOSITION) of STREAM with
-                                                            (PROGN 
-                                                             (* ; "Ugh.  Don't overflow")
-                                                                   (IPLUS16 (ffetch (STREAM
-                                                                                         CHARPOSITION
-                                                                                         )
-                                                                               of STREAM)
-                                                                          1])
-
-(\TEXTSETEOF
-  [LAMBDA (STREAM EOFPTR)                                (* ; "Edited 31-May-91 14:19 by jds")
-                                                             (* Set the EPAGE/EOFFSET of the 
-                                                           stream to be (SUB1 of EOFPTR))
-    (replace (STREAM EPAGE) of STREAM with (fetch (BYTEPTR PAGE) of EOFPTR))
-    (replace (STREAM EOFFSET) of STREAM with (fetch (BYTEPTR OFFSET) of EOFPTR])
-
-(\TEXTSETFILEPTR
-  [LAMBDA (STREAM FILEPOS)                               (* ; "Edited 22-Apr-93 13:44 by jds")
-                                                             (* ; 
-                                                           "Sets the file ptr for a text stream.")
-    (PROG ((TEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of STREAM)))
-          (COND
-             ((ZEROP (fetch (TEXTOBJ TEXTLEN) of TEXTOBJ)))
-             ((OR (IEQP FILEPOS -1)
-                  (IEQP FILEPOS (fetch (TEXTOBJ TEXTLEN) of TEXTOBJ)))
-                                                             (* ; "Means end of file")
-              (\SETUPGETCH (IMAX 1 (fetch (TEXTOBJ TEXTLEN) of TEXTOBJ))
-                     TEXTOBJ)
-              (\BIN STREAM))
-             ((OR (ILESSP FILEPOS 0)
-                  (IGREATERP FILEPOS (fetch (TEXTOBJ TEXTLEN) of TEXTOBJ)))
-                                                             (* ; 
-                                                     "If the fileptr is not within the text, punt.")
-              (\ILLEGAL.ARG FILEPOS))
-             (T (\SETUPGETCH (IMAX 1 (ADD1 FILEPOS))
-                       TEXTOBJ])
-
-(\TEXTDSPXPOSITION
-  [LAMBDA (STREAM XPOSITION)                            (* ; "Edited  3-Jan-2001 17:27 by rmk:")
-                                                             (* ; 
-                                   "Edited 24-Oct-88 23:09 by rmk:; Edited 26-Sep-85 16:30 by ajb:")
-
-    (* ;; 
-"Simply returns the XPOSITION of the primary window's display stream, this is a read-only function")
-
-    (LET [(WINDOW (CAR (fetch \WINDOW of (TEXTOBJ STREAM]
-         (COND
-            (WINDOW (DSPXPOSITION NIL WINDOW))
-            (T                                               (* ; 
-                                          "If there is no window, estimate from character position")
-               (TIMES (CHARWIDTH (CHARCODE SPACE)
-                             STREAM)
-                      (POSITION STREAM])
-
-(\TEXTDSPYPOSITION
-  [LAMBDA (STREAM YPOSITION)                             (* ; "Edited 31-May-91 13:59 by jds")
-
-         (* Simply returns the XPOSITION of the primary window's display stream, this is 
-       a read-only function)
-
-    (LET [(WINDOW (CAR (fetch (TEXTOBJ \WINDOW) of (TEXTOBJ STREAM]
-         (IF WINDOW
-             THEN (DSPYPOSITION NIL WINDOW)
-           ELSE (AND \#DISPLAYLINES (NEQ \CURRENTDISPLAYLINE -1)
-                         (DIFFERENCE \#DISPLAYLINES \CURRENTDISPLAYLINE])
-
-(\TEXTLEFTMARGIN
-  [LAMBDA (STREAM XPOSITION)                             (* ; "Edited 31-May-91 14:03 by jds")
-
-(* ;;; "Returns the left margin of the textstream.  This is a read-only function")
-
-    (IF (CAR (fetch (TEXTOBJ \WINDOW) of (TEXTOBJ STREAM)))
-        THEN [IPLUS 8 (fetch (FMTSPEC LEFTMAR) of (fetch (TEXTOBJ FMTSPEC)
-                                                                 of (TEXTOBJ STREAM]
-      ELSE 0])
-
-(\TEXTRIGHTMARGIN
-  [LAMBDA (STREAM XPOSITION)                                 (* ; "Edited 31-May-91 14:03 by jds")
-
-(* ;;; "Returns the right margin of the textstream.  This is a read-only function")
-
-    (LET ((TEXTOBJ (TEXTOBJ STREAM)))
-         (IF (fetch (TEXTOBJ \WINDOW) of TEXTOBJ)
-             THEN (LET [(RIGHTMAR (fetch (FMTSPEC RIGHTMAR) of (fetch (TEXTOBJ 
-                                                                                             FMTSPEC)
-                                                                              of TEXTOBJ]
-                           (IF (ZEROP RIGHTMAR)
-                               THEN (fetch (TEXTOBJ WRIGHT) of TEXTOBJ)
-                             ELSE RIGHTMAR))
-           ELSE (TIMES (CHARWIDTH (CHARCODE A)
-                                  STREAM)
-                           (LINELENGTH NIL STREAM])
-
-(\TEXTDSPCHARWIDTH
-  [LAMBDA (STREAM CHARCODE)                                  (* ; 
-                                                           "Edited  9-Feb-99 12:59 by kaplan")
-    (CHARWIDTH CHARCODE (DSPFONT NIL STREAM])
-
-(\TEXTDSPSTRINGWIDTH
-  [LAMBDA (STREAM STRING)                                    (* ; 
-                                                           "Edited  9-Feb-99 13:00 by kaplan")
-    (STRINGWIDTH STRING (DSPFONT NIL STREAM])
-
-(\TEXTDSPLINEFEED
-  [LAMBDA (STREAM VALUE)
-    (FONTPROP (DSPFONT NIL STREAM)
-           'HEIGHT])
-)
-(DEFINEQ
-
-(\TEXTBIN
-  [LAMBDA (STREAM)                                       (* ; "Edited 28-Mar-94 15:33 by jds")
-
-(* ;;; "Do BIN slow case for a text stream")
-                                                             (* ; 
-                               "NB that PEEKBIN and BACKFILEPTR need to track changes in this code")
-    (DECLARE (LOCALVARS . T))
-    (PROG (CH FILE STR PF PS PC PO NPC OPC SUBSTREAM)
-          (COND
-             [(ILESSP (fetch (STREAM COFFSET) of STREAM)
-                     (fetch (STREAM CBUFSIZE) of STREAM))
-                                                             (* ; 
-                                                           "Simple case -- just do the usual BIN")
-              (COND
-                 [(SETQ PO (fetch (PIECE POBJ) of (fetch (TEXTSTREAM PIECE) of STREAM
-                                                                 )))
-                                                             (* ; "Handle objects specially")
-                  (COND
-                     ((SETQ SUBSTREAM (IMAGEOBJPROP PO 'SUBSTREAM))
-                                                             (* ; 
-                                       "If this object has a substream in it, go to that substream")
-                      (add (fetch (STREAM COFFSET) of STREAM)
-                             1)
-                      (RETURN (\BIN SUBSTREAM)))
-                     (T 
-                        (* ;; "Otherwise, just return the object as BIN's result, and make sure we'll go to the next page next time.")
-
-                        (replace (STREAM COFFSET) of STREAM with (fetch (STREAM
-                                                                                         CBUFSIZE)
-                                                                                of STREAM))
-                        (replace (TEXTSTREAM CHARSLEFT) of STREAM with 0)
-                        (RETURN PO]
-                 [(fetch (TEXTSTREAM FATSTREAMP) of STREAM)
-                                                             (* ; 
-                                                           "This is a 16 bit BIN.  grab 2 bytes.")
-                                                             (* ; 
-                                             "WHAT HAPPENS IF THE SECOND BYTE IS ON ANOTHER PAGE??")
-                  (RETURN (LOGOR (UNFOLD (\PAGEDBIN STREAM)
-                                        256)
-                                 (COND
-                                    ((ILESSP (fetch (STREAM COFFSET) of STREAM)
-                                            (fetch (STREAM CBUFSIZE) of STREAM))
-                                                             (* ; 
-            "This pair of characters doesn't straddle a file page bound.  Just grab the next char.")
-                                     (\PAGEDBIN STREAM))
-                                    (T                       (* ; 
-      "Need to move to the next page on the backing file.  Doing so also grabs the next character.")
-                                       (\TEDIT.TEXTBIN.NEW.PAGE STREAM T]
-                 (T (RETURN (\PAGEDBIN STREAM]
-             (T                                              (* ; 
-                                       "We've either hit a page bound in a file, or a piece bound.")
-                (RETURN (COND
-                           [(ZEROP (fetch (TEXTSTREAM CHARSLEFT) of STREAM))
-                                                             (* ; "Time for a new piece.")
-                            [repeatwhile (AND PC (ZEROP (fetch (PIECE PLEN) of PC)))
-                               do                        (* ; 
-                                         "Skip over any zero-length pieces at the end of the file.")
-                                     (SETQ OPC (fetch (TEXTSTREAM PIECE) of STREAM))
-                                     (SETQ PC (replace (TEXTSTREAM PIECE) of STREAM
-                                                 with (AND OPC (fetch (PIECE NEXTPIECE)
-                                                                      of OPC]
-                            (replace (STREAM BINABLE) of STREAM with T)
-                            (replace (TEXTSTREAM FATSTREAMP) of STREAM with NIL)
-                                                             (* ; 
-                                                           "Move to the next piece in the chain")
-                            (COND
-                               [PC                           (* ; 
-                                                           "There IS a next piece to move to.")
-                                   (AND (fetch (TEXTSTREAM LOOKSUPDATEFN) of STREAM)
-                                        (SETQ NPC (APPLY* (fetch (TEXTSTREAM LOOKSUPDATEFN)
-                                                             of STREAM)
-                                                         STREAM PC))
-                                        (replace (TEXTSTREAM PIECE) of STREAM
-                                           with (SETQ PC NPC)))
-                                                             (* ; 
- "Take care of any piece-change uproar.  uproar -- which may include picking a new piece to go to.")
-                                   [COND
-                                      (NPC                   (* ; 
-                                    "If we got an NPC, this was taken care of by the LOOKSUPDATEFN")
-                                           )
-                                      ([AND (SETQ PO (fetch (PIECE POBJ) of PC))
-                                            (SETQ SUBSTREAM (IMAGEOBJPROP PO 'SUBSTREAM]
-                                       (\SETUPGETCH 1 (fetch (TEXTSTREAM TEXTOBJ)
-                                                             of SUBSTREAM))
-                                       (replace (TEXTSTREAM CURRENTPARALOOKS) of STREAM
-                                          with (fetch (TEXTSTREAM CURRENTPARALOOKS)
-                                                      of SUBSTREAM))
-                                       (replace (TEXTSTREAM CURRENTLOOKS) of STREAM
-                                          with (fetch (TEXTSTREAM CURRENTLOOKS) of 
-                                                                                            SUBSTREAM
-                                                          )))
-                                      [(NEQ (fetch (PIECE PPARALOOKS) of OPC)
-                                            (fetch (PIECE PPARALOOKS) of PC))
-                                       (replace (TEXTSTREAM CURRENTPARALOOKS) of STREAM
-                                          with (\TEDIT.APPLY.PARASTYLES (fetch (PIECE 
-                                                                                           PPARALOOKS
-                                                                                              )
-                                                                               of PC)
-                                                          PC
-                                                          (fetch (TEXTSTREAM TEXTOBJ)
-                                                             of STREAM)))
-                                       (replace (TEXTSTREAM CURRENTLOOKS) of STREAM
-                                          with (\TEDIT.APPLY.STYLES (fetch (PIECE PLOOKS)
-                                                                           of PC)
-                                                          PC
-                                                          (fetch (TEXTSTREAM TEXTOBJ)
-                                                             of STREAM]
-                                      ((NOT (EQCLOOKS (fetch (PIECE PLOOKS) of PC)
-                                                   (fetch (PIECE PLOOKS) of OPC)))
-                                       (replace (TEXTSTREAM CURRENTLOOKS) of STREAM
-                                          with (\TEDIT.APPLY.STYLES (fetch (PIECE PLOOKS)
-                                                                           of PC)
-                                                          PC
-                                                          (fetch (TEXTSTREAM TEXTOBJ)
-                                                             of STREAM]
-                                   (COND
-                                      ((SETQ PS (fetch (PIECE PSTR) of PC))
-                                                             (* ; "This piece lives in a string.")
-                                       (\TEDIT.TEXTBIN.STRINGSETUP 0 (fetch (PIECE PLEN)
-                                                                            of PC)
-                                              STREAM PS)
-
-                                 (* ;; "Set the stream up so that it will use PS for BINs, starting at offset 0 (the front of the piece), and will run for as many chars as there are in the piece.")
-                                                             (* ; 
-                                "Then actually grab the next character to hand back to the caller.")
-                                       (\BIN STREAM))
-                                      ((SETQ PF (fetch (PIECE PFILE) of PC))
-                                                             (* ; "This piece lives on a file.")
-                                       (\TEDIT.TEXTBIN.FILESETUP PC 0 (fetch (PIECE PLEN)
-                                                                             of PC)
-                                              STREAM PF (fetch (PIECE PFATP) of PC)
-                                              'PEEKBIN)
-                                       (\BIN STREAM))
-                                      [(SETQ PO (fetch (PIECE POBJ) of PC))
-                                       (replace (STREAM BINABLE) of STREAM with NIL)
-                                       (COND
-                                          (SUBSTREAM         (* ; 
-                                          "There is a stream below this one, to feed chars upward.")
-                                                 (\SETUPGETCH 1 (fetch (TEXTSTREAM TEXTOBJ)
-                                                                       of SUBSTREAM))
-                                                 (freplace (STREAM COFFSET) of STREAM
-                                                    with 0)
-                                                 (freplace (TEXTSTREAM CHARSLEFT) of STREAM
-                                                    with (fetch (PIECE PLEN) of PC))
-                                                 (freplace (STREAM CBUFSIZE) of STREAM
-                                                    with (fetch (PIECE PLEN) of PC))
-                                                 (freplace (STREAM CPAGE) of STREAM
-                                                    with 0)
-                                                 (freplace (TEXTSTREAM PCSTARTCH) of STREAM
-                                                    with 0)
-                                                 (freplace (TEXTSTREAM PCSTARTPG) of STREAM
-                                                    with 0)
-                                                 (replace (TEXTSTREAM CURRENTPARALOOKS)
-                                                    of STREAM with (fetch (TEXTSTREAM
-                                                                                       
-                                                                                     CURRENTPARALOOKS
-                                                                                       ) of
-                                                                                         SUBSTREAM))
-                                                 (replace (TEXTSTREAM CURRENTLOOKS) of STREAM
-                                                    with (fetch (TEXTSTREAM CURRENTLOOKS)
-                                                                of SUBSTREAM))
-                                                 (RETURN (\BIN SUBSTREAM)))
-                                          (T (replace (TEXTSTREAM CHARSLEFT) of STREAM
-                                                with 0)
-                                             (RETURN PO]
-                                      (T (ERROR "CAN'T GET TO NEXT PIECE"]
-                               (T                            (* ; 
-                                                       "There are no more pieces.  Punt gracefully")
-                                  (COND
-                                     ((fetch (STREAM ENDOFSTREAMOP) of STREAM)
-                                                             (* ; 
-                                           "If there's an EOF handler, call it & return the result")
-                                      (RETURN (APPLY* (fetch (STREAM ENDOFSTREAMOP) of STREAM
-                                                             )
-                                                     STREAM)))
-                                     (T                      (* ; "Otherwise, return NIL")
-                                        (RETURN NIL]
-                           [(SETQ PO (fetch (PIECE POBJ) of (fetch (TEXTSTREAM PIECE)
-                                                                       of STREAM)))
-                                                             (* ; "This is an object")
-                            (replace (STREAM BINABLE) of STREAM with NIL)
-                            (COND
-                               (SUBSTREAM                    (* ; 
-                                          "There is a stream below this one, to feed chars upward.")
-                                      (\SETUPGETCH 1 (fetch (TEXTSTREAM TEXTOBJ) of
-                                                                                         SUBSTREAM))
-                                      (freplace (STREAM COFFSET) of STREAM with 1)
-                                      (freplace (TEXTSTREAM CHARSLEFT) of STREAM with
-                                                                                         0)
-                                      (freplace (STREAM CBUFSIZE) of STREAM
-                                         with (fetch (PIECE PLEN) of PC))
-                                      (freplace (STREAM CPAGE) of STREAM with 0)
-                                      (freplace (TEXTSTREAM PCSTARTCH) of STREAM with
-                                                                                         1)
-                                      (freplace (TEXTSTREAM PCSTARTPG) of STREAM with
-                                                                                         0)
-                                      (replace (TEXTSTREAM CURRENTPARALOOKS) of STREAM
-                                         with (fetch (TEXTSTREAM CURRENTPARALOOKS)
-                                                     of SUBSTREAM))
-                                      (replace (TEXTSTREAM CURRENTLOOKS) of STREAM
-                                         with (fetch (TEXTSTREAM CURRENTLOOKS) of 
-                                                                                            SUBSTREAM
-                                                         ))
-                                      (RETURN (\BIN SUBSTREAM)))
-                               (T (replace (TEXTSTREAM CHARSLEFT) of STREAM with 0)
-                                  (RETURN PO]
-                           (T                                (* ; 
-                                                         "Need to move to the next page in a file.")
-                              (RETURN (\TEDIT.TEXTBIN.NEW.PAGE STREAM])
-
-(\TEDIT.TEXTBIN.STRINGSETUP
-  [LAMBDA (CHOFFSET CHARSLEFT STREAM PS)                 (* ; "Edited 31-May-91 14:21 by jds")
-    (PROG (OFFST)
-          (COND
-             ((fetch (STRINGP FATSTRINGP) of PS)
-
-         (* The string is FAT. Therefore, make all the offsets and things take account 
-       of the fact that each char is really 2 bytes.)
-
-              (freplace (STREAM CPPTR) of STREAM with (ADDBASE (ffetch (STRINGP
-                                                                                        BASE)
-                                                                              of PS)
-                                                                         (ffetch (STRINGP OFFST)
-                                                                            of PS)))
-
-         (* The char page ptr can point to the real first char, since it's a word.)
-
-              (freplace (STREAM CPAGE) of STREAM with 0)
-              (freplace (STREAM COFFSET) of STREAM with (UNFOLD CHOFFSET 2))
-                                                             (* Offset into the string, in bytes.
-                                                           That 2 should really be something 
-                                                           like BYTESPERFATCHAR.)
-              (freplace (TEXTSTREAM PCSTARTPG) of STREAM with 0)
-                                                             (* Page %# within the "file" where 
-                                                           this piece starts)
-              (freplace (TEXTSTREAM PCSTARTCH) of STREAM with 0)
-                                                             (* Char within "page" where the 
-                                                           piece starts (for BACKFILEPTR))
-              (freplace (STREAM CBUFSIZE) of STREAM with (IPLUS (UNFOLD CHARSLEFT 2)
-                                                                            (ffetch (STREAM
-                                                                                         COFFSET)
-                                                                               of STREAM)))
-                                                             (* Since the chars-left field is 
-                                                           words, and we're talking bytes.)
-              (freplace (STREAM EPAGE) of STREAM with 1)
-              (freplace (TEXTSTREAM CHARSLEFT) of STREAM with 0)
-
-         (* When we hit the end of the string, we'll have run out off the piece, too.)
-
-              (freplace (TEXTSTREAM REALFILE) of STREAM with NIL)
-              (replace (STREAM BINABLE) of STREAM with NIL)
-                                                             (* To force BINs thru the \TEXTBIN 
-                                                           function so we can get two bytes.)
-              (replace (TEXTSTREAM FATSTREAMP) of STREAM with T)
-                                                             (* And mark the stream as having 
-                                                           wide characters, so \TEXTBIN knows 
-                                                           what to do.)
-              )
-             (T                                              (* Characters are thin in this 
-                                                           string (the usual case))
-                (freplace (STREAM CPPTR) of STREAM with
-                                                           (ADDBASE (ffetch (STRINGP BASE)
-                                                                       of PS)
-                                                                  (LRSH (SETQ OFFST
-                                                                         (ffetch (STRINGP OFFST)
-                                                                            of PS))
-                                                                        1)))
-                (freplace (STREAM CPAGE) of STREAM with 0)
-                (freplace (TEXTSTREAM PCSTARTPG) of STREAM with 0)
-                                                             (* Page %# within the "file" where 
-                                                           this piece starts)
-                (freplace (TEXTSTREAM PCSTARTCH) of STREAM with (LOGAND 1 OFFST))
-                                                             (* Char within "page" where the 
-                                                           piece starts (for BACKFILEPTR))
-                (freplace (STREAM COFFSET) of STREAM with (IPLUS (LOGAND 1 OFFST)
-                                                                             CHOFFSET))
-                (freplace (STREAM CBUFSIZE) of STREAM with (IPLUS CHARSLEFT
-                                                                              (ffetch
-                                                                               (STREAM COFFSET)
-                                                                                 of STREAM)))
-                (freplace (STREAM EPAGE) of STREAM with 1)
-                (freplace (TEXTSTREAM CHARSLEFT) of STREAM with 0)
-                (freplace (TEXTSTREAM REALFILE) of STREAM with NIL)
-                (replace (TEXTSTREAM FATSTREAMP) of STREAM with NIL])
-
-(\TEDIT.TEXTBIN.FILESETUP
-  [LAMBDA (PC CHOFFSET CHARSLEFT STREAM PF FATP OPERATION NOERRORFLG)
-                                                             (* ; "Edited  8-Jun-99 23:37 by rmk:")
-                                                             (* ; "Edited  8-Jun-99 23:33 by rmk:")
-                                                             (* ; "Edited  8-Jun-99 23:32 by rmk:")
-                                                             (* ; "Edited 15-Apr-93 15:53 by jds")
-                                                             (* ; 
-                                      "Do the setup needed to make a text stream read from a file.")
-    (PROG ((BYTESLEFT (COND
-                         (FATP (UNFOLD CHARSLEFT 2))
-                         (T CHARSLEFT)))
-           (BYTEOFFSET (COND
-                          (FATP (UNFOLD CHOFFSET 2))
-                          (T CHOFFSET)))
-           CH FPOS)
-          [COND
-             ((IEQP (ffetch (STREAM ACCESSBITS) of PF)
-                    NoBits)                                  (* ; "ASSURE THAT THE FILE IS OPEN")
-              (SETQ PF (\TEDIT.REOPEN.STREAM STREAM PF]
-          [freplace (TEXTSTREAM PCSTARTPG) of STREAM with (ffetch (BYTEPTR PAGE)
-                                                                         of (SETQ FPOS
-                                                                                 (ffetch
-                                                                                  (PIECE PFPOS)
-                                                                                    of PC]
-                                                             (* ; 
-                                                      "Page within the file where the piece starts")
-          (freplace (TEXTSTREAM PCSTARTCH) of STREAM with (ffetch (BYTEPTR OFFSET)
-                                                                         of FPOS))
-                                                             (* ; 
-                                                           "Char within the page where it starts.")
-          (SETFILEPTR PF (IPLUS FPOS BYTEOFFSET))
-          [COND
-             ((ZEROP (GETEOFPTR PF))                         (* ; 
-                                                           "For zero-length files, do nothing.")
-              )
-             ((ILESSP (IPLUS FPOS BYTEOFFSET)
-                     (GETEOFPTR PF))                         (* ; 
-                   "Only get the next character if we aren't positioning past the end of the file.")
-              (SETQ CH (IF (EQ OPERATION 'BIN)
-                           THEN (CL:IF FATP
-                                        (LOGOR (UNFOLD (\PAGEDBIN PF)
-                                                      256)
-                                               (\PAGEDPEEKBIN PF NOERRORFLG))
-                                        (\BIN PF))
-                         ELSE (CL:IF FATP
-                                      (PROG1 (LOGOR (UNFOLD (\PAGEDBIN PF)
-                                                           256)
-                                                    (\PAGEDPEEKBIN PF NOERRORFLG))
-                                             (\PAGEDBACKFILEPTR PF))
-                                      (\PEEKBIN PF NOERRORFLG))]
-
-(* ;;; "Move all the relevant fields from the backing file's stream into the text stream, so that microcoded BINs will do the right thing.")
-
-          (freplace (STREAM CPPTR) of STREAM with (ffetch (STREAM CPPTR) of
-                                                                                         PF))
-          (freplace (STREAM CPAGE) of STREAM with (ffetch (STREAM CPAGE) of
-                                                                                         PF))
-          (freplace (STREAM COFFSET) of STREAM with (ffetch (STREAM COFFSET)
-                                                                   of PF))
-          (freplace (STREAM EPAGE) of STREAM with 32767)
-          (freplace (STREAM CBUFSIZE) of STREAM with (IMIN (ffetch (STREAM CBUFSIZE)
-                                                                          of PF)
-                                                                       (IPLUS (ffetch
-                                                                               (STREAM COFFSET)
-                                                                                 of PF)
-                                                                              BYTESLEFT)))
-          [freplace (TEXTSTREAM CHARSLEFT) of STREAM with
-                                                             (IDIFFERENCE BYTESLEFT
-                                                                    (IDIFFERENCE (ffetch
-                                                                                  (STREAM CBUFSIZE)
-                                                                                    of STREAM)
-                                                                           (ffetch (STREAM 
-                                                                                              COFFSET
-                                                                                              )
-                                                                              of STREAM]
-          (freplace (TEXTSTREAM REALFILE) of STREAM with PF)
-          (replace (TEXTSTREAM FATSTREAMP) of STREAM with FATP)
-                                                             (* ; 
-                                   "Mark the stream, if it contains fat characters for this piece.")
-          (replace (STREAM BINABLE) of STREAM with (NOT FATP))
-                                                             (* ; 
-                                        "A stream that has fat chars can't use the micrododed BIN.")
-                                                             (* ; 
-                                                           "And return the next character in line")
-          (RETURN CH])
-
-(\TEDIT.TEXTBIN.NEW.PAGE
-  [LAMBDA (STREAM SPLITCHAR)                             (* ; "Edited 11-Jun-99 15:10 by rmk:")
-                                                             (* ; "Edited 11-Jun-99 15:10 by rmk:")
-                                                             (* ; "Edited 11-Jun-99 15:01 by rmk:")
-                                                             (* ; "Edited 11-Jun-99 15:01 by rmk:")
-                                                             (* ; "Edited 11-Jun-99 14:18 by rmk:")
-                                                             (* ; "Edited 31-May-91 14:21 by jds")
-
-         (* * Handle crossing a file-page boundary within TEXTBIN)
-
-         (* If SPLITCHAR is non-NIL, we've already read the first byte of a two-byte 
-       character, and only need to read the second byte.
-       Otherwise, this function will read 2 bytes for a fat character.)
-
-    (PROG ((FILE (fetch (TEXTSTREAM REALFILE) of STREAM))
-           CH)                                               (* Get the STREAM which describes 
-                                                           the file for real)
-          [COND
-             ((IEQP (fetch (STREAM ACCESSBITS) of FILE)
-                    NoBits)                                  (* The file was closed for some 
-                                                           reason; reopen it.)
-              (SETQ FILE (\GETSTREAM [OPENFILE (fetch (STREAM FULLNAME) of FILE)
-                                            'INPUT NIL '((TYPE TEXT]
-                                'INPUT]
-          (replace (STREAM COFFSET) of FILE with (fetch (STREAM CBUFSIZE)
-                                                                of FILE))
-                                                             (* Force it to do a page switch for 
-                                                           us)
-          (SETQ CH (\BIN FILE))                              (* Get the next character in the 
-                                                           usual manner)
-          (replace (STREAM CPPTR) of STREAM with (fetch (STREAM CPPTR) of FILE))
-                                                             (* Steal the fields we need to 
-                                                           simulate that stream)
-          (replace (STREAM COFFSET) of STREAM with (fetch (STREAM COFFSET)
-                                                                  of FILE))
-          (replace (STREAM CPAGE) of STREAM with (fetch (STREAM CPAGE) of FILE))
-          (replace (STREAM CBUFSIZE) of STREAM with (IMIN (fetch (TEXTSTREAM 
-                                                                                        CHARSLEFT)
-                                                                         of STREAM)
-                                                                      (fetch (STREAM CBUFSIZE)
-                                                                         of FILE)))
-                                                             (* Can't read farther than 
-                                                           end-of-piece, tho)
-          (replace (TEXTSTREAM CHARSLEFT) of STREAM with (IDIFFERENCE (fetch
-                                                                                   (TEXTSTREAM 
-                                                                                          CHARSLEFT)
-                                                                                     of STREAM)
-                                                                            (fetch (STREAM 
-                                                                                             CBUFSIZE
-                                                                                              )
-                                                                               of STREAM)))
-          (COND
-             [(AND (fetch (TEXTSTREAM FATSTREAMP) of STREAM)
-                   (NOT SPLITCHAR))
-
-         (* This piece contains fat characters. Need to grab a second byte from the 
-       file, and construct a 16-bit character)
-
-              (RETURN (LOGOR (UNFOLD CH 256)
-                             (\PAGEDBIN STREAM]
-             (T                                              (* Regular, 8-bit characters.
-                                                           Just return the one we BINned.)
-
-         (* or we only need the second byte, since the first byte was on the prior page.)
-
-                (RETURN CH])
-)
-(DEFINEQ
-
-(\TEXTPEEKBIN
-  [LAMBDA (STREAM NOERRORFLG)                            (* ; "Edited 28-Mar-94 15:34 by jds")
-                                                             (* ; "DO PEEKBIN for a text stream")
-    (PROG (CH FILE STR PF PS PC PO SUBSTREAM)
-          (SETQ PC (fetch (TEXTSTREAM PIECE) of STREAM))
-          (COND
-             [(ILESSP (fetch (STREAM COFFSET) of STREAM)
-                     (fetch (STREAM CBUFSIZE) of STREAM))
-                                                             (* ; 
-                                                         "Simple case -- just do the usual PEEKBIN")
-              (COND
-                 ((AND PC (fetch (PIECE POBJ) of PC))
-                  (RETURN (fetch (PIECE POBJ) of PC)))
-                 [(fetch (TEXTSTREAM FATSTREAMP) of STREAM)
-                                                             (* ; 
-                                                     "This is a 16 bit PEEKBIN.  Grab two chars...")
-                  (RETURN (COND
-                             [(\EOFP STREAM)
-                              (COND
-                                 (NOERRORFLG NIL)
-                                 (T (\PEEKBIN STREAM]
-                             ((ILESSP (fetch (STREAM COFFSET) of STREAM)
-                                     (SUB1 (fetch (STREAM CBUFSIZE) of STREAM)))
-                                                             (* ; 
-                                "We're sure of staying on the same page.  Just grab the characters")
-                              (PROG1 (LOGOR (UNFOLD (\PAGEDBIN STREAM)
-                                                   256)
-                                            (\PAGEDPEEKBIN STREAM NOERRORFLG))
-                                     (\PAGEDBACKFILEPTR STREAM)))
-                             (T (SETQ PS (fetch (STREAM F1) of STREAM))
-                                (replace (STREAM COFFSET) of PS with (fetch
-                                                                                  (STREAM COFFSET)
-                                                                                    of STREAM))
-                                (PROG1 (LOGOR (UNFOLD (\PAGEDBIN PS)
-                                                     256)
-                                              (\PAGEDPEEKBIN PS NOERRORFLG))
-                                       (\PAGEDBACKFILEPTR PS]
-                 (T (RETURN (\PAGEDPEEKBIN STREAM NOERRORFLG]
-             [PC                                             (* ; 
-                                       "We've either hit a page bound in a file, or a piece bound.")
-                 (RETURN (COND
-                            [(ZEROP (fetch (TEXTSTREAM CHARSLEFT) of STREAM))
-                                                             (* ; "Time for a new piece.")
-                             (SETQ PC (replace (TEXTSTREAM PIECE) of STREAM
-                                         with (fetch (PIECE NEXTPIECE) of PC)))
-                                                             (* ; 
-                                                           "Move to the next piece in the chain")
-                             (COND
-                                [PC (replace (TEXTSTREAM CURRENTLOOKS) of STREAM
-                                       with (\TEDIT.APPLY.STYLES (fetch (PIECE PLOOKS)
-                                                                        of PC)
-                                                       PC
-                                                       (fetch (TEXTSTREAM TEXTOBJ) of STREAM)
-                                                       ))
-                                    (COND
-                                       [(SETQ PO (fetch (PIECE POBJ) of PC))
-                                        (replace (STREAM BINABLE) of STREAM with NIL)
-                                        (freplace (STREAM CBUFSIZE) of STREAM
-                                           with (fetch (PIECE PLEN) of PC))
-                                        (freplace (STREAM COFFSET) of STREAM with 0)
-                                        (COND
-                                           (SUBSTREAM        (* ; 
-                                          "There is a stream below this one, to feed chars upward.")
-                                                  (\SETUPGETCH 1 (fetch (TEXTSTREAM TEXTOBJ)
-                                                                        of SUBSTREAM))
-                                                  (freplace (TEXTSTREAM CHARSLEFT) of STREAM
-                                                     with (fetch (PIECE PLEN) of PC))
-                                                  (freplace (STREAM CPAGE) of STREAM
-                                                     with 0)
-                                                  (freplace (TEXTSTREAM PCSTARTCH) of STREAM
-                                                     with 0)
-                                                  (freplace (TEXTSTREAM PCSTARTPG) of STREAM
-                                                     with 0)
-                                                  (replace (TEXTSTREAM CURRENTPARALOOKS)
-                                                     of STREAM with (fetch (TEXTSTREAM
-                                                                                        
-                                                                                     CURRENTPARALOOKS
-                                                                                        )
-                                                                               of SUBSTREAM))
-                                                  (replace (TEXTSTREAM CURRENTLOOKS) of
-                                                                                         STREAM
-                                                     with (fetch (TEXTSTREAM CURRENTLOOKS)
-                                                                 of SUBSTREAM))
-                                                  (RETURN (\BIN SUBSTREAM)))
-                                           (T (replace (TEXTSTREAM CHARSLEFT) of STREAM
-                                                 with 0)
-                                              (RETURN PO]
-                                       ((SETQ PS (fetch (PIECE PSTR) of PC))
-                                                             (* ; "This piece lives in a string.")
-                                        (\TEDIT.TEXTBIN.STRINGSETUP 0 (fetch (PIECE PLEN)
-                                                                             of PC)
-                                               STREAM PS)
-
-                                 (* ;; "Set the stream up so that it will use PS for BINs, starting at offset 0 (the front of the piece), and will run for as many chars as there are in the piece.")
-
-                                        (\PEEKBIN STREAM NOERRORFLG))
-                                       ((SETQ PF (fetch (PIECE PFILE) of PC))
-                                                             (* ; "This piece lives on a file.")
-                                        (\TEDIT.TEXTBIN.FILESETUP PC 0 (fetch (PIECE PLEN)
-                                                                              of PC)
-                                               STREAM PF (fetch (PIECE PFATP) of PC)
-                                               'PEEKBIN NOERRORFLG))
-                                       (T (ERROR "CAN'T GET TO NEXT PIECE"]
-                                (NOERRORFLG                  (* ; 
-                                                       "There are no more pieces.  Punt gracefully")
-                                       (RETURN NIL))
-                                (T                           (* ; "He wants it the hard way.")
-                                   (APPLY* (fetch (STREAM ENDOFSTREAMOP) of STREAM)
-                                          STREAM]
-                            (T                               (* ; 
-                                                         "Need to move to the next page in a file.")
-                               (RETURN (\TEDIT.PEEKBIN.NEW.PAGE STREAM NOERRORFLG]
-             (NOERRORFLG                                     (* ; 
-                                                       "There are no more pieces.  Punt gracefully")
-                    (RETURN NIL))
-             (T                                              (* ; "He wants it the hard way.")
-                (APPLY* (fetch (STREAM ENDOFSTREAMOP) of STREAM)
-                       STREAM])
-
-(\TEDIT.PEEKBIN.NEW.PAGE
-  [LAMBDA (STREAM NOERRORFLG)                            (* ; "Edited 11-Jun-99 15:11 by rmk:")
-                                                             (* ; "Edited 31-May-91 14:21 by jds")
-
-         (* * Handle crossing a file-page boundary within \TEXTPEEKBIN)
-
-         (* If SPLITCHAR is non-NIL, we've already read the first byte of a two-byte 
-       character, and only need to read the second byte.
-       Otherwise, this function will read 2 bytes for a fat character.)
-
-    (PROG ((FILE (fetch (TEXTSTREAM REALFILE) of STREAM))
-           CH)                                               (* Get the STREAM which describes 
-                                                           the file for real)
-          [COND
-             ((IEQP (fetch (STREAM ACCESSBITS) of FILE)
-                    NoBits)                                  (* The file was closed for some 
-                                                           reason; reopen it.)
-              (SETQ FILE (\GETSTREAM [OPENFILE (fetch (STREAM FULLNAME) of FILE)
-                                            'INPUT NIL '((TYPE TEXT]
-                                'INPUT]
-          (replace (STREAM COFFSET) of FILE with (fetch (STREAM CBUFSIZE)
-                                                                of FILE))
-                                                             (* Force it to do a page switch for 
-                                                           us)
-          [SETQ CH (COND
-                      [(\EOFP FILE)
-                       (COND
-                          (NOERRORFLG NIL)
-                          (T (\PEEKBIN FILE]
-                      ((fetch (TEXTSTREAM FATSTREAMP) of STREAM)
-                       (PROG1 (LOGOR (UNFOLD (\PAGEDBIN FILE)
-                                            256)
-                                     (\PAGEDPEEKBIN FILE NOERRORFLG))
-                              (\PAGEDBACKFILEPTR FILE)))
-                      (T (\PEEKBIN FILE NOERRORFLG]          (* Get the next character in the 
-                                                           usual manner)
-          (replace (STREAM CPPTR) of STREAM with (fetch (STREAM CPPTR) of FILE))
-                                                             (* Steal the fields we need to 
-                                                           simulate that stream)
-          (replace (STREAM COFFSET) of STREAM with (fetch (STREAM COFFSET)
-                                                                  of FILE))
-          (replace (STREAM CPAGE) of STREAM with (fetch (STREAM CPAGE) of FILE))
-          (replace (STREAM CBUFSIZE) of STREAM with (IMIN (fetch (TEXTSTREAM 
-                                                                                        CHARSLEFT)
-                                                                         of STREAM)
-                                                                      (fetch (STREAM CBUFSIZE)
-                                                                         of FILE)))
-                                                             (* Can't read farther than 
-                                                           end-of-piece, tho)
-          (replace (TEXTSTREAM CHARSLEFT) of STREAM with (IDIFFERENCE (fetch
-                                                                                   (TEXTSTREAM 
-                                                                                          CHARSLEFT)
-                                                                                     of STREAM)
-                                                                            (fetch (STREAM 
-                                                                                             CBUFSIZE
-                                                                                              )
-                                                                               of STREAM)))
-          (RETURN CH])
-)
-
-
-
-(* ; "Support for TEXTPROP")
-
-(DEFINEQ
-
-(CGETTEXTPROP
-  [LAMBDA (TEXTOBJ PROP)                                     (* ; "Edited 20-Oct-87 12:36 by jds")
-          
-          (* ;; "compiles calls on TEXTPROP that are fetching values.  This needs to be changed whenever GETTEXTPROP is changed.")
-
-    (SELECTQ PROP
-        ((READONLY READ-ONLY) 
-             `(fetch (TEXTOBJ TXTREADONLY) of ,TEXTOBJ))
-        `(LISTGET (fetch (TEXTOBJ EDITPROPS) of ,TEXTOBJ)
-                ',PROP])
-
-(CTEXTPROP
-  [LAMBDA (FORMTAIL)                                     (* ; "Edited 31-May-91 13:59 by jds")
-
-    (* ;; "compiles calls to TEXTPROP")
-
-    (COND
-       ((NULL (CDR FORMTAIL))                                (* ; "less that 2 args")
-        (printout T "Possible error in call to TEXTPROP: less than 2 args" T (LIST 'TEXTPROP FORMTAIL
-                                                                                   )
-               T)
-        (CGETTEXTPROP (LIST 'TEXTOBJ (CAR FORMTAIL))
-               NIL))
-       ((NOT (EQ (CAADR FORMTAIL)
-                 'QUOTE))                                    (* ; "property is not quoted.")
-        'IGNOREMACRO)
-       [(NULL (CDDR FORMTAIL))                               (* ; "fetching a TEXTPROP property.")
-        (CGETTEXTPROP (LIST 'TEXTOBJ (CAR FORMTAIL))
-               (CADR (CADR FORMTAIL]
-       (T                                                    (* ; "storing a window property")
-          (LET ((TEXTOBJ (CAR FORMTAIL))
-                (PROP (CDADR FORMTAIL))
-                (VAL (CADDR FORMTAIL)))
-               [SELECTQ PROP
-                   ((READONLY READ-ONLY) 
-                        `(REPLACE (TEXTOBJ TXTREADONLY) OF ,TEXTOBJ WITH ,VAL))
-                   `(COND
-                       [(FETCH (TEXTOBJ EDITPROPS) OF (TEXTOBJ ,TEXTOBJ))
-                        (LISTPUT (FETCH (TEXTOBJ EDITPROPS) OF (TEXTOBJ ,TEXTOBJ))
-                               ',PROP
-                               ',VAL]
-                       (T (REPLACE (TEXTOBJ EDITPROPS) OF (TEXTOBJ ,TEXTOBJ)
-                             WITH (LIST ,PROP ,VAL]
-               (LIST 'COND (LIST (LIST 'FETCH 'EDITPROPS 'OF (LIST 'TEXTOBJ (CAR FORMTAIL)))
-                                 (LIST 'LISTPUT (LIST 'FETCH 'EDITPROPS 'OF (LIST 'TEXTOBJ
-                                                                                  (CAR FORMTAIL)))
-                                       (CADR FORMTAIL)
-                                       (CADDR FORMTAIL)))
-                     (LIST T (LIST 'REPLACE 'EDITPROPS 'OF (LIST 'TEXTOBJ (CAR FORMTAIL))
-                                   'WITH
-                                   (LIST 'LIST (CADR FORMTAIL)
-                                         (CADDR FORMTAIL])
-
-(GETTEXTPROP
-  [LAMBDA (TEXTOBJ PROP)                                 (* ; "Edited  9-Feb-89 11:20 by jds")
-
-    (* ;; "Gets values for document properties.  Used by TEXTPROP.")
-
-    (SELECTQ PROP
-        ((READONLY READ-ONLY) 
-             (FETCH (TEXTOBJ TXTREADONLY) OF TEXTOBJ))
-        ((BEING-EDITED ACTIVE) 
-             (FETCH (TEXTOBJ TXTEDITING) OF TEXTOBJ))
-        ((NO-NS-CHARS NONSCHARS NO-NSCHARS) 
-             (FETCH (TEXTOBJ TXTNONSCHARS) OF TEXTOBJ))
-        (LISTGET (fetch (TEXTOBJ EDITPROPS) of TEXTOBJ)
-               PROP])
-
-(PUTTEXTPROP
-  [LAMBDA (TEXTOBJ PROP VALUE)                           (* ; "Edited  9-Feb-89 11:19 by jds")
-                                                             (* ; 
-                                                           "put a value on prop list for a textobj")
-    (SELECTQ PROP
-        ((READONLY READ-ONLY) 
-             (PROG1 (fetch (TEXTOBJ TXTREADONLY) of TEXTOBJ)
-                 (replace (TEXTOBJ TXTREADONLY) of TEXTOBJ with VALUE)))
-        ((BEING-EDITED ACTIVE) 
-             (PROG1 (fetch (TEXTOBJ TXTEDITING) of TEXTOBJ)
-                 (replace (TEXTOBJ TXTEDITING) of TEXTOBJ with VALUE)))
-        ((NO-NS-CHARS NONSCHARS NO-NSCHARS) 
-             (PROG1 (fetch (TEXTOBJ TXTNONSCHARS) of TEXTOBJ)
-                 (replace (TEXTOBJ TXTNONSCHARS) of TEXTOBJ with VALUE)))
-        (COND
-           ((fetch (TEXTOBJ EDITPROPS) of (TEXTOBJ TEXTOBJ))
-            (PROG1 (LISTGET (ffetch (TEXTOBJ EDITPROPS) of (TEXTOBJ TEXTOBJ))
-                          PROP)
-                (LISTPUT (ffetch (TEXTOBJ EDITPROPS) of (TEXTOBJ TEXTOBJ))
-                       PROP VALUE)))
-           (T (freplace (TEXTOBJ EDITPROPS) of (TEXTOBJ TEXTOBJ) with (LIST PROP VALUE))
-              NIL])
-
-(TEXTPROP
-  [LAMBDA X                                              (* ; "Edited  9-Feb-89 11:20 by jds")
-
-    (* ;; "general top level entry for both fetching and setting window properties.")
-
-    (COND
-       ((IGREATERP X 2)
-        (PUTTEXTPROP (TEXTOBJ (ARG X 1))
-               (ARG X 2)
-               (ARG X 3)))
-       ((EQ X 2)
-        (GETTEXTPROP (TEXTOBJ (ARG X 1))
-               (ARG X 2)))
-       (T (\ILLEGAL.ARG NIL])
-)
-
-
-
-(* ;; 
-"Support for error handling:  The old error handler for the stream-not-open error.  This is here, because you only want to do this ONCE, even if you load TEXTOFD multiple times (as, e.g., in development)"
-)
-
-
-(RPAQ? *TEDIT-OLD-STREAM-ERROR-HANDLER* (CONDITION-HANDLER 'XCL:STREAM-NOT-OPEN))
-(DECLARE%: DONTEVAL@LOAD DOCOPY 
-
-(\TEXTINIT)
-)
-(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS 
-
-(ADDTOVAR NLAMA )
-
-(ADDTOVAR NLAML )
-
-(ADDTOVAR LAMA TEXTPROP)
-)
-(PUTPROPS TEXTOFD COPYRIGHT ("John Sybalsky & Xerox Corporation" 1983 1984 1985 1986 1987 1988 1989 
-1990 1991 1993 1994 1995 1999 2000 2001 2021))
-(DECLARE%: DONTCOPY
-  (FILEMAP (NIL (2980 52969 (COPYTEXTSTREAM 2990 . 6112) (OPENTEXTSTREAM 6114 . 20991) (REOPENTEXTSTREAM
- 20993 . 21415) (TEDIT.STREAMCHANGEDP 21417 . 21715) (TEXTSTREAMP 21717 . 22031) (TXTFILE 22033 . 
-22478) (\DELETECH 22480 . 33736) (\SETUPGETCH 33738 . 41017) (\TEDIT.REOPEN.STREAM 41019 . 42869) (
-\TEDIT.COPYTEXTSTREAM.PIECEMAPFN 42871 . 45309) (\TEXTINIT 45311 . 50862) (\TEXTMARK 50864 . 51612) (
-\TEXTTTYBOUT 51614 . 52967)) (52970 78402 (\INSERTCH 52980 . 76706) (\INSERTCR 76708 . 78400)) (78468 
-98784 (\CHTOPC 78478 . 79667) (\CHTOPCNO 79669 . 80931) (\CLEARPCTB 80933 . 81729) (
-\CREATEPIECEORSTREAM 81731 . 84705) (\DELETEPIECE 84707 . 85620) (\FINDPIECE 85622 . 85988) (
-\INSERTPIECE 85990 . 89000) (\MAKEPCTB 89002 . 90917) (\SPLITPIECE 90919 . 97878) (\INSERT.FIRST.PIECE
- 97880 . 98782)) (98836 123054 (\TEXTCLOSEF 98846 . 100073) (\TEXTCLOSEF-SUBTREE 100075 . 100781) (
-\TEXTDSPFONT 100783 . 101775) (\TEXTEOFP 101777 . 103136) (\TEXTGETEOFPTR 103138 . 103348) (
-\TEXTGETFILEPTR 103350 . 105413) (\TEXTOPENF 105415 . 106245) (\TEXTOPENF-SUBTREE 106247 . 107048) (
-\TEXTOUTCHARFN 107050 . 107398) (\TEXTBACKFILEPTR 107400 . 113301) (\TEXTBOUT 113303 . 116651) (
-\TEDITOUTCHARFN 116653 . 117899) (\TEXTSETEOF 117901 . 118410) (\TEXTSETFILEPTR 118412 . 119637) (
-\TEXTDSPXPOSITION 119639 . 120496) (\TEXTDSPYPOSITION 120498 . 121043) (\TEXTLEFTMARGIN 121045 . 
-121528) (\TEXTRIGHTMARGIN 121530 . 122466) (\TEXTDSPCHARWIDTH 122468 . 122706) (\TEXTDSPSTRINGWIDTH 
-122708 . 122948) (\TEXTDSPLINEFEED 122950 . 123052)) (123055 156799 (\TEXTBIN 123065 . 139851) (
-\TEDIT.TEXTBIN.STRINGSETUP 139853 . 145566) (\TEDIT.TEXTBIN.FILESETUP 145568 . 151954) (
-\TEDIT.TEXTBIN.NEW.PAGE 151956 . 156797)) (156800 170208 (\TEXTPEEKBIN 156810 . 165949) (
-\TEDIT.PEEKBIN.NEW.PAGE 165951 . 170206)) (170246 175464 (CGETTEXTPROP 170256 . 170732) (CTEXTPROP 
-170734 . 173078) (GETTEXTPROP 173080 . 173675) (PUTTEXTPROP 173677 . 175002) (TEXTPROP 175004 . 175462
-)))))
-STOP
diff --git a/sources/TEXTOFD.LCOM b/sources/TEXTOFD.LCOM
deleted file mode 100644
index 1f1e8646..00000000
Binary files a/sources/TEXTOFD.LCOM and /dev/null differ
diff --git a/sources/TTYIN b/sources/TTYIN
index a344bc7f..ded331e8 100644
--- a/sources/TTYIN
+++ b/sources/TTYIN
@@ -1,11 +1,11 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED " 5-Sep-2021 08:25:25" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>TTYIN.;21 329100 
+(FILECREATED "27-Aug-2021 17:02:43" 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>TTYIN.;19 329093 
 
-      changes to%:  (FNS TTYINBUFFERDEVICE)
+      changes to%:  (VARS TTYINCOMS)
 
-      previous date%: "27-Aug-2021 17:02:43" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>TTYIN.;20)
+      previous date%: "27-Aug-2021 16:49:59" 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>TTYIN.;18)
 
 
 (* ; "
@@ -6076,62 +6076,62 @@ DONTEVAL@LOAD EVAL@COMPILE
 (PUTPROPS TTYIN COPYRIGHT ("Venue & Xerox Corporation" 1982 1983 1984 1985 1986 1987 1988 1990 1991 
 2021))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (7803 207838 (TTYIN 7813 . 21046) (TTYIN.SETUP 21048 . 24124) (TTYIN.CLEANUP 24126 . 
-24954) (TTYIN1 24956 . 51840) (TTYIN1RESTART 51842 . 53106) (TTYIN.FINISH 53108 . 62525) (
-TTYIN.BALANCE 62527 . 63653) (ADDCHAR 63655 . 65841) (TTMAKECOMPLEXCHAR 65843 . 66317) (ADDNAKEDCHAR 
-66319 . 67829) (TTADDTAB 67831 . 68766) (ADJUSTLINE 68768 . 82679) (ADJUSTLINE.AND.RESTORE 82681 . 
-83119) (AT.END.OF.SCREEN 83121 . 83409) (AT.END.OF.TEXT 83411 . 83866) (AUTOCR? 83868 . 84342) (
-BACKSKREAD 84344 . 88929) (BACKWARD.DELETE.TO 88931 . 89113) (BREAKLINE 89115 . 91382) (BUFTAILP 91384
- . 91702) (CHECK.MARGIN 91704 . 92327) (CLEAR.LINE? 92329 . 92622) (CURRENT.WORD 92624 . 95024) (
-DELETE.TO.END 95026 . 95745) (DELETELINE 95747 . 98704) (DELETETO 98706 . 100528) (DELETETO1 100530 . 
-101873) (DO.EDIT.COMMAND 101875 . 119194) (DO.EDIT.PP 119196 . 121858) (TTDOTABS 121860 . 123230) (
-EDITCOLUMN 123232 . 123688) (EDITNUMBERP 123690 . 123921) (END.DELETE.MODE 123923 . 124440) (ENDREAD? 
-124442 . 126877) (FIND.LINE 126879 . 128415) (FIND.LINE.BREAK 128417 . 129087) (FIND.MATCHING.QUOTE 
-129089 . 129934) (FIND.NEXT.WORD 129936 . 131315) (FIND.NON.SPACE 131317 . 131590) (FIND.START.OF.WORD
- 131592 . 131955) (FORWARD.DELETE.TO 131957 . 134179) (GO.TO.ADDRESSING 134181 . 135137) (
-GO.TO.FREELINE 135139 . 135720) (GO.TO.RELATIVE 135722 . 136502) (INIT.CURSOR 136504 . 137401) (
-INSERT.NODE 137403 . 137925) (INSERTLINE 137927 . 139431) (KILL.LINES 139433 . 139971) (KILLSEGMENT 
-139973 . 141096) (L-CASECODE 141098 . 141259) (MOVE.BACK.TO 141261 . 141490) (MOVE.FORWARD.TO 141492
- . 141913) (MOVE.TO.LINE 141915 . 142830) (MOVE.TO.NEXT.LINE 142832 . 143102) (MOVE.TO.START.OF.WORD 
-143104 . 143868) (MOVE.TO.WHEREVER 143870 . 144093) (NTH.COLUMN.OF 144095 . 144426) (
-NTH.RELATIVE.COLUMN.OF 144428 . 145728) (OVERFLOW? 145730 . 146678) (OVERFLOWLINE? 146680 . 147006) (
-PREVLINE 147008 . 148188) (PREVWORD 148190 . 150331) (PROPERTAILP 150333 . 150540) (READFROMBUF 150542
- . 153131) (RENUMBER.LINES 153133 . 153526) (RESTORE.CURSOR 153528 . 153682) (RESTOREBUF 153684 . 
-155868) (RETYPE.BUFFER 155870 . 158133) (SAVE.CURSOR 158135 . 158307) (SCANBACK 158309 . 159667) (
-SCANFORWARD 159669 . 160537) (SCRATCHCONS 160539 . 161141) (SEGMENT.LENGTH 161143 . 161679) (
-SEGMENT.BIT.LENGTH 161681 . 162288) (SETLASTC 162290 . 162587) (SETTAIL? 162589 . 163405) (
-SHOW.MATCHING.PAREN 163407 . 165907) (SKIP/ZAP 165909 . 168388) (START.NEW.LINE 168390 . 168722) (
-START.OF.PARAGRAPH? 168724 . 169105) (TTADJUSTWORD 169107 . 170281) (TTBIN 170283 . 171489) (
-TTBITWIDTH 171491 . 171640) (TTCRLF 171642 . 171849) (TTCRLF.ACCOUNT 171851 . 172491) (TTDELETECHAR 
-172493 . 173637) (TTDELETELINE 173639 . 175587) (TTDELETEWORD 175589 . 176257) (TTECHO.TO.FILE 176259
- . 179818) (TTGIVEHELP 179820 . 181085) (TTGIVEHELP1 181087 . 181669) (TTGIVEHELP2 181671 . 182366) (
-TTLASTLINE 182368 . 182736) (TTLOADBUF 182738 . 186232) (TTNEXTLINE 186234 . 186554) (TTNEXTNODE 
-186556 . 186795) (TTNLEFT 186797 . 188024) (TTNTH 188026 . 188485) (TTNTHLINE 188487 . 189019) (
-TTPRIN1 189021 . 192834) (TTPRINSPACE 192836 . 193229) (TTPRIN1COMMENT 193231 . 193555) (TTPRIN2 
-193557 . 195876) (TTPROMPTCHAR 195878 . 196774) (TTRUBOUT 196776 . 197739) (TTUNREADBUF 197741 . 
-198150) (TTWAITFORINPUT 198152 . 202360) (TTYINSTRING 202362 . 203321) (TYPE.BUFFER 203323 . 205075) (
-U-CASECODE 205077 . 205236) (U/L-CASE 205238 . 207836)) (207993 217352 (TTRATOM 208003 . 208447) (
-TTREADLIST 208449 . 208816) (TTSKIPSEPR 208818 . 209192) (TTSKREAD 209194 . 213834) (TTYIN.READ 213836
- . 217350)) (217399 237443 (FIND.MATCHING.WORD 217409 . 217937) (TTCOMPLETEWORD 217939 . 232367) (
-WORD.MATCHES.BUFFER 232369 . 233929) (TTYIN.SHOW.?ALTERNATIVES 233931 . 237441)) (237477 255787 (
-DO?CMD 237487 . 243389) (TTYIN.PRINTARGS 243391 . 254249) (TTYIN.READ?=ARGS 254251 . 255032) (
-DO?CMD.ERRORHANDLER 255034 . 255785)) (255821 263894 (BEEP 255831 . 256006) (BITBLT.DELETE 256008 . 
-256655) (BITBLT.ERASE 256657 . 256842) (BITBLT.INSERT 256844 . 257155) (DO.CRLF 257157 . 257476) (
-DO.DELETE.LINES 257478 . 258522) (DO.INSERT.LINE 258524 . 260458) (DO.LF 260460 . 260626) (
-ERASE.TO.END.OF.LINE 260628 . 260953) (ERASE.TO.END.OF.PAGE 260955 . 261560) (INSERT.TEXT 261562 . 
-262066) (TTDELSECTION 262068 . 262366) (TTADJUSTWIDTH 262368 . 263232) (TTINSERTSECTION 263234 . 
-263573) (TTSETCURSOR 263575 . 263892)) (263929 268906 (TTYINBUFFERDEVICE 263939 . 265255) (
-TTYINBUFFERSTREAM 265257 . 266019) (TTYINBUFFERBIN 266021 . 266557) (TTYINBUFFERPEEK 266559 . 267037) 
-(TTYINBUFFERREADP 267039 . 267294) (TTYINBUFFEREOFP 267296 . 267548) (TTYINBUFFERBACKPTR 267550 . 
-268102) (TTYINWORDRDTBL 268104 . 268904)) (269067 294624 (DO.MOUSE 269077 . 271834) (
-DO.SHIFTED.SELECTION 271836 . 282275) (COPY.SEGMENT 282277 . 282481) (DELETE.LONG.SEGMENT 282483 . 
-282842) (DELETE.LONG.SEGMENT1 282844 . 285320) (INVERT.LONG.SEGMENT 285322 . 286351) (INVERT.SEGMENT 
-286353 . 287868) (BRACKET.CURRENT.WORD 287870 . 289404) (TTBEFOREPOS 289406 . 290136) (TTNEXTPOS 
-290138 . 290846) (TTRACKMOUSE 290848 . 294622)) (294768 300023 (SETREADFN 294778 . 295256) (
-TTYINENTRYFN 295258 . 295683) (TTYINREADP 295685 . 296149) (TTYINREAD 296151 . 297545) (TTYINFIX 
-297547 . 298746) (CHARMACRO? 298748 . 299315) (TTYINMETA 299317 . 299445) (TTYIN.LASTINPUT 299447 . 
-300021)) (300024 308293 (TTYINEDIT 300034 . 302151) (SIMPLETEXTEDIT 302153 . 305197) (
-SET.TTYINEDIT.WINDOW 305199 . 306350) (TTYIN.PPTOFILE 306352 . 308291)) (308351 308528 (
-MAKE-TTSCRATCHFILE 308361 . 308526)) (308675 309808 (TTYIN.SCRATCHFILE 308685 . 309131) (\TTYIN.RPEOF 
-309133 . 309806)) (310020 313653 (TTYINPROMPTFORWORD 310030 . 313651)))))
+  (FILEMAP (NIL (7796 207831 (TTYIN 7806 . 21039) (TTYIN.SETUP 21041 . 24117) (TTYIN.CLEANUP 24119 . 
+24947) (TTYIN1 24949 . 51833) (TTYIN1RESTART 51835 . 53099) (TTYIN.FINISH 53101 . 62518) (
+TTYIN.BALANCE 62520 . 63646) (ADDCHAR 63648 . 65834) (TTMAKECOMPLEXCHAR 65836 . 66310) (ADDNAKEDCHAR 
+66312 . 67822) (TTADDTAB 67824 . 68759) (ADJUSTLINE 68761 . 82672) (ADJUSTLINE.AND.RESTORE 82674 . 
+83112) (AT.END.OF.SCREEN 83114 . 83402) (AT.END.OF.TEXT 83404 . 83859) (AUTOCR? 83861 . 84335) (
+BACKSKREAD 84337 . 88922) (BACKWARD.DELETE.TO 88924 . 89106) (BREAKLINE 89108 . 91375) (BUFTAILP 91377
+ . 91695) (CHECK.MARGIN 91697 . 92320) (CLEAR.LINE? 92322 . 92615) (CURRENT.WORD 92617 . 95017) (
+DELETE.TO.END 95019 . 95738) (DELETELINE 95740 . 98697) (DELETETO 98699 . 100521) (DELETETO1 100523 . 
+101866) (DO.EDIT.COMMAND 101868 . 119187) (DO.EDIT.PP 119189 . 121851) (TTDOTABS 121853 . 123223) (
+EDITCOLUMN 123225 . 123681) (EDITNUMBERP 123683 . 123914) (END.DELETE.MODE 123916 . 124433) (ENDREAD? 
+124435 . 126870) (FIND.LINE 126872 . 128408) (FIND.LINE.BREAK 128410 . 129080) (FIND.MATCHING.QUOTE 
+129082 . 129927) (FIND.NEXT.WORD 129929 . 131308) (FIND.NON.SPACE 131310 . 131583) (FIND.START.OF.WORD
+ 131585 . 131948) (FORWARD.DELETE.TO 131950 . 134172) (GO.TO.ADDRESSING 134174 . 135130) (
+GO.TO.FREELINE 135132 . 135713) (GO.TO.RELATIVE 135715 . 136495) (INIT.CURSOR 136497 . 137394) (
+INSERT.NODE 137396 . 137918) (INSERTLINE 137920 . 139424) (KILL.LINES 139426 . 139964) (KILLSEGMENT 
+139966 . 141089) (L-CASECODE 141091 . 141252) (MOVE.BACK.TO 141254 . 141483) (MOVE.FORWARD.TO 141485
+ . 141906) (MOVE.TO.LINE 141908 . 142823) (MOVE.TO.NEXT.LINE 142825 . 143095) (MOVE.TO.START.OF.WORD 
+143097 . 143861) (MOVE.TO.WHEREVER 143863 . 144086) (NTH.COLUMN.OF 144088 . 144419) (
+NTH.RELATIVE.COLUMN.OF 144421 . 145721) (OVERFLOW? 145723 . 146671) (OVERFLOWLINE? 146673 . 146999) (
+PREVLINE 147001 . 148181) (PREVWORD 148183 . 150324) (PROPERTAILP 150326 . 150533) (READFROMBUF 150535
+ . 153124) (RENUMBER.LINES 153126 . 153519) (RESTORE.CURSOR 153521 . 153675) (RESTOREBUF 153677 . 
+155861) (RETYPE.BUFFER 155863 . 158126) (SAVE.CURSOR 158128 . 158300) (SCANBACK 158302 . 159660) (
+SCANFORWARD 159662 . 160530) (SCRATCHCONS 160532 . 161134) (SEGMENT.LENGTH 161136 . 161672) (
+SEGMENT.BIT.LENGTH 161674 . 162281) (SETLASTC 162283 . 162580) (SETTAIL? 162582 . 163398) (
+SHOW.MATCHING.PAREN 163400 . 165900) (SKIP/ZAP 165902 . 168381) (START.NEW.LINE 168383 . 168715) (
+START.OF.PARAGRAPH? 168717 . 169098) (TTADJUSTWORD 169100 . 170274) (TTBIN 170276 . 171482) (
+TTBITWIDTH 171484 . 171633) (TTCRLF 171635 . 171842) (TTCRLF.ACCOUNT 171844 . 172484) (TTDELETECHAR 
+172486 . 173630) (TTDELETELINE 173632 . 175580) (TTDELETEWORD 175582 . 176250) (TTECHO.TO.FILE 176252
+ . 179811) (TTGIVEHELP 179813 . 181078) (TTGIVEHELP1 181080 . 181662) (TTGIVEHELP2 181664 . 182359) (
+TTLASTLINE 182361 . 182729) (TTLOADBUF 182731 . 186225) (TTNEXTLINE 186227 . 186547) (TTNEXTNODE 
+186549 . 186788) (TTNLEFT 186790 . 188017) (TTNTH 188019 . 188478) (TTNTHLINE 188480 . 189012) (
+TTPRIN1 189014 . 192827) (TTPRINSPACE 192829 . 193222) (TTPRIN1COMMENT 193224 . 193548) (TTPRIN2 
+193550 . 195869) (TTPROMPTCHAR 195871 . 196767) (TTRUBOUT 196769 . 197732) (TTUNREADBUF 197734 . 
+198143) (TTWAITFORINPUT 198145 . 202353) (TTYINSTRING 202355 . 203314) (TYPE.BUFFER 203316 . 205068) (
+U-CASECODE 205070 . 205229) (U/L-CASE 205231 . 207829)) (207986 217345 (TTRATOM 207996 . 208440) (
+TTREADLIST 208442 . 208809) (TTSKIPSEPR 208811 . 209185) (TTSKREAD 209187 . 213827) (TTYIN.READ 213829
+ . 217343)) (217392 237436 (FIND.MATCHING.WORD 217402 . 217930) (TTCOMPLETEWORD 217932 . 232360) (
+WORD.MATCHES.BUFFER 232362 . 233922) (TTYIN.SHOW.?ALTERNATIVES 233924 . 237434)) (237470 255780 (
+DO?CMD 237480 . 243382) (TTYIN.PRINTARGS 243384 . 254242) (TTYIN.READ?=ARGS 254244 . 255025) (
+DO?CMD.ERRORHANDLER 255027 . 255778)) (255814 263887 (BEEP 255824 . 255999) (BITBLT.DELETE 256001 . 
+256648) (BITBLT.ERASE 256650 . 256835) (BITBLT.INSERT 256837 . 257148) (DO.CRLF 257150 . 257469) (
+DO.DELETE.LINES 257471 . 258515) (DO.INSERT.LINE 258517 . 260451) (DO.LF 260453 . 260619) (
+ERASE.TO.END.OF.LINE 260621 . 260946) (ERASE.TO.END.OF.PAGE 260948 . 261553) (INSERT.TEXT 261555 . 
+262059) (TTDELSECTION 262061 . 262359) (TTADJUSTWIDTH 262361 . 263225) (TTINSERTSECTION 263227 . 
+263566) (TTSETCURSOR 263568 . 263885)) (263922 268899 (TTYINBUFFERDEVICE 263932 . 265248) (
+TTYINBUFFERSTREAM 265250 . 266012) (TTYINBUFFERBIN 266014 . 266550) (TTYINBUFFERPEEK 266552 . 267030) 
+(TTYINBUFFERREADP 267032 . 267287) (TTYINBUFFEREOFP 267289 . 267541) (TTYINBUFFERBACKPTR 267543 . 
+268095) (TTYINWORDRDTBL 268097 . 268897)) (269060 294617 (DO.MOUSE 269070 . 271827) (
+DO.SHIFTED.SELECTION 271829 . 282268) (COPY.SEGMENT 282270 . 282474) (DELETE.LONG.SEGMENT 282476 . 
+282835) (DELETE.LONG.SEGMENT1 282837 . 285313) (INVERT.LONG.SEGMENT 285315 . 286344) (INVERT.SEGMENT 
+286346 . 287861) (BRACKET.CURRENT.WORD 287863 . 289397) (TTBEFOREPOS 289399 . 290129) (TTNEXTPOS 
+290131 . 290839) (TTRACKMOUSE 290841 . 294615)) (294761 300016 (SETREADFN 294771 . 295249) (
+TTYINENTRYFN 295251 . 295676) (TTYINREADP 295678 . 296142) (TTYINREAD 296144 . 297538) (TTYINFIX 
+297540 . 298739) (CHARMACRO? 298741 . 299308) (TTYINMETA 299310 . 299438) (TTYIN.LASTINPUT 299440 . 
+300014)) (300017 308286 (TTYINEDIT 300027 . 302144) (SIMPLETEXTEDIT 302146 . 305190) (
+SET.TTYINEDIT.WINDOW 305192 . 306343) (TTYIN.PPTOFILE 306345 . 308284)) (308344 308521 (
+MAKE-TTSCRATCHFILE 308354 . 308519)) (308668 309801 (TTYIN.SCRATCHFILE 308678 . 309124) (\TTYIN.RPEOF 
+309126 . 309799)) (310013 313646 (TTYINPROMPTFORWORD 310023 . 313644)))))
 STOP
diff --git a/sources/TTYIN.LCOM b/sources/TTYIN.LCOM
index f9a0a125..cd044f80 100644
Binary files a/sources/TTYIN.LCOM and b/sources/TTYIN.LCOM differ
diff --git a/sources/UFS b/sources/UFS
index 35cab715..cf379a68 100644
--- a/sources/UFS
+++ b/sources/UFS
@@ -1,10 +1,10 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED " 5-Sep-2021 08:25:20" {DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>UFS.;2 69282  
+(FILECREATED "21-Apr-2021 11:36:54" {DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>UFS.;5 69271  
 
-      changes to%:  (FNS \UFS.CREATE.DEVICE)
+      changes to%:  (FNS \UFSeol)
 
-      previous date%: "21-Apr-2021 11:36:54" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>UFS.;1)
+      previous date%: "20-Apr-2021 12:11:36" 
+{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>UFS.;4)
 
 
 (* ; "
@@ -876,23 +876,23 @@ update the map") (SETQ PAGES (RESTOREMAP STREAM))) (DELETED (* ; "the file disap
 (PUTPROPS UFS COPYRIGHT ("Venue & Xerox Corporation" 1988 1989 1990 1991 1992 1993 1994 1995 2000 2021
 ))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (8259 9812 (\UFSCreateDevice 8269 . 8634) (\UFS.CREATE.DEVICE 8636 . 9492) (
-\UFSOpenDevice 9494 . 9671) (\UFSCloseDevice 9673 . 9810)) (13973 41883 (\UFSOpenFile 13983 . 17277) (
-\UFS.OPENP 17279 . 17776) (\UFS.RECOGNIZE.FILE 17778 . 18531) (\UFS.DIRECTORY.NAME 18533 . 19276) (
-\UFSCloseFile 19278 . 20254) (\UFSGetFileName 20256 . 20455) (\UFSDeleteFile 20457 . 20997) (
-\UFSRenameFile 20999 . 22164) (\UFSReadPages 22166 . 23301) (\UFSWritePages 23303 . 24523) (
-\UFSTruncateFile 24525 . 26022) (\UFSDirectoryNameP 26024 . 27078) (\UFSEventFn 27080 . 27742) (
-\UFSGetFileInfo 27744 . 30026) (\UFS.CREATE.PROPS 30028 . 30381) (\UFSSetFileInfo 30383 . 31612) (
-\UFSGenerateFiles 31614 . 34326) (\UFS.NEXTFILEFN 34328 . 38471) (\UFS.FILEINFOFN 38473 . 39922) (
-\UFS.VALID.PROPP 39924 . 40216) (\UFS.REGISTER.GFS 40218 . 40473) (\UFS.UNREGISTER.GFS 40475 . 41058) 
-(\UFS.ABORT.DIRECTORY 41060 . 41408) (\UFS.ABORT.CL-DIRECTORY 41410 . 41697) (\UFS.CLEANUP.GFS.TABLE 
-41699 . 41881)) (41918 48602 (\UFSMakeUnixFormatName 41928 . 42949) (\UFSParseNameString 42951 . 43325
-) (\UFSParse-Directory 43327 . 43868) (\UFS.PARSE.BODY 43870 . 44415) (\UFS.ADJUST.HOST 44417 . 44576)
- (\UFS.FULLNAME 44578 . 45786) (\UFS.ADD.HOST.FIELD 45788 . 46148) (\UFS.REMOVE.HOST.FIELD 46150 . 
-47820) (\UFS.HANDLE.RELATIVEDIRECTORY 47822 . 48600)) (49418 50031 (CHDIR 49428 . 50029)) (50103 51089
- (\DEVICEFILE.EOSERROR 50113 . 51087)) (51162 52399 (\UNVISIBLE.PAGED.REVALIDATEFILELST 51172 . 52017)
- (\UNVISIBLE.FLUSH.OPEN.STREAMS 52019 . 52397)) (52432 54058 (\UFSError 52442 . 54056)) (54102 56349 (
-\UFSGetFileType 54112 . 54713) (\UFSSetFileType 54715 . 55144) (\UFSeol 55146 . 56347)) (65961 67085 (
-\UFSGetPrintFileType 65971 . 66383) (\UFSGetFileTypeConfirm 66385 . 66833) (\UFSPrintTypeMenu 66835 . 
-67083)) (67115 68863 (\UFStoOtherCopyMess 67125 . 68116) (\UFStoOtherRenameMess 68118 . 68861)))))
+  (FILEMAP (NIL (8248 9801 (\UFSCreateDevice 8258 . 8623) (\UFS.CREATE.DEVICE 8625 . 9481) (
+\UFSOpenDevice 9483 . 9660) (\UFSCloseDevice 9662 . 9799)) (13962 41872 (\UFSOpenFile 13972 . 17266) (
+\UFS.OPENP 17268 . 17765) (\UFS.RECOGNIZE.FILE 17767 . 18520) (\UFS.DIRECTORY.NAME 18522 . 19265) (
+\UFSCloseFile 19267 . 20243) (\UFSGetFileName 20245 . 20444) (\UFSDeleteFile 20446 . 20986) (
+\UFSRenameFile 20988 . 22153) (\UFSReadPages 22155 . 23290) (\UFSWritePages 23292 . 24512) (
+\UFSTruncateFile 24514 . 26011) (\UFSDirectoryNameP 26013 . 27067) (\UFSEventFn 27069 . 27731) (
+\UFSGetFileInfo 27733 . 30015) (\UFS.CREATE.PROPS 30017 . 30370) (\UFSSetFileInfo 30372 . 31601) (
+\UFSGenerateFiles 31603 . 34315) (\UFS.NEXTFILEFN 34317 . 38460) (\UFS.FILEINFOFN 38462 . 39911) (
+\UFS.VALID.PROPP 39913 . 40205) (\UFS.REGISTER.GFS 40207 . 40462) (\UFS.UNREGISTER.GFS 40464 . 41047) 
+(\UFS.ABORT.DIRECTORY 41049 . 41397) (\UFS.ABORT.CL-DIRECTORY 41399 . 41686) (\UFS.CLEANUP.GFS.TABLE 
+41688 . 41870)) (41907 48591 (\UFSMakeUnixFormatName 41917 . 42938) (\UFSParseNameString 42940 . 43314
+) (\UFSParse-Directory 43316 . 43857) (\UFS.PARSE.BODY 43859 . 44404) (\UFS.ADJUST.HOST 44406 . 44565)
+ (\UFS.FULLNAME 44567 . 45775) (\UFS.ADD.HOST.FIELD 45777 . 46137) (\UFS.REMOVE.HOST.FIELD 46139 . 
+47809) (\UFS.HANDLE.RELATIVEDIRECTORY 47811 . 48589)) (49407 50020 (CHDIR 49417 . 50018)) (50092 51078
+ (\DEVICEFILE.EOSERROR 50102 . 51076)) (51151 52388 (\UNVISIBLE.PAGED.REVALIDATEFILELST 51161 . 52006)
+ (\UNVISIBLE.FLUSH.OPEN.STREAMS 52008 . 52386)) (52421 54047 (\UFSError 52431 . 54045)) (54091 56338 (
+\UFSGetFileType 54101 . 54702) (\UFSSetFileType 54704 . 55133) (\UFSeol 55135 . 56336)) (65950 67074 (
+\UFSGetPrintFileType 65960 . 66372) (\UFSGetFileTypeConfirm 66374 . 66822) (\UFSPrintTypeMenu 66824 . 
+67072)) (67104 68852 (\UFStoOtherCopyMess 67114 . 68105) (\UFStoOtherRenameMess 68107 . 68850)))))
 STOP
diff --git a/sources/UFS.LCOM b/sources/UFS.LCOM
index 828b7669..f8a99de4 100644
Binary files a/sources/UFS.LCOM and b/sources/UFS.LCOM differ
diff --git a/sources/UNIXCOMM b/sources/UNIXCOMM
deleted file mode 100644
index 7c0d9fce..00000000
--- a/sources/UNIXCOMM
+++ /dev/null
@@ -1,457 +0,0 @@
-(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED " 5-Sep-2021 08:25:13" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>UNIXCOMM.;1 19779  
-
-      changes to%:  (FNS INITIALIZE-NEW-SHELL-DEVICE INITIALIZE-SHELL-DEVICE)
-
-      previous date%: "25-Apr-2018 07:31:56" 
-{DSK}<Users>kaplan>Local>medley3.5>git-medley>library>UNIXCOMM.;1)
-
-
-(* ; "
-Copyright (c) 1988-1990, 2018, 2021 by Venue & Xerox Corporation.
-")
-
-(PRETTYCOMPRINT UNIXCOMMCOMS)
-
-(RPAQQ UNIXCOMMCOMS
-       [
-        (* ;; "streams to UNIX processes & pseudo terminals")
-
-        
-        (* ;; "this stuff should really be implemented in terms of {SHELL} and {PTY} devices")
-
-        (COMS                                                (* ; "Forking stuff")
-              (FNS FORK-SHELL FORK-UNIX UNIX-KILL UNIX-WRITE CREATE-SHELL-STREAM 
-                   CREATE-PROCESS-STREAM UNIXCOMM-AROUNDEXITFN))
-        [COMS                                                (* ; "Operations on the shell device")
-              (FNS INITIALIZE-NEW-SHELL-DEVICE UNIX-GET-NEXT-BUFFER UNIX-BACKFILEPTR-NEW 
-                   UNIX-STREAM-EOFP-NEW UNIX-STREAM-OUT UNIX-STREAM-CLOSE)
-              (GLOBALVARS *NEW-SHELL-DEVICE*)
-              (DECLARE%: DONTEVAL@LOAD DOCOPY (P (INITIALIZE-NEW-SHELL-DEVICE))
-                     (ADDVARS (AROUNDEXITFNS UNIXCOMM-AROUNDEXITFN]
-        (COMS                                                (* ; 
-                                                    "Stuff for direct manipulation of Unix sockets")
-              (FNS CREATE-UNIX-SOCKET-STREAM ACCEPT-UNIX-SOCKET-STREAM))
-        (DECLARE%: EVAL@COMPILE DONTCOPY (MACROS UNIX-CHANNEL)
-               (P (CHECKIMPORTS '(FILEIO LLSUBRS)
-                         T)))
-        [COMS 
-              (* ;; "Obsolete stuff.  This is for pre-Medley1.2, where there wasn't support for buffered input on the shell device")
-
-              (FNS UNIX-BACKFILEPTR UNIX-READ INITIALIZE-SHELL-DEVICE UNIX-STREAM-IN UNIX-STREAM-EOFP
-                   UNIX-STREAM-PEEK)
-              (GLOBALVARS *SHELL-DEVICE*)
-              (DECLARE%: EVAL@COMPILE DONTCOPY (MACROS UNIX-PEEKEDCHAR UNIX-LASTCHAR))
-              (DECLARE%: DONTEVAL@LOAD DOCOPY (P (INITIALIZE-SHELL-DEVICE]
-        (DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA)
-                                                                             (NLAML)
-                                                                             (LAMA])
-
-
-
-(* ;; "streams to UNIX processes & pseudo terminals")
-
-
-
-
-(* ;; "this stuff should really be implemented in terms of {SHELL} and {PTY} devices")
-
-
-
-
-(* ; "Forking stuff")
-
-(DEFINEQ
-
-(FORK-SHELL
-  [LAMBDA (TERMTYPE COMMAND)                                 (* ; "Edited 14-Feb-90 14:27 by bvm")
-    (if (SUBRCALL UNIX-HANDLECOMM 8)
-        then                                             (* ; 
-                                                           "Yes, lde supports this new version")
-              [SUBRCALL UNIX-HANDLECOMM 11 (if (NULL TERMTYPE)
-                                               then ""
-                                             elseif (TYPEP TERMTYPE 'ONED-ARRAY)
-                                               then TERMTYPE
-                                             else (\DTEST (LISP-TO-UNIX-TERMTYPE TERMTYPE)
-                                                             'ONED-ARRAY))
-                     (if (NULL COMMAND)
-                         then ""
-                       else (\DTEST COMMAND 'ONED-ARRAY]
-      elseif COMMAND
-        then                                             (* ; 
-                                                           "have to use a different old call")
-              (FORK-UNIX COMMAND)
-      else (SUBRCALL UNIX-HANDLECOMM 4])
-
-(FORK-UNIX
-  [LAMBDA (STR)                                              (* ; "Edited 25-May-88 15:47 by drc:")
-    (SUBRCALL UNIX-HANDLECOMM 0 (\DTEST STR 'ONED-ARRAY])
-
-(UNIX-KILL
-  [LAMBDA (CONN)                                             (* ; "Edited 25-May-88 16:04 by drc:")
-    (if CONN
-        then (SUBRCALL UNIX-HANDLECOMM 3 CONN 0])
-
-(UNIX-WRITE
-  [LAMBDA (CONN VAL)                                         (* ; "Edited 24-Sep-90 11:27 by jds")
-
-    (* ;; "Write a byte (VAL) to the outgoing pipe connection CONN.  If the write fails for non-fatal reasons (i.e., would block), loop unitl it succeeds.  If the write returns NIL (meaning total failure), pass that along to the caller.")
-
-    (PROG (LENGTH-WRITTEN)
-      WRITE-LOOP
-          [SETQ LENGTH-WRITTEN (SUBRCALL UNIX-HANDLECOMM 1 (\DTEST CONN 'SMALLP)
-                                      (\DTEST VAL 'SMALLP]
-          (COND
-             ((AND LENGTH-WRITTEN (IEQP 0 LENGTH-WRITTEN))
-              (BLOCK)
-              (GO WRITE-LOOP)))
-          (RETURN LENGTH-WRITTEN])
-
-(CREATE-SHELL-STREAM
-  [LAMBDA (TERMTYPE COMMAND)                                 (* ; "Edited 21-May-90 15:39 by jrb:")
-    (LET ((CHAN (FORK-SHELL TERMTYPE COMMAND))
-          (SHELL-DEV (if (SUBRCALL UNIX-HANDLECOMM 8)
-                         then                            (* ; 
-                                                           "SUBRCALL tests that this is supported")
-                               *NEW-SHELL-DEVICE*
-                       else *SHELL-DEVICE*)))
-         (COND
-            (CHAN (LET ((STR (create STREAM
-                                    ACCESS _ 'BOTH
-                                    DEVICE _ SHELL-DEV)))
-                       (CL:SETF (UNIX-CHANNEL STR)
-                              CHAN)
-
-                       (* ;; "JRB - In a future release, make *SHELL-DEVICE* below SHELL-DEV, or just remove *SHELL-DEVICE* altogether.  Must also hack UNIX-STREAM-CLOSE and the aroundexitfn for Unix streams.")
-
-                       (push (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*)
-                              STR)
-                       (STREAMPROP STR 'SENDSCREENPARAMS (FUNCTION UNIX.SENDSCREENPARAMS))
-                       (STREAMPROP STR 'SETDISPLAYTYPE (FUNCTION UNIX.SETDISPLAYTYPE))
-                       STR])
-
-(CREATE-PROCESS-STREAM
-  [LAMBDA (COMM)                                             (* ; "Edited 21-May-90 15:39 by jrb:")
-    (LET* ((SHELL-DEV (if (SUBRCALL UNIX-HANDLECOMM 8)
-                          then                           (* ; 
-                                                           "SUBRCALL tests that this is supported")
-                                *NEW-SHELL-DEVICE*
-                        else *SHELL-DEVICE*))
-           (STR (create STREAM
-                       ACCESS _ 'BOTH
-                       DEVICE _ SHELL-DEV
-                       EOLCONVENTION _ LF.EOLC))
-           (CHAN (FORK-UNIX COMM)))
-          (if CHAN
-              then (CL:SETF (UNIX-CHANNEL STR)
-                              CHAN) 
-
-                    (* ;; "JRB - In a future release, make *SHELL-DEVICE* below SHELL-DEV, or just remove *SHELL-DEVICE* altogether.  Must also hack UNIX-STREAM-CLOSE and the aroundexitfn for Unix streams.")
-
-                    (push (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*)
-                           STR)
-                    STR
-            else NIL])
-
-(UNIXCOMM-AROUNDEXITFN
-  [LAMBDA (EVENT)                                            (* ; "Edited  2-Jul-90 16:35 by jrb:")
-    (CASE EVENT
-        ((AFTERLOGOUT AFTERMAKESYS AFTERSAVEVM AFTERSYSOUT) (for STREAM
-                                                               in (fetch (FDEV OPENFILELST)
-                                                                         of *SHELL-DEVICE*)
-                                                               do (CLOSEF STREAM)))
-        ((BEFORELOGOUT BEFOREMAKESYS BEFORESYSOUT) 
-
-           (* ;; 
-      "Make sure any Unix sockets get closed here, so their file system handles get closed as well")
-
-           (for STREAM in (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*)
-              when (EQ -3 (SUBRCALL UNIX-HANDLECOMM 14 (UNIX-CHANNEL STREAM)))
-              do (CLOSEF STREAM))))])
-)
-
-
-
-(* ; "Operations on the shell device")
-
-(DEFINEQ
-
-(INITIALIZE-NEW-SHELL-DEVICE
-  [LAMBDA NIL                                                (* ; "Edited 12-Feb-90 17:00 by bvm")
-    (SETQ *NEW-SHELL-DEVICE* (create FDEV
-                                    FDBINABLE _ T
-                                    NODIRECTORIES _ T
-                                    DEVICENAME _ (FUNCTION UNIX-PTY-NEW)
-                                    BIN _ (FUNCTION \BUFFERED.BIN)
-                                    BOUT _ (FUNCTION UNIX-STREAM-OUT)
-                                    PEEKBIN _ (FUNCTION \BUFFERED.PEEKBIN)
-                                    CLOSEFILE _ (FUNCTION UNIX-STREAM-CLOSE)
-                                    GETFILEINFO _ (FUNCTION NILL)
-                                    SETFILEINFO _ (FUNCTION NILL)
-                                    EOFP _ (FUNCTION UNIX-STREAM-EOFP-NEW)
-                                    BACKFILEPTR _ (FUNCTION UNIX-BACKFILEPTR-NEW)
-                                    GETNEXTBUFFER _ (FUNCTION UNIX-GET-NEXT-BUFFER)
-                                    BLOCKIN _ (FUNCTION \BUFFERED.BINS])
-
-(UNIX-GET-NEXT-BUFFER
-  [LAMBDA (STREAM WHATFOR NOERRORFLG)                        (* ; 
-                                                           "Edited 13-Jun-90 01:07 by mitani")
-    (CASE WHATFOR
-        (READ [PROG ([BUF (ffetch (STREAM CBUFPTR) of (\DTEST STREAM 'STREAM]
-                     (CONN (UNIX-CHANNEL STREAM))
-                     LEN)
-                RETRY
-                    (BLOCK)                                  (* ; 
-                           "Just so other procs get to run when someone is pounding output at Chat")
-                    (if [AND CONN (SETQ LEN (SUBRCALL UNIX-HANDLECOMM 9 (\DTEST CONN 'SMALLP)
-                                                       (OR BUF (replace (STREAM CBUFPTR)
-                                                                  of STREAM
-                                                                  with (SETQ BUF
-                                                                            (NCREATE 'VMEMPAGEP]
-                        then (if (EQ LEN T)
-                                     then                (* ; 
-                                                           " no input available, but still alive")
-                                           (if NOERRORFLG
-                                               then (RETURN NIL)
-                                             else        (* ; 
-                                                           "Called from BIN--wait and try again")
-                                                   (GO RETRY))
-                                   else (UNINTERRUPTABLY
-                                                (replace (STREAM COFFSET) of STREAM
-                                                   with 0)
-                                                (replace (STREAM CBUFSIZE) of STREAM
-                                                   with LEN))
-                                         (RETURN T))
-                      else (RETURN (AND (NOT NOERRORFLG)
-                                            (\EOF.ACTION STREAM])
-        (T (SHOULDNT)))])
-
-(UNIX-BACKFILEPTR-NEW
-  [LAMBDA (STREAM)                                           (* ; 
-                                                           "Edited 13-Jun-90 01:07 by mitani")
-    (COND
-       ((AND (fetch (STREAM CBUFPTR) of STREAM)
-             (> (fetch (STREAM COFFSET) of STREAM)
-                0))
-        (add (fetch (STREAM COFFSET) of STREAM)
-               -1))
-       (T (ERROR "Can't back up this unix Stream" STREAM])
-
-(UNIX-STREAM-EOFP-NEW
-  [LAMBDA (STREAM)                                           (* ; 
-                                                           "Edited 13-Jun-90 01:07 by mitani")
-
-(* ;;; "true if bsp STREAM is at end of file, i.e.  is at a mark")
-
-    (COND
-       ((AND (ffetch (STREAM CBUFPTR) of (\DTEST STREAM 'STREAM))
-             (< (ffetch (STREAM COFFSET) of STREAM)
-                (ffetch (STREAM CBUFSIZE) of STREAM)))
-        NIL)
-       (T (NOT (UNIX-GET-NEXT-BUFFER STREAM 'READ T])
-
-(UNIX-STREAM-OUT
-  [LAMBDA (STREAM CHAR)                                      (* ; "Edited 12-Jun-90 12:58 by jrb:")
-    (OR (UNIX-WRITE (UNIX-CHANNEL STREAM)
-               (\DTEST CHAR 'SMALLP))
-        (CL:ERROR 'XCL:STREAM-NOT-OPEN STREAM])
-
-(UNIX-STREAM-CLOSE
-  [LAMBDA (STREAM)                                           (* ; "Edited 12-Aug-88 13:24 by drc:")
-    (PROG1 (UNIX-KILL (UNIX-CHANNEL STREAM))
-        (CL:SETF (UNIX-CHANNEL STREAM)
-               NIL)
-        (CL:SETF (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*)
-               (REMOVE STREAM (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*))))])
-)
-(DECLARE%: DOEVAL@COMPILE DONTCOPY
-
-(GLOBALVARS *NEW-SHELL-DEVICE*)
-)
-(DECLARE%: DONTEVAL@LOAD DOCOPY 
-
-(INITIALIZE-NEW-SHELL-DEVICE)
-
-
-(ADDTOVAR AROUNDEXITFNS UNIXCOMM-AROUNDEXITFN)
-)
-
-
-
-(* ; "Stuff for direct manipulation of Unix sockets")
-
-(DEFINEQ
-
-(CREATE-UNIX-SOCKET-STREAM
-  [LAMBDA (PATHNAME)                                         (* ; "Edited 29-May-90 16:23 by jrb:")
-    (LET [(STR (create STREAM
-                      ACCESS _ 'BOTH
-                      DEVICE _ *NEW-SHELL-DEVICE*
-                      EOLCONVENTION _ LF.EOLC))
-          (CHAN (SUBRCALL UNIX-HANDLECOMM 12 (\DTEST PATHNAME 'ONED-ARRAY]
-         (if CHAN
-             then (CL:SETF (UNIX-CHANNEL STR)
-                             CHAN) 
-
-                   (* ;; "JRB - In a future release, make *SHELL-DEVICE* below SHELL-DEV, or just remove *SHELL-DEVICE* altogether.  Must also hack UNIX-STREAM-CLOSE and the aroundexitfn for Unix streams.")
-
-                   (push (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*)
-                          STR)
-                   STR
-           else NIL])
-
-(ACCEPT-UNIX-SOCKET-STREAM
-  [LAMBDA (SOCKSTREAM)                                       (* ; "Edited 29-May-90 16:31 by jrb:")
-    (LET ((CHAN (UNIX-CHANNEL SOCKSTREAM))
-          NEWCHAN)
-         (SELECTQ (SETQ NEWCHAN (SUBRCALL UNIX-HANDLECOMM 13 CHAN))
-             ((-1 NIL) 
-                  NEWCHAN)
-             (LET ((NEWSTREAM (create STREAM
-                                     ACCESS _ 'BOTH
-                                     DEVICE _ *NEW-SHELL-DEVICE*
-                                     EOLCONVENTION _ LF.EOLC)))
-                  (CL:SETF (UNIX-CHANNEL NEWSTREAM)
-                         NEWCHAN)
-
-                  (* ;; "JRB - In a future release, make *SHELL-DEVICE* below SHELL-DEV, or just remove *SHELL-DEVICE* altogether.  Must also hack UNIX-STREAM-CLOSE and the aroundexitfn for Unix streams.")
-
-                  (push (fetch (FDEV OPENFILELST) of *SHELL-DEVICE*)
-                         NEWSTREAM)
-                  NEWSTREAM])
-)
-(DECLARE%: EVAL@COMPILE DONTCOPY 
-(DECLARE%: EVAL@COMPILE 
-
-(PUTPROPS UNIX-CHANNEL MACRO ((STR)
-                                      (fetch (STREAM F1) of STR)))
-)
-
-
-(CHECKIMPORTS '(FILEIO LLSUBRS)
-       T)
-)
-
-
-
-(* ;; 
-"Obsolete stuff.  This is for pre-Medley1.2, where there wasn't support for buffered input on the shell device"
-)
-
-(DEFINEQ
-
-(UNIX-BACKFILEPTR
-  [LAMBDA (STREAM)                                       (* ; "Edited 14-Dec-88 09:52 by bane")
-
-    (* ;; "The trick here is to use the existing mechanisms for UNIX-PEEKCHAR")
-
-    (COND
-       ((UNIX-PEEKEDCHAR STREAM)
-        (ERROR "Can only back up one character" STREAM))
-       ((NOT (UNIX-LASTCHAR STREAM))
-        (ERROR "Can't back up past beginning of stream" STREAM))
-       (T (CL:SETF (UNIX-PEEKEDCHAR STREAM)
-                 (UNIX-LASTCHAR STREAM])
-
-(UNIX-READ
-  [LAMBDA (STREAM NO-ERROR)                              (* ; "Edited 14-Dec-88 09:18 by bane")
-    (LET* [(CONN (UNIX-CHANNEL STREAM))
-           (CH (AND CONN (SUBRCALL UNIX-HANDLECOMM 2 (\DTEST CONN 'SMALLP)
-                                0]
-          (COND
-             ((EQ CH T)
-              NIL)
-             [(EQ CH NIL)
-              (COND
-                 (NO-ERROR NIL)
-                 (T (\EOF.ACTION STREAM]
-             (T (CL:SETF (UNIX-LASTCHAR STREAM)
-                       CH])
-
-(INITIALIZE-SHELL-DEVICE
-  [LAMBDA NIL                                            (* ; "Edited 14-Dec-88 10:45 by bane")
-    (SETQ *SHELL-DEVICE* (create FDEV
-                                NODIRECTORIES _ T
-                                DEVICENAME _ 'UNIX-PTY
-                                BIN _ 'UNIX-STREAM-IN
-                                BOUT _ 'UNIX-STREAM-OUT
-                                PEEKBIN _ 'UNIX-STREAM-PEEK
-                                CLOSEFILE _ 'UNIX-STREAM-CLOSE
-                                GETFILEINFO _ 'NILL
-                                SETFILEINFO _ 'NILL
-                                EOFP _ 'UNIX-STREAM-EOFP
-                                BACKFILEPTR _ 'UNIX-BACKFILEPTR])
-
-(UNIX-STREAM-IN
-  [LAMBDA (STREAM)                                       (* ; "Edited  9-May-88 15:05 by ")
-    (LET (CH)
-         (if (SETQ CH (UNIX-PEEKEDCHAR STREAM))
-             then (CL:SETF (UNIX-PEEKEDCHAR STREAM)
-                             NIL)
-           else (while (NOT (SETQ CH (UNIX-READ STREAM))) do (BLOCK)))
-         CH])
-
-(UNIX-STREAM-EOFP
-  [LAMBDA (STREAM)                                       (* ; "Edited  2-Apr-90 11:51 by jds")
-
-    (* ;; "EOFP method for unix-shell streams.  Notices when there are chars yet to read and doesn't set EOFP.")
-
-    (AND (NOT (UNIX-PEEKEDCHAR STREAM))
-         (LET* [(CONN (UNIX-CHANNEL STREAM))
-                (CH (AND CONN (SUBRCALL UNIX-HANDLECOMM 2 (\DTEST CONN 'SMALLP)
-                                     0]
-               (COND
-                  ((EQ CH T)
-                   NIL)
-                  ((EQ CH NIL)
-                   T)
-                  (T (CL:SETF (UNIX-PEEKEDCHAR STREAM)
-                            CH)
-                     (CL:SETF (UNIX-LASTCHAR STREAM)
-                            CH)
-                     NIL])
-
-(UNIX-STREAM-PEEK
-  [LAMBDA (STREAM NO-ERROR)                              (* ; "Edited 24-Jun-88 15:07 by drc:")
-    (OR (UNIX-PEEKEDCHAR STREAM)
-        (CL:SETF (UNIX-PEEKEDCHAR STREAM)
-               (UNIX-READ STREAM NO-ERROR])
-)
-(DECLARE%: DOEVAL@COMPILE DONTCOPY
-
-(GLOBALVARS *SHELL-DEVICE*)
-)
-(DECLARE%: EVAL@COMPILE DONTCOPY 
-(DECLARE%: EVAL@COMPILE 
-
-(PUTPROPS UNIX-PEEKEDCHAR MACRO ((STR)
-                                         (FETCH (STREAM F2) OF STR)))
-
-(PUTPROPS UNIX-LASTCHAR MACRO ((STR)
-                                       (FETCH (STREAM F3) OF STR)))
-)
-)
-(DECLARE%: DONTEVAL@LOAD DOCOPY 
-
-(INITIALIZE-SHELL-DEVICE)
-)
-(DECLARE%: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS 
-
-(ADDTOVAR NLAMA )
-
-(ADDTOVAR NLAML )
-
-(ADDTOVAR LAMA )
-)
-(PUTPROPS UNIXCOMM COPYRIGHT ("Venue & Xerox Corporation" 1988 1989 1990 2018 2021))
-(DECLARE%: DONTCOPY
-  (FILEMAP (NIL (2730 8402 (FORK-SHELL 2740 . 3937) (FORK-UNIX 3939 . 4115) (UNIX-KILL 4117 . 4306) (
-UNIX-WRITE 4308 . 5019) (CREATE-SHELL-STREAM 5021 . 6337) (CREATE-PROCESS-STREAM 6339 . 7499) (
-UNIXCOMM-AROUNDEXITFN 7501 . 8400)) (8450 13438 (INITIALIZE-NEW-SHELL-DEVICE 8460 . 9553) (
-UNIX-GET-NEXT-BUFFER 9555 . 11755) (UNIX-BACKFILEPTR-NEW 11757 . 12236) (UNIX-STREAM-EOFP-NEW 12238 . 
-12784) (UNIX-STREAM-OUT 12786 . 13042) (UNIX-STREAM-CLOSE 13044 . 13436)) (13694 15559 (
-CREATE-UNIX-SOCKET-STREAM 13704 . 14565) (ACCEPT-UNIX-SOCKET-STREAM 14567 . 15557)) (15916 19095 (
-UNIX-BACKFILEPTR 15926 . 16424) (UNIX-READ 16426 . 16948) (INITIALIZE-SHELL-DEVICE 16950 . 17689) (
-UNIX-STREAM-IN 17691 . 18067) (UNIX-STREAM-EOFP 18069 . 18843) (UNIX-STREAM-PEEK 18845 . 19093)))))
-STOP
diff --git a/sources/UNIXCOMM.LCOM b/sources/UNIXCOMM.LCOM
deleted file mode 100644
index 1d6c381c..00000000
Binary files a/sources/UNIXCOMM.LCOM and /dev/null differ
diff --git a/sources/VANILLADISK b/sources/VANILLADISK
index 470ab16d..7cb24ae5 100644
--- a/sources/VANILLADISK
+++ b/sources/VANILLADISK
@@ -1,14 +1,13 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10)
-(FILECREATED " 5-Sep-2021 08:25:24" 
-|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>VANILLADISK.;2| 5318   
+(FILECREATED "17-May-90 16:13:16" |{DSK}<usr>local>lde>lispcore>sources>VANILLADISK.;2| 5292   
 
-      |changes| |to:|  (FNS \\VANILLADISKINIT)
+      |changes| |to:|  (VARS VANILLADISKCOMS)
 
-      |previous| |date:| "17-May-90 16:13:16" 
-|{DSK}<Users>kaplan>Local>medley3.5>git-medley>sources>VANILLADISK.;1|)
+      |previous| |date:| " 7-Apr-88 17:53:38" |{DSK}<usr>local>lde>lispcore>sources>VANILLADISK.;1|
+)
 
 
-; Copyright (c) 1985-1986, 1988, 1990, 2021 by Venue & Xerox Corporation.
+; Copyright (c) 1985, 1986, 1988, 1990 by Venue & Xerox Corporation.  All rights reserved.
 
 (PRETTYCOMPRINT VANILLADISKCOMS)
 
@@ -116,8 +115,8 @@
 
 (LOCALVARS . T)
 )
-(PUTPROPS VANILLADISK COPYRIGHT ("Venue & Xerox Corporation" 1985 1986 1988 1990 2021))
+(PUTPROPS VANILLADISK COPYRIGHT ("Venue & Xerox Corporation" 1985 1986 1988 1990))
 (DECLARE\: DONTCOPY
-  (FILEMAP (NIL (805 4991 (\\VANILLADISKINIT 815 . 2922) (\\VANILLAHOSTNAMEP 2924 . 4568) (
-\\VANILLAEVENTFN 4570 . 4989)))))
+  (FILEMAP (NIL (784 4970 (\\VANILLADISKINIT 794 . 2901) (\\VANILLAHOSTNAMEP 2903 . 4547) (
+\\VANILLAEVENTFN 4549 . 4968)))))
 STOP
diff --git a/sources/VANILLADISK.LCOM b/sources/VANILLADISK.LCOM
index 65466e4b..ffe95da7 100644
Binary files a/sources/VANILLADISK.LCOM and b/sources/VANILLADISK.LCOM differ
