Subject: REVIEW: Macro68 assembler (and brief assembler comparison)
From: [email-masked] (Dimitri Tom Dussias)
Date: 23 Apr 1993 19:53:43 GMT
Newsgroups: comp.sys.amiga.reviews

PRODUCT NAME

	Macro68 version 3.165

BRIEF DESCRIPTION

	Macro68, the best 680x0 assembler on the Amiga!

AUTHOR/COMPANY INFORMATION

	Name:		Digisoft
	Address:	12 Dinmore Street
			Moorooka. 4105
			Brisbane, Queensland
			Australia

	Distributed in the USA by:

	Name:		The Puzzle Factory
	Address:	PO Box 986
			Veneta, OR  97487
			
	Telephone:	(800) 828-9952

LIST PRICE

	$150.00 (US retail).  I paid about ~$135 for my copy, including
shipping and COD charges.

SPECIAL HARDWARE AND SOFTWARE REQUIREMENTS

	HARDWARE

		None.  

		I would recommend at least 1 MB RAM -- the more the better!
		I would also recommend a hard drive, but it's not necessary.

	SOFTWARE

		None.
		Works with  2.04 & 3.0 versions of the OS.
		(Also 1.2 & 1.3, but who still has these? :') )

COPY PROTECTION

	None.

MACHINE USED FOR TESTING

	Macro68 has been tested on:

	A1000 : 512K Chip RAM, 2MB fast RAM, Kickstart 1.3.
	A1200 : 2MB Chip RAM, Kickstart 3.0.
	A2000 : 1MB Chip RAM, 6MB Fast RAM + a 68040, Kickstart 2.04 

REVIEW

	(This is my first review, so go easy on me:  I am a CS major, NOT an
English major!)

	Macro68 has to be the BEST assembler on the Amiga yet available!
This is one great assembler; offering EXCELLENT flexibility and control, it
also is THE fastest assembler I have seen.  Macro68 has a fantastic ability
to configure to whatever you want it to do.  You can change most anything in
Macro68:  from the opcodes, to the way Macro68 reports errors!  It also
supports an external command interpreter (like ARexx).

	Let's compare a few assemblers out there, starting with the PD
assemblers like A68K and the rest.  These are OK if you are on a tight
budget (can you say free?), or you just want to try some stuff out in
assembly.  But in reality, no one would ever use any of these to write
commercial-grade code.  You can take a look at them, and play with them, but
not much else.  

	Now, SEKA:  basically, if you got this, then get rid of it!  Why?  It
really is an old product.  While it has some useful stuff in it like
reading/writing disk sectors directly (i.e., load Bootblock), has a
disassembler in it, and lets you modify memory directly, it also does not
support any of the '020 or above opcodes, and it has some major bugs!!  This
product has NO support available, since no one is doing updates!  (No one
worth mentioning that is.)  Oh, it also uses non-standard opcodes, like
blk.l instead of the correct dcb.l.

	Next on the list is ArgASM.  Since this product is not supported
anymore (or so I am told), don't bother with this either.  It also has some
major bugs in it and is basically SEKA with a face lift.

	Next, we take a look at CAPE V2.5.  This was actually a pretty good
assembler, but with a crummy editor built in.  They also included a
standalone version without the editor.  This product is not being produced
anymore, but I hear it still is being sold by INOVAtronics.  This also does
not support any 68020/30/40/MMU opcodes. This assembler shows its age:  it's
slow, and since the author has moved on to ADAPT, you should also move on....

	Next is ADAPT (HX68).  This is the update to CAPE, and it comes with
no built-in editor.  It is a standalone program, has ARexx support, and
supports 68020 opcodes (maybe 030 & 040, but I only played with it a day or
so).  It does not support the new syntax that Motorola has defined.  This is
better than all the above, but still can't compare to Macro68!

	Next we take a look at assemblers supplied with SAS/C and Aztec C.
Basically, they come free with the C compiler, and are not really that fast,
and neither support the new syntax that Motorola has defined.  You can use
these; however, I found that they are more trouble too use, so why go
through the pain, unless of course you only write small programs in
assembly!  

	Finally, there's Devpac.  This is a very nice assembler:  it's fast,
has some good support, and the newest version also supports 68020 and
opcodes!  It does not support the new syntax as defined by Motorola though!
Devpac has a nice editor built in, and allows you to control optimization
levels and other miscellaneous stuff via a control panel.  It also has a
debugger which is fairly useful.  No real problems with Devpac, but it does
not offer the level of customizing that Macro68 does.  This assembler would
be my choice if Macro68 wasn't produced. 

	That is a quick look at what the competition offers, and none of them
can match what Macro68 has to offer.  Macro68 even includes a utility to
convert all your old source code to the new syntax defined by Motorola!
In case you're wondering what the heck this new syntax is, its basically
a better way to code.  I think a small example is in order.

	Take this small code stub:

		Old syntax			New syntax
		----------			----------
	  move.l Gbase,a6		     move.l (Gbase),a6
	  lea	data(pc),a4		     lea (data,pc),a4
	  jsr	_LVOWait(a6)		     jsr (_LVOWait,a6)
	  move.w d1,20(a0)		     move.w d1,(20,a0)

	While I won't go into what those instructions do, they do make it
more clear what's happening!  Motorola did a nice job on this!  Now, back to
Macro68.  It's ultra configurable:  the ONLY assembler I have used that
allows you to create your own opcodes!  For example, some assemblers use the
opcode "blk.l" instead of the "dcb.l" instruction.  If by chance you run into
source code that has this, you can instruct Macro68 that when ever it sees
"blk", to compile it as if it were "dcb"!  You can even introduce new
opcodes in case, say, the '060 comes out with new instructions and you would
like to write '060 specific code.  Just edit your custom file, insert the new
opcodes and how they should be translated, and voila!  You have a 68060
compiler!

	You can basically edit all the ASCII output that Macro68 produces
and change the way it reports errors (or whatever) too you.  So, instead of
say "ERROR on line 322, invalid opcode," you want it to say "{turn on some
Blue text with a white background} ERROR! {change colors} invalid opcode on
line 322!"  Or whatever... you can change lots of things, including adding
more information like what pass the compiler is on, the filename of the
source that contained the error (for compiling multiple source files), etc.
You can basically tell it what YOU want to see!  You can change anything to
fit your needs.  

	Perhaps the best reason to get Macro68 is the speed.  Today, I
compiled my 1485 lines of code in under 1 second!  (On my A2000 + 68040.)
This assembler really is a speed demon!  And that code contained lots of
"defines" from C= include files.  

	I really don't know what more to say.  I truly believe that this IS
the BEST assembler ever produced.  Nice job Digisoft!  Oh, I forgot to
mention that Macro68 also supports the 68881/68882 floating point units and
the 688851 MMU.  It also has support for the Amiga Copper, but I can't
recommend you use this since this only works with the older Kickstart:  the
copper list has changed format in Kickstart 3.0!!!  But it does work for
1.2/1.3/2.04 versions of the OS, and nicely at that!

DOCUMENTATION

	The manual that comes with Macro68 is about 127 pages long and tells
you all the important information you need to get started.  This manual does
NOT try to teach you assembly; so if you're a beginner, buy a good book.
Since I come from a technical background, I found the manual easy to
understand.  It is better written than (say) the SUN SPARC manuals, but not
as nice as the SAS/C manuals. It also does a good job at explaining how to
configure files to suit your needs.  It also has a list of all the
opcodes/directives it supports; but again, if you don't see what you want,
add it yourself!  :')

LIKES

	What can I say, I really love Macro68!  It IS the BEST assembler!  I
love the ability to configure basically everything about Macro68!  Also, a
big THANKS for the new syntax conversion utility!

DISLIKES

	About the only thing missing from Macro68 is they don't supply a
debugger with Macro68 as Devpac does.  However, if I wanted a good
debugger, I would get the New Metascope!!  But I can always wish that
Metascope came with Macro68! :')

	And, I really wish that Digisoft would make a control panel that
could control the compiling aspects of Macro68 like optimization level, what
LIBS to include, screen out certain warning messages...  essentially, I want
something similar to what SAS/C offers with SCOPTS!  Macro68 does have a
mini-version of this called M68Iface, and its source code is included, but I
rather have them do it.  Call me lazy....

	Um, lastly, it would be nice to hear if any updates have been
released, but I imagine that this could be expensive.  But what's the point
of sending in the registration card then? I didn't even get a form letter
saying "Thanks for getting Macro68...if you have any problems call...."
Then again, the only info I got from any of the above assembler companies
was from INOVAtronics (about Metascope) and Aztec (about V5.x of the
compiler), and not a word from anyone else!  Call me silly, but I would like
to be noticed!

BUGS

	None that I have run across, and I have compiled more than 10
gigabytes of source with Macro68.  No crashes or bugs yet!

VENDOR SUPPORT

	Since this product is made in Australia, the USA support team is The
Puzzle factory.  I have not called them since I haven't had any problems!
However, I will most likely be contacting them in the future to get the new
3.0 include files as soon as C= releases them!  

WARRANTY

	None really, except that they will replace defective program disks.
(Maybe more, but I really don't know!)

CONCLUSIONS

	All I can say is if you're looking for a FAST assembler that is easy
to use and supports ALL Motorola 680x0 chips, then get Macro68.  You won't be
sorry!

COPYRIGHT NOTICE

	Copyright 1993 Demetri Dussias.  All rights reserved.
---

   Daniel Barrett, Moderator, comp.sys.amiga.reviews
   Send reviews to:	[email-masked]
   Request information:	[email-masked]
   Moderator mail:	[email-masked]