(FILECREATED " 8-Jun-84 10:57:40" {ERIS}<LISPNEW>CURRENT>I-NEW.;6)


(PRETTYCOMPRINT I-NEWCOMS)

(RPAQQ I-NEWCOMS ((ADDVARS (LOCKEDFNS ERROR RAID \M44ACTONVMEMFILE \ACTONVMEMFILESUBR \ACTONVMEMPAGES 
\CLEANUPDISKQUEUE \CLEARCB \DISKERROR \DOACTONDISKPAGES \DODISKCOMMAND \EXTENDISFMAP \EXTENDVMEMFILE 
\GETDISKCB \INITBFS \INSUREVMEMFILE \LISPERROR \LOOKUPFMAP \REALDISKDA \VIRTUALDISKDA \WARN.OF.BADVMEM
 \ZEROPAGE \ZEROWORDS \TESTPARTITION) (LOCKEDVARS \DISKREQUESTBLOCK \SWAPREQUESTBLOCK \MAINDISK 
\ISFCHUNKSIZE \EMUSCRATCH \EMUDISKBUFFERS \EMUSWAPBUFFERS \EMUDISKBUFEND \MAXSWAPBUFFERS \#DISKBUFFERS
 \InterfacePage \ISFMAP \ISFSCRATCHCAS \ISFSCRATCHDAS \SYSDISK \#SWAPBUFFERS \MAXDISKDAs 
%%STREAMTYPE# \DISKDEBUG \MAXSWAPBUFFERS \SPAREDISKWRITEBUFFER \#EMUBUFFERS \EMUBUFFERS 
\FRAGMENTATIONWARNED)) (FNS I.MAKEINITBFS) (ADDVARS (LOCKEDFNS \KEYHANDLER \KEYHANDLER1 
\RESETKEYBOARD1 \DOTRANSITIONS \DOMOUSETRANSITIONS \CONTEXTAPPLY \LOCKPAGES \DECODETRANSITION 
\SMASHLINK \PUTEVENTQUEUE \INCUSECOUNT \PUTSYSBUF CLOCK0 \EVENTKEYS KEYDOWNP1 LRSH LLSH \MAKEFREEBLOCK
 \DECUSECOUNT \MAKENUMBER \ADDBASE \PERIODIC.INTERRUPTFRAME \CAUSE.PERIODIC.INTERRUPT) (LOCKEDVARS 
\InterfacePage \TRANSITIONFLAGS \SHIFTSTATE \TRANSITIONSHIFTCODES \TRANSITIONCODES \EVENTSTATUS 
\ARMEDINTERRUPTS \EVENTQUEUE \MOUSEHOTSPOTX \MOUSEHOTSPOTY \MOUSETIMEBOX \SYSBUFFER \PENDINGINTERRUPT 
\COLORCURSORBM \COLORCURSORDOWN \COLORDISPLAYBITSPERPIXEL \ColorCursorBBT \COLORCURSORWIDTH 
\COLORSCREENCURSORLINE \COLORSCREENCURSORLINEBASE \COLORCURSORBASE \COLORSCREENWIDTHINBITS 
\COLORSCREENRASTERWIDTH \COLORCURSORRASTERWIDTH \PERIODIC.INTERRUPT \PERIODIC.INTERRUPT.FREQUENCY 
\LASTUSERACTION \MOUSECHORDTICKS) (LOCKEDVARS \EM.MOUSEX \EM.MOUSEY \EM.CURSORX \EM.CURSORY \EM.UTILIN
 \EM.REALUTILIN \EM.KBDAD0 \EM.KBDAD1 \EM.KBDAD2 \EM.KBDAD3 \EM.DISPINTERRUPT \EM.CURSORBITMAP 
\EM.DISPLAYHEAD)) (ADDVARS (LOCKEDFNS \CLOCK0 \GETINTERNALCLOCK \BOXIDIFFERENCE \BOXIPLUS \BLT 
\SLOWIQUOTIENT) (LOCKEDVARS \RCLKSECOND \RCLKMILLISECOND \MISCSTATS)) (ADDVARS (LOCKEDFNS 
\FAULTHANDLER \FAULTINIT \D01.FAULTINIT \DL.FAULTINIT \MAKESPACEFORLOCKEDPAGE \PAGEFAULT \READRP 
\READFLAGS \WRITEMAP \LOOKUPPAGEMAP \LOADVMEMPAGE \INVALIDADDR RAID \INVALIDVP \SELECTREALPAGE 
\TRANSFERPAGE \UPDATECHAIN \MARKPAGEVACANT \FLUSHPAGE \MOVEPAGE \ZEROPAGE \FLUSHVM \DONEWPAGE 
\DONEWEPHEMERALPAGE \WRITEDIRTYPAGE1 \COPYSYS0 \COPYSYS0SUBR \RELEASEWORKINGSET \DOFLUSHVM 
\DOLOCKPAGES \TEMPLOCKPAGES \TEMPUNLOCKPAGES \MP.ERROR \DL.NEWFAULTINIT \DL.MARK.PAGES.UNAVAILABLE 
\DL.UNMAPPAGES \DL.ASSIGNBUFFERS \D01.ASSIGNBUFFERS \DOCOMPRESSVMEM \MOVEVMEMFILEPAGE) (LOCKEDVARS 
\REALPAGETABLE \PAGEFAULTCOUNTER \UPDATECHAINFREQ \RPOFFSET \RPTSIZE \EMBUFBASE \EMBUFVP \EMBUFRP 
\LASTACCESSEDVMEMPAGE \MAXSHORTSEEK \MAXCLEANPROBES \MINSHORTSEEK \DIRTYPAGECOUNTER \DIRTYPAGEHINT 
\VMEM.INHIBIT.WRITE \VMEM.PURE.LIMIT VMEM.COMPRESS.FLG \KBDSTACKBASE \MISCSTACKBASE \DOFAULTINIT 
\FPTOVP \MACHINETYPE \VMEMACCESSFN \TELERAIDBUFFER \EMUDISKBUFFERS \EMUDISKBUFEND \MAXSWAPBUFFERS)) (
FNS I.\LOCKFN I.\LOCKVAR I.\LOCKCELL I.\LOCKWORDS I.\LOCKCODE) (FNS I.DUMPINITPAGES) (VARS 
INITCONSTANTS) (FNS I.SETUPPAGEMAP I.ADDPME I.MAKEROOMFORPME I.MAPPAGES) (FNS I.SETUPSTACK 
I.\SETUPSTACK1 I.\SETUPGUARDBLOCK I.\MAKEFREEBLOCK) (ADDVARS (LOCKEDFNS \RESETSTACK0 \MAKEFRAME 
\SETUPSTACK1 \MAKEFREEBLOCK \FAULTHANDLER \KEYHANDLER \DUMMYKEYHANDLER \DOTELERAID \DUMMYTELERAID 
\DOHARDRETURN \DOGC \CAUSEINTERRUPT \INTERRUPTFRAME \CODEFORTFRAME \DOSTACKOVERFLOW \UNLOCKPAGES 
\DOMISCAPPLY) (LOCKEDVARS \InterfacePage \DEFSPACE \STACKSPACE \KBDSTACKBASE \MISCSTACKBASE)) (FNS 
I.INITGC) (FNS I.NTYPX I.\ALLOCMDSPAGE I.\MAKEMDSENTRY I.\GCTYPE I.\INITMDSPAGE I.ASSIGNDATATYPE 
I.\TYPENUMBERFROMNAME I.\CREATECELL I.\NEW2PAGE) (FNS I.CREATEMDSTYPETABLE I.INITDATATYPES 
I.INITDATATYPENAMES) (VARS DTDECLS) (FNS I.FSETVAL I.SETPROPLIST I.PUTDEFN) (FNS I.\MKATOM I.NewAtom 
I.\INITATOMPAGE I.\GCPNAMES I.\MOVEBYTES) (FNS I.COPYATOM I.INITATOMS) (BLOCKS (I.\MKATOM I.\MKATOM 
I.NewAtom I.\MOVEBYTES (NOLINKFNS . T))) (FNS I.INITUFNTABLE I.\SETUFNENTRY) (FNS I.MAKEINITFIRST 
I.\COPY I.MAKEINITLAST) (FNS I.\CONS.UFN I.\INITCONSPAGE I.\NEXTCONSPAGE) (FNS I.\GETBASEBYTE 
I.\PUTBASEBYTE I.CREATEPAGES I.\NEW4PAGE) (FNS I.ALLOCSTRING I.\ALLOCBLOCK I.\ALLOCNEWBLOCK 
I.\LINKBLOCK I.\MERGEBACKWARD I.\PATCHBLOCK) (FNS I.COPYSTRING I.PREINITARRAYS I.POSTINITARRAYS 
I.FILEARRAYBASE I.FILEBLOCKTRAILER I.FILECODEBLOCK I.FILEPATCHBLOCK) (FNS I.DCODERD) (VARS \OPCODES (
I.CODERDTBL (COPYREADTABLE (QUOTE ORIG)))) (P (SETSYNTAX (CHARCODE ↑Y) (QUOTE (MACRO (LAMBDA (FILE 
RDTBL) (EVALFORMAKEINIT (READ FILE RDTBL))))) I.CODERDTBL)) (VARS INITPTRS INITVALUES) (DECLARE: 
EVAL@COMPILE DONTCOPY (FILES (LOADCOMP) MAKEINIT))))

(ADDTOVAR LOCKEDFNS ERROR RAID \M44ACTONVMEMFILE \ACTONVMEMFILESUBR \ACTONVMEMPAGES \CLEANUPDISKQUEUE 
\CLEARCB \DISKERROR \DOACTONDISKPAGES \DODISKCOMMAND \EXTENDISFMAP \EXTENDVMEMFILE \GETDISKCB \INITBFS
 \INSUREVMEMFILE \LISPERROR \LOOKUPFMAP \REALDISKDA \VIRTUALDISKDA \WARN.OF.BADVMEM \ZEROPAGE 
\ZEROWORDS \TESTPARTITION)

(ADDTOVAR LOCKEDVARS \DISKREQUESTBLOCK \SWAPREQUESTBLOCK \MAINDISK \ISFCHUNKSIZE \EMUSCRATCH 
\EMUDISKBUFFERS \EMUSWAPBUFFERS \EMUDISKBUFEND \MAXSWAPBUFFERS \#DISKBUFFERS \InterfacePage \ISFMAP 
\ISFSCRATCHCAS \ISFSCRATCHDAS \SYSDISK \#SWAPBUFFERS \MAXDISKDAs %%STREAMTYPE# \DISKDEBUG 
\MAXSWAPBUFFERS \SPAREDISKWRITEBUFFER \#EMUBUFFERS \EMUBUFFERS \FRAGMENTATIONWARNED)
(DEFINEQ

(I.MAKEINITBFS
(LAMBDA NIL (*) (*) (I.\LOCKCELL (SETQ I.MAINDISK ((LAMBDA ($$1) (I.PUTBASEPTR $$1 0 NIL) $$1) (
I.\ALLOCBLOCK 18))) 34) (I.PUTBASEPTR I.MAINDISK 26 (I.\COPY (QUOTE DSK))) (I.\LOCKCELL (SETQ 
I.SWAPREQUESTBLOCK (I.\ALLOCBLOCK (LRSH (IPLUS (IPLUS 42 60) 1) 1))) (IPLUS 42 60)) (I.\LOCKCELL (SETQ
 I.DISKREQUESTBLOCK (I.\ALLOCBLOCK (LRSH (IPLUS (IPLUS 42 60) 1) 1))) (IPLUS 42 60)) (to 3 bind PREV (
CB ← (I.\ALLOCBLOCK 3)) first (I.\LOCKCELL CB 6) (SETQ PREV CB) do (I.\LOCKCELL CB 6) (SETQ PREV ((
LAMBDA ($$1) (PROG1 (SETQ $$1 (I.\ALLOCBLOCK 3)) (I.PUTBASEPTR $$1 0 PREV))) NIL)) finally (
I.PUTBASEPTR CB 0 PREV) (I.PUTBASEPTR I.MAINDISK 14 CB)) (SETQ I.FREEPAGEFID (I.\ALLOCBLOCK 3)) (*) (
for I from 0 to 4 do (I.PUTBASE I.FREEPAGEFID I (LOGAND -1 (CONSTANT (SUB1 (LLSH 1 16))))))))
)

(ADDTOVAR LOCKEDFNS \KEYHANDLER \KEYHANDLER1 \RESETKEYBOARD1 \DOTRANSITIONS \DOMOUSETRANSITIONS 
\CONTEXTAPPLY \LOCKPAGES \DECODETRANSITION \SMASHLINK \PUTEVENTQUEUE \INCUSECOUNT \PUTSYSBUF CLOCK0 
\EVENTKEYS KEYDOWNP1 LRSH LLSH \MAKEFREEBLOCK \DECUSECOUNT \MAKENUMBER \ADDBASE 
\PERIODIC.INTERRUPTFRAME \CAUSE.PERIODIC.INTERRUPT)

(ADDTOVAR LOCKEDVARS \InterfacePage \TRANSITIONFLAGS \SHIFTSTATE \TRANSITIONSHIFTCODES 
\TRANSITIONCODES \EVENTSTATUS \ARMEDINTERRUPTS \EVENTQUEUE \MOUSEHOTSPOTX \MOUSEHOTSPOTY \MOUSETIMEBOX
 \SYSBUFFER \PENDINGINTERRUPT \COLORCURSORBM \COLORCURSORDOWN \COLORDISPLAYBITSPERPIXEL 
\ColorCursorBBT \COLORCURSORWIDTH \COLORSCREENCURSORLINE \COLORSCREENCURSORLINEBASE \COLORCURSORBASE 
\COLORSCREENWIDTHINBITS \COLORSCREENRASTERWIDTH \COLORCURSORRASTERWIDTH \PERIODIC.INTERRUPT 
\PERIODIC.INTERRUPT.FREQUENCY \LASTUSERACTION \MOUSECHORDTICKS)

(ADDTOVAR LOCKEDVARS \EM.MOUSEX \EM.MOUSEY \EM.CURSORX \EM.CURSORY \EM.UTILIN \EM.REALUTILIN 
\EM.KBDAD0 \EM.KBDAD1 \EM.KBDAD2 \EM.KBDAD3 \EM.DISPINTERRUPT \EM.CURSORBITMAP \EM.DISPLAYHEAD)

(ADDTOVAR LOCKEDFNS \CLOCK0 \GETINTERNALCLOCK \BOXIDIFFERENCE \BOXIPLUS \BLT \SLOWIQUOTIENT)

(ADDTOVAR LOCKEDVARS \RCLKSECOND \RCLKMILLISECOND \MISCSTATS)

(ADDTOVAR LOCKEDFNS \FAULTHANDLER \FAULTINIT \D01.FAULTINIT \DL.FAULTINIT \MAKESPACEFORLOCKEDPAGE 
\PAGEFAULT \READRP \READFLAGS \WRITEMAP \LOOKUPPAGEMAP \LOADVMEMPAGE \INVALIDADDR RAID \INVALIDVP 
\SELECTREALPAGE \TRANSFERPAGE \UPDATECHAIN \MARKPAGEVACANT \FLUSHPAGE \MOVEPAGE \ZEROPAGE \FLUSHVM 
\DONEWPAGE \DONEWEPHEMERALPAGE \WRITEDIRTYPAGE1 \COPYSYS0 \COPYSYS0SUBR \RELEASEWORKINGSET \DOFLUSHVM 
\DOLOCKPAGES \TEMPLOCKPAGES \TEMPUNLOCKPAGES \MP.ERROR \DL.NEWFAULTINIT \DL.MARK.PAGES.UNAVAILABLE 
\DL.UNMAPPAGES \DL.ASSIGNBUFFERS \D01.ASSIGNBUFFERS \DOCOMPRESSVMEM \MOVEVMEMFILEPAGE)

(ADDTOVAR LOCKEDVARS \REALPAGETABLE \PAGEFAULTCOUNTER \UPDATECHAINFREQ \RPOFFSET \RPTSIZE \EMBUFBASE 
\EMBUFVP \EMBUFRP \LASTACCESSEDVMEMPAGE \MAXSHORTSEEK \MAXCLEANPROBES \MINSHORTSEEK \DIRTYPAGECOUNTER 
\DIRTYPAGEHINT \VMEM.INHIBIT.WRITE \VMEM.PURE.LIMIT VMEM.COMPRESS.FLG \KBDSTACKBASE \MISCSTACKBASE 
\DOFAULTINIT \FPTOVP \MACHINETYPE \VMEMACCESSFN \TELERAIDBUFFER \EMUDISKBUFFERS \EMUDISKBUFEND 
\MAXSWAPBUFFERS)
(DEFINEQ

(I.\LOCKFN
(LAMBDA (FN) (*) (I.\LOCKCELL (SETQ FN ((LAMBDA ($$1) (I.ADDBASE (I.ADDBASE (I.VAG2 17 0) (
I.ATOMNUMBER (PROGN $$1))) (I.ATOMNUMBER $$1))) (I.\COPY FN)))) (COND ((NOT (ZEROP (LRSH (I.GETBASE FN
 0) 15))) (I.\LOCKCODE (I.GETBASEPTR FN 0))))))

(I.\LOCKVAR
(LAMBDA (VAR) (*) (I.\LOCKCELL ((LAMBDA ($$1) (I.ADDBASE (I.ADDBASE (I.VAG2 18 0) (PROGN $$1)) $$1)) (
I.ATOMNUMBER (PROGN (I.\COPY VAR)))))))

(I.\LOCKCELL
(LAMBDA (X NPGS) (*) (MKI.LOCKPAGES (I.VAG2 (I.HILOC X) (LOGAND (I.LOLOC X) 65280)) (OR NPGS 1))))

(I.\LOCKWORDS
(LAMBDA (BASE NWORDS) (*) (MKI.LOCKPAGES (I.VAG2 (I.HILOC BASE) (LOGAND (I.LOLOC BASE) 65280)) (COND (
NWORDS (LRSH (IPLUS (IPLUS (LOGAND (I.LOLOC BASE) 255) NWORDS) 255) 8)) (T 1)))))

(I.\LOCKCODE
(LAMBDA (CODEBLOCK) (*) (I.\LOCKWORDS CODEBLOCK (LLSH (IDIFFERENCE (I.GETBASE (I.ADDBASE CODEBLOCK (
IMINUS 2)) 1) 4) 1))))
)
(DEFINEQ

(I.DUMPINITPAGES
(LAMBDA (CODESTARTOFFSET CODELASTPAGE) (*) (*) (I.ADDPME (IPLUS (LLSH (I.HILOC (I.VAG2 22 4096)) 8) (
LRSH (I.LOLOC (I.VAG2 22 4096)) 8)) T) (*) (for I from (IPLUS (LLSH 32 8) CODESTARTOFFSET) to (SUB1 
CODELASTPAGE) do (*) (I.ADDPME I T)) (I.MAPPAGES 0 (ADD1 16383) (FUNCTION I.MAKEROOMFORPME)) (
I.MAPPAGES 0 (ADD1 16383) (FUNCTION I.ADDPME)) (PROGN (*) (I.PUTBASE (I.VAG2 22 4096) 19 NEXTPM) (
I.PUTBASE (I.VAG2 22 4096) 20 (SUB1 NEXTVMEM)) (I.PUTBASE (I.VAG2 22 4096) 21 (SUB1 NEXTVMEM)) (
I.PUTBASE (I.VAG2 22 4096) 22 (LOGAND (PROGN (I.GETBASE (I.VAG2 21 0) 0)) 32767)) (I.PUTBASE (I.VAG2 
22 4096) 23 (LOGAND (PROGN (I.GETBASE (I.VAG2 21 0) (I.GETBASE (I.VAG2 22 0) (LRSH (PROGN (IPLUS (LLSH
 (I.HILOC (I.VAG2 22 0)) 8) (LRSH (I.LOLOC (I.VAG2 22 0)) 8))) 5)))) 32767)) (I.PUTBASE (I.VAG2 22 
4096) 8 37120) (I.PUTBASE (I.VAG2 22 4096) 9 5120) (I.PUTBASE (I.VAG2 22 4096) 10 8960) (I.PUTBASE (
I.VAG2 22 4096) 15 5603)) (I.MAPPAGES 0 (ADD1 16383) (FUNCTION DUMPVP)) (PROG ((FILE (OUTPUT))) (COND 
((NOT (RANDACCESSP FILE)) (* SYSOUT file is sequential; have to get it random access for this) (OUTPUT
 (SETQ FILE (OPENFILE (CLOSEF FILE) (QUOTE BOTH)))))) (SETFILEPTR FILE MKI.Page0Byte)) (DUMPVP (IPLUS 
(LLSH (I.HILOC (I.VAG2 22 4096)) 8) (LRSH (I.LOLOC (I.VAG2 22 4096)) 8)))))
)

(RPAQQ INITCONSTANTS ((* (LISPNAME VALUE BCPLNAME UCODENAME)) (* * version numbers) (\MinRamVersion 
5120 T T) (\MinBcplVersion 8960 T T) (\LispVersion 37120 T T) (* IF CDRCODING=0, CDR CODING IS OFF, 
OTHERWISE ON) (CDRCODING 1 T T) (* * type numbers) (\SMALLP 1 SMALLTYPE SmallType) (\FIXP 2 
INTEGERTYPE FixpType) (\FLOATP 3 FLTPTTYPE FloatpType) (\LITATOM 4 ATOMTYPE AtomType) (\LISTP 5 
LISTTYPE ListType) (\ARRAYP 6 ARRAYPTRTYPE ArrayType) (\STRINGP 7 STRINGPTRTYPE) (\STACKP 8) (
\VMEMPAGEP 10 NIL VMemPagePType) (\STREAM 11 NIL STREAMTYPE) (* * TYPE TABLE CONSTANTS) (\TT.TYPEMASK 
255 TTTypeMask T) (\TT.NOREF 32768 NIL T) (\TT.LISPREF 16384 NIL T) (* * page map) (\PMblockSize 32 
PMBLOCKSIZE) (\STATSsize 8 T) (\NumPMTpages 2) (\EmptyPMTEntry 65535 T) (\FirstVmemBlock 2 T) (* * 
interface page) (\IFPValidKey 5603 T) (* * atoms) (\HashInc 19 T) (* * MDS) (\FirstMDSPage 256 T) (
\MDSIncrement 512) (* * stack block constants) (\StackMask 57344 T T) (\FxtnBlock 49152 T T) (
\GuardBlock 57344 T T) (\BFBlock 32768 T T) (\FreeStackBlock 40960 T T) (\NotStackBlock 0) (* none of 
the above) (\MinExtraStackWords 32 T T) (* * backspace kludge) (ERASECHARCODE 0 T) (* * GC constants) 
(\HT1CNT 1024 NIL T) (\HTSTKBIT 512 NIL T) (\HTCNTMASK 64512 NIL T) (\HTMAINSIZE 32768 NIL T) (
\HTCOLLSIZE 65528 NIL T) (\HTENDFREE 1 NIL T) (\HTFREEPTR 0 NIL T) (* * pointers and lengths of 
various data spaces) (\ATOMSPACE (0 0) (ATOMspace NIL) (atomHiVal NIL)) (\AtomHI 0) (\SMALLPOSPSPACE (
14 0)) (\SmallPosHi 14 SMALLPOSspace smallpl) (\SMALLNEGSPACE (15 0)) (\SmallNegHi 15 SMALLNEGspace 
smallneg) (\NumSmallPages 512) (\LastMDSPage 3583) (\PNPSPACE (16 0) (PNPspace PNPbase)) (\LastPnPage 
2047) (\DEFSPACE (17 0) (DEFspace DEFbase) (DEFspace DEFbase)) (\VALSPACE (18 0) (TOPVALspace 
TOPVALbase) (VALspace VALbase)) (\PLISTSPACE (19 0) (PLISTspace PLISTbase)) (\AtomHashTable (20 0) (
AHTspace AHTbase)) (\AtomHTpages 128 AHTSIZE) (\PAGEMAP (21 0) (PAGEMAPspace PAGEMAPbase)) (
\NumPageMapPages 256) (\PageMapTBL (22 0) (PMTspace PMTbase)) (\InterfacePage (22 4096) (
INTERFACEspace INTERFACEbase) (INTERFACEspace INTERFACEbase)) (\CurrentFXP 0 T T) (\ResetFXP 1 T T) (
\SubovFXP 2 T T) (\KbdFXP 3 T T) (\HardReturnFXP 4 T T) (\GCFXP 5) (\FAULTFXP 6 T T) (\MiscFXP 14 T T)
 (\TeleRaidFXP 24 T T) (\IOPAGE (0 65280)) (\IOCBPAGE (0 256)) (\MDSTypeTable (22 32768) (MDSTYPEspace
 MDSTYPEbase) (NIL MDSTYPEbase)) (\MDSTTsize 32 T) (\STATSSPACE (22 40960) (STATSspace STATSbase) (
STATSspace NIL)) (\InterruptTBL (22 41600) (NIL InterruptTBLbase)) (\MISCSTATS (22 41984) (NIL 
MISCSTATSbase)) (\UFNTable (22 42496) NIL (NIL UFNTablebase)) (\DTDSpaceBase (22 43008) (DTDspace 
DTDbase) (DTDspace DTDbase)) (\DTDSize 16 T) (\LISTPDTD (22 43088)) (\EndTypeNumber 255) (\STACKSPACE 
(23 0) (STACKspace NIL) (STACKspace NIL)) (\GuardStackAddr 61440) (\LastStackAddr 65534) (\STACKHI 23 
NIL T) (\PNCHARSSPACE (24 0)) (\PNAMESPACEEND (31 65535)) (\ARRAYSPACE (32 0) NIL (ARRAYspace NIL)) (
\ARRAYspace 32) (\ARRAYbase 0) (\NUMARRAYPAGES 6911) (\ENDARRAYPAGE 15103) (\HTMAIN (59 0) (
HTMAINspace HTMAINbase) (HTMAINspace HTMAINbase)) (\HTMAINnpages 129 T) (\HTMAIN1 (59 1)) (\HTOVERFLOW
 (59 32768) NIL (NIL HTOVERFLOWbase)) (\HTBIGCOUNT (59 33024)) (\HTCOLL (60 0) NIL (HTCOLLspace 
HTCOLLbase)) (\HTCOLL1 (60 1)) (\DISPLAYREGION (62 0)) (\DefaultScARRAYhi 62) (\D1BCPLspace 0 T 
LEmubrHiVal) (\D0BCPLspace 0 T) (* emulator segment locations) (DCB.EM 272) (DISPINTERRUPT.EM 273) (
CURSORBITMAP.EM 281) (KBDAD0.EM 65052) (KBDAD1.EM 65053) (KBDAD2.EM 65054) (KBDAD3.EM 65055) (
UTILIN.EM 65048) (CURSORX.EM 278) (CURSORY.EM 279) (MOUSEX.EM 276) (MOUSEY.EM 277) (\LispKeyMask 8192 
T T) (\BcplKeyMask 4352 T T) (* Machine types) (\DOLPHIN 4) (\DORADO 5) (\DANDELION 6) (* * FOR DLION)
 (\VP.DISPLAY 15872) (* for wide display 1024x808/16x256) (\NP.DISPLAY 202) (\RP.DISPLAY 0) (\RP.STACK
 512) (\VP.STACK 5888) (\VP.STATS 5760) (\RP.STATS 384) (\NP.STATS 128) (\RP.MAP 256) (\NP.MAP 64) (
\RP.IOPAGE 320) (\VP.IOPAGE 255) (\VP.IFPAGE 5648) (\VP.FPTOVP 5696) (\NP.FPTOVP 64) (\RP.FPTOVP 321) 
(\RP.STARTBUFFERS 385) (\VP.TYPETABLE 5760) (\NP.TYPETABLE 32) (\RP.TYPETABLE 896) (\VP.GCTABLE 15104)
 (\NP.GCTABLE 128) (\RP.GCTABLE 768) (\VP.GCOVERFLOW 15232) (\NP.GCOVERFLOW 1) (\RP.GCOVERFLOW 928) (
\FP.IFPAGE 2) (\VP.IOCBS 1) (\RP.TEMPDISPLAY 929) (* DLion processor commands) (\DL.PROCESSORBUSY 
32768) (\DL.SETTOD 32769) (\DL.READTOD 32770) (\DL.READPID 32771) (\DL.BOOTBUTTON 32772) (
\RP.AFTERDISPLAY 206) (\VP.INITSCRATCH 8) (\VP.RPT 128) (\VP.BUFFERS 218)))
(DEFINEQ

(I.SETUPPAGEMAP
(LAMBDA NIL (*) (*) (PROG (VPX) (*) (MKI.NEWPAGE (I.VAG2 21 0) NIL T) (I.CREATEPAGES (I.VAG2 22 0) 2 
NIL T) (*) (for I from 0 to (SUB1 (LLSH 2 8)) do (I.PUTBASE (I.VAG2 22 0) I 65535)) (SETQ NEXTPM 0) (
SETQ VPX (LRSH (PROGN (IPLUS (LLSH (I.HILOC (I.VAG2 21 0)) 8) (LRSH (I.LOLOC (I.VAG2 21 0)) 8))) 5)) (
for I from 0 to (SUB1 (LRSH 256 5)) do (I.PUTBASE (I.VAG2 22 0) (IPLUS VPX I) NEXTPM) (SETQ NEXTPM (
IPLUS NEXTPM 32))) (*) (SETQ NEXTVMEM 2))))

(I.ADDPME
(LAMBDA (VP NEWPAGEOK) (*) (*) (PROG (PX PMP) (COND ((IEQ (SETQ PMP (I.GETBASE (I.VAG2 22 0) (LRSH VP 
5))) 65535) (*) (COND ((EVENP NEXTPM 256) (*) (SETQ PX (I.ADDBASE (I.VAG2 21 0) NEXTPM)) (OR NEWPAGEOK
 (IGREATERP (IPLUS (LLSH (I.HILOC PX) 8) (LRSH (I.LOLOC PX) 8)) VP) (HELP 
"page map needs new page after page map written out")) (MKI.NEWPAGE PX NIL T))) (I.PUTBASE (I.VAG2 22 
0) (LRSH VP 5) (SETQ PMP NEXTPM)) (SETQ NEXTPM (IPLUS NEXTPM 32)))) (SETQ PX (IPLUS PMP (LOGAND VP 31)
)) (COND ((NEQ (I.GETBASE (I.VAG2 21 0) PX) 0) (HELP "page already in pagemap" VP)) (T (I.PUTBASE (
I.VAG2 21 0) PX (COND ((MKI.LOCKEDPAGEP VP) (IPLUS 32768 NEXTVMEM)) (T NEXTVMEM))))) (SETQ NEXTVMEM (
ADD1 NEXTVMEM)))))

(I.MAKEROOMFORPME
(LAMBDA (VP) (*) (*) (COND ((IEQ (I.GETBASE (I.VAG2 22 0) (LRSH VP 5)) 65535) (*) (COND ((EVENP NEXTPM
 256) (*) (MKI.NEWPAGE (I.ADDBASE (I.VAG2 21 0) NEXTPM) NIL T))) (I.PUTBASE (I.VAG2 22 0) (LRSH VP 5) 
NEXTPM) (SETQ NEXTPM (IPLUS NEXTPM 32))))))

(I.MAPPAGES
(LAMBDA (BOT TOP FN) (*) (PROG ((VP BOT) (IVP (IPLUS (LLSH (I.HILOC (I.VAG2 22 4096)) 8) (LRSH (
I.LOLOC (I.VAG2 22 4096)) 8)))) LP (COND ((AND (SETQ VP (MKI.NEXTPAGE VP)) (IGREATERP TOP VP)) (COND (
(NOT (IEQ VP IVP)) (APPLY* FN VP))) (SETQ VP (ADD1 VP)) (GO LP))))))
)
(DEFINEQ

(I.SETUPSTACK
(LAMBDA (INITFLG) (*) (*) (I.CREATEPAGES (I.VAG2 23 0) (IQUOTIENT 9216 256) NIL T) (*) (
I.\SETUPGUARDBLOCK 0 2) (*) (I.PUTBASE (I.VAG2 22 4096) 0 (I.\SETUPSTACK1 2 0 0 (IDIFFERENCE 768 2) 0 
RESETPC RESETPTR NIL INITFLG)) (I.PUTBASE (I.VAG2 22 4096) 1 0) (I.PUTBASE (I.VAG2 22 4096) 6 0) (
I.PUTBASE (I.VAG2 22 4096) 2 0) (I.PUTBASE (I.VAG2 22 4096) 3 0) (I.\SETUPGUARDBLOCK (IDIFFERENCE 768 
2) 2) (I.PUTBASE (I.VAG2 22 4096) 30 (I.\SETUPGUARDBLOCK 768 (IDIFFERENCE (IDIFFERENCE 9216 768) 2))) 
(I.PUTBASE (I.VAG2 22 4096) 7 (I.\SETUPGUARDBLOCK (IDIFFERENCE 9216 2) 2))))

(I.\SETUPSTACK1
(LAMBDA (STKP ALINK CLINK STKEND NARGS PC DEFPTR ARGS INITFLG) (*) (COND ((OR INITFLG (IGREATERP (
IDIFFERENCE STKEND STKP) (IPLUS (PROG1 (I.GETBASE DEFPTR 0) (*)) (PROG1 4 (*))))) (*) (PROG ((SP STKP)
) (FRPTQ NARGS (I.PUTBASEPTR (I.VAG2 23 0) SP (CAR ARGS)) (*) (SETQ ARGS (CDR ARGS)) (SETQ SP (IPLUS 
SP 2))) (AND (PROG1 (COND ((ODDP SP 4) (I.PUTBASEPTR (I.VAG2 23 0) SP NIL) (*) (SETQ SP (IPLUS SP 2)) 
T)) (I.PUTBASE (I.VAG2 23 SP) 0 32768)) (LOGAND (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (
LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 65279) (LLSH (LOGAND 1 1) 8)))) (I.VAG2 23 SP)) 8) 1)) (
I.PUTBASE (I.VAG2 23 SP) 1 STKP) (SETQ STKP (IPLUS SP 2)) (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE 
$$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 8191) (LLSH 6 13)))) (I.VAG2 23 STKP)) 13) (NEQ (
LOGAND (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 65279)
 (LLSH (LOGAND (COND (T 1) (T 0)) 1) 8)))) (I.VAG2 23 STKP)) 8) 1) 0) (NEQ (LOGAND (LRSH ((LAMBDA (
$$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 64511) (LLSH (LOGAND (COND (
NIL 1) (T 0)) 1) 10)))) (I.VAG2 23 STKP)) 10) 1) 0) (NEQ (LOGAND (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE
 $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 61439) (LLSH (LOGAND (COND (NIL 1) (T 0)) 1) 12)))
) (I.VAG2 23 STKP)) 12) 1) 0) (NEQ (LOGAND (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (
LOGAND (I.GETBASE $$PUTBITS 0) 65023) (LLSH (LOGAND (COND (NIL 1) (T 0)) 1) 9)))) (I.VAG2 23 STKP)) 9)
 1) 0) (LOGAND ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 
65280) (LOGAND 0 255)))) (I.VAG2 23 STKP)) 255) (I.PUTBASE (I.VAG2 23 STKP) 8 SP) (I.PUTBASE (I.VAG2 
23 STKP) 1 (IPLUS ALINK 10 1)) (I.PUTBASE (I.VAG2 23 STKP) 9 (IPLUS CLINK 10)) (PROGN ((LAMBDA ($$1) (
LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 3 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 3) 255) (LLSH (
PROGN $$1) 8)))) (I.VAG2 23 STKP)) 8) (LOGAND ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 3 (LOGOR (
LOGAND (I.GETBASE $$PUTBITS 3) 65280) (LOGAND $$1 255)))) (I.VAG2 23 STKP)) 255)) (I.HILOC DEFPTR)) (
I.PUTBASE (I.VAG2 23 STKP) 2 (I.LOLOC DEFPTR))) (I.PUTBASE (I.VAG2 23 STKP) 5 PC) (SETQ SP (IPLUS STKP
 (PROGN 10))) (COND ((NOT INITFLG) (*) (RPTQ (LLSH (ADD1 ((LAMBDA (X) (DECLARE (LOCALVARS . T)) (COND 
((IGREATERP X (SUB1 (LLSH 1 (SUB1 16)))) (SUB1 (IDIFFERENCE X (SUB1 (LLSH 1 16))))) (T X))) (I.GETBASE
 DEFPTR 2))) 1) (PROGN (*) (I.PUTBASE (I.VAG2 23 0) SP 65535) (SETQ SP (IPLUS SP 2)))))) (I.PUTBASE (
I.VAG2 23 STKP) 4 (SETQ SP (IPLUS SP (PROGN 4)))) (*) (I.\MAKEFREEBLOCK SP (IDIFFERENCE STKEND SP)) (
RETURN STKP))))))

(I.\SETUPGUARDBLOCK
(LAMBDA (STKP LEN) (*) (I.PUTBASE (I.VAG2 23 STKP) 0 57344) (I.PUTBASE (I.VAG2 23 STKP) 1 LEN) STKP))

(I.\MAKEFREEBLOCK
(LAMBDA (STK SIZE) (*) (PROGN (*) (I.PUTBASE (I.VAG2 23 STK) 1 SIZE) (I.PUTBASE (I.VAG2 23 STK) 0 
40960))))
)

(ADDTOVAR LOCKEDFNS \RESETSTACK0 \MAKEFRAME \SETUPSTACK1 \MAKEFREEBLOCK \FAULTHANDLER \KEYHANDLER 
\DUMMYKEYHANDLER \DOTELERAID \DUMMYTELERAID \DOHARDRETURN \DOGC \CAUSEINTERRUPT \INTERRUPTFRAME 
\CODEFORTFRAME \DOSTACKOVERFLOW \UNLOCKPAGES \DOMISCAPPLY)

(ADDTOVAR LOCKEDVARS \InterfacePage \DEFSPACE \STACKSPACE \KBDSTACKBASE \MISCSTACKBASE)
(DEFINEQ

(I.INITGC
(LAMBDA NIL (*) (I.CREATEPAGES (I.VAG2 59 0) (LRSH (IPLUS 32768 255) 8) T T) (I.CREATEPAGES (I.VAG2 59
 32768) 1 T T) (I.CREATEPAGES (I.VAG2 59 33024) 1 T) (I.CREATEPAGES (I.VAG2 60 0) 1 NIL T) (
I.CREATEPAGES (I.ADDBASE (I.VAG2 60 0) 256) (SUB1 (LRSH (IPLUS 65528 255) 8)) T) (I.PUTBASE (I.VAG2 60
 0) 0 0) (I.PUTBASE (I.VAG2 60 0) 1 2)))
)
(DEFINEQ

(I.NTYPX
(LAMBDA (X) (*) (*) (LOGAND (I.GETBASE (I.VAG2 22 32768) (LRSH (IPLUS (LLSH (I.HILOC X) 8) (LRSH (
I.LOLOC X) 8)) 1)) 255)))

(I.\ALLOCMDSPAGE
(LAMBDA (TYP) (*) (DECLARE (GLOBALVARS \INTERRUPTSTATE \PENDINGINTERRUPT)) (PROG ((VP I.NxtMDSPage) 
VPTR) (COND ((ILEQ VP 3583) (SETQ I.NxtMDSPage (IPLUS VP 2))) (T (SETQ I.LASTARRAYPAGE (SUB1 (SETQ VP 
(SUB1 I.LASTARRAYPAGE)))) (NILL))) (*) (I.\MAKEMDSENTRY VP (COND ((NILL) (LOGOR TYP 32768)) ((EQ TYP 
10) (LOGOR 10 16384)) (T TYP))) (*) (MKI.NEWPAGE (I.ADDBASE (MKI.NEWPAGE (SETQ VPTR ((LAMBDA ($$1) (
I.VAG2 (LRSH (SETQ $$1 VP) 8) (LLSH (LOGAND $$1 255) 8))) NIL))) 256)) (RETURN VPTR))))

(I.\MAKEMDSENTRY
(LAMBDA (VP V) (*) (I.PUTBASE (I.VAG2 22 32768) (LRSH VP 1) V)))

(I.\GCTYPE
(LAMBDA (TYPENUM DTD) (*) (COND ((OR (EQ 1 0) (NEQ TYPENUM 5)) (*) (I.PUTBASEPTR DTD 2 (I.\INITMDSPAGE
 (I.\ALLOCMDSPAGE TYPENUM) (I.GETBASE DTD 1) (I.GETBASEPTR DTD 2)))))))

(I.\INITMDSPAGE
(LAMBDA (BASE SIZE PREV) (*) (*) (PROG ((DISP 0)) (while (ILEQ (IPLUS DISP SIZE) 512) do (I.PUTBASEPTR
 BASE 0 PREV) (SETQ PREV BASE) (SETQ BASE (I.ADDBASE BASE SIZE)) (SETQ DISP (IPLUS DISP SIZE))) (
RETURN PREV))))

(I.ASSIGNDATATYPE
(LAMBDA (NAME DESCRIPTORS SIZE SPECS PTRFIELDS GVNAME) (*) (PROG ((I.NTYPX (I.\TYPENUMBERFROMNAME NAME
)) DTD) (COND (I.NTYPX (*) (SETQ DTD (I.ADDBASE (I.VAG2 22 43008) (LLSH I.NTYPX 4))) (COND ((OR (EQUAL
 DESCRIPTORS (I.GETBASEPTR DTD 4)) (EQ CROSSCOMPILING T) (AND CROSSCOMPILING (NEQ (QUOTE Y) (ASKUSER 
ASSIGNDATATYPE.ASKUSERWAIT (QUOTE N) (LIST "OK TO REDECLARE DATATYPE " NAME))))) (*) (RETURN I.NTYPX))
) (COND ((IGREATERP I.NTYPX I.MaxSysTypeNum) (PROGN (I.PUTBASE DTD 0 (I.ATOMNUMBER (QUOTE **DEALLOC**)
)) (I.PUTBASEPTR DTD 4 NIL) (I.PUTBASEPTR DTD 6 NIL))) ((AND (EQ SIZE (I.GETBASE DTD 1)) (EQUAL 
PTRFIELDS (I.GETBASEPTR DTD 8))) (RETURN I.NTYPX)) (T (*) (ERROR "ILLEGAL DATA TYPE" NAME))))) (COND (
(EQ I.MaxTypeNumber 255) (LISPERROR "DATA TYPES FULL" NAME))) (PROGN (SETQ I.NTYPX (SETQ 
I.MaxTypeNumber (IPLUS I.MaxTypeNumber 1))) (SETQ DTD (I.ADDBASE (I.VAG2 22 43008) (LLSH I.NTYPX 4))) 
(COND ((IGREATERP (IPLUS (LOGAND (I.LOLOC DTD) 255) 16) (CONSTANT (SUB1 256))) (*) (MKI.NEWPAGE (
I.ADDBASE DTD 16) T))) (I.PUTBASE DTD 0 (I.ATOMNUMBER NAME)) (COND ((NEQ SIZE 0) (I.PUTBASE DTD 1 SIZE
) (I.PUTBASEPTR DTD 4 (I.\COPY DESCRIPTORS)) (I.PUTBASEPTR DTD 6 (I.\COPY SPECS)) (I.PUTBASEPTR DTD 8 
PTRFIELDS) (I.\GCTYPE I.NTYPX DTD)))) (RETURN I.NTYPX))))

(I.\TYPENUMBERFROMNAME
(LAMBDA (TYPE) (*) (AND TYPE (NEQ TYPE (QUOTE **DEALLOC**)) (for I from 1 to I.MaxTypeNumber do (COND 
((EQ (I.ATOMNUMBER TYPE) (I.GETBASE (I.ADDBASE (I.VAG2 22 43008) (LLSH I 4)) 0)) (RETURN I)))))))

(I.\CREATECELL
(LAMBDA (TYP) (*) (PROG (NEWCELL (DTD (I.ADDBASE (I.VAG2 22 43008) (LLSH TYP 4)))) (PROGN (SETQ 
NEWCELL (OR (I.GETBASEPTR DTD 2) (I.\GCTYPE TYP DTD))) (COND ((AND (NEQ 1 0) (EQ TYP 5)) (HELP 
"CREATECELL \LISTP")) (T (*))) (PROG NIL (*) (I.PUTBASEPTR DTD 2 (OR (I.GETBASEPTR NEWCELL 0) (PROGN (
I.PUTBASEPTR DTD 2 NIL) (RETURN (I.\GCTYPE TYP DTD)))))) (*) (PROG ((PTR NEWCELL)) (FRPTQ (LRSH (
I.GETBASE DTD 1) 1) (I.PUTBASEPTR PTR 0 NIL) (SETQ PTR (I.ADDBASE PTR 2)))) (*) (PROGN NEWCELL)) (
RETURN NEWCELL))))

(I.\NEW2PAGE
(LAMBDA (BASE) (*) (MKI.NEWPAGE (I.ADDBASE (MKI.NEWPAGE BASE) 256))))
)
(DEFINEQ

(I.CREATEMDSTYPETABLE
(LAMBDA NIL (*) (*) (I.CREATEPAGES (I.VAG2 22 32768) 32 NIL T) (PROG (VP) (*) (SETQ VP 0) (FRPTQ (LLSH
 32 8) (I.PUTBASE (I.VAG2 22 32768) VP 32768) (SETQ VP (IPLUS VP 1))) (*) (for SEGMENT in (LIST 14 15)
 do (for PAGE from 0 to (SUB1 256) by 2 do (I.\MAKEMDSENTRY (LOGOR PAGE (LLSH SEGMENT 8)) (LOGOR 32768
 1)))) (SETQ VP (IPLUS (LLSH (I.HILOC (I.VAG2 32 0)) 8) (LRSH (I.LOLOC (I.VAG2 32 0)) 8))) (while (
ILEQ VP 15103) do (I.\MAKEMDSENTRY VP 0) (SETQ VP (IPLUS VP 2))))))

(I.INITDATATYPES
(LAMBDA NIL (*) (*) (I.CREATEPAGES (I.VAG2 22 40960) 8 NIL T) (*) (SETQ I.MaxTypeNumber 0) (
I.CREATEPAGES (I.VAG2 22 43008) 1 NIL T) (for D in DTDECLS bind DTD as old I.MaxTypeNumber from 1 do (
COND ((AND (CAR D) (CADR D)) (I.PUTBASE (SETQ DTD (I.ADDBASE (I.VAG2 22 43008) (LLSH I.MaxTypeNumber 4
))) 1 (CADR D)) (I.\GCTYPE I.MaxTypeNumber DTD)))) (COND ((NEQ 1 0) (SETQ I.LISTPDTD (I.ADDBASE (
I.VAG2 22 43008) (LLSH 5 4))))) NIL))

(I.INITDATATYPENAMES
(LAMBDA NIL (*) (*) (SETQ I.MaxSysTypeNum (SETQ I.MaxTypeNumber 0)) (*) (for D in DTDECLS do (*) (
I.ASSIGNDATATYPE (CAR D) NIL (OR (CADR D) 0) NIL (I.\COPY (CDDR D)))) (SETQ I.MaxSysTypeNum 
I.MaxTypeNumber)))
)

(RPAQQ DTDECLS ((SMALLP) (FIXP 2) (FLOATP 2) (LITATOM) (LISTP 4 0 2) (ARRAYP 4 0) (STRINGP 4 0) (
STACKP 2) (NIL 4 0) (VMEMPAGEP 256)))
(DEFINEQ

(I.FSETVAL
(LAMBDA (ATM VAL) (*) (*) ((LAMBDA ($$1) (I.PUTBASEPTR (I.ADDBASE (I.ADDBASE (I.VAG2 18 0) (PROGN $$1)
) $$1) 0 VAL)) (I.ATOMNUMBER ATM))))

(I.SETPROPLIST
(LAMBDA (ATM LST) (*) ((LAMBDA ($$1) (I.PUTBASEPTR (I.ADDBASE (I.ADDBASE (I.VAG2 19 0) (I.ATOMNUMBER (
PROGN $$1))) (I.ATOMNUMBER $$1)) 0 LST)) (\DTEST ATM (QUOTE LITATOM)))))

(I.PUTDEFN
(LAMBDA (FN CA SIZE) (*) (PROG ((DCELL (I.ADDBASE (I.ADDBASE (I.VAG2 17 0) (I.ATOMNUMBER FN)) (
I.ATOMNUMBER FN))) (BLOCKINFO (PROGN (*) (I.FILECODEBLOCK (LRSH (IPLUS SIZE 3) 2) (IPLUS (LOGOR (LLSH 
(\BYTELT CA 12) 8) (\BYTELT CA (ADD1 12))) (PROGN 8))))) (BASE (I.FILEARRAYBASE))) (I.PUTBASEPTR DCELL
 0 BASE) (LOGAND (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS
 0) 53247) (LLSH (LOGAND (LOGAND (LRSH (\BYTELT CA 8) 4) 3) 3) 12)))) DCELL) 12) 3) (NEQ (LOGAND (LRSH
 ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 49151) (LLSH (
LOGAND (COND ((ZEROP (LOGOR (LLSH (\BYTELT CA 12) 8) (\BYTELT CA (ADD1 12)))) 1) (T 0)) 1) 14)))) 
DCELL) 14) 1) 0) (NEQ (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE 
$$PUTBITS 0) 32767) (LLSH (COND (T 1) (T 0)) 15)))) DCELL) 15) 0) (NEQ (LOGAND (LRSH ((LAMBDA (
$$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 63487) (LLSH (LOGAND (COND (
NIL 1) (T 0)) 1) 11)))) DCELL) 11) 1) 0) (COND ((FMEMB FN LOCKEDFNS) (I.\LOCKCELL DCELL 1) (
I.\LOCKCELL BASE (LRSH (IPLUS (IPLUS (LOGAND (I.LOLOC BASE) 255) (LRSH (IPLUS SIZE 1) 1)) 255) 8)))) (
COND ((EQ FN (FUNCTION \RESETSTACK)) (SETQ RESETPTR (I.FILEARRAYBASE)) (SETQ RESETPC (LOGOR (LLSH (
\BYTELT CA 6) 8) (\BYTELT CA (ADD1 6)))))) (AOUT CA 0 SIZE OUTX (QUOTE CODE)) (BOUTZEROS (IDIFFERENCE 
(SUB1 4) (IMOD (SUB1 SIZE) 4))) (I.FILEBLOCKTRAILER BLOCKINFO))))
)
(DEFINEQ

(I.\MKATOM
(LAMBDA (BASE OFFST LEN) (*) (PROG ((L 1) (H 0) H1 P Q C) (COND ((ZEROP LEN) (GO LP))) (SETQ C (
I.\GETBASEBYTE BASE OFFST)) (PROGN (COND ((AND (IGREATERP 2 LEN) I.OneCharAtomBase) (RETURN (COND ((
IGREATERP C 57) (I.ADDBASE I.OneCharAtomBase (IDIFFERENCE C 10))) ((IGREATERP C 47) (IDIFFERENCE C 48)
) (T (I.ADDBASE I.OneCharAtomBase C)))))) (COND ((AND (ILEQ C (CONSTANT (CHCON1 "9"))) (SETQ P (NILL 
BASE OFFST LEN))) (*) (RETURN P)))) (*) (SETQ H C) HASH (COND ((NEQ L LEN) (SETQ H (LOGAND (IPLUS (
IPLUS (LOGAND (SETQ H1 (IPLUS H (LLSH (LOGAND H 4095) 2))) 32767) (LLSH (LOGAND H1 127) 8)) (
I.\GETBASEBYTE BASE (IPLUS OFFST L))) 32767)) (SETQ L (ADD1 L)) (GO HASH))) (*) LP (COND ((NEQ (SETQ P
 (I.GETBASE (I.VAG2 20 0) H)) 0) (COND ((AND (EQ ((LAMBDA ($$1) (LRSH (I.GETBASE (I.GETBASEPTR (
I.ADDBASE (I.ADDBASE (I.VAG2 16 0) (I.ATOMNUMBER (PROGN $$1))) (I.ATOMNUMBER $$1)) 0) 0) 8)) (SETQ Q (
I.ADDBASE (I.VAG2 0 0) (SUB1 P)))) LEN) ((LAMBDA (BASE1 BN1 BASE2 BN2 LEN) (PROG NIL LP (COND ((ZEROP 
LEN) (RETURN T)) ((NEQ (I.\GETBASEBYTE BASE1 BN1) (I.\GETBASEBYTE BASE2 BN2)) (RETURN)) (T (SETQ BN1 (
IPLUS BN1 1)) (SETQ BN2 (IPLUS BN2 1)) (SETQ LEN (IPLUS LEN -1)) (GO LP))))) (I.GETBASEPTR (I.ADDBASE 
(I.ADDBASE (I.VAG2 16 0) (I.ATOMNUMBER Q)) (I.ATOMNUMBER Q)) 0) 1 BASE OFFST LEN)) (RETURN Q)) (T (
SETQ H (LOGAND (IPLUS H 19) 32767)) (GO LP))))) (*) (RETURN (I.NewAtom BASE OFFST LEN H)))))

(I.NewAtom
(LAMBDA (BASE BN LEN H) (*) (PROG (ATM PB CPP PNP) (RETURN (PROGN (SETQ ATM I.AtomFrLst) (SETQ PB 
I.NxtPnByte) (COND ((NOT (ZEROP (LOGAND PB 1))) (COND ((ZEROP (SETQ PB (LOGAND (ADD1 PB) (SUB1 512))))
 (I.\GCPNAMES)) (T (SETQ I.NxtPnByte PB))))) (SETQ CPP I.CurPnPage) (*) (COND ((ILESSP (IDIFFERENCE 
512 PB) (ADD1 LEN)) (I.\GCPNAMES))) (COND ((EVENP ATM (TIMES 2 256)) (*) (PROG ((PN (LRSH ATM 8))) (
COND ((IGEQ PN (IDIFFERENCE 127 1)) (*) (COND ((EQ ATM (IDIFFERENCE 32767 1)) (HELP 
"No more atoms left")) ((EQ 1 (IMOD ATM (TIMES 2 256))) (COND ((NOT \STORAGEFULL) (SETQ \STORAGEFULL T
) (NEQ (LOGAND (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0
) 65023) (LLSH (LOGAND (COND (T 1) (T 0)) 1) 9)))) \INTERRUPTSTATE) 9) 1) 0) (SETQ \PENDINGINTERRUPT T
))))))) (I.\MAKEMDSENTRY PN (LOGOR 32768 4)) (*) (I.\INITATOMPAGE PN) (*)))) (I.PUTBASEPTR (I.ADDBASE 
(I.ADDBASE (I.VAG2 16 0) ATM) ATM) 0 (SETQ PNP (I.VAG2 (IPLUS 24 (LRSH CPP 8)) (IPLUS (LLSH (LOGAND 
CPP 255) 8) (LRSH PB 1))))) (*) (I.\MOVEBYTES BASE BN PNP 1 LEN) (I.\PUTBASEBYTE PNP 0 LEN) (SETQ 
I.AtomFrLst (I.PUTBASE (I.VAG2 20 0) H (ADD1 ATM))) (COND ((ZEROP (SETQ I.NxtPnByte (LOGAND (IPLUS PB 
(LOGAND (IPLUS LEN 2) 65534)) (SUB1 512)))) (I.\GCPNAMES))) (I.ADDBASE (I.VAG2 0 0) ATM))))))

(I.\INITATOMPAGE
(LAMBDA (PN) (*) (PROG ((OFFSET (LLSH PN 9)) J DEFBASE VALBASE) (*) (*) (I.\NEW4PAGE (I.ADDBASE (
I.VAG2 16 0) OFFSET)) (I.\NEW4PAGE (SETQ DEFBASE (I.ADDBASE (I.VAG2 17 0) OFFSET))) (I.\NEW4PAGE (
I.ADDBASE (I.VAG2 19 0) OFFSET)) (I.\NEW4PAGE (SETQ VALBASE (I.ADDBASE (I.VAG2 18 0) OFFSET))) (for I 
from 0 to (SUB1 (ITIMES 256 4)) by 2 do (I.PUTBASEPTR VALBASE I (I.\COPY (QUOTE NOBIND)))))))

(I.\GCPNAMES
(LAMBDA NIL (*) (PROG ((VP (ADD1 I.CurPnPage))) (COND ((IGREATERP VP 2047) (HELP 
"Out of atom p-name space"))) (MKI.NEWPAGE (I.VAG2 (IPLUS 24 (LRSH VP 8)) (LLSH (LOGAND VP 255) 8))) (
SETQ I.NxtPnByte 0) (SETQ I.CurPnPage VP))))

(I.\MOVEBYTES
(LAMBDA (SBASE SBYTE DBASE DBYTE NBYTES) (*) (*) (COND ((IGREATERP NBYTES 0) (PROG ((SB (I.ADDBASE 
SBASE (LRSH SBYTE 1))) (DB (I.ADDBASE DBASE (LRSH DBYTE 1))) SBN DBN NWORDS) (COND ((EQ (SETQ SBN (
IMOD SBYTE 2)) (SETQ DBN (IMOD DBYTE 2))) (*) (COND ((EQ SBN 1) (I.\PUTBASEBYTE DB 1 (I.\GETBASEBYTE 
SB 1)) (SETQ DB (I.ADDBASE DB 1)) (SETQ SB (I.ADDBASE SB 1)) (SETQ NBYTES (IPLUS NBYTES -1)))) (\BLT 
DB SB (SETQ NWORDS (LRSH NBYTES 1))) (COND ((EQ (IMOD NBYTES 2) 1) (I.\PUTBASEBYTE (I.ADDBASE DB 
NWORDS) 0 (I.\GETBASEBYTE (I.ADDBASE SB NWORDS) 0))))) (T (FRPTQ NBYTES (I.\PUTBASEBYTE DB (PROG1 DBN 
(SETQ DBN (IPLUS DBN 1))) (I.\GETBASEBYTE SB (PROG1 SBN (SETQ SBN (IPLUS SBN 1)))))))))))))
)
(DEFINEQ

(I.COPYATOM
(LAMBDA (X) (*) (*) (PROG ((N (NCHARS X)) (BASE (I.GETBASEPTR I.SCRATCHSTRING 0)) (OFFST (I.GETBASE 
I.SCRATCHSTRING 3))) (for I from 1 to N do (I.\PUTBASEBYTE BASE (IPLUS OFFST I -1) (NTHCHARCODE X I)))
 (RETURN (I.ATOMNUMBER (I.\MKATOM BASE OFFST N))))))

(I.INITATOMS
(LAMBDA NIL (*) (*) (*) (PROG (BASE OFFST) (I.CREATEPAGES (I.VAG2 24 0) 1) (I.CREATEPAGES (I.VAG2 20 0
) 128) (SETQ I.SCRATCHSTRING (I.ALLOCSTRING 255)) (SETQ BASE (I.GETBASEPTR I.SCRATCHSTRING 0)) (SETQ 
OFFST (I.GETBASE I.SCRATCHSTRING 3)) (I.COPYATOM NIL) (I.COPYATOM (QUOTE NOBIND)) (for C from 0 to 255
 when (OR (ILESSP C 48) (IGEQ C 58)) do (I.\PUTBASEBYTE BASE OFFST C) (I.\MKATOM BASE OFFST 1)) (SETQ 
I.OneCharAtomBase (I.ADDBASE (I.VAG2 0 0) 2)) (I.COPYATOM (FUNCTION \EVALFORM)) (*) (I.COPYATOM (
FUNCTION \GC.HANDLEOVERFLOW)) (*) (I.COPYATOM (FUNCTION \DTESTFAIL)) (*) (I.COPYATOM (FUNCTION 
\OVERFLOWMAKENUMBER)) (*) (I.COPYATOM (FUNCTION \MAKENUMBER)) (*) (I.COPYATOM (FUNCTION \SETGLOBAL.UFN
)) (*) (I.COPYATOM (FUNCTION \SETFVAR.UFN)) (*) (I.COPYATOM (FUNCTION \GCMAPTABLE)) (*) (I.COPYATOM (
FUNCTION \INTERPRETER)) (*) (OR (EQ (I.ATOMNUMBER (FUNCTION \INTERPRETER)) 256) (HELP (FUNCTION 
\INTERPRETER) " not atom 400Q")) (I.COPYATOM (FUNCTION MAKEFLOATNUMBER)) (*))))
)
[DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY
(BLOCK: I.\MKATOM I.\MKATOM I.NewAtom I.\MOVEBYTES (NOLINKFNS . T))
]
(DEFINEQ

(I.INITUFNTABLE
(LAMBDA NIL (*) (for I from 0 to 255 do (I.\SETUFNENTRY I (QUOTE \UNKNOWN.UFN) 0 0)) (for X in 
\OPCODES when (CADDDR (CDDDR X)) do (I.\SETUFNENTRY (CAR X) (CADDDR (CDDDR X)) (IDIFFERENCE (IPLUS 1 (
COND ((ZEROP (CADDR X)) 0) (T 1))) (CADDDR (CDR X))) (CADDR X)))))

(I.\SETUFNENTRY
(LAMBDA (INDEX FN NARGS NEXTRA) (*) (SETQ INDEX (I.ADDBASE (I.ADDBASE (I.VAG2 22 42496) INDEX) INDEX))
 (I.PUTBASE INDEX 0 (I.ATOMNUMBER FN)) (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 1 (LOGOR (
LOGAND (I.GETBASE $$PUTBITS 1) 255) (LLSH NEXTRA 8)))) INDEX) 8) (LOGAND ((LAMBDA ($$PUTBITS) (
I.PUTBASE $$PUTBITS 1 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 1) 65280) (LOGAND NARGS 255)))) INDEX) 255))
)
)
(DEFINEQ

(I.MAKEINITFIRST
(LAMBDA NIL (*) (I.CREATEMDSTYPETABLE) (I.INITDATATYPES) (I.PREINITARRAYS) (I.INITATOMS) (
I.INITDATATYPENAMES) (I.INITUFNTABLE) (I.INITGC) (MKI.NEWPAGE (I.VAG2 22 4096) NIL T)))

(I.\COPY
(LAMBDA (X) (*) (*) (SELECTQ (TYPENAME X) (LITATOM (MKI.ATOM X)) (LISTP (PROG ((R (REVERSE X)) (V (
I.\COPY (CDR (LAST X))))) LP (COND ((LISTP R) (SETQ V (I.\CONS.UFN (I.\COPY (CAR R)) V)) (SETQ R (CDR 
R)) (GO LP))) (RETURN V))) ((FIXP SMALLP) (PROG (V) (COND ((IGREATERP 0 X) (*) (COND ((IGREATERP X 
-65537) (*) (RETURN (I.ADDBASE (I.VAG2 15 0) (LOGAND X 65535)))))) ((ILESSP X 65536) (*) (RETURN (
I.ADDBASE (I.VAG2 14 0) X)))) (*) (SETQ V (I.\CREATECELL 2)) (I.PUTBASE V 0 (LOGOR (COND ((IGREATERP 0
 X) 32768) (T 0)) (LOGAND (LRSH X 16) 32767))) (I.PUTBASE V 1 (LOGAND X 65535)) (RETURN V))) (STRINGP 
(I.COPYSTRING X)) (FLOATP (PROG ((VAL (I.\CREATECELL 3))) (SELECTQ (SYSTEMTYPE) ((ALTO D) (I.PUTBASE 
VAL 0 (\GETBASE X 0)) (I.PUTBASE VAL 1 (\GETBASE X 1))) (MKI.IEEE X VAL)) (RETURN VAL))) (ERROR X (
QUOTE (can't be copied to remote file))))))

(I.MAKEINITLAST
(LAMBDA NIL (*) (I.SETUPSTACK T) (I.MAKEINITBFS) (I.\MAKEMDSENTRY (IPLUS (LLSH (I.HILOC (I.VAG2 22 
41984)) 8) (LRSH (I.LOLOC (I.VAG2 22 41984)) 8)) 2) (*) (PROGN (*) (SELECTQ (SYSTEMTYPE) ((D ALTO) (
MAPHASH MKI.PLHA (FUNCTION (LAMBDA (P A) (I.SETPROPLIST A (I.\COPY P))))) (MAPHASH MKI.TVHA (FUNCTION 
(LAMBDA (V A) (I.FSETVAL A (I.\COPY (CDR V))))))) (PROG (AL GAG) (*) (PROGN (MINFS (IMAX (MINFS) (
ITIMES 2 (ARRAYSIZE (CAR MKI.PLHA))) (ARRAYSIZE (CAR MKI.TVHA)))) (RECLAIM) (SETQ GAG (GCGAG 
"[***** GARBAGE COLLECTION - ERROR ******]")) (MAPHASH MKI.PLHA (FUNCTION (LAMBDA (P A) (push AL (CONS
 A P))))) (SETQ GAG (GCGAG GAG))) (MAPC AL (FUNCTION (LAMBDA (X) (I.SETPROPLIST (CAR X) (I.\COPY (CDR 
X)))))) (PROGN (SETQ AL) (RECLAIM) (SETQ GAG (GCGAG GAG)) (MAPHASH MKI.TVHA (FUNCTION (LAMBDA (V A) (
push AL (RPLACA V A))))) (GCGAG GAG)) (MAPC AL (FUNCTION (LAMBDA (X) (I.FSETVAL (CAR X) (I.\COPY (CDR 
X)))))))) (*)) (PROG ((AFL (I.FILEARRAYBASE))) (*) (BOUTZEROS (LLSH (IDIFFERENCE (LOGAND (IPLUS (
I.LOLOC AFL) (CONSTANT (SUB1 (TIMES 2 256)))) (CONSTANT (LOGXOR (SUB1 (TIMES 2 256)) -1))) (I.LOLOC 
AFL)) 1)) (SETQ MKI.CODELASTPAGE ((LAMBDA (PTR) (DECLARE (LOCALVARS PTR)) (IPLUS (LLSH (I.HILOC PTR) 8
) (LRSH (I.LOLOC PTR) 8))) (I.FILEARRAYBASE))) (*) (I.POSTINITARRAYS AFL (IPLUS (LLSH 32 8) 
MKI.CODESTARTOFFSET) MKI.CODELASTPAGE)) (MAPC (APPEND INITVALUES INITPTRS) (FUNCTION (LAMBDA (X) (*) (
I.ATOMNUMBER (CAR X))))) (for X in INITVALUES as A in MKI.VALUES do (SETQ A (EVALV A)) (I.FSETVAL (CAR
 X) (COND ((OR (EQ A T) (EQ A NIL) (AND (FIXP A) (IGEQ A -65536) (ILEQ A 65535))) (I.\COPY A)) (T (
SHOULDNT))))) (for X in INITPTRS as A in MKI.PTRS do (I.FSETVAL (CAR X) (EVALV A))) (for X in 
LOCKEDVARS do (OR (GETHASH X MKI.ATOMARRAY) (printout T "***Note: Locked var " X " does not exist" T))
 (I.\LOCKVAR X)) (I.SETUPPAGEMAP) (I.DUMPINITPAGES MKI.CODESTARTOFFSET MKI.CODELASTPAGE)))
)
(DEFINEQ

(I.\CONS.UFN
(LAMBDA (X Y) (*) (COND ((ZEROP 1) (HELP) (PROG ((CELL (I.\CREATECELL 5))) (I.PUTBASEPTR CELL 0 X) (
I.PUTBASEPTR CELL 2 Y) (RETURN CELL)))) (PROGN (PROGN X) (PROGN Y) (*) (PROGN 1) (PROG (CNS.PAGE) (
SETQ CNS.PAGE (COND ((NULL Y) ((LAMBDA (PAGEA0002) (DECLARE (LOCALVARS PAGEA0002)) (PROG ((.MK.NEWCELL
 (I.ADDBASE PAGEA0002 (LOGAND (I.GETBASE PAGEA0002 0) 255)))) (*) (LOGAND ((LAMBDA ($$PUTBITS) (
I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 65280) (LOGAND (LRSH (I.GETBASE 
.MK.NEWCELL 0) 8) 255)))) PAGEA0002) 255) (*) (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR
 (LOGAND (I.GETBASE $$PUTBITS 0) 255) (LLSH (IPLUS (PROGN (LRSH (I.GETBASE PAGEA0002 0) 8)) -1) 8)))) 
PAGEA0002) 8) (I.PUTBASEPTR .MK.NEWCELL 0 X) (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR 
(LOGAND (I.GETBASE $$PUTBITS 0) 255) (LLSH 128 8)))) .MK.NEWCELL) 8) (RETURN .MK.NEWCELL))) (
I.\NEXTCONSPAGE))) ((AND (EQ (I.NTYPX Y) 5) (IGREATERP (LRSH (I.GETBASE (SETQ CNS.PAGE (I.VAG2 (
I.HILOC Y) (LOGAND (I.LOLOC Y) 65280))) 0) 8) 0)) (*) ((LAMBDA (PAGE A D) (DECLARE (LOCALVARS PAGE A D
)) (PROG ((.MK.NEWCELL (I.ADDBASE PAGE (LOGAND (I.GETBASE PAGE 0) 255)))) (*) (LOGAND ((LAMBDA (
$$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 65280) (LOGAND (LRSH (
I.GETBASE .MK.NEWCELL 0) 8) 255)))) PAGE) 255) (*) (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (
LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 255) (LLSH (IPLUS (PROGN (LRSH (I.GETBASE PAGE 0) 8)) -1) 8)))) 
PAGE) 8) (I.PUTBASEPTR .MK.NEWCELL 0 A) (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (
LOGAND (I.GETBASE $$PUTBITS 0) 255) (LLSH D 8)))) .MK.NEWCELL) 8) (RETURN .MK.NEWCELL))) CNS.PAGE X (
IPLUS 128 (LRSH (LOGAND (I.LOLOC Y) 255) 1)))) (T ((LAMBDA (PAGE A D) (DECLARE (LOCALVARS PAGE A D)) (
PROG ((.MK.NEWCELL (I.ADDBASE PAGE (LOGAND (I.GETBASE PAGE 0) 255)))) (*) (LOGAND ((LAMBDA ($$PUTBITS)
 (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 65280) (LOGAND (LRSH (I.GETBASE 
.MK.NEWCELL 0) 8) 255)))) PAGE) 255) (*) (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (
LOGAND (I.GETBASE $$PUTBITS 0) 255) (LLSH (IPLUS (PROGN (LRSH (I.GETBASE PAGE 0) 8)) -1) 8)))) PAGE) 8
) (I.PUTBASEPTR .MK.NEWCELL 0 A) (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (
I.GETBASE $$PUTBITS 0) 255) (LLSH D 8)))) .MK.NEWCELL) 8) (RETURN .MK.NEWCELL))) (SETQ CNS.PAGE (
I.\NEXTCONSPAGE)) X (IPLUS 0 (LRSH (LOGAND (I.LOLOC (PROGN (PROGN (PROGN (PROG ((.MK.NEWCELL (
I.ADDBASE CNS.PAGE (LOGAND (I.GETBASE CNS.PAGE 0) 255)))) (*) (LOGAND ((LAMBDA ($$PUTBITS) (I.PUTBASE 
$$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 65280) (LOGAND (LRSH (I.GETBASE .MK.NEWCELL 0) 8) 
255)))) CNS.PAGE) 255) (*) (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE
 $$PUTBITS 0) 255) (LLSH (IPLUS (PROGN (LRSH (I.GETBASE CNS.PAGE 0) 8)) -1) 8)))) CNS.PAGE) 8) (
I.PUTBASEPTR .MK.NEWCELL 0 Y) (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (
I.GETBASE $$PUTBITS 0) 255) (LLSH 0 8)))) .MK.NEWCELL) 8) (RETURN .MK.NEWCELL)))))) 255) 1)))))) (
PROGN CNS.PAGE) (RETURN CNS.PAGE)))))

(I.\INITCONSPAGE
(LAMBDA (BASE LINK) (*) (COND ((ZEROP 1) (HELP)) (T (PROG ((J (LOGAND ((LAMBDA ($$PUTBITS) (I.PUTBASE 
$$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 65280) (LOGAND 254 255)))) BASE) 255)) CELL) LP (
COND ((NEQ J 0) (SETQ CELL (I.ADDBASE BASE J)) (I.PUTBASEPTR CELL 0 NIL) (LRSH ((LAMBDA ($$PUTBITS) (
I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 255) (LLSH (SETQ J (IDIFFERENCE J 2)) 8))
)) CELL) 8) (GO LP))) (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE 
$$PUTBITS 0) 255) (LLSH 127 8)))) BASE) 8) (*) (I.PUTBASE BASE 1 (IPLUS (LLSH (I.HILOC LINK) 8) (LRSH 
(I.LOLOC LINK) 8))) (RETURN BASE))))))

(I.\NEXTCONSPAGE
(LAMBDA NIL (*) (PROG (PG N) LP (COND ((ZEROP (SETQ N (I.GETBASE I.LISTPDTD 13))) (SETQ PG (
I.\ALLOCMDSPAGE 5)) (I.\INITCONSPAGE PG (I.\INITCONSPAGE (I.ADDBASE PG 256) NIL)) (I.PUTBASE 
I.LISTPDTD 13 (SETQ N (IPLUS (LLSH (I.HILOC PG) 8) (LRSH (I.LOLOC PG) 8)))))) (COND ((IGREATERP (SETQ 
N (LRSH (I.GETBASE (SETQ PG ((LAMBDA ($$1) (I.VAG2 (LRSH (SETQ $$1 N) 8) (LLSH (LOGAND $$1 255) 8))) 
NIL)) 0) 8)) 1) (RETURN PG))) (SETQ N (I.GETBASE PG 1)) (I.PUTBASE PG 1 65535) (*) (I.PUTBASE 
I.LISTPDTD 13 N) (GO LP))))
)
(DEFINEQ

(I.\GETBASEBYTE
(LAMBDA (PTR N) (*) (*) (COND ((ZEROP (LOGAND N 1)) (LRSH (PROGN (I.GETBASE PTR (LRSH N 1))) 8)) (T (
LOGAND (PROGN (I.GETBASE PTR (LRSH N 1))) 255)))))

(I.\PUTBASEBYTE
(LAMBDA (PTR DISP BYTE) (*) (*) (SETQ BYTE (PROG1 BYTE)) (I.PUTBASE PTR (LRSH (SETQ DISP (\DTEST DISP 
(QUOTE SMALLP))) 1) (COND ((EVENP DISP 2) ((LAMBDA ($$1) (IPLUS (LLSH BYTE 8) (LOGAND $$1 255))) (
I.GETBASE PTR (LRSH DISP 1)))) (T ((LAMBDA ($$1) (IPLUS (LLSH (LRSH $$1 8) 8) BYTE)) (I.GETBASE PTR (
LRSH DISP 1)))))) BYTE))

(I.CREATEPAGES
(LAMBDA (VA N BLANKFLG LOCKFLG) (*) (*) (for I from 0 to (SUB1 N) do (MKI.NEWPAGE (I.ADDBASE VA (LLSH 
I 8)) NIL LOCKFLG BLANKFLG)) VA))

(I.\NEW4PAGE
(LAMBDA (PTR) (*) (MKI.NEWPAGE (I.ADDBASE (MKI.NEWPAGE (I.ADDBASE (MKI.NEWPAGE (I.ADDBASE (MKI.NEWPAGE
 PTR) 256)) 256)) 256))))
)
(DEFINEQ

(I.ALLOCSTRING
(LAMBDA (N INITCHAR OLD) (*) (SETQ N (FIX N)) (*) (COND ((OR (ILESSP N 0) (IGREATERP N 65535)) (
LISPERROR "ILLEGAL ARG" N))) (PROG ((B (I.\ALLOCBLOCK (LRSH (IPLUS N 3) 2)))) (*) (COND ((STRINGP OLD)
 (PROGN ((LAMBDA (DATUMA0009) (DECLARE (LOCALVARS DATUMA0009)) (PROG1 DATUMA0009 (LRSH ((LAMBDA (
$$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 32767) (LLSH 1 15)))) 
DATUMA0009) 15))) ((LAMBDA (DATUMA0015) (DECLARE (LOCALVARS DATUMA0015)) (PROG1 DATUMA0015 (LOGAND (
LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 49151) (LLSH (
LOGAND 0 1) 14)))) DATUMA0015) 14) 1))) ((LAMBDA (DATUMA0020) (DECLARE (LOCALVARS DATUMA0020)) (PROG1 
DATUMA0020 (NEQ (LOGAND (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE 
$$PUTBITS 0) 57343) (LLSH (LOGAND (COND (NIL 1) (T 0)) 1) 13)))) DATUMA0020) 13) 1) 0))) ((LAMBDA (
DATUMA0024) (DECLARE (LOCALVARS DATUMA0024)) (PROG1 DATUMA0024 (LOGAND (LRSH ((LAMBDA ($$PUTBITS) (
I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 49151) (LLSH (LOGAND 0 1) 14)))) 
DATUMA0024) 14) 1))) ((LAMBDA (DATUMA0027) (DECLARE (LOCALVARS DATUMA0027)) (PROG1 DATUMA0027 (LOGAND 
(LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 61695) (LLSH 
(LOGAND 0 15) 8)))) DATUMA0027) 8) 15))) ((LAMBDA (DATUMA0029) (DECLARE (LOCALVARS DATUMA0029)) (PROG1
 DATUMA0029 (I.PUTBASE DATUMA0029 3 0))) ((LAMBDA (DATUMA0030) (DECLARE (LOCALVARS DATUMA0030)) (PROG1
 DATUMA0030 (I.PUTBASEPTR DATUMA0030 0 B))) (PROG1 OLD (I.PUTBASE (\DTEST OLD (QUOTE STRINGP)) 2 N))))
))))))) (T (SETQ OLD ((LAMBDA (DATUMA0034) (DECLARE (LOCALVARS DATUMA0034)) (PROG1 DATUMA0034 (LRSH ((
LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 32767) (LLSH 1 15))))
 DATUMA0034) 15))) ((LAMBDA (DATUMA0037) (DECLARE (LOCALVARS DATUMA0037)) (PROG1 DATUMA0037 (LOGAND (
LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 61695) (LLSH (
LOGAND 0 15) 8)))) DATUMA0037) 8) 15))) ((LAMBDA (DATUMA0039) (DECLARE (LOCALVARS DATUMA0039)) (PROG1 
DATUMA0039 (I.PUTBASEPTR DATUMA0039 0 B))) ((LAMBDA (DATUMA0040) (DECLARE (LOCALVARS DATUMA0040)) (
PROG1 DATUMA0040 (I.PUTBASE DATUMA0040 2 N))) (I.\CREATECELL 7))))))))) (*) (COND ((AND INITCHAR (NEQ 
0 (SETQ INITCHAR (LOGAND (OR (SMALLP INITCHAR) (CHCON1 INITCHAR)) \CHARMASK)))) (for I (OBASE ← (
I.GETBASEPTR OLD 0)) from 0 to (SUB1 N) do (I.\PUTBASEBYTE OBASE I INITCHAR)))) OLD))

(I.\ALLOCBLOCK
(LAMBDA (NCELLS GCTYPE ALIGN) (*) (*) (DECLARE (GLOBALVARS I.ArrayFrLst)) (COND ((IGREATERP NCELLS 0) 
(COND ((ILESSP NCELLS 2) (SETQ NCELLS 2)) ((IGREATERP NCELLS 65533) (ERROR 
"ARRAY STORAGE BLOCK TOO LARGE" NCELLS))) (*) (PROG (BLOCK (ARLEN (IPLUS NCELLS 2))) (*) RETRY (PROGN 
(SETQ BLOCK (COND ((NILL ARLEN ALIGN)) ((I.\ALLOCNEWBLOCK ARLEN ALIGN)) (T (RECLAIM) (*) (OR (NILL 
ARLEN ALIGN) (GO FULL))))) (*) (NEQ (LOGAND ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND
 (I.GETBASE $$PUTBITS 0) 65534) (LOGAND (COND (T 1) (T 0)) 1)))) BLOCK) 1) 0) (NEQ (LOGAND ((LAMBDA (
$$PUTBITS) (I.PUTBASE $$PUTBITS 0 (LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 65534) (LOGAND (COND (T 1) (T
 0)) 1)))) ((LAMBDA (BASE N) (DECLARE (LOCALVARS BASE N)) (I.ADDBASE (I.ADDBASE BASE N) N)) BLOCK (
IDIFFERENCE (I.GETBASE BLOCK 1) 1))) 1) 0) (LOGAND (LRSH ((LAMBDA ($$PUTBITS) (I.PUTBASE $$PUTBITS 0 (
LOGOR (LOGAND (I.GETBASE $$PUTBITS 0) 65529) (LLSH (LOGAND (SELECTQ GCTYPE (NIL 0) (T (*) 1) GCTYPE) 3
) 1)))) BLOCK) 1) 3) (PROGN NCELLS) (*) (SETQ BLOCK (I.ADDBASE BLOCK 2)) (PROGN BLOCK) (RETURN BLOCK))
 FULL (LISPERROR "ARRAYS FULL" NIL T) (*) (GO RETRY))))))

(I.\ALLOCNEWBLOCK
(LAMBDA (ARLEN ALIGN) (*) (DECLARE (GLOBALVARS I.ArrayFrLst I.NxtArrayPage)) (*) (COND (ALIGN (*) (
PROG (NLEFT (DATAWORD (I.ADDBASE I.ArrayFrLst 2))) (COND ((NEQ 2 (SETQ NLEFT (IDIFFERENCE 2 (IMOD (
LRSH (LOGAND (I.LOLOC DATAWORD) 255) 1) 2)))) (I.\PATCHBLOCK NLEFT) (SETQ DATAWORD (I.ADDBASE 
I.ArrayFrLst 2)))) (COND ((IGREATERP ALIGN (SETQ NLEFT (IDIFFERENCE 128 (LRSH (LOGAND (I.LOLOC 
DATAWORD) 255) 1)))) (*) (I.\PATCHBLOCK NLEFT) (SETQ DATAWORD (I.ADDBASE I.ArrayFrLst 2)))) (*) (COND 
((IGREATERP (IDIFFERENCE ARLEN 2) (SETQ NLEFT (IDIFFERENCE 32768 (LRSH (I.LOLOC DATAWORD) 1)))) (*) (
I.\PATCHBLOCK NLEFT) (SETQ DATAWORD (I.ADDBASE I.ArrayFrLst 2)))) (*)))) (PROG (FINALPAGE FINALWORD 
TRAILER (NEXTFREEBLOCK (I.ADDBASE (I.ADDBASE I.ArrayFrLst ARLEN) ARLEN))) (SETQ FINALWORD (I.ADDBASE 
NEXTFREEBLOCK -1)) (*) (COND ((IGREATERP (SETQ FINALPAGE (IPLUS (LLSH (I.HILOC FINALWORD) 8) (LRSH (
I.LOLOC FINALWORD) 8))) (IDIFFERENCE I.LASTARRAYPAGE 128)) (*) (RETURN NIL))) (SETQ TRAILER (I.ADDBASE
 NEXTFREEBLOCK (IMINUS 2))) LP (COND ((IGREATERP I.NxtArrayPage FINALPAGE) (*) (I.PUTBASE I.ArrayFrLst
 0 43688) (I.PUTBASE I.ArrayFrLst 1 ARLEN) (COND ((IGREATERP ARLEN 1) (*) (I.PUTBASE TRAILER 0 43688) 
(I.PUTBASE TRAILER 1 ARLEN))) (RETURN (PROG1 I.ArrayFrLst (SETQ I.ArrayFrLst NEXTFREEBLOCK))))) (
I.\MAKEMDSENTRY I.NxtArrayPage 0) (I.\NEW2PAGE ((LAMBDA ($$1) (I.VAG2 (LRSH (SETQ $$1 I.NxtArrayPage) 
8) (LLSH (LOGAND $$1 255) 8))) NIL)) (SETQ I.NxtArrayPage (IPLUS I.NxtArrayPage 2)) (GO LP))))

(I.\LINKBLOCK
(LAMBDA (BASE) (*) (*) (DECLARE (GLOBALVARS I.FREEBLOCKLIST)) (COND ((IGEQ (I.GETBASE BASE 1) 4) (COND
 ((NULL I.FREEBLOCKLIST) (I.PUTBASEPTR BASE 2 BASE) (I.PUTBASEPTR BASE 4 BASE)) (T (I.PUTBASEPTR BASE 
2 I.FREEBLOCKLIST) (I.PUTBASEPTR BASE 4 (I.GETBASEPTR I.FREEBLOCKLIST 4)) (I.PUTBASEPTR (I.GETBASEPTR 
I.FREEBLOCKLIST 4) 2 BASE) (I.PUTBASEPTR I.FREEBLOCKLIST 4 BASE))) (SETQ I.FREEBLOCKLIST BASE)))))

(I.\MERGEBACKWARD
(LAMBDA (BASE) (*) (*) (DECLARE (GLOBALVARS MERGEBACKFLAG)) (COND ((AND (NEQ BASE (I.VAG2 32 0)) (NOT 
(NOT (ZEROP (LOGAND (I.GETBASE (I.ADDBASE BASE (IMINUS 2)) 0) 1))))) (PROG (PBASE PL (PTRAIL (
I.ADDBASE BASE (IMINUS 2))) (L (I.GETBASE BASE 1))) (OR (IEQ 5461 (LRSH (I.GETBASE PTRAIL 0) 3)) (HELP
 "Bad array block")) (SETQ PL (I.GETBASE PTRAIL 1)) (COND ((IGREATERP PL (IDIFFERENCE 65535 L)) (*) (
I.\LINKBLOCK BASE) (RETURN BASE))) (SETQ PBASE ((LAMBDA (BASE N) (DECLARE (LOCALVARS BASE N)) (
I.ADDBASE (I.ADDBASE BASE N) N)) BASE (IMINUS PL))) (I.PUTBASE PBASE 1 (SETQ L (IPLUS L PL))) (
I.PUTBASE ((LAMBDA (BASE N) (DECLARE (LOCALVARS BASE N)) (I.ADDBASE (I.ADDBASE BASE N) N)) PBASE (
IDIFFERENCE (I.GETBASE PBASE 1) 1)) 1 L) (*) (COND ((OR (ILESSP PL 4) (NULL (I.GETBASEPTR PBASE 2))) (
*) (I.\LINKBLOCK PBASE))) (RETURN PBASE))) (T (I.\LINKBLOCK BASE) BASE))))

(I.\PATCHBLOCK
(LAMBDA (ARLEN) (*) (*) (I.\MERGEBACKWARD (I.\ALLOCNEWBLOCK ARLEN))))
)
(DEFINEQ

(I.COPYSTRING
(LAMBDA (X) (*) (PROG ((N (NCHARS X)) STR BASE OFFST) (SETQ STR (I.ALLOCSTRING N)) (SETQ BASE (
I.GETBASEPTR STR 0)) (SETQ OFFST (I.GETBASE STR 3)) (for I from 1 to N do (I.\PUTBASEBYTE BASE (IPLUS 
OFFST I -1) (IPLUS (NTHCHARCODE X I)))) (RETURN STR))))

(I.PREINITARRAYS
(LAMBDA NIL (*) (*) (DECLARE (GLOBALVARS I.FREEBLOCKLIST I.ArrayFrLst I.NxtArrayPage)) (SETQ 
I.ArrayFrLst (I.VAG2 32 0)) (SETQ I.NxtArrayPage (IPLUS (LLSH (I.HILOC I.ArrayFrLst) 8) (LRSH (I.LOLOC
 I.ArrayFrLst) 8))) (SETQ I.FREEBLOCKLIST NIL) (SETQ I.LASTARRAYPAGE 15103)))

(I.POSTINITARRAYS
(LAMBDA (AFTERCODEPTR CODESTARTPAGE CODENEXTPAGE) (*) (*) (PROG ((EXTRACELLS (IDIFFERENCE (LLSH 
CODESTARTPAGE 7) (IPLUS (LLSH (I.HILOC I.ArrayFrLst) 15) (LRSH (I.LOLOC I.ArrayFrLst) 1))))) (*) (COND
 ((IGREATERP EXTRACELLS 65535) (printout T T T 
"POSTINITARRAYS:  You pre-allocated too much string space." T 19 
"MKI.CODESTARTOFFSET on MAKEINIT should be reduced by about " (IDIFFERENCE (LRSH EXTRACELLS 7) 10) "."
 T) (HELP)) ((IGEQ EXTRACELLS 4) (*) (printout T T T "POSTINITARRAYS:  There were " (LRSH EXTRACELLS 7
) " allocated but unused array pages." T T)) (T (printout T T 
"POSTINITARRAYS:  String space overflowed into code-arrays" T 19 "You should add at least " (ADD1 (
LRSH (IMINUS EXTRACELLS) 7)) " to MKI.CODESTARTOFFSET on MAKEINIT." T) (HELP))) (*) (I.\PATCHBLOCK 
EXTRACELLS) (SETQ I.ArrayFrLst AFTERCODEPTR) (*) (SETQ I.NxtArrayPage CODENEXTPAGE))))

(I.FILEARRAYBASE
(LAMBDA NIL (*) (I.ADDBASE (I.VAG2 32 0) (IPLUS (LLSH MKI.CODESTARTOFFSET 8) (LRSH (IDIFFERENCE (
GETFILEPTR (OUTPUT)) MKI.FirstDataByte) 1)))))

(I.FILEBLOCKTRAILER
(LAMBDA (BLOCKINFO) (*) (*) (BOUT16 OUTX 43689) (BOUT16 OUTX BLOCKINFO)))

(I.FILECODEBLOCK
(LAMBDA (NCELLS ALIGNED) (*) (*) (PROG (NLEFT (DATAWORD (I.ADDBASE (I.FILEARRAYBASE) 2)) (ARLEN (IPLUS
 NCELLS 2))) (*) (COND ((NEQ 2 (SETQ NLEFT (IDIFFERENCE 2 (IMOD (LRSH (LOGAND (I.LOLOC DATAWORD) 255) 
1) 2)))) (I.FILEPATCHBLOCK NLEFT) (SETQ DATAWORD (I.ADDBASE (I.FILEARRAYBASE) 2)))) (COND ((IGREATERP 
ALIGNED (SETQ NLEFT (IDIFFERENCE 128 (LRSH (LOGAND (I.LOLOC DATAWORD) 255) 1)))) (*) (I.FILEPATCHBLOCK
 NLEFT) (SETQ DATAWORD (I.ADDBASE (I.FILEARRAYBASE) 2)))) (COND ((IGREATERP NCELLS (SETQ NLEFT (
IDIFFERENCE 32768 (LRSH (I.LOLOC DATAWORD) 1)))) (I.FILEPATCHBLOCK NLEFT) (SETQ DATAWORD (I.ADDBASE (
I.FILEARRAYBASE) 2)))) (BOUT16 OUTX 43693) (BOUT16 OUTX ARLEN) (RETURN ARLEN))))

(I.FILEPATCHBLOCK
(LAMBDA (ARLEN) (*) (*) (BOUT16 OUTX 43688) (*) (BOUT16 OUTX ARLEN) (*) (COND ((IGREATERP ARLEN 1) (*)
 (BOUTZEROS (LLSH (IDIFFERENCE ARLEN 2) 2)) (*) (BOUT16 OUTX 43688) (*) (BOUT16 OUTX ARLEN))) NIL))
)
(DEFINEQ

(I.DCODERD
(LAMBDA (FN) (*) (READC) (PROG ((COFD (GETOFD))) (PROG ((NAMETABLE (PROG1 (READ NIL I.CODERDTBL) (
READC))) (CODELEN (IPLUS (LLSH (\BIN COFD) 8) (\BIN COFD))) (NLOCALS (\BIN COFD)) (NFREEVARS (\BIN 
COFD)) (ARGTYPE (\BIN COFD)) (NARGS (\BIN COFD)) (NTSIZE 0) (FRAMENAME FN) REALSIZE STARTPC NTWORDS CA
 FVAROFFSET LOCALARGS STARTLOCALS LOCALSIZE) (COND ((EQ (CAR NAMETABLE) (QUOTE NAME)) (SETQ FRAMENAME 
(CADR NAMETABLE)) (SETQ NAMETABLE (CDDR NAMETABLE)))) (COND ((EQ (CAR NAMETABLE) (QUOTE L)) (SETQ 
LOCALARGS (CADR NAMETABLE)) (SETQ NAMETABLE (CDDR NAMETABLE)))) (COND (NAMETABLE (*) (on NAMETABLE by 
CDDDR do (SETQ NTSIZE (IPLUS NTSIZE 1))) (SETQ NTSIZE (LOGAND (IPLUS (ADD1 NTSIZE) (CONSTANT (SUB1 4))
) (CONSTANT (LOGXOR (SUB1 4) -1)))))) (SETQ NTWORDS (COND (NAMETABLE (IPLUS NTSIZE NTSIZE)) (T (
CONSTANT 4)))) (*) (SETQ STARTPC (LLSH (IPLUS (PROGN 8) NTWORDS) 1)) (*) (COND (LOCALARGS (SETQ 
STARTLOCALS STARTPC) (*) (SETQ LOCALSIZE (LOGAND (IPLUS (ADD1 (LRSH (FLENGTH LOCALARGS) 1)) (CONSTANT 
(SUB1 (IQUOTIENT 4 2)))) (CONSTANT (LOGXOR (SUB1 (IQUOTIENT 4 2)) -1)))) (*) (SETQ LOCALSIZE (LLSH 
LOCALSIZE 1)) (*) (SETQ STARTPC (IPLUS STARTPC (LLSH LOCALSIZE 1))))) (SETQ REALSIZE (LOGAND (IPLUS (
IPLUS STARTPC CODELEN) (CONSTANT (SUB1 8))) (CONSTANT (LOGXOR (SUB1 8) -1)))) (SETQ CA (SCRATCHARRAY 
REALSIZE (LOGAND (IPLUS (ADD1 (LRSH (IPLUS STARTPC 3) 2)) (CONSTANT (SUB1 2))) (CONSTANT (LOGXOR (SUB1
 2) -1))))) (AIN CA STARTPC CODELEN COFD) (*) (for X on NAMETABLE by (CDDDR X) as NT1 from (ADD1 (LLSH
 (PROGN 8) 1)) by (CONSTANT 2) bind (NTBYTESIZE ← (LLSH NTSIZE 1)) do (I.FIXUPNUM CA NT1 (I.ATOMNUMBER
 (CADDR X)) -1) (*) (I.FIXUPNUM CA (IPLUS NT1 NTBYTESIZE) (IPLUS (CADR X) (SELECTQ (CAR X) (P (
CONSTANT 32768)) (F (OR FVAROFFSET (SETQ FVAROFFSET (LRSH NT1 1))) (*) (CONSTANT 49152)) (I (CONSTANT 
0)) (SHOULDNT))) -1) (*)) (COND (LOCALARGS (*) (for X on LOCALARGS by (CDDR X) as NT from (ADD1 
STARTLOCALS) by 2 do (I.FIXUPNUM CA NT (I.ATOMNUMBER (CADR X)) -1) (*) (I.FIXUPNUM CA (IPLUS NT 
LOCALSIZE) (IPLUS (CAR X) (CONSTANT 0)) -1) (*)))) (PROGN (*) ((LAMBDA (DEFA0042 VALUEA0041) (DECLARE 
(LOCALVARS DEFA0042 VALUEA0041)) (\BYTESETA DEFA0042 2 (LRSH VALUEA0041 8)) (\BYTESETA DEFA0042 (ADD1 
2) (IMOD VALUEA0041 (CONSTANT (LLSH 1 8))))) CA (LOGAND (PROGN (COND ((EQ ARGTYPE 2) -1) (T NARGS))) (
CONSTANT (SUB1 (LLSH 1 16))))) ((LAMBDA (DEFA0044 VALUEA0043) (DECLARE (LOCALVARS DEFA0044 VALUEA0043)
) (\BYTESETA DEFA0044 4 (LRSH VALUEA0043 8)) (\BYTESETA DEFA0044 (ADD1 4) (IMOD VALUEA0043 (CONSTANT (
LLSH 1 8))))) CA (LOGAND (PROGN (SUB1 (LRSH (IPLUS (IPLUS NLOCALS NFREEVARS) 1) 1))) (CONSTANT (SUB1 (
LLSH 1 16))))) (PROGN (\BYTESETA CA 6 (LRSH STARTPC 8)) (\BYTESETA CA (ADD1 6) (IMOD STARTPC (CONSTANT
 (LLSH 1 8))))) (\BYTESETA CA 8 (LOGOR (LOGAND (\BYTELT CA 8) 65487) (LLSH (LOGAND ARGTYPE 3) 4))) (
I.FIXUPPTR CA 11 (I.\COPY FRAMENAME)) (PROGN (\BYTESETA CA 12 (LRSH NTSIZE 8)) (\BYTESETA CA (ADD1 12)
 (IMOD NTSIZE (CONSTANT (LLSH 1 8))))) (\BYTESETA CA 14 NLOCALS) (\BYTESETA CA 15 (PROGN (OR 
FVAROFFSET 0))) ((LAMBDA (DEFA0046 VALUEA0045) (DECLARE (LOCALVARS DEFA0046 VALUEA0045)) (\BYTESETA 
DEFA0046 0 (LRSH VALUEA0045 8)) (\BYTESETA DEFA0046 (ADD1 0) (IMOD VALUEA0045 (CONSTANT (LLSH 1 8)))))
 CA (PROGN (IPLUS (LLSH (IPLUS ((LAMBDA (X) (DECLARE (LOCALVARS . T)) (COND ((IGREATERP X (SUB1 (LLSH 
1 (SUB1 16)))) (SUB1 (IDIFFERENCE X (SUB1 (LLSH 1 16))))) (T X))) (LOGOR (LLSH (\BYTELT CA 2) 8) (
\BYTELT CA (ADD1 2)))) (LLSH (ADD1 ((LAMBDA (X) (DECLARE (LOCALVARS . T)) (COND ((IGREATERP X (SUB1 (
LLSH 1 (SUB1 16)))) (SUB1 (IDIFFERENCE X (SUB1 (LLSH 1 16))))) (T X))) (LOGOR (LLSH (\BYTELT CA 4) 8) 
(\BYTELT CA (ADD1 4))))) 1)) 1) 12 32)))) (for X on (READ NIL I.CODERDTBL) by (CDDR X) do (I.FIXUPNUM 
CA (IPLUS (CAR X) STARTPC) (I.ATOMNUMBER (CADR X)) -1)) (for X on (READ NIL I.CODERDTBL) by (CDDR X) 
do (I.FIXUPNUM CA (IPLUS (CAR X) STARTPC) (I.ATOMNUMBER (CADR X)) -1)) (for X on (READ NIL I.CODERDTBL
) by (CDDR X) do (I.FIXUPPTR CA (IPLUS (CAR X) STARTPC) (I.\COPY (CADR X)))) (I.PUTDEFN FN CA (IPLUS 
STARTPC CODELEN))))))
)

(RPAQQ \OPCODES ((248 FLOATBLT 0 T -4 NIL \FLOATBLT) (249 FFTSTEP 0 T -1 NIL \FFTSTEP) (250 unused NIL
 NIL NIL 252) (0 -X- 0) (1 CAR 0 T 0 NIL \CAR.UFN) (2 CDR 0 T 0 NIL \CDR.UFN) (3 LISTP 0 T 0 NIL LISTP
) (4 NTYPX 0 T 0 NIL NTYPX) (5 TYPEP 1 TYPEP 0) (6 DTEST 2 ATOM 0 NIL \DTESTFAIL) (7 CDDR 0 T 0 NIL 
CDDR) (8 FN0 2 FN 1) (9 FN1 2 FN 0) (10 FN2 2 FN -1) (11 FN3 2 FN -2) (12 FN4 2 FN -3) (13 FNX 3 FNX 
FNX) (14 APPLYFN 0 T -1) (15 CHECKAPPLY* 0 T 0 NIL \CHECKAPPLY*) (16 RETURN 0 T 0 NIL \HARDRETURN) (17
 BIND 2) (18 UNBIND 0) (19 DUNBIND 0) (20 RPLPTR.N 1 T -1 NIL \RPLPTR.UFN) (21 GCREF 1 T 0 NIL \HTFIND
) (22 was.htfind 0 T) (23 GVAR← 2 ATOM 0 NIL \SETGLOBALVAL.UFN) (24 RPLACA 0 T -1 NIL \RPLACA.UFN) (25
 RPLACD 0 T -1 NIL \RPLACD.UFN) (26 CONS 0 T -1 NIL \CONS.UFN) (27 GETP 0 T -1 NIL GETPROP) (28 FMEMB 
0 T -1 NIL FMEMB) (29 GETHASH 0 T -1 NIL GETHASH) (30 PUTHASH 0 T -2 NIL PUTHASH) (31 CREATECELL 0 T 0
 NIL \CREATECELL) (32 BIN 0 T 0 NIL \BIN) (33 BOUT 0 T -1 NIL \BOUT) (34 BITBLT 0 T -1 NIL BitBltSUBR)
 (35 LIST1 0 T 0 NIL CONS) (36 DOCOLLECT 0 T -1 NIL DOCOLLECT) (37 ENDCOLLECT 0 T -1 NIL ENDCOLLECT) (
38 RPLCONS 0 T -1 NIL \RPLCONS) (39 unused) (40 ELT 0 T -1 NIL ELT) (41 NTHCHC 0 T -1 NIL NTHCHARCODE)
 (42 SETA 0 T -2 NIL SETA) (43 RPLCHARCODE 0 T -2 NIL RPLCHARCODE) (44 EVAL 0 T 0 NIL \EVAL) (45 EVALV
 0 T 0 NIL \EVALV1) (46 unused) (47 STKSCAN 0 T 0 NIL \STKSCAN) (48 unused NIL NIL NIL 58) (59 
\MU.DRAWLINE 0 T -8 NIL \DRAWLINE.UFN) (60 STORE.N 1 T 0) (61 COPY.N 1 T 1) (62 RAID 0 T 0 NIL RAID) (
63 \RETURN 0 T 0 NIL \RETURN) (64 IVAR 0 IVAR 1 70) (71 IVARX 1 IVAR 1) (72 PVAR 0 PVAR 1 78) (79 
PVARX 1 PVAR 1) (80 FVAR 0 FVAR 1 86) (87 FVARX 1 FVAR 1) (88 PVAR← 0 PVAR 0 94) (95 PVARX← 1 PVAR 0) 
(96 GVAR 2 ATOM 1) (97 ARG0 0 T 0 NIL \ARG0) (98 IVARX← 1 IVAR 0) (99 FVARX← 1 FVAR 0) (100 COPY 0 T 1
) (101 MYARGCOUNT 0 T 1 NIL \MYARGCOUNT) (102 MYALINK 0 T 1) (103 ACONST 2 ATOM 1) (104 'NIL 0 T 1) (
105 'T 0 T 1) (106 '0 0 T 1) (107 '1 0 T 1) (108 SIC 1 SIC 1) (109 SNIC 1 SNIC 1) (110 SICX 2 SICX 1) 
(111 GCONST 3 GCONST 1) (112 ATOMNUMBER 2 ATOM 1) (113 READFLAGS 0 T 0 NIL \READFLAGS) (114 READRP 0 T
 0 NIL \READRP) (115 WRITEMAP 0 T -2 NIL \WRITEMAP) (116 READPRINTERPORT 0 T 1 NIL NILL) (117 
WRITEPRINTERPORT 0 T 0 NIL NILL) (118 PILOTBITBLT 0 T -1 NIL \PILOTBITBLT) (119 RCLK 0 T 0 NIL 
\RCLKSUBR) (120 MISC1 1 T 0 NIL \MISC1.UFN) (121 MISC2 1 T -1 NIL \MISC2.UFN) (122 RECLAIMCELL 0 T 0 
NIL \GCRECLAIMCELL) (123 GCSCAN1 0 T 0 NIL \GCSCAN1) (124 GCSCAN2 0 T 0 NIL \GCSCAN2) (125 SUBRCALL 2)
 (126 CONTEXTSWITCH 0 T 0 NIL \CONTEXTSWITCH) (127 AUDIO 0 T 0 NIL NILL) (128 JUMP 0 JUMP JUMP 143) (
144 FJUMP 0 JUMP CJUMP 159) (160 TJUMP 0 JUMP CJUMP 175) (176 JUMPX 1 JUMPX JUMP) (177 JUMPXX 2 JUMPXX
 JUMP) (178 FJUMPX 1 JUMPX CJUMP) (179 TJUMPX 1 JUMPX CJUMP) (180 NFJUMPX 1 JUMPX NCJUMP) (181 NTJUMPX
 1 JUMPX NCJUMP) (182 jeq) (183 jlistp) (184 PVAR←↑ 0 PVAR -1 190) (191 POP 0 T -1) (192 was.getbase) 
(193 was.getbaseptr) (194 GETBASEBYTE 0 T -1 NIL \GETBASEBYTE) (195 was.scanbase) (196 BLT 0 T -2 NIL 
\BLT) (197 was.putbase) (198 was.putbaseptr) (199 PUTBASEBYTE 0 T -2 NIL \PUTBASEBYTE) (200 GETBASE.N 
1 T 0) (201 GETBASEPTR.N 1 T 0) (202 GETBITS.N.FD 2 T 0) (203 unused) (204 unused) (205 PUTBASE.N 1 T 
-1 NIL \PUTBASE.UFN) (206 PUTBASEPTR.N 1 T -1 NIL \PUTBASEPTR.UFN) (207 PUTBITS.N.FD 2 T -1 NIL 
\PUTBITS.UFN) (208 ADDBASE 0 T -1 NIL \ADDBASE) (209 VAG2 0 T -1 NIL \VAG2) (210 HILOC 0 T 0) (211 
LOLOC 0 T 0) (212 PLUS2 0 T -1 NIL PLUS) (213 DIFFERENCE 0 T -1 NIL DIFFERENCE) (214 TIMES2 0 T -1 NIL
 TIMES) (215 QUOTIENT 0 T -1 NIL QUOTIENT) (216 IPLUS2 0 T -1 NIL \SLOWIPLUS2) (217 IDIFFERENCE 0 T -1
 NIL \SLOWIDIFFERENCE) (218 ITIMES2 0 T -1 NIL \SLOWITIMES2) (219 IQUOTIENT 0 T -1 NIL \SLOWIQUOTIENT)
 (220 IREMAINDER 0 T -1 NIL IREMAINDER) (221 IPLUS.N 1 T 0 NIL \SLOWIPLUS2) (222 IDIFFERENCE.N 1 T 0 
NIL \SLOWIDIFFERENCE) (223 unused) (224 LLSH1 0 T 0 NIL \SLOWLLSH1) (225 LLSH8 0 T 0 NIL \SLOWLLSH8) (
226 LRSH1 0 T 0 NIL \SLOWLRSH1) (227 LRSH8 0 T 0 NIL \SLOWLRSH8) (228 LOGOR2 0 T -1 NIL \SLOWLOGOR2) (
229 LOGAND2 0 T -1 NIL \SLOWLOGAND2) (230 LOGXOR2 0 T -1 NIL \SLOWLOGXOR2) (231 unused) (232 FPLUS2 0 
T -1 NIL FPLUS2) (233 FDIFFERENCE 0 T -1 NIL FDIFFERENCE) (234 FTIMES2 0 T -1 NIL FTIMES2) (235 
FQUOTIENT 0 T -1 NIL FQUOTIENT) (236 unused NIL NIL NIL 239) (240 EQ 0 T -1) (241 IGREATERP 0 T -1 NIL
 \SLOWIGREATERP) (242 FGREATERP 0 T -1 NIL FGREATERP) (243 GREATERP 0 T -1 NIL GREATERP) (244 unused) 
(245 MAKENUMBER 0 T -1 NIL \MAKENUMBER) (246 BOXIPLUS 0 T -1 NIL \BOXIPLUS) (247 BOXIDIFFERENCE 0 T -1
 NIL \BOXIDIFFERENCE) (248 unused NIL NIL NIL 252) (253 SWAP 0 T 0) (254 NOP 0 T 0) (255 UPCTRACE 0 T 
0 NIL NILL)))

(RPAQ I.CODERDTBL (COPYREADTABLE (QUOTE ORIG)))
(SETSYNTAX (CHARCODE ↑Y) (QUOTE (MACRO (LAMBDA (FILE RDTBL) (EVALFORMAKEINIT (READ FILE RDTBL))))) 
I.CODERDTBL)

(RPAQQ INITPTRS ((\MAINDISK) (\SWAPREQUESTBLOCK) (\DISKREQUESTBLOCK) (\FREEPAGEFID) (\OneCharAtomBase 
NIL) (\SCRATCHSTRING) (\LISTPDTD) (\FREEBLOCKLIST) (\ArrayFrLst)))

(RPAQQ INITVALUES ((\NxtMDSPage 256) (\MaxSysTypeNum 0) (\MaxTypeNumber) (\NxtPnByte 0) (\CurPnPage 0)
 (\NxtAtomPage 0) (\AtomFrLst 0) (\NxtArrayPage) (\LASTARRAYPAGE)))
(DECLARE: EVAL@COMPILE DONTCOPY 
(FILESLOAD (LOADCOMP) MAKEINIT)
)
STOP