Path: menudo.uh.edu!usenet From: 22dussia@cs.wmich.edu (Dimitri Tom Dussias) Newsgroups: comp.sys.amiga.reviews Subject: REVIEW: Macro68 assembler (and brief assembler comparison) Followup-To: comp.sys.amiga.programmer Date: 23 Apr 1993 19:53:43 GMT Organization: The Amiga Online Review Column - ed. Daniel Barrett Lines: 256 Sender: amiga-reviews@math.uh.edu (comp.sys.amiga.reviews moderator) Distribution: world Message-ID: <1r9hg7$qdg@menudo.uh.edu> Reply-To: 22dussia@cs.wmich.edu (Dimitri Tom Dussias) NNTP-Posting-Host: karazm.math.uh.edu Keywords: assembler, programming, 68000 family, commercial 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: amiga-reviews-submissions@math.uh.edu Request information: amiga-reviews-requests@math.uh.edu Moderator mail: amiga-reviews@math.uh.edu