Jorge Chamorro Bieling wrote:
Can you tell me more? what's the deal with the atari 2600 ?
Basically, it's got no mapped display memory at all - which is no
coincidence since it only has 128 bytes (sic) of RAM, too small for any
kind of mapped display to make sense. So the program in the cartridge
ROM has to stuff new values into the video chip every single screen line
(or even multiple times per line) - values such as a coarse background
bitmap and the (horizontal) size and position of any of five movable
objects on the current line. Of course this can work out only if your
program is always aware of where on the screen the electron beam
currently is. And, the program has to create the vertical sync signal by
itself, after the exactly the right number of screen lines have been
created. Only horizontal sync is created automatically.
It's made a bit easier since there is a memory location called WSYNC
("wait for sync"), which will halt the processor until the end of the
current screen line when you access it. Thus your code doesn't have to
be perfectly cycle exact, as long as you can make sure that WSYNC will
be accessed at least once every 65 or so cycles (and keep track of the
line count).