home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol159 / abstract.159 < prev    next >
Encoding:
Text File  |  1985-03-23  |  3.8 KB  |  70 lines

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