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