Talk:6502 Assembly

Suggestions:
 * Description of zero-page and why it's important/useful
 * Description of the stack, where it's located in memory, and what it's used for
 * Memory mapped I/O
 * Interrupts

Does a good discussion of the 6502 require discussing complete systems, to be able to discuss doing I/O to hardware like printing to the screen or reading the keyboard, or using the basic routines provided by a ROM or disk O/S? —The preceding unsigned comment was added by 24.144.50.116 (talk • contribs) 03:55, 27 July 2006 (UTC)


 * Thanks for the suggestions. I've been working on a new outline to replace this "book" because it is in poor shape. I will take these suggestions into account. I think that we will discuss I/O commands, and perhaps even common port locations of "common" peripherals, and the workings of the 6502 chipset. Some things, like printing to the screen, require too much specialized knowledge of the videochipset and driver, and we can't assume anything. Reading the keyboard/mouse is a possibility, however. We can look at common ROM routines, if there are any that can be called "standard", but I think that we should stay clear away from OS subjects: that really doesnt have anything to do with assembly language programming. --Whiteknight (talk) (projects) 14:47, 27 July 2006 (UTC)

This is a nice start. In regards to the merger suggestion, I definitely think that this should NOT be merged with the NES intro to programming though. The 6502 was, and is, used in far more systems than just the NES. As for discussing complete systems, I think BRIEF mentions of common system configurations might be OK as it relates to examples of assembly programming (the topic of the wikibook) but details of how to use specific systems or ROM routines seems beyond the scope of this topic. I think Whiteknight has the right idea about the focus. Other books could tackle various system configurations in detail. -AlexS 06:14, 3 October 2007 (UTC)


 * Agreed. I learned 6502 assembly language on the Commodore 64, and continued to use it on C-128, Apple //c, and writing an NES emulator. Knowing a little something about both (6502) and (NES programming) merging is a bad idea, as it will destroy the useful scope of both projects. 66.170.4.2 17:39, 12 October 2007 (UTC)

Merge with NES?
What the crap? Merge with NES programming? The 6502 CPU got way more coverage than that. The NES programming book needs to talk about hacking the sound hardware and the video frame buffer; but do not pretend the CPU came as a Nintendo exclusive specialized chip!

I have to agree. The NES is NOT a commodore 64. There is an active community creating applications and assemblers for the Commodore 64 today, in 2007. Merging this will only cause a new article to be added concerning the Commodore 64, which certainly has far more interest for today's hobbiest than the emulation/theivery environment that the NES has. I came here looking for books on 6502 programming, not on NES programming, because I'm a c64 coder. I would have found nothing if it were merged. I simply don't understand why anyone would suggest the merge, at all.


 * Fair criticisms. I have removed the merge template. --Whiteknight (Page) (Talk) 21:48, 30 December 2007 (UTC)
 * Since when is this "thievery"? And I'd bet a single book about the 6502 could be shared among books specific to Apple II, Atari 2600, Atari 400/800, C64, and NES. But the NES would need different emphasis on what to put in zero page because it is unusual in that programs don't need to stay out of the way of ROM BASIC that hogs the majority of zero page. --Damian Yerrick (discuss • contribs) 02:13, 30 June 2011 (UTC)

Bad examples in the addressing mode section
"LSR ($2A),Y"? Seriously? I was under the impression that LSR only supported five addressing modes (A; d; d,X; a; a,X), not the (d),Y mode seen here. --Damian Yerrick (discuss • contribs) 02:16, 30 June 2011 (UTC)

I have a similar beef with the example "INC $F001,Y" -- barrym95838

suggestion : IMPROVE "M symbol"
I understand that "M" it's not exactly a symbol with the same sense of other 'symbol' in Status Flags table ( Carry, Zero ,etc) ... BUT syntax like    " Flags: N = M7, V = M6, Z "  (see for example BIT opcode) results pretty obscure ..... I guess it will be a great idea to add "M (memory)" in the table... and explain how exactly it means... 87.19.41.121 (discuss) 13:38, 23 August 2020 (UTC)