From 1bf3f50d98561aa6c82e4db39b42b7c25f0a0b4d Mon Sep 17 00:00:00 2001 From: Nick Briggs Date: Fri, 23 Jan 2026 18:51:15 -0800 Subject: [PATCH] Avoids making copy of \10MBLOCALNDB as \MAIKO.10MB.NDB for \MAIKO.ETHER-INTERRUPT --- sources/MAIKOETHER | 249 ++++++++++++++++++---------------------- sources/MAIKOETHER.LCOM | Bin 8970 -> 9099 bytes 2 files changed, 110 insertions(+), 139 deletions(-) diff --git a/sources/MAIKOETHER b/sources/MAIKOETHER index 56332f19..955495f8 100644 --- a/sources/MAIKOETHER +++ b/sources/MAIKOETHER @@ -1,14 +1,14 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10) -(FILECREATED "25-Oct-2021 15:12:33" |{DSK}larry>medley>sources>MAIKOETHER.;2| 28792 +(FILECREATED "30-Dec-2025 19:09:34" |{DSK}briggs>projects>medley>sources>MAIKOETHER.;7| 26899 - |changes| |to:| (FNS \\DISPLAYLINE) - (VARS MAIKOETHERCOMS) + :EDIT-BY |nhb| - |previous| |date:| "25-Mar-2021 09:50:57" |{DSK}larry>medley>sources>MAIKOETHER.;1|) + :CHANGES-TO (VARS MAIKOETHERCOMS) + :PREVIOUS-DATE "30-Dec-2025 18:50:46" |{DSK}briggs>projects>medley>sources>MAIKOETHER.;6| +) -; Copyright (c) 1988-1991, 2021 by Venue & Xerox Corporation. (PRETTYCOMPRINT MAIKOETHERCOMS) @@ -23,10 +23,6 @@ (DECLARE\: EVAL@COMPILE DONTCOPY (FILES (LOADCOMP) 10MBDRIVER) (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)) (ADDVARS (\\MAIKO.MOVDS (\\MAIKO.10MBSTARTDRIVER \\10MB.STARTDRIVER) (\\MAIKO.10MBWATCHER \\10MBWATCHER) @@ -35,9 +31,13 @@ (\\MAIKO.10MBTURNONETHER \\10MB.TURNONETHER) (\\MAIKO.ETHERRESUME \\10MB.RESTART.ETHER) (\\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)) - (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)) (COMS (* |;;| "Asynchronous I/O handling") @@ -48,13 +48,12 @@ (DEFINEQ (\\10MB.RESTART.ETHER - (LAMBDA NIL (* \; "Edited 11-May-88 16:09 by MASINTER") + (LAMBDA NIL (* \; "Edited 11-May-88 16:09 by MASINTER") (SUBRCALL ETHER-RESUME))) (\\10MB.STARTDRIVER - (LAMBDA (NDB RESTARTFLG MYNSNUMBER) (* \; "Edited 5-Apr-89 15:03 by snow") - (DECLARE (GLOBALVARS \\MAIKO.INPUT.PACKET \\10MB.EXPECTED.RECEIVE.INTERVAL - \\10MB.INPUT.TIMEOUT)) + (LAMBDA (NDB RESTARTFLG MYNSNUMBER) (* \; "Edited 5-Apr-89 15:03 by snow") + (DECLARE (GLOBALVARS \\MAIKO.INPUT.PACKET \\10MB.EXPECTED.RECEIVE.INTERVAL \\10MB.INPUT.TIMEOUT)) (SUBRCALL ETHER-SUSPEND) (OR (\\INIT.ETHER.BUFFER.POOL) (ERROR "Unable to create buffer pool")) @@ -65,21 +64,17 @@ 0 0) (PROG ((CSB (|fetch| NDBCSB |of| NDB))) (OR \\MAIKO.INPUT.PACKET (SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET))) - (|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| - \\ES.PENDING) - (SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE |of| - \\MAIKO.INPUT.PACKET - )) - (|replace| NDBWATCHER |of| NDB |with| (ADD.PROCESS (LIST '\\10MBWATCHER - (KWOTE NDB)) - 'RESTARTABLE - 'SYSTEM - 'AFTEREXIT - 'DELETE)) + (|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| \\ES.PENDING) + (SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE |of| \\MAIKO.INPUT.PACKET)) + (|replace| NDBWATCHER |of| NDB |with| (ADD.PROCESS (LIST '\\10MBWATCHER (KWOTE NDB)) + 'RESTARTABLE + 'SYSTEM + 'AFTEREXIT + 'DELETE)) (RETURN NDB)))) (\\10MB.TURNOFFETHER - (LAMBDA NIL (* \; "Edited 11-May-88 16:11 by MASINTER") + (LAMBDA NIL (* \; "Edited 11-May-88 16:11 by MASINTER") (SUBRCALL ETHER-SUSPEND))) (\\10MB.TURNONETHER @@ -92,20 +87,16 @@ (PROG ((CSB (|fetch| NDBCSB |of| NDB))) (\\MAIKO.ETHERSUSPEND) - (OR CSB (|replace| NDBCSB |of| NDB |with| (SETQ CSB - (LOCF (|fetch| DLETHERNET - |of| \\IOPAGE))))) + (OR CSB (|replace| NDBCSB |of| NDB |with| (SETQ CSB (LOCF (|fetch| DLETHERNET |of| \\IOPAGE + ))))) (|replace| DLFIRSTOCB |of| CSB |with| 0) (|replace| DLFIRSTICB |of| CSB |with| 0) (AND NSHOSTNUMBER (COND ((EQ NSHOSTNUMBER T) (\\BLT (LOCF (|fetch| DLLOCALHOST0 |of| CSB)) - (LOCF (|fetch| (IFPAGE |NSHost0|) |of| - |\\InterfacePage|) - ) + (LOCF (|fetch| (IFPAGE |NSHost0|) |of| |\\InterfacePage|)) \\#WDS.NSHOSTNUMBER)) - (T (\\STORENSHOSTNUMBER (LOCF (|fetch| DLLOCALHOST0 |of| - CSB)) + (T (\\STORENSHOSTNUMBER (LOCF (|fetch| DLLOCALHOST0 |of| CSB)) NSHOSTNUMBER)))) (AND OUTINTERRUPT (|replace| DLOUTPUTMASK |of| CSB |with| OUTINTERRUPT)) (AND ININTERRUPT (|replace| DLINPUTMASK |of| CSB |with| ININTERRUPT)) @@ -117,7 +108,7 @@ (RETURN NDB)))) (\\10MBSENDPACKET - (LAMBDA (NDB PACKET) (* \; "Edited 11-May-88 16:10 by MASINTER") + (LAMBDA (NDB PACKET) (* \; "Edited 11-May-88 16:10 by MASINTER") (PROG NIL (COND (\\RAWTRACING (\\MAYBEPRINTPACKET PACKET 'RAWPUT))) @@ -125,23 +116,23 @@ ((OR (|fetch| 10MBMULTICASTP |of| PACKET) (EQNSADDRESS.HOST \\MY.NSADDRESS (|fetch| 10MBDESTHOSTBASE |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))) (\\BLT (LOCF (|fetch| 10MBLENGTH |of| COPYPACKET)) (LOCF (|fetch| 10MBLENGTH |of| PACKET)) (ADD1 (|fetch| 10MBLENGTH |of| PACKET))) (* \; - "Copy all data that would have been transmitted") + "Copy all data that would have been transmitted") (|replace| EPNETWORK |of| COPYPACKET |with| NDB) (|replace| EPTYPE |of| COPYPACKET |with| (|for| PAIR |in| \\10MBTYPE.TRANSLATIONS - |bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET)) - |when| (EQ TYPE (CAR PAIR)) |do| + |bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET)) + |when| (EQ TYPE (CAR PAIR)) |do| (* |;;| "TYPE is the raw type of the etherpacket. These do not always correspond one-to-one with the EPTYPE constants we use (in particular, for pups), so translate if necessary.") - (RETURN (CDR PAIR)) - |finally| (RETURN TYPE))) + (RETURN (CDR PAIR)) + |finally| (RETURN TYPE))) (COND (\\RAWTRACING (\\MAYBEPRINTPACKET COPYPACKET 'RAWGET))) (\\HANDLE.RAW.PACKET COPYPACKET)))) @@ -154,20 +145,21 @@ (RETURN T)))) (\\10MBWATCHER - (LAMBDA (NDB) (* \; "Edited 16-May-88 22:24 by MASINTER") + (LAMBDA (NDB) (* \; "Edited 16-May-88 22:24 by MASINTER") (* |;;| "merge message and packet reading") (PROG ((CNTR 0) MESSAGE-BUFFER MESSAGE-LENGTH PACKET) LP (IF (SUBRCALL MESSAGE-READP) - THEN (PROMPTPRINT (IF (SETQ MESSAGE-LENGTH (SUBRCALL MESSAGE-READ - (OR MESSAGE-BUFFER - (SETQ MESSAGE-BUFFER - (ALLOCSTRING 1024))) - 1024)) - THEN (SUBSTRING MESSAGE-BUFFER 1 MESSAGE-LENGTH) - ELSE "?? system message: polling failed"))) + THEN (PROMPTPRINT (IF (SETQ MESSAGE-LENGTH (SUBRCALL MESSAGE-READ (OR MESSAGE-BUFFER + (SETQ + MESSAGE-BUFFER + (ALLOCSTRING + 1024))) + 1024)) + THEN (SUBSTRING MESSAGE-BUFFER 1 MESSAGE-LENGTH) + ELSE "?? system message: polling failed"))) (UNINTERRUPTABLY (SUBRCALL ETHER-CHECK) (SETQ PACKET (\\MAIKO.INPUT.INTERRUPT NDB))) @@ -182,31 +174,31 @@ (GO LP)))) (\\MAIKO.10MBSENDPACKET - (LAMBDA (NDB PACKET) (* \; "Edited 31-Oct-89 14:10 by bvm") + (LAMBDA (NDB PACKET) (* \; "Edited 31-Oct-89 14:10 by bvm") (PROG NIL (COND (\\RAWTRACING (\\MAYBEPRINTPACKET PACKET 'RAWPUT))) (COND ((OR (|fetch| 10MBMULTICASTP |of| PACKET) - (EQNSADDRESS.HOST \\MY.NSADDRESS (|fetch| 10MBDESTNSADDRESSBASE |of| PACKET - )))(* \; - "We would hear this packet if our hardware let us, so fake receipt") + (EQNSADDRESS.HOST \\MY.NSADDRESS (|fetch| 10MBDESTNSADDRESSBASE |of| PACKET))) + (* \; + "We would hear this packet if our hardware let us, so fake receipt") (PROG ((COPYPACKET (\\ALLOCATE.ETHERPACKET))) (\\BLT (LOCF (|fetch| 10MBLENGTH |of| COPYPACKET)) (LOCF (|fetch| 10MBLENGTH |of| PACKET)) (ADD1 (|fetch| 10MBLENGTH |of| PACKET))) (* \; - "Copy all data that would have been transmitted") + "Copy all data that would have been transmitted") (|replace| EPNETWORK |of| COPYPACKET |with| NDB) (|replace| EPTYPE |of| COPYPACKET |with| (|for| PAIR |in| \\10MBTYPE.TRANSLATIONS - |bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET)) - |when| (EQ TYPE (CAR PAIR)) |do| + |bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET)) + |when| (EQ TYPE (CAR PAIR)) |do| (* |;;| "TYPE is the raw type of the etherpacket. These do not always correspond one-to-one with the EPTYPE constants we use (in particular, for pups), so translate if necessary.") - (RETURN (CDR PAIR)) - |finally| (RETURN TYPE))) + (RETURN (CDR PAIR)) + |finally| (RETURN TYPE))) (COND (\\RAWTRACING (\\MAYBEPRINTPACKET COPYPACKET 'RAWGET))) (\\HANDLE.RAW.PACKET COPYPACKET)))) @@ -219,20 +211,21 @@ (RETURN T)))) (\\MAIKO.10MBWATCHER - (LAMBDA (NDB) (* \; "Edited 16-May-88 22:24 by MASINTER") + (LAMBDA (NDB) (* \; "Edited 16-May-88 22:24 by MASINTER") (* |;;| "merge message and packet reading") (PROG ((CNTR 0) MESSAGE-BUFFER MESSAGE-LENGTH PACKET) LP (IF (SUBRCALL MESSAGE-READP) - THEN (PROMPTPRINT (IF (SETQ MESSAGE-LENGTH (SUBRCALL MESSAGE-READ - (OR MESSAGE-BUFFER - (SETQ MESSAGE-BUFFER - (ALLOCSTRING 1024))) - 1024)) - THEN (SUBSTRING MESSAGE-BUFFER 1 MESSAGE-LENGTH) - ELSE "?? system message: polling failed"))) + THEN (PROMPTPRINT (IF (SETQ MESSAGE-LENGTH (SUBRCALL MESSAGE-READ (OR MESSAGE-BUFFER + (SETQ + MESSAGE-BUFFER + (ALLOCSTRING + 1024))) + 1024)) + THEN (SUBSTRING MESSAGE-BUFFER 1 MESSAGE-LENGTH) + ELSE "?? system message: polling failed"))) (UNINTERRUPTABLY (SUBRCALL ETHER-CHECK) (SETQ PACKET (\\MAIKO.INPUT.INTERRUPT NDB))) @@ -247,15 +240,15 @@ (GO LP)))) (\\MAIKO.ETHERRESUME - (LAMBDA NIL (* \; "Edited 11-May-88 16:09 by MASINTER") + (LAMBDA NIL (* \; "Edited 11-May-88 16:09 by MASINTER") (SUBRCALL ETHER-RESUME))) (\\MAIKO.ETHERSUSPEND - (LAMBDA NIL (* \; "Edited 11-May-88 16:11 by MASINTER") + (LAMBDA NIL (* \; "Edited 11-May-88 16:11 by MASINTER") (SUBRCALL ETHER-SUSPEND))) (\\MAIKO.INPUT.INTERRUPT - (LAMBDA (NDB) (* \; "Edited 11-May-88 16:05 by MASINTER") + (LAMBDA (NDB) (* \; "Edited 11-May-88 16:05 by MASINTER") (* |;;| "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") @@ -266,43 +259,38 @@ (|replace| 10MBLENGTH |of| PACKET |with| LENGTH) (\\RCLK (LOCF (|fetch| EPTIMESTAMP |of| PACKET))) (|replace| EPNETWORK |of| PACKET |with| NDB) - (|replace| EPTYPE |of| PACKET |with| (|for| PAIR |in| - \\10MBTYPE.TRANSLATIONS - |bind| (TYPE _ - (|fetch| - 10MBTYPE - |of| PACKET - )) - |when| (EQ TYPE (CAR PAIR)) - |do| (RETURN (CDR PAIR)) - |finally| (RETURN TYPE))) + (|replace| EPTYPE |of| PACKET |with| (|for| PAIR |in| \\10MBTYPE.TRANSLATIONS + |bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET)) + |when| (EQ TYPE (CAR PAIR)) + |do| (RETURN (CDR PAIR)) + |finally| (RETURN TYPE))) (COND (\\RAWTRACING (\\MAYBEPRINTPACKET PACKET 'RAWGET))) (RETURN (PROG1 PACKET (SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET)) - (|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) - |with| \\ES.PENDING) - (SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE - |of| \\MAIKO.INPUT.PACKET)))) - ) + (|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| \\ES.PENDING) + (SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE |of| + \\MAIKO.INPUT.PACKET + ))))) (T (RETURN NIL)))))) (\\NS.SETTIME - (LAMBDA (RETFLG) (* \; "Edited 13-May-88 15:22 by MASINTER") + (LAMBDA (RETFLG) (* \; "Edited 13-May-88 15:22 by MASINTER") (CL:UNLESS (AND RETFLG (NOT (STRINGP RETFLG))) (SETQ |\\TimeZoneComp| (SUBRCALL GETUNIXTIME 8 NIL))) (\\PROCESS.RESET.TIMERS) (DAYTIME))) (\\PUP.SETTIME - (LAMBDA (RETFLG) (* \; "Edited 13-May-88 15:22 by MASINTER") + (LAMBDA (RETFLG) (* \; "Edited 13-May-88 15:22 by MASINTER") (CL:UNLESS (AND RETFLG (NOT (STRINGP RETFLG))) (SETQ |\\TimeZoneComp| (SUBRCALL GETUNIXTIME 8 NIL))) (\\PROCESS.RESET.TIMERS) (DAYTIME))) (\\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.") @@ -312,13 +300,11 @@ (|replace| NDBTQ |of| NDB |with| (|create| SYSQUEUE)) (SETQ \\10MB.RAWPACKETQ (|create| SYSQUEUE)) (SETQ \\10MB.INPUT.TIMEOUT (TIMES \\RCLKSECOND \\10MB.EXPECTED.RECEIVE.INTERVAL)) - (SETQ \\MAIKO.10MB.NDB NDB) (\\10MB.TURNONETHER NDB NIL NIL (OR MYNSNUMBER T) 0 0) (PROG ((CSB (|fetch| NDBCSB |of| NDB))) (OR \\MAIKO.INPUT.PACKET (SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET))) - (|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| - \\ES.PENDING) + (|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| \\ES.PENDING) (AND (SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE |of| \\MAIKO.INPUT.PACKET )) @@ -340,20 +326,16 @@ (PROG ((CSB (|fetch| NDBCSB |of| NDB))) (\\MAIKO.ETHERSUSPEND) - (OR CSB (|replace| NDBCSB |of| NDB |with| (SETQ CSB - (LOCF (|fetch| DLETHERNET - |of| \\IOPAGE))))) + (OR CSB (|replace| NDBCSB |of| NDB |with| (SETQ CSB (LOCF (|fetch| DLETHERNET |of| \\IOPAGE + ))))) (|replace| DLFIRSTOCB |of| CSB |with| 0) (|replace| DLFIRSTICB |of| CSB |with| 0) (AND NSHOSTNUMBER (COND ((EQ NSHOSTNUMBER T) (\\BLT (LOCF (|fetch| DLLOCALHOST0 |of| CSB)) - (LOCF (|fetch| (IFPAGE |NSHost0|) |of| - |\\InterfacePage|) - ) + (LOCF (|fetch| (IFPAGE |NSHost0|) |of| |\\InterfacePage|)) \\#WDS.NSHOSTNUMBER)) - (T (\\STORENSHOSTNUMBER (LOCF (|fetch| DLLOCALHOST0 |of| - CSB)) + (T (\\STORENSHOSTNUMBER (LOCF (|fetch| DLLOCALHOST0 |of| CSB)) NSHOSTNUMBER)))) (AND OUTINTERRUPT (|replace| DLOUTPUTMASK |of| CSB |with| OUTINTERRUPT)) (AND ININTERRUPT (|replace| DLINPUTMASK |of| CSB |with| ININTERRUPT)) @@ -365,14 +347,14 @@ (RETURN NDB)))) (\\MAIKO.10MB.RESTART.ETHER - (LAMBDA (NDB) (* \; "Edited 11-May-88 16:08 by MASINTER") + (LAMBDA (NDB) (* \; "Edited 11-May-88 16:08 by MASINTER") (* |;;;| "Kick the Ethernet receiver task to restart the Ethernet receiver task. This function gets called when the 10MBDRIVER thinks the Ethernet has been accidentally disabled") (SUBRCALL ETHER-RESUME))) (\\MAIKO.CHECKSUM - (LAMBDA (BASE NWORDS INITSUM) (* \; "Edited 20-May-88 11:48 by MASINTER") + (LAMBDA (BASE NWORDS INITSUM) (* \; "Edited 20-May-88 11:48 by MASINTER") (SUBRCALL CHECK-SUM BASE NWORDS INITSUM))) ) @@ -391,41 +373,37 @@ (DECLARE\: DOEVAL@COMPILE DONTCOPY -(GLOBALVARS \\MAIKO.10MB.NDB) -) - -(DECLARE\: DOEVAL@COMPILE DONTCOPY - (GLOBALVARS \\MAIKO.IO-INTERRUPT-FLAGS \\MAIKO.IO-INTERRUPT-VECTOR) ) ) (ADDTOVAR \\MAIKO.MOVDS (\\MAIKO.10MBSTARTDRIVER \\10MB.STARTDRIVER) - (\\MAIKO.10MBWATCHER \\10MBWATCHER) - (\\MAIKO.10MBSENDPACKET \\10MBSENDPACKET) - (\\MAIKO.ETHERSUSPEND \\10MB.TURNOFFETHER) - (\\MAIKO.10MBTURNONETHER \\10MB.TURNONETHER) - (\\MAIKO.ETHERRESUME \\10MB.RESTART.ETHER) - (\\MAIKO.CHECKSUM \\CHECKSUM)) + (\\MAIKO.10MBWATCHER \\10MBWATCHER) + (\\MAIKO.10MBSENDPACKET \\10MBSENDPACKET) + (\\MAIKO.ETHERSUSPEND \\10MB.TURNOFFETHER) + (\\MAIKO.10MBTURNONETHER \\10MB.TURNONETHER) + (\\MAIKO.ETHERRESUME \\10MB.RESTART.ETHER) + (\\MAIKO.CHECKSUM \\CHECKSUM)) -(* \; +(* |;;| "MAIKO handler for new interrupt-driven incoming ethernet communication, rather than polling for it.") (DEFINEQ (\\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") - (PROG ((NDB \\MAIKO.10MB.NDB) + (PROG ((NDB \\10MBLOCALNDB) LENGTH) (* |;;| "First, turn off the interrupt flag:") - (REPLACE (INTERRUPTSTATE ETHERINTERRUPT) OF \\INTERRUPTSTATE WITH NIL) + (|replace| (INTERRUPTSTATE ETHERINTERRUPT) |of| \\INTERRUPTSTATE |with| NIL) (* |;;| "Now handle it:") @@ -437,33 +415,27 @@ READ-MORE-LOOP (COND - ((NEQ (SETQ LENGTH (|fetch| DLFIRSTICB |of| (|fetch| NDBCSB - |of| NDB))) + ((NEQ (SETQ LENGTH (|fetch| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB))) \\ES.PENDING) (|replace| 10MBLENGTH |of| PACKET |with| LENGTH) (\\RCLK (LOCF (|fetch| EPTIMESTAMP |of| PACKET))) (|replace| EPNETWORK |of| PACKET |with| NDB) (|replace| EPTYPE |of| PACKET |with| (|for| PAIR |in| \\10MBTYPE.TRANSLATIONS - |bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET - )) - |when| (EQ TYPE (CAR PAIR)) - |do| (RETURN (CDR PAIR)) |finally| (RETURN - TYPE))) + |bind| (TYPE _ (|fetch| 10MBTYPE |of| PACKET)) + |when| (EQ TYPE (CAR PAIR)) |do| (RETURN (CDR PAIR)) + |finally| (RETURN TYPE))) (COND (\\RAWTRACING (\\MAYBEPRINTPACKET PACKET 'RAWGET))) (\\HANDLE.RAW.PACKET PACKET) (SETQ \\MAIKO.INPUT.PACKET (\\ALLOCATE.ETHERPACKET)) - (|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) - |with| \\ES.PENDING) + (|replace| DLFIRSTICB |of| (|fetch| NDBCSB |of| NDB) |with| \\ES.PENDING) (COND ((SUBRCALL ETHER-GET \\10MBPACKETLENGTH (|fetch| 10MBPACKETBASE - |of| - \\MAIKO.INPUT.PACKET) - ) + |of| \\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.") (SETQ PACKET \\MAIKO.INPUT.PACKET) (GO READ-MORE-LOOP))))))))))) @@ -471,7 +443,7 @@ -(* \; +(* |;;| "MAIKO Log & Console message handling. Interrupt-driven message printing, instead of polled printing." ) @@ -527,14 +499,13 @@ (RPAQ \\MAIKO.IO-INTERRUPT-FLAGS (\\CREATECELL \\FIXP)) (RPAQQ \\MAIKO.IO-INTERRUPT-VECTOR NIL) -(PUTPROPS MAIKOETHER COPYRIGHT ("Venue & Xerox Corporation" 1988 1989 1990 1991 2021)) (DECLARE\: DONTCOPY - (FILEMAP (NIL (2591 22216 (\\10MB.RESTART.ETHER 2601 . 2761) (\\10MB.STARTDRIVER 2763 . 4522) ( -\\10MB.TURNOFFETHER 4524 . 4684) (\\10MB.TURNONETHER 4686 . 7056) (\\10MBSENDPACKET 7058 . 9429) ( -\\10MBWATCHER 9431 . 10770) (\\MAIKO.10MBSENDPACKET 10772 . 13150) (\\MAIKO.10MBWATCHER 13152 . 14497) - (\\MAIKO.ETHERRESUME 14499 . 14658) (\\MAIKO.ETHERSUSPEND 14660 . 14821) (\\MAIKO.INPUT.INTERRUPT -14823 . 17085) (\\NS.SETTIME 17087 . 17367) (\\PUP.SETTIME 17369 . 17650) (\\MAIKO.10MBSTARTDRIVER -17652 . 19307) (\\MAIKO.10MBTURNONETHER 19309 . 21684) (\\MAIKO.10MB.RESTART.ETHER 21686 . 22039) ( -\\MAIKO.CHECKSUM 22041 . 22214)) (23271 26336 (\\MAIKO.ETHER-INTERRUPT 23281 . 26334)) (26458 27821 ( -\\MAIKO.CONSOLE-LOG-PRINT 26468 . 27819)) (27867 28547 (\\MAIKO.IO-INTERRUPT 27877 . 28545))))) + (FILEMAP (NIL (2301 20787 (\\10MB.RESTART.ETHER 2311 . 2475) (\\10MB.STARTDRIVER 2477 . 3863) ( +\\10MB.TURNOFFETHER 3865 . 4029) (\\10MB.TURNONETHER 4031 . 6121) (\\10MBSENDPACKET 6123 . 8481) ( +\\10MBWATCHER 8483 . 9926) (\\MAIKO.10MBSENDPACKET 9928 . 12296) (\\MAIKO.10MBWATCHER 12298 . 13747) ( +\\MAIKO.ETHERRESUME 13749 . 13912) (\\MAIKO.ETHERSUSPEND 13914 . 14079) (\\MAIKO.INPUT.INTERRUPT 14081 + . 15925) (\\NS.SETTIME 15927 . 16211) (\\PUP.SETTIME 16213 . 16498) (\\MAIKO.10MBSTARTDRIVER 16500 . +18150) (\\MAIKO.10MBTURNONETHER 18152 . 20247) (\\MAIKO.10MB.RESTART.ETHER 20249 . 20606) ( +\\MAIKO.CHECKSUM 20608 . 20785)) (21751 24528 (\\MAIKO.ETHER-INTERRUPT 21761 . 24526)) (24652 26015 ( +\\MAIKO.CONSOLE-LOG-PRINT 24662 . 26013)) (26061 26741 (\\MAIKO.IO-INTERRUPT 26071 . 26739))))) STOP diff --git a/sources/MAIKOETHER.LCOM b/sources/MAIKOETHER.LCOM index 471181fa8da480664095c8c052ce4ec93be21eae..3b214126d1c65ef40940c22627e7a68f365ab82e 100644 GIT binary patch delta 1718 zcmb_cU2NM_6po!HO}(W}x~)mtwcLb`ITA_j{5zehI`K{8#`&r3Y-bu`L z=R4oImkX~=yfKxJa}lXIABl0XB;tiECuEbE5Mo2~t=09VmF5C!t)UQNj29)Xv~{Mw z+1%J1o7-5rcyV)VeWSJ9oWHaQzf&i-(?%GD?jy@&lYBN23n639BwIPXU?5{@%|J}3 zP*)UmFE|>F65PVGmzo6h5SnB<6lU0htl+$gMIB2IfP`T)^LT=g{7a(4X#>Sl89_iy z7E7`o$xS0;ZE?;(*?du~OkgddSK%GXm(SKzd{(a3wTMI_J`j);$7K_#|DX(&f^PaH z>QmUE1Mr6@44=_Gz}}pAr))7sOn-)A;4q?P1URBkpzz# z4W29K&WU=yh*iYLQ>Y^45FbmxEw3-g3x|N3m@i>n!IcTUhZ1i7_+B5) zBe>AJ3qN<wRCT#H*gJ#X80nZMS@V`F1!B#F}&Yb-`Oc<7xdu>sbj=DrF) z^|`agO+L#CkS_uKC`H2uGf$HKK>A5##4WSE?;kpC8Ldoi1aSgK?lIh*tz5lOz-k!2@$V3x*+7B> zLa8)x?o;G{KM?Q{hBy*APRJnBv~s0TC8ZSL$3P$#q>J{e9g7}nnwllG*?yT>zTNgs zI_$fXmhs+`Y0694mrLEpiuC!tZ*6SSG+JQ>tJNAwGM)lu@FZycv0*b~mRy{=KAo?Y zYpPt)k)<*b1*>FB3p4Fk`(+w(gP0*#-C0r95X-=o!KXnQ^1yFhN1$uyqYh(q)PT>2 Q-n16&XCABBJIuEI1*J2>^8f$< delta 2213 zcmb_e&2JM|5chf$2o6phoY-+f(upZ_ofhL=$Dg6#wY`ZqUVq?SlNhWDlNjOF*`2^4HuZ4g7*mvBVnH}>k#Tan9Ox&0(C{ipZiJBA#=YP22 zeKu?mf`O2*feNo_EY=VkHWup@y))^8H0gc3L4rB`1`Cz zW>hq{>WzqhpC7$G+HfF;0#7>~QNxlBw_RS1%^JNg(8 zxxkL*{62_Filj-v`#m6zX;My_k~Pe+57dIHNhw@H(4>3lr%+3k824CUAEedL7pDz!wZ_aZaJOJYi>6|#(w0Q`;UUJ=P>uR*H2=!22%1c@yEA48K z@2xH}+WKktaSYp*$nB0UrWv`!swG00EgIt|_q**z50FQL-NVR|kpMJ`MY+0IuAeAP zm$RjlT21$ycV`#3^u{NQ{T)Z{ZwWBr3 zuEt2P-8VFgFGM{}6$^7yNimN|%DDVx(s*?Fx`E>Z0=d7n*XRwBLA#CdlFqiofZzx8 zZ(PCz=(poW%ZV{LJr1D|`Mc9W>f8C1hi&gOFDk(C(2N9lARUjoAPY2VavGDE%V+g$ zxxjF@mE1Hb`wWTszI!75-|9Q{^LJ~BEtD%1d~>zw0V}hs3G$(BpvBr{X(5I7J?0w| zNkpGCE`K2#3*?>lCB{rl+ewR=bD7Dt?T!IN^K1~L)BK~|%!MdhQsUHOvY?kLYQJo9 zp)qI2aGNS*1zaSQpT;|J8b)cNfs)hHIzs#}#b${`5H zgCq!?D1LyTXTrB7|1RuF!+10~g z5|9^K<#hQ-ty+#@vun7>1Itk0|F?R!YluVt1V|OqYC4~a(sEiaJoMvnlJVmA4CJCw z?AJY*nVpHQvX!|Rb2FW~TqA=!g5-e1!BWlT71sU%6+Ond7h_C z!ZIGgV|FAZ9<~Pq`a{28PaifoH!XQLS!%h0Ik;_o9_2&pKnl_O084m-fJjFr>+vl|@1NVL+#E`hvDqdV z#=KIpw=hir5r>_;)%y!#dd0ENsyF&(9BAq3w7u#WWDx`T-SIA-I@>pb0SAA8h^F1R z9~$g#*SU#Dz!1OO?}+ehf?aKywJ-(d7~(Pfab)h%O3y?qdu2kW>L;?1xiOc-3N=nG z|775N0%l0`Njp)iL#k9cReNCp zvzm&+bgfz~PcK$#)loRNfP?$^d2-OvI}~=}kmkmfOjK0#QASI3BiHC7u?{9oCY&Ss zTaG*!%62@}{7vMb^R5{uAsv0d4MTC1Tzl@au{gRCfGm5I!!C~_DEs7;gjgn9$jRdg x4ZkH0m#gQ>um`5f_1fzYtJTlc>LrTQiLE#oq#}eO