home *** CD-ROM | disk | FTP | other *** search
/ messroms.de / 2007-01-13_www.messroms.de.zip / VZ200 / TOOLS / ZCCSRC.ZIP / README < prev    next >
Text File  |  1996-02-01  |  5KB  |  119 lines

  1. zcc 0.96:
  2.  
  3. Here is a free Z80 development package for Unix or DOS consisting of a
  4. C compiler, a peephole optimiser, an assembler and a relocating linker.
  5.  
  6. What's in the directories:
  7.  
  8. scc     Ron Cain's Small C compiler originaly from Dr. Dobbs Journal.
  9.     Has been through many hands and Chris Lewis had it last, many
  10.     years ago.  I fixed it a bit. In particular I made it ignore
  11.     #line and # directives, needed for the pp bit. I also added the
  12.     asm pseudofunction which passes a quoted string directly to the
  13.     assembler. Note that asm doesn't append any newlines; you must
  14.     do this yourself. This is so that assembly code can be pieced
  15.     together in macros. See test/hello.c for an example.  C string
  16.     escapes work here. Small C is a rather limited subset of K&R
  17.     C.  In particular, only char and int types; single dimension
  18.     arrays and pointers but not together.  No initialised data. The
  19.     source of the compiler is a good example of its limitations
  20.     since it was meant to self-compile. There are a handful of
  21.     library functions in lib.
  22.  
  23. pho    Christopher Fraser's copt peephole optimiser, used here to make
  24.     generated assembler more compact. Rules I have supplied detect
  25.     some use of auto variables and use offset(ix) addressing modes
  26.     instead of offset(sp). Limitation of 128 bytes of auto variable
  27.     though. The rewrite rules are not thoroughly tested! Be prepared
  28.     to try compiling without -O if things go wrong. If you have any
  29.     corrections, let me know.
  30.  
  31. pp      Public domain C preprocessor by Martin Minow, posted to Usenet
  32.     many years ago. (Usenet is the news system that was used before
  33.     this Internet Web stuff.) It's much more capable than the one
  34.     built into scc.  This version was modified mostly by Michael
  35.     Haardt to make the draft ANSI stuff almost ANSI.
  36.  
  37. as      A PD assembler from the C Users Group collection, which I found
  38.     on a SimTel mirror as crossasm/cug292wk.zip. I cleaned it up
  39.     (only the Z80 version). I merged in some changes from the gcc
  40.     6811 cross-compiler developers to increase the number of
  41.     significant characters in identifiers and filenames (also in the
  42.     linker below). I added pseudojumps (assembles to jr form
  43.     whenever possible).  I also added one switch: -c for case
  44.     insensitivity (used to be a compile time option).  Note that the
  45.     syntax resembles PDP-11 assembler most and not the traditional
  46.     Z80 syntax. In particular, the pseudo-ops are different,
  47.     immediate ops require #, offset syntax is offset(register), not
  48.     (register+offset), and others.
  49.  
  50. link    A relocating linker from the same package above. I also cleaned
  51.     this up, added the -c case insensitivity switch and added changes
  52.     from the gcc 6811 cross-compiler developers to get all arguments
  53.     from the command line. It doesn't handle libraries though.
  54.  
  55. zcc     I wrote this driver to coordinate the various phases. You can
  56.     call it with .c, .asm, or .rel files. -v shows what it's doing.
  57.     -c stops after assembly. -I, -D and -U arguments go to cpp, -b
  58.     and -g to the linker. -O causes the peephole optimiser to be
  59.     invoked. It assumes the executables for the phases are on your
  60.     path and that 0crt.rel (C startup and runtime routines) and
  61.     pho's rules are in the current directory. Edit this if your
  62.     setup is different.
  63.  
  64. test    The runtime library and a couple of test programs for a
  65.     development board I use.
  66.  
  67. doc    Documentation, a bit for scc, but mostly for the assembler and
  68.     linker. There is documentation for the preprocessor in its own
  69.     directory.
  70.  
  71. The Makefile in the top directory will make everything except the test.
  72. It should work with both Unix and Borland C by editing the definitions.
  73. Also edit submake.bat for Borland C. You need to install the binaries
  74. somewhere on your path before you run the tests, or modify zcc.c.  Edit
  75. Makefile or make.bat in test/ if you need to.
  76.  
  77. Other resources:
  78.  
  79. Michael Haardt has informed of other resources
  80.  
  81. <quote>
  82.  
  83. There are certainly a few options for cpp:
  84.  
  85. o  GNU cpp.  This is only available under GPL, which may or may not
  86.    be suitable for everybody.  Typically for FSF, it tries to do
  87.    everything which makes it quite large.
  88.  
  89. o  Dennis Ritchie's cpp.  Yes, his latest and greatest cpp is available,
  90.    as part of the lcc distribution which is available from ftp.princeton.edu.
  91.    I don't know the distribution policy or anything about its size.
  92.  
  93. J. Hendrix' 2nd edition of the Small C book contains a much nicer version.
  94. I used to use the old and original version back then, which did not
  95. even contain for and switch, although it had float support.  This modern
  96. version is written for the 8086, but it is still _very_ easy to port it
  97. to a framepointer-less architecture.  Perhaps you can include a hint to
  98. that book.
  99.  
  100. </quote>
  101.  
  102. Request: If you find a use for this zcc package, please drop me a email
  103. note. I'm just curious how many people use it.
  104.  
  105. Disclaimer 1: All this is provided as is with no warranty and no
  106. support.  I hope it works for you, but you may have to hack something
  107. for your local setup. You are welcome to email me, but I promise nothing.
  108.  
  109. Disclaimer 2: This has nothing to do with my employment, despite the
  110. email address. It's just for my hobby.
  111.  
  112. 0.96 is the final release. The remaining minor numbers are reserved for
  113. bug fixes.  I won't be doing anything more with this compiler. There is
  114. only so much you can do given the basic limitations in the design.
  115.  
  116.     Ken Yap
  117.     ken@syd.dit.csiro.au
  118.     January 1996
  119.