| |
Mr SQL
Registered: Feb 2023 Posts: 159 |
Best C64 Assembler?
I watched this 8-bit show and instructional on the Zeus Assembler for the C64 and was impressed by it:
https://www.youtube.com/watch?v=EbGXYIXXsW8
I use Dasm Today but I really enjoyed prototyping a project in CBM BASIC recently before coding it in Dasm, particularly typing on the fantastic mechanical keyboard of the original breadboard C64. I think only an IBM mechanical keyboard with the fat PS2 plug comes close to that, C64 keyboards are hard to beat.
I like that the Zeus Assembler has line numbers, I used EDASM+ bitd which also had line numbers and found it a very friendly programming feature.
The Zeus Assembler looks really full featured too with the ability to hold multiple programs in memory and a dissembler monitor that lets you step through memory, Robin did a really nice walk through.
What is the best Assembler for the C64 and what did you use bitd? Does anyone still code Assembly directly on their C64?
Another Assembler I'm quite impressed with is the one built into the C128, I've been thinking about picking up a 128 but the keyboard seems cramped compared to the original 64 breadbox, looks like it has a smaller form factor like the 64c. |
|
... 8 posts hidden. Click here to view all posts.... |
| |
MagerValp
Registered: Dec 2001 Posts: 1083 |
Quoting chatGPZIMHO neither is needed - at least not for the type of project any sane person would code natively on a C64 these days.
REU version means not having to worry about overwriting the source or assembler, so I wouldn't want to be without that at least. |
| |
Fungus
Registered: Sep 2002 Posts: 752 |
I've never been able to get the recovery code to work properly in the REU versions, so YMMV.
I cross assemble now with tass64, much less hassle to code on PC. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11523 |
Yeah well. That shouldn't be a big problem with small projects :) |
| |
oziphantom
Registered: Oct 2014 Posts: 502 |
Quote: Thanks I will start with just the Turbo Assembler and AR VI on the stock hardware and see how far I can get without memory problems.
I like to put a lot of comments in my code so I think I may need the extra RAM.
You don't want to put any comments in your c64 source code, they will eat bytes and disk space and slow down assembly a great deal. Also comments on 40 col are "terse" by requirement. Rather you "backup your listing" via printer and write comments on the listing. Or make notes in a book to refer to later. |
| |
chatGPZ
Registered: Dec 2001 Posts: 11523 |
I don't agree with that. I always used comments in my code, it never was a problem. (Of course you'll be much less verbose than you'd be when writing code on the PC) |
| |
Richard
Registered: Dec 2001 Posts: 621 |
Coming back to native C64 tools. I remember a tool in a tools collection by Cascade (not the commercial software company) called the Flash8 AssBlaster. It was made in 1995 and was featured in (Toolstation 6). I never actually used that as a programming tool, perhaps I should consider it as a challenge some time, although I will need to read the reference note file first to know the syntax. |
| |
Mr SQL
Registered: Feb 2023 Posts: 159 |
Quoting oziphantomYou don't want to put any comments in your c64 source code, they will eat bytes and disk space and slow down assembly a great deal. Also comments on 40 col are "terse" by requirement. Rather you "backup your listing" via printer and write comments on the listing. Or make notes in a book to refer to later.
Quoting chatGPZI don't agree with that. I always used comments in my code, it never was a problem. (Of course you'll be much less verbose than you'd be when writing code on the PC)
I really miss having a Dot Matrix printer for being able to print scrolls instead of pages. It helped tremendously with continuity to be able to view the listing like on the screen but with a wider viewpoint panning through the code.
Agree on needing comments and having to make them very terse with 40 col. I used to use EDTASM+ on the Color Computer with only 32 columns and line numbers and still commented.
My comments are very verbose with Dasm Today for having so much horizontal space and asm being vertical.
The vertical format is another challenge with Assembly programming, I like the BBC Micro's inline Assembly support with the ":" concatenator in BASIC to allow horizontal structures too. Dot Matrix scrolls really helped with the vertical format. |
| |
Mr SQL
Registered: Feb 2023 Posts: 159 |
Quoting RichardComing back to native C64 tools. I remember a tool in a tools collection by Cascade (not the commercial software company) called the Flash8 AssBlaster. It was made in 1995 and was featured in (Toolstation 6). I never actually used that as a programming tool, perhaps I should consider it as a challenge some time, although I will need to read the reference note file first to know the syntax.
This looks cool I will download it and check it out to see if I can use the tools or if they inspire me for ideas to build tools.
I recently created a toolkit I plan to reuse parts of with a SID tracker and a sprite library with two extra levels of scaling near the native hardware scaling speed and horizontal and vertical sprite flipping.
Any other good toolkits I should take a look at? |
| |
oziphantom
Registered: Oct 2014 Posts: 502 |
Quoting Mr SQLThe vertical format is another challenge with Assembly programming, I like the BBC Micro's inline Assembly support with the ":" concatenator in BASIC to allow horizontal structures too. Dot Matrix scrolls really helped with the vertical format.
Yeah this is where Macros really help. I find the : format to be a bit illegible doing
ldx #0 : LOP21 : sta $0400,x : dex : bne LOP21
is kind of nice and there are assemblers that support it. But have a MOV macro is nice. i.e
lda #thing
sta other
becomes
mva #thing,other
with modern 64TASS you can even combine rows, such as
mva #0,[thing1, thing2, thing3, thing4]
turns into
lda #0
sta thing1
sta thing2
sta thing3
sta thing4
which really compacts code. Even just having an
ADCB .macro
lda \1
clc
adc \2
sta \3
.endm
turns 4 lines into 1 |
| |
Mr SQL
Registered: Feb 2023 Posts: 159 |
Quoting oziphantomQuoting Mr SQLThe vertical format is another challenge with Assembly programming, I like the BBC Micro's inline Assembly support with the ":" concatenator in BASIC to allow horizontal structures too. Dot Matrix scrolls really helped with the vertical format.
Yeah this is where Macros really help. I find the : format to be a bit illegible doing
ldx #0 : LOP21 : sta $0400,x : dex : bne LOP21
is kind of nice and there are assemblers that support it. But have a MOV macro is nice. i.e
lda #thing
sta other
becomes
mva #thing,other
with modern 64TASS you can even combine rows, such as
mva #0,[thing1, thing2, thing3, thing4]
turns into
lda #0
sta thing1
sta thing2
sta thing3
sta thing4
which really compacts code. Even just having an
ADCB .macro
lda \1
clc
adc \2
sta \3
.endm
turns 4 lines into 1
Yes macros are very powerful but can obfuscate the Assembly code if you do not know what is behind them. They can be like a BASIC Compiler in this regard which is also a very powerful macro assembler.
I prefer the horizontal format to macros because I can see all of the low level assembly code that is going on. |
Previous - 1 | 2 - Next |