1
0
mirror of synced 2026-04-04 05:40:59 +00:00
Files
Interlisp.medley/sources/PUP.LCOM

550 lines
34 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
(DEFINE-FILE-INFO :PACKAGE "INTERLISP" :READTABLE "INTERLISP" :BASE 8)
(FILECREATED " 2-Apr-2026 09:13:13" ("compiled on " {DSK}<Users>briggs>projects>medley>sources>PUP.;8)
" 2-Apr-2026 08:35:16" tcompl'd in "FULL 2-Apr-2026 ..." dated " 2-Apr-2026 08:35:31")
(FILECREATED " 2-Apr-2026 09:13:04" {DSK}<Users>briggs>projects>medley>sources>PUP.;8 333567Q :EDIT-BY
"briggs" :CHANGES-TO (FNS \LOOKUPPORT) :PREVIOUS-DATE " 3-Feb-2026 18:40:52"
{DSK}<Users>briggs>projects>medley>sources>PUP.;7)
\STARTPUP :D8
(L (0 EVENT)) `ˆd ¿µö@ (27Q ASSURE.PUP.READY 14Q \FLUSHPUPSOCQUEUE)
(4 \PUPSOCKETS)
()
ASSURE.PUP.READYA0001 :D8
(NAME SI::*UNWIND-PROTECT* I 0 SI::*CLEANUP-FORMS* F 3 QUIET) ~`hg `’±Ž`g ` ¿` ¿Hµg¿j¿Id• hʇjð«HʇZ°6J³)HSd j¿g ¿Id• hH‡¿HÉXµ«`ÊáJØ¿J¿`šg ‰g ¿l¿`Õ`l ¿`šI²-I °$IµFoggg`
¿g ¿i¿` ¿i °Ö(572Q RESTART.PROCESS 563Q BLOCK 555Q NOTIFY.EVENT 533Q \ADD.PACKET.FILTER 520Q ADD.PROCESS 454Q DEL.PROCESS 425Q \CLOCK0 363Q \DEL.PACKET.FILTER 350Q \ADD.PACKET.FILTER 243Q DEL.PROCESS 232Q \DEL.PACKET.FILTER 206Q \FIND.LOCALPUPHOSTNUMBER 142Q DEL.PROCESS 104Q CLRHASH 64Q \CLEAR.ROUTING.TABLE 47Q FIND.PROCESS 17Q OBTAIN.MONITORLOCK)
(550Q \PUP.READY.EVENT 542Q \PUP.READY 526Q \HANDLE.RAW.PUP 512Q \PUP.READY.EVENT 505Q AFTEREXIT 500Q SYSTEM 473Q RESTARTABLE 442Q \GATEWAYFLG 434Q \PUPROUTER.PROBETIMER 414Q \PUPROUTER.PROBETIMER 406Q FIXP 401Q \PUPROUTER.PROBETIMER 373Q \PUPROUTER.PROBECOUNT 356Q \HANDLE.RAW.3TO10 343Q \HANDLE.RAW.3TO10 335Q \10MBFLG 327Q \OLDPUPHOST# 320Q \LOCALPUPNETHOST 305Q NDB 300Q \LOCALNDBS 266Q NDB 253Q NDB 225Q \HANDLE.RAW.PUP 217Q \LOCALPUPNETHOST 165Q NDB 151Q NDB 131Q \LOCALPUPNETHOST 122Q \PUP.READY 115Q NO 77Q \ETHERPORTS 71Q \PUP.ROUTING.TABLE 57Q \PUP.ROUTING.TABLE 42Q \PUPGATELISTENER 35Q \LOCALNDBS 24Q \PUP.READY 12Q WITH.MONITOR 4 \PUP.READY.LOCK)
( 466Q (\PUPGATELISTENER))
ASSURE.PUP.READY :D8
(P 1 SI::*RESETFORMS* P 0 SI::*LOCKED-MONITOR* I 0 QUIET)  g ¿$(26Q SI::MONITOR-UNWIND 21Q \MVLIST 14Q ASSURE.PUP.READYA0001)
(7 SI::MONITOR-UNWIND)
()
\FIND.LOCALPUPHOSTNUMBER :D8
(L (2 QUIET 1 EVENT 0 NDB)) ¨¡h`@
X²c`¢±ƒo`
¿Hã`
¿o`
¿Hlÿå`
¿o`
¿` °)B³ŽAgð´`jðhð´ ` X¿Hlÿå(237Q \PROMPT.FOR.PUP.NUMBER 232Q OCTALSTRING 167Q TERPRI 154Q PRIN1 134Q PRIN1 115Q PRIN1 75Q PRIN1 60Q PRIN1 25Q \LOOKUPPUPNUMBER 7 \ETHER-AVAILABLE)
(225Q \OLDPUPHOST# 212Q \OLDPUPHOST# 202Q AFTERLOGOUT 162Q PUPTRACEFILE 147Q PUPTRACEFILE 127Q PUPTRACEFILE 110Q PUPTRACEFILE 70Q PUPTRACEFILE 53Q PUPTRACEFILE 35Q PUPTRACEFLG 17Q \MY.NSHOSTNUMBER)
( 142Q "#" 103Q "#" 46Q "My pup address = ")
\PROMPT.FOR.PUP.NUMBERA0001 :D8
(NAME SI::*UNWIND-PROTECT* I 0 SI::*CLEANUP-FORMS* F 2 READBUF F 3 DEFAULT F 4 \TERM.OFD) Žo ¿¿hiR oShddi
g
¹i ¿I3 ™Ijñ•lþIñ³3i ¿oi
¿i ¿i ¿i ¿T ¿°¡IHH ¿(212Q BKBUFS 176Q FLASHWINDOW 167Q CLEARBUF 160Q TERPRI 151Q TERPRI 142Q PRIN1 126Q TERPRI 101Q TERPRI 72Q PACK* 60Q PROMPTFORWORD 35Q CLBUFS 24Q SYSBUF 16Q LINBUF 11Q PROVIDE.PROMPTING.WINDOW)
(65Q Q)
( 134Q "Pup host number must be between 1 and 376" 45Q "Please enter my pup host number (in octal):" 4
"Ethernet info needed")
\PROMPT.FOR.PUP.NUMBER :D8
(P 2 RESETSTATE P 1 SI::*RESETFORMS* P 0 LISPXHIST I 0 DEFAULT F 3 LISPXHIST) S!g ¿$(27Q SI::RESETUNWIND 22Q \MVLIST 15Q \PROMPT.FOR.PUP.NUMBERA0001)
(10Q SI::RESETUNWIND)
()
\HANDLE.RAW.PUP :D8
(L (1 TYPE 0 PACKET) P 12Q \INTERRUPTABLE) = Anð´‚±3`©@ ¿±"@É H©@ ¿± @Ê&‡Hʇð³@dÊ&‡jð© ¿±ê@Ê&[HÊ\ð³Ljð­Kjð©@ ¿±Æ@È'@È(_¿_¿`h¾]µehZµ‚±¤`Ÿg`
¿@dÊ#‡kð²ydÈ(lð²qdÈ'jð²jdl"Ð@È"kÙâÐÈYnÿÿð³1I@l"Ð@È"kØâkÙ
ð³l°Oð™NdÈOð³<C3B0>¿M°…lÍ#¿@ ¿@g¿h@
¿±l
¿±ÈJÈýñ«@l
¿±è`²5@l"Ð@È"kÙâÐÈYnÿÿð³!I@l"Ð@È"kØâkÙ
ðª@k
¿±®Kjð@LÏ&°oLjð²kH¿Hʇjð³KáHʇØ¿Ki
µ`Khddddd
_j¿Oh¿OH¿Oi¿
JÉ@
¿JJÈkÔÍ¿JÉ
i(1071Q NOTIFY.EVENT 1030Q \ENQUEUE 750Q \ADD.ROUTING.TABLE.ENTRY 717Q \LOCATE.PUPNET 612Q \PUPERROR 601Q \CHECKSUM 520Q \PUPERROR 462Q \PUPERROR 447Q SENDPUP 421Q SWAPPUPPORTS 351Q \CHECKSUM 252Q PRIN1 162Q \FORWARD.PUP 116Q \FORWARD.PUP 55Q RELEASE.PUP 26Q RELEASE.PUP)
(1062Q PUPSOCKET 1045Q PUPSOCKET 1037Q PUPSOCKET 1020Q PUPSOCKET 726Q \PUP.ROUTING.TABLE 707Q \LOCALPUPNETHOST 676Q NDB 657Q NDB 644Q NDB 531Q \PUP.CHECKSUMFLG 503Q PUPSOCKET 473Q PUPSOCKET 435Q FREE 430Q ETHERPACKET 245Q PUPTRACEFILE 240Q & 232Q PUPTRACEFLG 207Q \PUPSOCKETS 135Q NDB 73Q NDB 40Q ETHERPACKET 17Q \PUP.READY)
()
\FORWARD.PUP :D8
(L (0 PUP)) ;`@ `@ `²@gho ¿@ (70Q \RELEASE.ETHERPACKET 61Q PRINTPUP 30Q \GATEWAY.FORWARD.PUP 13Q \MAYBEPEEKPUP)
(46Q GET 36Q PUPTRACEFLG 21Q \GATEWAYFLG 4 \PEEKPUPNUMBER)
( 54Q "PUP not addressed to this host: ")
\SETPUPCHECKSUM :D8
(L (0 PUP)) ,@l"Ð@È"kÙâÐ`²@l"Ð@È"kØâkÙ
nÿÿÍi(42Q \CHECKSUM)
(17Q \PUP.CHECKSUMFLG)
()
\PUPERROR :D8
(L (2 MSG 1 ERRCODE 0 PUP)) ä`@ @dÊ&‡jð±ÈdÊ#‡lð’±½¿`µa@l,Ð@l"Ðl
Ä@AÍ6@jÍ7@llØldÚØ@l8ÐjBµA`µo ØÍ"@lÏ#‡@ @gh@
gð³o`
¿A`µA`
¿` ¿`gð’±ÿ[@ ¿±ÿQ (341Q \RELEASE.ETHERPACKET 330Q PRINTPUP 302Q TERPRI 267Q PRIN1 240Q PRIN1 210Q SENDPUP 164Q SWAPPUPPORTS 145Q \PUTBASESTRING 13Q \MAYBEPEEKPUP)
(315Q RAW 310Q PUPTRACEFLG 275Q PUPTRACEFILE 262Q PUPTRACEFILE 247Q PUPERRORMESSAGES 233Q PUPTRACEFILE 216Q PEEK 177Q FREE 172Q ETHERPACKET 126Q PUPERRORMESSAGES 50Q PUPTRACEFLG 4 \PEEKPUPNUMBER)
( 226Q "Incoming packet dropped because: " 140Q "")
SETUPPUP :D8
(L (6 REQUEUE 5 SOC 4 ID 3 TYPE 2 DESTSOCKET 1 DESTHOST 0 PUP)) `¥¿@blÍ"@CÍ#@l"Ðlnÿÿ`ñ¡k†` @Ai
bd3  Í&@l"ÐlAµB F™@F¿Eµjð³âA°ß(166Q OPENPUPSOCKET 142Q \PUTBASEFIXP 111Q ETHERPORT 101Q \PUTBASEFIXP 12Q ASSURE.PUP.READY)
(152Q ETHERPACKET 74Q \PUPCOUNTER 65Q \PUPCOUNTER 54Q \PUPCOUNTER 21Q ETHERPACKET 4 \PUP.READY)
()
SWAPPUPPORTS :D8
(L (0 PUP)) N@l"Ð@l"ÐHIÈIHÈÍ¿Í@l"Ð@l"ÐHIÈIHÈÍ¿Í@l"Ð@l"ÐHIÈIHÈ Í¿ZÍ JNIL
NIL
()
GETPUP :D8
(L (1 WAIT 0 PUPSOC) P 2 \INTERRUPTABLE) ì@b  @@ÈmÿÔÍ¿HµBAµ
±°ið³Iµ'A3 ¨Al
¿l Aö¹@É
Ii ¿°¥ ²îhÈnð²`²fHg
°Y`´Q` ¿o`
¿H`
¿o`
¿@`
¿` ¿hXH(345Q TERPRI 332Q PRIN1 316Q PRIN1 276Q PRIN1 262Q PRIN1 242Q TERPRI 217Q \MAYBEPRINTPACKET 154Q TIMEREXPIRED? 144Q AWAIT.EVENT 127Q \CLOCK0 116Q \LISPERROR 70Q BLOCK 25Q \DEQUEUE)
(340Q PUPTRACEFILE 325Q PUPTRACEFILE 311Q PUPTRACEFILE 271Q PUPTRACEFILE 255Q PUPTRACEFILE 235Q PUPTRACEFILE 226Q PUPTRACEFLG 212Q GET 202Q PUPTRACEFLG 165Q ETHERPACKET 44Q PUPSOCKET 36Q PUPSOCKET 5 PUPSOCKET)
( 304Q " arrived on " 250Q "Non-PUP packet ")
SENDPUP :D8
(L (1 PUP 0 PUPSOC)) öAb@˜@b¿AnÍAjÏ# AlÐw@²AÈ+jð²AÈ*jð<6A>A@ÈÍ*¿A@ÈÍ+¿`µið«A gAdÊjð³*¿`²o`
¿` g X³&`²Ao` ¿A gA `Ag
¿HɹHAlI¿h(362Q BLOCK 334Q \MAYBEPRINTPACKET 313Q \SETPUPCHECKSUM 277Q \REQUEUE.ETHERPACKET 270Q PRINTPUPROUTE 236Q \ROUTE.PUP 223Q TERPRI 210Q PRIN1 135Q \REQUEUE.ETHERPACKET 124Q ASSURE.PUP.READY)
(343Q NDB 327Q PUT 320Q PUPTRACEFLG 304Q NoRouting 263Q PUPTRACEFILE 246Q PUPTRACEFLG 230Q AlreadyQueued 216Q PUPTRACEFILE 203Q PUPTRACEFILE 167Q PUPTRACEFLG 152Q ETHERPACKET 142Q NoEther 115Q \PUP.READY 30Q ETHERPACKET 17Q PUPSOCKET 5 ETHERPACKET)
( 256Q "[Put fails: no routing]" 176Q "[Packet not sent--already being transmitted]")
EXCHANGEPUPS :D8
(L (4 TIMEOUT 3 IDFILTER 2 DUMMY 1 OUTPUP 0 SOC)) e@ @A
l `ö@É
@ Z²!C²Jl"Ðl
Al"Ðl
ÙjðJIHi ¿H ²Éh(137Q TIMEREXPIRED? 130Q AWAIT.EVENT 112Q \GETBASEFIXP 77Q \GETBASEFIXP 56Q GETPUP 31Q \CLOCK0 21Q SENDPUP 12Q DISCARDPUPS)
(41Q \ETHERTIMEOUT 5 PUPSOCKET)
()
DISCARDPUPS :D8
(L (0 SOC) P 0 \INTERRUPTABLE) -@b@È@É ¿@¿(37Q \FLUSH.PACKET.QUEUE)
(46Q PUPSOCKET 30Q PUPSOCKET 20Q PUPSOCKET 5 PUPSOCKET)
()
GETPUPWORD :D8
(L (1 WORD# 0 PUP)) @AÐÈ,NIL
(5 ETHERPACKET)
()
\PUPINIT :D8
NIL EoHµ`lðµi ¹gI
d «I i ¿HX°Ç(75Q PUTD 67Q GETD 60Q \DEFINEDP 52Q PACK* 34Q INITPUPLEVEL1)
(44Q \ 21Q \MACHINETYPE)
( 4 (SETUPPUP EXCHANGEPUPS GETPUP SENDPUP CLEARPUP GETPUPSTRING PUTPUPSTRING ALLOCATE.PUP RELEASE.PUP CREATESOCKET FLUSHSOCKET))
ETHERHOSTNAME :D8
(L (1 USE.OCTAL.DEFAULT 0 PORT)) êjc`µið¡h `lÿå°)3 µ%@dY3 •@3 µ@¨@ [µg@l
[dãjð™`ãáKØ»Jjll“hHi
Jl"ÐdÈlÔÍ¿Jl,Ð]KÍMkI `_¿k_Oó²`¢± o±¹K°ŸHJhi OkÔ°ÒÊ#‡dl”𢱙¿N \QOjð¥ <00>È_¿Ojð¥ <00>É_¿OmÿØOl
Ø_¿Oj𥠂ʇlDð_¿OOñ³,O—OOÐÈ„OOÂ_¿l8Oñ´l0OñhˆOkØ_°Ói²bh\°]lð¢±ÿU`²Po`
¿KI
`
¿o`
¿N `
¿` ¿NN ¿J A´KIjðhð´I
(747Q PORTSTRING 723Q RELEASE.PUP 714Q RELEASE.PUP 703Q TERPRI 670Q PRIN1 656Q GETPUPSTRING 647Q PRIN1 627Q PRIN1 615Q PORTSTRING 605Q PRIN1 445Q %%ARRAY-TYPE-NUMBER 423Q \GETBASEFIXP 377Q %%ARRAY-BASE 353Q %%ARRAY-OFFSET 331Q GETPUPSTRING 276Q EXCHANGEPUPS 216Q \PUTBASEFIXP 161Q SETUPPUP 122Q \LISPERROR 107Q \PARSE.PORTCONSTANT 31Q ASSURE.PUP.READY 12Q ALLOCATE.PUP 4 \GETMISCSOCKET)
(676Q PUPTRACEFILE 663Q PUPTRACEFILE 642Q PUPTRACEFILE 622Q PUPTRACEFILE 600Q PUPTRACEFILE 564Q PUPTRACEFLG 243Q PUPTRACEFLG 223Q \MAXETHERTRIES 135Q \LOCALPUPNETHOST 46Q \LOCALPUPNETHOST 22Q \PUP.READY)
( 635Q ": " 573Q "Address lookup error for " 254Q "Address lookup timed out")
ETHERHOSTNUMBER :D8
(L (0 NAME)) `¥¿@µ` (31Q BESTPUPADDRESS 12Q ASSURE.PUP.READY)
(23Q \LOCALPUPNETHOST 4 \PUP.READY)
()
ETHERPORT :D8
(L (2 MULTFLG 1 ERRORFLG 0 NAME)) t@d3 ˜j °%d²3 @3 @ ŽA´L@ X—B“HhH@`
µ@d ` X•B³ÝHA´
o@
(161Q ERROR 133Q PUTHASH 121Q \LOOKUPPORT 110Q GETHASH 63Q \PARSE.PORTCONSTANT 55Q \ILLEGAL.ARG 43Q \FIXLOCALNET 16Q \FIXLOCALNET)
(126Q \ETHERPORTS 103Q \ETHERPORTS)
( 153Q "host not found")
BESTPUPADDRESS :D8
(L (1 ERRORSTREAM 0 HOST)) C @`µið³xh²@3 œ@3 —@ °A´éoº°A@ Xµ\@`
µ@d ` X²RlkR
MLó²VA´©oZAdg𢱢¿J@
¿@d3 ²ˆj °¥ãYjð¨I`ãðHHh¸°²A´±ÿaoº°¸l_¿h_¾H°,d[ã _™lO_ñ¢i¾ŽOOñ˜O_¿K_¿µÕO²NœO`ñ“MkñO` ¿MkÔ]±ÿJ ¿JA
¿oA
¿@A
h(477Q PRIN1 467Q PRIN1 453Q PRIN1 443Q TERPRI 426Q BLOCK 323Q \LOCATE.PUPNET 225Q \FIXLOCALNET 207Q ERROR 133Q PUTHASH 121Q \LOOKUPPORT 110Q GETHASH 72Q \PARSE.PORTCONSTANT 47Q \FIXLOCALNET 16Q ASSURE.PUP.READY)
(421Q \ETHERTIMEOUT 403Q \PUP.ROUTING.TABLE.RADIUS 243Q \LOCALPUPNETHOST 172Q ERROR 126Q \ETHERPORTS 103Q \ETHERPORTS 7 \PUP.READY)
( 461Q ": " 272Q "Host not found" 161Q "No route to host" 61Q "Invalid port specification")
NETDAYTIME0 :D8
NIL i (5 \NET.SETTIME)
NIL
()
\PUP.SETTIME :D8
(L (0 RETFLG) F 0 \TimeZoneComp) @@ ˜lh}1c¿(33Q DAYTIME 26Q \PROCESS.RESET.TIMERS 7 STRINGP)
NIL
()
\SETNEWTIME0 :D8
(L (0 NEWTIME)) fl @ @HÙ¹jIñ¡IjIÙn´B` ¿o`
¿o `
¿o`
h(142Q PRIN1 122Q PRIN1 110Q DATE 75Q PRIN1 55Q TERPRI 20Q \SETDAYTIME0 7 \DAYTIME0)
(135Q PROMPTWINDOW 115Q PROMPTWINDOW 70Q PROMPTWINDOW 50Q PROMPTWINDOW)
( 130Q "]" 103Q (DATEFORMAT TIME.ZONE) 63Q "[Time reset to ")
\NET.SETTIME :D8
(L (0 RETFLG)) A`d²9ÊdlðŸ¿@ µ#@ l
ð´@ µ`´@ (76Q \PUP.SETTIME 57Q \NS.SETTIME 43Q \NS.SETTIME 33Q \PUP.SETTIME)
(66Q \PUP.READY 14Q NDB 4 \LOCALNDBS)
()
NETDATE :D8
NIL µ
l oæ (31Q GDATE 16Q \DAYTIME0 4 NETDAYTIME0)
NIL
( 23Q -20000000000Q)
\LOOKUPPORT :D8
(L (0 NAME)) i
@´‚±c`µ´‚±ORIjll<>hHi
I@
`½k^Mó±ìHIhi NkÔ°êÊ#‡dlð¢±<00>¿LÈ"lÕâlÛ[dkó²2¿`²)o`
¿@`
¿` ¿KkLl,Ð3 OOó³8OÈOk
_¿OµOh__¿OkÔ_¿OlÐ_¿°ÍO&_¿°éOZ°dlð¢±ÿ``²Wo`
¿@`
¿o`
¿L `²o`
¿` ¿LL ¿I J(545Q RELEASE.PUP 536Q RELEASE.PUP 525Q TERPRI 512Q PRIN1 463Q GETPUPSTRING 454Q PRIN1 434Q PRIN1 420Q PRIN1 303Q \GETBASEFIXP 246Q TERPRI 233Q PRIN1 217Q PRIN1 124Q EXCHANGEPUPS 75Q PUTPUPSTRING 66Q SETUPPUP 44Q ALLOCATE.PUP 37Q \GETMISCSOCKET 22Q ASSURE.PUP.READY)
(520Q PUPTRACEFILE 505Q PUPTRACEFILE 471Q PUPTRACEFLG 447Q PUPTRACEFILE 427Q PUPTRACEFILE 413Q PUPTRACEFILE 377Q PUPTRACEFLG 241Q PUPTRACEFILE 226Q PUPTRACEFILE 212Q PUPTRACEFILE 176Q PUPTRACEFLG 102Q \MAXETHERTRIES 13Q \PUP.READY)
( 500Q "Name lookup timed out" 442Q ": " 406Q "Name lookup error for " 205Q "Multiple response received for ")
\PARSE.PORTCONSTANT :D8
(L (0 STR)) Ä @ µ
@ b<11>HdÊjð¥ <00>È»HdÊjð¥ <00>ɼKmÿØHl
غHdÊj𥠂ʇlDð½KJñ³LM•LKÐÈLK¹l0Iñ³Idl7ñ³¿Oµ
jIl0ÙØ°ààà°öIl#ð´3NhO¾Oµj_¿h_¿KkØ[°´Oµ O´OµjNµ jäOµjá°÷(117Q %%ARRAY-TYPE-NUMBER 100Q \GETBASEFIXP 60Q %%ARRAY-BASE 37Q %%ARRAY-OFFSET 15Q MKSTRING 5 STRINGP)
NIL
()
\FIXLOCALNET :D8
(L (0 PORT)) :n@ñ² @djð³¿`Ÿ`Ê@jð³ü@Há@Ø¿°òNIL
(42Q NDB 35Q \LOCALNDBS 27Q \LOCALNDBS)
()
PORTSTRING :D8
(L (1 SOCKET 0 NETHOST)) B@d<03>bjð“hb¿@bã g@lÿå go
 °ô(76Q OCTALSTRING 70Q CONCAT 45Q OCTALSTRING 27Q OCTALSTRING)
(52Q %# 34Q %#)
( 62Q "")
CLEARPUP :D8
(L (0 PUP)) _@bh@@@@@h¿h ¿h¿h¿h@l"Ð@l*ÐkÐ
@l,Ðjn (134Q \ZEROBYTES 117Q \ZEROWORDS)
(55Q ETHERPACKET 47Q ETHERPACKET 41Q ETHERPACKET 33Q ETHERPACKET 25Q ETHERPACKET 14Q ETHERPACKET 5 ETHERPACKET)
()
PUTPUPWORD :D8
(L (2 VALUE 1 WORD# 0 PUP)) @l,ÐAÐBÍBNIL
(5 ETHERPACKET)
()
GETPUPBYTE :D8
(L (1 BYTE# 0 PUP))
@l,ÐAÂNIL
(5 ETHERPACKET)
()
PUTPUPBYTE :D8
(L (2 VALUE 1 BYTE# 0 PUP)) @l,ÐABÇNIL
(5 ETHERPACKET)
()
GETPUPSTRING :D8
(L (1 OFFSET 0 PUP)) /@bÈ"lÙAµjbÙHjñ@l,ÐAH j (54Q ALLOCSTRING 45Q \GETBASESTRING)
(5 ETHERPACKET)
()
GETPUPSTREAM :D8
(L (4 WRITEXTENSIONFN 3 ACCESS 2 LENGTH 1 OFFSET 0 PUP)) -@bl,ÐAµjb
@È"lÙAÙCµgD
(52Q \MAKEBASEBYTESTREAM)
(43Q INPUT 5 ETHERPACKET)
()
PUTPUPSTRING :D8
(L (1 STR 0 PUP)) )@bl"ÐdÈ@l,Ð@È"lÙA ÔHIÍI(35Q \PUTBASESTRING)
(5 ETHERPACKET)
()
READPLIST :D8
(L (1 NOERRORFLG 0 STREAM)) Ó`µqg hdH ¿ggH ¿ggH ¿H ¹ohI ¿ohH ¿Hgi ¿HI@ l(ð²B0@ dl(ð²2¿@H
@ ¿@H
h@ l)𢰻Jµ KhZ¹°ÏK&º°Êl)ð¯Aªo@
hI(315Q ERROR 237Q RSTRING 224Q RATOM 154Q READTABLEPROP 137Q SETBRK 122Q SETBRK 105Q COPYREADTABLE 76Q SETSYNTAX 55Q SETSYNTAX 34Q SETSEPR 21Q COPYREADTABLE)
(166Q \READPLIST.READTABLES 146Q CASEINSENSITIVE 70Q OTHER 63Q %% 47Q ESCAPE 42Q %' 14Q ORIG 4 \READPLIST.READTABLES)
( 307Q "Malformed property list in stream" 130Q (40Q) 113Q (51Q))
\CANONICAL.HOSTNAME :D8
(L (0 NAME)) 1@d3´(lÿ@ó´"@d3@ð¨@ b€@`µ@ (56Q \CANONICALIZE.PUP.HOSTNAME 33Q MKATOM)
(44Q \HOSTNAMES)
()
\CANONICALIZE.PUP.HOSTNAME :D8
(L (0 NAME)) U@ `´B@``i  µ@ Yd3@ð¦@ ¹@I`I(102Q U-CASE 66Q MKATOM 61Q U-CASE 51Q ETHERHOSTNAME 43Q FIXSPELL 5 ETHERPORT)
(121Q \HOSTNAMES 113Q \HOSTNAMES 35Q \HOSTNAMES 30Q FIXSPELLREL 20Q \HOSTNAMES)
()
\PUPGATELISTENER :D8
NIL li
l "`gg ¿`gg ¿HÉ
»H K`jó²`<00> ¿¿ŠIi Kð³ÑI ²%` ¿IÃIl `ö¿`jó²<C3B3>` ²‘Zjll€hH
¿HJ
¿`Õ`l `ö¿`¿±ÿF(355Q \CLOCK0 323Q SENDPUP 313Q SETUPPUP 275Q ALLOCATE.PUP 266Q TIMEREXPIRED? 234Q \CLOCK0 212Q \AGE.ROUTING.TABLE 176Q TIMEREXPIRED? 164Q AWAIT.EVENT 153Q BLOCK 145Q \HANDLE.PUP.ROUTING.INFO 115Q GETPUP 75Q PROCESSPROP 50Q PROCESSPROP 17Q \CLOCK0 7 OPENPUPSOCKET)
(400Q \PUPROUTER.PROBECOUNT 371Q \PUPROUTER.PROBECOUNT 362Q \PUPROUTER.PROBEINTERVAL 344Q \PUPROUTER.PROBETIMER 336Q FIXP 331Q \PUPROUTER.PROBETIMER 261Q \PUPROUTER.PROBETIMER 250Q \PUPROUTER.PROBECOUNT 241Q \RT.AGEINTERVAL 221Q FIXP 205Q \PUP.ROUTING.TABLE 137Q \PUPROUTER.PROBETIMER 126Q \PUPROUTER.PROBECOUNT 104Q PUPSOCKET 70Q PUP 63Q :PROTOCOL 56Q \RUNNING.PROCESS 43Q \ROUTINGTABLE.INFOHOOK 36Q INFOHOOK 31Q \RUNNING.PROCESS)
()
\HANDLE.PUP.ROUTING.INFO :D8
(L (0 PUP)) W@dÊ#‡l<E280A1>ð²CÊ)‡@É@È"lÙâ@l,Ð```w
IÊlð³HI
@ j¿lJó³íKʇkØ_¿KÊ_¿LOMåàÐÉ_²O_Oði‡O_d³ð³/ONó³$LOhddl jöhd_
¿i€h¢±ŽO_±IOð˜HOð³#Od™¿OOó²]OH¿OI¿OO¿lOó²@Oi¿O<18>OOlİ$O_ÃOl `ö_¿JlÕºKlл±ÿ(477Q \CLOCK0 265Q \ADD.ROUTING.TABLE.ENTRY 244Q \CLOCK0 117Q \RELEASE.ETHERPACKET 106Q \TRANSLATE.3TO10)
(504Q \RT.TIMEOUTINTERVAL 463Q FIXP 126Q \PUPROUTER.PROBECOUNT 67Q NDB 56Q \PUP.ROUTING.TABLE.RADIUS 51Q \ROUTING.TABLE.MASK 44Q \PUP.ROUTING.TABLE 22Q ETHERPACKET)
()
\ROUTE.PUP :D8
(L (1 READONLY 0 PUP)) º@Ê&@Ê&‡BHdjðš¿`h [d¢±¼KµLÊlð<>jð³ìKIdjð²b¿`Z@LLÉ ½L@J@È"LÈ lM¿A³6Hjð<6A>@LÊÏ&¿@LÊÏ)¿@Ê)‡jðœ@LʇÏ)‡LL
d³Ÿ(264Q \TRANSLATE.3TO10 37Q \LOCATE.PUPNET)
(246Q NDB 221Q NDB 203Q NDB 144Q NDB 133Q ETHERPACKET 124Q BROADCASTNSHOSTNUMBER 63Q NDB 25Q \LOCALNDBS)
()
\LOCATE.PUPNET :D8
(L (1 DONTPROBE 0 NET)) Ð@«o@
¿`¥¿`@`åàÐÉ!HYµ@jð².@jhddddZ@:©@jðŸJjð™lJó´qJI°ÍA³g`@`åàÐ@lhdl nu0öhdH¿l¿`Õ`l ¿g ¿h(314Q BLOCK 306Q WAKE.PROCESS 264Q \CLOCK0 202Q \CLOCK0 32Q ASSURE.PUP.READY 16Q HELP)
(301Q \PUPGATELISTENER 273Q \PUPROUTER.PROBETIMER 253Q \PUPROUTER.PROBETIMER 245Q FIXP 240Q \PUPROUTER.PROBETIMER 232Q \PUPROUTER.PROBECOUNT 162Q \ROUTING.TABLE.MASK 154Q \PUP.ROUTING.TABLE 46Q \ROUTING.TABLE.MASK 40Q \PUP.ROUTING.TABLE 24Q \PUP.READY)
( 10Q "Bad network number")
SORT.PUPHOSTS.BY.DISTANCE :D8
(L (0 HOSTLIST)) N@d«dã ¿µô@Hµiª` ¿@g
ãi
¢h°ÜHX°Ó(103Q \LOCATE.PUPNET 71Q SORT 55Q BLOCK 30Q BLOCK 16Q \LOCATE.PUPNET)
(64Q \PUPNET.CLOSERP 50Q \ETHERTIMEOUT)
()
\PUPNET.CLOSERP :D8
(L (1 Y 0 X)) '@ãi
H¡hAãi
Y˜HIýñi(30Q \LOCATE.PUPNET 10Q \LOCATE.PUPNET)
NIL
()
PUPNET.DISTANCE :D8
(L (0 NET#)) 2@  kYló•Hd` ¿@ XµéIkÔ°Þ(50Q \LOCATE.PUPNET 41Q BLOCK 5 \LOCATE.PUPNET)
(34Q \ETHERTIMEOUT)
()
OPENPUPSOCKET :D8
(L (1 IFCLASH 0 SKT#) P 15Q \INTERRUPTABLE) 5@3 Á ²E@Y ¿IdÈ_¿_¿`]µ±Io±õOð™NdÈOð³ã¿M°ÙHŸ@ »@ ¼° n€ä¼k»
`h_¿_µihZ³}`d`Í¿`_¿dO¿_dKÍ¿O¿YI 
¿I`¿J²`AiðªAdgð²6¿JY °H_ÈLð™OKð³¿O±ÿH³ËLnÿåkØn€ä¼±ÿdgð§Agðho@
I(461Q ERROR 351Q \FLUSHPUPSOCQUEUE 277Q CREATE.EVENT 154Q \LONUM 147Q DAYTIME 137Q \LONUM 130Q \HINUM 24Q \FLUSHPUPSOCQUEUE)
(442Q FAIL 432Q DON'T 336Q ACCEPT 316Q \PUPSOCKETS 310Q \PUPSOCKETS 271Q PUPSOCKET 234Q |SYSQUEUETYPE#| 224Q \MAX.EPKTS.ON.PUPSOCKET 215Q |PUPSOCKETTYPE#| 173Q \PUPSOCKETS 47Q \PUPSOCKETS 13Q PUPSOCKET)
( 453Q "Socket number is already in use" 67Q "Attempt to re-open a released PUPSOCKET.")
CLOSEPUPSOCKET :D8
(L (1 NOERRORFLG 0 PUPSOC)) p@dið²+¿`d `¿b ¿@h
°Ù @`²@`
¿iŽA«@o
€h@h
¿(141Q ERROR 114Q DREMOVE 70Q \FLUSHPUPSOCQUEUE 42Q \FLUSHPUPSOCQUEUE)
(151Q PUPSOCKET 121Q \PUPSOCKETS 107Q \PUPSOCKETS 76Q \PUPSOCKETS 63Q PUPSOCKET 51Q PUPSOCKET 32Q \PUPSOCKETS 24Q \PUPSOCKETS 13Q \PUPSOCKETS)
( 134Q "not an open PUP socket")
PUPSOCKETNUMBER :D8
(L (0 PUPSOC)) @l
(14Q \GETBASEFIXP)
(5 PUPSOCKET)
()
PUPSOCKETFROMNUMBER :D8
(L (1 SOCHI 0 SOC#orSOCLO)) 8@ b¿@nÿÿåb¿`Hµh˜IdÈAð³ò¿HX°è(10Q \HINUM)
(30Q \PUPSOCKETS)
()
PUPSOCKETEVENT :D8
(L (0 PUPSOC))
@É
NIL
(5 PUPSOCKET)
()
\FLUSHPUPSOCQUEUE :D8
(L (0 PUPSOC)) @É @@(14Q \FLUSH.PACKET.QUEUE)
(22Q PUPSOCKET 5 PUPSOCKET)
()
\GETMISCSOCKET :D8
NIL !`µ
`²ï`(13Q OPENPUPSOCKET)
(36Q \MISC.SOCKET 26Q \PUPSOCKETS 20Q \MISC.SOCKET 4 \MISC.SOCKET)
()
PUP.ECHOSERVERA0001 :D8
(NAME SI::*UNWIND-PROTECT* I 0 SI::*CLEANUP-FORMS* F 4 FLG F 5 ECHOWINDOW F 6 SI::*RESETFORMS*) ªli
1gHhhdVc ¿T§gc¿HÉ
Z¿H
J °ðÊ#‡kð»U²,Tµ°'gð²K•g„gU
‡IhU ¿K²%IlÍ#¿I ¿Ig¿HI
…I ¿°‰(246Q BLOCK 240Q RELEASE.PUP 231Q SENDPUP 203Q SWAPPUPPORTS 163Q PRINTPUP 152Q PRIN1 77Q AWAIT.EVENT 66Q GETPUP 7 OPENPUPSOCKET)
(217Q FREE 212Q ETHERPACKET 144Q ? 136Q ! 124Q PEEK 54Q PUPSOCKET 43Q PEEK 17Q CLOSEPUPSOCKET)
()
PUP.ECHOSERVER :D8
(P 2 RESETSTATE P 1 SI::*RESETFORMS* P 0 LISPXHIST I 1 FLG I 0 ECHOWINDOW F 3 LISPXHIST) S!g ¿$(27Q SI::RESETUNWIND 22Q \MVLIST 15Q PUP.ECHOSERVERA0001)
(10Q SI::RESETUNWIND)
()
PUP.ECHOUSERA0001 :D8
(NAME SI::*UNWIND-PROTECT* I 0 SI::*CLEANUP-FORMS* F 10Q ECHOSTREAM F 11Q NTIMES F 12Q INTERVAL F 13Q SI::*RESETFORMS* F 14Q HOST) ¹WWµ`
l DgJhhdWc¿I¡hW¥nèc¿W¥nèc¿Wµig
c¿HIlkhJi
¿Hk_Í,¿Hl"ÐdÈlÔÍ¿Ho
¿HÈ"¾JÉ
]¿JH
¿gW
¿KÃKl Wö¿J \µ_MKi ¿K ²èHÊjð¬oW
¿gW
¿Wiðµ WmÿÔc´‚±ÿHOkÔ_Í,±ÿrÊ#‡dlðž¿gW
°1dlð²Z¿LÈ$HÈ$ð²LÈ%HÈ%ð˜LdÈ"Nð³¿gW
¿hL ¿¢±ÿ^°‰È,OÙjð<6A>gW
°Úo°Êlð²ÀLW
°Â(665Q PRINTERRORPUP 637Q PRIN1 577Q RELEASE.PUP 567Q PRIN1 510Q PRIN1 414Q PRIN1 377Q PRIN1 345Q TIMEREXPIRED? 336Q AWAIT.EVENT 323Q GETPUP 311Q \CLOCK0 267Q PRIN1 252Q SENDPUP 224Q PUTPUPSTRING 157Q SETUPPUP 136Q GETSTREAM 41Q \CLOCK0 31Q OPENPUPSOCKET 24Q BESTPUPADDRESS 4 ALLOCATE.PUP)
(630Q + 613Q ETHERPACKET 560Q ? 501Q x 450Q ETHERPACKET 405Q %. 355Q ETHERPACKET 276Q FIXP 260Q ! 237Q PUPSOCKET 166Q ETHERPACKET 131Q OUTPUT 53Q CLOSEPUPSOCKET 17Q PROMPTWINDOW)
( 646Q "(late)" 370Q "[not yet transmitted; maybe transmitter is off]" 217Q "Random string for echo")
PUP.ECHOUSER :D8
(P 2 RESETSTATE P 1 SI::*RESETFORMS* P 0 LISPXHIST I 3 NTIMES I 2 INTERVAL I 1 ECHOSTREAM I 0 HOST F 3 LISPXHIST) S!g ¿$(27Q SI::RESETUNWIND 22Q \MVLIST 15Q PUP.ECHOUSERA0001)
(10Q SI::RESETUNWIND)
()
\PEEKPUP :D8
(L (1 FILE 0 HOST))   @µG`Êdlð²¿oˆ`ʇÍl
ð¿lYjñ´
¿IkÙ°òi°_@A
Kd²Q°P£J¾h„J¾JºN`
No
½Lµ Mh\»°ÆM&¼°Ádãjð¬¿Hã`ãð²ÖHlÿå°Û¿`Êdlð™¿oˆl
ð¿Aµ`¥i`g
µ
Ag
¿°Ñ(377Q OPENFILE 362Q OPENP 205Q ERROR 166Q BESTPUPADDRESS 76Q BLOCK)
(404Q PUPTRACEFILE 372Q OUTPUT 355Q OUTPUT 347Q \PEEKPUPNUMBER 342Q PUPTRACEFLG 333Q PUPTRACEFLG 275Q NDB 270Q \LOCALNDBS 262Q \PEEKPUPNUMBER 242Q \LOCALPUPNETHOST 161Q PROMPTWINDOW 111Q \PEEKPUPNUMBER 50Q NDB 43Q \LOCALNDBS 17Q NDB 12Q \LOCALNDBS)
( 200Q "not a host on local network")
\MAYBEPEEKPUP :D8
(L (0 PUP)) y`²:`²30`ið³@dÊ&‡jð¬¿`¹Id³Ÿ@H`hi
¿@ £Iºh„IºI¹@dÊ)‡Jð˜¿gX¯@Ê&‡Jð²ÁgX²¹J³»i°·(104Q \RELEASE.ETHERPACKET 74Q PRINTPUP)
(156Q GET 137Q PUT 64Q PUPTRACEFILE 47Q \PEEKPUPNUMBER 25Q \PEEKPUPNUMBER 13Q PUPTRACEFLG 4 \PEEKPUPNUMBER)
()
PRINTPUPA0001 :D8
(NAME SI::*UNWIND-PROTECT* I 0 SI::*CLEANUP-FORMS* F 0 PACKET F 1 FILE F 2 MACRO) PQlRNIL
NIL
()
PRINTPUP :D8
(L (4 DOFILTER 3 PRE.NOTE 1 CALLER) P 3 SI::*RESETFORMS* P 1 MACRO I 2 FILE I 0 PACKET F 4 PUPTYPES)  @B§`b¿@Ê#‡!D²q`™H`<68>`²ZH`²QAgðªAdgð²¿@Ê&‡jðg°#g°gð§Agð•g„g`
±âC—CB
¿@AB ¿H`‚±ÂoB
¿@È"ZB
¿oB
¿oB
¿JlÙB
¿oB
¿B ¿oB
¿HTBo ¿oB
¿@l"Ðl
B
¿B ¿Jlñ²'oB
¿@l,ÐjIµoJlÙB
¿B @’±ÿ?gB hhhg ¿$°Ë(627Q SI::RESETUNWIND 622Q \MVLIST 615Q PRINTPUPA0001 571Q OUTPUT 547Q TERPRI 540Q PRINTPACKETDATA 507Q PRIN1 465Q TERPRI 456Q PRIN2 450Q \GETBASEFIXP 434Q PRIN1 420Q PRINTCONSTANT 402Q PRIN1 366Q TERPRI 357Q PRIN1 343Q PRIN2 330Q PRIN1 314Q PRIN1 300Q PRIN2 265Q PRIN1 232Q PRINTPUPROUTE 221Q PRIN1 205Q PRIN1)
(610Q SI::RESETUNWIND 563Q OUTPUT 241Q PUPPRINTMACROS 200Q PUPTRACEFILE 173Q ? 165Q ! 156Q RAWPUT 146Q PUT 137Q + 130Q * 110Q RAWGET 77Q GET 66Q PUPIGNORETYPES 56Q PUPIGNORETYPES 45Q PUPONLYTYPES 36Q PUPONLYTYPES 14Q PUPTRACEFILE 5 ETHERPACKET)
( 525Q (BYTES 14Q |...|) 501Q "Contents: " 426Q ", ID = " 413Q "\PT." 374Q "Type = " 351Q ")" 322Q " (header + "
306Q " bytes" 257Q "Length = ")
PRINTPUPROUTE :D8
(L (2 FILE 1 CALLER 0 PACKET)) èjdB AB
¿oB
¿@Ê#oB
¿@È)@l"Ðl
B
¿oB
¿@È&@l"Ðl
B
Hjð³oB
¿HââââB
¿`²LoB
¿o@ YldÛB ¿gB
¿oIldÜB ¿oB
¿B h(344Q TERPRI 335Q PRIN1 321Q PRINTNUM 301Q PRIN1 265Q PRINTNUM 253Q \CENTICLOCK 237Q PRIN1 214Q PRIN2 200Q PRIN1 160Q PRIN1 152Q PORTSTRING 145Q \GETBASEFIXP 126Q PRIN1 112Q PRIN1 104Q PORTSTRING 77Q \GETBASEFIXP 60Q PRIN1 35Q PRIN1 21Q PRIN1 7 TAB)
(273Q %. 222Q PUPTRACETIME)
( 327Q "]" 307Q (FIX 2 NIL T) 245Q (FIX 4) 231Q " [" 172Q ", Hops = " 120Q " to " 52Q "From " 27Q ": ")
PRINTPUPDATA :D8
(L (3 FILE 2 OFFSET 1 MACRO 0 PUP)) @l,ÐBA@È"lÙC
(22Q PRINTPACKETDATA)
NIL
()
PRINTERRORPUP :D8
(L (1 FILE 0 PUP)) NoA
@È) A
oA
@È6A
oA
@l
A
A (113Q TERPRI 105Q PRIN1 77Q GETPUPSTRING 67Q PRIN1 54Q PRIN2 43Q PRIN1 30Q PRIN1 22Q PORTSTRING 12Q PRIN1)
NIL
( 61Q "] " 35Q ": [Error " 4 "From ")
PUPTRACE :D8
(L (1 REGION 0 FLG)) ggoA@
(26Q MAKE-NETWORK-TRACE-WINDOW)
(11Q PUPTRACEFILE 4 PUPTRACEFLG)
( 16Q "Pup traffic")
PRINTCONSTANT :D8
(L (3 PREFIX 2 FILE 1 CONSTANTLIST 0 VAR)) l@B
A´/oB
AHµhµgB
oB
Y@ð²'CµI°ÙIkhi
²ñIC
°»HX°²(143Q SUBSTRING 134Q NCHARS 122Q STRPOS 67Q PRIN1 54Q PRIN1 25Q PRIN1 6 PRIN2)
(46Q ?)
( 61Q ")" 17Q " (")
(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) (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 \CANONICALIZE.PUP.HOSTNAME) (P (* ;
"Default this for when IP not loaded") (MOVD? (QUOTE NILL) (QUOTE \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)))
(RPAQ? \PUP.CHECKSUMFLG T)
(RPAQ? \MAX.EPKTS.ON.PUPSOCKET 20Q)
(RPAQ? \LOCALPUPNETHOST)
(RPAQ? \OLDPUPHOST# 0)
(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")))
(RPAQ? \ETHERPORTS (HASHARRAY 24Q))
(RPAQ? \ETHERTIMEOUT 3720Q)
(RPAQ? \MAXETHERTRIES 4)
(RPAQ? \PUPCOUNTER 0)
(DEFOPTIMIZER GETPUPWORD (PUPARG WORD#) (BQUOTE (\GETBASE (fetch PUPCONTENTS of (\DTEST (\, PUPARG) (
QUOTE ETHERPACKET))) (\, WORD#))))
(DEFOPTIMIZER PUTPUPWORD (PUPARG WORD# VALUE) (BQUOTE (\PUTBASE (fetch PUPCONTENTS of (\DTEST (\,
PUPARG) (QUOTE ETHERPACKET))) (\, WORD#) (\, VALUE))))
(DEFOPTIMIZER GETPUPBYTE (PUPARG BYTE#) (BQUOTE (\GETBASEBYTE (fetch PUPCONTENTS of (\DTEST (\, PUPARG
) (QUOTE ETHERPACKET))) (\, BYTE#))))
(DEFOPTIMIZER PUTPUPBYTE (PUPARG BYTE# VALUE) (BQUOTE (\PUTBASEBYTE (fetch PUPCONTENTS of (\DTEST (\,
PUPARG) (QUOTE ETHERPACKET))) (\, BYTE#) (\, VALUE))))
(RPAQ? \READPLIST.READTABLES NIL)
(MOVD? (QUOTE NILL) (QUOTE \CANONICALIZE.IP.HOSTNAME) NIL T)
(ADDTOVAR \HOSTNAMES)
(ADDTOVAR \SYSTEMCACHEVARS \HOSTNAMES)
(PUTPROPS BINDPUPS MACRO (X (CONS (LIST (QUOTE LAMBDA) (CAR X) (CONS (QUOTE PROGN) (CDR X))) (in (CAR
X) collect (LIST (QUOTE ALLOCATE.PUP))))))
(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 ")"))))
(RPAQ? \PUP.ROUTING.TABLE (CONS))
(RPAQ? \PUP.ROUTING.TABLE.RADIUS 2)
(RPAQ? \PUPROUTER.PROBECOUNT 0)
(RPAQ? \PUPROUTER.PROBETIMER)
(RPAQ? \PUPROUTER.PROBEINTERVAL 5670Q)
(RPAQ? \PUP.READY)
(RPAQ? \PUP.READY.EVENT (CREATE.EVENT "Pup Ready"))
(RPAQ? \PUP.READY.LOCK (CREATE.MONITORLOCK "Pup Ready"))
(ADDTOVAR \SYSTEMCACHEVARS \PUP.READY)
(/DECLAREDATATYPE (QUOTE PUPSOCKET) (QUOTE ((BITS 4) POINTER FIXP POINTER WORD WORD WORD WORD (BITS 4)
POINTER (BITS 4) POINTER)) (QUOTE ((PUPSOCKET 0 (BITS . 3)) (PUPSOCKET 0 POINTER) (PUPSOCKET 2 FIXP)
(PUPSOCKET 4 POINTER) (PUPSOCKET 6 (BITS . 17Q)) (PUPSOCKET 7 (BITS . 17Q)) (PUPSOCKET 10Q (BITS . 17Q
)) (PUPSOCKET 11Q (BITS . 17Q)) (PUPSOCKET 4 (BITS . 3)) (PUPSOCKET 12Q POINTER) (PUPSOCKET 12Q (BITS
. 3)) (PUPSOCKET 14Q POINTER))) (QUOTE 16Q))
(ADDTOVAR SYSTEMRECLST (DATATYPE PUPSOCKET ((NIL BITS 4) (PUPSOCLINK POINTER) (PSOCKET# FIXP) (INQUEUE
POINTER) (INQUEUELENGTH WORD) (PUPSOC#ALLOCATION WORD) (PUPSOCHANDLE WORD) (PUPSOCPUPADDRESS WORD) (
NIL BITS 4) (PUPSOCEVENT POINTER) (NIL BITS 4) (NIL POINTER))))
(RPAQ? \MISC.SOCKET)
(RPAQ? \PUPSOCKETS)
(RPAQ? \PEEKPUPNUMBER)
(RPAQ? PUPTRACEFLG)
(RPAQ? PUPTRACEFILE T)
(RPAQ? PUPTRACETIME)
(ADDTOVAR PUPPRINTMACROS)
(ADDTOVAR PUPONLYTYPES)
(ADDTOVAR PUPIGNORETYPES)
(ADDTOVAR PUPPRINTMACROS (4 . PRINTERRORPUP) (220Q CHARS) (221Q REPEAT BYTES -2 WORDS -4) (223Q BYTES
-2 WORDS) (224Q CHARS))
(\PUPINIT)
(PUTPROPS PUP MAKEFILE-ENVIRONMENT (:READTABLE "INTERLISP" :PACKAGE "INTERLISP" :BASE 10Q))
(PUTPROPS PUP FILETYPE CL:COMPILE-FILE)
NIL