Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: 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 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 - 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.