home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / JSAGE / ZSUS / PROGPACK / SMALLC-Z.MZG / SMALLC-Z.MSÇ
Text File  |  2000-06-30  |  4KB  |  86 lines

  1.  
  2. the intent of this blurb is to see if there is any interest in a little 
  3. project i've been toying around with - a zcpr version of the small-c 
  4. compiler. small-c is not a full c, but:
  5.  
  6. - the source is available and enhancements are possible. (i've done a 
  7.   few that are detailed below. if there is real interest, others are 
  8.   possible.)
  9. - it produces reasonable code for what it is, and that too can be 
  10.   improved upon.
  11. - it is free and documentation on 2.1 can be purchased. i'd like to 
  12.   make that unnecessary, tho...
  13. - it allows in-line assembler code, and you can link separate modules, 
  14.   which can be assembler or small-c. this also means that if your 
  15.   linkable libraries are properly constructed, your programs only 
  16.   contain code they actually use (some compilers have bloated runtime 
  17.   routines).
  18. - it supports redirection. one direct example of a benefit of this is 
  19.   that you can crank up the compiler without an input file, type in 
  20.   code at the keyboard, and actually see the assembler code it generates 
  21.   on the screen.
  22.  
  23. the version i currently have:
  24.  
  25. - is based on small-c version 2.1, which is the most recent 8-bit 
  26.   version and the one that the books and source code marketed by dr. 
  27.   dobbs support.
  28. - now outputs z80 rather than 8080 mnemonics for assembly.  default 
  29.   filetype is .Z80 to support the slr assembler/linker combo. i think 
  30.   they still work fine with m80/l80, but the latter are slow enough to 
  31.   drive me crazy, so i haven't tried lately.
  32. - sets the zcpr program error flag on exit if compile errors were 
  33.   encountered to facilitate aliases and zex/submit files that don't do 
  34.   unnecessary assemblies.
  35. - is capable of writing a standard zcpr "z3env" header to its assembler 
  36.   source output file with a "-z" command line switch.  defaults to a 
  37.   type one environment, but generates type 1-4 with -z1, -z2, -z3, and 
  38.   -z4 switches. if one of these switches is specified, three global 
  39.   variables are created, one containing the environment type, one 
  40.   pointing at the environment descriptor, and one pointing at the base 
  41.   of the program in memory. this last is in support of type 3 and 4 
  42.   programs. these are accessible without declaration in the main
  43.   module. other modules must declare them external.
  44.  
  45. the possibilities are limited mainly by the imagination and effort.  
  46. for example:
  47.  
  48. - writing downloadable documentation of the compiler and library(ies).
  49. - optimizing/enhancing the code in the standard clib for both size 
  50.   and speed.
  51. - making the file i/o routines in the clib respect zcpr standards 
  52.   (multiple user areas, named directories, etc.) one would want to 
  53.   retain the ability to redirect stdin and stdout tho.  - writing 
  54.   equivalents of vlib and z3lib. given source to those this could be 
  55.   relatively easily done, with the major changes involving interface 
  56.   (parameters to and return codes from the functions).
  57. - optimizing the code the compiler itself outputs. there may be a 
  58.   variety of things that can be done regarding this, tho i haven't 
  59.   looked into it in detail yet.
  60. - it may be possible to build profiling routines into the compiler and 
  61.   clib that are invoked with a compiler option, imbedded into the 
  62.   compiled program, and help debug or identify "hot spots" in the code 
  63.   that are candidates for optimization. the profiling code could later 
  64.   be left out of the final version of the program by recompiling.
  65. - one would imagine that almost any kind of debugger could be written  
  66.   that is possible within the memory constraints involved, since the 
  67.   compiler can be changed to support it. source level debugging anyone?
  68.  
  69. if you are interested in this either because you'd like to see a zcpr 
  70. public domain higher level language, or because you find the concept 
  71. interesting and would be into working on one or another aspect of it, 
  72. let me know. if there is enough interest, perhaps something can be 
  73. organized. input is appreciated in any case. i have only so much time, 
  74. energy, and ideas.
  75.  
  76.  
  77.  
  78. i'm reachable at the following boards in chicago:
  79.  
  80.             lillipute znode 1    (312) 649-1730
  81.             lillipute znode 2    (312) 649-1730
  82.             the advocate        (312) 939-4411
  83.  
  84.             al grabauskas        10/19/88
  85.  
  86.