perm filename STRUCT[NEW,LSP]3 blob sn#619502 filedate 1981-10-17 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00030 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	   -*-MIDAS-*-
C00005 00003
C00008 00004
C00011 00005
C00015 00006
C00017 00007
C00020 00008
C00023 00009
C00025 00010
C00027 00011
C00029 00012
C00034 00013
C00036 00014
C00040 00015
C00042 00016
C00045 00017
C00046 00018
C00048 00019
C00051 00020
C00054 00021
C00056 00022
C00058 00023
C00062 00024
C00065 00025
C00067 00026
C00070 00027
C00073 00028
C00075 00029
C00077 00030
C00078 ENDMK
C⊗;
;;;   -*-MIDAS-*-
;;;   **************************************************************
;;;   ***** MACLISP ****** INITIAL LIST STRUCTURE ******************
;;;   **************************************************************
;;;   ** (C) COPYRIGHT 1981 MASSACHUSETTS INSTITUTE OF TECHNOLOGY **
;;;   ****** THIS IS A READ-ONLY FILE! (ALL WRITES RESERVED) *******
;;;   **************************************************************



SUBTTL	MACROS FOR CREATING INITIAL LIST STRUCTURE

PFXEST==3200			;ESTIMATED SPACE NEEDED FOR PURE FIXNUMS
SYMEST==1100			;ESTIMATED INITIAL NUMBER OF LISP SYMBOLS
LSYALC==20
GSNSYSG==<SYMEST+SEGSIZ-1>/SEGSIZ	;GUESS AT THE NUMBER OF SYM SEGS NEEDED
GSNSY2==<<SYMEST*2>+SEGSIZ-1>/SEGSIZ	;GUESS AT THE NUMBER OF SY2 SEGS NEEDED
GSNPFXSG==<PFXEST+SEGSIZ-1>/SEGSIZ	;GUESS AT THE NUMBER OF PFX SEGS NEEDED

MAYBE NXVCSG==PAGING*2000/SEGSIZ

.NSTGWD		;NO STORAGE WORDS OVER MACRO DEFINITIONS

KNOB==0		;NUMBER OF OBJECTS FOR OBARRAY
.XCREF KNOB




DEFINE PUTOB A
REL$ ADDOB \A-.RL1,\KNOB
REL% ADDOB \A,\KNOB
TERMIN

DEFINE ADDOB A,N
DEFINE OB!N
REL$ .RL1+A
REL% A
TERMIN
KNOB==KNOB+1
TERMIN

;;; STANDARD FUNCTION MAKERS

;;; MKAT <PNAME/INTERNAL-NAME>,<PROP-NAME>,<SPACE-FOR-Q-LABEL>,<ARGS-PROP>
;;; MKAT1 <PNAME>,<PROP-NAME>,<SPACE-FOR-Q-LABEL>,<INTERNAL-NAME>,<ARGS-PROP>

DEFINE MKAT A,B,C,AR
	Q!B %
	A,,NIL
RMTAH1 [C]A,PNL-2,[A]AR
TERMIN

DEFINE MKAT1 A,B,C,D,AR,IP
	Q!B %
	D,,NIL
RMTAH1 [C]D,PNL-2,[A]AR,,IP
TERMIN


;;; MKAT2 USED TO CREATE AUTOLOAD ATOMS
;;; MKAT2 <ATOM-NAME>,<BRIEF-NAME-FOR-AUTOLOAD-PROP>,<LABEL-FOR-HEADER>

DEFINE MKAT2 A,D,C
	QAUTOLOAD %
	QFL.!D,,NIL
IFSN [C], RMTAH1 [ ]C,PNL-2,[A]
IFSE [C], RMTAH1 [ ]A,PNL-2,[A]
TERMIN


;;; MAKE AN ATOM WITH AUTOLOAD PROPERTY FROM A SHARED PROPERTY LIST
;9; <PNAME>,<2-CHAR-PLIST
ID>,<BRIEF-INTERNAL-NAME>,<FO.-OF-ARGS.
DEFIN@
A≠-β_Aα1λYεY¬$Y∪ 4⊃∪
≤qαn∞haαJ6$
!EαX∧¬l~β⊃⊂I f⊗-Pl`i⊗$hεE∩c)bP⊗anV⊂∀&j dP⊂,D!$AL,Xπβ 6
⊃12&h*R⊗∀j&(Q!PC[70¬≤XT∧
~	Y4bβλ⊂JZλ⊃r*Iλ⊂(
@ f*bH!bf&∧¬
;≠8ε@@@	↓%∪_@	αεu"⊗J:aα:εl)α6εJα:>Q∧∩∃αyY∃%$XAPT∧Xi∀t(∪2h→α+⊂ K ∩!V⊂i⊗+ S⊗ hεBαRM@)¬⊂bA⊗ααv
H@λ$H3⊗h≠04C
@⊂aV$T∧¬∃%5)-εAXCεI-¬_⊂∀*$*J6&ph  ('33@4⊂ε`eQiP gλ j'fH+`j$λ P# S*bP!Qd∧@_X↓↓+(A9~A>$B⊗Iαα
$`:⊃0	*∩biFE∞β;; MKAV <PNAME>,<LA@¬β_[→_∞I64~⊗ $β∂CπHpπg*⊃dεTS-OF-VCEH	1par2ε∀*16~⎇⊃6"⊗"⊗I@aQ hTHXdL@Q(∪)85H∀	e∃Ps¬Hhε",IP
IFS@≤Am	0∃1¬∩6Bε@ε∩¬Zλπ1¬E⊗t∪KUα!W,IP
IFSE [DX
XAI≠ ∩ε@ε∩αbβ⊗j	TεV!K⊗$hεBαC ≤\βiu 0β"S	@aP!WβE$c)Sα [FCLY,   VCL:
.ELSE,   V!PN8∧⊂∀!→∀5≤βH⊗hnV∧aCE	.ELSE,		JIL 
C.tzP_Q)D`8h⊂kEA ¬*"T&dgεB∧A≥]Nβ @≠β-&Aα↓
+≥πQ∪↔A]∪ ∩∧λ∩¬4→JT*∧8YD`h'33@4⊂εec∃α <PNAH
@par&:αHU∀t→ETdXWbcEλ∧Sj¬3P3(WK∂∩)@$j$`S⊗k f∃b←⊗≡⊂i#iVT)'h∨βE
DEFINE MKFV PF,B,C$D1β$Y∪@~∀β"¬α@J~(∪∧XY9∪⊂~∃I≠!β⊂β	αmαβX"e∧iES∩e:	el
%Jb∩I~hU)ZE (h∃H(%⊃β"JH4S2)A"C"G↔nh∀jJR3Qj4∃∪qhZ⊂∧"iλ*$"P∃ei")H'c⊂ H(' fQP g*∪β A LIST

DEFIH
A¬!≤Y!8~∀%D11%ε∀*Bεε"↓qq~d*:=Iπe∧ogb[#evRk
K4PhRλebZu*λ4u"6⊃∃hh*	dckUaPTdx4∧2pQ(∃≤≤→∀π`*∪←C!λKO/%a S∪h∀∀∪S↓QU⊃4IY3C"AQA"@↓A C"G7nh∪(→q4hλ∀λTv*:⊃3(Dλ5∪s%dλ∃4jZp3∪∀∩⊂4d	Sh∀
)t⊃4JI14kAQNnnd	4p(πI3U⊃*)P3)h31/EG∀∪P)X/C"AQQ⊃1I→Q(∪*8(∪∪EJ∪C"J)5⊂2ε∀⊗h↔)IK⊗j	W#"JH4S2)a"C"AQNnnd	02q$λ(λTH→Q∪s$λ5∪s$$
∪tDλ5∪s*5#"C!(⊃1R)h(∪4H∀∀∪TaQR4T∧
∪K:∪Tw!QS4p$
∪K∀	a"U⊃*)23C!*⊃4S)→C"C!'nnhλ4∂(∂
:⊂0q'd∪10)jh∃∩λ~λ∃q$
r∪u)Hλ∩⊂*h(⊂(	H0Q3∧λStH
I⊃(∩λX1⊃4AQNnndλλ∩4d
∩⊃(	H0Q3¬D∪3tHT∪tH	H4tk∧	1H⊂d	4h⊂$π∀p⊂(8/C"G7nh∀	D∩4hλi⊂1hλitH∀
)t⊃4JK(∪∩*:Hλ	_H∪U)Iλ∃	λ3H∪I→λ⊗o$ε↔(⊃hZ∀hβ!'nnh∧∧λ⊂4j830SλXHλλitH∪)85λ⊂h~q+λ	~λ∪5*:λ⊂Q$∧T∪S¬VHKλ
93Pq$
∩⊃(

St⊃**⊗(β!'nnh∧∧λ∪∩*:λ∃r)Iλ⊂3
x64h	λ5Q(ε$⊂q3	Jh∩U*:λ∀∀HXq11	→Qh∃	λ(⊂∪H→1+3	~uβ"G7nh∀	d∩4h
I⊃(∀	h31(
:∀R3Huλβ"G7nh⊂*$∃∩⊃$λ4Qtd
∀StλZU⊗+∧↓"Nng4∃Ph
I⊃(∪λ_Q3λ	xH∃∩λT∃P3
X(⊂q)Iβ"Ng7h∩4∧	1H∪Izλ∪U)Iλ∩*4⊂(∪(_tSh
y∩0r∧
r∪u)Hλ⊂1λD⊂(∀
(1R6∧
∪h∃	λ(⊂∪H→1#"AQC"QλXR3Q$
S5⊂)ε(⊂kλE∀∪
	K⊂4EJPk∩*↓"T∪IG/+C!)∪ph
5C"T
Z∪pH¬A"R1J8(⊗pkT	λ∀$_∞C"A⊃0KC¬J∪β"J5O/+AQS∪pdλKC"I_Tq(:Pw+∧εmmlfε	∀jYPSu)hβ"KHY∀q(↓∀λλ
fvll¬E∃Pc!!(λλ∧	SH0*%∀∪IA"PKGW+C"IIph∀	iβ"R(jsH⊗i~↔+λ	~β"P*	H∩t	k!"UλZS23AQ@εEεB≥]]P∀"fgj⊃P+ f∃bP!bS&⊂&`RbiεEβE""c∩e"P)∪j+!P⊂V!FE⊗-≡↑GβE&'aH!WεE⊂]αE$Q)g⊂-PnV∧aCE↔"f∀bV∧DSαIL
C*==.
LOC ZZ
TERMIN



;9; ARGS TO IRP IJ GRMQPS OF 4FOR EASY COUNTING

IRP Q,,[0,,1,2
3,4,5,01
12,23,16,36
08,1777,2777,4777,02
13,25,34,35,45
03,27,37,04,58
3777,17]R,,[1,0,2,3
4,5,6,1002
2003,3004,2007,4007
1011,2777,3777,5777,1003
2004,3006,4005,4006,5006
1004,3010,4010,1005,6011
4777,2010]
NN!Q==R
TERMIN		;FOR @IBOP ARGS PROPERTIES



SUBTTL STARTS FOR SAR, VC, IS2, AND SYM [SYMBOL-HEADER] SPACES

;;; STATE OF THE WORLD HERE HAD BETTER BE 
;;; 1) LOSEG IF IN D10
;;; 2) BEGINNING ON A SEGMENT BOUNDARY

.XCREF RMTAH1 MKAT MKAT1 MKAT2 MKAV MKFV RMTVC MSA 
   .XCREF MKAL MKALV

.YSTGWD		;STORAGE WORDS ARE OKAY NOW

	PGBOT ATM

BLSTIM==.MRUNT


;;; FORMAT OF SYMBOL HEADER FOR BIBOP:
;;; THE MAIN HEADER OF A SYMBOL IS A SINGLE WORD IN SYMBOL SPACE.
;;; THE RIGHT HALF CONTAINS THE PROPERTY LIST, AND THE LEFT HALF
;;; POINTS TO THE REST OF THE HEADER, WHICH IS IN THE IS2 OR SY2 AREA.
;;; SINCE THE REST OF THE HEADER (ALSO CALLED A "SYMBOL BLOCK") MUST
;;; LIE ON AN EVEN WORD BOUNDARY, THE LOW BIT OF THE LEFT HALF OF
;;; THE MAIN HEADER IS NORMALLY ZERO. THIS BIT IS USED BY THE
;;; GARBAGE COLLECTOR FOR MARKING PURPOSES, AND THEN RESET TO ZERO.
;;; THE SYMBOL BLOCK IS 2 WORDS LONG:
;;;		<VARIOUS BITS>,,<POINTER TO VALUE CELL>
;;;		<ARGS PROPERTY>,,<PNAME LIST>
;;; THE "VARIOUS BITS" ARE:
;;;	4.9-3.9	ONES (FOR NO PARTICULARLY GOOD REASON)
;;;	3.9	ZERO (RESERVED FOR SPECIAL VALUE CELL/LAP HACK)
;;;	3.8	1 => SYMBOL BLOCK MAY BE PURE (SEE GCMARK)
;;;	3.7	ONE IFF COMPILED CODE NEEDS THE SYMBOL
;;;	3.6	ONE IFF COMPILED CODE REFEREJCES BY OTHER THAN CALL UUO
;;;		(IMPLIES 3.7 WHICH *MUST* ALSO BE OL)¬
;9;	3.5-3.1	ZEBO (SO AAN IN@IREAT DHROUGH T@E UH∂%λααR=α<*QαZbV∃$hQ`≠[4
DD(⊂4Hzh⊂λ)∪βPE@%Q2Aβ&↓∪⊂→ααI∧*¬8→T*∧iz$l
Dλd
≤β∪p(D∃0	bTVεE≥Nβ; DWLεA:Lr∃ ,)~B∧∃~HU~∧HX4l$X@λλ~h⊃SiI⊃utg↓αA≥MNβ	∩`z|A≥%_∩∧vlp$⊗rs 4∂(∂ 4ε`≥]αB⊗~~,~R&Z,beα→hdLT~K∩Hh'33@1 ∧g => N
1(λA≤αα0∀]Dεα∧⎇$εs 6βFE
Nβ; @)!+&@`@```Lz@@"tJ1↓dεRJ@λλεFλ
P∂P⊂λ &X	↓QJaαε: ∧βββ&p
f@P≡P∀P⊂∞ 74ε`≥⊃Q hPβ"C!∧¬∃'A∞
> αFεHhP4*∩,"FεIPI↓↓↓α↓A1H_D,A⊃∪@8⊃01∧
p4@⊂
()'j⊃aj"bλ!(	 G@εR4PH&@%HHT Q(D),¬∧@     0,,ADEA@		m	⊗ε ε∀dβprd	α`i%Qi
		P	)	∃β~∃	 ∞fN
⊃uua⊃∪@8Q1r)@% 	NG H∂@	 ∞fNαHTj∩λ~%(4∧P(∀$πP@&Q'
β ∞fNα¬⊂hTαpP*) l@:	AS 9=
¬8∧v¬`πC@ xXY&|∩εIDHπ4`(P4DH≠ ∧E∧αh∧T@&pc⊃.≤qp∩bβ∩3h i⊂∩(TPλR~) 
,_BD∀β⊃ ≥α`iP≤RDP ↔
`x	1H∧Tk
α!⊂⊃	8π%β⊃)β¬→∀~∧$M"RM@D∧1¬a`
.0Y%𠬬%
#"J
Q⊂
!∪≥		APεp∩J 
B@8β(λ>0Y%'E"∪⊂α.t
ZQ(∀HX1⊂
 PαH	
~(∩∪)%→qF⊃\~0∪rβ∀Hh∧0(TT)~∃Q)3&4	`⊂Hα04gHβ 	L- ∞a8x5β@Hε⊗*∃,`	FD∩w)%Iα&h∧∃*D⊃R3λT⊂4TH≠ εE∧Bh∧TC<1@ ↔π0P∞∞e:EK@Hε⊗*∃,`	F∩(P	(R4⊂
BRβ→t (,¬∧DPiXFIL+S@0αZ⊂≤≥∧π@⊗(* →OD∧b%]"Reα⎇*RBVα@ )0ε"@⊂i) lCE		TTS0_@!&∞E84`%u⊂@+IH∞`9`¬E%%→xcαEH@
!QP∧g$R`εA:		AS 9→∪⊂⊃.α;α\ppλ∨⊗ 	NII@b∩βZ& 4α5⊂⊃αIDE ARRAY
∩∪Q)&hC⊂Sπ1β`¬I0π$dQα2(@)PR∩*≥"I,~ ∞A⊃01⊃(_β"B!~α*""Q!BEεBα@'M~εI@Tπ ↔βE
SPCTOP SAR1∪⊂∩MeZFεJhh ⊂`HαC"G↔nh⊂HXp3Td	qH⊂$
q1s(Yβ*⊂!∪jg" T,V⊂!⊃a`jiQP ∂F THE "SPC@)= A'βH@⊂∀(hRNB∞∀zQαZ_h*
→hπR`K9It
I→t`$⊂su)j⊃4@⊂⊃'i⊂+⊂d*bP⊂bf&⊂∀h abCE]]NP ∞OTE THAT VALUE CELLS FMR T0A≥∪_0A+≥¬=+≥λX↓β≥λAU↓β$@4∀∩fvβYαεJ*α& 2λ∧∃*((⊃THX(∀u	zP1q!QPS∪h9h
ε↓ Tq(z4λAQPV∃H:qo'%A"R1ID∪V∃H:qk⊗aQB4⊂(x50β!!0V∃H:qo/%A"B3	XhJik∃PthuTq1j96K$!QB4⊂(x54β!+#"Q*htqo'UC"C!!"Ttλ8Suλ	~lC"J;,P3λ↔A"S	XhJf%S∀v(→⊂c"J:⊂u∪j∧∩4lEI3∀k934∃*((⊂v)XSsλλ)∪prkQ"C"AQC"TjλpSu∧
v3#!!"U∀JZ∩∞B$D	∃∀JZ∩	i3α"'85∪s$	⊃01λZH⊃Sj$∃β"A~∃5∪h$∃∀U*Iβ"THY	α0(H∪pH¬UTS%9R3IsSpAQTQ3∧Q01⊃	xH∪R)E↔∩sIxC"Ng7b0tIxrh∃	t∀∃5	xH∪R)D⊂stJ(0u∪⊃"C"J~3PSjYQ∞B$D	∃3H)u3Q¬E∪R3↓↔r3UλZSP3∧
3PSjYQλ∪(~Rq4AQTv0)HnB0IIprh	Jv03λ1.qSj$⊂3∪	xc"Teg/+B'9∪pp*I3sHλ9u3UλZH⊃Sj$∀v3()sλ∀jλ0q#!!"Tq(z4λ⊂J;34qe8tsTk~qjThXtr6EV#"B!↔q3Q∧	qH∀k→0Ss∧λu14j1"Q4k→1to'UC"Tλ_q54↓QC"@↓A"C"J:0U∃	D∀u⊂**∀h⊃IzH∀v&%λ∀⊃K¬λ⊂3HD∀⊃Tdt∃4HT∪∩4jK(∀tλ_q4c!!"L,∧A)∩∩*81c"AQTt⊂h)uλ∀k⊗C"I∧D∃∀U*I∞B-fvll¬E∃U∀JZ∩β"A⊃,∧D∃∀U*Iβ"I∧D∃3PIz3Q∞A⊗mmlfε∀jYPSu)hβ"B!⊗	∧J3PSjYQβ"AQPKO'UB.s	xp5∩)yH⊂sjYU⊃4DλStH
;30SiD⊂S∪h9h∀tλ_q#"AQTq1jZλ⊂Tk⊗TqjhzsTv&%Tq1j96K,!QC"C!!"B4jλpSu∧
⊃Vβ!!"R3J&l∞B*&lβ"AQR1SDλ,1"R1HT∀p2)E⊗c"I~∀∪L'!"+B!↔r3R*I03λ

∪H⊃IzH∪∩*:	th∧*v4hDλ⊃5R(8#"R*
∪LNA⊃+C"KQ.q3HD∪qH	_Q(∀h→3β"G<[|H
823∧∞y(~≡Y(≥
t→≠h∞M→(→\Z;Z.M;{H≤]→4D∧S00d∧_;Y∧∧S∀t∧$_<Y$→9P∀[2rεE↔D]bg⊃⊂'c⊂∩c'⊂"XεEεBεE≥]H$ aP⊃'i⊂&Rg$fdV$g#P∃i`cbTP#c⊂λ∃`g*⊃i' fQ⊂$gλ(' fQiFE≥NP"`aT'iP'⊂fbiP	b+)j⊂∩h$T'⊗⊂∩Pi),Vλ∩idbV⊗⊂∩c∩l'⊗⊂	c&'gλεA$i∀⊂ V⊗⊗b+)j""c&K($h'&l(' i),K)`bl)`	CH,FIXN,FLON,MTPL,READ
FEXF,SIDC(	-β1+;∧X17@∪↔53M2∩,26¬1\J2R⊗∀rε15djε∞J|*bBεpbεJJ
I2N%T*`4
≤Ij∞!d2&b~*b~2>u)26Ve"&B∩*jZε2,)52J,
⊃524J2∃6-B&A⊗5*:∞Qe~%j∩,2∞ $~5E4JXUhh$@B!_∃≤≤→∀¬d∃AQ$$1R3HT	(0!QTQ4λX5λ∂πES⊃3Hz∩λ↔H∂OJeπem+⊗aQ@∧Tα	⊂`U@.RPCNT) %
]
TERMIN
TERMIN~∀4∃∧\ztX∩w→=ββ)∪=_Aπ∨U≥)$αα~>I¬αVJ∃∧2&b:αYU~αT
U≤,Dλd⎇∩
	dlZ4∧tD	∀u,Z1PPh*8T=-∧λ%∧5
8r\=9j∧5E8q%≤,z9∃Rk⊃Q$-∧iλu≠kUaPPh!Q hU:λ4∀⎇D
∧5_Q(%¬-(j3kja⊃∪L∀Xy∀dt→hr∧|d
¬-∀Tλe~αλiu∩∧→j4-∃DλdL@⊃(∀λ_q*#!!"C"AQA"Ng]P#)⊃bP!j∪i cbH)j*c⊃⊂*$ U⊂$iP∪ ¬VER CC'ED, NOR DARE EARKED FROM (NON-BIBOP)
~∃A/∪∨∪9(tA≥%_∩∩∩@@w∂%)⊃∨+PA∪≥	∃%%+!Q&A'↓∃π∪β_↓!+%
↓→∨πβQ∪∨~(~∀@@$HA+≥	∨+≥λh~∀α∩%β!≤AU≥¬∨+9λ~(hQ↓%""0∀LG!⊂HK8∧∪H→1(⊃IZH∪R)A B"(~∪H∪I→β"C!*SR3π!3R3↓↔qR3∧zh∃P)J1(⊂hY⊃λ∩*4⊂3@
λTh$
∩⊂5∧
p6(→u(⊂h→Iuλ
85∀(	~β"C!$λα)∧J∀U5	πB".j	P31$	qH∃↓Q@"0*	H⊃β!*U∞C!*U∀U*I∞B5
*5∩α'9∩2q*Y4q(λ_3Iu∧
q5∀$
β"C!!"Nng∀∀q⊂)h⊂4Q∧
3PSjYQλ∃H→∃1(λ83∪λ¬T∀∪r)j⊃1
Ih⊂V$λ3∪λ
;30SiJh∃r	_pβ"G↔nh⊃	yIuλ	λ5Q(
I⊃24D	us@⊂∃αALUE CELL, FOTE: ALL SECH SIMBOLS ARE
8εvvA!→&|~⊗ 5J)∀
@H∪5*:λ∩⊂*hαP ∪UNBOUND ABOV@
A9λA∂↓(
ε2,)α∞⊗daαεJ,λ4)@772αj
8T*∧{~5β,∀λ∀tαλ:5M≥HYR`H!Q"α~:Tt∀zYd#P~~Td∀zYd hαC"@↓AαA)jP**&∧Re$j$Pf⊂(*T"P&$Tj⊂)j∀*ab*T"FEεB()a)∪≥∧hRRifV⊗∀a)&εB∧E)iTa)&≥αh`i)⊂lP∩FB ia)∪≥∧h`Uj#f'Pb⊂∩FB)lia∀&≥∧hPi) lH∩BE)P)&≥∧Tija)λ∩FE∧Tc)ja∀⊂∩FEαhf)jP)⊗⊗'∩fεEεB≥]P⊃⊃bj&⊃λ64yzλ37y⊃!'jg⊃(εE#⊂ (&≥αhbl(∀⊂∩FEαhc"l∀)⊂∩FB∧hf`Pi'V⊗∀a)&εBεE(cT*&≥∧TR#i"Pj∩⊗'∩f∧D]J∨∀P#∪i⊂*cT"`jεBεE$cTa+≥∧Sa i)⊂lV⊗)⊃`b* P&"D]QD PROPERTIES
;;; NOTE THAT DUE TO THE 6-CHAR LOSS, GRINDEF HAD TO BECOME GFN IN THE LABEL
;;;  HERE ARE THE NAMELISTS WHICH WILL BECOME AUTOLOAD PROPERTIES

;;; [EREAD,HELP,ALLFI,DUMPA,LEDIT,LISPT,HUMBLE],,[ER,HE,FL,DP,LE,LT,HM]

IRP A,,[GRIND,GFN,LAP,GETMIDASOP,SORT,LET,BACKQ,FORMAT,CGOL,DUMPARRAYS
DEFMACRO,$DFMX,DEFVST,$DEFVSX,%DEFVSY,MACAI,MLMAC,MLSUB,SETF,$EDIT
TRACE,SHARPM,STRING,SUBSEQ,EXTEND,EXTSTR,EXTBAS,EXTSFA,EXTMAC,BLTARRAY
ERRCK,CERROR,YESNOP,LOOP,DESCRIBE]B,,[GI,GE,LA,GT,SO,LM,BQ,FT,CG,DP,DM,MX
DV,DX,DY,MA,MM,MS,SF,ED,TR,SH,ST,SB,EX,ES,EB,EA,EM,BL,EC,CE,YN,LO,DS]
	QFL.!B:	IRACOM %
		Q!A,,IRATBL
	B!$AL:  QAUTOLOAD %
		QFL.!B,,NIL
TERMIN

IFN SAIL,[
	QFL.ER:	IRACOM %
		QEREAD,,IRATBL
	ER$AL:  QAUTOLOAD %
		QFL.ER,,NIL
	QFL.HE:	IRACOM %
		QHELP,,IRATBL
	HE$AL:  QAUTOLOAD %
		QFL.HE,,NIL
]

IFN ITS,[
	QFL.AL: IRACOM %
		QALLFILES,,IRATBL
	AL$AL:  QAUTOLOAD %
↓	QFL.AL,,NIL
]	;EJD OF IFN ITS
IFN JOBQIM\D20,[
QFL.LE:	IRACOM %
	QLEDIT,,IRATBL
LE$AL:  QAUTODOAD %
	QFL.LE,,NIL
]
IFN JOBQIK$[
λQFL.HM:	IRACOM %¬
	QHUMBLE,,IRATBL
HM$AL:  QAUDOLOAD%	↓;for HUMBLE
	QFL,¬⊃5bb2&0hRF~1tbQhεM∩ε∞≡h∧α(H↔<f␈∩	I∃≥¬AQ MI~5¬"EI∃∀
H)@hTJDDc$∧¬
ZItd|_@α(h!~∀4biJBbdi→@hUβ""'_3Q	XH∩1Id⊂SpJ→3c"AQQ0	lT`h≡@=,∧∩∩w∃→A∨_A'3'Q⊂∃α
*R>Ix∀"¬λ∧Sjλαi*$QiFEεBαλ
(hRE⊗εd!`$∧KY∀
XItd|_AT$5R0hTIλ⊂JZλ∪SjHαP ⊃∃1β→λαα∀IzrλhαLD∧Q41∀i4	#"Fε	λα*~∀h	!QR5	∧↓43∩*:λε⊗'∩dεE→⊂∧	QMAC@→∪M X@2tJ0$)_d`$⊃ _-BE∧Kα+1,,L¬∪_~(∪∪!∧qE↓∀hP&&B∧qI1∩tJ0 (+Q∪L,h@λ	@c⊂$c∪α D1⊂
20$  Q%XAHD: QDSK0Y"Kβ1λVb~(~∃#αα*∩$G!∀M∀_9tjbβ∪R)A,p5*Iq∪p(D⊃⊃1H~3∃λHαk$aQTπDIRECTORY @→∪M(~¬∪Iβ)¬_h∪#
βM_XI≥%_~*M∩ε∞≡hπ MI~5αbIi∀`K8:D@Q⊂4HD⊃⊃5I_q+q	~Q0u	ZT∧P#∪i⊂ jU'b'`Q⊂#$f⊃iPεEβE$c'λ!$cg∃dV-FB!'&I`Y∧dSα0 %
λ	INDXY≥∪0~∃¬≥4dg∧t%∪∀`@∀~∀&LqI12tJ04
∀q0∪↔!∀LS¬0%E∪R3↓QPSUF(,B0IjL+	@$fεE↔DD]bS ⊂'cλ$c'⊂⊂αIGNUM
α

QTLIST:	TRUDH,,NIL
IFN ITS,[
QLSPOUT8	Q.LISP. %	↓;FLπ$A∪Q&P@P<Y→∪'@↑TA∨U)!+λ$~∀α∪E≠ ⊗R¬*Q12tJ0$*hH$%N,r⊃α>2α&~9∧JRL4TJ~9α#⊃A2lhRF %8	u-#!~∀l9I∃≥α∧Q⊂K\iz"∧#&¬BαDX_4dM:∧∧⎇
J
U"HQ!⊂MzZE¬-EEDdLAQ%hH⊃↔4,TD	t2∧_ib∧#&↓PS]→J5∧⎇ZD∧≤|j:E∃,:HT"∧~D¬∃,d
DLlTλd⎇∩λF∪h!Q hU~ZtcP~~U=∀~HRbdi→@hU~Z$cP~~U∀,_EBdt→APTdyz#PM_yrα(Q!∃
∀ZJU∀rEIdL`Q `h*→dLe8ZEP~~4-%∀∧PHK8iu∩∧i→∧LbλZ%∀⎇$	T-≥8_t(h!∃b[
EIdL`Q!∀tLEEDtLAQ hU~J4-%↔!∃
≤ZJ∩α(⊃⊃∪\4z$¬4-)~D
~λZ%∀⎇$	T-≥8_t(h!∃b[
EIdL`Q!∃%∃ZIαbdi→@hPQ*∃E≤ZJ∪PM~8U%
∧Q⊂HK8iu∩¬
Z$M$~4∧-∃)z"∧lZ:4<QQ M
8U#
EIdL`Q!PT
*→E≠P~_∃∃∀≠∀α(H↔5∧
∃(≠∩βz⊃Q"%YJ5#P~→Rbdi→@HH↔9DM≥D	t2∧∀
∃,-:I∀|r	X∃∀[$¬βzHQ!PU
9(4cP~~5$
JZ2α(⊃↔2E≥H~E-~	(4bHQ!∃T9EBdt→APPh*:∧≤t→XU≠P⊃⊃∪JE8H∃%-4
5∧≤h→T-~⊃Q M
;→T∀|D∧PhP~_∃∃∀≠∀α(h*
U∃≥λ9dlX∧nA⊃".j
:⊂5∃*4∀⊂
i∀h!g SbiTFB∧hf$Th⊂∩FB$c'∩'%f'QV-FEαi b$V⊂_X↔βE	REP@β(↓⊃≥↔→=∞VbX↓β⊂≡~~αF"VtY2a~α*∧9U¬EJl#!↓4P1	≠λ
β!α@]bSα@λA∨_A∪
≤αα":.dz≤4*∀9⊂&F∀J≡*Vh∧α(h(Kα M_JU∧dYα(hαPv∧A40siZ⊂ε"lλ∩@
D@ 	QDOP¬→∀@J4PJF~2|rV *∧QP@M_i∃DuYPλ¬E⊃R3↓Q@εE(⊃&# fQi]εE∩i()P⊗,∩,V⊗βREG↓
_A
`A'!
:~(M	εba
α∩1EI∀5≤T5Mm4UJ@JhλnCE*"i∪dgεEβεAεE∀ja**∪∧i g⊃'fP)Vij"fRaP j∪fiFEβEαE≥NP∃dg∃"i' S⊗WSVS`aa'H∃&jiU∃⊂12H34y9]⊂4w⊂≥44yP≥0q62K⊂37`2 (SDATUS SYSTEM ...)
3; QRDQTE is firsT symbol except for TRUTH and QUNBOUND --RWK

RDQTEB=RDQTE		;THE OTHERS WIN BECAUSE THEY ARE 6 CHARS
IRP X,,[RDQTEB,RDSEMI,RDVBAR,RDDBLQ]Y,,[['],[;],[|],Y"]]
	MKAT1 KY-MACRO]SUBR,[ ]X,0,%PIPN
TERMIN
	MKAT1 TTYSCAN-SUBR,SUBR,[ ]TTYBUF,3,%PIPN
	MKAT1 ↑B-BREAK,SUBR,[ ]CN.BB,2,%PIPN
↓MKAT1 IOL-BREAK,SUBR,[ ]IOLB,1,%PIPN
	MKAT1 UREAD-EOFFN,SUBR,[ ]UREOF,2,%PIPN
	MKAT1 INCLUDE-EOFFN,SUBR,[ ]INCEOF,2,%PIPN
	MKAT1 TTY-ENDPAGEFN,SUBR,[ ]TTYMOR,1,%PIPN
IFN ITS+SAIL,[
	MKAT1 ↑Q-MACRO,SUBR,[ ]CTRLQ,0,%PIPN
 	MKAT1 ↑S-MACRO,SUBR,[ ]CTRLS,0,%PIPN
]	;END OF IFN ITS+SAIL

	MKAT1 *RSET-BREAK,SUBR,[ ]CB,1,%PIPN
IRP X,,[UDF,UBV,WTA,UGT,WNA,GCL,FAC]
	MKAT1 X-BREAK,SUBR,[ ]X!B,1,%PIPN
TERMIN

  	MKAT1 PDL-BREAK,SUBR,[ ]PDLB,1,%PIPN
  	MKAT1 GCO-BREAK,SUBR,[ ]GCOB,1,%PIPN
	MKAT1 AUTOLOAD,SUBR,[ ]IALB,1,%PIPN

	MKAT1 CHAR-N,SUBR,,%ISC.N,2,%PIPN
	MKAT1 RPLACHAR-N,SUBR,,%ISR.N,3,%PIPN
	MKAT1 STRING-WORD-N,SUBR,,%ISW.N,2,%PIPN
	MKAT1 SET-STRING-WORD-N,SUBR,,%ISSW.N,3,%PIPN


;;; NOTE WELL! the symbol headers for
;;; 		LIST, FIXNUM, FLONUM, DOUBLE, COMPLEX, DUPLEX, BIGNUM,
;;;		SYMBOL, <HUNKS>, RANDOM, ARRAY
;;;   must be allocated sequentially, in that order. [Note also that this
;;;   constraint overlaps the next constraint too.]  This is so that
;;;   certain routines, notably EVAL, may quickly dispatch thru a table
;;;   of routines, indexed by the sequence number Of TYPEP of a form.

COMMENT # QLIST: QFIXNUM: QFLONUM: QDOUBLE: QCOMPLEX: QDUPLEX:
	  QBIGNUM: ASYMBOL: QHUNK0: ... QHUNKn:  QRANDOM: QARRAY: #
  		MKAT LIST,LSUBR,[ ]
		RMTAH1 [ ]FIXNUM,,M,,,%FIXN
		RMTAH1 [ ]FLONUM,,M,,,%FLON
DB$		MRA DOUBLE
CX$		MRA COMPLEX
DX$		MRA DUPLEX
BG$		MRA BIGNUM
  		MRA SYMBOL
IFN HNKDOG,[
    IRP X,,[0,1,2,3,4,5,6,7,8,9]SZ,,[2,4,8,16,32,64,128,256,512,1024]
	    MSA HUNK!X,HUNK!SZ
	    IFE .IRPCNT-HNKLOG, .ISTOP
    TERMIN
]	;END OF IFN HNKLOG
  		MKAT RANDOM,LSUBR,[ ]01

;;; NOTE WELL! the symbol headers for
;;; 		ARRAY, SUBR, FSUBR, LSUBR, EXPR, FEXPR, MACRO, AUTOLOAD
;;;   must be allocated sequentially, in that order. [Nas the next constraint too.]
;;;   This is so that certain routines, notably EVAL and APPLY and UUO-handler,
;;;   may quickly determine whether a given property is a functional property.

  		MKAT ARRAY,FSUBR,[ ]
		MKAT SUBR,SUBR,[ ]1
	IRP A,,[FSUBR,LSUBR,EXPR,FEXPR]
		MRA A
	TERMIN
		MKAL MACRO,DM,MACRO

;;; NOTE WELL! the symbol headers for
;;; 		AUTOLOAD, ERRSET, *RSET-TRAP, 
;;; 		GC-DAEMON, GC-OVERFLOW, PDL-OVERFLOW
;;;   must be allocated sequentially, in that order -- .see uint90
;;;   [Note also that this  constraint overlaps the preceeding constraint too.]
;;;   This is so that the interrupt handler may have an easier time(?)

		MKAV AUTOLOAD,VAUTFN,QIALB,AUTOLOAD
		MKFV ERRSET,ERRSET,FSUBR
		MKAV *RSET-TRAP,V.TRAP,QCB,.R.TP
		MKAV GC-DAEMON,VGCDAEMON
		MKAV GC-OVERFLOW,VGCO,QGCOB,GCO
		MKAV PDL-OVERFLOW,VPDL,QPDLB,PDL

MRA [VALUE,LAMBDA,DSK,SYM,SPLICING,SINGLE,EVALARG,BPS,SPECIAL]

	MKAV [TTYSCAN-STRINGERS|]VTSCSR,ITSCSR,TSCSR
ITSCSR:	.+1,,.+2
	IN0+73,,IN0+15		;(#/; . #\CR)
	.+1,,.+2
	IN0+174,,IN0+174	;(#/| . #/|)
	.+1,,NIL
	IN0+42,,IN0+42		;(#/" . #/")

RMTAH1 [ ]%ISM,,STRING-MARKER,,,%PIPN
RMTAH1 [ ]$COMPLR,,COMPLR
;; see PLLISP in writeable free storage
RMTAH1 [ ]LISP,PLLISP,LISP,,SUNBOUND
	MRA [FASL,JCL,DDT]
	MSA %GLOBALSYM,GLOBALSYM
	MRA [LABEL,FUNARG]
SA$	MRA [MAC]
10$ 	MRA [LSP]
IFN SAIL,[
IPPN1==QMAC
IPPN2==QLSP
;see previous definitions of IPPNi for other systems
]	;END OF IFN SAIL


;Don't change order from here to &RESTV, must be consecutive with &OPTIONAL
;first and &RESTV last for DEFUN to work.

	IRP PN,,[WHOLE,OPTIONAL,REST,AUX]
		MSA %!PN,&!PN
	TERMIN
		MSA %RSTL,&RESTL
		MSA %RSTV,&RESTV

;;; NOTE WELL! the symbol headers for
;;; 		REGPDL, FLPDL, FXPDL, SPECPDL
;;;   must be allocated sequentially, in that order.  This is so that
;;;   status routines, and pdl-overflow routines may "index" off the kind
;;;   of pdl being talked about.

		MRA [REGPDL,FLPDL,FXPDL,SPECPDL]


;;; NEED COPIES OF DOUBLE, COMPLEX, DUPLEX, BIGNUM EVEN IF TYPES NOT IMPLEMENTED
.SEE LDATER
DB%		MRA DOUBLE
CX%		MRA COMPLEX
DX%		MRA DUPLEX
BG%		MRA BIGNUM
HN%		MRA HUNK

PG$		MRA PAGING
		MRA PPN
20$ 		MRA PS
IFN ITS,[
		MRA [ITS,AI,ML,MC,DM]
		MRA EXPERIMENTAL
		MRA .LISP.
]	;END OF IFN ITS
IFN D20,[
		MRA DEC20
		MSA TOPS20,TOPS-20
		MRA TENEX
]	;END OF IFN D20
IFN D10,[
		MRA DEC10
HS%		MRA ONESEGMENT
    IFE SAIL,[
		MRA CMU
		MSA TOPS10,TOPS-10
    ]		;END OF IFE SAIL
]	;END OF IFN D10
IFN USELESS,	MRA ROMAN
		MRA SAIL
IFN JOBQIO,	MRA JOB
		MRA [FILE,ECHO,CLA,IMAGE,BLOCK,NEWIO,OUTPUT,SCROLL]
		MRA [MACLISP,PDP10]
		MSA RDEOF,READ-EOF
		MSA CN.B,[↑B]
		MSA M,[?]
		MSA ..MIS,[**MISSING-ARG**]
		MSA LA,[←]
		MSA XPRHSH,EXPR-HASH
		MRA CALLI

;;; NOTE GELL! the symbol headers for
;;9 		OD@	 X↓%β_0A	!='∪(X↓1β≠%≥
~∀lrv@@↓[kgh↓EJAC1Y←GCQKHAg∃ckK]QSCYYdXAS\↓iQCh↓←eIKHX@A)!SfASLAg↑AQQCh~(vvv@AiQJ↓[CGQ%]J[KIe←dA%]iKeIkahA!C]IY∃`A[Cd@ES]⊃KpDA=MLAi!JAWS9H~∀vlr@@A=HAS]QKeekAhAEK%]NAi¬YWKH↓CE←kPX~∀~(∩∩∩∩9'
AU∪≥(fH~∀∪≠-β(A∨⊃	 Y'U¬$Y6↓:b~∀%≠↔
,↓-β_1∨-β0Y→'+	$Y≥∪0Xbd~(∪≠↔βPA	!='∪(YM+¬$YlA:d~(∪≠↔βPA1β5∪≥
YM+¬$YlA:b~(~∀_~∃'U¬))_%β)∨≠LA
∨$↓'+¬%L~∀
∀m	+≠≠dAβ)∨4A'∞AQ⊃β(A	β↔)%¬π
A!I∪∃)&↓'∨≠Q⊃∪≥∞↓%β'=≥β¬→∀A∪≤A
%)β%≤A'πI&Aπ¬'&~(∪≠↔βPbA#≠¬%⊗Y'U¬$XYE≠β%⊗0`~∧∪5↔β(A≥εY'+	$XX`4∀∪≠↔¬(bAt92NV∃⊃12∞%∩2≥1h(4(hP4)m[Yα:>$)α↑⊗da¬βSF)βOgn∪?1βF+π&↑.2ε6}!PS[70HKL≥FbπMRε≡≡,6'∩jVv∨M≥vw≠aQ#K[4∧αεo↑>Bε⊗T⊗ff|<↔&.D∞6/∂\Yg&N≥MGJb
≥bπ&Tε␈⊗LZ"π≡
}vrε,YF␈;4∧$
$ εo/>@ε⊗(Q'3KZ∧∧π&FTλfO↔5Dε∞vD∧$≤$HHE∩∩∞Mε*εL≡7"b∞⎇↔&B
H⊗⊗.N4ε6←$λ↔"εL\↔∨"\⊗≡B
|bπ&Z6(h'73Jα∧∞G>zd∧¬&F≡4εO~∞9rπ&≡Bπ&Tα\LjHU∀t→ET≤
(8E∃αjVv∨M≥vrε\∨∩ε&↑LW⊗N≥lRh'73Jα∧∞vF/MW∩π=yV/&
≥f:ε≡4ε
ε<≡&≡'$	wε/,≡FN}d'Jε≤LG⊗/>4ε≡}↑↔⊗O=ybph!Q$l\jd∧≤
%H4
∩J:T∃∩EF⊂hTY8e2∧8J"d≤J%E≥,*%BcλQ)∃∃αλ∃Be\8_∃∩d8_E∩d8H∃∩d8HE∩d8_∀
∩H8∀%%H4$~%D81⊃∀EHq⊂0*%⊂q⊂(JK⊂qλH4K⊂hH⊃∀C!(p00(~K⊂p(_1∀Kλ_01⊂*%⊂p0(Hα)⊗!Pb `i!`b Q)⊗!`Q  iε⊂βADDDR,CDAAAR,CDAADR,CDADAR¬
CDADDR,CDDAAR$CDDADRCDDDAR]
	MKAT↓αQ',∩I11λh*R⊗∀j&8Q!∀l\~@∧8⊃⊃⊃
%∀q0J%⊗h↔&⊃ C"A→2p5ε∀⊂p4Hb)(⊗∀ha),,ICADRP _b0K!∪!8~∀4TJJBM∧	2
2\2&bA∧22>ε%↓αεZb~Jεl)αεJ∀2Jε6*bα&≡αb
>Vt"A2~∀zV 4J¬E∧~*hTI~5$Li∀∧t⎇EH∃$|T
EM∧Z¬D-E	It$(∪2)J4t
	∃0t¬IU30HZTλ⊗HZSt	→U⊃4Ie∪⊂4jA"TQ*H4Tq%ITQ5HZTq+
(01∪	~u∪(→sP3%I⊃3QjI	⊂0J5∪23JZk⊂1λF+∀u(&+⊃S	X5β"Hi⊂5∀i≠Q(⊃IH5⊂hλ~Qh⊂izk∀t**∪∪hu⊃6∀¬Jv∩⊂*9λ∪Si→U⊃4J*4∃
(33pEJv4t↓QS02jYPSu)h∩3*	∪q⊃%I53Rh→+∪0)9U3+	λ53∪ihk∀∪	~uλ∀k→11P)E∀∃4HZβ"Uj)5⊃0()⊃4↔!QB32h~λ⊂+
:0TK8w,#!*⊃4S)→C"C!)2p5ε∀∀Q5
ZSK∀jXTK⊗d4Q5
ZSK!QC"Ng7h∪SjH(∃q)Iλ(≥
(≤}-\[{λ
89→..h→[n!"Nng4α"4JYU∩3(Uλ∃∩)X#"Ng7hλλ
↑<⎇λ,(_;
Mxx=\λ≤y.≡9;]
≤;≠≡%D~;H∞M_=λ
}Y→<Edλ∃~
≡h~<d∞{h≥
=β"G7nhλ∧∞~→(≥_<[,=≠xzd];XnM;{H
\>(λM≥Y→>∧$≠yYD∞~→(
=;Yλ
|H_;≡[(≤L↑=:<L\C"AQB32h~(∀JYU∩3(U∀u0J%⊗h↔$JU3U	→1+↓QB32h~(∃	→1+∀jXTK⊗d)∃∩)X+β!!"R4J
h⊂+λ5⊗qR+¬∩1R+¬⊃6∀	Iq⊃0d	U3∪¬H4pr)∀⊂3∪	xk∪PiyTk∀iH14
93W#!!32p*F(⊂+
:0TK8w)λ(∃#"JH4S2)a"R4J
h⊂+λ5⊗v⊂iyTh⊃hZ⊂r⊂*)K⊃q*D∀∪QhZ↔#"A→2p5ε∀⊂+∀jXTK⊗h;)λ0%FC"UλZS23AQC"S)8UH∀
ZPst∃∀∃4H9t⊗+
:0TK	i3!QS2qJd∀∃5

St

5∀∀Iz∀u(*K∀∀h*SaQS2p*F(∀∃*)1V+
:0TK¬D∀∃4I_V+aQS2p*F(∀v)XSs∀¬Ju0TEE	4v)XSs∀¬F#"S)85(λ[∀∪∪hH3K∀jXTK⊗d)	⊃+
∪∪qλYK#!)2p5ε∀⊃∩3*5∀u0J%⊂1	→4k%D04TK⊃"S2h~((I313J93sK)e∀u0J%⊂1	→3KED04TK⊃"S2h~(⊗eTk1∩)Zw4u(*K⊂)h∩3+ε∃	04J+#"S)85(¬Z⊗4⊃%Ju0TEE⊂4TJK4%D04TK⊃"S2h~(⊗eXq3∪¬Y∪pp*I3sW*:0TK¬JP3∪	xk+∧ZP3∃$↓"C"I~T∀hλ∃⊂k⊗j:0S∩*4∀Q3*
Stλ
85∀J	⊂0p%JT∪⊂(8∪U	¬∪U∩λ8∀K⊃	~t∪⊂(8+β"HZ+⊃THZ∃4SEHTQ5
++⊃6

∪1)Z+∀q*H4Qh	X30Q*%⊃45(→λ⊃q*I⊂4j9pk⊂*:t+β!*Q30)→Q⊃4EH5⊂3EJp31*	P31*∧⊂3∀	λ3⊃4j:λ⊃q*Hr⊂4EHst⊗*;30SiE∀∪T
Zβ"Hi3∪⊂**P6(	jQ0sihk∀q*J∪∩4jK#"B)Yp5λλ∃∀u0J%⊗pw&!"U⊃*)23C!!"@↓A"B3)85(¬(TQ0)5∀u0J%	⊂J(02kε!"B3)85(¬*∩∀Sju∀u0J%U	
Sukε!"C"AQR1SD	∪Rs	xk⊗c!!32p*D⊂v∀EJu0TEKh↔,AQB32hjH∪0)9∃3ReI02r
YRk∀jXTK∃
*5∩ε⊃"B3)8UH∩
YRt	
3Rt¬Ju0TEJ∀U5	¬#"A→2p5∧	∃3Rj96Q+
:0TK¬F#"B)Yp5λ	
3Rk	Ju0TEKh↔#!!32p*D∀T∪λ_v∀jXTKε1"W"!↔q3Q∧	qH∩(iH∩∪I9∪qc!!"C"I_SH∃*83⊃4j5⊗c"A→2p5ε∀⊗w↔Zu0TEEQphEC"I~T∀hλ∃⊂k⊗j(0s⊂)→+∩⊂)~⊂4U¬Hpq↔!Q@32h~λ⊂+
:0TKanYεB*"i&RgαE.CEεE$T(⊂ V-f)d)'j⊗⊃)aV Td.FEαfe`jP V)Ua)⊗⊗	⊂`V→βE*"i∪dgεEβE$i(λ V⊗-S'`b⊗P,j"V⊃ h'iRj⊂
BYTE,LDB,DPB]B,,[LOADB,DEPOB,LDB,DPB]A(,[3,4,2BR,,$!B,C
	MKAT1 *!A,SUBR,,%!B,C
TERMIN

	MKAT1 ↑,SUBR,,XPTII,2
	MKAT1 ↑$,SUBR,,XPTI$,2

	MKAT1 M-IDENTITY,SUBR,,FXIDEN,1,%FIXN
	MKAT1 M-IDENTITY,SUBR,,FLIDEN,1,%FLON

IRPS A,,[DIF,QUO]
	MKAT1 [*A]SUBR,,.!A,2
TERMIN

IRP A,,[1+,1-]B,,[ADD1,SUB1]
	IRP C,,[$,]D,,[$,I]
		MKAT1 [A!!C]SUBR,,[D!!B]1
	TERMIN
TERMIN


IRP A,,[>,<]B,,[GREAT,LESS]
	MKAT1 A,SUBR,[ ]$!B,2
TERMIN

MKAT1 =,SUBR,,$EQUAL,2
MKAT1 [\]SUBR,,REMAINDER,2

IRPS A,C,[SASSOC,SASSQ,SUBST SETSYNTAX]
	MKAT A,SUBR,[C]3
TERMIN

PG$ MKAT1 LH|,SUBR,,LHVBAR,2

SUBTTL	ATOMS FOR FSUBRS AND LSUBRS

IRPS A,C,[COND PROG QUOTE DO DECLARE PROGV,
DEFPROP BREAK GO ,
SETQ ERR SIGNP STORE STATUS SSTATUS FUNCTION CASEQ]
	MKAT A,FSUBR,[C]
TERMIN

	MKAT1 PUSH,FSUBR,[ ]$PUSH
	MKAT1 POP,FSUBR,[ ]$POP

	MKFV DEFUN,DEFUN,FSUBR,NIL
	MKAT1 COMMENT,FSUBR,[ ]$COMMENT
	MKAT1 UNWIND-PROTECT,FSUBR,[ ]UNWINP
	MKAT1 *CATCH,FSUBR,[ ].CATCH
	MKAT1 CATCHALL,FSUBR,,CATCHALL
	MKAT1 CATCH-BARRIER,FSUBR,,CATCHB
	MKAT1 AND,FSUBR,,$AND
	MKAT1 OR,FSUBR,,$OR
	MKAT1 EVAL-WHEN,FSUBR,[ ]EWHEN
	MKAT1 *FUNCTION,FSUBR,[ ]%%FUNCTION

;;; MUST HAVE (MAPLIST,MAPCAR,MAP,MAPC,MAPCON,MAPCAN) IN THAT ORDER
	MKAT MAPLIST,LSUBR,[ ]2777
	MKAT MAPCAR,LSUBR,[ ]2777
	MKAT1 MAP,LSUBR,[ ]$MAP,2777
	MKAT MAPC,LSUBR,[ ]2777
	MKAT MAPCON,LSUBR,[ ]2777
	MKAT1 MAPCAN,LSUBR,[ ]$MAPCAN,2777

	MKAT PROG1,LSUBR,[ ]1777
	MKAT PROG2,LSUBR,[ ]2777
	MKAT PROGN,LSUBR,[ ]
	MKAT BOOLE,LSUBR,,2777

IRPS A,C,[DELQ DELETE APPLY DELASSQ]
	MKAT A,LSUBR,[C]23
TERMIN

IT$	MKAT SYSCALL,LSUBR,[ ]2777
	MKAT1 LIST*,LSUBR,[ ]LIST.,1777
	MKAT1 MAKE-LIST,SUBR,[ ]MAKLST,1
	MKAT1 CONS,SUBR,,$C2NS,2
	MKAT FUNCALL,LSUBR,[ ]1777
	MKAT1 LEXPR-FUNCALL,LSUBR,[ ]%LXFC,2777
	MKAT1 ARRAYCALL,FSUBR,[ ]%ARRAYCALL
	MKAT SUBRCALL,FSUBR,[ ]
	MKAT1 LSUBRCALL,FSUBR,[ ]%LSUBRCALL

IRPS A,C,[VALRET BAKTRACE BAKLIST GENSYM ]
	MKAT A,LSUBR,[C]01
TERMIN

	MKAT SUSPEND,LSUBR,[ ]02
IFN USELESS,	MKAT CURSORPOS,LSUBR,[ ]03
	MKAT QUIT,LSUBR,[ ]01
	MKAT1 ERROR,LSUBR,[ ]$ERROR,03
	MKAT GETSP,LSUBR,[ ]12
	MKAT MAPATOMS,LSUBR,[ ]12

IRPS A,C,[NCONC PLUS,TIMES,DIFFERENCE,QUOTIENT,APPEND ]
	MKAT A,LSUBR,[C]
TERMIN


;;; MUST HAVE (MAX,GREATERP,MIN,LESSP) IN THAT ORDER
	MKAT MAX,LSUBR,[ ]1777
	MKAT GREATERP,LSUBR,[ ]2777
	MKAT MIN,LSUBR,[ ]1777
	MKAT LESSP,LSUBR,[ ]2777

;;; IN THE FOLLOWING, NOTE THAT +, -, *, AND / GET VALUE CELLS

IRP A,,[+,-,*,/]B,,[PLUS,DIFFERENCE,TIMES,QUOTIENT]
	MKFV [A]I!B,LSUBR,QI!B
TERMIN

IRP A,,[+,-,*,/]B,,[PLUS,DIFFERENCE,TIMES,QUOTIENT]
	MKAT1 [A!$]LSUBR,,[$!B]
TERMIN


	MKAT1 *REARRAY,LSUBR,[ ].REARRAY,17
	MKAT1 *ARRAY,LSUBR,[ ]%%ARRAY,27
	MKAT LISTARRAY,LSUBR,[ ]12



SUBTTL	ATOMS FOR LAP, FASLAP, AND FASLOAD USAGE

;;; SUBROUTINES USED BY COMPILER OUTPUT - ERGO, NEEDED BY LAP
;;; AND FASLOAD. ALSO OTHER GOODIES FOR LAP AND FASLAP.

IRP A,,[DELQ,DELETE,APPEND,TIMES,GREAT,LESS,PLUS,NCONC,APPLY]
	MKAT1 *A,SUBR,[ ].!A,2
TERMIN
IRP A,,[PRINT,PRIN1,PRINC,TERPRI,TYO]B,,[PRT,PR1,PRC,TRP,TYO]C,,[1,1,1,0,1]
	MKAT1 *!A,SEBR,[ ]B!$,C
TERMIN

IRP A,,[READ,READCH,TYI]B,,[READ,RDCH,TYI]C,,[0,0,0]
	MKAT1 *!A,SUBR,[ ]B!$,C
TERMIN
	MKAT1 *EVAL,SUBR,,EVAL,1
	MKAV PURE,VPURE,IN1*PAGING	;INIT TO NIL OR 1 (IF PAGING SYS)
  	MKAV *PURE,V.PURE
	MKAV PURCLOBRL
	MKAT1 FASLAPSETUP|,SUBR,,FSLSTP,1
	MKFV LAPSETUP|,LAPSETUP,SUBR,,2¬
	MKAT PAGEBPORGSUBR,XεA:`4∀∪≠↔→(	αR%~Kq2%"NI2≥*
I1cλ4(&lZεQα<*R∩∩%~f52≥*
I2ZαuD4PJ6.ε"αBVR$"RNfhbNV
∩a1H4PJ6.~2α≡∞B∀zR⊗∞"b≡∞B∀y2NV∃⊃11HhP&6.
1αNfl∩> %5Jb%≥→X$|e5EB%≥→X$|E1Q Ll8jb∧∀~9DlEHd
≤Ix∀"dj:T¬∩J8%∀`Q!∀l\~d∧L\j5E4∀Y	∃$5Yh5$Lyj2bbDXd-DaQ Ll8~b¬\→ye~lHXd
,JKU44[λD,4~YE"bEDT4-λaPP`h*:T∃%ID∧
$yZ2∧4z$∧
-IyDlDλd,
JZ$-_Q!PPLZ(∩¬]hZ%≤LykPhPβ"B)ZP(⊗j:∀R3H{#"B)Yp3λ	X2q+*:∀R3Hu∀qβ¬F,C"A→2p3∧
u∀R)Hk4∪J
5∀jEC!!32p)D
NQI≠∪P
fKj'VaR i aU"i⊗)U⊗⊗_FBεA∧fR`f⊂)Ua)bhK)a⊗)Ua)bhK_YFEαfe`fλ)"`&⊂abV)P⊗⊗→~CE	IRP A,,[HIST,VECTOR,STRING,@¬∪)'t~∀α@@A≠↔¬_A)≡4CαY'λX])≡8CαXbL~∀∪)∃%≠∪≤4∀~∀∪5%αA↔M⊃β%!5:~∀∪5↔β_A⊃
'⊃¬% Y' ~∀&lZε1αZ→6&ε≥∩>vNBbJ∩NE↓1A⊃-α&B8hP&6.aαN⊗%~f:R
A6N"
∩A66~J=2≤A11M h(&6\
Yαm~j6ε∞∀y6∩ε$
2&N%jY⊗6$a2:&`h(4(LjJ¬α\∩ε∞.
h4(&lZεYα∀
∞.F,zR∃6-BBε:"j↑"⊗rbY⊗
-92F>-2ε04PJ6.εbαg↓7,ππε∞lLW↔eX*⊂hP→Y4b<αnn≤>&␈eX*∩dJX T2c¬DU∧M	aPPLY8∀b¬5EVn∞>-weL*∃DJ,4Xbcαβ	4	~⊃C"AQ@24J∧⊂+9⊃5β	H5
KλH4q5
≠0K9⊃5β	H5CλH4q5
≠!"B$∧λλ∪)83λ⊂%I⊃+⊂AQ@∧P⊂λ⊂"e`S⊂-`@Kbl( S "iεLnf&@,,1¬
	TERMIL∧∩∀~(∪≠↔β0A'	_Y'YM)~(∪≠'α↓')]`Y7'Q[1~4⊂∪≠↔¬_A'Q[0YMY∪'Q
0Xd0K!∪!8~∀&lZε1α¬*N!6@bN→2MαVa1∩a⊗B&∧p4(→Y4B
	uαm¬J42d~	uBc%DU∧M	aPPh!Q M∀XH∀C
0λT⊃⊃S+¬⊗¬E	1⊃(i".nd	4p(∧H⊃S6¬H⊃1S(≠β"B)Yp5H	X0pSeX6∀⊂)jp3sEZ4q+
d315%J)36
λβ"B)Yp3∃Dλ⊃1	[	3+
⊃¬D36∀	a"B3)83λ⊗lm|Yy.E;88n-{9;-}␈↔3+¬#!!32p)D⊗qS
Zr3(_tSs(Y3tw)[	AQB32h→λ∪0(:SqQ*Hr∪+¬#!!32p)JH∪0(:Ss1)Yk∪6¬D30s)uc"A→2p3∧λ∪6¬E+	)[∀∪C!!32p)D⊃,%I6ε∃	36
	C"B)Yp3λλE,*K	[%D36∀	a"B3)83λ⊃¬V*S+	[∪6ε∃S+%D36∀	a"B3)83λ⊗jJV+0*Z∪s∪h_∀↔3+¬+∧Z∩4∪AQC"B)Yp3λλ:Sk⊃	U⊃⊃1IX+	(H1S#!!32p)D⊂tSeX∩4t	H0q+λI+∧X⊃1S!QB32h→λ⊗y\[88n-k,?X∪+⊃λi+L+ε!"B3)85H⊂j)k0rλXrk0*(tk∃DX⊂p+
JU5∩¬E	1⊃(i#"B)Yp5Hλ:Sk1	~t∪⊂(8+0p)I∃I(H⊂k∃
*5∩¬D1⊃1IQ"B3)85H⊂j)k1Sj%0ss*	3∩3Hu∃I1λhk∃∀JZ∩∧X⊃1S!QB32h→∃H⊗hH1U3Dk1∪+∧X⊃1U)a"B3)83∃H4\K;∂K1∪+∧ZKSε5∀53H)u3Q↓QNnnd↓32p)D∪00j)k⊃∪%I00tItλα.g7h∪SjH(∃∩λ~λ∃∩	~h∪5*:λ⊂Q$∧P0Sjh(C"AQ@
	MRA [MACAID]
	MKAL FLATTEN-SYMS,MA,,2
	MKALV [carcdrp|]MA,%%CRP,1,TRUTH
	MKAL [no-funp|]MA,,1
	MKAL DUP-P,MA,,1,%PIPN
	MKAL [side-effectsp|]MA,,1 
	MKAL [constant-p|]MA,,1
	MKAL DEFSIMPLEMAC,MA
	MKAL DEFCOMPLRMAC,MA
	MKAL DAFBOTHMACRO,MA
	MKAL SYMBOLCONC,MA,,1777

	MRA [MLMAC]
	MKAL HERALD,MM
	MKAL IF,MM
	MKAL SETQ-IF-UNBOUND,MM
	MKAL SELECTQ,MM
	MKAL CATCH,MM,CATCH
	MKAL THROW,MM,THROW
	MKAL DEFVAR,MM
	MKAL DEFCONST,MM
	MKAL PSETQ,MM
	MKAL MULTIPLE-VALUE,MM
	MKAL S,MM,,,%VALU
	MKAL LIST,MM,,,%MTPL
	MKAL BIND,MM,,,%MTPL
	MKAL WITH-INTERRUPTS,MM
↓MKAL WITHOUT-INTERRUPTS,MM
	MKAL WITHOUT-TTY-INTERRUPTS,MM

	MRA [MLSUB]
	MKAL LISTP,MS,,1
	MKAL LIST|,MS,,1,%MTPL
	MKAL S-LIST,MS,,1,%VALU
	MKAL [ECK-MULTIPLICITIES]MS,,1,%SICH
	MKAL <=,MS,,2777
	MKAL >=,MS,,2777

	MKAL LOGAND,MS
	MKAL LOGIOR,MS
	MKAL LOGXOR,MS
	MKAL LOGNOT,MS
	MKAL MP,MS,,1,%FIXN
	MKAL MP,MS,,1,%FLON
	MKAL EVENP,MS

	MKAL SEND,EX,SEND,2777
	MKAL CLASSP,EX,,1
	MKAL CLASS-OF,EX,,1
	MKAL TENDP$EX,,1,%SIEX
	MKAL EXTEJDP,EX,,1
¬

	MRA [EXTBAS]
	MKAL SI:MAKE-EXTEND,EB,,2
	MKAL TEND,EB,,1777,%SIEX
	MKAL SI:XREF,EB,,2
	MKAL SI:XSET,EB,,3
	MKAL TEJD-LENGTH,EB,,1,%SIEX

	MRA [EXTSTR]
	MKAL S*-2,ES,,45,%SIDC
	MKAL **SELF-EVAL**,ES
	MKAL **CLASS-SELF-EVAL**,EX

	MRA [EXTEND]
	MKAL PTR-TYPEP,EX,,1
	MKAL S*-1,EX,,34,%SIDC
	MKAL ADD-METHOD,EX,,3
	MKAL FIND-METHOD,EX,,2

	MKAL DESCRIBE,DS,DESCRIBE,12
	MKAL WHICH-OPERATIONS,DS,WOP,1

	MRA [YESNOP]
	MKAL Y-OR-N-P,YN
	MKAL YES-OR-NO-P,YN

	MRA [EXTMAC]
	MKAL DEFCLASS*,EM
	MKAL DEFMETHOD*,EM

	MKAL CERROR,CE,CERROR,4777
	MKAL FERROR,CE,,2777
	MKAL ERROR-RESTART,CE
	MKAL LOSSAGE,CE,,3,%PIPN

	MRA [EXTSFA]
	MKAL SFA-UNCLAIMED-MESSAGE,EA,,3

	MRA [ERRCK]
	MKAL CHECK-TYPE,EC
	MKAL [ECK-TYPER]EC,,3,%SICH
	MKAL CHECK-SUBSEQUENCE,EC
	MKAL [ECK-SUBSEQUENCER]EC,,58,%SICH


	MKAL DEFVST,DV,DEFVST

	RMTAH1 [ ]$DEFVSX,,DEFVSX
	MKAL SETVST,DX
	MKAL [t-construction|]DX,,2,%DVST
	MKAL [t-construction-1|]DX,,2,%DVST
	MKAL [t-selection-1|]DX,,1,%DVST
	MKAL [t-xref|]DX,,1,%DVST

	RMTAH1 [ ]%DEFVSY,,DEFVSY
	MKAL [t-typchk|]DY,,3,%DVST
	MKAL STRUCT-TYPEP,DY,,1
	MKAL [t-initialize|]DY,,5,%DVST


IRP A,,[GRIND,CGOLREAD,LAP,TRACE,CGOL]B,,[GI,CG,LA,TR,CG]
	MKAL A,B,A
TERMIN
	MKAL FORMAT,FT,FORMAT,2777
	MKAL GRIND0,GI
	MKALV GRINDEF,GE,GFN
	MKAL SPRINTER,GE,,1
	MKAL SPRIN1,GE,,12
	MKAL READMACROINVERSE,GE,$RMI

	MKAL GETMIDASOP,GT,GETMIDASOP,1
	MKAL SORT,SO,SORT,2
	MKAL SORTCAR,SO,,2
	MKALV EDIT,ED,$EDIT
	MKAL [LAP-A-LIST]LA
SA$	MKAT2 EREAD,ER
SA$	MKAT2 HELP,HE
IFN USELESS,[
	MKAL BLTARRAY,BL,BLTARRAY,2
	MKAL DUMPARRAYS,DP,@UMPARRAYS(2
	MKAL LOADARRAYS,DP,,1¬
]		;END OF IFN USELESS
IFN ITS,[
	MKAL ALLFILES,AL,ALLFILES,1
    IRP A,,[MAPALLFILES,DIRECDORY,MAPDIRECTORY]AR,,[2,12,23]
	MKAL A,AL,,AR
    TERMIN
]   		;END OF IFN ITS

IFN JOBQIO\D20	MKAL LEDIT,LE,LEDIT
IFN JOBQIO,[
	MKAL LISPT,LT,LISPT
	MKAL [INF-EDIT]LT
]		;END OF IFN JOBQIO
IT$ 	MRA [HUMBLE]
IT$	MKAL [CREATE-JOB]HM


	MKAL LOOP,LO,LOOP
	MKAL DEFINE-LOOP-PATH,LO

SUBTTL	ATOMS FOR ODDBALL FUNCTIONS AND VARIABLES

IFN ITS, MKFV ALARMCLOCK,ALARMCLOCK,SUBR,,2
IFE ITS,[
SA$	MKAV ALARMCLOCK
SA%	VALARM==VNIL
]	;END OF IFE ITS

;FOLLOWING SYMBOLS MUST BE IN THIS ORDER, JUST AFTER ALARMCLOCK -- .SEE UINT90
IFN USELESS,[	
    IFN ITS,[	
		MKAV CLI-MESSAGE,VCLI,,CLI
		MKAV MAR-BREAK,VMAR,,MAR
		MKAV TTY-RETURN,VTTR,,TTR
		MKAV SYS-DEATH,VSYSD,,SYSD
	]	    ;END OF IFN ITS
    IFN SAIL,[
     	REPEAT UIFSMI-1, 0
    	MKAV SI:SAIL-MAIL-SERVICE,V.SMS
    ]	    ;END OF IFN SAIL
]		;END OF IFN USELESS


	MKFV NOUUO,NOUUO,SUBR,,1
	MKFV NORET,NORET,SUBR,,1
	MKFV EVALHOOK,EVALHOOK,LSUBR,,23
	MKFV EVAL-*-PRINT,TLPRINT,SUBR,,1,%READ
	MKFV EVAL-PRINT-*,TLTERPRI,SUBR,,0,%READ
	MKFV *-READ-EVAL-PRINT,$TLREAD,SUBR,,0
	MKFV *-EVAL-PRINT,TLEVAL,SUBR,,1,%READ
	MKFV GCTWA,GCTWA,FSUBR
	MKFV ARGS,ARGS,LSUBR,,12
	MKFV *RSET,.RSET,SUBR,TRUTH,1
	MKFV *NOPOINT,.NOPOINT,SUBR,,1

	MKFV OBARRAY,OBARRAY,ARRAY,OBARRAY
	MKFV READTABLE,READTABLE,ARRAY,READTABLE

	MKAV ERROR-BREAK-ENVIRONMENT,VE.B.E,IGSBV

	MKAV *:TRUTH,VT.ITY,TRUTH
	MKAT1 [STR:ARRAY]ARRAY,,STR%AR

SUBTTL	ATOMS FOR NEWIO FUNCTIONS AND VARIABLES

IRPS A,C,[NAMELIST NAMESTRING SHORTNAMESTRING,TRUENAME INPUSH,PROBEF LOAD FILEP]
	MKAT A,SUBR,[C]1
TERMIN

	MKFV DEFAULTF,DEFAULTF,SUBR,,1
	MRA NODEFAULT
	MKAT1 FORCE-OUTPUT,SUBR,[ ]FORCE(1
	MKAT1 CLEAR-OUTPUT,SUBR,[ ]CLROUT,1
	MKAT1 CLEAR-INPUT,SUBR,[ ]CLRIN,1

IRPS A,C,[CLOSE DELETEF IN FASLP ]
	MKAT1 A,SUBR,[C]$!A,1
TERMIN

	MKAT1 +TYI,SUBR,,PTYI,1
	MKAT1 +TYO,SUBR,,PTYO,2
	MKAT1 UNTYI,SUBR,[ ]UNTYI,2
	MKAT1 MPEN,LSUBR,[ ]$OPEN,02¬
SA$	MKAT1 EOPEN,LSUBR,[ ]$EKPEN,04
	MKAT1 OUT,SUBR,[ ]$OUT,2
↓MKAT1 INCLUDEF,SUBR,,.INCLU,1
	MKAT1 RENAMEF,SUBR,[ ]$RENAMEF,2¬
	MKAT CNAMEF,SUBR,[ ]2
	MKAT MERGEF,SUBR,,2
	MKAT1 @→9∂!⊃1'#¬$10
αu$b⊗*≡$B→1DhP&6.
!EαI~5$,eIE≥*!E@4↔)∪	~u⊃3EF#"AQR1SD
qP+1"B3*((∀qH⊃"B3)85(
8P+0j(05⊃%Ju0TEE∀u⊂j(0+aQB32h~(∀hh+0p)I∀u(*K∀jHp3∪¬Fc"B)Yp5$
qP4¬Ju0TEE∀u∀
(1!QB32h~(∀hh+1q*E∀u0J%∀uλx5AQ@32h~(∀hh+4u	ZQ+∀jXTK
:∀q∪j%c"A→4P(
	P31!⊃(λ∞il99→,D_<h∞?98[mM8h≠L≥9(→M}H	t	h31)d∞{≠⎇↓Q@(∞d	⎇~→.$≤};,-{~0d∞{≠⎇∞∀_<Y$∧t∪∩*:	kλ∧xU3PjI3sIeD	ur	_p3jλ4P5	→qTieA"B(π4λ⊂3HD	v⊂iyTikD∧_8⎇∞\;≠≡%D	⎇z
≤z;n<X=
≥{\id
<h_l≤z→9∧
{H≥
(≤≠
≡⎇C!!.s4h∀∃st¬Jr∩0i¬3t⊃*(5∩3iJh∞y
⎇Y(→M}H⊃6
H3Qλ≤[⎇Y!QB34H∀⊃R3λY3q⊃!QB.s*((⊃∃_qsTd↓ (λπ9[h∪
⎇Yy4D
Y91\λ ∞↑y(	kλssTdt≤{∪nD~;\nL89λ↓Q@∧fi⊂P-b*⊗ia`g**,dS*⊗**⊗idm"K**,j⊗h"V'Th"bb& g&Sb.FE↔DD]bS ⊂$c∪⊂)c CE

λIRPS A,C,YCRUNIP$UKIL@_YU
∪→
↓+π2⎇~∃"V
αB⊗: bVBJ|∩∃2→h4e,H[PhP→Y4
"λ∃D5≥X*"e\;QPU$X)TLpβ"B)YqUH
ZQ01¬J4Q0(E⊃Tu(*@εE∧Sec+⊂∃ii$j⊃T*ci∩h"V#∀ja)εBεAεE∩i()P⊂V⊗-dS#$f"K$g)j⊂aeV'Uj#$f⊃iR"aR'c$f⊃inaV-j)*U$⊗⊗⊗↔FE∧fR`k⊂ K⊗!FE∃"i&dSεE∧fR`k⊂&Tcc$f⊃iV⊗(U&$ij&icc∩f"iFBεE∧fRc+⊂*⊗dV∩j⊗dV&)Ua)⊗*∃,dc K_→εEαfe`jP)"`Q& g"K&)ba∀⊗-P.Ii"`b∪$g"V→
	MKATTYIPEEK →→M+¬$YlA:`@_h $λLj.~Y¬"f=DZELzβ∪∀jXTK∃
K3qP%F,C"A→2p5ε∀∀⊂	$S*∩&)Ua)⊗-H,R`⊂RIH
(X[:PRINT-SELF]
	MKFV PRIN1,%PR1,LSUBR,,12
	MKAT1 PRINC,LSUBR,[ ]%PRC,12
	MKAT1 [PRINT-OBJECT]LSUBR,[ ]%PRO,45
	MKAT1 [FLATSIZE-OBJECT]LSUBR,[ ]%FLO,45
	MKFV TERPRI,%TERPRI,LSUBR,TRUTH,01
	MKFV READ,OREAD,LSUBR,,02
	MKAT1 READCH,LSUBR,[ ]$READCH,02

IRPS A,C,[ENDPAGEFN EOFFN PAGEL CHARPOS LINENUM PAGENUM LINEL RUBOUT FILEPOS ERRPRINT ]
	MKAT A,LSUBR,[C]12
TERMIN

SUBTTL	ATOMS FOR VARIABLES AND USER INTERRUPT BREAKS
¬
;;; TTYOPN WILL INIT VLINEL TO THE RIGHT THINGS.
;;; FOR NON-BIBOP, NOTE THAT LINEL AND CHRCT POINT INTO THE
;;; (UNRELOCATED!) INUM AREA DURING ALLOC. THEY WILL THUS
;;; HAVE THE RIGHT VALUES BUT THE WRONG TYPE (I.E. TYPEP
;;; OF THEM WOULD LOSE.) THUS PRINT ETC* SHOULD NOT CHECK
;;; TYPEP OF THESE THINGS. ALLOC REHACKS THEIR VALUES AFTERWARDS.
;;; CHRCT IS INITIALLY 777 SO ALLOC WON'T GENERATE CR'S.

COMMENT | VBPORG: VBPEND: VERRLIST: VTTY: VZUNDERFLOW: VZFUZZ: VCHRCT: VLINEL: |

IRP A,,[BPEND,BPORG,ERRLIST,TTY,ZUNDERFLOW]C,,[VBPE1,VBP1,,,]
	MKAV A,,C,A
TERMIN
¬
SA$ 	MKAV SI:ECALLEDP,VECALL
SA$	MKAV CI:EJOBNUM,VEJOBN
BG$	MKAV ZFUZZ,,,ZFUZZ

COMMENT | VIBASE: VBASE: V%LEVEL: V%LEJGTH: TAPRED: TTYOFF: TAPWRT: SIGNAL: |

;;; FOR NON-BIBOP, ALLOC REHACKS VBASE AND VIBASE AFTERWARDS.

   MKAV IBASE,,IN10,IBASE
   MKAV BASE,,IJ10,BASE


IFN USELESS,[
	MKAV PRINLEVEL,V%LEVEL,,%LEVEL
	MKAV PRINLENCTHV%LENGTH,,%LENGTH
]		;END OF IFN USELESS

IRP A,,[↑Q,↑W,↑R,↑A]B,,[TAPRED,TTYOFF,TAPWRT,SIGNAL]
	MKAV A,B
TERMIL

    ;; MAKES THE VALUE CELL POINT TM "PWIOANT"	
	RMTAH⊃ ,,,WITHOUT-INTERRUPTS,,PWIOINT,%PIPN

	MKAV INTERRUPT-BOUND-VARIABLES,V%IBVL,NIL,,%PIPN
SA% 	MKAV [≠P]VDOLLRP,QDOLLRP,DOLLRP
SA$	MKAV [}P]VDOLLRP,QDOLLRP,DOLLRP
DOLLRP==QDOLLRP
	MKAV ↑D,GCGAGV,,CN.D

;;;  (UNDF-FNCTN, UNBND-VRBL, WRNG-TYPE-ARG,
;;;	UNSEEN-GO-TAG, WRNG-NO-ARGS, GC-LOSSAGE, FAIL-ACT,
;;;	IO-LOSSAGE) MUST BE IN DHAT ORDAR

IRP A,,[UDF,UBV,WTA,UGT,WNA,GCD,FAC]PN,,[UNDF-FNCTN,UNBND-VRBL
WRNG-TYPE-ARG,UNSEEN-GO-TAG,WRNG-NO-ARGS,GC-LOSSAGE,FAIL-ACT]
	MKAV PN,V!A,Q!A!B,A
TERMIN

	MKAV IO-LOSSAGE,VIOL,QIOLB,IOL
	MKAV COMPILER-STATE,VCOMST
	MKAV MACHINE-ERROR,VMERR,,MERR

	PGTOP ATM,[SYSTEM ATOMS AND STUFF]

;;;	************* END OF PURE LISP (NON-BIBOP) ************* 



  	PFSLAST==.	;GUARANTEED SAFE OVER SPCTOP
   10$ 	$LOSEG
  	LOC C.
  	ESYSVC==.
  	EXPUNGE C.

SUBTTL	RANDOM BINDABLE CELLS

;;; HERE ARE THINGS WHICH ARE LIKE VALUE CELLS, IN THAT SPECPDL
;;; UNBINDING MUST WORK ON THEM; BUT THEY ARE NOT NECESSARILY
;;; MARKED FROM.

LISAR:	NIL		;LAST INTERPRETIVELY-SEEN ARRAY - ASAR

TYIMAN:		$DEVICE	;WHERE TO GET CHARACTERS FROM
UNTYIMAN:	IUNTYI	;WHERE TO PUT BACK CHARACTERS TO
UNREADMAN:	.+1
		.VALUE
READPMAN:	.+1
	.VALUE


FASLP:	NIL		;FASLOADING-P?
TIRPATE:	0	;PSEUDO VALUE CELL, USED TO EXTIRPATE THE CONSEQUENT UNBINDING 
			;FOLLOWING A SETQ DONE ON NIL OR T

;;; #### MOOOBY IMPORTANT!  MUST HAVE <ADDRESS OF ARGNUM> = <ADDRESS OF ARGLOC> + 1
ARGLOC:	0		;FOR LEXPRS - LOCATION OF ARG VECTOR ON PDL
ARGNUM:	0		;HOLDS FIXNUM WHICH IS # OF ARGS FOR LEXPR IN ARGLOC


SUBTTL	BIBOP STORAGE PARAMETER CALCULATIONS

BFVCS:
INFVCS==BXVCSG-BFVCS
IFL INFVCS, WARN \-INFVCS,[=TOO MANY VALUE CELLS]
SPCTOP VC,ILS,[VALUE CELL]


LOC S.
EXPUNGE S. B.
IFL ESYMGS-1-.,	WARN \.-ESYMGS,[=TOO MANY SYMBOLS (SYMEST=]\SYMEST,[)]
SYMSYL==:.			;ADR OF LAST SYSTEM SYM
SPCTOP SYM,ILS,[SYMBOL HEADER]
IFE PAGING,[
	NXXASG==0
	NXXZSG==0
	$HISEG
]		;END OF IFE PAGING
IFN PAGING,[
	BXXASG==.
	NXXASG==<<<BXXASG+PAGSIZ-1>&PAGMSK>-BXXASG>/SEGSIZ
	BXXZSG==BXXASG+NXXASG*SEGSIZ	;TAKE UP SLACK PAGES BEFORE SY2
	NXXZSG==<BSY2SG-BXXZSG>/SEGSIZ
]		;END OF IFN PAGING


NSY2SG==<BPFXSG-BSY2SG>/SEGSIZ
SEGUP BSY2SG+NSY2SG*SEGSIZ-1
SPCTOP SY2,ILS,[PURE SYMBOL BLOCK]


LOC F.
EXPUNGE F.
IFL EPFXGS-1-HINUM-LONUM-., WARN \.+HINUM+LONUM-EPFXGS,[=TOO MANY PURE FIXNUMS (PFXEST=]\PFXEST,[)]

ZZ==EPFXGS-.
ZZZ==<ZZ-HINUM-LONUM>/2		; THEN TO THE NEXT PAGE BOUNDARY
XHINUM==HINUM+ZZZ		;DISTRIBUTE ANY SUCH EXTRA SPACE EVENLY
IFL XHINUM-777,XHINUM==777	;MANY LOSERS DEPEND ON HINUM BEING AT LEAST THIS BIG
XLONUM==ZZ-XHINUM		; BETWEEN POSITIVE AND NEGATIVE INUMS
IFL XLONUM-10,[
	WARN [XLONUM=]\XLONUM,[, YOU WILL CERTAINLY LOSE]
	.ERR INUM LOSSAGE
]
	REPEAT XLONUM, .RPCNT-XLONUM
IN0:		;HAIRY PAGE (APPROXIMATELY) OF SMALL FIXNUMS
REPEAT XHINUM, .RPCNT
IRP X,,[1,2,3,4,5,6,7,10,777]
	IN!X=IN0+X
TERMIN

INFORM [HIGHEST NLISP INUM=]\XHINUM
INFORM [LOWEST NLISP INUM=-]\XLONUM

SPCTOP PFX,ILS,[PURE FIXNUM]



LOC PFSLAST
SPCTOP PFS,ILS,[PURE LIST]
SPCBOT PFL
	;;; INITIAL ASSEMBLED PURE FLONUMS GO HERE (HA HA!)
SPCTOP PFL,ILS,[PURE FLONUM]
10$	$LOSEG

SUBTTL	INITIAL RANDOM IMPURE FREE STORAGE

IFN PAGING,[
	BXXPSG==.		;POSSIBLE SLACK PURE SEGMENT
	PAGEUP
α	NXXPSG==<.-BXXPSG>/SEGSIZ
	SPCBOT IFS
	NPURFS==<.-BPURFS>/PAGSIZ
U		;END OF IFL PAGIJG
.ELSE,	SPCBOT IFS

FIRSTW:

QXSET1:	.,,NIL		;FOR XSEPQ

	NUNMRK==.-FIRSTW		.SEE GCP6
↓IFG NUNMRK-40, WARN \NUNMRK,[=TOO MANY UNMARKABLE FS LGCATIONS]

9;; PROPERTY LIST FOR "LISP" WIT@ ITS INITAAL "PPN" PROPERTY FOR LISP SYSTEM
;;9  FILE DIRECTORY SPECAFICAITON.  In TOPS-20 world, will possibly be
;;;  reset upon each start-up
PLLISP:	QPPN %
10$ INIT1Y:	
	Q%ALD,,NIL

IT$ FEATEX:		QEXPERIMENTAL %
FEATLS:			;INITIAL LIST FOR (STATUS FEATURES)
		QMACLISP %
		QPDP10 %
IFN BIGNUM,	QBIGNUM %
		QFASLOAD %
IFN HNKLOG,	QHUNK %
		QFUNARG %
IFN USELESS,	QROMAN %
		QNEWIO %
IFN SFA,	QSFA %
10$ HS%		QONESEGMENT %
PG$		QPAGING %
;; Beware! non-ITS depends upon OPSYFT having a CDR link to SITEFT, which
;;   the code in UDIRSET may splice out.
IFE ITS,[
OPSYFT:					;Operating system type --  on TOPS
10$ SA%		QTOPS10 %		; systems, we want this info as well
20$ 		QTOPS20 %		; as "FILE-SYSTEM-TYPE"
]	;END OF IFE ITS
;"SITE"
  ;Startup puts "AI", "ML", or "MC" here on ITS systems,
  ; "TOPS-20" or "TENEX" for DEC20 style systems
  ; "TOPS-10" or "CMU" for non-SAIL DEC10 style systems
  ;But may be spliced out by UDIRSET Code.
SITEFT:		
SA$		QSAIL %
SA%		NIL %	
;FILE SYSTEM TYPE COMES LAST
FILEFT:	
IT$		QITS,,NIL
10$		QDEC10,,NIL
20$		QDEC20,,NIL



;;; FROM BPROTECT, FOR DISTANCE LPROTECT, IS PROTECTED BY THE GARBAGE COLLECTOR.
.SEE GCP6Q2

BPROTECT:
BG$		BNV1,,ARGNUM	;TO PROTECT CONTENTS OF  THESE CELLS
BG%		 NIL,,ARGNUM
TLF:		NIL		;TOP LEVEL FORM - NIL FOR STANDARD
BLF:		NIL		;ANALOGOUSLY, THE BREAK LEVEL FORM
VCTRS:	0	;() OR LIST OF SUBR ADDRESSES  [ (VECTORP VECTOR-LENGTH VREF) ]
QF1SB:		NIL		;SAVE B DURING QF1
PA3:		0		;RH = PROG BODY (I.E. CDDR OF PROG FORM)
				;LH = NEXT PROG STATEMENT
GCPSAR:		0		;POINTS TO SAR FOR HASH ARRAY FOR GC-PROTECTION LISTS
	RDLARG:	NIL		;LIST OF CHARS FOR READLIST, MAKNAM, IMPLODE

SUDIR:		NIL		;INITIAL SNAME (ITS) OR PPN (DEC-10)
FEATURES:	FEATLS

LDFNAM:		NIL		;FASLOAD FILE NAME
LDEVPRO:	NIL		;LIST OF EVALED-FROBS-IN-ATOMTABLE TO BE PROTECTED


NILPROPS:	NIL		;PROPERTY LIST FOR NIL

DEOFFN:		NIL		;DEFAULT EOF FUNCTION
DENDPAGEFN:	NIL		;DEFAULT END OF PAGE FUNCTION

UUSRHNK:	NIL		;USER-HUNK checking routine
USENDI:		NIL		;User SEND interpreter
UCALLI:		NIL		;User CALL interpreter


LPROTECT==:.-BPROTECT

Q.=:QITIMES		;ALIASES FOR THE SYMBOL *
V.=:VITIMES
.HKILL QITIMES VITIMES

IGCMKL:	DEDSAR %		;DEAD AREA AT TOP OF BPS
	IGCFX1 %
	INIIFA %		;INIT FILE ARRAY
	IGCFX2,,NIL


	OBTFS:	BLOCK KNOB+10	;FREE STORAGE FOR OBARRAY CONSAGE
	LFSALC==100
	FSALC:	BLOCK LFSALC	;FOR ALLOC
	SPCTOP IFS,ILS,[IMPURE LIST]




  	SPCBOT IFX

BG$ BNV1:	.	;TEMPORARILY RPLACED BY BNCVTM



VBP1:	BBPSSG		;INITIAL ALLOCATED VALUE FOR BPORG
VBPE1:	INIIF1-2	;INITIAL ALLOCATED VALUE FOR BPEND

IGCFX1:
PG$	<<ENDLISP+PAGSIZ-1>&PAGMSK>-EINIFA	;SIZE OF DEAD BLOCK
PG%	0					;WILL BE CALCULATED BY ALLOC
IGCFX2:	LINIFA					;SIZE OF INIT FILE ARRAY




  	LFWSALC==40
  	FWSALC:	BLOCK LFWSALC	;FOR ALLOC
  	NIFWAL==0
  	SPCTOP IFX,ILS,[IMPURE FIXNUM]

	SPCBOT IFL
	1.0	;NEED AT LEAST ONE IMPURE FLONUM SEGMENT
	SPCTOP IFL,ILS,[IMPURE FLONUM]

IFN BIGNUM,[
	SPCBOT BN
BBIGPRO:		.SEE GCP6Q3	;PROTECTED BIGNUMS
BN235:	0,,BNM23A
BNM235:	-1,,BNM23A
BNM236:	-1,,BNM23B
BNV2:	0,,BNV2A
BN.1:	0,,BN.1A
LBIGPRO==.-BBIGPRO
	SPCTOP BN,ILS,[BIGNUM]
]		;END OF IFN BIGNUM

IFE BIGNUM,[
  	BBNSG==.
  	NBNSG==0
]		;END OF IFE BIGNUM

IFN PAGING,[
	BXXBSG==.		;TAKE UP SLACK UNTIL FIRST PAGE OF BPS
	PAGEUP
	NXXBSG==<.-BXXBSG>/SEGSIZ
]		;END OF IFN PAGING



IF2 GEXPUN
BLSTIM==.MRUNT-BLSTIM
INFORM [TIME TO MAKE INITIAL STRUCT, PASS ]\.PASS,[ = ]\BLSTIM/1000.,[ SECS]