;;; FORMAT OF FASL FILES:

 THE "NEW" FASLOAD SCHEME (AS OF 1/31/73) USES A NEW FORMAT FOR
 ITS FILES. A FASL FILE CONSISTS OF TWO HEADER WORDS, FOLLOWED BY
 A SERIES OF FASL BLOCKS; THE TWO HEADER WORDS ARE BOTH SIXBIT,
 THE FIRST BEING "*FASL+" (FOR HISTORICAL REASONS, "*FASL* IS
 ALSO ACCEPTED) AND THE SECOND THE CONTENTS OF LOCATION LDFNM2 IN
 THE LISP WHICH ASSEMBLED THE FILE (A VERSION NUMBER IN SIXBIT). 
 EACH FASL BLOCK CONSISTS OF A WORD OF NINE FOUR-BIT RELOCATION
 BYTES, FOLLOWED BY NINE PIECES OF FASL DATA.  THE LENGTH OF EACH
 DATA ITEM IS DEPENDENT ON THE RELOCATION TYPE; THUS FASLBLOCKS
 ARE OF VARYING LENGTH.  THE LAST BLOCK MAY HAVE FEWER THAN NINE
 DATA ITEMS.  THE RELOCATION TYPES AND THE FORMATS OF THE
 ASSOCIATED DATA ITEMS ARE AS FOLLOWS: 

	TYPE 0	ABSOLUTE
 ONE ABSOLUTE WORD TO BE LOADED.

	TYPE 1	RELOCATABLE
 ONE WORD, THE RIGHT HALF OF WHICH IS RELOCATABLE; I.E. AT LOAD
 TIME THE LOAD OFFSET IS TO BE ADDED TO THE RIGHT HALF. 

	TYPE 2	SPECIAL
 A WORD TO BE LOADED, WHOSE RIGHT HALF CONTAINS THE INDEX OF AN
 ATOM (HOPEFULLY OF TYPE PNAME) THE ADDRESS OF THE VALUE CELL OF
 WHICH IS TO REPLACE THE RIGHT HALF OF THE LOADED WORD. (IF NO
 VALUE CELL EXISTS, ONE IS TO BE CREATED.)

	TYPE 3	SMASHABLE CALL
 SIMILAR TO TYPE 4 (Q.V.) EXCEPT THAT THE INSTRUCTION IS ONE OF
 THE SERIES OF CALL UUOS WHICH MAY BE "SMASHED" FOR PURIFICATION
 PURPOSES. AT PRESENT THESE UUOS ARE: CALL, JCALL, NCALL, NJCALL. 

	TYPE 4	QUOTED ATOM
 ONE WORD TO BE LOADED WHOSE RIGHT HALF CONTAINS THE INDEX OF AN
 ATOM WHOSE ADDRESS IS TO REPLACE THE RIGHT HALF OF THE WORD
 LOADED. 

	TYPE 5	QUOTED LIST
 A SERIES OF WORDS REPRESENTING AN S-EXPRESSION TO BE CONSTRUCTED
 BY THE LOADER. THE FORMAT OF THESE WORDS IS BEST EXPLAINED BY
 THE ALGORITHM USED TO CONTRUCT THE S-EXPRESSION: THE LOADER
 EXAMINES BITS 4.7-4.9 OF SUCCESSIVELY READ WORDS, AND DISPATCHES
 ON THEM: 
 0	THE ATOM WHOSE INDEX IS IN THE RIGHT HALF OF THE WORD
	IS PUSHED ONTO A STACK. 
 1	THE LOADER POPS AS MANY ITEMS OFF THE STACK AS
	SPECIFIED BY THE NUMBER IN THE RIGHT HALF OF THE WORD
	AND MAKES A LIST OF THEM, SO THAT THE LAST ITEM POPPED
	BECOMES THE FIRST ITEM OF THE LIST; THIS LIST IS THEN
	PUSHED ONTO THE STACK. 
 2	THE LOADER POPS ONE ITEM OFF THE STACK AND PROCEEDS AS
	FOR 1, EXCEPT THAT THE ITEM FIRST POPPED IS USED TO
	END THE LIST INSTEAD IF NIL. (THIS ALLOWS FOR DOTTED
	PAIRS.)
 3	THE TOP ITEM ON THE STACK IS EVALUATED AND STORED BACK
	ON THE TOP OF THE STACK. 
 4	THE RIGHT HALF OR THE WORD SPECIFIES THE LENGTH OF A
	HUNK TO BE MADE BY TAKING THAT MANY ITEMS FROM THE TOP
	OF THE STACK;  THIS HUNK IS THEN PUSHED BACK. 
 5	UNUSED.
 6	UNUSED.
 7	THE LEFT HALF OF THE WORD SHOULD BE -1 OR -2,
	INDICATING THE SECOND LAST WORD OF THE DATA; IF -1,
	THE RIGHT HALF OF THIS WORD AND THE ADDRESS OF (WHAT
	SHOULD BE) THE SINGLE ITEM ON THE STACK (WHICH IS
	POPPED OFF) ARE MADE RESPECTIVELY INTO THE LEFT AND
	RIGHT HALVES OF A WORD TO BE LOADED INTO BINARY
	PROGRAM SPACE; IF -2, THE S-EXPRESSION IS PLACED INTO
	THE NEXT SLOT OF THE ATOMTABLE (SEE TYPE 12).  THE ONE
	WORD REMAINING IS THE HASH KEY OF THE S-EXPRESSION AS
	COMPUTED BY SXHASH; THIS IS USED BY THE LOADER TO SAVE
	GCPRO SOME WORK. 

	TYPE 6	GLOBALSYM
 ONE WORD; THE RIGHT HALF IS AN INDEX INTO THE TABLE LSYMS IN
 LISP. THE INDICATED VALUE IS RETRIEVED, NEGATED IF BIT 4.9 OF
 THE DATA WORD IS 1, AND ADDED TO THE RIGHT HALF OF THE LAST
 WORD LOADED INTO BINARY PROGRAM SPACE.  THIS ALLOWS LAP CODE
 TO REFER TO SELECTED LOCATIONS INTERNAL TO LISP WITHOUT
 GETTING SYMBOLS FROM DDT. 

	TYPE 7	GETDDTSYM
 IF THE FIRST WORD IS -1, THEN THE LOAD OFFSET IS ADDED INTO
 THE LEFT HALF OF THE WORD MOST RECENTLY LOADED INTO BINARY
 PROGRAM SPACE (THIS IS HOW LEFT HALF RELOCATION IS
 ACCOMPLISHED).  OTHERWISE, THE FIRST WORD CONTAINS IN BITS
 1.1-4.5 A SYMBOL IN SQUOZE CODE. THE LOADER GETS THE VALUE OF
 THIS SYMBOL FROM DDT IF POSSIBLE, NEGATES IT IF BIT 4.9 IS 1,
 THEN ADDS THE RESULT TO THE FIELD OF THE LAST WORD LOADED AS
 SPECIFIED BY BITS 4.6-4.7: 
	3 = ENTIRE WORD
	2 = AC FIELD ONLY
	1 = RIGHT HALF ONLY
	0 = ENTIRE WORD, BUT SWAP HALVES OF VALUE BEFORE ADDING.
 THESE FOUR FIELDS CORRESPOND TO OPCODE, AC, ADDRESS, AND INDEX
 FIELDS RESPECTIVELY IN A LAP INSTRUCTION.  IF BIT 4.8 IS A 1,
 THEN ANOTHER WORD FOLLOWS, CONTAINING THE VALUE OF THE SYMBOL
 AS OBTAINED FROM DDT AT ASSEMBLE TIME. IF THE VERSION NUMBER
 OF THAT LISP (AS DETERMINED FROM THE SECOND FILE HEADER WORD)
 IS THE SAME AS THAT OF THE LISP BEING LOADED INTO, THEN THIS
 VALUE IS USED AND DDT IS NOT CONSULTED AT LOAD TIME; THIS IS
 FOR SPEED. IF THE VERSION NUMBERS ARE DIFFERENT, THEN DDT IS
 CONSULTED. 

	TYPE 10	ARRAY REFERENCE
 ONE WORD TO BE LOADED, WHOSE RIGHT HALF CONTAINS THE ATOMINDEX
 OF AN ATOMIC SYMBOL. IF THE SYMBOL HAS AN ARRAY PROPERTY, IT
 IS FETCHED; OTHERWISE ONE IS CREATED. THE RIGHT HALF OF THE
 WORD TO BE LOADED IS REPLACED WITH THE ADDRESS OF THE SECOND
 WORD OF THE ARRAY POINTER (I.E. OF THE TTSAR).  IN THIS WAY
 ACCESSES TO ARRAYS CAN BE OPEN-CODED. 

	TYPE 11	UNUSED

	TYPE 12	ATOMTABLE INFO
 A HEADER WORD, POSSIBLY FOLLOWED BY OTHERS, DEPENDING ON BITS
 4.7-4.9: 
 0	THE RIGHT HALF IS THE NUMBER OF WORDS FOLLOWING, WHICH
	CONSTITUTE THE PNAME OF A PNAME-TYPE ATOM, IN THE
	ORDER OF THEIR APPEARANCE ON A PROPERTY LIST. THE ATOM
	IS INTERNED. 
 1	THE ONE WORD FOLLOWING IS THE VALUE OF A FIXNUM TO BE
	CREATED. 
 2	THE FOLLOWING WORD IS THE VALUE OF A FLONUM. 
 3	THE RIGHT HALF IS THE NUMBER OF FIXNUM COMPONENTS OF A
	BIGNUM FOLLOWING, MOST SIGNIFICANT WORD FIRST.  BIT 3.1
	IS THE SIGN OF THE BIGNUM.
 4	THE FOLLOWING TWO WORDS ARE A DOUBLE-PRECISION NUMBER.
 5	THE FOLLOWING TWO WORDS ARE A COMPLEX NUMBER.
 6	THE FOLLOWING FOUR WORDS ARE A DUPLEX NUMBER.
 7	UNUSED.
 THE ATOM THUS CREATED IS ASSIGNED A PLACE IN THE ATOMTABLE
 MAINTAINED BY THE LOADER (AS AN ARRAY) USING CONSECUTIVE
 LOCATIONS; FROM THAT POINT ON OTHER DATA ITEMS REFERRING TO
 THAT ITEM CAN DO SO BY THE INDEX OF THE ATOM IN THIS TABLE. 
 SEE ALSO TYPES 5 AND 16, WHICH ALSO MAKE ENTRIES IN THE
 ATOMTABLE. 

	TYPE 13	ENTRY INFO
 TWO WORDS. THE LEFT HALF OF THE FIRST WORD IS THE ATOMINDEX
 OF THE NAME OF THE FUNCTION BEING DEFINED; THE RIGHT HALF
 THAT OF THE SUBR TYPE (THE PROPERTY UNDER WHICH TO CREATE THE
 ENTRY POINT, E.G. SUBR OR FSUBR).  THE RIGHT HALF OF THE
 SECOND WORD IS THE LOCATION OF THE ENTRY POINT AS A
 RELOCATABLE POINTER: THE LOAD OFFSET MUST BE ADDED TO IT. THE
 LEFT HALF OF THE SECOND WORD CONTAINS THE ARGS PROPERTY, IN
 INTERNAL ARGS PROPERTY FORMAT, AS SPECIFIED IN THE ORIGINAL
 LAP CODE BY THE ARGS CONSTRUCT. 

	TYPE 14	LOC
 THE WORD IS A RELOCATABLE QUANTITY SPECIFYING WHERE TO
 CONTINUE LOADING.  IT IS NOT PERMITTED TO LOC BELOW THE
 ORIGIN OF THE ASSEMBLY. IF THE LOC IS TO A LOCATION HIGHER
 THAN ANY YET LOADED INTO, THEN FASLOAD ZEROS OUT ALL WORDS
 ABOVE THAT HIGHEST LOCATION UP TO THE LOCATION SPECIFIED. 
 FASLOAD KEEPS TRACK OF THE HIGHEST LOCATION EVER LOADED INTO;
 THIS VALUE PLUS ONE BECOMES THE VALUE OF BPORG AT THE END OF
 ASSEMBLY, REGARDLESS OF THE STATE OF THE LOCATION POINTER
 WHEN LOADING TERMINATES.  THIS TYPE IS NEVER USED BY LAP
 CODE, BUT ONLY BY MIDAS .FASL CODE. 

	TYPE 15	PUTDDTSYM
 FIRST WORD, THE SYMBOL IN SQUOZE CODE.  IF BIT 4.9=0, THE
 SYMBOL IS DEFINED TO DDT IF POSSIBLE WITH THE ADDRESS OF THE
 WORD OF BINARY PROGRAM SPACE ABOUT TO BE LOADED INTO AS ITS
 VALUE.  IF BIT 4.9=1, THE VALUE IS GOBBLED FROM THE FOLLOWING
 WORD. BIT 4.8 (OF THE WORD CONTAINING THE SQUOZE) MEANS
 RELOCATE THE LEFT HALF OF THE VALUE BY THE LOAD OFFSET, AND
 BIT 4.7 LIKEWISE FOR THE RIGHT HALF.  WHETHER OR NOT THE
 SYMBOL ACTUALLY GETS PUT IN DDT'S SYMBOL TABLE IS A FUNCTION
 OF THREE CONDITIONS: FIRST, THAT THERE IS A DDT WITH A SYMBOL
 TABLE; SECOND, THE VALUE OF THE LISP VARIABLE "SYMBOLS"; 
 THIRD, BIT 4.6 OF THE FIRST PUTDDTSYM WORD. THE FIRST
 CONDITION OF COURSE MUST BE SATISFIED. IF SO, THEN THE SYMBOL
 IS PUT IN THE SYMBOL TABLE ONLY IF SYMBOLS HAS A NON-NIL
 VALUE. FURTHERMORE, IF THAT VALUE IS THE ATOM SYMBOLS ITSELF,
 THEN THE SYMBOL IS PUT ONLY IF BIT 4.6 IS ON (INDICATING A
 "GLOBAL" SYMBOL). 

	TYPE 16	EVAL MUNGEABLE
 A SERIES OF WORDS SIMILAR TO THOSE FOR TYPE 5, BUT WITH NO
 FOLLOWING HASH KEY. AN S-EXPRESSION IS CONSTRUCTED AND
 EVALUATED. THIS IS USED FOR THE SO-CALLED "MUNGEABLES" IN A
 FILE OF LAP CODE.  IF THE LEFT HALF OF THE LAST WORD IS -1,
 THE VALUE IS THROWN AWAY. IF IT IS -2, THE VALUE IS ENTERED
 IN THE ATOMTABLE. 

	TYPE 17	END OF BINARY
 ONE WORD, WHICH MUST BE "*FASL+" (OR "*FASL*") IN SIXBIT.
 THIS SHOULD BE THE LAST DATA WORD IN THE FILE. ANY RELOCATION
 BYTES LEFT OVER AFTER A TYPE 17 ARE IGNORED.  THIS SHOULD BE
 FOLLOWED EITHER BY END OF FILE OR A WORD FULL OF ^C'S. 

THE "NEW" FASLOAD SCHEME (AS OF 1/31/73) USES A NEW FORMAT
FOR ITS FILES. A FASL FILE CONSISTS OF TWO HEADER WORDS,
FOLLOWED BY A SERIES OF FASL BLOCKS; THE TWO HEADER WORDS
ARE BOTH SIXBIT, THE FIRST BEING "*FASL*" AND THE SECOND
THE CONTENTS OF LOCATION LDFNM2 IN THE LISP WHICH ASSEMBLED
THE FILE (A VERSION NUMBER IN SIXBIT).
EACH FASL BLOCK CONSISTS OF A WORD OF NINE FOUR-BIT
RELOCATION BYTES, FOLLOWED BY NINE PIECES OF FASL DATA.
THE LENGTH OF EACH DATA ITEM IS DEPENDENT ON THE
RELOCATION TYPE; THUS FASLBLOCKS ARE OF VARYING LENGTH.
THE LAST BLOCK MAY HAVE FEWER THAN NINE DATA ITEMS.
THE RELOCATION TYPES AND THE FORMATS OF THE ASSOCIATED
DATA ITEMS ARE AS FOLLOWS:

TYPE	NAME		DATA FORMAT

0	ABSOLUTE	ONE ABSOLUTE WORD TO BE LOADED.
1	RELOCATABLE	ONE WORD, THE RIGHT HALF OF WHICH
			IS RELOCATABLE; I.E. AT LOAD TIME
			THE LOAD OFFSET IS TO BE ADDED TO
			THE RIGHT HALF.
2	SPECIAL		A WORD TO BE LOADED, WHOSE RIGHT
			HALF CONTAINS THE INDEX OF AN ATOM
			(HOPEFULLY OF TYPE PNAME) THE ADDRESS
			OF THE VALUE CELL OF WHICH IS TO
			REPLACE THE RIGHT HALF OF THE LOADED
			WORD. (IF NO VALUE CELL EXISTS, ONE
			IS TO BE CREATED.)
3	SMASHABLE CALL	SIMILAR TO TYPE 4 (Q.V.) EXCEPT THAT
			THE INSTRUCTION IS ONE OF THE SERIES
			OF CALL UUOS WHICH MAY BE "SMASHED"
			FOR PURIFICATION PURPOSES. AT PRESENT
			THESE UUOS ARE: CALL, JCALL, NCALL,
			NJCALL.
4	QUOTE ATOM	ONE WORD TO BE LOADED WHOSE RIGHT HALF
			CONTAINS THE INDEX OF AN ATOM WHOSE
			ADDRESS IS TO REPLACE THE RIGHT HALF
			OF THE WORD LOADED.
5	QUOTE LIST	A SERIES OF WORDS REPRESENTING AN
			S-EXPRESSION TO BE CONSTRUCTED BY THE
			LOADER. THE FORMAT OF THESE WORDS IS
			BEST EXPLAINED BY THE ALGORITHM USED
			TO CONTRUCT THE S-EXPRESSION: THE
			LOADER EXAMINES BITS 4.7-4.9 OF EACH
			WORD. IF 0, THEN THE ATOM WHOSE INDEX
			IS IN THE RIGHT HALF OF THE WORD IS
			PUSHED ONTO A STACK. IF 1, THEN THE
			LOADER POPS AS MANY ITEMS OFF THE STACK
			AS SPECIFIED BY THE NUMBER IN THE RIGHT HALF
			OF THE WORD AND MAKES A LIST OF THEM, SO THAT
			THE LAST ITEM POPPED BECOMES THE FIRST
			ITEM OF THE LIST; THIS LIST IS THEN
			PUSHED ONTO THE STACK. IF 2, THEN THE
			LOADER POPS ONE ITEM OFF THE STACK AND
			PROCEEDS AS FOR 1, EXCEPT THAT THE ITEM
			FIRST POPPED IS USED TO END THE LIST
			INSTEAD IF NIL. (THIS ALLOWS FOR DOTTED
			PAIRS.) IF 3, THEN THE TOP ITEM ON THE STACK 
			IS EVALUATED AND RESTORED BACK ON THE TOP OF 
			THE STACK.  IF 7, THEN THE LEFT HALF OF THE
			WORD SHOULD BE -1 OR -2, INDICATING THE
			SECOND LAST WORD OF THE DATA; IF -1,
			THE RIGHT HALF OF THIS WORD AND THE
			ADDRESS OF (WHAT SHOULD BE) THE SINGLE
			ITEM ON THE STACK (WHICH IS POPPED OFF)
			ARE MADE RESPECTIVELY INTO THE LEFT AND
			RIGHT HALVES OF A WORD TO BE LOADED INTO
			BINARY PROGRAM SPACE; IF -2, THE
			S-EXPRESSION IS PLACED INTO THE NEXT
			SLOT OF THE ATOMTABLE (SEE TYPE 12).
			THE ONE WORD REMAINING IS THE HASH KEY
			OF THE S-EXPRESSION AS COMPUTED BY
			SXHASH; THIS IS USED BY THE LOADER
			TO SAVE GCPRO SOME WORK.
6	GLOBALSYM	ONE WORD; THE RIGHT HALF IS AN INDEX
			INTO THE TABLE LSYMS IN LISP. THE
			INDICATED VALUE IS RETRIEVED, NEGATED
			IF BIT 4.9 OF THE DATA WORD IS 1, AND
			ADDED TO THE RIGHT HALF OF THE LAST
			WORD LOADED INTO BINARY PROGRAM SPACE.
			THIS ALLOWS LAP CODE TO REFER TO
			SELECTED LOCATIONS INTERNAL TO LISP
			WITHOUT GETTING SYMBOLS FROM DDT.
7	GETDDTSYM	IF THE FIRST WORD IS -1, THEN THE LOAD
			OFFSET IF ADDED INTO THE LEFT HALF
			OF THE WORD MOST RECENTLY LOADED INTO
			BINARY PROGRAM SPACE (THIS IS HOW LEFT
			HALF RELOCATION IS ACCOMPLISHED).
			OTHERWISE, THE FIRST WORD
			CONTAINS IN BITS 1.1-4.5 A SYMBOL
			IN SQUOZE CODE. THE LOADER GETS
			THE VALUE OF THIS SYMBOL FROM DDT
			IF POSSIBLE, NEGATES IT IF BIT 4.9
			IS 1, THEN ADDS THE RESULT TO THE
			FIELD OF THE LAST WORD LOADED AS
			SPECIFIED BY BITS 4.6-4.7:
			3=ENTIRE WORD
			2=AC FIELD ONLY
			1=RIGHT HALF ONLY
			0=ENTIRE WORD, BUT SWAP HALVES OF
			  VALUE BEFORE ADDING.
			THESE FOUR FIELDS CORRESPOND TO
			OPCODE, AC, ADDRESS, AND INDEX FIELDS
			RESPECTIVELY IN A LAP INSTRUCTION.
			IF BIT 4.8 IS A 1, THEN ANOTHER WORD
			FOLLOWS, CONTAINING THE VALUE OF THE
			SYMBOL AS OBTAINED FROM DDT AT
			ASSEMBLE TIME. IF THE VERSION NUMBER
			OF THAT LISP (AS DETERMINED FROM THE
			SECOND FILE HEADER WORD) IS THE SAME
			AS THAT OF THE LISP BEING LOADED INTO,
			THEN THIS VALUE IS USED AND DDT IS NOT
			CONSULTED AT LOAD TIME; THIS IS FOR
			SPEED. IF THE VERSION NUMBERS ARE
			DIFFERENT, THEN DDT IS CONSULTED.
10	ARRAY REF	ONE WORD TO BE LOADED, WHOSE RIGHT HALF
			CONTAINS THE ATOMINDEX OF AN ATOMIC
			SYMBOL. IF THE SYMBOL HAS AN ARRAY
			PROPERTY, IT IS FETCHED; OTHERWISE
			ONE IS CREATED. THE RIGHT HALF OF THE
			WORD TO BE LOADED IS REPLACED WITH
			THE ADDRESS OF THE SECOND WORD OF THE
			ARRAY POINTER (I.E. OF THE TTSAR).
			IN THIS WAY ACCESSES TO ARRAYS CAN BE
			OPEN-CODED.
11	UNUSED		[ERROR IN FILE]
12	ATOMTABLE INFO	A HEADER WORD, POSSIBLY FOLLOWED BY
			OTHERS, DEPENDING ON BITS 4.7-4.8:
			IF 0, THE RIGHT HALF IS THE NUMBER
			OF WORDS FOLLOWING, WHICH CONSTITUTE
			THE PNAME OF A PNAME-TYPE ATOM, IN THE
			ORDER OF THEIR APPEARANCE ON A
			PROPERTY LIST. THE ATOM IS INTERNED.
			IF 1, THE ONE WORD FOLLOWING IS
			THE VALUE OF A FIXNUM TO BE CREATED.
			IF 2, THE FOLLOWING WORD IS THE VALUE
			OF A FLONUM. IF 3, THE RIGHT HALF IS
			THE NUMBER OF FIXNUM COMPONENTS OF A
			BIGNUM FOLLOWING, MOST SIGNIFICANT
			WORD FIRST. THE HEADER WORD CONTAINS
			THREE BITS OF THE SIGN OF THE BIGNUM
			IN BITS 3.1-3.3.
			THE ATOM THUS CREATED IS ASSIGNED A
			PLACE IN THE ATOMTABLE MAINTAINED BY
			THE LOADER (AS AN ARRAY) USING
			CONSECUTIVE LOCATIONS; FROM THAT POINT
			ON OTHER DATA ITEMS REFERRING TO THAT
			ITEM CAN DO SO BY THE INDEX OF THE
			ATOM IN THIS TABLE.
			SEE ALSO TYPES 5 AND 16, WHICH ALSO
			MAKE ENTRIES IN THE ATOMTABLE.
13	ENTRY INFO	TWO WORDS. THE LEFT HALF OF THE FIRST
			WORD IS THE ATOMINDEX OF THE NAME OF
			THE FUNCTION BEING DEFINED; THE RIGHT
			HALF THAT OF THE SUBR TYPE (THE
			PROPERTY UNDER WHICH TO CREATE THE
			ENTRY POINT, E.G. SUBR OR FSUBR).
			THE RIGHT HALF OF THE SECOND WORD IS
			THE LOCATION OF THE ENTRY POINT AS A
			RELOCATABLE POINTER: THE LOAD OFFSET
			MUST BE ADDED TO IT. THE LEFT HALF OF
			THE SECOND WORD CONTAINS INFORMATION
			USED TO CREATE AN ARGS PROPERTY FOR
			THE FUNCTION AS SPECIFIED IN THE
			ORIGINAL LAP CODE. IF THIS HALFWORD
			IS ZERO, NO ARGS PROPERTY IS CREATED
			AND ANY ALREADY PRESENT IS REMOVED.
			OTHERWISE THE HALFWORD IS DIVIDED INTO
			TWO NINE-BIT BYTES, EACH OF WHICH IS
			CONVERTED AS FOLLOWS:
			BYTE	RESULT
			0	NIL
			777	777
			N	N-1, WHERE N IS NOT 0 OR 777
			THESE TWO ITEMS ARE THEN CONSED AND
			FOR THE ARGS PROPERTY.
14	LOC		THE WORD IS A RELOCATABLE QUANTITY
			SPECIFYING WHERE TO CONTINUE LOADING.
			IT IS NOT PERMITTED TO LOC BELOW THE
			ORIGIN OF THE ASSEMBLY. IF THE LOC
			IS TO A LOCATION HIGHER THAN ANY YET
			LOADED INTO, THEN FASLOAD ZEROS OUT
			ALL WORDS ABOVE THAT HIGHEST LOCATION
			UP TO THE LOCATION SPECIFIED.
			FASLOAD KEEPS TRACK OF THE HIGHEST
			LOCATION EVER LOADED INTO; THIS VALUE
			PLUS ONE BECOMES THE VALUE OF BPORG
			AT THE END OF ASSEMBLY, REGARDLESS
			OF THE STATE OF THE LOCATION POINTER
			WHEN LOADING TERMINATES.
15	PUTDDTSYM	FIRST WORD, THE SYMBOL IN SQUOZE CODE.
			IF BIT 4.9=0, THE SYMBOL IS DEFINED TO
			DDT IF POSSIBLE WITH THE ADDRESS OF THE
			WORD OF BINARY PROGRAM SPACE ABOUT
			TO BE LOADED INTO AS ITS VALUE.
			IF BIT 4.9=1, THE VALUE IS GOBBLED FROM
			THE FOLLOWING WORD. BIT 4.8 (OF THE WORD
			CONTAINING THE SQUOZE) MEANS RELOCATE
			THE LEFT HALF OF THE VALUE BY THE LOAD
			OFFSET, AND BIT 4.7 LIKEWISE FOR THE
			RIGHT HALF.
			WHETHER OR NOT THE SYMBOL ACTUALLY GETS
			PUT IN DDT'S SYMBOL TABLE IS A FUNCTION
			OF THREE CONDITIONS: FIRST, THAT THERE
			IS A DDT WITH A SYMBOL TABLE; SECOND,
			THE VALUE OF THE VARIABLE SYMBOLS;
			THIRD, BIT 4.6 OF THE FIRST PUTDDTSYM
			WORD. THE FIRST CONDITION OF COURSE MUST
			BE SATISFIED. IF SO, THEN THE SYMBOL IS
			PUT IN THE SYMBOL TABLE ONLY IF SYMBOLS
			HAS A NON-NIL VALUE. FURTHERMORE, IF
			THAT VALUE IS THE ATOM SYMBOLS ITSELF,
			THEN THE SYMBOL IS PUT ONLY IF BIT 4.6
			IS ON (INDICATING A "GLOBAL" SYMBOL).
16	EVAL MUNGEABLE	A SERIES OF WORDS SIMILAR TO THOSE
			FOR TYPE 5, BUT WITH NO FOLLOWING
			HASH KEY. AN S-EXPRESSION IS
			CONSTRUCTED AND EVALUATED. THIS IS
			USED FOR THE SO-CALLED "MUNGEABLES"
			IN A FILE OF LAP CODE.
			IF THE LEFT HALF OF THE LAST WORD IS
			-1, THE VALUE IS THROWN AWAY. IF IT
			IS -2, THE VALUE IS ENTERED IN THE
			ATOMTABLE.
17	END OF BINARY	ONE WORD, WHICH MUST BE "*FASL*" IN
			SIXBIT. THIS SHOULD BE THE LAST DATA
			WORD IN THE FILE. ANY RELOCATION
			BYTES LEFT OVER AFTER A TYPE 17 ARE
			IGNORED.
THIS SHOULD BE FOLLOWED EITHER BY END OF FILE OR A WORD
FULL OF ^C'S.
