🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: net.micro.atari16
Article #1055

Mini-review of Megamax C

#1055
From: Charles L Ditzel
Date: Sat, 31 May 1986 17:58
174 lines
6789 bytes

Subject: Megamax C
Newsgroups: net.micro.atari16
Distribution: net


I recently received Megamax C and my first impressions are very favorable.

Having *suffered* with trying to deal with an Apple Mac Plus and both
DeSmet C and Aztec C ...i appreciate what Megamax has done on the
Atari. Of course some of the problems with the Mac Plus are non-existent
on the Atari.  For starters, the ST has had a hierarchical file structure
from the very beginning...(Apple's recent introduction of their HFS is  
surprising in its lateness and is causing problems with existing software
packages that depend on their original flat file structure).

In any case...on to the good stuff...

The Megamax development package comes with two single sided diskettes
and a thick binder with the documentation.  The layout of this binder
is :
	1: The Atari ST Environment
	2: Language Extensions
	3: The Linker
	4: Megamax Shell
	5: Megamax Editor
	6: Megamax Resource Construction Program
	7: Librarian
	8: Disassembler
	9: Code Improver
	10: Unix Compatible Routines
	11: GEM AES Routines
	12: GEM VDI Routines
	13: Bios Routines
	14: Xbios Routines
	15: GEM DOS
	16: System Globals
	17: Error Codes
	Appendix A: Header Files
	Appendix B: System Limits and Extensions
	Appendix C: Keyboard Codes
	Index

(Yes - shockingly an *index*.  Anyone that has had anything to do with
both the Manx Aztec compiler documentation for both the PC and the Mac
may faint...)

The diskettes included contain:
	-compiler
	-system library
	-graphical shell
	-desk accessory library
	-linker
	-editor
	-header files
	-double precision library
	-examples
	-code improver
	-resource construction program
	-disassembler
	-librarian
	-megaroids (a game written in Megamax C)

A note : a make facility is included.

Apparently for $50 one can also get the source code listings of system
library functions. (these are not included in the Megamax development
package).

Updates will cost $20.

The Megamax C package is capable of being used off the:
	1) GEM Desktop
	2) Beckmeyer Micro C Shell (unix-like shell) or COMMAND.TOS 
		(I haven't tested this out)
	3) Megamax Graphical Shell

Graphical Shell:
So far not only have i found the Megamax graphical shell(gs) tolerable 
but also likeable.  Tho' my preference i suspect will eventually be the Micro
C shell. So far i have found the gs pretty good.  

Editor:
The editor that is supplied is from acceptable to good.  I *really*
disliked the editor supplied with the Atari/DRI development package.
The megamax editor is quirky on two points: find and the arrow
keys - if these are editor quirks and not my own doing.

Resource Construction Program:
Is similar but not identical to the DRI RCS.
The DRI RCS has some trash can and clipboard icons not found in the Megamax
version. The Megamax RCP instead uses a pull down menu to accomplish these 
functions.  I didn't use those icons for much but some people may miss them.
Megamax improved significantly over RCS by including an icon design tool.
Additionally they include an options menu that has a sort (sorts the
tree structure of the immediate children of the selected object).

Librarian:
I have not got around to looking at this.

Disassembler:
ditto.

Code Improver:
ditto.
The code improver "performs simple branch optimizationss on an object file that
has never been in a library.

Unix compatible routines:
abs,atof,close,toupper,tolower,_toupper,_tolower,toascii,creat,isalpha,
isupper,islower,isdigit,isalnum,isspace,ispunct,isprint,iscntrl,isascii,
exit,_exit,fclose,fflush,ferror,feof,clearerr,fileno,fopen,freopen,fread,
fwrite,fseek,rewind,ftell,getc,getchar,fgetc,getw,gets,fgets,lseek,malloc,
free,calloc,open,printf,fprintf,sprintf,putc,putchar,fputc,putw,puts,
fputs,rand,srand,read,sbrk,scanf,fscanf,sscanf,setbuf,setjmp,longjmp,
strcat,strncat,strcmp,strncmp,strcpy,strncpy,strlen,strtol,atal,atoi,ungetc,
unlink,write

footnote: i asked megamax if a system() function existed...they pointed to
execv(name,argv) --- (char *name; char *argv[]) as existing but being
undocumented...i tried this and couldn't find it...

AES,VDI,etc:
I haven't had time to examine AES, VDI, Bios and Xbios functions but a
cursory glance tells me I don't seem to be missing anything that I 
have in the DRI/Atari development package.  I have ported a couple of
things that seem to work nicely.  The port times were pretty good.

Another nice feature in the documentation is a listing of all the
system globals, errors, header files.

C compiler:
I had program (written with DRI C) that put up a menu bar and window
it ported in 10 or 15 minutes. Of that time 95% of the time
was spent in the editor.  The main problem stemmed from
using some of the unportable #defines from DRI's <portab.h> - 
BYTE, LONG, WORD..  Megamax C complained...about the DRI RCS generated 
C code using these keywords...i changed these to the more portable char,
long,int and all was well...The compiler is pretty fast (tho' i 
have a one megabyte ST which helps :) 

*compiler is a one pass compiler.

*space used by a program at run time is divided into a number of segments.
Each segment may contain up to 32KB.

*8KB stack space. changeable by modifing the init.c file in the system
library.

*linkable object code is generated directly. no assembly post-pass.

*overlay mechanism

*inline assembly code


Linker:
*smart linker - loads only what is need.  
*gives stats

CONCLUSION
The overall package is a streamlined well documented one (includes explanations
a la unix man pages of all unix,aes,vdi,bios,xbios functions).  In my mind
it accomplishes in considerably less paper what the messy Manx Aztec C
documentation can not do in hundreds of pages.  

This mini-review is should in no way be taken to be a comprehensive 
examination of the product.  These are just my observations.  

My current feeling about the package is very positive.  It seems to be
the environment I was hoping to find.  The fact that i can use it in
a number of environments (Micro-C shell,Command.tos,GEM desktop, megamax
graphical shell) provides an even more flexible package.
Technical Details
Message-ID: <564@ssc-bee.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!linus!philabs!cmcl2!seismo!rochester!bullwinkle!uw-beaver!ssc-vax!ssc-bee!ditzel

Show Full Headers
Complete Article Headers
Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Path: arc1-ca.pugleaf.net!utzoo!linus!philabs!cmcl2!seismo!rochester!bullwinkle!uw-beaver!ssc-vax!ssc-bee!ditzel
From: ditzel@ssc-bee.UUCP (Charles L Ditzel)
Newsgroups: net.micro.atari16
Subject: Mini-review of Megamax C
Message-ID: <564@ssc-bee.UUCP>
Date: Sat, 31-May-86 13:58:50 EDT
Article-I.D.: ssc-bee.564
Posted: Sat May 31 13:58:50 1986
Date-Received: Tue, 3-Jun-86 22:24:39 EDT
Distribution: net
Organization: Boeing Aerospace Co., Seattle, WA
Lines: 174