1
0
mirror of synced 2026-04-03 21:33:02 +00:00

Compare commits

...

1 Commits

Author SHA1 Message Date
Nick Briggs
573d87aca3 Updates \ETHEREVENTFN to relocate exit when the ethernet is unvailable. (#2418)
* Updates \ETHEREVENTFN to remove early exit when the ethernet is unvailable.

In the case that the ethernet is unavailable the \ETHEREVENTFN should
still call \SETETHERFLAGS, \SETLOCALNSNUMBERS, and \FLUSHNDBS, or
a newly started image will retain information from the system on which
it was built (such as ethernet MAC address in the NS address).  This
will also ensure that the NS address is not set to 0, instead initializing
with a fake  address based on the system serial number (calls \SERIALNUMBER).

* When no ethernet \FIND.LOCALPUPHOSTNUMBER should immediately return NIL

If there is NO ethernet it is better to avoid a delay waiting for a
PUP lookup response that will never come, and there is no value in
asking for the user to enter a PUP host number that will not be used.

* Updates \SETETHERFLAGS to avoid setting \10MBFLG when no ethernet

* Avoids making copy of \10MBLOCALNDB as \MAIKO.10MB.NDB for \MAIKO.ETHER-INTERRUPT

* RESTART.ETHER at end of loadup-lisp to ensure network structures are set up.

* Removes OCTALSTRING from PUP - now in APRINT

* Prevents \LOOKUPPORT waiting for an ethernet timeout if PUP has already been detected as unavailable
2026-04-02 11:15:23 -07:00
8 changed files with 596 additions and 640 deletions

View File

@@ -1,12 +1,14 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10) (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10)
(FILECREATED "22-Feb-2026 14:15:31" |{WMEDLEY}<internal>loadups>LOADUP-LISP.;27| 7420 (FILECREATED "26-Mar-2026 18:38:22" 
|{DSK}<Users>briggs>Projects>medley>internal>loadups>LOADUP-LISP.;14| 7604
:EDIT-BY |rmk| :EDIT-BY "briggs"
:CHANGES-TO (FNS LOADUP-LISP) :CHANGES-TO (FNS LOADUP-LISP)
:PREVIOUS-DATE "22-Feb-2026 09:49:23" |{WMEDLEY}<internal>loadups>LOADUP-LISP.;26|) :PREVIOUS-DATE "22-Feb-2026 14:15:31"
|{DSK}<Users>briggs>Projects>medley>internal>loadups>LOADUP-LISP.;13|)
(PRETTYCOMPRINT LOADUP-LISPCOMS) (PRETTYCOMPRINT LOADUP-LISPCOMS)
@@ -19,7 +21,8 @@
(DEFINEQ (DEFINEQ
(LOADUP-LISP (LOADUP-LISP
(LAMBDA (DRIBBLEFILE) (* \; "Edited 22-Feb-2026 14:15 by rmk") (LAMBDA (DRIBBLEFILE) (* \; "Edited 26-Mar-2026 18:38 by briggs")
(* \; "Edited 22-Feb-2026 14:15 by rmk")
(* \; "Edited 28-Jan-2026 14:30 by lmm") (* \; "Edited 28-Jan-2026 14:30 by lmm")
(* \; "Edited 27-Dec-2025 15:02 by rmk") (* \; "Edited 27-Dec-2025 15:02 by rmk")
(* \; "Edited 16-Oct-2025 16:55 by rmk") (* \; "Edited 16-Oct-2025 16:55 by rmk")
@@ -135,6 +138,7 @@
(LOADUP '(PUP 10MBDRIVER LEAF LLETHER DPUPFTP LOCALFILE DSKDISPLAY COURIER LLNS TRSERVER SPP (LOADUP '(PUP 10MBDRIVER LEAF LLETHER DPUPFTP LOCALFILE DSKDISPLAY COURIER LLNS TRSERVER SPP
NSPRINT AUTHENTICATION BSP CLEARINGHOUSE NSFILING MAIKOETHER)) NSPRINT AUTHENTICATION BSP CLEARINGHOUSE NSFILING MAIKOETHER))
(RESTART.ETHER)
(DRIBBLE) (DRIBBLE)
(SETQ MAKESYSNAME :MEDLEY))) (SETQ MAKESYSNAME :MEDLEY)))
) )
@@ -147,5 +151,5 @@
(GLOBALVARS MAKESYSFILENAME MEDLEY-INIT-VARS MEDLEYDIR SYSTEMINITVARS USERRECLST) (GLOBALVARS MAKESYSFILENAME MEDLEY-INIT-VARS MEDLEYDIR SYSTEMINITVARS USERRECLST)
) )
(DECLARE\: DONTCOPY (DECLARE\: DONTCOPY
(FILEMAP (NIL (640 7214 (LOADUP-LISP 650 . 7212))))) (FILEMAP (NIL (695 7398 (LOADUP-LISP 705 . 7396)))))
STOP STOP

Binary file not shown.

View File

@@ -1,15 +1,13 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED " 3-May-2021 23:13:56" {DSK}<home>larry>ilisp>medley>sources>LLETHER.;4 139646
changes to%: (FNS \ETHEREVENTFN \ETHER-AVAILABLE) (FILECREATED "23-Jan-2026 12:42:02" {DSK}<Users>briggs>PROJECTS>Medley>sources>LLETHER.;4 138728
(VARS LLETHERCOMS)
previous date%: " 2-May-2021 12:37:02" {DSK}<home>larry>ilisp>medley>sources>LLETHER.;3) :EDIT-BY nhb
:CHANGES-TO (FNS \SETETHERFLAGS)
:PREVIOUS-DATE "20-Dec-2025 14:12:06" {DSK}<Users>briggs>PROJECTS>Medley>sources>LLETHER.;3)
(* ; "
Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
")
(PRETTYCOMPRINT LLETHERCOMS) (PRETTYCOMPRINT LLETHERCOMS)
@@ -177,8 +175,7 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
 "Link to next thing in queue always in first pointer of datum, independent of what the datum is")  "Link to next thing in queue always in first pointer of datum, independent of what the datum is")
) )
(BLOCKRECORD QABLEITEM ((NIL BITS 4) (BLOCKRECORD QABLEITEM ((NIL BITS 4)
(LINK POINTER) (LINK POINTER)(* ;
(* ;
 "Let's also be able to call it a LINK")  "Let's also be able to call it a LINK")
))) )))
) )
@@ -1499,21 +1496,19 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
HOSTNAMEP _ 'NILL]) HOSTNAMEP _ 'NILL])
(\ETHEREVENTFN (\ETHEREVENTFN
[LAMBDA (DEV EVENT) (* ; "Edited 3-May-2021 23:12 by larry") [LAMBDA (DEV EVENT) (* ; "Edited 17-Dec-2025 11:01 by nhb")
(* ; "Edited 3-May-2021 23:12 by larry")
(PROG (NDB TURNOFFNS TIMESET) (PROG (NDB TURNOFFNS TIMESET)
(SELECTQ EVENT (SELECTQ EVENT
((NIL AFTERLOGOUT AFTERSYSOUT AFTERMAKESYS AFTERSAVEVM RESTART) ((NIL AFTERLOGOUT AFTERSYSOUT AFTERMAKESYS AFTERSAVEVM RESTART)
(SETQ \PUP.READY (SETQ \NS.READY (SETQ \IP.READY))) (SETQ \PUP.READY (SETQ \NS.READY (SETQ \IP.READY)))
(OR (\ETHER-AVAILABLE)
(RETURN))
(\SETETHERFLAGS) (\SETETHERFLAGS)
(\SETLOCALNSNUMBERS) (\SETLOCALNSNUMBERS)
(\FLUSHNDBS EVENT) (\FLUSHNDBS EVENT)
(SETQ \10MBLOCALNDB (COND (SETQ \10MBLOCALNDB (COND
(\10MBFLG (SETQ NDB (\10MB.CREATENDB \10MBFLG)) (\10MBFLG (SETQ NDB (\10MB.CREATENDB \10MBFLG))
(COND (COND
(\LOCALNDBS (replace NDBNEXT of (\LOCALNDBS (replace NDBNEXT of \LOCALNDBS
\LOCALNDBS
with NDB)) with NDB))
(T (SETQ \LOCALNDBS NDB))) (T (SETQ \LOCALNDBS NDB)))
NDB))) NDB)))
@@ -1556,11 +1551,13 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(printout PROMPTWINDOW T "[Time not set]"]) (printout PROMPTWINDOW T "[Time not set]"])
(\SETETHERFLAGS (\SETETHERFLAGS
[LAMBDA NIL (* ; "Edited 2-May-2021 12:35 by larry") [LAMBDA NIL (* ; "Edited 23-Jan-2026 12:39 by nhb")
(* ; "Edited 2-May-2021 12:35 by larry")
(* ;; "for Medley there is no 3MB ethernet ; used to be conditional on \MACHINETYPE") (* ;; "for Medley there is no 3MB ethernet ; used to be conditional on \MACHINETYPE")
(SETQ \10MBFLG 0) (SETQ \10MBFLG (AND (\ETHER-AVAILABLE)
0))
(SETQ \3MBFLG NIL) (SETQ \3MBFLG NIL)
(SETQ *MAXIMUM-PACKET-SIZE* (- (TIMES 2 BYTESPERPAGE) (SETQ *MAXIMUM-PACKET-SIZE* (- (TIMES 2 BYTESPERPAGE)
(UNFOLD (INDEXF (FETCH EPBODY)) (UNFOLD (INDEXF (FETCH EPBODY))
@@ -1786,8 +1783,7 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(DECLARE%: EVAL@COMPILE (DECLARE%: EVAL@COMPILE
(PUTPROPS ENCAPSULATE.ETHERPACKET MACRO ((NDB PACKET HOST LENGTH TYPE) (PUTPROPS ENCAPSULATE.ETHERPACKET MACRO ((NDB PACKET HOST LENGTH TYPE)
(SPREADAPPLY* (fetch NDBENCAPSULATOR (SPREADAPPLY* (fetch NDBENCAPSULATOR of NDB)
of NDB)
NDB PACKET HOST LENGTH TYPE))) NDB PACKET HOST LENGTH TYPE)))
(PUTPROPS TRANSMIT.ETHERPACKET MACRO ((NDB PACKET) (PUTPROPS TRANSMIT.ETHERPACKET MACRO ((NDB PACKET)
@@ -1803,9 +1799,8 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(PUTPROPS \CHECK.ROUTING.TABLE MACRO [(TABLE) (PUTPROPS \CHECK.ROUTING.TABLE MACRO [(TABLE)
(if (NEQ (NTYPX TABLE) (if (NEQ (NTYPX TABLE)
\ROUTING.TABLE.TYPENUM) \ROUTING.TABLE.TYPENUM)
then (CL:ERROR 'CONDITIONS:SIMPLE-TYPE-ERROR then (CL:ERROR 'CONDITIONS:SIMPLE-TYPE-ERROR :CULPRIT TABLE
:CULPRIT TABLE :EXPECTED-TYPE :EXPECTED-TYPE 'RoutingTable])
'RoutingTable])
) )
(DECLARE%: DOEVAL@COMPILE DONTCOPY (DECLARE%: DOEVAL@COMPILE DONTCOPY
@@ -2242,30 +2237,31 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(* ; "Sender's info") (* ; "Sender's info")
(TRANSSENDERPUPHOST BYTE) (TRANSSENDERPUPHOST BYTE)
(NIL BYTE)) (NIL BYTE))
[ACCESSFNS BASETRANSNSHOST ((TRANSNSHOST (\LOADNSHOSTNUMBER [ACCESSFNS BASETRANSNSHOST ((TRANSNSHOST (\LOADNSHOSTNUMBER (LOCF DATUM)
(LOCF DATUM)) )
(\STORENSHOSTNUMBER (LOCF DATUM) (\STORENSHOSTNUMBER (LOCF DATUM)
NEWVALUE] NEWVALUE]
(ACCESSFNS BASETRANSSENDERNSHOST ((TRANSSENDERNSHOST (ACCESSFNS BASETRANSSENDERNSHOST ((TRANSSENDERNSHOST (\LOADNSHOSTNUMBER
(\LOADNSHOSTNUMBER (LOCF DATUM)) (LOCF DATUM))
(\STORENSHOSTNUMBER (LOCF DATUM) (\STORENSHOSTNUMBER
(LOCF DATUM)
NEWVALUE] NEWVALUE]
[ACCESSFNS ETHERTRANS [ACCESSFNS ETHERTRANS
([TRANSNSADDRESS ([TRANSNSADDRESS (PROGN (* ;
(PROGN (* ;
 "Kludge to get a pointer that looks like a full ns address")  "Kludge to get a pointer that looks like a full ns address")
(\ADDBASE DATUM (CONSTANT (+ (INDEXF (FETCH (\ADDBASE
(ETHERPACKET EPBODY) DATUM
(CONSTANT (+ (INDEXF (FETCH (ETHERPACKET EPBODY
)
of T)) of T))
(INDEXF (FETCH (INDEXF (FETCH (ETHERTRANS
(ETHERTRANS
BASETRANSNSHOST BASETRANSNSHOST
) of )
T)) of T))
-2] -2]
(TRANSSENDERNSADDRESS (TRANSSENDERNSADDRESS (\ADDBASE
(\ADDBASE DATUM (CONSTANT (+ (INDEXF (FETCH (ETHERPACKET DATUM
EPBODY) (CONSTANT (+ (INDEXF (FETCH (ETHERPACKET EPBODY)
of T)) of T))
(INDEXF (FETCH (ETHERTRANS (INDEXF (FETCH (ETHERTRANS
BASETRANSSENDERNSHOST BASETRANSSENDERNSHOST
@@ -2757,8 +2753,7 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(DECLARE%: DONTCOPY (DECLARE%: DONTCOPY
(DECLARE%: EVAL@COMPILE (DECLARE%: EVAL@COMPILE
(ACCESSFNS 3MBENCAPSULATION [(3MBENCAPSTART (LOCF (fetch (ETHERPACKET EPENCAPSULATION) (ACCESSFNS 3MBENCAPSULATION [(3MBENCAPSTART (LOCF (fetch (ETHERPACKET EPENCAPSULATION) of DATUM]
of DATUM]
(BLOCKRECORD 3MBENCAPSTART ((NIL 5 WORD) (BLOCKRECORD 3MBENCAPSTART ((NIL 5 WORD)
(* ; "waste space") (* ; "waste space")
(3MBLENGTH WORD) (3MBLENGTH WORD)
@@ -2791,8 +2786,7 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(PBIFIRSTPUPWORD 10 WORD) (PBIFIRSTPUPWORD 10 WORD)
(PBIFIRSTPUPDATAWORD WORD)) (PBIFIRSTPUPDATAWORD WORD))
[ACCESSFNS PBI ((PBIPUPSTART (LOCF (fetch PBIFIRSTPUPWORD of DATUM))) [ACCESSFNS PBI ((PBIPUPSTART (LOCF (fetch PBIFIRSTPUPWORD of DATUM)))
(PBIPUPDATASTART (LOCF (fetch PBIFIRSTPUPDATAWORD (PBIPUPDATASTART (LOCF (fetch PBIFIRSTPUPDATAWORD of DATUM)))
of DATUM)))
(PBIRAWSTART (LOCF (fetch PBILENGTH of DATUM]) (PBIRAWSTART (LOCF (fetch PBILENGTH of DATUM])
) )
@@ -2879,8 +2873,8 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
T]) T])
) )
(RPAQQ ROUTINGINFOMACRO (1 "Operation = " WORDS 2 "Info: " REPEAT "(" SEPR ", " INTEGER -4 WORDS (RPAQQ ROUTINGINFOMACRO (1 "Operation = " WORDS 2 "Info: " REPEAT "(" SEPR ", " INTEGER -4 WORDS SEPR
SEPR ") " -2 FINALLY ")")) ") " -2 FINALLY ")"))
(DECLARE%: EVAL@COMPILE DONTCOPY (DECLARE%: EVAL@COMPILE DONTCOPY
(DECLARE%: DOEVAL@COMPILE DONTCOPY (DECLARE%: DOEVAL@COMPILE DONTCOPY
@@ -2947,33 +2941,31 @@ Copyright (c) 1982-1988, 1990-1993, 2021 by Venue & Xerox Corporation.
(* "END EXPORTED DEFINITIONS") (* "END EXPORTED DEFINITIONS")
) )
(PUTPROPS LLETHER COPYRIGHT ("Venue & Xerox Corporation" 1982 1983 1984 1985 1986 1987 1988 1990 1991
1992 1993 2021))
(DECLARE%: DONTCOPY (DECLARE%: DONTCOPY
(FILEMAP (NIL (10792 19248 (CANONICAL.HOSTNAME 10802 . 12391) (\ENQUEUE 12393 . 15038) (\DEQUEUE 15040 (FILEMAP (NIL (10585 19041 (CANONICAL.HOSTNAME 10595 . 12184) (\ENQUEUE 12186 . 14831) (\DEQUEUE 14833
. 16367) (\QUEUELENGTH 16369 . 16669) (\ONQUEUE 16671 . 16937) (\UNQUEUE 16939 . 19246)) (52949 56815 . 16160) (\QUEUELENGTH 16162 . 16462) (\ONQUEUE 16464 . 16730) (\UNQUEUE 16732 . 19039)) (52600 56466
(\ALLOCATE.ETHERPACKET 52959 . 54000) (\RELEASE.ETHERPACKET 54002 . 55075) (RELEASE.PUP 55077 . 55222 (\ALLOCATE.ETHERPACKET 52610 . 53651) (\RELEASE.ETHERPACKET 53653 . 54726) (RELEASE.PUP 54728 . 54873
) (\FLUSH.PACKET.QUEUE 55224 . 55575) (\REQUEUE.ETHERPACKET 55577 . 56091) (\EP.PUT.AUX 56093 . 56813) ) (\FLUSH.PACKET.QUEUE 54875 . 55226) (\REQUEUE.ETHERPACKET 55228 . 55742) (\EP.PUT.AUX 55744 . 56464)
) (57389 68770 (\SETLOCALNSNUMBERS 57399 . 58784) (\LOADNSADDRESS 58786 . 59078) (\STORENSADDRESS ) (57040 68421 (\SETLOCALNSNUMBERS 57050 . 58435) (\LOADNSADDRESS 58437 . 58729) (\STORENSADDRESS
59080 . 59261) (\PRINTNSADDRESS 59263 . 60346) (\NSADDRESS.DEFPRINT 60348 . 65293) ( 58731 . 58912) (\PRINTNSADDRESS 58914 . 59997) (\NSADDRESS.DEFPRINT 59999 . 64944) (
\NSADDRESS.PRINT.DECIMAL 65295 . 67426) (\LOADNSHOSTNUMBER 67428 . 68057) (\STORENSHOSTNUMBER 68059 . \NSADDRESS.PRINT.DECIMAL 64946 . 67077) (\LOADNSHOSTNUMBER 67079 . 67708) (\STORENSHOSTNUMBER 67710 .
68463) (PRINTNSHOSTNUMBER 68465 . 68768)) (68883 74631 (\ETHERINIT 68893 . 69463) (\ETHEREVENTFN 69465 68114) (PRINTNSHOSTNUMBER 68116 . 68419)) (68534 74394 (\ETHERINIT 68544 . 69114) (\ETHEREVENTFN 69116
. 71997) (\ETHER-AVAILABLE 71999 . 72157) (\TIME.NOT.SET 72159 . 72485) (\SETETHERFLAGS 72487 . 72938 . 71594) (\ETHER-AVAILABLE 71596 . 71754) (\TIME.NOT.SET 71756 . 72082) (\SETETHERFLAGS 72084 . 72701
) (\FLUSHNDBS 72940 . 74118) (\FLUSH.NDB.QUEUE 74120 . 74629)) (74632 77924 (\CHECKSUM 74642 . 76574) ) (\FLUSHNDBS 72703 . 73881) (\FLUSH.NDB.QUEUE 73883 . 74392)) (74395 77687 (\CHECKSUM 74405 . 76337)
(\HANDLE.RAW.OTHER 76576 . 76931) (\HANDLE.RAW.PACKET 76933 . 77445) (\ADD.PACKET.FILTER 77447 . 77679 (\HANDLE.RAW.OTHER 76339 . 76694) (\HANDLE.RAW.PACKET 76696 . 77208) (\ADD.PACKET.FILTER 77210 . 77442
) (\DEL.PACKET.FILTER 77681 . 77922)) (85757 86282 (ENCAPSULATE.ETHERPACKET 85767 . 86039) ( ) (\DEL.PACKET.FILTER 77444 . 77685)) (85191 85716 (ENCAPSULATE.ETHERPACKET 85201 . 85473) (
TRANSMIT.ETHERPACKET 86041 . 86280)) (86570 99166 (\AGE.ROUTING.TABLE 86580 . 88729) ( TRANSMIT.ETHERPACKET 85475 . 85714)) (86004 98600 (\AGE.ROUTING.TABLE 86014 . 88163) (
\ADD.ROUTING.TABLE.ENTRY 88731 . 89427) (\CLEAR.ROUTING.TABLE 89429 . 90156) (\MAP.ROUTING.TABLE 90158 \ADD.ROUTING.TABLE.ENTRY 88165 . 88861) (\CLEAR.ROUTING.TABLE 88863 . 89590) (\MAP.ROUTING.TABLE 89592
. 90686) (PRINTROUTINGTABLE 90688 . 94313) (\ROUTINGTABLE.INFOHOOK 94315 . 99164)) (99651 106436 ( . 90120) (PRINTROUTINGTABLE 90122 . 93747) (\ROUTINGTABLE.INFOHOOK 93749 . 98598)) (99085 105870 (
\TRANSLATE.10TO3 99661 . 101445) (\NOTE.10TO3 101447 . 103063) (\HANDLE.RAW.10TO3 103065 . 106434)) ( \TRANSLATE.10TO3 99095 . 100879) (\NOTE.10TO3 100881 . 102497) (\HANDLE.RAW.10TO3 102499 . 105868)) (
110418 125240 (PRINTPACKET 110428 . 110989) (\MAYBEPRINTPACKET 110991 . 112648) (PRINT10TO3 112650 . 109860 124682 (PRINTPACKET 109870 . 110431) (\MAYBEPRINTPACKET 110433 . 112090) (PRINT10TO3 112092 .
114018) (PRINTPACKETDATA 114020 . 119310) (PRINTPACKETQUEUE 119312 . 119741) (TIME.SINCE.PACKET 119743 113460) (PRINTPACKETDATA 113462 . 118752) (PRINTPACKETQUEUE 118754 . 119183) (TIME.SINCE.PACKET 119185
. 120228) (MAKE-NETWORK-TRACE-WINDOW 120230 . 123772) (\CHANGE.ETHER.TRACING 123774 . 125238)) ( . 119670) (MAKE-NETWORK-TRACE-WINDOW 119672 . 123214) (\CHANGE.ETHER.TRACING 123216 . 124680)) (
125611 126426 (\CENTICLOCK 125621 . 126424)) (126881 132981 (\3MBGETPACKET 126891 . 128311) ( 125049 125864 (\CENTICLOCK 125059 . 125862)) (126315 132415 (\3MBGETPACKET 126325 . 127745) (
\3MB.CREATENDB 128313 . 129028) (\3MBSENDPACKET 129030 . 131213) (\3MBWATCHER 131215 . 131953) ( \3MB.CREATENDB 127747 . 128462) (\3MBSENDPACKET 128464 . 130647) (\3MBWATCHER 130649 . 131387) (
\3MBENCAPSULATE 131955 . 132503) (\3MB.BROADCASTP 132505 . 132676) (\3MBFLUSH 132678 . 132979)) ( \3MBENCAPSULATE 131389 . 131937) (\3MB.BROADCASTP 131939 . 132110) (\3MBFLUSH 132112 . 132413)) (
135935 137878 (ASSURE.ETHER.ON 135945 . 136275) (INITPUPLEVEL1 136277 . 136757) (TURN.ON.ETHER 136759 135157 137100 (ASSURE.ETHER.ON 135167 . 135497) (INITPUPLEVEL1 135499 . 135979) (TURN.ON.ETHER 135981
. 136904) (RESTART.ETHER 136906 . 137280) (TURN.OFF.ETHER 137282 . 137600) (PRINTWORDS 137602 . . 136126) (RESTART.ETHER 136128 . 136502) (TURN.OFF.ETHER 136504 . 136822) (PRINTWORDS 136824 .
137876)) (138153 138688 (\DEVICE.INPUT 138163 . 138328) (\DEVICE.OUTPUT 138330 . 138524) (\D0.STARTIO 137098)) (137371 137906 (\DEVICE.INPUT 137381 . 137546) (\DEVICE.OUTPUT 137548 . 137742) (\D0.STARTIO
138526 . 138686))))) 137744 . 137904)))))
STOP STOP

Binary file not shown.

View File

@@ -1,14 +1,14 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10) (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10)
(FILECREATED "25-Oct-2021 15:12:33" |{DSK}<home>larry>medley>sources>MAIKOETHER.;2| 28792 (FILECREATED "30-Dec-2025 19:09:34" |{DSK}<Users>briggs>projects>medley>sources>MAIKOETHER.;7| 26899
|changes| |to:| (FNS \\DISPLAYLINE) :EDIT-BY |nhb|
(VARS MAIKOETHERCOMS)
|previous| |date:| "25-Mar-2021 09:50:57" |{DSK}<home>larry>medley>sources>MAIKOETHER.;1|) :CHANGES-TO (VARS MAIKOETHERCOMS)
:PREVIOUS-DATE "30-Dec-2025 18:50:46" |{DSK}<Users>briggs>projects>medley>sources>MAIKOETHER.;6|
)
; Copyright (c) 1988-1991, 2021 by Venue & Xerox Corporation.
(PRETTYCOMPRINT MAIKOETHERCOMS) (PRETTYCOMPRINT MAIKOETHERCOMS)
@@ -23,10 +23,6 @@
(DECLARE\: EVAL@COMPILE DONTCOPY (FILES (LOADCOMP) (DECLARE\: EVAL@COMPILE DONTCOPY (FILES (LOADCOMP)
10MBDRIVER) 10MBDRIVER)
(GLOBALVARS \\MAIKO.INPUT.PACKET |\\ETHERtopMonitor|) (GLOBALVARS \\MAIKO.INPUT.PACKET |\\ETHERtopMonitor|)
(* |;;| "The NDB for Maiko's 10MB connection; used by \\MAIKO.ETHER-INTERRUPT:")
(GLOBALVARS \\MAIKO.10MB.NDB)
(GLOBALVARS \\MAIKO.IO-INTERRUPT-FLAGS \\MAIKO.IO-INTERRUPT-VECTOR)) (GLOBALVARS \\MAIKO.IO-INTERRUPT-FLAGS \\MAIKO.IO-INTERRUPT-VECTOR))
(ADDVARS (\\MAIKO.MOVDS (\\MAIKO.10MBSTARTDRIVER \\10MB.STARTDRIVER) (ADDVARS (\\MAIKO.MOVDS (\\MAIKO.10MBSTARTDRIVER \\10MB.STARTDRIVER)
(\\MAIKO.10MBWATCHER \\10MBWATCHER) (\\MAIKO.10MBWATCHER \\10MBWATCHER)
@@ -35,9 +31,13 @@
(\\MAIKO.10MBTURNONETHER \\10MB.TURNONETHER) (\\MAIKO.10MBTURNONETHER \\10MB.TURNONETHER)
(\\MAIKO.ETHERRESUME \\10MB.RESTART.ETHER) (\\MAIKO.ETHERRESUME \\10MB.RESTART.ETHER)
(\\MAIKO.CHECKSUM \\CHECKSUM))) (\\MAIKO.CHECKSUM \\CHECKSUM)))
(COMS (* \; "MAIKO handler for new interrupt-driven incoming ethernet communication, rather than polling for it.") (COMS
(* |;;| "MAIKO handler for new interrupt-driven incoming ethernet communication, rather than polling for it.")
(FNS \\MAIKO.ETHER-INTERRUPT)) (FNS \\MAIKO.ETHER-INTERRUPT))
(COMS (* \; "MAIKO Log & Console message handling. Interrupt-driven message printing, instead of polled printing.") (COMS
(* |;;| "MAIKO Log & Console message handling. Interrupt-driven message printing, instead of polled printing.")
(FNS \\MAIKO.CONSOLE-LOG-PRINT)) (FNS \\MAIKO.CONSOLE-LOG-PRINT))
(COMS (COMS
(* |;;| "Asynchronous I/O handling") (* |;;| "Asynchronous I/O handling")
@@ -53,8 +53,7 @@
(\\10MB.STARTDRIVER (\\10MB.STARTDRIVER
(LAMBDA (NDB RESTARTFLG MYNSNUMBER) (* \; "Edited 5-Apr-89 15:03 by snow") (LAMBDA (NDB RESTARTFLG MYNSNUMBER) (* \; "Edited 5-Apr-89 15:03 by snow")
(DECLARE (GLOBALVARS \\MAIKO.INPUT.PACKET \\10MB.EXPECTED.RECEIVE.INTERVAL (DECLARE (GLOBALVARS \\MAIKO.INPUT.PACKET \\10MB.EXPECTED.RECEIVE.INTERVAL \\10MB.INPUT.TIMEOUT))
\\10MB.INPUT.TIMEOUT))
(SUBRCALL ETHER-SUSPEND) (SUBRCALL ETHER-SUSPEND)
(OR (\\INIT.ETHER.BUFFER.POOL) (OR (\\INIT.ETHER.BUFFER.POOL)
(ERROR "Unable to create buffer pool")) (ERROR "Unable to create buffer pool"))
@@ -65,13 +64,9 @@
0 0) 0 0)
(PROG ((CSB (|fetch| NDBCSB |of| NDB))) (PROG ((CSB (|fetch| NDBCSB |of| NDB)))
(OR \\MAIKO.INPUT.PACKET (SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET))) (OR \\MAIKO.INPUT.PACKET (SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET)))
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| (|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| \\ES.PENDING)
\\ES.PENDING) (SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE |of| \\MAIKO.INPUT.PACKET))
(SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE |of| (|replace| NDBWATCHER |of| NDB |with| (ADD.PROCESS (LIST '\\10MBWATCHER (KWOTE NDB))
\\MAIKO.INPUT.PACKET
))
(|replace| NDBWATCHER |of| NDB |with| (ADD.PROCESS (LIST '\\10MBWATCHER
(KWOTE NDB))
'RESTARTABLE 'RESTARTABLE
'SYSTEM 'SYSTEM
'AFTEREXIT 'AFTEREXIT
@@ -92,20 +87,16 @@
(PROG ((CSB (|fetch| NDBCSB |of| NDB))) (PROG ((CSB (|fetch| NDBCSB |of| NDB)))
(\\MAIKO.ETHERSUSPEND) (\\MAIKO.ETHERSUSPEND)
(OR CSB (|replace| NDBCSB |of| NDB |with| (SETQ CSB (OR CSB (|replace| NDBCSB |of| NDB |with| (SETQ CSB (LOCF (|fetch| DLETHERNET |of| \\IOPAGE
(LOCF (|fetch| DLETHERNET )))))
|of| \\IOPAGE)))))
(|replace| DLFIRSTOCB |of| CSB |with| 0) (|replace| DLFIRSTOCB |of| CSB |with| 0)
(|replace| DLFIRSTICB |of| CSB |with| 0) (|replace| DLFIRSTICB |of| CSB |with| 0)
(AND NSHOSTNUMBER (COND (AND NSHOSTNUMBER (COND
((EQ NSHOSTNUMBER T) ((EQ NSHOSTNUMBER T)
(\\BLT (LOCF (|fetch| DLLOCALHOST0 |of| CSB)) (\\BLT (LOCF (|fetch| DLLOCALHOST0 |of| CSB))
(LOCF (|fetch| (IFPAGE |NSHost0|) |of| (LOCF (|fetch| (IFPAGE |NSHost0|) |of| |\\InterfacePage|))
|\\InterfacePage|)
)
\\#WDS.NSHOSTNUMBER)) \\#WDS.NSHOSTNUMBER))
(T (\\STORENSHOSTNUMBER (LOCF (|fetch| DLLOCALHOST0 |of| (T (\\STORENSHOSTNUMBER (LOCF (|fetch| DLLOCALHOST0 |of| CSB))
CSB))
NSHOSTNUMBER)))) NSHOSTNUMBER))))
(AND OUTINTERRUPT (|replace| DLOUTPUTMASK |of| CSB |with| OUTINTERRUPT)) (AND OUTINTERRUPT (|replace| DLOUTPUTMASK |of| CSB |with| OUTINTERRUPT))
(AND ININTERRUPT (|replace| DLINPUTMASK |of| CSB |with| ININTERRUPT)) (AND ININTERRUPT (|replace| DLINPUTMASK |of| CSB |with| ININTERRUPT))
@@ -161,10 +152,11 @@
(PROG ((CNTR 0) (PROG ((CNTR 0)
MESSAGE-BUFFER MESSAGE-LENGTH PACKET) MESSAGE-BUFFER MESSAGE-LENGTH PACKET)
LP (IF (SUBRCALL MESSAGE-READP) LP (IF (SUBRCALL MESSAGE-READP)
THEN (PROMPTPRINT (IF (SETQ MESSAGE-LENGTH (SUBRCALL MESSAGE-READ THEN (PROMPTPRINT (IF (SETQ MESSAGE-LENGTH (SUBRCALL MESSAGE-READ (OR MESSAGE-BUFFER
(OR MESSAGE-BUFFER (SETQ
(SETQ MESSAGE-BUFFER MESSAGE-BUFFER
(ALLOCSTRING 1024))) (ALLOCSTRING
1024)))
1024)) 1024))
THEN (SUBSTRING MESSAGE-BUFFER 1 MESSAGE-LENGTH) THEN (SUBSTRING MESSAGE-BUFFER 1 MESSAGE-LENGTH)
ELSE "?? system message: polling failed"))) ELSE "?? system message: polling failed")))
@@ -188,8 +180,8 @@
(\\RAWTRACING (\\MAYBEPRINTPACKET PACKET 'RAWPUT))) (\\RAWTRACING (\\MAYBEPRINTPACKET PACKET 'RAWPUT)))
(COND (COND
((OR (|fetch| 10MBMULTICASTP |of| PACKET) ((OR (|fetch| 10MBMULTICASTP |of| PACKET)
(EQNSADDRESS.HOST \\MY.NSADDRESS (|fetch| 10MBDESTNSADDRESSBASE |of| PACKET (EQNSADDRESS.HOST \\MY.NSADDRESS (|fetch| 10MBDESTNSADDRESSBASE |of| PACKET)))
)))(* \; (* \;
 "We would hear this packet if our hardware let us, so fake receipt")  "We would hear this packet if our hardware let us, so fake receipt")
(PROG ((COPYPACKET (\\ALLOCATE.ETHERPACKET))) (PROG ((COPYPACKET (\\ALLOCATE.ETHERPACKET)))
(\\BLT (LOCF (|fetch| 10MBLENGTH |of| COPYPACKET)) (\\BLT (LOCF (|fetch| 10MBLENGTH |of| COPYPACKET))
@@ -226,10 +218,11 @@
(PROG ((CNTR 0) (PROG ((CNTR 0)
MESSAGE-BUFFER MESSAGE-LENGTH PACKET) MESSAGE-BUFFER MESSAGE-LENGTH PACKET)
LP (IF (SUBRCALL MESSAGE-READP) LP (IF (SUBRCALL MESSAGE-READP)
THEN (PROMPTPRINT (IF (SETQ MESSAGE-LENGTH (SUBRCALL MESSAGE-READ THEN (PROMPTPRINT (IF (SETQ MESSAGE-LENGTH (SUBRCALL MESSAGE-READ (OR MESSAGE-BUFFER
(OR MESSAGE-BUFFER (SETQ
(SETQ MESSAGE-BUFFER MESSAGE-BUFFER
(ALLOCSTRING 1024))) (ALLOCSTRING
1024)))
1024)) 1024))
THEN (SUBSTRING MESSAGE-BUFFER 1 MESSAGE-LENGTH) THEN (SUBSTRING MESSAGE-BUFFER 1 MESSAGE-LENGTH)
ELSE "?? system message: polling failed"))) ELSE "?? system message: polling failed")))
@@ -266,13 +259,8 @@
(|replace| 10MBLENGTH |of| PACKET |with| LENGTH) (|replace| 10MBLENGTH |of| PACKET |with| LENGTH)
(\\RCLK (LOCF (|fetch| EPTIMESTAMP |of| PACKET))) (\\RCLK (LOCF (|fetch| EPTIMESTAMP |of| PACKET)))
(|replace| EPNETWORK |of| PACKET |with| NDB) (|replace| EPNETWORK |of| PACKET |with| NDB)
(|replace| EPTYPE |of| PACKET |with| (|for| PAIR |in| (|replace| EPTYPE |of| PACKET |with| (|for| PAIR |in| \\10MBTYPE.TRANSLATIONS
\\10MBTYPE.TRANSLATIONS |bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET))
|bind| (TYPE _
(|fetch|
10MBTYPE
|of| PACKET
))
|when| (EQ TYPE (CAR PAIR)) |when| (EQ TYPE (CAR PAIR))
|do| (RETURN (CDR PAIR)) |do| (RETURN (CDR PAIR))
|finally| (RETURN TYPE))) |finally| (RETURN TYPE)))
@@ -280,11 +268,10 @@
(\\RAWTRACING (\\MAYBEPRINTPACKET PACKET 'RAWGET))) (\\RAWTRACING (\\MAYBEPRINTPACKET PACKET 'RAWGET)))
(RETURN (PROG1 PACKET (RETURN (PROG1 PACKET
(SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET)) (SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET))
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) (|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| \\ES.PENDING)
|with| \\ES.PENDING) (SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE |of|
(SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE \\MAIKO.INPUT.PACKET
|of| \\MAIKO.INPUT.PACKET)))) )))))
)
(T (RETURN NIL)))))) (T (RETURN NIL))))))
(\\NS.SETTIME (\\NS.SETTIME
@@ -302,7 +289,8 @@
(DAYTIME))) (DAYTIME)))
(\\MAIKO.10MBSTARTDRIVER (\\MAIKO.10MBSTARTDRIVER
(LAMBDA (NDB RESTARTFLG MYNSNUMBER) (* \; "Edited 4-May-91 15:50 by jds") (LAMBDA (NDB RESTARTFLG MYNSNUMBER) (* \; "Edited 30-Dec-2025 18:50 by nhb")
(* \; "Edited 4-May-91 15:50 by jds")
(* |;;| "Start the \"driver\" for the 10MB ethernet on Sun Medley. In particular, turn on the C ehternet code, queue up the first input packet, and start the \\10MBWATCHER process.") (* |;;| "Start the \"driver\" for the 10MB ethernet on Sun Medley. In particular, turn on the C ehternet code, queue up the first input packet, and start the \\10MBWATCHER process.")
@@ -312,13 +300,11 @@
(|replace| NDBTQ |of| NDB |with| (|create| SYSQUEUE)) (|replace| NDBTQ |of| NDB |with| (|create| SYSQUEUE))
(SETQ \\10MB.RAWPACKETQ (|create| SYSQUEUE)) (SETQ \\10MB.RAWPACKETQ (|create| SYSQUEUE))
(SETQ \\10MB.INPUT.TIMEOUT (TIMES \\RCLKSECOND \\10MB.EXPECTED.RECEIVE.INTERVAL)) (SETQ \\10MB.INPUT.TIMEOUT (TIMES \\RCLKSECOND \\10MB.EXPECTED.RECEIVE.INTERVAL))
(SETQ \\MAIKO.10MB.NDB NDB)
(\\10MB.TURNONETHER NDB NIL NIL (OR MYNSNUMBER T) (\\10MB.TURNONETHER NDB NIL NIL (OR MYNSNUMBER T)
0 0) 0 0)
(PROG ((CSB (|fetch| NDBCSB |of| NDB))) (PROG ((CSB (|fetch| NDBCSB |of| NDB)))
(OR \\MAIKO.INPUT.PACKET (SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET))) (OR \\MAIKO.INPUT.PACKET (SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET)))
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| (|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| \\ES.PENDING)
\\ES.PENDING)
(AND (SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE |of| (AND (SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE |of|
\\MAIKO.INPUT.PACKET \\MAIKO.INPUT.PACKET
)) ))
@@ -340,20 +326,16 @@
(PROG ((CSB (|fetch| NDBCSB |of| NDB))) (PROG ((CSB (|fetch| NDBCSB |of| NDB)))
(\\MAIKO.ETHERSUSPEND) (\\MAIKO.ETHERSUSPEND)
(OR CSB (|replace| NDBCSB |of| NDB |with| (SETQ CSB (OR CSB (|replace| NDBCSB |of| NDB |with| (SETQ CSB (LOCF (|fetch| DLETHERNET |of| \\IOPAGE
(LOCF (|fetch| DLETHERNET )))))
|of| \\IOPAGE)))))
(|replace| DLFIRSTOCB |of| CSB |with| 0) (|replace| DLFIRSTOCB |of| CSB |with| 0)
(|replace| DLFIRSTICB |of| CSB |with| 0) (|replace| DLFIRSTICB |of| CSB |with| 0)
(AND NSHOSTNUMBER (COND (AND NSHOSTNUMBER (COND
((EQ NSHOSTNUMBER T) ((EQ NSHOSTNUMBER T)
(\\BLT (LOCF (|fetch| DLLOCALHOST0 |of| CSB)) (\\BLT (LOCF (|fetch| DLLOCALHOST0 |of| CSB))
(LOCF (|fetch| (IFPAGE |NSHost0|) |of| (LOCF (|fetch| (IFPAGE |NSHost0|) |of| |\\InterfacePage|))
|\\InterfacePage|)
)
\\#WDS.NSHOSTNUMBER)) \\#WDS.NSHOSTNUMBER))
(T (\\STORENSHOSTNUMBER (LOCF (|fetch| DLLOCALHOST0 |of| (T (\\STORENSHOSTNUMBER (LOCF (|fetch| DLLOCALHOST0 |of| CSB))
CSB))
NSHOSTNUMBER)))) NSHOSTNUMBER))))
(AND OUTINTERRUPT (|replace| DLOUTPUTMASK |of| CSB |with| OUTINTERRUPT)) (AND OUTINTERRUPT (|replace| DLOUTPUTMASK |of| CSB |with| OUTINTERRUPT))
(AND ININTERRUPT (|replace| DLINPUTMASK |of| CSB |with| ININTERRUPT)) (AND ININTERRUPT (|replace| DLINPUTMASK |of| CSB |with| ININTERRUPT))
@@ -391,11 +373,6 @@
(DECLARE\: DOEVAL@COMPILE DONTCOPY (DECLARE\: DOEVAL@COMPILE DONTCOPY
(GLOBALVARS \\MAIKO.10MB.NDB)
)
(DECLARE\: DOEVAL@COMPILE DONTCOPY
(GLOBALVARS \\MAIKO.IO-INTERRUPT-FLAGS \\MAIKO.IO-INTERRUPT-VECTOR) (GLOBALVARS \\MAIKO.IO-INTERRUPT-FLAGS \\MAIKO.IO-INTERRUPT-VECTOR)
) )
) )
@@ -410,22 +387,23 @@
(* \; (* |;;|
"MAIKO handler for new interrupt-driven incoming ethernet communication, rather than polling for it.") "MAIKO handler for new interrupt-driven incoming ethernet communication, rather than polling for it.")
(DEFINEQ (DEFINEQ
(\\MAIKO.ETHER-INTERRUPT (\\MAIKO.ETHER-INTERRUPT
(LAMBDA NIL (* \; "Edited 4-May-91 13:46 by jds") (LAMBDA NIL (* \; "Edited 30-Dec-2025 18:36 by nhb")
(* \; "Edited 4-May-91 13:46 by jds")
(* |;;| "This routine gets called when 10MB input signals an interrupt. See if the \\MAIKO.INPUT.PACKET has indeed been processed, and if so, take care of it") (* |;;| "This routine gets called when 10MB input signals an interrupt. See if the \\MAIKO.INPUT.PACKET has indeed been processed, and if so, take care of it")
(PROG ((NDB \\MAIKO.10MB.NDB) (PROG ((NDB \\10MBLOCALNDB)
LENGTH) LENGTH)
(* |;;| "First, turn off the interrupt flag:") (* |;;| "First, turn off the interrupt flag:")
(REPLACE (INTERRUPTSTATE ETHERINTERRUPT) OF \\INTERRUPTSTATE WITH NIL) (|replace| (INTERRUPTSTATE ETHERINTERRUPT) |of| \\INTERRUPTSTATE |with| NIL)
(* |;;| "Now handle it:") (* |;;| "Now handle it:")
@@ -437,30 +415,24 @@
READ-MORE-LOOP READ-MORE-LOOP
(COND (COND
((NEQ (SETQ LENGTH (|fetch| DLFIRSTICB |of| (|fetch| NDBCSB ((NEQ (SETQ LENGTH (|fetch| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB)))
|of| NDB)))
\\ES.PENDING) \\ES.PENDING)
(|replace| 10MBLENGTH |of| PACKET |with| LENGTH) (|replace| 10MBLENGTH |of| PACKET |with| LENGTH)
(\\RCLK (LOCF (|fetch| EPTIMESTAMP |of| PACKET))) (\\RCLK (LOCF (|fetch| EPTIMESTAMP |of| PACKET)))
(|replace| EPNETWORK |of| PACKET |with| NDB) (|replace| EPNETWORK |of| PACKET |with| NDB)
(|replace| EPTYPE |of| PACKET (|replace| EPTYPE |of| PACKET
|with| (|for| PAIR |in| \\10MBTYPE.TRANSLATIONS |with| (|for| PAIR |in| \\10MBTYPE.TRANSLATIONS
|bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET |bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET))
)) |when| (EQ TYPE (CAR PAIR)) |do| (RETURN (CDR PAIR))
|when| (EQ TYPE (CAR PAIR)) |finally| (RETURN TYPE)))
|do| (RETURN (CDR PAIR)) |finally| (RETURN
TYPE)))
(COND (COND
(\\RAWTRACING (\\MAYBEPRINTPACKET PACKET 'RAWGET))) (\\RAWTRACING (\\MAYBEPRINTPACKET PACKET 'RAWGET)))
(\\HANDLE.RAW.PACKET PACKET) (\\HANDLE.RAW.PACKET PACKET)
(SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET)) (SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET))
(|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) (|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| \\ES.PENDING)
|with| \\ES.PENDING)
(COND (COND
((SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE ((SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE
|of| |of| \\MAIKO.INPUT.PACKET))
\\MAIKO.INPUT.PACKET)
)
(* |;;| (* |;;|
 "Returned T, so there's another packet waiting already. Process it.")  "Returned T, so there's another packet waiting already. Process it.")
@@ -471,7 +443,7 @@
(* \; (* |;;|
"MAIKO Log & Console message handling. Interrupt-driven message printing, instead of polled printing." "MAIKO Log & Console message handling. Interrupt-driven message printing, instead of polled printing."
) )
@@ -527,14 +499,13 @@
(RPAQ \\MAIKO.IO-INTERRUPT-FLAGS (\\CREATECELL \\FIXP)) (RPAQ \\MAIKO.IO-INTERRUPT-FLAGS (\\CREATECELL \\FIXP))
(RPAQQ \\MAIKO.IO-INTERRUPT-VECTOR NIL) (RPAQQ \\MAIKO.IO-INTERRUPT-VECTOR NIL)
(PUTPROPS MAIKOETHER COPYRIGHT ("Venue & Xerox Corporation" 1988 1989 1990 1991 2021))
(DECLARE\: DONTCOPY (DECLARE\: DONTCOPY
(FILEMAP (NIL (2591 22216 (\\10MB.RESTART.ETHER 2601 . 2761) (\\10MB.STARTDRIVER 2763 . 4522) ( (FILEMAP (NIL (2301 20787 (\\10MB.RESTART.ETHER 2311 . 2475) (\\10MB.STARTDRIVER 2477 . 3863) (
\\10MB.TURNOFFETHER 4524 . 4684) (\\10MB.TURNONETHER 4686 . 7056) (\\10MBSENDPACKET 7058 . 9429) ( \\10MB.TURNOFFETHER 3865 . 4029) (\\10MB.TURNONETHER 4031 . 6121) (\\10MBSENDPACKET 6123 . 8481) (
\\10MBWATCHER 9431 . 10770) (\\MAIKO.10MBSENDPACKET 10772 . 13150) (\\MAIKO.10MBWATCHER 13152 . 14497) \\10MBWATCHER 8483 . 9926) (\\MAIKO.10MBSENDPACKET 9928 . 12296) (\\MAIKO.10MBWATCHER 12298 . 13747) (
(\\MAIKO.ETHERRESUME 14499 . 14658) (\\MAIKO.ETHERSUSPEND 14660 . 14821) (\\MAIKO.INPUT.INTERRUPT \\MAIKO.ETHERRESUME 13749 . 13912) (\\MAIKO.ETHERSUSPEND 13914 . 14079) (\\MAIKO.INPUT.INTERRUPT 14081
14823 . 17085) (\\NS.SETTIME 17087 . 17367) (\\PUP.SETTIME 17369 . 17650) (\\MAIKO.10MBSTARTDRIVER . 15925) (\\NS.SETTIME 15927 . 16211) (\\PUP.SETTIME 16213 . 16498) (\\MAIKO.10MBSTARTDRIVER 16500 .
17652 . 19307) (\\MAIKO.10MBTURNONETHER 19309 . 21684) (\\MAIKO.10MB.RESTART.ETHER 21686 . 22039) ( 18150) (\\MAIKO.10MBTURNONETHER 18152 . 20247) (\\MAIKO.10MB.RESTART.ETHER 20249 . 20606) (
\\MAIKO.CHECKSUM 22041 . 22214)) (23271 26336 (\\MAIKO.ETHER-INTERRUPT 23281 . 26334)) (26458 27821 ( \\MAIKO.CHECKSUM 20608 . 20785)) (21751 24528 (\\MAIKO.ETHER-INTERRUPT 21761 . 24526)) (24652 26015 (
\\MAIKO.CONSOLE-LOG-PRINT 26468 . 27819)) (27867 28547 (\\MAIKO.IO-INTERRUPT 27877 . 28545))))) \\MAIKO.CONSOLE-LOG-PRINT 24662 . 26013)) (26061 26741 (\\MAIKO.IO-INTERRUPT 26071 . 26739)))))
STOP STOP

Binary file not shown.

View File

@@ -1,15 +1,13 @@
(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP" BASE 8) (DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 8)
(FILECREATED " 1-May-2021 19:49:18" {DSK}<home>larry>ilisp>medley>sources>PUP.;2 336270Q
changes to%: (FNS \PUP.SETTIME CANONICAL.HOSTNAME) (FILECREATED " 2-Apr-2026 09:13:04" {DSK}<Users>briggs>projects>medley>sources>PUP.;8 333567Q
(VARS PUPCOMS)
previous date%: "19-Jan-93 11:14:09" {DSK}<home>larry>ilisp>medley>sources>PUP.;1) :EDIT-BY "briggs"
:CHANGES-TO (FNS \LOOKUPPORT)
:PREVIOUS-DATE " 3-Feb-2026 18:40:52" {DSK}<Users>briggs>projects>medley>sources>PUP.;7)
(* ; "
Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
")
(PRETTYCOMPRINT PUPCOMS) (PRETTYCOMPRINT PUPCOMS)
@@ -35,7 +33,7 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(FNS SETUPPUP SWAPPUPPORTS GETPUP SENDPUP EXCHANGEPUPS DISCARDPUPS GETPUPWORD \PUPINIT) (FNS SETUPPUP SWAPPUPPORTS GETPUP SENDPUP EXCHANGEPUPS DISCARDPUPS GETPUPWORD \PUPINIT)
(FNS ETHERHOSTNAME ETHERHOSTNUMBER ETHERPORT BESTPUPADDRESS NETDAYTIME0 \PUP.SETTIME (FNS ETHERHOSTNAME ETHERHOSTNUMBER ETHERPORT BESTPUPADDRESS NETDAYTIME0 \PUP.SETTIME
\SETNEWTIME0 \NET.SETTIME NETDATE \LOOKUPPORT \PARSE.PORTCONSTANT \FIXLOCALNET) \SETNEWTIME0 \NET.SETTIME NETDATE \LOOKUPPORT \PARSE.PORTCONSTANT \FIXLOCALNET)
(FNS PORTSTRING OCTALSTRING) (FNS PORTSTRING)
(INITVARS (\ETHERPORTS (HASHARRAY 24Q)) (INITVARS (\ETHERPORTS (HASHARRAY 24Q))
(\ETHERTIMEOUT 3720Q) (\ETHERTIMEOUT 3720Q)
(\MAXETHERTRIES 4) (\MAXETHERTRIES 4)
@@ -175,8 +173,7 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(ACCESSFNS PUPDATASTART ((PUPCONTENTS (LOCF DATUM] (ACCESSFNS PUPDATASTART ((PUPCONTENTS (LOCF DATUM]
[ACCESSFNS PUP [(PUPCHECKSUMBASE (fetch PUPBASE of DATUM)) [ACCESSFNS PUP [(PUPCHECKSUMBASE (fetch PUPBASE of DATUM))
(PUPCHECKSUMLOC (\ADDBASE (fetch PUPBASE of DATUM) (PUPCHECKSUMLOC (\ADDBASE (fetch PUPBASE of DATUM)
(FOLDLO (SUB1 (fetch PUPLENGTH (FOLDLO (SUB1 (fetch PUPLENGTH of DATUM))
of DATUM))
BYTESPERWORD] BYTESPERWORD]
(BLOCKRECORD PUPCHECKSUMLOC ((PUPCHECKSUM WORD] (BLOCKRECORD PUPCHECKSUMLOC ((PUPCHECKSUM WORD]
(TYPE? (type? ETHERPACKET DATUM))) (TYPE? (type? ETHERPACKET DATUM)))
@@ -274,16 +271,19 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(RETURN T])]) (RETURN T])])
(\FIND.LOCALPUPHOSTNUMBER (\FIND.LOCALPUPHOSTNUMBER
[LAMBDA (NDB EVENT QUIET) (* bvm%: "26-Jul-84 16:27") [LAMBDA (NDB EVENT QUIET) (* ; "Edited 22-Dec-2025 11:58 by nhb")
(* ; "Edited 20-Dec-2025 13:51 by nhb")
(* bvm%: "26-Jul-84 16:27")
(* ;; "Finds out our pup address on this 10mb NDB") (* ;; "Finds out our pup address on this 10mb NDB")
(PROG (NEWNUMBER) (PROG (NEWNUMBER)
[COND [COND
((NOT (\ETHER-AVAILABLE))
(RETURN NIL))
[(SETQ NEWNUMBER (\LOOKUPPUPNUMBER \MY.NSHOSTNUMBER NDB)) [(SETQ NEWNUMBER (\LOOKUPPUPNUMBER \MY.NSHOSTNUMBER NDB))
(COND (COND
(PUPTRACEFLG (printout PUPTRACEFILE "My pup address = " (fetch PUPNET# (PUPTRACEFLG (printout PUPTRACEFILE "My pup address = " (fetch PUPNET# of NEWNUMBER)
of NEWNUMBER)
"#" "#"
(fetch PUPHOST# of NEWNUMBER) (fetch PUPHOST# of NEWNUMBER)
"#" T] "#" T]
@@ -969,11 +969,13 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(\DAYTIME0 (create FIXP]) (\DAYTIME0 (create FIXP])
(\LOOKUPPORT (\LOOKUPPORT
[LAMBDA (NAME) (* ; "Edited 1-Apr-87 12:37 by bvm:") [LAMBDA (NAME) (* ; "Edited 2-Apr-2026 09:08 by briggs")
(* ; "Edited 1-Apr-87 12:37 by bvm:")
(* ;;; "Looks up the ether address of NAME, returning a list of dotted pairs (nethost . socket), or NIL on failure") (* ;;; "Looks up the ether address of NAME, returning a list of dotted pairs (nethost . socket), or NIL on failure")
(AND NAME (AND NAME (EQ (OR \PUP.READY (ASSURE.PUP.READY))
T)
(PROG ((SOC (\GETMISCSOCKET)) (PROG ((SOC (\GETMISCSOCKET))
(OPUP (ALLOCATE.PUP)) (OPUP (ALLOCATE.PUP))
RESULT BUF LEN IPUP) RESULT BUF LEN IPUP)
@@ -983,33 +985,29 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
do (SELECTC (fetch PUPTYPE of IPUP) do (SELECTC (fetch PUPTYPE of IPUP)
(\PT.NAMERESPONSE (\PT.NAMERESPONSE
[COND [COND
((> (SETQ LEN (IQUOTIENT (FOLDLO (- (fetch PUPLENGTH ((> (SETQ LEN (IQUOTIENT (FOLDLO (- (fetch PUPLENGTH of IPUP)
of IPUP)
\PUPOVLEN) \PUPOVLEN)
BYTESPERWORD) BYTESPERWORD)
\PORTIDLEN)) \PORTIDLEN))
1) 1)
(COND (COND
(PUPTRACEFLG (printout PUPTRACEFILE (PUPTRACEFLG (printout PUPTRACEFILE
"Multiple response received for " NAME T "Multiple response received for " NAME T]
]
[RETURN (SETQ RESULT (from 1 to LEN [RETURN (SETQ RESULT (from 1 to LEN
as (PTR _ (fetch PUPCONTENTS as (PTR _ (fetch PUPCONTENTS of IPUP))
of IPUP))
by (\ADDBASE PTR \PORTIDLEN) by (\ADDBASE PTR \PORTIDLEN)
collect (CONS (fetch (PORT NETHOST) collect (CONS (fetch (PORT NETHOST)
of PTR) of PTR)
(fetch (PORT SOCKET) (fetch (PORT SOCKET) of PTR])
of PTR])
(\PT.NAME/ADDRERROR (\PT.NAME/ADDRERROR
(COND (COND
(PUPTRACEFLG (printout PUPTRACEFILE "Name lookup error for " (PUPTRACEFLG (printout PUPTRACEFILE "Name lookup error for " NAME
NAME ": " (GETPUPSTRING IPUP) ": " (GETPUPSTRING IPUP)
T))) T)))
(RETURN)) (RETURN))
NIL) finally (COND NIL) finally (COND
(PUPTRACEFLG (printout PUPTRACEFILE (PUPTRACEFLG (printout PUPTRACEFILE "Name lookup timed out"
"Name lookup timed out" T] T]
(AND IPUP (RELEASE.PUP IPUP)) (AND IPUP (RELEASE.PUP IPUP))
(RELEASE.PUP OPUP) (RELEASE.PUP OPUP)
(RETURN RESULT]) (RETURN RESULT])
@@ -1080,11 +1078,6 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(COND (COND
(SOCKET (OCTALSTRING SOCKET)) (SOCKET (OCTALSTRING SOCKET))
(T ""]) (T ""])
(OCTALSTRING
[LAMBDA (N) (* bvm%: "21-JUL-81 12:16")
(GLOBALRESOURCE (\NUMSTR \NUMSTR1)
(CONCAT (\CONVERTNUMBER N 10Q NIL NIL \NUMSTR \NUMSTR1])
) )
(RPAQ? \ETHERPORTS (HASHARRAY 24Q)) (RPAQ? \ETHERPORTS (HASHARRAY 24Q))
@@ -1183,13 +1176,11 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
,VALUE)) ,VALUE))
(DEFOPTIMIZER GETPUPBYTE (PUPARG BYTE#) (DEFOPTIMIZER GETPUPBYTE (PUPARG BYTE#)
`(\GETBASEBYTE (fetch PUPCONTENTS of (\DTEST ,PUPARG `(\GETBASEBYTE (fetch PUPCONTENTS of (\DTEST ,PUPARG 'ETHERPACKET))
'ETHERPACKET))
,BYTE#)) ,BYTE#))
(DEFOPTIMIZER PUTPUPBYTE (PUPARG BYTE# VALUE) (DEFOPTIMIZER PUTPUPBYTE (PUPARG BYTE# VALUE)
`(\PUTBASEBYTE (fetch PUPCONTENTS of (\DTEST ,PUPARG `(\PUTBASEBYTE (fetch PUPCONTENTS of (\DTEST ,PUPARG 'ETHERPACKET))
'ETHERPACKET))
,BYTE# ,BYTE#
,VALUE)) ,VALUE))
@@ -2469,32 +2460,30 @@ Copyright (c) 3676-3711, 3745 by Venue & Xerox Corporation.
(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 3745Q))
(DECLARE%: DONTCOPY (DECLARE%: DONTCOPY
(FILEMAP (NIL (25631Q 61606Q (\STARTPUP 25643Q . 26515Q) (ASSURE.PUP.READY 26517Q . 34612Q) ( (FILEMAP (NIL (25073Q 61361Q (\STARTPUP 25105Q . 25757Q) (ASSURE.PUP.READY 25761Q . 34054Q) (
\FIND.LOCALPUPHOSTNUMBER 34614Q . 37012Q) (\PROMPT.FOR.PUP.NUMBER 37014Q . 41034Q) (\HANDLE.RAW.PUP \FIND.LOCALPUPHOSTNUMBER 34056Q . 36565Q) (\PROMPT.FOR.PUP.NUMBER 36567Q . 40607Q) (\HANDLE.RAW.PUP
41036Q . 57136Q) (\FORWARD.PUP 57140Q . 60060Q) (\SETPUPCHECKSUM 60062Q . 61604Q)) (66376Q 73470Q ( 40611Q . 56711Q) (\FORWARD.PUP 56713Q . 57633Q) (\SETPUPCHECKSUM 57635Q . 61357Q)) (66125Q 73217Q (
\PUPERROR 66410Q . 73466Q)) (73527Q 112663Q (SETUPPUP 73541Q . 76727Q) (SWAPPUPPORTS 76731Q . 77546Q) \PUPERROR 66137Q . 73215Q)) (73256Q 112412Q (SETUPPUP 73270Q . 76456Q) (SWAPPUPPORTS 76460Q . 77275Q)
(GETPUP 77550Q . 102462Q) (SENDPUP 102464Q . 106306Q) (EXCHANGEPUPS 106310Q . 110346Q) (DISCARDPUPS (GETPUP 77277Q . 102211Q) (SENDPUP 102213Q . 106035Q) (EXCHANGEPUPS 106037Q . 110075Q) (DISCARDPUPS
110350Q . 111154Q) (GETPUPWORD 111156Q . 111475Q) (\PUPINIT 111477Q . 112661Q)) (112664Q 154244Q ( 110077Q . 110703Q) (GETPUPWORD 110705Q . 111224Q) (\PUPINIT 111226Q . 112410Q)) (112413Q 153423Q (
ETHERHOSTNAME 112676Q . 122024Q) (ETHERHOSTNUMBER 122026Q . 122441Q) (ETHERPORT 122443Q . 126162Q) ( ETHERHOSTNAME 112425Q . 121553Q) (ETHERHOSTNUMBER 121555Q . 122170Q) (ETHERPORT 122172Q . 125711Q) (
BESTPUPADDRESS 126164Q . 136224Q) (NETDAYTIME0 136226Q . 136557Q) (\PUP.SETTIME 136561Q . 137206Q) ( BESTPUPADDRESS 125713Q . 135753Q) (NETDAYTIME0 135755Q . 136306Q) (\PUP.SETTIME 136310Q . 136735Q) (
\SETNEWTIME0 137210Q . 140270Q) (\NET.SETTIME 140272Q . 141361Q) (NETDATE 141363Q . 141720Q) ( \SETNEWTIME0 136737Q . 140017Q) (\NET.SETTIME 140021Q . 141110Q) (NETDATE 141112Q . 141447Q) (
\LOOKUPPORT 141722Q . 147561Q) (\PARSE.PORTCONSTANT 147563Q . 152673Q) (\FIXLOCALNET 152675Q . 154242Q \LOOKUPPORT 141451Q . 146740Q) (\PARSE.PORTCONSTANT 146742Q . 152052Q) (\FIXLOCALNET 152054Q . 153421Q
)) (154245Q 155602Q (PORTSTRING 154257Q . 155246Q) (OCTALSTRING 155250Q . 155600Q)) (156174Q 165305Q ( )) (153424Q 154427Q (PORTSTRING 153436Q . 154425Q)) (155021Q 164132Q (CLEARPUP 155033Q . 157546Q) (
CLEARPUP 156206Q . 160721Q) (PUTPUPWORD 160723Q . 161250Q) (GETPUPBYTE 161252Q . 161575Q) (PUTPUPBYTE PUTPUPWORD 157550Q . 160075Q) (GETPUPBYTE 160077Q . 160422Q) (PUTPUPBYTE 160424Q . 160755Q) (
161577Q . 162130Q) (GETPUPSTRING 162132Q . 163563Q) (GETPUPSTREAM 163565Q . 164514Q) (PUTPUPSTRING GETPUPSTRING 160757Q . 162410Q) (GETPUPSTREAM 162412Q . 163341Q) (PUTPUPSTRING 163343Q . 164130Q)) (
164516Q . 165303Q)) (167410Q 175227Q (READPLIST 167422Q . 175225Q)) (175410Q 200610Q ( 165723Q 173542Q (READPLIST 165735Q . 173540Q)) (173723Q 177123Q (\CANONICAL.HOSTNAME 173735Q . 175002Q
\CANONICAL.HOSTNAME 175422Q . 176467Q) (\CANONICALIZE.PUP.HOSTNAME 176471Q . 200606Q)) (203163Q ) (\CANONICALIZE.PUP.HOSTNAME 175004Q . 177121Q)) (201460Q 234665Q (\PUPGATELISTENER 201472Q . 205323Q
236370Q (\PUPGATELISTENER 203175Q . 207026Q) (\HANDLE.PUP.ROUTING.INFO 207030Q . 221367Q) (\ROUTE.PUP ) (\HANDLE.PUP.ROUTING.INFO 205325Q . 217664Q) (\ROUTE.PUP 217666Q . 223521Q) (\LOCATE.PUPNET 223523Q
221371Q . 225224Q) (\LOCATE.PUPNET 225226Q . 231763Q) (SORT.PUPHOSTS.BY.DISTANCE 231765Q . 234241Q) ( . 230260Q) (SORT.PUPHOSTS.BY.DISTANCE 230262Q . 232536Q) (\PUPNET.CLOSERP 232540Q . 233721Q) (
\PUPNET.CLOSERP 234243Q . 235424Q) (PUPNET.DISTANCE 235426Q . 236366Q)) (250017Q 257771Q ( PUPNET.DISTANCE 233723Q . 234663Q)) (246060Q 256032Q (OPENPUPSOCKET 246072Q . 252553Q) (CLOSEPUPSOCKET
OPENPUPSOCKET 250031Q . 254512Q) (CLOSEPUPSOCKET 254514Q . 256173Q) (PUPSOCKETNUMBER 256175Q . 256426Q 252555Q . 254234Q) (PUPSOCKETNUMBER 254236Q . 254467Q) (PUPSOCKETFROMNUMBER 254471Q . 255130Q) (
) (PUPSOCKETFROMNUMBER 256430Q . 257067Q) (PUPSOCKETEVENT 257071Q . 257350Q) (\FLUSHPUPSOCQUEUE PUPSOCKETEVENT 255132Q . 255411Q) (\FLUSHPUPSOCQUEUE 255413Q . 256030Q)) (256033Q 256600Q (
257352Q . 257767Q)) (257772Q 260537Q (\GETMISCSOCKET 260004Q . 260535Q)) (300551Q 313341Q ( \GETMISCSOCKET 256045Q . 256576Q)) (276276Q 311066Q (PUP.ECHOSERVER 276310Q . 301115Q) (PUP.ECHOUSER
PUP.ECHOSERVER 300563Q . 303370Q) (PUP.ECHOUSER 303372Q . 313337Q)) (313372Q 322523Q (\PEEKPUP 313404Q 301117Q . 311064Q)) (311117Q 320250Q (\PEEKPUP 311131Q . 316262Q) (\MAYBEPEEKPUP 316264Q . 320246Q)) (
. 320535Q) (\MAYBEPEEKPUP 320537Q . 322521Q)) (323124Q 334361Q (PRINTPUP 323136Q . 327306Q) ( 320651Q 332106Q (PRINTPUP 320663Q . 325033Q) (PRINTPUPROUTE 325035Q . 327002Q) (PRINTPUPDATA 327004Q
PRINTPUPROUTE 327310Q . 331255Q) (PRINTPUPDATA 331257Q . 331727Q) (PRINTERRORPUP 331731Q . 332431Q) ( . 327454Q) (PRINTERRORPUP 327456Q . 330156Q) (PUPTRACE 330160Q . 330471Q) (PRINTCONSTANT 330473Q .
PUPTRACE 332433Q . 332744Q) (PRINTCONSTANT 332746Q . 334357Q))))) 332104Q)))))
STOP STOP

Binary file not shown.