ralph@uhheph.phys.hawaii.edu (Ralph Becker-Szendy) (03/02/91)
Dear cp/m addicts, I am looking for a C compiler. Not just ANY OLD C compiler. I want one which generates code which can be linked into Z80 Assembler. Here is the problem: The monitor part of my BIOS (the thing which sets up the machine before booting cp/m) is currently written in SLR assembler, as is the rest of the BIOS. The amazing capabilities of the SLR assembler and virtual linker make cross-linking between BIOS and monitor quite easy. However, the monitor is getting longer and longer, and soon (with all the bells and whistles which will be required for SCSI disks as soon as I get the low-level SCSI driver to work, backup to SCSI tape, managing partitions on the disk and storing the setup of the machine in NVRAM) it will become a burden to write all this in assembler. So I am looking for a C compiler with the following capabilities: - ROMable code (that doesn't mean anything exceeding the following requirements, the code actually runs in RAM), - Generate fairly tight code (it all goes into EPROM, and 32kB EPROM isn't that much if a whole C run time library wants to get into that), - Define subroutines and data structures at arbitrary addresses (so it can call assembler routines and access BIOS data structures), - Call assembler subroutines with control over nearly all registers (so it can pass and receive parameters from BIOS-internal routines), - C routines have to be callable from assembler, and there will be no MAIN program, - Code can be generated at any address, and the position of stack and heap can be moved, - The IO library can be replaced or modified (source code would be best), since no BDOS is present when the program runs all IO has to be through BIOS calls or assembler routines internal to the BIOS, - The compiler has to generate Microsoft or SLR type .REL files, because the linking has to be done by the SLR linker, - or even better, it may to generate assembler source which can be assembled by the SLR asssembler. Quite certainly my otherwise very nice MIX-C compiler will not do that. I know of a few other C compilers (there is a PD small-C compiler on SIMTEL, and one in VOL224 or the SIG collection), I hear that some compilers are still being sold (for example by Jay Sage, or Aztek-C, and MI-C is still available for lotsof money in Germany, not identical to the low-cost MIX-C), and others may be defunct (C/80 and Quick-C come to mind). Are any available (frree, new for sale, or "used" someone wants to unload) which can fill these requirements ? By the way, I am in no way restricted to C. I would actually prefer other languages like Pascal or Modula-2, but with those fancy languages the chances of finding a compiler whose output can be linked into assembler are even slimmer than with C. For the long-term future (as soon as I finish my dissertation I might have some spare time), are there any compilers which generate real Z280 code ? Or, for that matter, even assemblers (I am not counting macro libraries which define funny opcodes for the new Z280 instructions) ? That topic pops up every so often. I hear of a few expensive cross-developments systems, but that's no fun. -- Ralph Becker-Szendy UHHEPG=24742::RALPH (HEPNet,SPAN) University of Hawaii RALPH@UHHEPG.PHYS.HAWAII.EDU High Energy Physics Group RALPH@UHHEPG.BITNET Watanabe Hall #203, 2505 Correa Road, Honolulu, HI 96822 (808)956-2931