A is where the logic and arithmetic functions start and end. X & Y are for indexing; for example, the instruction LDA $14F3,X will load A (the accumulator) with the value read from the address that is the sum of $14F3 and the contents of X; so for example if X had 5 in it, then A would be loaded with the contents of address $14F3+5, or $14F8. Indexing can be used with indirects also.
S (the Stack pointer) is like an index register to stack operations which are in page 1, ie, from addresses $0100 to $01FF. Stack operations automatically increment and decrement S.
P (Processor status) register has status bits (or flags) telling if an arithmetic or logic function resulted in a negative result (N flag), result of zero (Z flag), or that oVerflow caused the sign bit to be wrong (V flag), or resulted in a Carry or a borrow (C flag), or affect the processor's operation like the Decimal (D) flag, or Interrupt-
disable (I) flag, or tell if an interrupt was caused by a software Break instruction (B flag).
Most of the memory range can be used in many ways, although there are a few requirements, given in the memory map requirements page of the 6502 primer, at
http://wilsonminesco.com/6502primer/MemMapReqs.html .
It's far too much to explain in detail in a forum post, but hopefully this will get your imagination going. The books at the link above will explain it all. I'm in the process of writing a treatise on stacks, but the basics will be covered just fine in the books. [
Edit: It's up, at
http://wilsonminesco.com/stacks/index.html .]
As for the number of colors and so on, that does not really depend on the processor, but the attached video hardware.