|
|
I am digging through the five game tasks now. The code is really hard to follow. I call it Space Spaghetti.
Memory usage is a bit fragmented. At 1822 the code uses location 206C to hold the count of “10” … the number of characters in all “=xx POINTS” messages. This count is reloaded at 184D. Nowhere else in the code reference 206C. A generic “temporary” could have been used to save RAM, but I guess there was plenty to go around.
The font table is at 1E00 padded before to even it out to 1E00. Strange 00 00 00 at 854 before a routine.
Note that all the “=xx POINTS” messages are at 1DE0, but they ran out of room at 1DFE. The “=10 POINTS” message had to be relocated up to 1C99 with the “SCORE ADVANCE” message.
; Some of the font characters at the end were never needed. The ROM overwrites these characters with data near the end. For instance, 1F90 would be a character but has the "INSERT COIN" message. The "?" character is at 1FC0 and is used in messages. The 1FF8 character is "-". ?? Ever used?
The function at 0ACF was factored out to print a 15-byte message near the center of the screen. It is only used in one place (0B08) to print “SPACE INVADERS” below “PLAY”. Was this code part of a refactor? Was there going to be something done to “SPACE INVADERS” in the splash?