
1.	Disclaimer

	This software is in the public domain.  
	Any prior copyright claims are relinquished.  

	This software is distributed with no warranty whatever.  
	The author takes no responsibility for the consequences 
	of its use.

2.	Size

	You can compile the assemblers small model (64k + 64k).
	Getting them any smaller would be a real trick.

3.	Compilation 

	The C source files that comprise a cross assembler are
	in 3 categories.
		
		Common code (doesn't need recompiling between different
		"flavors")
			frasmain.c
			fraosub.c
			frapsub.c

		"Flavor" specific files (generated by Yacc, compiled
		for every "flavor"))
			as*.c
			as*.h

		Common code that depends on the fraytok.h file (compiled
		for every "flavor")
			fryylex.c

4.	Fraytok.h

	The yacc program defines some data structures and assigns values 
	to various #define Macros used in the lexical analyzer.  
	The lexical analyzer (fryylex.c) file refers to these in the 
	fraytok.h include file.  The {assembler name}.h file generated 
	by yacc (or renamed in the makefile) for the different .y files 
	will be different.  If you compile manually, insure that the correct 
	{assembler name}.h file is copied to fraytok.h.

5.	Configuration Macros

	DOSTEMP

	If neither the current directory or /usr/tmp is an acceptable
	directory for the temporary intermediate data file, change the 
	initialization in frasmain.c.

	NOGETOPT

	If you use the NOGETOPT to use the provided function, remember
	to change the MAINDEPENDS makefile macro.

	NOSTRING, USEINDEX

	The version 7 system I used to test these for version 1 got sold
	for scrap.  Should still work ;-)

6.	Dos

	If you don't have a MS-DOS (or whatever) Yacc equivalent, but do have 
	access to a another computer with Yacc, you can run that step there 
	and take the resulting .c and .h files to the (whatever) system.
	(I have not inquired at AT&T as to the copyright status of the 
	resulting code, although it is rumored that the output of Yacc
	is public domain.  Do this at your own risk. [The Yacc program
	itself is definitly NOT public domain]).

	The combination used (Turbo C and Bison) will report a half
	a dozen (varies) shift-reduce conflicts from Bison, and 3 (usually) 
	warnings from the C compiler for the parser.  No big deal.

	The Bison (the Free Software Foundation's Yacc clone) I used
	was disk 285 from the C Users Group.  The version dated 
	January 1989.  This is modified from the original, to
	adapt it to MS-DOS compilers, conventions, and libraries.

	(The following paragraph was copied out of this release)

	The C Users' Group (CUG) collects, maintains and distributes
	public domain C source code, publishes a magazine, The C Users' Journal
	and serves as a resource for C users. Several vendors have named
	CUG as the official users group for their implementation of C.
	For membership and subscription information contact

	The C Users' Group
	2601 Iowa
	Lawrence, KS 66047
	(913) 841-1631

7.	Porting to non-ascii machines

	The fryylex.c file contains a translate table, chartrantab,
	which classifies the input character set for the scanner's
	state machine.  The reference to this table masks off the
	input character with 0x7f limiting the table to 128 elements.  
	So if you want a source file in EBCDIC or to have umlauts in 
	your variable names, a new table, and a new mask are called for.

	Debug in the lexical analyzer is turned on with a nonzero
	value in the DEBUG macro.

	Host machines that don't use two-complement negative numbers
	will have to compensate in the fraosub.c outeval()
	switch statement for cases IFC_EMU8, IFC_EMS7, IFC_EM16,
	IFC_EMBR16.

8.	History
	
	These used to be called the Framework cross assemblers, but
	there's someone using the name for a database package or 
	something like that.  Why Frankenstein?  Well, if you don't
	like the way it acts, chop off it's head and sew a new one on.
	(It was around Halloween).

	The .y files are generated from a more general machine
	description by an automated script.  But this isn't
	portable enough and is too disgusting to distribute.

9.	Bug reports

	Report bugs to markz@ssc.uucp.  Especially screwups in the
	instruction generation tables.

	There is no telephone that I can be reached at.
	Please don't phone/fax Specialized Systems Consultants in
	reference to this software.  What I do for a hobby, and 
	what they do to make money are not connected.

	Mark Zenier


