[net.lang.mod2] Borland CP/M-80 Z-80 Modula-2

dick@ucsfcca.UUCP (Dick Karpinski) (09/30/85)

Here is the discussion I promised so long ago:

Posted: Sun  Sep  8, 1985  12:11 PM PDT              Msg: UGIF-2065-5412
From:   BPETERSON
To:     USUS
Subj:   Borland Modula 2 for CP/M-80

  I have just returned from a meeting of MODUS, the Modula 2 users'
group.  One of the companies represented there was Borland Int'l.
(Thank you Philippe!)  Peter Sollich and Mike Weisert gave a
presentation and demonstrated Borland's Modula 2 for CP/M-80 running
on a Z80!  
  The presentation was a technical one, so there was no
information about release dates, prices, the MS-DOS version, etc.
Also made available was a reproduction of their library, with a
request for comments. The following information is from the notes I
made during their presentation:

  The Modula 2 compiler/linker is about 9000 lines of Modula 2 code.
The implementation style is very similar to that of Turbo Pascal, with
a resident editor/compiler/linker/runtime.  The editor is 
Wordstar-like.
  The compiler generates a psuedo-code which can be interpreted, but
it can also be directed to generate Z80 (_not_ 8080) machine code.
This option is on a module by module basis, giving the developer the
choice of the compactness of psuedo-code and, where needed, the speed
of machine code.  The resident part of the package is about 24K.  Most
of this is runtime support and the psuedo-code that implements the
compiler.
  On a 6MHz Z80 compile speed is a bit less than 1,000 lines per
minute.
  The binding together of separately compiled modules can be done
explicitly using the linker, or implicitly using the linking loader. 
The compiler/linker can produce standalone CP/M code files.  The
linker can bind into a Modula program any object file that is in
"standard Microsoft format".  I assume this means that a Modula 2
program can call assembler or other language subroutines.
  There is a "librarian" utility for building up libraries of modules.
The supplied SYSLIB.LIB contains about 30 modules.

  The language implemented is basically that of Professor Wirth's 
"Programming in Modula 2, Revision 3 with corrections" plus the
LONGCARD, LONGREAL, and LONGINT of his revision letters.  TRANSFER and
IOTRANSFER are implemented.
  Sets are currently limited to 16 elements, but this is likely to
change before the product is released.  Also coming is the ability to
return structured results from function calls.
  Extensions include relaxed string assignment rules, Pascal-like I/O
(readln, writeln) in the compiler, and exceptions.  Case sensitivity
can be turned off with a compiler switch, and extensions used will be
flagged if another compiler switch is turned on.
  The runtime system does NIL pointer checking.  Reals are in IEEE
format.
  The library supplied with the system seems pretty reasonable.  A 
real evaluation will have to wait until it can be used.

  The Turbo Pascal Toolbox will be available in Modula 2, apparently
at the same time the compiler is made available.


  I'm _very_ pleased the compiler implements the standard.  I
have high hopes the MS-DOS version will be just as standard.  (I say
that after being somewhat of a thorn in Borland's side re: nonstandard
parts of Turbo Pascal!)

                                -EOF-
Dick

-- 
Dick Karpinski    Manager of Unix Services, UCSF Computer Center
UUCP: ...!ucbvax!ucsfcgl!cca.ucsf!dick   (415) 666-4529 (12-7)
BITNET: dick@ucsfcca   Compuserve: 70215,1277  Telemail: RKarpinski
USPS: U-76 UCSF, San Francisco, CA 94143