<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>
Date   : Thu, 15 Mar 1990 08:52:54 GMT
From   : eru!luth!sunic!dkuug!freja.diku.dk!skinfaxe.diku.dk!jensting@bloom-beacon.mit.edu (Jens Tingleff)
Subject: Z80 Compilers & Cross Compilers

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

<< Previous Message Main Index Next Message >>
<< Previous Message in Thread This Month Next Message in Thread >>