diff --git a/sources/DOVEDECLS b/sources/DOVEDECLS
new file mode 100755
index 00000000..442721cf
--- /dev/null
+++ b/sources/DOVEDECLS
@@ -0,0 +1,397 @@
+(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP")
+(FILECREATED "16-May-90 15:55:59" {DSK}<usr>local>lde>lispcore>sources>DOVEDECLS.;2 15966  
+
+      changes to%:  (VARS DOVEDECLSCOMS)
+
+      previous date%: "31-Mar-86 11:10:09" {DSK}<usr>local>lde>lispcore>sources>DOVEDECLS.;1)
+
+
+(* ; "
+Copyright (c) 1985, 1986, 1990 by Venue & Xerox Corporation.  All rights reserved.
+")
+
+(PRETTYCOMPRINT DOVEDECLSCOMS)
+
+(RPAQQ DOVEDECLSCOMS
+       ((DECLARE%: DONTCOPY (FILES MESATYPES))
+        (MACROS \Dove.ClearQueueBlock \DoveIO.ByteSwap \DoveIO.IORegionOffset \DoveIO.LockMem 
+               \DoveIO.NotifyIOP \DoveIO.SetMaintPanel \DoveFCBAt)
+        (CONSTANTS \DoveIO.ADD \DoveIO.AND \DoveIO.OR \DoveIO.OVERWRITEIFNIL \DoveIO.XCHG 
+               \#WDS.OpieAddress)
+        (CONSTANTS \DoveIO.ByteFALSE \DoveIO.ByteTRUE)
+        (CONSTANTS * DoveIO.IORegionConstants)
+        (CONSTANTS * DoveIO.HandlerIDs)
+        (RECORDS Dove.OpieAddress DoveIO.ClientCondition DoveIO.TaskContextBlock DoveIO.SegmentRec 
+               DoveIO.IORTable Dove.QueueBlock)
+        (PROP ARGNAMES \DoveFCBAt)
+        (COMS (CONSTANTS * DOVEIOREGIONOFFSETS)
+              (CONSTANTS * DOVEOPIEADDRESSTYPES)
+              (VARS \Dove.FCBSizes \DoveIO.PromVersion))
+        (GLOBALVARS \DoveBeep.FCBPointer \DoveProcessor.FCBPointer \DoveKyMo.FCBPointer 
+               \DoveMP.FCBPointer \DoveDisk.FCBPointer \DoveDisplay.FCBPointer \DoveEther.FCBPointer
+               \DoveFloppy.FCBPointer)
+        (TEMPLATES \DoveIO.LockMem)))
+(DECLARE%: DONTCOPY 
+
+(FILESLOAD MESATYPES)
+)
+(DECLARE%: EVAL@COMPILE 
+
+(PROGN (DEFMACRO \Dove.ClearQueueBlock (BASE)
+          `(\CLEARWORDS %, BASE (MESASIZE Dove.QueueBlock)))
+       NIL)
+
+(PUTPROPS \DoveIO.ByteSwap DMACRO [ARGS (LET ((X (CAR ARGS)))
+                                                     `((OPCODES DOVEMISC 4)
+                                                       %, X])
+
+(PROGN (DEFMACRO \DoveIO.IORegionOffset (X)
+          `(IDIFFERENCE (\LOLOC %, X)
+                  (\LOLOC \DoveIORegion)))
+       NIL)
+
+(PUTPROPS \DoveIO.LockMem DMACRO [ARGS (LET ((MASK (CAR ARGS))
+                                                     (VALUE (CADR ARGS))
+                                                     (ADDR (CADDR ARGS))
+                                                     (OP (CADDDR ARGS)))
+                                                    `((OPCODES DOVEMISC 5)
+                                                      %, OP %, ADDR %, VALUE %, MASK])
+
+(PUTPROPS \DoveIO.NotifyIOP DMACRO [ARGS (LET ((MASK (CAR ARGS)))
+                                                      `((OPCODES DOVEMISC 6)
+                                                        %, MASK])
+
+(PUTPROPS \DoveIO.SetMaintPanel DMACRO [ARGS (LET ((CODE (CAR ARGS)))
+                                                          `((OPCODES DOVEMISC 2)
+                                                            %,
+                                                            (\DTEST CODE 'SMALLP])
+
+(PUTPROPS \DoveFCBAt DMACRO (DEFMACRO (X) (SELECTQ \DoveIO.PromVersion
+                                                      (OLD `(\ADDBASE \DoveIORegion %, X))
+                                                      (NEW (ERROR "Don't use \DoveFCBAt anymore!"))
+                                                      'IGNOREMACRO)))
+)
+(DECLARE%: EVAL@COMPILE 
+
+(RPAQQ \DoveIO.ADD 0)
+
+(RPAQQ \DoveIO.AND 1)
+
+(RPAQQ \DoveIO.OR 2)
+
+(RPAQQ \DoveIO.OVERWRITEIFNIL 4)
+
+(RPAQQ \DoveIO.XCHG 3)
+
+(RPAQQ \#WDS.OpieAddress 2)
+
+
+(CONSTANTS \DoveIO.ADD \DoveIO.AND \DoveIO.OR \DoveIO.OVERWRITEIFNIL \DoveIO.XCHG \#WDS.OpieAddress)
+)
+(DECLARE%: EVAL@COMPILE 
+
+(RPAQQ \DoveIO.ByteFALSE 0)
+
+(RPAQQ \DoveIO.ByteTRUE 255)
+
+
+(CONSTANTS \DoveIO.ByteFALSE \DoveIO.ByteTRUE)
+)
+
+(RPAQQ DoveIO.IORegionConstants ((DoveIO.SegmentGranularity 8)
+                                     (DoveIO.ioRegionByteOffset 16384)
+                                     (DoveIO.iorSegmentBase (FOLDLO DoveIO.ioRegionByteOffset 16))))
+(DECLARE%: EVAL@COMPILE 
+
+(RPAQQ DoveIO.SegmentGranularity 8)
+
+(RPAQQ DoveIO.ioRegionByteOffset 16384)
+
+(RPAQ DoveIO.iorSegmentBase (FOLDLO DoveIO.ioRegionByteOffset 16))
+
+
+(CONSTANTS (DoveIO.SegmentGranularity 8)
+       (DoveIO.ioRegionByteOffset 16384)
+       (DoveIO.iorSegmentBase (FOLDLO DoveIO.ioRegionByteOffset 16)))
+)
+
+(RPAQQ DoveIO.HandlerIDs
+       ((DoveIO.beepHandler 1)
+        (DoveIO.diskHandler (ADD1 DoveIO.beepHandler))
+        (DoveIO.displayHandler (ADD1 DoveIO.diskHandler))
+        (DoveIO.ethernetHandler (ADD1 DoveIO.displayHandler))
+        (DoveIO.floppyHandler (ADD1 DoveIO.ethernetHandler))
+        (DoveIO.kymoHandler (ADD1 DoveIO.floppyHandler))
+        (DoveIO.mpHandler (ADD1 DoveIO.kymoHandler))
+        (DoveIO.lispHandler 16)
+        (DoveIO.ttyHandler (ADD1 DoveIO.lispHandler))
+        (DoveIO.rs232Handler (ADD1 DoveIO.ttyHandler))
+        (DoveIO.confHandler (ADD1 DoveIO.rs232Handler))
+        (DoveIO.pceDispatchHandler (ADD1 DoveIO.confHandler))
+        (DoveIO.pceDisplayHandler (ADD1 DoveIO.pceDispatchHandler))
+        (DoveIO.pceKeyHandler (ADD1 DoveIO.pceDisplayHandler))
+        (DoveIO.pceMouseHandler (ADD1 DoveIO.pceKeyHandler))
+        (DoveIO.pcePrinterHandler (ADD1 DoveIO.pceMouseHandler))
+        (DoveIO.pceFloppyHandler (ADD1 DoveIO.pcePrinterHandler))
+        (DoveIO.pceHardDiskHandler (ADD1 DoveIO.pceFloppyHandler))
+        (DoveIO.pceDMAHandler (ADD1 DoveIO.pceHardDiskHandler))
+        (DoveIO.pceTimer (ADD1 DoveIO.pceDMAHandler))))
+(DECLARE%: EVAL@COMPILE 
+
+(RPAQQ DoveIO.beepHandler 1)
+
+(RPAQ DoveIO.diskHandler (ADD1 DoveIO.beepHandler))
+
+(RPAQ DoveIO.displayHandler (ADD1 DoveIO.diskHandler))
+
+(RPAQ DoveIO.ethernetHandler (ADD1 DoveIO.displayHandler))
+
+(RPAQ DoveIO.floppyHandler (ADD1 DoveIO.ethernetHandler))
+
+(RPAQ DoveIO.kymoHandler (ADD1 DoveIO.floppyHandler))
+
+(RPAQ DoveIO.mpHandler (ADD1 DoveIO.kymoHandler))
+
+(RPAQQ DoveIO.lispHandler 16)
+
+(RPAQ DoveIO.ttyHandler (ADD1 DoveIO.lispHandler))
+
+(RPAQ DoveIO.rs232Handler (ADD1 DoveIO.ttyHandler))
+
+(RPAQ DoveIO.confHandler (ADD1 DoveIO.rs232Handler))
+
+(RPAQ DoveIO.pceDispatchHandler (ADD1 DoveIO.confHandler))
+
+(RPAQ DoveIO.pceDisplayHandler (ADD1 DoveIO.pceDispatchHandler))
+
+(RPAQ DoveIO.pceKeyHandler (ADD1 DoveIO.pceDisplayHandler))
+
+(RPAQ DoveIO.pceMouseHandler (ADD1 DoveIO.pceKeyHandler))
+
+(RPAQ DoveIO.pcePrinterHandler (ADD1 DoveIO.pceMouseHandler))
+
+(RPAQ DoveIO.pceFloppyHandler (ADD1 DoveIO.pcePrinterHandler))
+
+(RPAQ DoveIO.pceHardDiskHandler (ADD1 DoveIO.pceFloppyHandler))
+
+(RPAQ DoveIO.pceDMAHandler (ADD1 DoveIO.pceHardDiskHandler))
+
+(RPAQ DoveIO.pceTimer (ADD1 DoveIO.pceDMAHandler))
+
+
+(CONSTANTS (DoveIO.beepHandler 1)
+       (DoveIO.diskHandler (ADD1 DoveIO.beepHandler))
+       (DoveIO.displayHandler (ADD1 DoveIO.diskHandler))
+       (DoveIO.ethernetHandler (ADD1 DoveIO.displayHandler))
+       (DoveIO.floppyHandler (ADD1 DoveIO.ethernetHandler))
+       (DoveIO.kymoHandler (ADD1 DoveIO.floppyHandler))
+       (DoveIO.mpHandler (ADD1 DoveIO.kymoHandler))
+       (DoveIO.lispHandler 16)
+       (DoveIO.ttyHandler (ADD1 DoveIO.lispHandler))
+       (DoveIO.rs232Handler (ADD1 DoveIO.ttyHandler))
+       (DoveIO.confHandler (ADD1 DoveIO.rs232Handler))
+       (DoveIO.pceDispatchHandler (ADD1 DoveIO.confHandler))
+       (DoveIO.pceDisplayHandler (ADD1 DoveIO.pceDispatchHandler))
+       (DoveIO.pceKeyHandler (ADD1 DoveIO.pceDisplayHandler))
+       (DoveIO.pceMouseHandler (ADD1 DoveIO.pceKeyHandler))
+       (DoveIO.pcePrinterHandler (ADD1 DoveIO.pceMouseHandler))
+       (DoveIO.pceFloppyHandler (ADD1 DoveIO.pcePrinterHandler))
+       (DoveIO.pceHardDiskHandler (ADD1 DoveIO.pceFloppyHandler))
+       (DoveIO.pceDMAHandler (ADD1 DoveIO.pceHardDiskHandler))
+       (DoveIO.pceTimer (ADD1 DoveIO.pceDMAHandler)))
+)
+(DECLARE%: EVAL@COMPILE
+
+(MESARECORD Dove.OpieAddress ((LoPart.BS WORD)
+                                  (HiPart BYTE)
+                                  (AddrType BYTE))
+                                 [ACCESSFNS ((LispPointer (\DoveIO.PointerFromOpieAddress DATUM)
+                                                    (\DoveIO.MakeOpieAddress DATUM NEWVALUE])
+
+(MESATYPE DoveIO.ClientCondition (3 WORD))
+
+(MESARECORD DoveIO.TaskContextBlock ((taskQueue 2 WORD)
+                                         (taskCondition WORD)
+                                         (taskICPtr WORD)
+                                         (taskSP WORD)
+                                         (returnSPSS 2 WORD)
+                                         (prevState BITS 4)
+                                         (presentState BITS 4)
+                                         (taskHandlerID BYTE)
+                                         (timerValue WORD)))
+
+(MESARECORD DoveIO.SegmentRec ((ioRegionSegment WORD)
+                                   (stackSegment WORD)))
+
+(MESARECORD DoveIO.IORTable ((mesaHasLock BITS 16)
+                                 (iopRequestsLock BITS 16)
+                                 (segments DoveIO.SegmentRec)))
+
+(MESARECORD Dove.QueueBlock ((QueueHead Dove.OpieAddress)
+                                 (QueueTail Dove.OpieAddress)
+                                 (QueueNext Dove.OpieAddress))
+                                [ACCESSFNS ((LispQueueHead (\DoveIO.PointerFromOpieAddress
+                                                            (fetch (Dove.QueueBlock QueueHead)
+                                                               of DATUM))
+                                                   (\DoveIO.MakeOpieAddress (fetch (
+                                                                                      Dove.QueueBlock
+                                                                                        QueueHead)
+                                                                               of DATUM)
+                                                          NEWVALUE))
+                                            (LispQueueTail (\DoveIO.PointerFromOpieAddress
+                                                            (fetch (Dove.QueueBlock QueueTail)
+                                                               of DATUM))
+                                                   (\DoveIO.MakeOpieAddress (fetch (
+                                                                                      Dove.QueueBlock
+                                                                                        QueueTail)
+                                                                               of DATUM)
+                                                          NEWVALUE))
+                                            (LispQueueNext (\DoveIO.PointerFromOpieAddress
+                                                            (fetch (Dove.QueueBlock QueueNext)
+                                                               of DATUM))
+                                                   (\DoveIO.MakeOpieAddress (fetch (
+                                                                                      Dove.QueueBlock
+                                                                                        QueueNext)
+                                                                               of DATUM)
+                                                          NEWVALUE])
+)
+
+(PUTPROPS \DoveFCBAt ARGNAMES (OFFSET))
+
+(RPAQQ DOVEIOREGIONOFFSETS
+       ((\Dove.VmemPageRunTableOffset 16128)
+        (\Dove.MesaClientFCBOffset 4474)
+        (\Dove.RemoteMemoryFCBOffset 3911)
+        (\Dove.UnservicedFCBOffset 3815)
+        (\Dove.WorkNotifierFCBOffset 3719)
+        (\Dove.BindweedFCBOffset 3623)
+        (\Dove.BootStrapFCBOffset 3527)
+        (\Dove.WatchDogFCBOffset 3431)
+        (\Dove.TestClientFCBOffset 2816)
+        (\Dove.TimerFCBOffset 870)
+        (\Dove.UmbilicalFCBOffset 478)
+        (\Dove.ParityFCBOffset 382)
+        (\Dove.OpieFCBOffset 30)
+        (\Dove.BermudaFCBOffset 26)))
+(DECLARE%: EVAL@COMPILE 
+
+(RPAQQ \Dove.VmemPageRunTableOffset 16128)
+
+(RPAQQ \Dove.MesaClientFCBOffset 4474)
+
+(RPAQQ \Dove.RemoteMemoryFCBOffset 3911)
+
+(RPAQQ \Dove.UnservicedFCBOffset 3815)
+
+(RPAQQ \Dove.WorkNotifierFCBOffset 3719)
+
+(RPAQQ \Dove.BindweedFCBOffset 3623)
+
+(RPAQQ \Dove.BootStrapFCBOffset 3527)
+
+(RPAQQ \Dove.WatchDogFCBOffset 3431)
+
+(RPAQQ \Dove.TestClientFCBOffset 2816)
+
+(RPAQQ \Dove.TimerFCBOffset 870)
+
+(RPAQQ \Dove.UmbilicalFCBOffset 478)
+
+(RPAQQ \Dove.ParityFCBOffset 382)
+
+(RPAQQ \Dove.OpieFCBOffset 30)
+
+(RPAQQ \Dove.BermudaFCBOffset 26)
+
+
+(CONSTANTS (\Dove.VmemPageRunTableOffset 16128)
+       (\Dove.MesaClientFCBOffset 4474)
+       (\Dove.RemoteMemoryFCBOffset 3911)
+       (\Dove.UnservicedFCBOffset 3815)
+       (\Dove.WorkNotifierFCBOffset 3719)
+       (\Dove.BindweedFCBOffset 3623)
+       (\Dove.BootStrapFCBOffset 3527)
+       (\Dove.WatchDogFCBOffset 3431)
+       (\Dove.TestClientFCBOffset 2816)
+       (\Dove.TimerFCBOffset 870)
+       (\Dove.UmbilicalFCBOffset 478)
+       (\Dove.ParityFCBOffset 382)
+       (\Dove.OpieFCBOffset 30)
+       (\Dove.BermudaFCBOffset 26))
+)
+
+(RPAQQ DOVEOPIEADDRESSTYPES (\DoveIO.ExtendedBusType \DoveIO.IOPIORegionRelativeType 
+                                       \DoveIO.IOPLogicalType \DoveIO.PCLogicalType 
+                                       \DoveIO.VirtualFirst64KRelativeType \DoveIO.VirtualPageType 
+                                       \DoveIO.VirtualWordType))
+(DECLARE%: EVAL@COMPILE 
+
+(RPAQQ \DoveIO.ExtendedBusType 16)
+
+(RPAQQ \DoveIO.IOPIORegionRelativeType 81)
+
+(RPAQQ \DoveIO.IOPLogicalType 80)
+
+(RPAQQ \DoveIO.PCLogicalType 144)
+
+(RPAQQ \DoveIO.VirtualFirst64KRelativeType 225)
+
+(RPAQQ \DoveIO.VirtualPageType 240)
+
+(RPAQQ \DoveIO.VirtualWordType 224)
+
+
+(CONSTANTS \DoveIO.ExtendedBusType \DoveIO.IOPIORegionRelativeType \DoveIO.IOPLogicalType 
+       \DoveIO.PCLogicalType \DoveIO.VirtualFirst64KRelativeType \DoveIO.VirtualPageType 
+       \DoveIO.VirtualWordType)
+)
+
+(RPAQQ \Dove.FCBSizes
+       ((NIL 2)
+        (\Dove.MesaIOPOffset 5)
+        (\Dove.WorkMaskAreaOffset 17)
+        (\Dove.MesaPageMapLocationOffset 2)
+        (\Dove.BermudaFCBOffset 4)
+        (\Dove.OpieFCBOffset 256)
+        (\Dove.MaintPanelFCBOffset 96)
+        (\Dove.ParityFCBOffset 96)
+        (\Dove.UmbilicalFCBOffset 96)
+        (\Dove.Keyboard&MouseFCBOffset 175)
+        (\Dove.BeepFCBOffset 25)
+        (\Dove.DisplayFCBOffset 96)
+        (\Dove.TimerFCBOffset 96)
+        (\Dove.EthernetFCBOffset 1850)
+        (\Dove.TestClientFCBOffset 340)
+        (\Dove.DiskFCBOffset 150)
+        (\Dove.FloppyFCBOffset 125)
+        (\Dove.WatchDogFCBOffset 96)
+        (\Dove.BootStrapFCBOffset 96)
+        (\Dove.BindweedFCBOffset 96)
+        (\Dove.WorkNotifierFCBOffset 96)
+        (\Dove.UnservicedFCBOffset 96)
+        (\Dove.RemoteMemoryFCBOffset 231)
+        (\Dove.TTYFCBOffset 96)
+        (\Dove.RS232CFCBOffset 140)
+        (\Dove.ProcessorFCBOffset 96)
+        (\Dove.MesaClientFCBOffset 96)
+        (\Dove.PCEDispatcherFCBOffset 96)
+        (\Dove.PCETimerFCBOffset 96)
+        (\Dove.PCEParallelFCBOffset 96)
+        (\Dove.PCEDisplayFCBOffset 96)
+        (\Dove.PCEKeyboardFCBOffset 96)
+        (\Dove.PCERS232CFCBOffset 96)
+        (\Dove.PCEDiskFCBOffset 96)
+        (\Dove.PCEFloppyFCBOffset 160)))
+
+(RPAQQ \DoveIO.PromVersion NEW)
+(DECLARE%: DOEVAL@COMPILE DONTCOPY
+
+(GLOBALVARS \DoveBeep.FCBPointer \DoveProcessor.FCBPointer \DoveKyMo.FCBPointer \DoveMP.FCBPointer 
+       \DoveDisk.FCBPointer \DoveDisplay.FCBPointer \DoveEther.FCBPointer \DoveFloppy.FCBPointer)
+)
+
+(SETTEMPLATE '\DoveIO.LockMem '(|..| EVAL))
+(PUTPROPS DOVEDECLS COPYRIGHT ("Venue & Xerox Corporation" 1985 1986 1990))
+(DECLARE%: DONTCOPY
+  (FILEMAP (NIL)))
+STOP
diff --git a/sources/DOVEETHERDECLS b/sources/DOVEETHERDECLS
new file mode 100755
index 00000000..a2cd6f5a
--- /dev/null
+++ b/sources/DOVEETHERDECLS
@@ -0,0 +1,293 @@
+(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP")
+(FILECREATED "16-May-90 16:04:03" {DSK}<usr>local>lde>lispcore>sources>DOVEETHERDECLS.;2 14397  
+
+      changes to%:  (VARS DOVEETHERDECLSCOMS)
+
+      previous date%: "17-Dec-86 18:38:00" {DSK}<usr>local>lde>lispcore>sources>DOVEETHERDECLS.;1)
+
+
+(* ; "
+Copyright (c) 1986, 1990 by Venue & Xerox Corporation.  All rights reserved.
+")
+
+(PRETTYCOMPRINT DOVEETHERDECLSCOMS)
+
+(RPAQQ DOVEETHERDECLSCOMS
+       ((FILES MESATYPES)
+        (RECORDS Dove.EtherSCB)
+        (RECORDS Dove.EtherAddr Dove.EtherConfigure Dove.EtherDumpStatus Dove.EtherFCB 
+               Dove.Etheri586Status Dove.EtherIOCB Dove.EtherCommandIOCB Dove.EtherIOIOCB 
+               Dove.EtherMulticastAddr Dove.EtherTransmit Dove.RxBufferDesc Dove.RxFrameDesc 
+               Dove.TimeDomainRFL)
+        (FUNCTIONS \DoveEther.DoOutput)
+        (CONSTANTS \DoveEther.MulticastAddr \DoveEther.QueuePtrSize \DoveEther.ClientConditionSize 
+               \DoveEther.IOIOCBLength \DoveEther.RequestON \DoveEther.RequestOFF)
+        (CONSTANTS * DoveEther.IOCBTypes)
+        (CONSTANTS * DoveEther.ActionCommands)))
+
+(FILESLOAD MESATYPES)
+(DECLARE%: EVAL@COMPILE
+
+(MESARECORD Dove.EtherSCB ((stat BITS 4)
+                               (NIL BITS 1)
+                               (cus BITS 3)                  (* command unit status)
+                               (NIL BITS 1)
+                               (rus BITS 3)                  (* receive unit status)
+                               (NIL BITS 4)
+                               (ack BITS 4)                  (* acknowledge int)
+                               (NIL BITS 1)
+                               (cuc BITS 3)                  (* command unit command)
+                               (reset FLAG)
+                               (ruc BITS 3)                  (* receive unit command)
+                               (NIL BITS 4)
+                               (cblOffset WORD)
+                               (rfaOffset WORD)
+                               (crcErrs WORD)
+                               (alnErrs WORD)
+                               (rscErrs WORD)
+                               (ovrnErrs WORD)))
+)
+(DECLARE%: EVAL@COMPILE
+
+(BLOCKRECORD Dove.EtherAddr ((id 3 WORD)))
+
+(MESARECORD Dove.EtherConfigure ((NIL BITS 4)
+                                     (ByteCount BITS 4)
+                                     (NIL BITS 4)
+                                     (FifoLimit BITS 4)
+                                     (SaveBadFrames FLAG)
+                                     (SyncReady FLAG)
+                                     (NIL BITS 6)
+                                     (ExternalLoopBack FLAG)
+                                     (InternalLoopBack FLAG)
+                                     (PreambleLength BITS 2)
+                                     (AddrTypeLoc BITS 1)
+                                     (AddrLength BITS 3)
+                                     (ExpBackoffMethod BITS 1)
+                                     (AccContRes BITS 3)
+                                     (NIL BITS 1)
+                                     (LinearPolarity BITS 3)
+                                     (InterframeSpacing BYTE)
+                                     (SlotTimeLow BYTE)
+                                     (RetryNumber BITS 4)
+                                     (NIL BITS 1)
+                                     (SlotTimeHigh BITS 3)
+                                     (Padding FLAG)
+                                     (BitStuffing FLAG)
+                                     (CRC16 FLAG)
+                                     (NoCRCInsertion FLAG)
+                                     (TxNoCRS FLAG)
+                                     (NRZEncoding FLAG)
+                                     (BroadcastDisable FLAG)
+                                     (PromiscuousMode FLAG)
+                                     (InternalCDT FLAG)
+                                     (CDTFilter BITS 3)
+                                     (InternalCRS FLAG)
+                                     (CRSFilter BITS 3)
+                                     (MinFrameLength BYTE)
+                                     (NIL BYTE)))
+
+(BLOCKRECORD Dove.EtherDumpStatus ((Buffer WORD)))
+
+(MESARECORD Dove.EtherFCB ((mesaOutQueue Dove.QueueBlock)
+                               (mesaInQueue Dove.QueueBlock)
+                               (mesaClientStateRequest WORD)
+                               (scb Dove.EtherSCB)
+                               (etherOutWorkMask WORD)
+                               (etherInWorkMask WORD)
+                               (etherLockMask WORD)
+                               (mesaInClientState WORD)
+                               (mesaOutClientState WORD)))
+
+(BLOCKRECORD Dove.Etheri586Status ((completion FLAG)
+                                       (busy FLAG)
+                                       (okay FLAG))
+                                      (BLOCKRECORD Dove.Etheri586Status ((NIL BITS 3)
+                                                             (* receiveframe variant)
+                                                                         (unused FLAG)
+                                                                         (crcErr FLAG)
+                                                                         (alnErr FLAG)
+                                                                         (rscErr FLAG)
+                                                                         (ovrnErr FLAG)
+                                                                         (frameTooShort FLAG)
+                                                                         (noEOFFlag FLAG)
+                                                                         (NIL BITS 6)))
+                                      (BLOCKRECORD Dove.Etheri586Status ((NIL BITS 3)
+                                                             (* command variant.
+                                                           Mainly for transmit)
+                                                                         (aborted FLAG)
+                                                                         (NIL FLAG)
+                                                                         (noCRS FLAG)
+                                                                         (lossOfCTS FLAG)
+                                                                         (underrun FLAG)
+                                                                         (deferred FLAG)
+                                                                         (sqeTest FLAG)
+                                                                         (tooManyCollisions FLAG)
+                                                                         (NIL BITS 1)
+                                                                         (collisions BITS 4))))
+
+(MESARECORD Dove.EtherIOCB ((next Dove.OpieAddress)      (* Next IOCB in IO queue)
+                                (ClientCondition 3 WORD)     (* Gets notifed in Mesaland when IO 
+                                                           is complete)
+                                (i586Status WORD)            (* Status from the Dove ethernet 
+                                                           coprocessor)
+                                (Status BYTE)                (* IO status?)
+                                (IOCBType BITS 4)            (* What type of IO operation is 
+                                                           this?)
+                                (Action BITS 4)              (* Used only for Command variant)
+                                )
+                               [ACCESSFNS ((nextIOCB (fetch (Dove.OpieAddress LispPointer)
+                                                        of (fetch (Dove.EtherIOCB next)
+                                                                  of DATUM))
+                                                  (replace (Dove.OpieAddress LispPointer)
+                                                     of (fetch (Dove.EtherIOCB next)
+                                                               of DATUM) with NEWVALUE]
+                               (BLOCKRECORD Dove.EtherIOCB ((NIL 6 WORD)
+                                                            (done FLAG)
+                                                            (handled FLAG)
+                                                            (okay FLAG)
+                                                            (frameTooLong FLAG)
+                                                            (interruptTimeout FLAG)
+                                                            (NIL BITS 2)
+                                                            (isDequeued FLAG))))
+
+(MESARECORD Dove.EtherCommandIOCB ((iocbCommon Dove.EtherIOCB)
+                                       (select 7 WORD)))
+
+(MESARECORD Dove.EtherIOIOCB ((iocbCommon Dove.EtherIOCB)
+                                  (address Dove.OpieAddress)
+                                  (length WORD)
+                                  (count WORD))
+                                 [ACCESSFNS ((bufferAddress (fetch (Dove.OpieAddress LispPointer)
+                                                               of (fetch (Dove.EtherIOIOCB
+                                                                                  address)
+                                                                         of DATUM))
+                                                    (replace (Dove.OpieAddress LispPointer)
+                                                       of (fetch (Dove.EtherIOIOCB address)
+                                                                 of DATUM) with NEWVALUE])
+
+(BLOCKRECORD Dove.EtherMulticastAddr ((ByteCount WORD)
+                                          (MulticastID1 3 WORD)
+                                          (MulticastID2 3 WORD)))
+
+(BLOCKRECORD Dove.EtherTransmit ((BdPtr WORD)
+                                     (DestAddr 3 WORD)
+                                     (Type WORD)))
+
+(BLOCKRECORD Dove.RxBufferDesc ((EndOfFrame FLAG)
+                                    (Filled FLAG)
+                                    (ActualCount BITS 14)
+                                    (Next WORD)
+                                    (BufAddrIOPReal WORD)
+                                    (EndOfList FLAG)
+                                    (Unused FLAG)
+                                    (Size BITS 14)))
+
+(BLOCKRECORD Dove.RxFrameDesc ((Status WORD)
+                                   (EndOfList FLAG)
+                                   (Suspend FLAG)
+                                   (NIL BITS 14)
+                                   (Link WORD)
+                                   (BDPtr WORD)
+                                   (DestAddr 3 WORD)
+                                   (SourceAddr 3 WORD)
+                                   (Type WORD)))
+
+(BLOCKRECORD Dove.TimeDomainRFL ((LinkOK FLAG)
+                                     (XcvrProblem FLAG)
+                                     (Open FLAG)
+                                     (Short FLAG)
+                                     (NIL FLAG)
+                                     (Time BITS 11)))
+)
+
+(DEFMACRO \DoveEther.DoOutput (IOCB)
+   `(PROGN (\DoveEther.Initiate ,IOCB)
+           (until (fetch (Dove.EtherIOCB done) of ,IOCB))
+           (\DoveEther.DeQueue (fetch (Dove.EtherFCB mesaOutQueue) of \DoveEther.FCBPointer)
+                  ,IOCB)
+           (fetch (Dove.EtherIOCB okay) of ,IOCB)))
+(DECLARE%: EVAL@COMPILE 
+
+(RPAQQ \DoveEther.MulticastAddr 3)
+
+(RPAQQ \DoveEther.QueuePtrSize 6)
+
+(RPAQQ \DoveEther.ClientConditionSize 3)
+
+(RPAQQ \DoveEther.IOIOCBLength 11)
+
+(RPAQQ \DoveEther.RequestON 1)
+
+(RPAQQ \DoveEther.RequestOFF 0)
+
+
+(CONSTANTS \DoveEther.MulticastAddr \DoveEther.QueuePtrSize \DoveEther.ClientConditionSize 
+       \DoveEther.IOIOCBLength \DoveEther.RequestON \DoveEther.RequestOFF)
+)
+
+(RPAQQ DoveEther.IOCBTypes ((DoveEther.commandIOCBType 0)
+                                (DoveEther.outputIOCBType 1)
+                                (DoveEther.resetIOCBType 2)
+                                (DoveEther.startRUIOCBType 3)
+                                (DoveEther.inputIOCBType 15)))
+(DECLARE%: EVAL@COMPILE 
+
+(RPAQQ DoveEther.commandIOCBType 0)
+
+(RPAQQ DoveEther.outputIOCBType 1)
+
+(RPAQQ DoveEther.resetIOCBType 2)
+
+(RPAQQ DoveEther.startRUIOCBType 3)
+
+(RPAQQ DoveEther.inputIOCBType 15)
+
+
+(CONSTANTS (DoveEther.commandIOCBType 0)
+       (DoveEther.outputIOCBType 1)
+       (DoveEther.resetIOCBType 2)
+       (DoveEther.startRUIOCBType 3)
+       (DoveEther.inputIOCBType 15))
+)
+
+(RPAQQ DoveEther.ActionCommands ((DoveEther.actionNop 0)
+                                     (DoveEther.actionIndividualAddr 1)
+                                     (DoveEther.actionConfigure 2)
+                                     (DoveEther.actionMulticastAddr 3)
+                                     (DoveEther.actionTransmit 4)
+                                     (DoveEther.actionTimeDomainRfl 5)
+                                     (DoveEther.actionDumpStatus 6)
+                                     (DoveEther.actionDiagnose 7)))
+(DECLARE%: EVAL@COMPILE 
+
+(RPAQQ DoveEther.actionNop 0)
+
+(RPAQQ DoveEther.actionIndividualAddr 1)
+
+(RPAQQ DoveEther.actionConfigure 2)
+
+(RPAQQ DoveEther.actionMulticastAddr 3)
+
+(RPAQQ DoveEther.actionTransmit 4)
+
+(RPAQQ DoveEther.actionTimeDomainRfl 5)
+
+(RPAQQ DoveEther.actionDumpStatus 6)
+
+(RPAQQ DoveEther.actionDiagnose 7)
+
+
+(CONSTANTS (DoveEther.actionNop 0)
+       (DoveEther.actionIndividualAddr 1)
+       (DoveEther.actionConfigure 2)
+       (DoveEther.actionMulticastAddr 3)
+       (DoveEther.actionTransmit 4)
+       (DoveEther.actionTimeDomainRfl 5)
+       (DoveEther.actionDumpStatus 6)
+       (DoveEther.actionDiagnose 7))
+)
+(PUTPROPS DOVEETHERDECLS COPYRIGHT ("Venue & Xerox Corporation" 1986 1990))
+(DECLARE%: DONTCOPY
+  (FILEMAP (NIL)))
+STOP
diff --git a/sources/TCPHTE b/sources/TCPHTE
new file mode 100755
index 00000000..dda05d9a
--- /dev/null
+++ b/sources/TCPHTE
@@ -0,0 +1 @@
+(DEFINE-FILE-INFO PACKAGE "IL" READTABLE "INTERLISP")
(FILECREATED "12-Jun-90 17:31:06" {DSK}<usr>local>lde>lispcore>library>TCPHTE.;3 5753   

      changes to%:  (VARS TCPHTECOMS)

      previous date%: "11-Feb-89 11:06:54" {DSK}<usr>local>lde>lispcore>library>TCPHTE.;2)


(* ; "
Copyright (c) 1985, 1987, 1988, 1989, 1990 by Venue & Xerox Corporation.  All rights reserved.
")

(PRETTYCOMPRINT TCPHTECOMS)

(RPAQQ TCPHTECOMS
       ((PROP MAKEFILE-ENVIRONMENT TCPHTE)
        (RECORDS HOSTS.TXT.ENTRY)
        (FNS \HTE.PARSE.ENTRY \HTE.READ.FILE \HTE.READ; \HTE.READLINE)
        (INITVARS (HOSTS.TEXT.DIRECTORIES)
               (\HTE.RDTBL))
        (DECLARE%: EVAL@COMPILE DONTCOPY (GLOBALVARS \HTE.RDTBL \IP.HOSTNAMES)
               (RECORDS HTELINE))))

(PUTPROPS TCPHTE MAKEFILE-ENVIRONMENT (:PACKAGE "IL" :READTABLE "INTERLISP"))
(DECLARE%: EVAL@COMPILE

(DATATYPE HOSTS.TXT.ENTRY (HTE.TYPE HTE.ADDRESSES HTE.NAMES HTE.MACHINE.TYPE HTE.OS.TYPE 
                                     HTE.PROTOCOLS))
)

(/DECLAREDATATYPE 'HOSTS.TXT.ENTRY '(POINTER POINTER POINTER POINTER POINTER POINTER)
       '((HOSTS.TXT.ENTRY 0 POINTER)
         (HOSTS.TXT.ENTRY 2 POINTER)
         (HOSTS.TXT.ENTRY 4 POINTER)
         (HOSTS.TXT.ENTRY 6 POINTER)
         (HOSTS.TXT.ENTRY 8 POINTER)
         (HOSTS.TXT.ENTRY 10 POINTER))
       '12)
(DEFINEQ

(\HTE.PARSE.ENTRY
  [LAMBDA (ENTRY)                                        (* ; "Edited 11-Feb-89 11:04 by akw:")
    (DECLARE (GLOBALVARS NETWORKOSTYPES))
    (LET* [[NAMES (for NAME in (fetch (HTELINE NAMES) of ENTRY)
                     collect (MKATOM (U-CASE NAME]
           (OSTYPE (CAR (fetch (HTELINE OS.TYPE) of ENTRY))
                  (MKATOM (U-CASE)))
           (HTE.ENTRY (create HOSTS.TXT.ENTRY
                             HTE.TYPE _ (CAR (fetch (HTELINE TYPE) of ENTRY))
                             HTE.ADDRESSES _ (for X in (fetch (HTELINE ADDRESSES)
                                                                  of ENTRY)
                                                collect (\IP.READ.STRING.ADDRESS X))
                             HTE.NAMES _ NAMES
                             HTE.MACHINE.TYPE _ [MKATOM (U-CASE (CAR (fetch (HTELINE MACHINE.TYPE
                                                                                       ) of
                                                                                         ENTRY]
                             HTE.OS.TYPE _ [AND OSTYPE (SETQ OSTYPE (MKATOM (U-CASE OSTYPE]
                             HTE.PROTOCOLS _ (for PROTOENTRY in (fetch (HTELINE PROTOCOLS
                                                                                          )
                                                                           of ENTRY) bind
                                                                                         SLASH
                                                when (SETQ SLASH (STRPOS '/ PROTOENTRY))
                                                collect (CONS (SUBATOM PROTOENTRY 1 (SUB1 SLASH))
                                                                  (SUBATOM PROTOENTRY (ADD1 SLASH]
          (for NAME in NAMES do (PUTHASH NAME HTE.ENTRY \IP.HOSTNAMES])

(\HTE.READ.FILE
(LAMBDA (FILE WANTEDTYPES) (* ; "Edited 24-May-88 16:57 by bvm") (DECLARE (GLOBALVARS \IP.HOSTNAMES \TCP.LAST.HOSTS.FILE.DATE \TCP.LAST.HOSTS.FILE.READ)) (OR WANTEDTYPES (SETQ WANTEDTYPES (QUOTE (HOST)))) (CL:WITH-OPEN-FILE (STREAM FILE) (LET ((FILENAME (FULLNAME STREAM)) (DATE (GETFILEINFO STREAM (QUOTE ICREATIONDATE))) ENTRY) (PRINTOUT PROMPTWINDOW T "Reading " FILENAME " of " (GDATE DATE (DATEFORMAT NO.SECONDS))) (CLRHASH \IP.HOSTNAMES) (until (EOFP STREAM) when (AND (SETQ ENTRY (\HTE.READLINE STREAM WANTEDTYPES)) (FMEMB (CAR (fetch (HTELINE TYPE) of ENTRY)) WANTEDTYPES)) do (\HTE.PARSE.ENTRY ENTRY)) (SETQ \TCP.LAST.HOSTS.FILE.DATE DATE) (SETQ \TCP.LAST.HOSTS.FILE.READ FILENAME))))
)

(\HTE.READ;
(LAMBDA (FL RDTBL) (* ; "Edited 24-May-88 14:45 by bvm") (until (SELCHARQ (READCCODE FL) ((CR LF EOL) T) NIL)) NIL)
)

(\HTE.READLINE
(LAMBDA (STREAM WANTEDTYPES) (* ; "Edited 24-May-88 16:57 by bvm") (while (EQ (PEEKCCODE STREAM T) (CHARCODE ";")) do (\HTE.READ; STREAM)) (AND (NOT (EOFP STREAM)) (for FIELD# from 1 bind FIELDCONTENTS DONE (RDTBL _ (COND (\HTE.RDTBL) (T (SETQ \HTE.RDTBL (COPYREADTABLE (QUOTE ORIG))) (SETSEPR (CHARCODE (SPACE TAB %,)) NIL \HTE.RDTBL) (SETBRK (CHARCODE (":" ";" CR LF)) NIL \HTE.RDTBL) (READTABLEPROP \HTE.RDTBL (QUOTE CASEINSENSITIVE) T) \HTE.RDTBL))) until DONE collect (SETQ FIELDCONTENTS (until (SELCHARQ (SKIPSEPRCODES STREAM RDTBL) (":" (* ; "End of field") (READCCODE STREAM) T) (";" (* ; "end of line") (\HTE.READ; STREAM) (SETQ DONE T)) ((CR LF) (* ; "end of line--consume the terminator") (READCCODE STREAM) (SETQ DONE T)) (NIL (* ; "Eof") (SETQ DONE T)) NIL) collect (* ; "Read up to the next field delimiter") (if (EQ FIELD# 1) then (* ; "Canonicalize the type field") (READ STREAM RDTBL) else (RSTRING STREAM RDTBL)))) (if (AND (EQ FIELD# 1) WANTEDTYPES (NOT (FMEMB (CAR FIELDCONTENTS) WANTEDTYPES))) then (* ; "Don't care about this line") (OR DONE (\HTE.READ; STREAM)) (RETURN NIL)) FIELDCONTENTS)))
)
)

(RPAQ? HOSTS.TEXT.DIRECTORIES )

(RPAQ? \HTE.RDTBL )
(DECLARE%: EVAL@COMPILE DONTCOPY 
(DECLARE%: DOEVAL@COMPILE DONTCOPY

(GLOBALVARS \HTE.RDTBL \IP.HOSTNAMES)
)

(DECLARE%: EVAL@COMPILE

(RECORD HTELINE (TYPE ADDRESSES NAMES MACHINE.TYPE OS.TYPE PROTOCOLS))
)
)
(PUTPROPS TCPHTE COPYRIGHT ("Venue & Xerox Corporation" 1985 1987 1988 1989 1990))
(DECLARE%: DONTCOPY
  (FILEMAP (NIL (1360 5370 (\HTE.PARSE.ENTRY 1370 . 3378) (\HTE.READ.FILE 3380 . 4095) (\HTE.READ; 4097
 . 4230) (\HTE.READLINE 4232 . 5368)))))
STOP
\ No newline at end of file
