Welcome, Guest. Please login or register.

Author Topic: Which Assembler?  (Read 8030 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show all replies
Re: Which Assembler?
« on: October 10, 2009, 11:57:02 PM »
I used to use PhxAss but I'm starting to use vasm now. It is by Frank Wille, the same author. Frank is providing great support for it as it's part of vbcc. He fixed a minor issue with the use of macros in less than 1 day for me. I don't think this newest version is available on his web site yet. Let me know if you want it ;). The PhxAss docs are better so you should get them as vasm is similar and can be made compatible. Using vasm and reporting bugs will help vbcc get better.
 

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show all replies
Re: Which Assembler?
« Reply #1 on: October 11, 2009, 04:12:38 AM »
@ChaosLord

I would guess that vasm was created to be more portable and better support vbcc. I don't know how much code vasm and PhxAss share. Here is an interview with Frank that is related...

http://intuitionbase.com/static.php?section=en_FrankWilleInterview
 

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show all replies
Re: Which Assembler?
« Reply #2 on: October 11, 2009, 08:58:47 PM »
Quote from: Joloo;525518
With version 14b of 'vasm' (not released yet - do you refer to this version, matthey?)

Yes, 14b. I requested that it have the Amiga version string in-bedded so it is the first to do so. I reported and Frank fixed the JSRLIB GetMsg type macro generating something like this...

JSR ($FFFFFe8C.L,A6,ZD0.W)

instead of this...

jsr (-372,a6)

The latter is faster and smaller. It probably didn't affect any compiled programs but many assembled programs. He has fixed all this in the last week! The new much improved version of vbcc will be out soon and it will have the new vasm but here is a link for anyone that wants it now...

http://www.heywheel.com/matthey/Amiga/vasm14b.lha

I also included ced 3.5+ ARexx scripts (put in REXX: ) I use to assemble with vasm or PhxAss. They allow a function key to be pressed to assemble and link the current file in ced (use a .asm or .a extension). A window will open displaying all output (errors).

Quote
it is also possible to create executables in one go without using a linker, which wasn't possible with previous versions:

vasmm68k_mot -Fhunkexe -nosym -ISDK:includes_i source.asm

I tried that but it didn't work. I get...

fatal error 17: could not initialize output module

Are you sure the above vasm line is correct?

Quote
I would speculate that PhxAss was written in m68k assembler while 'vasm' is written in ANSI-C.

I suspect that to be true also.

Quote
I personally would use PhxAss for machines only equipped with a m68000 or m68020 CPU while up from a m68030 I would prefer 'vasm', however, what assembler one does use is just a matter of taste.

We don't have a shortage of good assemblers for the Amiga. Vasm has excellent support and can be Devpac or Phxass compatible with a switch. It's nice that it's already included with vbcc which every Amiga developer should already have installed.
« Last Edit: October 11, 2009, 09:01:49 PM by matthey »
 

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show all replies
Re: Which Assembler?
« Reply #3 on: October 12, 2009, 08:13:22 PM »
Quote from: Phx_;525632

There is always somebody with a newer beta. ;)


Mine was only like 2 days old too :).

The newest vasm v1.4b (beta) is here...

http://www.heywheel.com/matthey/Amiga/vasm14b.lha

I also updated my ced scripts that assemble with vasm and PhxAss to use vlibos3: assign instead of lib: assign. Now all that is needed for vasm script is to install vbbc and copy the scripts to REXX:. The PhxAss script will also need PhxAss and PhxLnk copied to C: or vbcc:bin. Then go to CygnusEd menu "Special->DOS/ARexx interface->Install DOS/ARexx command..." and type the function key number and then the name of the script in. Then when everything is set, select Save DOS/ARexx Commands in the same sub menu.

I got the -Fhunkexe working but I didn't use it for the ARexx scripts because I have amiga.lib look up function offsets. Vasm is more compatible with the linker.
 

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show all replies
Re: Which Assembler?
« Reply #4 on: October 19, 2009, 05:48:27 AM »
Quote from: Joloo;526436

By the way. The official release of 'vbcc 0.9a' (yesterday) does not contain it.


Thanks for the info on the new vbcc release. I posted info on utility.com.

Quote

Hmm, I never used the 'amiga.lib' in conjunction with any assembler. Because Devpac, which I used in the past, came with all '..._lib.i' files, I used them. And now that I am using 'vasm', I am still using these '...._lib.i' files for 'vasm'. No problems at all.
By the way, I didn't use the 'amiga.lib' for my projects because I don't like relocation data in my executable. If possible, the codes I built using assemblers were PC-relativ and often reentrant, too.


I don't use the amiga.lib link functions either. I just use it to look up the function offsets. It would have the latest function offsets compared to your lib.i files. There is nothing wrong with including the lib.i files though. It's probably faster although I can assemble and link just about anything almost instantly.