MEGAMAX C

               "Don't even think about another C compiler"

                       Reviewed by MIKE FLEISCHMAN

  Megamax C ($199.85), a new C compiler for the ST, is a full Kernighan
  & Ritchie implementation of the language. It supports floating point,
  overlays, recursion, batch processing and custom libraries. Aside from
  the Digital Research Inc. (DRI) Alcyon C, which comes in Atari's $300
  ST Developer's Kit, Megamax is the only C that comes with a resource
  construction set that creates GEM objects such as menus, dialog boxes
  and icons. It also supports all the AES, VDI and GEM routines.

  Megamax C has an environment shell that makes program development a
  joy. The shell supports and allows access to the editor, compiler,
  linker, librarian and any other program that can run in TOS.
  Initiation of programs is through drop-down menus.

  The shell has a locate function which lets you tell the system where
  you have placed development programs such as the compiler and linker,
  as well as a MAKE file containing the compile and link commands for a
  specific program. The shell takes its commands from athe MAKE file and
  runs automatically, permitting a compile and link with one click of
  the mouse.

  To use this file, pull down the utilities menu and click on the MAKE
  line. If any changes have been made, the shell then compiles and links
  the program. Thus development in the shell is efficient: you click on
  the editor, modify your program, leave the editor and then click on
  the MAKE file. Errors would be placed in an error file, cancelling the
  MAKE process, and you are returned to the editor with two screens
  coming up automatically. The first screen displays the source code to
  the program you were compiling and the second shows the error file.
  This allows you to correct the errors while looking at the error file.
  The shell also lets you to rename or delete files and use whatever
  desk accessories you have running.

  SIX TIMES FASTER

  One of the first things you want to know about a programming language
  is its speed. I used a 3.5-inch disk system and a Sieve program to
  compare this compiler to Alcyon C. The Alcyon compiled and linked the
  Sieve program in six minutes, seven seconds. The resulting code was
  11,852 bytes long, taking 2.47 seconds to run. The Megamax compiled
  the Sieve in one minute, 34 seconds--almost six times faster than
  DRI's Alcyon C. The code was 6,049 bytes long--just over half the
  length of the DRI compilation. And it took 2.28 seconds to run.

  I also compared the compile and link time for the Apskel.C
  (application skeleton) program that comes with both packages. The DRI
  compiler took four minutes, 16 seconds, producing object code 6,086
  bytes long. The Megamax C compiler ran in 41 seconds and produced
  4,808 bytes of object code. The DRI-supplied linker took two minutes,
  17 seconds to link, producing a program of 4,315 bytes. The Megamax
  linker took 59 seconds and produced a program 4,058 bytes long. With
  Megamax C you can comfortably do development on a single disk. The DRI
  system requires two disks or a hard disk drive.

  EDITOR EXCELS

  The mouse-driven editor is easy to use, Which I found hard to get used
  to at first--being a veteran of MicroEmacs and other
  keyboard-controlled editors.

  The design of the editor shows that a great deal of thought went into
  it. The main commands are accessible from both the drop-down menus and
  the keyboard. You can open multiple file windows at once and move
  information between them. The windows can be in Overlap or Tile mode
  (where they don't overlap). You can cut and paste blocks, delete
  marked blocks or shift marked text right or left.

  One real lifesaver is the Undo key buffer--if, for example, you've
  erased half of your program, just press the Undo key and it all comes
  back. This has saved my skin several times already.

  The editor's configuration menu allows it to be customized to almost
  anyone's taste. You can set the tab size, toggle the auto-indent mode,
  choose the auto-save feature, make the tabs visible, or turn the case
  sensitivity on and off. The auto-save feature is handy if you live
  where electric power isn't too stable. The editor supports full
  search-and-replace features as well as a GOTO-line command. It also
  has a built-in table of the C operators and their precedence, which
  adds a nice touch. Finally, there is an information screen that gives
  you statistics on the program you are currently editing.

  SINGLE PASS

  A primary reason for the Megamax C compiler's speed is that it is a
  single-pass compiler. It only needs to read once through your source
  code to generate code for the linker. This is quite different than
  DRI's Alcyon C, which is a three-pass compiler. Single-pass compilers
  often have restrictions on how you must place your code (most often a
  function must be defined before it can be used). I am happy to report
  that Megamax has somehow gotten around this. After using that system
  for some time now, I have yet to run into anything that hints at those
  single-pass limitations.

  The Megamax compiler also allows in-line assembly code, so you don't
  need to buy an assembler for time-critical routines. Unlike some other
  languages, the assembler isn't cut-down, nor does it require you to do
  most of the assembly by hand. Rather, it's full-featured. Just type
  ASM and a left curly bracket. From this point on, until a right curly
  bracket is encountered, write as though you were in an assembler, and
  the compiler will act as one.

  Since the assembler is part of the compiler it has two major
  advantages. First, the code is efficient and well integrated into the
  program. Second, all the variables that would normally be accessed by
  a function are available to the assembly code, greatly simplifying the
  passing of data to the assembly routine.

  LIBRARY LINKER

  The linker is more complex than the DRI counterpart and it allows use
  of multiple libraries. Aside from the default system library, you can
  add your own custom libraries containing your functions and routines.
  The linker will load in only the library modules that the code needs.
  So your programs use only the routines necessary, instead of having
  the code for the whole library tacked onto it. The linker handles the
  process of overlays automatically. You don't need to specify anything
  in your code other than the word "overlay." The linker takes care of
  all the headaches.

  The linker also gives you priority over the functions in the
  libraries. Any name that you define in your program is given
  precedence over the one in the library, so you can customize functions
  as the need arises. But the cost of all these benefits is speed. I
  found the Megamax linker to be only twice as fast as the DRI linker.

  As if all of these features weren't enough, the Megamax package also
  includes a code improver (speed increase about 3 percent, size
  reduction about 10 percent), a disassembler and a librarian for
  setting up your own libraries.

  The resource construction set is also a nice surprise. It seems easier
  to use than the Atari version. The documentation is complete and
  includes all the ST system calls. But don't expect to learn the
  language or the interrupt system from the manual, it was written to
  provide information on the implementation, not to teach.

  Under Megamax's upgrade policy, you send in your master disk and a
  check for $20, and you'll receive the latest revision and all
  necessary documentation updates. Also, them are no royalties for
  selling programs produced with Megamax.

  THE 32K DRAWBACK

  There an a few drawbacks to Megamax C, though. It cannot compile into
  blocks larger than 32K, due to the limits of the computer that the
  progam was ported from. This means you must use overlays for large
  programs.

  Arrays also cannot be larger than 32K, so moving an entire screen gets
  a bit tricky if you expect to do it in an array. But you can access
  plus or minus 2 billion bytes by using pointers, so this isn't very
  hard to overcome.

  Megamax C is a good deal. If you plan to program in C on the Atari ST,
  don't even think about another C compiler. This one has it all. The
  ease of use and the speed of compilation would pay for Megamax C just
  in the time saved.

  MEGAMAX C
  Megamax, Inc.
  P.O. Box 851521
  Richardson, TX 75085
  (214) 987-4931
  $199.95.