6502.org Forum  Projects  Code  Documents  Tools  Forum
It is currently Sat Nov 16, 2024 3:54 pm

All times are UTC




Post new topic Reply to topic  [ 20 posts ]  Go to page 1, 2  Next
Author Message
PostPosted: Mon Jun 13, 2005 1:46 am 
Offline
Site Admin
User avatar

Joined: Fri Aug 30, 2002 1:08 am
Posts: 281
Location: Northern California
Hi,

Which assembler are you using, and why?

If you have some specific likes about your assembler or dislikes about others you've used, please list them.

I'd like to hear from as many of you as possible.

Thanks,
Mike

_________________
- Mike Naberezny (mike@naberezny.com) http://6502.org


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Jun 13, 2005 1:58 am 
Offline
User avatar

Joined: Wed Sep 03, 2003 6:53 pm
Posts: 153
Location: Long Island, NY
Mike:

I actually use TASM version 3.01 mostly and TASS 1.31 occasionally. I like TASM because it also has 8085, 8080 and Z80 targets which I use for my Altair emulation project. They are roughly equal in capabilities but the preprocessor syntax is different so code is not transferable without some search-and-replace.

Rich

_________________
Rich Cini
Build Master and maintainer of the Altair32 Emulation project
http://cini.classiccmp.org
http://altair32.classiccmp.org


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Jun 13, 2005 6:53 am 
Offline
User avatar

Joined: Fri Aug 30, 2002 1:09 am
Posts: 8541
Location: Southern California
PC Assembler: Universal Cross-Assemblers C32

Reason: Not only was it less expensive than others ($199 IIRC), but you only have to buy one for all your processors. Even if a new processor comes out, you can make your own tables if you don't want to buy the update. I know there are some assemblers that are free for the downloading now, but I got this one when the web hardly existed. I don't know how the flexibility and capabilities, the speed, and the bugs would compare. I seem to find plenty of bugs in a lot of software that people swear is solid. It's not that I try-- I guess I'm just an extra-intensive user of some types of software (assemblers, compilers, and CAD), doing things that the average user doesn't do.

Bug: It does have a bug: If you have a comma in a quoted string in a macro parameter list, the assembler thinks the comma is the delimiter to the next parameter, instead of ignoring commas that come before the closing quotation mark.

I used the 2500 AD assembler from 1986 to 1993. It was nice, but I didn't like the fact that you couldn't bitwise-OR constants together before putting them in an operand.

For smaller assembly portions (up to a few hundred instructions max) which may only be a part of a program that's mostly Forth, I'll use my 6502 Forth's built-in assembler instead of assembling on the PC and then trasferring. Advantages to doing it this way for these short portions include quicker turnaround time, the 6502 computer can assemble and integrate it on the fly while doing other things at the same time, you can put several instructions on a line if you wish, and you can mix assembly portions and high-level Forth (again without necessarily interrupting other processes going on in the target computer).


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Jun 13, 2005 7:25 am 
Offline
User avatar

Joined: Tue Mar 02, 2004 8:55 am
Posts: 996
Location: Berkshire, UK
I was using Frank Vorstenbosch's AS65 (see http://www.kingswood-consulting.co.uk/assemblers/ but the Windows XP patch SP2 removed compatibility for 16-bit DOS applications.

I've been writing my own relocating 6501/6502/65C02/65SC02/65816 macro assembler assembler in Java to replace it. The code is split between a base framework and a processor specific portion so you can construct new assemblers quite quickly. It should work on any Java supporting platform. The object and library format is compressed XML!

The assembler is working but missing a few details (like macros and listings). My attention is currently going to the linker and libarian. I should have a good beta in a few weeks.

_________________
Andrew Jacobs
6502 & PIC Stuff - http://www.obelisk.me.uk/
Cross-Platform 6502/65C02/65816 Macro Assembler - http://www.obelisk.me.uk/dev65/
Open Source Projects - https://github.com/andrew-jacobs


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Jun 13, 2005 8:13 am 
Offline

Joined: Tue Mar 09, 2004 3:43 pm
Posts: 44
Location: Bristol, UK
I wrote my own 6502 assembler waaay back in about 1983, on a Prime minicomputer running Primos and Software Tools. I wrote it in the preferred language of that environment, Ratfor (which is pre-processed into FORTRAN and then compiled). I subsequently translated the assembler into C on MS-DOS, and then ported it to Linux (although I must have run it on the Atari ST at some point). I still use it, although I need to go back and add the CMOS 6502 instructions and addressing modes.

Did anybody else write their own?


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Jun 13, 2005 8:49 am 
Offline

Joined: Fri Aug 30, 2002 11:01 pm
Posts: 53
Location: Windsor Forks, N.S. Canada
GARTHWILSON wrote:
PC Assembler: Universal Cross-Assemblers C32
Reason: Not only was it less expensive than others ($199 IIRC), but you only have to buy one for all your processors.


Hi Garth,

Just an update on the price. C32 is now just $99, and comes with a DOS
& Windows version ( plus all the docs )
It may be found @ http://www.datasynceng.com/c32doc.htm

- Wally


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Jun 13, 2005 4:59 pm 
Offline

Joined: Fri Aug 30, 2002 2:05 pm
Posts: 347
Location: UK
For general 6502 use I used to use TASS but now use Michal Kowalski's 6502 assembler & simulator because it does all I need, for now, in the one package.

Lee.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Mon Jun 13, 2005 11:21 pm 
Offline
User avatar

Joined: Fri Aug 30, 2002 9:02 pm
Posts: 1747
Location: Sacramento, CA
coredump wrote:
I wrote my own 6502 assembler...
Did anybody else write their own?


I wrote my own also, using MS Quick BASIC. It supported some of the CMOS instructions. I switched to TASS after Lee Davison used it for EhBASIC.

I also wrote a mini-assembler for my SBC OS.

Daryl


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Jun 14, 2005 3:00 am 
Offline

Joined: Wed Dec 18, 2002 3:20 am
Posts: 113
Cross-32 due to recommendation from Garth, and I've been VERY pleased with it as an assembler.

_________________
-Tony
KG4WFX


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Jun 14, 2005 12:03 pm 
Offline

Joined: Thu Jun 24, 2004 12:05 am
Posts: 7
ACME cross-assembler. I use it under Win32, but it's available for several platforms. I've also written a word file for UltraEdit so I get syntax highlighting (The word file is available from here).

ACME was the first cross-assembler I tried. I thought it worked great and could do everything I wanted it to do and then some, plus it's fairly well documented and it's free.

If I were to choose a freeware text editor instead of UltraEdit, with syntax highlighting and the possiblity to invoke external programs (like assemblers) from within the text editor, I'd probably go for PSPad or SourceEdit.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Tue Jun 14, 2005 4:46 pm 
Offline

Joined: Sat Jan 04, 2003 10:03 pm
Posts: 1706
I also use ACME. I use it because it's one of the few 65816 assemblers for Linux that actually works. Most other assemblers for Linux that claim to support the 65816 have obtuse runtime requirements, or have so many bugs with respect to the 65816 instruction set that it's worthless to even try.

Also, ACME produces Commodore PRG-format executables, which are very simple to load. The disadvantage is that there is no relocation information, so it's not possible to use ACME to produce O65-format programs. But for coding up a ROM image or OS kernel, it's perfect.

Note that ACME was specifically designed to support Super Nintendo programming, so ROM generation was its highest priority, and is therefore optimized for that. So, for me (who is still working at the lowest possible levels with the Kestrel), it's ideal.

Maybe later, I'll research A65 and LD65 to produce relocatable images, once I get the Kestrel to recognize more than 64K of address space and have at least 128K of RAM installed, with an OS image to suitably handle such dynamic loading of programs.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Jun 15, 2005 1:19 am 
Offline

Joined: Thu Jan 16, 2003 12:55 pm
Posts: 64
Location: Indianapolis
I use cc65 (http://www.cc65.org/). But, I've never used the C compiler (I don't know how to, honestly heheh), only the assembler and linker. I like being able to use the segments and linker config, being able to reserve bytes of RAM/ROM right next to the code that uses it, stuff like that.

It's still being developed, so I guess that's both good and bad. Some bugs showed up due to changes, but it was fixed after I compiled a newer version.

For 65816, I used x816. I really liked it's local label style and it was generally easy to use. But it doesn't even work in windows anymore, so I have to run it in the dosbox emulator if I need to assemble the SNES program I wrote with it.


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Wed Jun 15, 2005 5:39 am 
Offline
User avatar

Joined: Thu Mar 11, 2004 7:42 am
Posts: 362
For software written by others, I will usually stick with the assembler that the author used, as long as it is easily available and can be unobtrusively installed on my computer. For example, I use TASS for assembling EhBASIC, but not for anything else.

Believe it or not, since most of my 6502 programs are fairly short (only a few k of object code), I still use Merlin (a popular commercial assembler back in the day) on an Apple! (How's that for living in the 20th century?) I like it because I can have the assembler, editor, source code, and object code all in memory at once, and I don't have to save source code before reassembling, so the edit-assemble-test cycle is pretty quick. I prefer to run on actual hardware as much as possible (even when working with other processors), so along with the built-in monitor on the Apple, it makes a great interactive debugging environment. I also wrote a short program to transfer source code via RS-232 to a PC so it can be e-mailed or posted on the forum. These days there are other options in terms of assemblers that run on 6502-based systems, but Merlin is what I have and was already using, and it's good enough for most of my purposes.

Garth mentioned Forth assemblers, and I've used them also, but in that case its been assembly routines that have Forth specifically in mind, rather than general-purpose 6502 routines (which could be done, but I haven't done it). One additional advantage of a Forth assembler is that it's very easy to write one (even a cross assembler) for the 6502 even when there isn't one already built-in.

Anyway, some things I like about Merlin are: decent macro capability, looping constructs which are useful for calculating tables, useful assembler directives for strings, zero page or absolute addressing (or long addressing on the 65816) can be forced, and a symbolic disassembler is included.

I'm strongly considering writing my own assembler, though. My original intent was to come up with a way of compressing/tokenizing the source code that would be suitable for a processor like the 6502 with a 16-bit address space. The idea was that I could keep larger source code files in memory, and as a bonus it would assemble faster since you wouldn't have to parse an opcode like CLC every time you assembled the file (twice for a two-pass assembler). This has sort of grown into a list of ideas for an assembler.

Originally I was going to write the assembler first, then use that to write my 6502 ANS Forth, but now I'm thinking I'll write the Forth system first, and write the assembler in Forth at least initially. It's difficult to estimate the typical source code length to object code length ratio or the speed of the assembler, but there appears to be several options avaiable for making the assembler extremely fast. An unintended benefit of using Forth is that it might be usable as a cross assembler on non-6502 systems using GForth or some other ANS Forth.


Top
 Profile  
Reply with quote  
 Post subject: UltraEdit Wordfile
PostPosted: Fri Jun 17, 2005 5:12 am 
Offline
Site Admin
User avatar

Joined: Fri Aug 30, 2002 1:08 am
Posts: 281
Location: Northern California
FredrikR wrote:
ACME cross-assembler. I use it under Win32, but it's available for several platforms. I've also written a word file for UltraEdit so I get syntax highlighting (The word file is available from here).

I am also an UltraEdit user. Thanks for the wordfile!

Regards,
Mike

_________________
- Mike Naberezny (mike@naberezny.com) http://6502.org


Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: Fri Jun 17, 2005 6:55 am 
Offline

Joined: Thu Jun 24, 2004 12:05 am
Posts: 7
Mike Naberezny wrote:

Quote:
I am also an UltraEdit user. Thanks for the wordfile!


You're welcome! From what I hear, this wordfile will soon be part of the ACME distribution for DOS/Windows.

Regards,

Fredrik


Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 20 posts ]  Go to page 1, 2  Next

All times are UTC


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron