[comp.sys.atari.st] assemblers

bissiri@blake.acs.washington.edu (Moja Fritzah) (05/02/89)

Does anybody care to respond: WHat is your favourite assembler, and why?

-kevin

bissiri@blake.acs.washington.edu (Moja Fritzah) (05/03/89)

Someone on the net recommended Assempro as the assembler of choice.
THis person said that the program is a GEM program.
DOes it also support a command line interpreter?  

ANy complaints/raves about Assempro?  Other assemblers preferred?

Thanks for the help.

-kevin

usenet@TSfR.UUCP (usenet) (05/03/89)

In article <1837@blake.acs.washington.edu> bissiri@blake.acs.washington.edu (Moja Fritzah) writes:
>Does anybody care to respond: WHat is your favourite assembler, and why?

  Alcyon.  It's moderately quick on the my handmade assembly, I trust it more
than Sozobon jas, and it backends the Alcyon C compiler.  I've not used any
other assemblers for the ST (MadMac scared me off by warning me that it would
not generate code that was as good as the Alcyon assember - and I'm _very_
keen on compact binaries.)  If you include other machines, then Macro-11 is
what God himself intended an assembler to be....


   -david parsons
   -orc@pell.uucp

cs163afu@sdcc10.ucsd.EDU (Some call me...Tim) (05/04/89)

In article <1837@blake.acs.washington.edu> bissiri@blake.acs.washington.edu (Moja Fritzah) writes:
>Does anybody care to respond: WHat is your favourite assembler, and why?

MadMac in the Atari Developer's kit, for one reason:  Speed.

I've seen MadMac assemble three files, link them, and run them from
a hard disk in about three seconds.

It's code isn't "optimized."  What this means is that branches don't
get cut to short branches.

Therefore each branch you use takes up 4 bytes instead of two.
EXCEPT, of course, if you include an extension (bra.s or bra.b),
in which case the branch is forced to short.

And if you really want it optimized--after you have it running, use
the Alcyon assembler at that point.  They are completely code
compatible.

------------
Tim Mensch
Internet: tmensch@ucsd.edu

apratt@atari.UUCP (Allan Pratt) (05/05/89)

In article <99@sdcc10.ucsd.EDU> cs163afu@sdcc10.ucsd.edu.UUCP (Some call me...Tim) writes:
> MadMac in the Atari Developer's kit, for one reason:  Speed.

You betcha.

> And if you really want it optimized--after you have it running, use
> the Alcyon assembler at that point.  They are completely code
> compatible.

They are NOT completely compatible.  It is possible to write code
which assembles the same (modulo optimizations) under both assemblers.
However, MadMac is more strict on some points (colon after label,
semicolon before comment) and AS68 doesn't have macros.  Furthermore,
the syntax for conditional assembly is totally different, and
the behavior of "=" and "set" and "equ" might be different.

MadMac has an option (-6) which lets you assemble Alcyon compiler
output.  It is NOT an AS68 compatibility mode; it is a C68 back-end
mode.  It simply ignores lines beginning with "~" and does some other
things (I forget what). 

You can ask MadMac to inform you of unoptimized short branches, so you
can go back and put ".s" on them. 

AS68 doesn't know about the XXXX.w addressing mode: 

	INPUT	      MadMac output	        AS68 output
	------------  ------------------------  --------------------------
	lea $1234,a0  lea $1234.w,a0 (2 words)  lea $00001234,a0 (3 words)


Lastly, AS68 makes at least one illegal optimization.  Assuming that a
missing size modifier means the same as .w, the optimization

	move #1,d0	-->	moveq.l #1,d0

which AS68 does is illegal.  MadMac does moveq, addq, and subq
optimization correctly.

============================================
Opinions expressed above do not necessarily	-- Allan Pratt, Atari Corp.
reflect those of Atari Corp. or anyone else.	  ...ames!atari!apratt

bissiri@blake.acs.washington.edu (Moja Fritzah) (05/06/89)

A global thanks to the netters who
responded to my "What assembler do you use..?" inquiry.

Since I am about to purchase an assembler, 
I wanted to find out what the pros are using
and why they prefer one assembler over another.


Here are some of the choices with a quote or two as reason(s):

ASSEMBLER	VOTES	   REASONS

MadMac		  3	   "Speed"; "...supports command line.."; "macros"

AssemPro	  1.5       "Completely GEM, good optimizer, debugger.."

MWC		  1	   "..[assembler understands peculiarities of comp.].."

GAS		  1	   "..option to add C++ with their GC++ package..."

Alcyon		  1	   "Moderately quick...trust it...backends Alcyon C.."

Macro-11	  1	   "..other machines... God's idea of an assembler..."


Since I can't imagine working without GULAM, i am sure i will
go with a non-GEM interface.  Considering that MWC is not a 
full assembler, and that GAS and GCC prefer a machine
with more than 1 meg, I am left with Alcyon and MadMac.  Can't imagine
coding without power of macros... leaves me with MadMac... and possibly
for the most important reasons: Speed and flexibility.  

Does this decision put me in the position of purchasing the Developer's Kit?
        (i've been wanting to register anyway)

Thanks for all the help!

-kevin

 P.S.  Anbody else care to append this list..?

dbrooks@osf.OSF.ORG (David Brooks) (05/08/89)

In article <1480@atari.UUCP> apratt@atari.UUCP (Allan Pratt) writes:
[...]
>Lastly, AS68 makes at least one illegal optimization.  Assuming that a
>missing size modifier means the same as .w, the optimization
>
>	move #1,d0	-->	moveq.l #1,d0
>
>which AS68 does is illegal.  MadMac does moveq, addq, and subq
>optimization correctly.

I'd always thought of the <opcode-without-qualifier> as "Here,
assembler, I don't care about the most significant three bytes; you do
whatever's best".  (hacker's note: moveq.l is faster than the other
forms of move-literal; it sign-extends one byte across the whole
long).  If I *do* care, I get specific.
-- 
David Brooks			dbrooks@osf.org
Open Software Foundation	uunet!osf.org!dbrooks
11 Cambridge Center		Personal views, not necessarily those
Cambridge, MA 02142, USA	of OSF, its sponsors or members.

dac@ukc.ac.uk (David Clear) (05/08/89)

In reply to the person who was asking about assemblers, I use DevpacST version
2. It allows assembly into memory and testing without leaving the system. The
optimizer isn't that hot but apart from that it's very good.
The debugger is very impressive. It has been used to write quite a few games
(if games aren't your scene, then don't worry - AES/GEM/VDI macros and
other routines are included).

Well, that's my bit.

-- 
% cc life.c                      | David Clear <dac@ukc.ac.uk>
% a.out                          | Computer Science, University of Kent,
Segmentation fault (core dumped) | Canterbury, England.

landon@Apple.COM (Landon Dyer) (05/09/89)

In article <1480@atari.UUCP> apratt@atari.UUCP (Allan Pratt) writes:
>Lastly, AS68 makes at least one illegal optimization.  Assuming that a
>missing size modifier means the same as .w, the optimization
>
>	move #1,d0	-->	moveq.l #1,d0
>
>which AS68 does is illegal.  MadMac does moveq, addq, and subq
>optimization correctly.

Not true (unless you've fixed it recently, Allan).  Take a look at the Bios
and XBios macros in "atari.s" -- they have some pretty icky conditional
assembly to optimize an ADD #n,SP to an ADDQ #n,SP.  Mistakes Were Made.

But [get closer to the campfire, kids -- this is scary] AS68 "optimizes"
MOVE.W #0,D0 (note the explicit .W) to MOVEQ #0,D0.  WUPS!  Erring on the
side of caution is not always a bad thing...

--
Landon Dyer, Apple Computer, Inc.
Development Systems Group (MPW)
Everything I said here is utter nonsense.		Give a little bit.

stefan@spcc386.UUCP (Stefan Posthuma) (05/09/89)

My favourite assembler?

DevPack 2.0 of course (in my opinion the only decent one).
It's fast, it's easy to use and it has a very extensive debugger.

Assembly is two-pass and very quick if you assemble into memory. After
that, you can execute it from memory or debug it with full options like
trace, labels, multiple windows (no GEM windows) etc.

Also, it has full macro and conditional assembly handling and a complete
GEM-call library. It can create GST format object files or its own format.

I mainly use it to create demo screens and no matter how I fool around
in the memory of the ST and no matter how many interrupt vectors I screw
up and no matter how many screen borders I obliterate, it still works fine.

If you are thinking about assembly on the ST, DevPack is perfect.