I see enso posted before I was done. I'll finish and post this anyway.
From the middle of the
Memory Map Requirements page of the
6502 primer:
Quote:
Reset (RST): When the 6502's RST\ input gets pulled low and then brought back high, the 6502 starts its reset process, and gets the address to start executing program instructions from $FFFC-FFFD. Notice it does not start executing at address $FFFC, but reads it to get the beginning address of the routine where it should start executing. That routine will normally have to be in ROM.
Because the reset vector needs to already be in place to start the computer, it will normally be in ROM, and since its address is at $FFFC-FFFD, the highest addresses, ie, those near FFFF, are normally ROM. It could be the top 8KB, 16KB, 32KB, or other quantity. Then, since the reset routine needs to also be there to get the computer up and running, that is also in ROM. So for example if the reset routine starts at $E000, then $FFFC would contain 0 and $FFFD would contain $E0 (ie, low byte first), so the processor knows to start executing at $E000. (The same page in the primer will also tell why there's never ROM at address $0000.)
The
6502 primer has loads of stuff on building a 6502 computer, and a little bit about programming. It does assume you are acquainted with a few things like:
- binary and hexadecimal number bases
- common 74-family logic ICs and their functions
- wire-OR'able open-drain or open-collector logic
- very basic DC circuit theory
- even more-basic AC circuit theory (involving capacitance and, to a lesser extent, inductors)
- what a stack is (a last-on first-off storage area in memory-- it's in the software manual)
- what the address and data buses are and generally how they are connected
- Timing diagrams are in the data sheets and will not be repeated there.
If you are already acquainted with these (even if you're no expert), you're ready to jump in.