[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference hydra::amiga_v1

Title:AMIGA NOTES
Notice:Join us in the *NEW* conference - HYDRA::AMIGA_V2
Moderator:HYDRA::MOORE
Created:Sat Apr 26 1986
Last Modified:Wed Feb 05 1992
Last Successful Update:Fri Jun 06 1997
Number of topics:5378
Total number of notes:38326

1002.0. "Metacompco macro assembler questions" by NAC::GODDARD () Wed Dec 23 1987 11:22

    I was considering the purchase of the Metacompco assembler and would
    like to find out more about it before I actually shell out the bucks.
    
    1) Does the assembler come with a linker? If not what was your solution
       for linking programs.
    
    2) Does the assembler come with predefined macros or ? that define
       the EXEC data structures such as list heads, etc.? If not where
       can you get them?
    
    3) Is the macro preprocessor fairly flexible? (i.e. As compared
       to the preprocessor on VMS or RSX.)
    
    4) Was this a good product considering what you payed for it?
       (i.e. was it buggy)
    
    5) Does it have any problems running under DOS 1.2 ?
    
    					Thanx for your help,
    						Jim
T.RTitleUserPersonal
Name
DateLines
1002.1some commentsSTAR::BANKSIn Search of MediocrityWed Dec 23 1987 14:17103
    This Christmas will be my 25 month's anniversary with the Metacomco
    assembler.  I use the assembler almost entirely, and only haul out
    the C compiler or Basic to run public domain software, so I think
    I have a few comments.  First, it is worth nothing that I got the
    assembler as a part of what they used to call a "developer's kit"
    (which included the assembler, linker, 1BM PC versions of both,
    and various support things), so I'm not entirely sure how the packaging
    works.
    
    By buying the Metacomco assembler, do you mean buying it directly
    from Metacomco, or buying the white package Amiga assembler? (Not
    that I'd know the difference).
    
    1)  Does the assembler come with a linker?  I'd sure be surprised
    if it didn't.  The linker, ALINK (aka Deep Thought) also appears
    to be a Metacomco product, so I don't see why they'd be stingy with
    their misery.  In any case, I don't see how you'd be able to run
    anything if they didn't give you one.
    
    Even with ALINK, unless they give you a new version, I'd recommend
    that you just keep it for veryifying BLINK bugs, but use a PD copy
    of BLINK instead.  BLINK is buggier, and I figure I've lost a total
    of two days continuous work chasing BLINK bugs, but I've still spent
    less time with BLINK than I would have with ALINK.
    
    Then again, if you don't search too many libraries, ALINK isn't
    so bad.
    
    2) Does the assembler come with predefined macros?  Well, my copy
    came with a full flock of include files, just like in the back of
    the RKM.  Then again, I got the developer's kit, so I don't know
    what Metacomco's comes with.  If it does come with include files,
    make sure they're recent (i.e. not leftover version 1.0 files).
    If they're out of date, they won't do bad things, but all the stuff
    implemented in later releases will be unavailable to your program.
    
    If it doesn't come with include files, or if it comes with old ones,
    you've got three choices:  Steal the new ones from someone who has
    them (probably illegal), type them in from the examples in the back
    of the RKM (maybe illegal, and slower and more expensive if you
    don't already have an RKM), or send the $20 to Commodore Amiga for
    the Native Developer's Upgrade package (someone else is going to
    have to point you to the precise details on this one).
    
    3) Is the macro preprocessor fairly flexible?  No, not really. There
    are macros, and they work, but nothing to write home about.  In
    general, I avoid them because there's no way to surpress the MACRO
    expansion text in your assembly listing, so if you want to get an
    assembly listing, you either put up with looking at all the macro
    expansions, or you edit the listing before you print it.
    
    I've been thining of writing a listing file post-processor just
    to surpress these things.
    
    4) Was this a good product considering what I paid for it?  Hard
    to say.  It was part of a package deal, and if we didn't pay the
    money at the time, our only recourse would have been to pay the
    money for the assembler only package, or stick with poking hex from
    basic as my means of assembler hacking.  It was the only game in
    town at the time, so I played along.
    
    5) Does it have any problems running under DOS 1.2?  I've run it
    under 1.0, 1.1 and 1.2, and I don't think it's done a single bad
    thing to me.  No bugs, no gurus, just slow.
    
    General comments:
    
    It's very slow.  If you use macros, doubly so.  It also doesn't
    buffer its input and output files too well, so if you're trying
    to read the source and output object and list to the same drive,
    you're gonna sit there forever whilst it tries to saw your disk
    in half.  It's strongly recommended to output everything to RAM:.
    
    Except that it's big.  First off, it's big.  Second, you have to
    know ahead of time how much symbol space it's gonna need, and give
    it as an argument on the command line as the heap size.  The default
    value is pretty big, but if you decide to include intuition.i, you're
    probably gonna need a heap size of about 120000 bytes.  This heap
    needs to be allocated as a contiguous segment, so if your memory
    is fragmented, you lose.  Just as an added penalty feature: The
    one bug I have run across is that if the assembly is aborted due
    to insufficient heap space, it doesn't properly deallocate all its
    memory, leaving your memory fragmented, with the largest hunk too
    small to get a big enough heap next time.  Reboot time.
    
    Because of those first two, you generally don't multitask this thing
    much on a 512K machine, beyond little clock programs in your title
    bar.
    
    Next: Slow is bad enough.  Having to read those damned include files
    is even worse.  Best to use the include files with comments stripped.
    Even still, it's slow.  "I know!  I'll just read the include files
    on pass 1, since they're just symbol definitions" I says to myself.
    Wrong!  No PASS1/PASS2 conditional.  "Ok, I'll just define a symbol
    at the end of the module, and if it's defined at the beginning of
    the module, it must be pass 2!"  Wrong!  It makes sure this doesn't
    work.  So, there you are, stuck reading the include files on both
    passes.
    
    All in all, it's an adequate assembler, but still very irritating.
    Only problem is that I know of no other assembler that's better,
    and most of the other assemblers I've see are ones that you have
    to buy a whole C compiler to get.