This disk contains programs which allow you to bootstrap software from one machine to another, accross operating systems, even to different computers. For example, write a compiler for the TI 99/4 on an IBM-PC. For that matter, vice versa. The heart of the system is a macro processor called TINCMP. TINCMP is described in Dr Dobbs in 1981 as the compiler for Bill Gale's system language "PIDGIN". The focus of the article was that PIDGIN was restricted enough so that you could compile it with a macro processor like TINCMP if you couldn't get TINCMP up - or didn't want to. I wrote a compiler like TINCMP with STAGE-2, used PIDGIN as the source language and managed to get TINCMP up. On my 2MHz it was slow going using TINCMP so, further work got pushed onto the stack until I got my 8085/88 system. I then resurrected TINCMP and used it on my 8085 to bootstrap to the 8088 with a new set of macros. These new macros are in the file "TINMACR.TIN" - these generate RELOCATABLE code suitable for assembly with RASM86. LINK86 can be used to link the .OBJ programs. Once TINCMP lives you can compile META4. This is a compiler-compiler which accepts a definition of a language as its input and produces as its output instructions for itself in the form of an interpretive program which it executes to compile the language that you defined. The August 1981 issue of DDJ describes the internals of META4 under the title "Write Your Own Compiler" (July 81 was the PIDGIN article about TINCMP). Readers desiring a tutorial will not find it but do not lose heart. By study of Bill Gale's article you can understand it. You can experiment with my 8086 package. I included META4 and TINCMP. Readers with a clear understanding of META-4 may add some features and recompile - I gave you the .OBJ modules to recompile and assemble: To relink META4: LINK86 META,IOPACK,FSCAN,CONSIO To relink TINCMP: LINK86 TINCMP86,IOPACK,FSCAN,CONSIO To compile with TINCMP: TINCMP86 DEFINITION-FILE,CODE-FILE,INPUT-FILE For example: compile meta4: TINCMP86 TINMACR.TIN,META.A86,METATERP.PGN Meta will be compiled into 8086 code in META.A86 The code that TINCMP produces isn't great but you are not going to recognize much speed improvement by cleaning it up. I don't recommend doing much with TINCMP - you really only use it to get META4 running then you retire it to a rusty disk somewhere. (It is a long haul getting a good set of macros developed and you will curse TINCMP for being slow at that time). The version of META-4 on this disk (1.2AX) is a slighly optimized version produced by removing some redundant code with my friend ED. ED really does a good job at these tasks and he is pretty fast about doing his job. I do not recommend hand optimizing META-4. Use it to write a compiler which produces optimized code then recompile it. You can wait because I'm coming out with PIDGIN-2 which is able to generate an intermediate file which can be passed thru META-4 again to produce an optimized program for any target machine - I am doing this for the 8086 and 68000 but you may want to do this on another machine (like the TI-99/4). PIDGIN-2 is much less restrictive than PIDGIN. The programs in this disk can be freely used by any NON-COMMERCIAL user. Any use in government or private industry requires explicit permission in writing. All programs on this disk are Copyright (c) Wm A. Gale, 1981, A. L. Bender, 1981, 1982, 1984. ALL RIGHTS RESERVED. A version of the system, including all relevant code for the IBM-PC is also available for a charge to cover handling, disks and mailing. You can contact me at Neurological Services, Inc., 336 Center Ave., Westwood, NJ 07675 USA If you write to ask questions please enclose a self addressed, stamped envelope. Do not call, it is easier to write and if necessary I will call you.