Welcome, Guest. Please login or register.

Author Topic: Which Assembler?  (Read 8059 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline jjTopic starter

  • Lifetime Member
  • Hero Member
  • *****
  • Join Date: Feb 2002
  • Posts: 4052
  • Country: wales
  • Thanked: 2 times
  • Gender: Male
    • Show only replies by jj
Which Assembler?
« on: October 10, 2009, 10:48:17 PM »
Hi All

I am looking to have a stab at some 68k ASM.  I have a few books on the subject but was wondering which would be the best assembler to use.  Free pref.  Which is the most standard.

Also where would I find info on programming the various custom chips.
“We don't stop playing because we grow old; we grow old because we stop playing.” - George Bernard Shaw

Xbox Live: S0ulA55a551n2
 
Registered MorphsOS 3.13 user on Powerbook G4 15"
 

Offline xeron

  • Hero Member
  • *****
  • Join Date: Mar 2002
  • Posts: 2533
    • Show only replies by xeron
    • http://www.petergordon.org.uk
Re: Which Assembler?
« Reply #1 on: October 10, 2009, 10:50:57 PM »
I always found Asm-Pro the best assembler for democoding or game coding. For system coding you should be using C, so i guess i'm recommending Asm-Pro ;-)

The forums at ada.untergrund.net are really great for assembler coding questions.
Playstation Network ID: xeron6
 

Offline Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show only replies by Karlos
Re: Which Assembler?
« Reply #2 on: October 10, 2009, 11:14:49 PM »
I used phxass, seems pretty capable :)
int p; // A
 

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show only replies by matthey
Re: Which Assembler?
« Reply #3 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 ChaosLord

  • Hero Member
  • *****
  • Join Date: Nov 2003
  • Posts: 2608
    • Show only replies by ChaosLord
    • http://totalchaoseng.dbv.pl/news.php
Re: Which Assembler?
« Reply #4 on: October 11, 2009, 01:31:51 AM »
What is wrong with PhxAss that made him abandon it and start a whole new assembler? :confused:
Wanna try a wonderfull strategy game with lots of handdrawn anims,
Magic Spells and Monsters, Incredible playability and lastability,
English speech, etc. Total Chaos AGA
 

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show only replies by matthey
Re: Which Assembler?
« Reply #5 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 Karlos

  • Sockologist
  • Global Moderator
  • Hero Member
  • *****
  • Join Date: Nov 2002
  • Posts: 16879
  • Country: gb
  • Thanked: 5 times
    • Show only replies by Karlos
Re: Which Assembler?
« Reply #6 on: October 11, 2009, 10:42:39 AM »
Vasm is also very good. I tend not to write entire applications in assembler. Therefore I use whichever assembler integrates best with the compiler I'm also using.
int p; // A
 

Offline Joloo

Re: Which Assembler?
« Reply #7 on: October 11, 2009, 10:52:46 AM »
The differences between PhxAss and 'vasm' are large.

PhxAss is an AmigaOS and Amiga-Hunk format limited assembler while 'vasm' is a any-platform, many-binary output formats and many CPUs supporting assembler, which is also compatible to the Amiga m68k defacto assembler, Devpac.

For m68k the main difference is that 'vasm' is almost 100 percent Devpac compatible, while PhxAss isn't.
In addition, 'vasm' contains less bugs, or better said, it is not as tolerant as PhxAss.
It even spots more optimisation possibilities.

With version 14b of 'vasm' (not released yet - do you refer to this version, matthey?) 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

Unfortunately, Frank Wille is always busy and is working at the same time on several projects, which means that he does not release a version althought it is already ready.


Quote

@matthey
I don't know how much code vasm and PhxAss share.


I would speculate that PhxAss was written in m68k assembler while 'vasm' is written in ANSI-C.
'vasm' was initially written by Dr. Volker Barthelmann (?) but actually I would say that 95 percent of the code is now written by Frank Wille; see all the written backends and output modules.

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.


Quote

@JJ
Also where would I find info on programming the various custom chips.


Amiga Hardware Reference Manual, Aminet and intro/demo scene sites.
 

Offline pmc/Retro

  • Newbie
  • *
  • Join Date: Sep 2009
  • Posts: 13
    • Show only replies by pmc/Retro
    • http://retro.untergrund.net
Re: Which Assembler?
« Reply #8 on: October 11, 2009, 01:16:32 PM »
All my demo code is developed in UltraEdit (text editor) on the PC and then I use Devpac v3.18 to assemble on the Amiga.
 
Use of Devpac seems to be a British thing (the makers, Hisoft, were a British company) as, in my experience, mostly British guys use it.
 
Almost all of the European demos coders I talk to use Asm-One.
 
At the end of the day I agree with Joloo - which assembler you use all comes down to personal taste. The code's the important thing - the assembler's just the tool to assemble it...
 
Get the Hardware Reference Manual for learning the Amiga internals. If you'd like to see some source codes that include the boring but necessary stuff like system takeover etc. then check the Coder's Heaven forums on EAB. You'll find a good few of my sources knocking around on there that you're welcome to. You can always PM me questions as well if you like - I'd be happy to help you out. :-)
 
Anyway, I wish you luck JJ - in my opinion, 68k coding is rewarding and fun. :-)
 

Offline ChaosLord

  • Hero Member
  • *****
  • Join Date: Nov 2003
  • Posts: 2608
    • Show only replies by ChaosLord
    • http://totalchaoseng.dbv.pl/news.php
Re: Which Assembler?
« Reply #9 on: October 11, 2009, 01:59:13 PM »
Quote from: pmc/Retro;525529
All my demo code is developed in UltraEdit (text editor) on the PC and then I use Devpac v3.18 to assemble on the Amiga.
 
Use of Devpac seems to be a British thing (the makers, Hisoft, were a British company) as, in my experience, mostly British guys use it.
 

I am American and I have been using Devpac for all my game coding for many years.

Quote
Almost all of the European demos coders I talk to use Asm-One.
 
I used it for 1 year in the early 90s.  It had the best user-interface, very very friendly but it was just to darn buggy (and it lacked FPU instructions) so I was forced to switch to Devpac.


Quote
At the end of the day I agree with Joloo - which assembler you use all comes down to personal taste. The code's the important thing - the assembler's just the tool to assemble it...
 

I agree.


Devpac works great with SASC so I was never forced to switch again.
Wanna try a wonderfull strategy game with lots of handdrawn anims,
Magic Spells and Monsters, Incredible playability and lastability,
English speech, etc. Total Chaos AGA
 

Offline ChaosLord

  • Hero Member
  • *****
  • Join Date: Nov 2003
  • Posts: 2608
    • Show only replies by ChaosLord
    • http://totalchaoseng.dbv.pl/news.php
Re: Which Assembler?
« Reply #10 on: October 11, 2009, 02:00:09 PM »
@joloo

Thanx 4 all the .info
Wanna try a wonderfull strategy game with lots of handdrawn anims,
Magic Spells and Monsters, Incredible playability and lastability,
English speech, etc. Total Chaos AGA
 

Offline Phx_

  • Newbie
  • *
  • Join Date: Nov 2003
  • Posts: 7
    • Show only replies by Phx_
    • http://home.owl.de/~frank/
Re: Which Assembler?
« Reply #11 on: October 11, 2009, 08:32:29 PM »
Quote from: pmc/Retro;525529
All my demo code is developed in UltraEdit (text editor) on the PC and then I use Devpac v3.18 to assemble on the Amiga.

UltraEdit sounds like Windows. You could compile vasm, which is 99% Devpac-compatible, for Windows and create your binaries there. Saves you from copying the sources to your Amiga.
 
Quote
Use of Devpac seems to be a British thing (the makers, Hisoft, were a British company) as, in my experience, mostly British guys use it.

I don't think so. Devpac is the de-facto standard for 68k assemblers, even on the Atari. But it was quite expensive at that time.
 

Offline matthey

  • Hero Member
  • *****
  • Join Date: Aug 2007
  • Posts: 1294
    • Show only replies by matthey
Re: Which Assembler?
« Reply #12 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 pmc/Retro

  • Newbie
  • *
  • Join Date: Sep 2009
  • Posts: 13
    • Show only replies by pmc/Retro
    • http://retro.untergrund.net
Re: Which Assembler?
« Reply #13 on: October 12, 2009, 07:36:23 AM »
Quote from: ChaosLord

I am American and I have been using Devpac for all my game coding for many years.


Quote from: matthey

I don't think so. Devpac is the de-facto standard for 68k assemblers, even on the Atari. But it was quite expensive at that time.

That's really interesting to me guys - with all the people using AsmOne I've spoken to I thought I must be one of the only guys around still using Devpac.
 
Perhaps, in that case, use of Devpac is less a British thing like I suspected and it's more just that demo coders mainly use AsmOne. Probably for the very reason you gave matthey - expense - when most of the demo guys started coding stuff as teenagers in their bedrooms way back when they would've used whatever was available easiest and cheapest I suppose...
 

Offline Phx_

  • Newbie
  • *
  • Join Date: Nov 2003
  • Posts: 7
    • Show only replies by Phx_
    • http://home.owl.de/~frank/
Re: Which Assembler?
« Reply #14 on: October 12, 2009, 08:42:27 AM »
Quote from: matthey;525579
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)

That looks evil on first sight, but I have to clarify the scope of this bug: it only happened when all of the following conditions were true:
- assembling for 68020+
- the displacement is an undefined external symbol (GetMsg in this case)
- you didn't specify a discplacement size, like ".w"


Quote

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?

It is. There is always somebody with a newer beta. ;)