Just to note, there are *many* web resources out there for learning 6502 assembly, including a number of sites which offer Java (or other) 6502 assemblers/debuggers and a simple virtual machine environment for testing your code on. 6502.org, under the "Development Tools" heading:
http://www.6502.org/tools/
Has a page of emulators and simulators that are very useful for getting started. These two in particular:
http://www.6502asm.com/
and:
http://e-tradition.net/bytes/6502/
Were very useful in teaching me enough 6502 assembly to write a debugging ROM to aid repairing my Commodore PET. (It's probably worth noting that Commodore machines are another good choice for 6502 programming. They still have a very active community working on them and are very well documented for the most part. There are several good cross-assemblers that have specific support for compiling commodore-compatible binary files as well.)
http://www.6502.org/tools/
Has a page of emulators and simulators that are very useful for getting started. These two in particular:
http://www.6502asm.com/
and:
http://e-tradition.net/bytes/6502/
Were very useful in teaching me enough 6502 assembly to write a debugging ROM to aid repairing my Commodore PET. (It's probably worth noting that Commodore machines are another good choice for 6502 programming. They still have a very active community working on them and are very well documented for the most part. There are several good cross-assemblers that have specific support for compiling commodore-compatible binary files as well.)