Some of you will advise me to just get an older Apple II instead :) but I don't have space for another system.
Get an older Apple :P Seriously though, it shouldn't matter which Apple you have, as long as you can get to the ROM monitor. I wouldn't think too hard about the built-in assembler -- it's not a big step over paper and an opcode table, and if/when you start doing more complex programs you'll want a real assembler that takes edit-able source files. IIRC the Apple II does have a *disassembler* which can be incredibly useful. As to modern stuff, I *really* like this in-browser JavaScript 6502 simulator: http://www.masswerk.at/6502/ He's got an assembler, disassembler, and instruction set summary linked below, too. Of course, its biggest advantage was being able to run it on my work computer when I was waiting on something to finish (test run, client to return a call, whatever). Thanks, Jonathan