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