diff --git a/sources/LLETHER b/sources/LLETHER
index cdc7d870..6bc70986 100644
--- a/sources/LLETHER
+++ b/sources/LLETHER
@@ -1,19 +1,19 @@
 (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
-(FILECREATED "19-Jan-93 10:49:30" {DSK}<python>lde>lispcore>sources>LLETHER.;2 139094 
+(FILECREATED " 3-May-2021 23:13:56" {DSK}<home>larry>ilisp>medley>sources>LLETHER.;4 139646 
 
-      changes to%:  (RECORDS SYSQUEUE QABLEITEM ETHERPACKET ETHERAUX NDB ROUTING ETHERTRANS 
-                           CENTICLOCK 3MBENCAPSULATION PBI)
+      changes to%:  (FNS \ETHEREVENTFN \ETHER-AVAILABLE)
+                    (VARS LLETHERCOMS)
 
-      previous date%: " 5-Jan-93 00:36:20" {DSK}<python>lde>lispcore>sources>LLETHER.;1)
+      previous date%: " 2-May-2021 12:37:02" {DSK}<home>larry>ilisp>medley>sources>LLETHER.;3)
 
 
 (* ; "
-Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 by Venue & Xerox Corporation.  All rights reserved.
+Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
 ")
 
 (PRETTYCOMPRINT LLETHERCOMS)
 
-(RPAQQ LLETHERCOMS 
+(RPAQQ LLETHERCOMS
        [(DECLARE%: EVAL@COMPILE DONTCOPY (FILES (SOURCE)
                                                 LLNSDECLS))
         [COMS                                                (* ; 
@@ -27,7 +27,7 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 b
                                                (MACROS \QUEUEHEAD)))
                     (INITRECORDS SYSQUEUE)
                     (SYSRECORDS SYSQUEUE)
-                    (FNS \ENQUEUE \DEQUEUE \QUEUELENGTH \ONQUEUE \UNQUEUE)
+                    (FNS CANONICAL.HOSTNAME \ENQUEUE \DEQUEUE \QUEUELENGTH \ONQUEUE \UNQUEUE)
                                                              (* ; 
                                                            "Queue management constructed by TCONC")
                     (EXPORT (MACROS \DETCONC \ENTCONC \PEEKTCONC]
@@ -58,7 +58,8 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 b
                    PRINTNSHOSTNUMBER)
               (DECLARE%: DONTEVAL@LOAD DOCOPY (P (DEFPRINT 'NSADDRESS '\NSADDRESS.DEFPRINT]
         [COMS                                                (* ; "Assorted Level 0")
-              (FNS \ETHERINIT \ETHEREVENTFN \TIME.NOT.SET \SETETHERFLAGS \FLUSHNDBS \FLUSH.NDB.QUEUE)
+              (FNS \ETHERINIT \ETHEREVENTFN \ETHER-AVAILABLE \TIME.NOT.SET \SETETHERFLAGS \FLUSHNDBS
+                   \FLUSH.NDB.QUEUE)
               (FNS \CHECKSUM \HANDLE.RAW.OTHER \HANDLE.RAW.PACKET \ADD.PACKET.FILTER 
                    \DEL.PACKET.FILTER)
               (DECLARE%: DONTCOPY (EXPORT (CONSTANTS (\NULLCHECKSUM 65535)))
@@ -190,8 +191,8 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 b
        '6)
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS \QUEUEHEAD MACRO ((Q)
-                            (fetch (SYSQUEUE SYSQUEUEHEAD) of Q)))
+(PUTPROPS \QUEUEHEAD MACRO ((Q)
+                                    (fetch (SYSQUEUE SYSQUEUEHEAD) of Q)))
 )
 
 (* "END EXPORTED DEFINITIONS")
@@ -213,6 +214,33 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 b
 )
 (DEFINEQ
 
+(CANONICAL.HOSTNAME
+  [LAMBDA (HOSTNAME)                                   (* ; "Edited  1-May-2021 19:45 by larry")
+    (LET [(DEV (CL:ASSOC HOSTNAME \DEVICENAMETODEVICE :TEST 'STRING-EQUAL]
+         (if DEV
+             then                                        (* ; "Known device, don't ask anyone")
+                   (fetch DEVICENAME of (CDR DEV))
+           elseif (NOT (SUBRCALL ETHER-AVAILABLE))
+             then HOSTNAME
+           elseif (AND \NS.READY (STRPOS ":" HOSTNAME))
+             then                                        (* ; "Assume NS")
+                   (\CANONICAL.NSHOSTNAME HOSTNAME)
+           elseif (NUMBERP HOSTNAME)
+             then                                        (* ; "Some sort of host address")
+                   (if (AND (SMALLP HOSTNAME)
+                                (< HOSTNAME 255))
+                       then                              (* ; "valid pup address")
+                             HOSTNAME
+                     elseif \IP.READY
+                       then                              (* ; "Big number may be IP host")
+                             (IPHOSTNAME HOSTNAME))
+           else (if (NOT (LITATOM HOSTNAME))
+                        then (SETQ HOSTNAME (MKATOM HOSTNAME)))
+                 (OR (CDR (FASSOC HOSTNAME \HOSTNAMES))
+                     (AND \IP.READY (\CANONICALIZE.IP.HOSTNAME HOSTNAME))
+                     (AND \PUP.READY (\CANONICALIZE.PUP.HOSTNAME HOSTNAME))
+                     HOSTNAME])
+
 (\ENQUEUE
   [LAMBDA (Q ITEM)                                       (* bvm%: "14-Feb-85 21:55")
 
@@ -333,14 +361,14 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 b
 
 (* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE 
 
-[PUTPROPS \DETCONC MACRO (OPENLAMBDA (TQ)
-                                (PROG1 (\PEEKTCONC TQ)
-                                    (if [NULL (CAR (RPLACA TQ (CDAR TQ]
-                                        then (RPLACD TQ)))]
+(PUTPROPS \DETCONC MACRO [OPENLAMBDA (TQ)
+                                   (PROG1 (\PEEKTCONC TQ)
+                                       (if [NULL (CAR (RPLACA TQ (CDAR TQ]
+                                           then (RPLACD TQ)))])
 
-(PUTPROPS \ENTCONC MACRO (= . TCONC))
+(PUTPROPS \ENTCONC MACRO (= . TCONC))
 
-(PUTPROPS \PEEKTCONC MACRO (= . CAAR))
+(PUTPROPS \PEEKTCONC MACRO (= . CAAR))
 )
 
 (* "END EXPORTED DEFINITIONS")
@@ -1471,16 +1499,16 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 b
                               HOSTNAMEP _ 'NILL])
 
 (\ETHEREVENTFN
-  [LAMBDA (DEV EVENT)                                    (* ; "Edited 15-Jan-88 01:30 by bvm")
-    (SELECTQ EVENT
-        ((NIL AFTERLOGOUT AFTERSYSOUT AFTERMAKESYS AFTERSAVEVM RESTART) 
-             (PROG (NDB TURNOFFNS TIMESET)
+  [LAMBDA (DEV EVENT)                                  (* ; "Edited  3-May-2021 23:12 by larry")
+    (PROG (NDB TURNOFFNS TIMESET)
+          (SELECTQ EVENT
+              ((NIL AFTERLOGOUT AFTERSYSOUT AFTERMAKESYS AFTERSAVEVM RESTART) 
                    (SETQ \PUP.READY (SETQ \NS.READY (SETQ \IP.READY)))
+                   (OR (\ETHER-AVAILABLE)
+                       (RETURN))
                    (\SETETHERFLAGS)
                    (\SETLOCALNSNUMBERS)
                    (\FLUSHNDBS EVENT)
-                   [SETQ \3MBLOCALNDB (COND
-                                         (\3MBFLG (SETQ \LOCALNDBS (\3MB.CREATENDB \3MBFLG]
                    (SETQ \10MBLOCALNDB (COND
                                           (\10MBFLG (SETQ NDB (\10MB.CREATENDB \10MBFLG))
                                                  (COND
@@ -1499,30 +1527,26 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 b
                        (\NSINIT EVENT)
                        (SETQ TIMESET (\NS.SETTIME]
                    (\STARTPUP EVENT)
-                   (OR TIMESET (AND (EQ \PUP.READY T)
-                                    (\PUP.SETTIME))
-                       [SELECTC \MACHINETYPE
-                           (\DANDELION (NEQ 0 (fetch DLTODVALID of \IOPAGE)))
-                           (\DAYBREAK (\DoveMisc.TODValid))
-                           (> (IDATE)
-                              (CONSTANT (IDATE " 1-JAN-88 12:00"]
-                       (\TIME.NOT.SET))
                    (COND
                       (TURNOFFNS (STOPNS)))
                    (COND
                       (\GATEWAYFLG (\INIT.GATEWAY)))
                    (for FN in RESTARTETHERFNS do (CL:FUNCALL FN EVENT))
-               T))
-        ((BEFOREMAKESYS BEFORELOGOUT BEFORESYSOUT BEFORESAVEVM) 
-             (COND
-                ((EQ EVENT 'BEFORESAVEVM)                    (* ; 
+                   T)
+              ((BEFOREMAKESYS BEFORELOGOUT BEFORESYSOUT BEFORESAVEVM) 
+                   (COND
+                      ((EQ EVENT 'BEFORESAVEVM)              (* ; 
                        "Save passwords in place outside vmem to avoid having to reenter them later")
-                 (\STASH.PASSWORDS))
-                (T                                           (* ; 
+                       (\STASH.PASSWORDS))
+                      (T                                     (* ; 
                                                            "No need to flush this before SAVEVM")
-                   (CLRHASH \ETHERPORTS)))
-             (CLRHASH LOGINPASSWORDS))
-        NIL])
+                         (CLRHASH \ETHERPORTS)))
+                   (CLRHASH LOGINPASSWORDS))
+              NIL])
+
+(\ETHER-AVAILABLE
+  [LAMBDA NIL                                          (* ; "Edited  3-May-2021 23:12 by larry")
+    (SUBRCALL ETHER-AVAILABLE])
 
 (\TIME.NOT.SET
   [LAMBDA NIL                                            (* ; "Edited 13-Jan-88 14:40 by bvm")
@@ -1532,28 +1556,15 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 b
     (printout PROMPTWINDOW T "[Time not set]"])
 
 (\SETETHERFLAGS
-  [LAMBDA NIL                                            (* ; "Edited 17-May-88 12:00 by bvm")
-    (SELECTC \MACHINETYPE
-        ((LIST \DANDELION \DAYBREAK \MAIKO) 
-             (SETQ \10MBFLG 0)
-             (SETQ \3MBFLG NIL)
-             (SETQ *MAXIMUM-PACKET-SIZE* (- (TIMES 2 BYTESPERPAGE)
-                                            (UNFOLD (INDEXF (FETCH EPBODY))
-                                                   BYTESPERWORD))))
-        (\DORADO (SETQ \3MBFLG T)
-                 (SETQ \10MBFLG NIL)
-                 (SETQ *MAXIMUM-PACKET-SIZE* (if (>= (fetch (IFPAGE BVersion) of 
-                                                                                       \InterfacePage
-                                                                )
-                                                         11776)
-                                                 then    (* ; "This field is valid")
-                                                       (fetch (IFPAGE MAXETHERBYTES) of
-                                                                                         
-                                                                                       \InterfacePage
-                                                              )
-                                               else      (* ; "Old bcpl had this much")
-                                                     590)))
-        (SHOULDNT])
+  [LAMBDA NIL                                          (* ; "Edited  2-May-2021 12:35 by larry")
+
+    (* ;; "for Medley there is no 3MB ethernet ; used to be conditional on \MACHINETYPE")
+
+    (SETQ \10MBFLG 0)
+    (SETQ \3MBFLG NIL)
+    (SETQ *MAXIMUM-PACKET-SIZE* (- (TIMES 2 BYTESPERPAGE)
+                                   (UNFOLD (INDEXF (FETCH EPBODY))
+                                          BYTESPERWORD])
 
 (\FLUSHNDBS
   [LAMBDA (EVENT)                                        (* ; "Edited 15-Jan-88 00:30 by bvm")
@@ -1774,25 +1785,27 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 b
 
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS ENCAPSULATE.ETHERPACKET MACRO ((NDB PACKET HOST LENGTH TYPE)
-                                         (SPREADAPPLY* (fetch NDBENCAPSULATOR of NDB)
-                                                NDB PACKET HOST LENGTH TYPE)))
+(PUTPROPS ENCAPSULATE.ETHERPACKET MACRO ((NDB PACKET HOST LENGTH TYPE)
+                                                 (SPREADAPPLY* (fetch NDBENCAPSULATOR
+                                                                  of NDB)
+                                                        NDB PACKET HOST LENGTH TYPE)))
 
-(PUTPROPS TRANSMIT.ETHERPACKET MACRO ((NDB PACKET)
-                                      (SPREADAPPLY* (fetch NDBTRANSMITTER of NDB)
-                                             NDB PACKET)))
+(PUTPROPS TRANSMIT.ETHERPACKET MACRO ((NDB PACKET)
+                                              (SPREADAPPLY* (fetch NDBTRANSMITTER of NDB)
+                                                     NDB PACKET)))
 
-[PUTPROPS BROADCASTP MACRO ((PACKET)
-                            ([LAMBDA (NDB)
-                               (AND NDB (APPLY* (fetch NDBBROADCASTP of NDB)
-                                               PACKET NDB]
-                             (fetch EPNETWORK of PACKET]
+(PUTPROPS BROADCASTP MACRO ((PACKET)
+                                    ([LAMBDA (NDB)
+                                       (AND NDB (APPLY* (fetch NDBBROADCASTP of NDB)
+                                                       PACKET NDB]
+                                     (fetch EPNETWORK of PACKET))))
 
-[PUTPROPS \CHECK.ROUTING.TABLE MACRO ((TABLE)
-                                      (if (NEQ (NTYPX TABLE)
-                                                   \ROUTING.TABLE.TYPENUM)
-                                          then (CL:ERROR 'CONDITIONS:SIMPLE-TYPE-ERROR :CULPRIT 
-                                                          TABLE :EXPECTED-TYPE 'RoutingTable]
+(PUTPROPS \CHECK.ROUTING.TABLE MACRO [(TABLE)
+                                              (if (NEQ (NTYPX TABLE)
+                                                           \ROUTING.TABLE.TYPENUM)
+                                                  then (CL:ERROR 'CONDITIONS:SIMPLE-TYPE-ERROR 
+                                                                  :CULPRIT TABLE :EXPECTED-TYPE
+                                                                  'RoutingTable])
 )
 
 (DECLARE%: DOEVAL@COMPILE DONTCOPY
@@ -2785,7 +2798,7 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 b
 
 (* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS \SERIALNUMBER MACRO (NIL (fetch (IFPAGE SerialNumber) of \InterfacePage)))
+(PUTPROPS \SERIALNUMBER MACRO (NIL (fetch (IFPAGE SerialNumber) of \InterfacePage)))
 )
 
 (* "END EXPORTED DEFINITIONS")
@@ -2866,9 +2879,8 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 b
                                                              T])
 )
 
-(RPAQQ ROUTINGINFOMACRO 
-       (1 "Operation = " WORDS 2 "Info: " REPEAT "(" SEPR ", " INTEGER -4 WORDS SEPR ") " -2 FINALLY
-          ")"))
+(RPAQQ ROUTINGINFOMACRO (1 "Operation = " WORDS 2 "Info: " REPEAT "(" SEPR ", " INTEGER -4 WORDS
+                               SEPR ") " -2 FINALLY ")"))
 (DECLARE%: EVAL@COMPILE DONTCOPY 
 (DECLARE%: DOEVAL@COMPILE DONTCOPY
 
@@ -2926,41 +2938,42 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1990, 1991, 1992, 1993 b
 )
 
 (* "FOLLOWING DEFINITIONS EXPORTED")
-(PUTPROPS \DEVICE.INPUT DOPVAL (1 MISC1 1))
+(PUTPROPS \DEVICE.INPUT DOPVAL (1 MISC1 1))
 
-(PUTPROPS \DEVICE.OUTPUT DOPVAL (2 MISC2 2))
+(PUTPROPS \DEVICE.OUTPUT DOPVAL (2 MISC2 2))
 
-(PUTPROPS \D0.STARTIO DOPVAL (1 MISC1 0))
+(PUTPROPS \D0.STARTIO DOPVAL (1 MISC1 0))
 
 (* "END EXPORTED DEFINITIONS")
 
 )
 (PUTPROPS LLETHER COPYRIGHT ("Venue & Xerox Corporation" 1982 1983 1984 1985 1986 1987 1988 1990 1991 
-1992 1993))
+1992 1993 2021))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (10827 17692 (\ENQUEUE 10837 . 13482) (\DEQUEUE 13484 . 14811) (\QUEUELENGTH 14813 . 
-15113) (\ONQUEUE 15115 . 15381) (\UNQUEUE 15383 . 17690)) (51359 55225 (\ALLOCATE.ETHERPACKET 51369 . 
-52410) (\RELEASE.ETHERPACKET 52412 . 53485) (RELEASE.PUP 53487 . 53632) (\FLUSH.PACKET.QUEUE 53634 . 
-53985) (\REQUEUE.ETHERPACKET 53987 . 54501) (\EP.PUT.AUX 54503 . 55223)) (55799 67180 (
-\SETLOCALNSNUMBERS 55809 . 57194) (\LOADNSADDRESS 57196 . 57488) (\STORENSADDRESS 57490 . 57671) (
-\PRINTNSADDRESS 57673 . 58756) (\NSADDRESS.DEFPRINT 58758 . 63703) (\NSADDRESS.PRINT.DECIMAL 63705 . 
-65836) (\LOADNSHOSTNUMBER 65838 . 66467) (\STORENSHOSTNUMBER 66469 . 66873) (PRINTNSHOSTNUMBER 66875
- . 67178)) (67293 74381 (\ETHERINIT 67303 . 67873) (\ETHEREVENTFN 67875 . 70869) (\TIME.NOT.SET 70871
- . 71197) (\SETETHERFLAGS 71199 . 72688) (\FLUSHNDBS 72690 . 73868) (\FLUSH.NDB.QUEUE 73870 . 74379)) 
-(74382 77674 (\CHECKSUM 74392 . 76324) (\HANDLE.RAW.OTHER 76326 . 76681) (\HANDLE.RAW.PACKET 76683 . 
-77195) (\ADD.PACKET.FILTER 77197 . 77429) (\DEL.PACKET.FILTER 77431 . 77672)) (85243 85768 (
-ENCAPSULATE.ETHERPACKET 85253 . 85525) (TRANSMIT.ETHERPACKET 85527 . 85766)) (86056 98652 (
-\AGE.ROUTING.TABLE 86066 . 88215) (\ADD.ROUTING.TABLE.ENTRY 88217 . 88913) (\CLEAR.ROUTING.TABLE 88915
- . 89642) (\MAP.ROUTING.TABLE 89644 . 90172) (PRINTROUTINGTABLE 90174 . 93799) (\ROUTINGTABLE.INFOHOOK
- 93801 . 98650)) (99137 105922 (\TRANSLATE.10TO3 99147 . 100931) (\NOTE.10TO3 100933 . 102549) (
-\HANDLE.RAW.10TO3 102551 . 105920)) (109904 124726 (PRINTPACKET 109914 . 110475) (\MAYBEPRINTPACKET 
-110477 . 112134) (PRINT10TO3 112136 . 113504) (PRINTPACKETDATA 113506 . 118796) (PRINTPACKETQUEUE 
-118798 . 119227) (TIME.SINCE.PACKET 119229 . 119714) (MAKE-NETWORK-TRACE-WINDOW 119716 . 123258) (
-\CHANGE.ETHER.TRACING 123260 . 124724)) (125097 125912 (\CENTICLOCK 125107 . 125910)) (126367 132467 (
-\3MBGETPACKET 126377 . 127797) (\3MB.CREATENDB 127799 . 128514) (\3MBSENDPACKET 128516 . 130699) (
-\3MBWATCHER 130701 . 131439) (\3MBENCAPSULATE 131441 . 131989) (\3MB.BROADCASTP 131991 . 132162) (
-\3MBFLUSH 132164 . 132465)) (135413 137356 (ASSURE.ETHER.ON 135423 . 135753) (INITPUPLEVEL1 135755 . 
-136235) (TURN.ON.ETHER 136237 . 136382) (RESTART.ETHER 136384 . 136758) (TURN.OFF.ETHER 136760 . 
-137078) (PRINTWORDS 137080 . 137354)) (137618 138153 (\DEVICE.INPUT 137628 . 137793) (\DEVICE.OUTPUT 
-137795 . 137989) (\D0.STARTIO 137991 . 138151)))))
+  (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 80a7929f..44e58fab 100644
Binary files a/sources/LLETHER.LCOM and b/sources/LLETHER.LCOM differ
diff --git a/sources/PUP b/sources/PUP
index f8e98ad1..c64000e1 100644
--- a/sources/PUP
+++ b/sources/PUP
@@ -1,139 +1,134 @@
 (DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP" BASE 8)
-(FILECREATED "19-Jan-93 11:14:09" {DSK}<python>lde>lispcore>sources>PUP.;4 352070Q
+(FILECREATED " 1-May-2021 19:49:18" {DSK}<home>larry>ilisp>medley>sources>PUP.;2 336270Q
 
-      changes to%:  (RECORDS PUP PUPADDRESS ERRORPUP PUPROUTINGINFO PUPSOCKET PORT TIMEPUPCONTENTS)
+      changes to%:  (FNS \PUP.SETTIME CANONICAL.HOSTNAME)
+                    (VARS PUPCOMS)
 
-      previous date%: " 5-Jan-93 01:53:53" {DSK}<python>lde>lispcore>sources>PUP.;3)
+      previous date%: "19-Jan-93 11:14:09" {DSK}<home>larry>ilisp>medley>sources>PUP.;1)
 
 
 (* ; "
-Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993 by Venue & Xerox Corporation.  All rights reserved.
+Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
 ")
 
 (PRETTYCOMPRINT PUPCOMS)
 
-(RPAQQ PUPCOMS ((COMS                                    (* ; "Low level pup")
-                          (DECLARE%: DONTCOPY (EXPORT (RECORDS PUP PUPADDRESS)
-                                                     (MACROS \LOCALPUPADDRESS \LOCALPUPHOSTNUMBER 
-                                                            \LOCALPUPNETNUMBER))
-                                 (GLOBALVARS \LOCALPUPNETHOST \OLDPUPHOST#))
-                          (FNS \STARTPUP ASSURE.PUP.READY \FIND.LOCALPUPHOSTNUMBER 
-                               \PROMPT.FOR.PUP.NUMBER \HANDLE.RAW.PUP \FORWARD.PUP \SETPUPCHECKSUM)
-                          (INITVARS (\PUP.CHECKSUMFLG T)
-                                 (\MAX.EPKTS.ON.PUPSOCKET 20Q)
-                                 (\LOCALPUPNETHOST)
-                                 (\OLDPUPHOST# 0)))
-                    (COMS                                    (* ; "Pup error stuff")
-                          (DECLARE%: DONTCOPY (EXPORT (RECORDS ERRORPUP)
-                                                     (CONSTANTS * PUPERRORCODES))
-                                 (GLOBALVARS PUPERRORMESSAGES))
-                          (VARS PUPERRORMESSAGES)
-                          (FNS \PUPERROR))
-                    (COMS                                    (* ; "Pup utilities")
-                          (FNS SETUPPUP SWAPPUPPORTS GETPUP SENDPUP EXCHANGEPUPS DISCARDPUPS 
-                               GETPUPWORD \PUPINIT)
-                          (FNS ETHERHOSTNAME ETHERHOSTNUMBER ETHERPORT BESTPUPADDRESS NETDAYTIME0 
-                               \PUP.SETTIME \SETNEWTIME0 \NET.SETTIME NETDATE \LOOKUPPORT 
-                               \PARSE.PORTCONSTANT \FIXLOCALNET)
-                          (FNS PORTSTRING OCTALSTRING)
-                          (INITVARS (\ETHERPORTS (HASHARRAY 24Q))
-                                 (\ETHERTIMEOUT 3720Q)
-                                 (\MAXETHERTRIES 4)
-                                 (\PUPCOUNTER 0))
-                          (GLOBALVARS \ETHERPORTS \PUPCOUNTER))
-                    (COMS                                    (* ; "Accessing a PUP's contents")
-                          (FNS CLEARPUP PUTPUPWORD GETPUPBYTE PUTPUPBYTE GETPUPSTRING GETPUPSTREAM 
-                               PUTPUPSTRING)
-                          (OPTIMIZERS GETPUPWORD PUTPUPWORD GETPUPBYTE PUTPUPBYTE))
-                    (COMS                                    (* ; 
+(RPAQQ PUPCOMS
+       ((COMS                                                (* ; "Low level pup")
+              (DECLARE%: DONTCOPY (EXPORT (RECORDS PUP PUPADDRESS)
+                                         (MACROS \LOCALPUPADDRESS \LOCALPUPHOSTNUMBER 
+                                                \LOCALPUPNETNUMBER))
+                     (GLOBALVARS \LOCALPUPNETHOST \OLDPUPHOST#))
+              (FNS \STARTPUP ASSURE.PUP.READY \FIND.LOCALPUPHOSTNUMBER \PROMPT.FOR.PUP.NUMBER 
+                   \HANDLE.RAW.PUP \FORWARD.PUP \SETPUPCHECKSUM)
+              (INITVARS (\PUP.CHECKSUMFLG T)
+                     (\MAX.EPKTS.ON.PUPSOCKET 20Q)
+                     (\LOCALPUPNETHOST)
+                     (\OLDPUPHOST# 0)))
+        (COMS                                                (* ; "Pup error stuff")
+              (DECLARE%: DONTCOPY (EXPORT (RECORDS ERRORPUP)
+                                         (CONSTANTS * PUPERRORCODES))
+                     (GLOBALVARS PUPERRORMESSAGES))
+              (VARS PUPERRORMESSAGES)
+              (FNS \PUPERROR))
+        (COMS                                                (* ; "Pup utilities")
+              (FNS SETUPPUP SWAPPUPPORTS GETPUP SENDPUP EXCHANGEPUPS DISCARDPUPS GETPUPWORD \PUPINIT)
+              (FNS ETHERHOSTNAME ETHERHOSTNUMBER ETHERPORT BESTPUPADDRESS NETDAYTIME0 \PUP.SETTIME 
+                   \SETNEWTIME0 \NET.SETTIME NETDATE \LOOKUPPORT \PARSE.PORTCONSTANT \FIXLOCALNET)
+              (FNS PORTSTRING OCTALSTRING)
+              (INITVARS (\ETHERPORTS (HASHARRAY 24Q))
+                     (\ETHERTIMEOUT 3720Q)
+                     (\MAXETHERTRIES 4)
+                     (\PUPCOUNTER 0))
+              (GLOBALVARS \ETHERPORTS \PUPCOUNTER))
+        (COMS                                                (* ; "Accessing a PUP's contents")
+              (FNS CLEARPUP PUTPUPWORD GETPUPBYTE PUTPUPBYTE GETPUPSTRING GETPUPSTREAM PUTPUPSTRING)
+              (OPTIMIZERS GETPUPWORD PUTPUPWORD GETPUPBYTE PUTPUPBYTE))
+        (COMS                                                (* ; 
                                                            "Reading property lists from streams")
-                          (FNS READPLIST)
-                          (INITVARS \READPLIST.READTABLES)
-                          (GLOBALVARS \READPLIST.READTABLES))
-                    (COMS (FNS CANONICAL.HOSTNAME \CANONICAL.HOSTNAME \CANONICALIZE.PUP.HOSTNAME)
-                          (P                                 (* ; 
+              (FNS READPLIST)
+              (INITVARS \READPLIST.READTABLES)
+              (GLOBALVARS \READPLIST.READTABLES))
+        (COMS (FNS \CANONICAL.HOSTNAME \CANONICALIZE.PUP.HOSTNAME)
+              (P                                             (* ; 
                                                            "Default this for when IP not loaded")
-                             (MOVD? 'NILL '\CANONICALIZE.IP.HOSTNAME NIL T))
-                          (ADDVARS (\HOSTNAMES)
-                                 (\SYSTEMCACHEVARS \HOSTNAMES))
-                          (GLOBALVARS \HOSTNAMES))
-                    [COMS                                    (* ; "PUP allocation")
-                          (EXPORT (MACROS BINDPUPS)
-                                 (PROP INFO BINDPUPS)
-                                 (ALISTS (PRETTYPRINTMACROS BINDPUPS]
-                    (COMS                                    (* ; "Pup routing")
-                          (FNS \PUPGATELISTENER \HANDLE.PUP.ROUTING.INFO \ROUTE.PUP \LOCATE.PUPNET 
-                               SORT.PUPHOSTS.BY.DISTANCE \PUPNET.CLOSERP PUPNET.DISTANCE)
-                          (INITVARS (\PUP.ROUTING.TABLE (CONS))
-                                 (\PUP.ROUTING.TABLE.RADIUS 2)
-                                 (\PUPROUTER.PROBECOUNT 0)
-                                 (\PUPROUTER.PROBETIMER)
-                                 (\PUPROUTER.PROBEINTERVAL 5670Q)
-                                 (\PUP.READY)
-                                 (\PUP.READY.EVENT (CREATE.EVENT "Pup Ready"))
-                                 (\PUP.READY.LOCK (CREATE.MONITORLOCK "Pup Ready")))
-                          (ADDVARS (\SYSTEMCACHEVARS \PUP.READY))
-                          (DECLARE%: DONTCOPY (RECORDS PUPROUTINGINFO)
-                                 (CONSTANTS \PUP.ROUTINGINFO.WORDS)
-                                 (GLOBALVARS \PUP.ROUTING.TABLE \PUP.ROUTING.TABLE.RADIUS 
-                                        \PUPROUTER.PROBECOUNT \PUPROUTER.PROBETIMER 
-                                        \PUPROUTER.PROBEINTERVAL \PUP.READY \PUP.READY.EVENT 
-                                        \PUP.READY.LOCK)))
-                    (COMS                                    (* ; "Sockets")
-                          (DECLARE%: DONTCOPY (RECORDS PUPSOCKET)
-                                 (MACROS \PUPSOCKET.FROM#)
-                                 (GLOBALVARS \PUPSOCKETS.TABLE \MAX.EPKTS.ON.PUPSOCKET 
-                                        \PUP.CHECKSUMFLG))
-                          (INITRECORDS PUPSOCKET)
-                          (SYSRECORDS PUPSOCKET)
-                          (FNS OPENPUPSOCKET CLOSEPUPSOCKET PUPSOCKETNUMBER PUPSOCKETFROMNUMBER 
-                               PUPSOCKETEVENT \FLUSHPUPSOCQUEUE)
-                          (FNS \GETMISCSOCKET)
-                          (GLOBALVARS \MISC.SOCKET \PUPSOCKETS)
-                          (INITVARS (\MISC.SOCKET)
-                                 (\PUPSOCKETS)))
-                    (DECLARE%: DONTCOPY (EXPORT (RECORDS PORT ERRORPUP)
-                                               (GLOBALVARS \ETHERWAIT1 \ETHERTIMEOUT \MAXETHERTRIES 
-                                                      PUPTRACEFLG LOGINPASSWORDS)
-                                               (GLOBALVARS PUPTRACEFILE PUPONLYTYPES PUPIGNORETYPES 
-                                                      PUPPRINTMACROS)
-                                               (CONSTANTS (\PUPOVLEN 26Q)
-                                                      (\MAX.PUPLENGTH 1024Q)
-                                                      (\TIME.GETPUP 5))
-                                               (PROP VARTYPE PUPPRINTMACROS)
-                                               (MACROS \GETPUPWORD \PUTPUPWORD \GETPUPBYTE 
-                                                      \PUTPUPBYTE)
-                                               (CONSTANTS * RAWPUPTYPES)
-                                               (INITVARS (PUPTYPES RAWPUPTYPES))
-                                               (CONSTANTS * WELLKNOWNPUPSOCKETS))
-                           (CONSTANTS * PUPCONSTANTS)
-                           (MACROS PUPDEBUGGING)
-                           (ALISTS (PUPPRINTMACROS 210Q 214Q 211Q 213Q 201Q 30Q))
-                           (RECORDS TIMEPUPCONTENTS))
-                    (COMS                                    (* ; "echo utilities")
-                          (FNS PUP.ECHOSERVER PUP.ECHOUSER))
-                    (COMS                                    (* ; "Peeking")
-                          (FNS \PEEKPUP \MAYBEPEEKPUP)
-                          (INITVARS (\PEEKPUPNUMBER))
-                          (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS \ETHERHOSTLOC)
-                                 (GLOBALVARS \PEEKPUPNUMBER)))
-                    (COMS                                    (* ; "Debugging assistance")
-                          (FNS PRINTPUP PRINTPUPROUTE PRINTPUPDATA PRINTERRORPUP PUPTRACE 
-                               PRINTCONSTANT)
-                          (INITVARS (PUPTRACEFLG)
-                                 (PUPTRACEFILE T)
-                                 (PUPTRACETIME))
-                          (GLOBALVARS PUPTRACETIME)
-                          (ADDVARS (PUPPRINTMACROS)
-                                 (PUPONLYTYPES)
-                                 (PUPIGNORETYPES))
-                          (ALISTS (PUPPRINTMACROS 4 220Q 221Q 223Q 224Q)))
-                    (DECLARE%: DONTEVAL@LOAD (P (\PUPINIT)))
-                    (DECLARE%: EVAL@COMPILE DONTCOPY (LOCALVARS . T)
-                           (FILES (LOADCOMP)
-                                  LLETHER))
-                    (PROP (MAKEFILE-ENVIRONMENT FILETYPE)
-                          PUP)))
+                 (MOVD? 'NILL '\CANONICALIZE.IP.HOSTNAME NIL T))
+              (ADDVARS (\HOSTNAMES)
+                     (\SYSTEMCACHEVARS \HOSTNAMES))
+              (GLOBALVARS \HOSTNAMES))
+        [COMS                                                (* ; "PUP allocation")
+              (EXPORT (MACROS BINDPUPS)
+                     (PROP INFO BINDPUPS)
+                     (ALISTS (PRETTYPRINTMACROS BINDPUPS]
+        (COMS                                                (* ; "Pup routing")
+              (FNS \PUPGATELISTENER \HANDLE.PUP.ROUTING.INFO \ROUTE.PUP \LOCATE.PUPNET 
+                   SORT.PUPHOSTS.BY.DISTANCE \PUPNET.CLOSERP PUPNET.DISTANCE)
+              (INITVARS (\PUP.ROUTING.TABLE (CONS))
+                     (\PUP.ROUTING.TABLE.RADIUS 2)
+                     (\PUPROUTER.PROBECOUNT 0)
+                     (\PUPROUTER.PROBETIMER)
+                     (\PUPROUTER.PROBEINTERVAL 5670Q)
+                     (\PUP.READY)
+                     (\PUP.READY.EVENT (CREATE.EVENT "Pup Ready"))
+                     (\PUP.READY.LOCK (CREATE.MONITORLOCK "Pup Ready")))
+              (ADDVARS (\SYSTEMCACHEVARS \PUP.READY))
+              (DECLARE%: DONTCOPY (RECORDS PUPROUTINGINFO)
+                     (CONSTANTS \PUP.ROUTINGINFO.WORDS)
+                     (GLOBALVARS \PUP.ROUTING.TABLE \PUP.ROUTING.TABLE.RADIUS \PUPROUTER.PROBECOUNT 
+                            \PUPROUTER.PROBETIMER \PUPROUTER.PROBEINTERVAL \PUP.READY 
+                            \PUP.READY.EVENT \PUP.READY.LOCK)))
+        (COMS                                                (* ; "Sockets")
+              (DECLARE%: DONTCOPY (RECORDS PUPSOCKET)
+                     (MACROS \PUPSOCKET.FROM#)
+                     (GLOBALVARS \PUPSOCKETS.TABLE \MAX.EPKTS.ON.PUPSOCKET \PUP.CHECKSUMFLG))
+              (INITRECORDS PUPSOCKET)
+              (SYSRECORDS PUPSOCKET)
+              (FNS OPENPUPSOCKET CLOSEPUPSOCKET PUPSOCKETNUMBER PUPSOCKETFROMNUMBER PUPSOCKETEVENT 
+                   \FLUSHPUPSOCQUEUE)
+              (FNS \GETMISCSOCKET)
+              (GLOBALVARS \MISC.SOCKET \PUPSOCKETS)
+              (INITVARS (\MISC.SOCKET)
+                     (\PUPSOCKETS)))
+        (DECLARE%: DONTCOPY (EXPORT (RECORDS PORT ERRORPUP)
+                                   (GLOBALVARS \ETHERWAIT1 \ETHERTIMEOUT \MAXETHERTRIES PUPTRACEFLG 
+                                          LOGINPASSWORDS)
+                                   (GLOBALVARS PUPTRACEFILE PUPONLYTYPES PUPIGNORETYPES 
+                                          PUPPRINTMACROS)
+                                   (CONSTANTS (\PUPOVLEN 26Q)
+                                          (\MAX.PUPLENGTH 1024Q)
+                                          (\TIME.GETPUP 5))
+                                   (PROP VARTYPE PUPPRINTMACROS)
+                                   (MACROS \GETPUPWORD \PUTPUPWORD \GETPUPBYTE \PUTPUPBYTE)
+                                   (CONSTANTS * RAWPUPTYPES)
+                                   (INITVARS (PUPTYPES RAWPUPTYPES))
+                                   (CONSTANTS * WELLKNOWNPUPSOCKETS))
+               (CONSTANTS * PUPCONSTANTS)
+               (MACROS PUPDEBUGGING)
+               (ALISTS (PUPPRINTMACROS 210Q 214Q 211Q 213Q 201Q 30Q))
+               (RECORDS TIMEPUPCONTENTS))
+        (COMS                                                (* ; "echo utilities")
+              (FNS PUP.ECHOSERVER PUP.ECHOUSER))
+        (COMS                                                (* ; "Peeking")
+              (FNS \PEEKPUP \MAYBEPEEKPUP)
+              (INITVARS (\PEEKPUPNUMBER))
+              (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS \ETHERHOSTLOC)
+                     (GLOBALVARS \PEEKPUPNUMBER)))
+        (COMS                                                (* ; "Debugging assistance")
+              (FNS PRINTPUP PRINTPUPROUTE PRINTPUPDATA PRINTERRORPUP PUPTRACE PRINTCONSTANT)
+              (INITVARS (PUPTRACEFLG)
+                     (PUPTRACEFILE T)
+                     (PUPTRACETIME))
+              (GLOBALVARS PUPTRACETIME)
+              (ADDVARS (PUPPRINTMACROS)
+                     (PUPONLYTYPES)
+                     (PUPIGNORETYPES))
+              (ALISTS (PUPPRINTMACROS 4 220Q 221Q 223Q 224Q)))
+        (DECLARE%: DONTEVAL@LOAD (P (\PUPINIT)))
+        (DECLARE%: EVAL@COMPILE DONTCOPY (LOCALVARS . T)
+               (FILES (LOADCOMP)
+                      LLETHER))
+        (PROP (MAKEFILE-ENVIRONMENT FILETYPE)
+              PUP)))
 
 
 
@@ -193,11 +188,11 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992,
 )
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS \LOCALPUPADDRESS MACRO (NIL \LOCALPUPNETHOST))
+(PUTPROPS \LOCALPUPADDRESS MACRO (NIL \LOCALPUPNETHOST))
 
-(PUTPROPS \LOCALPUPHOSTNUMBER MACRO (NIL (fetch PUPHOST# of \LOCALPUPNETHOST)))
+(PUTPROPS \LOCALPUPHOSTNUMBER MACRO (NIL (fetch PUPHOST# of \LOCALPUPNETHOST)))
 
-(PUTPROPS \LOCALPUPNETNUMBER MACRO (NIL (fetch PUPNET# of \LOCALPUPNETHOST)))
+(PUTPROPS \LOCALPUPNETNUMBER MACRO (NIL (fetch PUPNET# of \LOCALPUPNETHOST)))
 )
 
 (* "END EXPORTED DEFINITIONS")
@@ -485,16 +480,17 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992,
                                                    )))
 )
 
-(RPAQQ PUPERRORCODES ((\PUPE.CHECKSUM 1)
-                          (\PUPE.NOSOCKET 2)
-                          (\PUPE.SOCKETFULL 3)
-                          (\PUPE.GATEWAY.BADPUP 1001Q)
-                          (\PUPE.NOROUTE 1002Q)
-                          (\PUPE.NOHOST 1003Q)
-                          (\PUPE.LOOPED 1004Q)
-                          (\PUPE.TOOLARGE 1005Q)
-                          (\PUPE.WRONG.GATEWAY 1006Q)
-                          (\PUPE.GATEWAYFULL 1007Q)))
+(RPAQQ PUPERRORCODES
+       ((\PUPE.CHECKSUM 1)
+        (\PUPE.NOSOCKET 2)
+        (\PUPE.SOCKETFULL 3)
+        (\PUPE.GATEWAY.BADPUP 1001Q)
+        (\PUPE.NOROUTE 1002Q)
+        (\PUPE.NOHOST 1003Q)
+        (\PUPE.LOOPED 1004Q)
+        (\PUPE.TOOLARGE 1005Q)
+        (\PUPE.WRONG.GATEWAY 1006Q)
+        (\PUPE.GATEWAYFULL 1007Q)))
 (DECLARE%: EVAL@COMPILE 
 
 (RPAQQ \PUPE.CHECKSUM 1)
@@ -539,16 +535,17 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992,
 )
 )
 
-(RPAQQ PUPERRORMESSAGES ((1 "Bad Checksum")
-                             (2 "No such socket")
-                             (3 "Socket full")
-                             (1001Q "Inconsistent pup")
-                             (1002Q "No route to that host")
-                             (1003Q "Host is down")
-                             (1004Q "Too many hops")
-                             (1005Q "Pup too long")
-                             (1006Q "Wrong gateway for that host")
-                             (1007Q "Gateway IQ full")))
+(RPAQQ PUPERRORMESSAGES
+       ((1 "Bad Checksum")
+        (2 "No such socket")
+        (3 "Socket full")
+        (1001Q "Inconsistent pup")
+        (1002Q "No route to that host")
+        (1003Q "Host is down")
+        (1004Q "Too many hops")
+        (1005Q "Pup too long")
+        (1006Q "Wrong gateway for that host")
+        (1007Q "Gateway IQ full")))
 (DEFINEQ
 
 (\PUPERROR
@@ -936,41 +933,11 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992,
     (\NET.SETTIME T])
 
 (\PUP.SETTIME
-  [LAMBDA (RETFLG)                                       (* bvm%: " 1-NOV-83 17:07")
-
-(* ;;; "Sets the local time from the network, if possible, or simply returns a 32-bit unsigned alto time if RETFLG is T")
-
-    (DECLARE (GLOBALVARS \TimeZoneComp \BeginDST \EndDST))
-    (PROG ((SOC (\GETMISCSOCKET))
-           (OPUP (ALLOCATE.PUP))
-           RESULT IPUP DATA TIME)
-          (SETUPPUP OPUP 0 \PUPSOCKET.MISCSERVICES \PT.ALTOTIMEREQUEST NIL SOC T)
-          (RETURN (to \MAXETHERTRIES when (SETQ IPUP (EXCHANGEPUPS SOC OPUP NIL T))
-                     do (SELECTC (fetch PUPTYPE of IPUP)
-                                (\PT.ALTOTIMERESPONSE 
-                                     (SETQ DATA (fetch PUPCONTENTS of IPUP))
-                                     (SETQ TIME (create FIXP
-                                                       HINUM _ (fetch TIMEPUPVALUEHI of
-                                                                                         DATA)
-                                                       LONUM _ (fetch TIMEPUPVALUELO of
-                                                                                         DATA)))
-                                     (COND
-                                        (RETFLG (RETURN TIME)))
-                                     (\SETNEWTIME0 TIME)
-                                     (SETQ \TimeZoneComp (ITIMES (COND
-                                                                    ((fetch TIMEPUPEASTP
-                                                                        of DATA)
-                                                                     -1)
-                                                                    (T 1))
-                                                                (fetch TIMEPUPHOURS of DATA))
-                                      )
-                                     (SETQ \BeginDST (fetch TIMEPUPBEGINDST of DATA))
-                                     (SETQ \EndDST (fetch TIMEPUPENDDST of DATA))
-                                     (RELEASE.PUP IPUP)
-                                     (RETURN T))
-                                (\PT.ERROR (AND PUPTRACEFLG (PRINTERRORPUP IPUP PUPTRACEFILE)))
-                                NIL)
-                           (RELEASE.PUP IPUP])
+  [LAMBDA (RETFLG)                                    (* ; "Edited 13-May-88 15:22 by MASINTER")
+    (CL:UNLESS (AND RETFLG (NOT (STRINGP RETFLG)))
+        (SETQ \TimeZoneComp (SUBRCALL GETUNIXTIME 10Q NIL)))
+    (\PROCESS.RESET.TIMERS)
+    (DAYTIME])
 
 (\SETNEWTIME0
   [LAMBDA (NEWTIME)                                      (* bvm%: "26-Jul-84 15:23")
@@ -1281,30 +1248,6 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992,
 )
 (DEFINEQ
 
-(CANONICAL.HOSTNAME
-  [LAMBDA (HOSTNAME)                                     (* ; "Edited 12-Apr-88 17:43 by bvm")
-    (LET [(DEV (CL:ASSOC HOSTNAME \DEVICENAMETODEVICE :TEST 'STRING-EQUAL]
-         (if DEV
-             then                                        (* ; "Known device, don't ask anyone")
-                   (fetch DEVICENAME of (CDR DEV))
-           elseif (STRPOS ":" HOSTNAME)
-             then                                        (* ; "Assume NS")
-                   (\CANONICAL.NSHOSTNAME HOSTNAME)
-           elseif (NUMBERP HOSTNAME)
-             then                                        (* ; "Some sort of host address")
-                   (if (AND (SMALLP HOSTNAME)
-                                (< HOSTNAME 377Q))
-                       then                              (* ; "valid pup address")
-                             HOSTNAME
-                     elseif \IP.READY
-                       then                              (* ; "Big number may be IP host")
-                             (IPHOSTNAME HOSTNAME))
-           else (if (NOT (LITATOM HOSTNAME))
-                        then (SETQ HOSTNAME (MKATOM HOSTNAME)))
-                 (OR (CDR (FASSOC HOSTNAME \HOSTNAMES))
-                     (\CANONICALIZE.IP.HOSTNAME HOSTNAME)
-                     (\CANONICALIZE.PUP.HOSTNAME HOSTNAME])
-
 (\CANONICAL.HOSTNAME
   [LAMBDA (NAME)                                         (* ; "Edited 11-Mar-88 12:09 by bvm")
 
@@ -1357,25 +1300,26 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992,
 
 (* "FOLLOWING DEFINITIONS EXPORTED")(DECLARE%: EVAL@COMPILE 
 
-[PUTPROPS BINDPUPS MACRO (X (CONS (LIST 'LAMBDA (CAR X)
-                                        (CONS 'PROGN (CDR X)))
-                                  (in (CAR X) collect (LIST 'ALLOCATE.PUP]
+(PUTPROPS BINDPUPS MACRO [X (CONS (LIST 'LAMBDA (CAR X)
+                                                (CONS 'PROGN (CDR X)))
+                                          (in (CAR X) collect (LIST 'ALLOCATE.PUP])
 )
 
-(PUTPROPS BINDPUPS INFO BINDS)
+(PUTPROPS BINDPUPS INFO BINDS)
 
-(ADDTOVAR PRETTYPRINTMACROS (BINDPUPS LAMBDA
-                                  (FORM)
-                                  (PROG [(POS (IPLUS 2 (POSITION]
-                                        (PRIN1 "(")
-                                        (PRIN2 (CAR FORM))
-                                        (SPACES 1)
-                                        (PRINTDEF (CADR FORM)
-                                               (POSITION))
-                                        (OR [EQ COMMENTFLG (CAAR (SETQ FORM (CDDR FORM]
-                                            (TAB POS 0))
-                                        (PRINTDEF FORM POS T T FNSLST)
-                                        (PRIN1 ")"))))
+(ADDTOVAR PRETTYPRINTMACROS
+          (BINDPUPS LAMBDA
+            (FORM)
+            (PROG [(POS (IPLUS 2 (POSITION]
+                  (PRIN1 "(")
+                  (PRIN2 (CAR FORM))
+                  (SPACES 1)
+                  (PRINTDEF (CADR FORM)
+                         (POSITION))
+                  (OR [EQ COMMENTFLG (CAAR (SETQ FORM (CDDR FORM]
+                      (TAB POS 0))
+                  (PRINTDEF FORM POS T T FNSLST)
+                  (PRIN1 ")"))))
 
 (* "END EXPORTED DEFINITIONS")
 
@@ -1725,12 +1669,12 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992,
 
 (DECLARE%: EVAL@COMPILE 
 
-[PUTPROPS \PUPSOCKET.FROM# MACRO (OPENLAMBDA (SOCHI SOCLO)
-                                        (for SOC in \PUPSOCKETS
-                                           when (AND (EQ (fetch PSOCKETLO of SOC)
-                                                             SOCLO)
-                                                         (EQ (fetch PSOCKETHI of SOC)
-                                                             SOCHI)) do (RETURN SOC]
+(PUTPROPS \PUPSOCKET.FROM# MACRO (OPENLAMBDA (SOCHI SOCLO)
+                                           (for SOC in \PUPSOCKETS
+                                              when (AND (EQ (fetch PSOCKETLO of SOC)
+                                                                SOCLO)
+                                                            (EQ (fetch PSOCKETHI of SOC)
+                                                                SOCHI)) do (RETURN SOC))))
 )
 
 (DECLARE%: DOEVAL@COMPILE DONTCOPY
@@ -1920,61 +1864,62 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992,
        (\TIME.GETPUP 5))
 )
 
-(PUTPROPS PUPPRINTMACROS VARTYPE ALIST)
+(PUTPROPS PUPPRINTMACROS VARTYPE ALIST)
 (DECLARE%: EVAL@COMPILE 
 
-(PUTPROPS \GETPUPWORD DMACRO ((PUP WORD#)
-                              (\GETBASE (fetch PUPCONTENTS of PUP)
-                                     WORD#)))
+(PUTPROPS \GETPUPWORD DMACRO ((PUP WORD#)
+                                      (\GETBASE (fetch PUPCONTENTS of PUP)
+                                             WORD#)))
 
-(PUTPROPS \PUTPUPWORD DMACRO ((PUP WORD# VALUE)
-                              (\PUTBASE (fetch PUPCONTENTS of PUP)
-                                     WORD# VALUE)))
+(PUTPROPS \PUTPUPWORD DMACRO ((PUP WORD# VALUE)
+                                      (\PUTBASE (fetch PUPCONTENTS of PUP)
+                                             WORD# VALUE)))
 
-(PUTPROPS \GETPUPBYTE DMACRO ((PUP BYTE#)
-                              (\GETBASEBYTE (fetch PUPCONTENTS of PUP)
-                                     BYTE#)))
+(PUTPROPS \GETPUPBYTE DMACRO ((PUP BYTE#)
+                                      (\GETBASEBYTE (fetch PUPCONTENTS of PUP)
+                                             BYTE#)))
 
-(PUTPROPS \PUTPUPBYTE DMACRO ((PUP BYTE# VALUE)
-                              (\PUTBASEBYTE (fetch PUPCONTENTS of PUP)
-                                     BYTE# VALUE)))
+(PUTPROPS \PUTPUPBYTE DMACRO ((PUP BYTE# VALUE)
+                                      (\PUTBASEBYTE (fetch PUPCONTENTS of PUP)
+                                             BYTE# VALUE)))
 )
 
-(RPAQQ RAWPUPTYPES ((\PT.ECHOME 1)
-                        (\PT.IAMECHO 2)
-                        (\PT.IAMBADECHO 3)
-                        (\PT.ERROR 4)
-                        (\PT.RFC 10Q)
-                        (\PT.ABORT 11Q)
-                        (\PT.END 12Q)
-                        (\PT.ENDREPLY 13Q)
-                        (\PT.DATA 20Q)
-                        (\PT.ADATA 21Q)
-                        (\PT.ACK 22Q)
-                        (\PT.MARK 23Q)
-                        (\PT.INTERRUPT 24Q)
-                        (\PT.INTERRUPTREPLY 25Q)
-                        (\PT.AMARK 26Q)
-                        (\PT.GATEWAYREQUEST 200Q)
-                        (\PT.GATEWAYRESPONSE 201Q)
-                        (\PT.ALTOTIMEREQUEST 206Q)
-                        (\PT.ALTOTIMERESPONSE 207Q)
-                        (\PT.MSGCHECK 210Q)
-                        (\PT.NEWMAIL 211Q)
-                        (\PT.NONEWMAIL 212Q)
-                        (\PT.NOMAILBOX 213Q)
-                        (\PT.LAURELCHECK 214Q)
-                        (\PT.NAMELOOKUP 220Q)
-                        (\PT.NAMERESPONSE 221Q)
-                        (\PT.NAME/ADDRERROR 222Q)
-                        (\PT.ADDRLOOKUP 223Q)
-                        (\PT.ADDRRESPONSE 224Q)
-                        (\PT.PRINTERSTATUS 200Q)
-                        (\PT.STATUSRESPONSE 201Q)
-                        (\PT.PRINTERCAPABILITY 202Q)
-                        (\PT.CAPABILITYRESPONSE 203Q)
-                        (\PT.PRINTJOBSTATUS 204Q)
-                        (\PT.PRINTJOBRESPONSE 205Q)))
+(RPAQQ RAWPUPTYPES
+       ((\PT.ECHOME 1)
+        (\PT.IAMECHO 2)
+        (\PT.IAMBADECHO 3)
+        (\PT.ERROR 4)
+        (\PT.RFC 10Q)
+        (\PT.ABORT 11Q)
+        (\PT.END 12Q)
+        (\PT.ENDREPLY 13Q)
+        (\PT.DATA 20Q)
+        (\PT.ADATA 21Q)
+        (\PT.ACK 22Q)
+        (\PT.MARK 23Q)
+        (\PT.INTERRUPT 24Q)
+        (\PT.INTERRUPTREPLY 25Q)
+        (\PT.AMARK 26Q)
+        (\PT.GATEWAYREQUEST 200Q)
+        (\PT.GATEWAYRESPONSE 201Q)
+        (\PT.ALTOTIMEREQUEST 206Q)
+        (\PT.ALTOTIMERESPONSE 207Q)
+        (\PT.MSGCHECK 210Q)
+        (\PT.NEWMAIL 211Q)
+        (\PT.NONEWMAIL 212Q)
+        (\PT.NOMAILBOX 213Q)
+        (\PT.LAURELCHECK 214Q)
+        (\PT.NAMELOOKUP 220Q)
+        (\PT.NAMERESPONSE 221Q)
+        (\PT.NAME/ADDRERROR 222Q)
+        (\PT.ADDRLOOKUP 223Q)
+        (\PT.ADDRRESPONSE 224Q)
+        (\PT.PRINTERSTATUS 200Q)
+        (\PT.STATUSRESPONSE 201Q)
+        (\PT.PRINTERCAPABILITY 202Q)
+        (\PT.CAPABILITYRESPONSE 203Q)
+        (\PT.PRINTJOBSTATUS 204Q)
+        (\PT.PRINTJOBRESPONSE 205Q)))
 (DECLARE%: EVAL@COMPILE 
 
 (RPAQQ \PT.ECHOME 1)
@@ -2151,9 +2096,9 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992,
 
 (DECLARE%: EVAL@COMPILE 
 
-[PUTPROPS PUPDEBUGGING MACRO ((X . Y)
-                              (COND
-                                 (PUPTRACEFLG (printout PUPTRACEFILE X . Y]
+(PUTPROPS PUPDEBUGGING MACRO [(X . Y)
+                                      (COND
+                                         (PUPTRACEFLG (printout PUPTRACEFILE X . Y])
 )
 
 
@@ -2521,36 +2466,35 @@ Copyright (c) 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992,
        LLETHER)
 )
 
-(PUTPROPS PUP MAKEFILE-ENVIRONMENT (:READTABLE "INTERLISP" :PACKAGE "INTERLISP" :BASE 10Q))
+(PUTPROPS PUP MAKEFILE-ENVIRONMENT (:READTABLE "INTERLISP" :PACKAGE "INTERLISP" :BASE 10Q))
 
-(PUTPROPS PUP FILETYPE CL:COMPILE-FILE)
+(PUTPROPS PUP FILETYPE CL:COMPILE-FILE)
 (PUTPROPS PUP COPYRIGHT ("Venue & Xerox Corporation" 3676Q 3677Q 3700Q 3701Q 3702Q 3703Q 3704Q 3705Q 
-3706Q 3707Q 3710Q 3711Q))
+3706Q 3707Q 3710Q 3711Q 3745Q))
 (DECLARE%: DONTCOPY
-  (FILEMAP (NIL (30620Q 64575Q (\STARTPUP 30632Q . 31504Q) (ASSURE.PUP.READY 31506Q . 37601Q) (
-\FIND.LOCALPUPHOSTNUMBER 37603Q . 42001Q) (\PROMPT.FOR.PUP.NUMBER 42003Q . 44023Q) (\HANDLE.RAW.PUP 
-44025Q . 62125Q) (\FORWARD.PUP 62127Q . 63047Q) (\SETPUPCHECKSUM 63051Q . 64573Q)) (72106Q 77200Q (
-\PUPERROR 72120Q . 77176Q)) (77237Q 116373Q (SETUPPUP 77251Q . 102437Q) (SWAPPUPPORTS 102441Q . 
-103256Q) (GETPUP 103260Q . 106172Q) (SENDPUP 106174Q . 112016Q) (EXCHANGEPUPS 112020Q . 114056Q) (
-DISCARDPUPS 114060Q . 114664Q) (GETPUPWORD 114666Q . 115205Q) (\PUPINIT 115207Q . 116371Q)) (116374Q 
-164121Q (ETHERHOSTNAME 116406Q . 125534Q) (ETHERHOSTNUMBER 125536Q . 126151Q) (ETHERPORT 126153Q . 
-131672Q) (BESTPUPADDRESS 131674Q . 141734Q) (NETDAYTIME0 141736Q . 142267Q) (\PUP.SETTIME 142271Q . 
-147063Q) (\SETNEWTIME0 147065Q . 150145Q) (\NET.SETTIME 150147Q . 151236Q) (NETDATE 151240Q . 151575Q)
- (\LOOKUPPORT 151577Q . 157436Q) (\PARSE.PORTCONSTANT 157440Q . 162550Q) (\FIXLOCALNET 162552Q . 
-164117Q)) (164122Q 165457Q (PORTSTRING 164134Q . 165123Q) (OCTALSTRING 165125Q . 165455Q)) (166051Q 
-175162Q (CLEARPUP 166063Q . 170576Q) (PUTPUPWORD 170600Q . 171125Q) (GETPUPBYTE 171127Q . 171452Q) (
-PUTPUPBYTE 171454Q . 172005Q) (GETPUPSTRING 172007Q . 173440Q) (GETPUPSTREAM 173442Q . 174371Q) (
-PUTPUPSTRING 174373Q . 175160Q)) (177265Q 205104Q (READPLIST 177277Q . 205102Q)) (205265Q 213311Q (
-CANONICAL.HOSTNAME 205277Q . 210121Q) (\CANONICAL.HOSTNAME 210123Q . 211170Q) (
-\CANONICALIZE.PUP.HOSTNAME 211172Q . 213307Q)) (216177Q 251404Q (\PUPGATELISTENER 216211Q . 222042Q) (
-\HANDLE.PUP.ROUTING.INFO 222044Q . 234403Q) (\ROUTE.PUP 234405Q . 240240Q) (\LOCATE.PUPNET 240242Q . 
-244777Q) (SORT.PUPHOSTS.BY.DISTANCE 245001Q . 247255Q) (\PUPNET.CLOSERP 247257Q . 250440Q) (
-PUPNET.DISTANCE 250442Q . 251402Q)) (263001Q 272753Q (OPENPUPSOCKET 263013Q . 267474Q) (CLOSEPUPSOCKET
- 267476Q . 271155Q) (PUPSOCKETNUMBER 271157Q . 271410Q) (PUPSOCKETFROMNUMBER 271412Q . 272051Q) (
-PUPSOCKETEVENT 272053Q . 272332Q) (\FLUSHPUPSOCQUEUE 272334Q . 272751Q)) (272754Q 273521Q (
-\GETMISCSOCKET 272766Q . 273517Q)) (314367Q 327157Q (PUP.ECHOSERVER 314401Q . 317206Q) (PUP.ECHOUSER 
-317210Q . 327155Q)) (327210Q 336341Q (\PEEKPUP 327222Q . 334353Q) (\MAYBEPEEKPUP 334355Q . 336337Q)) (
-336742Q 350177Q (PRINTPUP 336754Q . 343124Q) (PRINTPUPROUTE 343126Q . 345073Q) (PRINTPUPDATA 345075Q
- . 345545Q) (PRINTERRORPUP 345547Q . 346247Q) (PUPTRACE 346251Q . 346562Q) (PRINTCONSTANT 346564Q . 
-350175Q)))))
+  (FILEMAP (NIL (25631Q 61606Q (\STARTPUP 25643Q . 26515Q) (ASSURE.PUP.READY 26517Q . 34612Q) (
+\FIND.LOCALPUPHOSTNUMBER 34614Q . 37012Q) (\PROMPT.FOR.PUP.NUMBER 37014Q . 41034Q) (\HANDLE.RAW.PUP 
+41036Q . 57136Q) (\FORWARD.PUP 57140Q . 60060Q) (\SETPUPCHECKSUM 60062Q . 61604Q)) (66376Q 73470Q (
+\PUPERROR 66410Q . 73466Q)) (73527Q 112663Q (SETUPPUP 73541Q . 76727Q) (SWAPPUPPORTS 76731Q . 77546Q) 
+(GETPUP 77550Q . 102462Q) (SENDPUP 102464Q . 106306Q) (EXCHANGEPUPS 106310Q . 110346Q) (DISCARDPUPS 
+110350Q . 111154Q) (GETPUPWORD 111156Q . 111475Q) (\PUPINIT 111477Q . 112661Q)) (112664Q 154244Q (
+ETHERHOSTNAME 112676Q . 122024Q) (ETHERHOSTNUMBER 122026Q . 122441Q) (ETHERPORT 122443Q . 126162Q) (
+BESTPUPADDRESS 126164Q . 136224Q) (NETDAYTIME0 136226Q . 136557Q) (\PUP.SETTIME 136561Q . 137206Q) (
+\SETNEWTIME0 137210Q . 140270Q) (\NET.SETTIME 140272Q . 141361Q) (NETDATE 141363Q . 141720Q) (
+\LOOKUPPORT 141722Q . 147561Q) (\PARSE.PORTCONSTANT 147563Q . 152673Q) (\FIXLOCALNET 152675Q . 154242Q
+)) (154245Q 155602Q (PORTSTRING 154257Q . 155246Q) (OCTALSTRING 155250Q . 155600Q)) (156174Q 165305Q (
+CLEARPUP 156206Q . 160721Q) (PUTPUPWORD 160723Q . 161250Q) (GETPUPBYTE 161252Q . 161575Q) (PUTPUPBYTE 
+161577Q . 162130Q) (GETPUPSTRING 162132Q . 163563Q) (GETPUPSTREAM 163565Q . 164514Q) (PUTPUPSTRING 
+164516Q . 165303Q)) (167410Q 175227Q (READPLIST 167422Q . 175225Q)) (175410Q 200610Q (
+\CANONICAL.HOSTNAME 175422Q . 176467Q) (\CANONICALIZE.PUP.HOSTNAME 176471Q . 200606Q)) (203163Q 
+236370Q (\PUPGATELISTENER 203175Q . 207026Q) (\HANDLE.PUP.ROUTING.INFO 207030Q . 221367Q) (\ROUTE.PUP 
+221371Q . 225224Q) (\LOCATE.PUPNET 225226Q . 231763Q) (SORT.PUPHOSTS.BY.DISTANCE 231765Q . 234241Q) (
+\PUPNET.CLOSERP 234243Q . 235424Q) (PUPNET.DISTANCE 235426Q . 236366Q)) (250017Q 257771Q (
+OPENPUPSOCKET 250031Q . 254512Q) (CLOSEPUPSOCKET 254514Q . 256173Q) (PUPSOCKETNUMBER 256175Q . 256426Q
+) (PUPSOCKETFROMNUMBER 256430Q . 257067Q) (PUPSOCKETEVENT 257071Q . 257350Q) (\FLUSHPUPSOCQUEUE 
+257352Q . 257767Q)) (257772Q 260537Q (\GETMISCSOCKET 260004Q . 260535Q)) (300551Q 313341Q (
+PUP.ECHOSERVER 300563Q . 303370Q) (PUP.ECHOUSER 303372Q . 313337Q)) (313372Q 322523Q (\PEEKPUP 313404Q
+ . 320535Q) (\MAYBEPEEKPUP 320537Q . 322521Q)) (323124Q 334361Q (PRINTPUP 323136Q . 327306Q) (
+PRINTPUPROUTE 327310Q . 331255Q) (PRINTPUPDATA 331257Q . 331727Q) (PRINTERRORPUP 331731Q . 332431Q) (
+PUPTRACE 332433Q . 332744Q) (PRINTCONSTANT 332746Q . 334357Q)))))
 STOP
diff --git a/sources/PUP.LCOM b/sources/PUP.LCOM
index e70f75be..82a81790 100644
Binary files a/sources/PUP.LCOM and b/sources/PUP.LCOM differ
