• Please review our updated Terms and Rules here

6502 ASM suggestions

atari2600a

Veteran Member
Joined
May 26, 2006
Messages
1,267
Location
Schwarzeneggerville, CA
I'm currently learning 6502 ASM. I know, kinda odd as I only know how to use the printf() function in C... I'm primarily learning this so that I can get into the whole Atari 2600 & Famicom/NES homebrew scene.

Does anyone know of any good Assemblers &/or disassemblers to recommend?
 
yes, from what i've read TASM is a good compiler. when you start getting good at coding the 6502 will you port windows 3.1 to the NES for me? :D

j/k. so are you planning on trying to make some sort of game down the road?
 
An x86 operating system running on 6502 architecture*!? Blasphemy!

Well, the plan is to get good at plain 6502 asm itself w/ a 6502 emulator. That way, I won't have to worry about daughter chips & whatnot.

After that, I'll either move onto an easy 6502-based computer or the Atari 2600, THEN the NES.

*The NES didn't exactly use a 6502. Quote: [quote="Wikipedia]Another important use of the 6502 was in the Nintendo Famicom, a Japanese video game console. Its North American and European equivalent, the Nintendo Entertainment System, also used the processor. The 6502 used in the NES was a modified version, a partial system-on-a-chip, that lacked a binary-coded decimal mode but added 22 memory-mapped registers for sound generation, joypad reading, and sprite list DMA. Called 2A03 in NTSC consoles and 2A07 in PAL consoles (the difference being the clock divider ratio and a lookup table for audio sample rates), this processor was produced exclusively for Nintendo[/quote]
 
I use DASM, currently (?) maintained by Andrew Davies IIRC. I suppose most assemblers are the same, only the syntax differs a bit.

The ca65 assember from the CC65 package is very powerful, but quite tricky to learn to master, I've heard. I have never used it, other than part of the compiler stage. If you're learning C and 6502 machine code simultaneously, it might be interesting to look at CC65, even if it supports neither Atari 2600 nor NES.

Speaking about the 2600 (which btw uses 6507, a stripped-down 6502), it is considered one of the most hairy systems to program due to the strictly limited amount of RAM, need of exact timing of every screen row, vertical blanking and so on. I envy those who have the patience to get somewhere. If you want to learn the machine language, try some simpler machine such as Commodore 64 or Atari 8-bit computers, both with plenty of documentation and much easier to get going. Of course you can work with a bare 6502 board/emulator, but it may bore you long before you get the hang of things.
 
I'm currently learning 6502 ASM. I know, kinda odd as I only know how to use the printf() function in C... I'm primarily learning this so that I can get into the whole Atari 2600 & Famicom/NES homebrew scene.

Does anyone know of any good Assemblers &/or disassemblers to recommend?

I actually use mostly TASM (v.3.01) or TASS. I tend to use TASM more than TASS only because TASM has additional target processors beyond the 6502. I use it for compiling 8080 (using the 8085 directive) and Z80 code for my emulator projects. TASS I use for my 6502 SBC projects hanging off of Daryl Rictor's SBC because he used TASS for the monitor ROM.

Echoing Vince, Mike Naberezny runs 6502.org which is a fantastic starting point for all things 6502-related.
 
I've been using ACME recently. I've been studying all the NES's registers on & off for about a month now, hopefully I'll have something worth mention in 2 or so months...
 
Back
Top