Phlebas@cup.portal.com (Peter Peter Weldon) (03/10/90)
I am looking for Z80 compiler or cross-compilers that can produce stand alone code for an embedded real-time enviroment. Pascal, C, Forth or Modula 2 compilers are what I am looking for. Cross compilers hosted on a PC are also fine. Does anyone have any suggestion. If you mail I will summarize on the net.
jensting@skinfaxe.diku.dk (Jens Tingleff) (03/15/90)
Phlebas@cup.portal.com (Peter Peter Weldon) writes: >I am looking for Z80 compiler or cross-compilers that can produce >stand alone code for an embedded real-time enviroment. >Pascal, C, Forth or Modula 2 compilers are what I am looking for. >Cross compilers hosted on a PC are also fine. Does anyone have any >suggestion. If you mail I will summarize on the net. I have used Hochstrasser M-2 for a stand-alone system with great success. Hochstrasser sold the right for Hochstrasser M-2 to some-one else (or did his company simply fold..). That some-one else also markets a cross compiler that runs on PC (I think). Anyway, you could just run the CP/M80 version on a simulator on a HUGE PC, that should be plenty fast.. . Apart from the lack of a symbolic debugger, I can find no fault with Hochstrasser M-2. Due to the simplicity of the language (i.e no file-system unless required, no fancy graphics or anything) you have a very good idea of what goes into your ROM's. The code produced is fairly compact, my 1100 line program compiled into appr. 4K of code. The code is fairly stable (i.e. I have NEVER found an error), the compiler is compiled by itself.. . You can buy the assembler source for the run time library, which means that -a you can use sophisticated commands of super-Z80 processors, or coprocessors. -b you can catch the error messages (only three : REAL math overflow, out of heap & out of stack). Alternatively you can move the code up (using the linker to do this), so that a call to address 0005 (BDOS entry) leads to a re-start.. . The linker of the Hochstrasser system can be made to put the code / data / heap / stack anywhere, so that a system with non-contiguous and/or mixed RAM-ROM memory works. You can interface assmebler routines (using a normal DEFINTION module, and a converter program to make a REL file appear to be compiled by Hochstrasser) to the code with no problems. This is not really necessary (unless you want speed, in which case I'd recommend a 68000 based system..), except for port IN/OUT routines that are no provided in the normal system (again included in the runtime lib source). The language supported conforms to Ed.2 of Wirths book, except it doesn't provide co-routines or interupt handlers. Co-routines and INT handlers are, however, included in the runtime library source. The price is reasonable, even for hobby use. Mail me if you want specifics of the company currently selling Hochstrasser M-2 (I only hope I didn't throw out their letter), alternatively you could talk to Grey Matter, the british shop that sells compilers, they advertise in BYTE, call them on phone for good service, write them for slow service..) As for the general suitability of M-2 as a language for embedded systems, I can only say that I prefer it to anything. You can fiddle with bits as much as you like (which makes programming of peripherial chips a breeze), and at the same time have a tight type-checking sytem etc. Jens jensting@diku.dk is Jens Tingleff MSc EE, Research Assistent at DIKU Institute of Computer Science, Copenhagen University Snail mail: DIKU Universitetsparken 1 DK2100 KBH O