A000h is a data port. Its bit-structure is as follows: bit 0 LSB credits (related, not only the "button") 1 drop smoke 2 move left player 1 3 move right player 1 4 move up player 1 5 move down player 1 6 dont know 7 dont know A100h is another data port, I only know about bit 0 which means reset the machine. There are more ports, not used as frequently as these two: A080, A181 (has to do something with timers). Now a little about the scroll. The most important Scroll variables are stored forward from 8050. The scroll is a combo between hard & soft: it paints new regions by soft but the "move" is done just changing screen offset. The appropiate screen offset for each frame is stored at 8056 and 8057, that is, (8057<<8)+8056. However, during the intro screen this address contains trash, so I guess there must be kinda flag hidden out there in the memory to indicate wether the offset stored in 8056 is actually an offset or just nonsense. About the graphics... well the machine maintains two (four) screen regions. The main ones are located at 0x8400-0x8800 for the sprite code and 0x8800-0x8c00 for the attributes of each sprite. The 2 MSB's of each attribute tell if the sprite must be printed X-flipped, Y-flipped, XY-flipped or just as-is. Most of the remaining bits refer to the color, but there's some more I have no clue about.