
0x10 RXptr Low RXD buffer pointer (high is always =6)
0x11 RXpatience Patience counter, preset when byte received, count down
0x12 PowerOFF Auto Power Off period (×6 sec), preset here to alter timing
0x13 PowerCount Auto Power Off count down
0x14 Inner GP register, may be used by user
0x15 Outer GP register, may be used by user
0x16 Uniform (2 bytes) 150 Hz divider, count up for 6 sec timing
0x18 RXserial (2 bytes) Received serial number (binary), ready for comparison
0x1A MySerial (2 bytes) unit serial number copied from ROM address 0x100E
0x1C FSR0temp (2 bytes) Temporary FSR0 during INT
0x1E AccX ; Accelerometer X data (Little Endian, Left justified)
0x20 AccY ; Accelerometer Y data (Little Endian, Left justified)
0x22 AccZ ; Accelerometer Z data (Little Endian, Left justified)
0x1E...0x5FF User data RAM space
0x600...0x6FF RX Buffer, used by infrared port routine (bytes loaded here)
0x700...0x70F Display buffer, upper row first, bit 7 = left column (user writes here)
0x710...0x71F Aux buffer (not displayed by interrupt display refresh, used by user)
0x720...0x72F Pause display buffer (displayed only during pause)
0x730...0x733 RND seed (don't modify)
0x734...0x737 RND internal arithmetic registers (may be used for another purpose)
0x738...0x7FF User data RAM space
3. KERNEL
Kernel supports LED matrix multiplex. It also contains an initialization routine (which is normally
executed only once after RESET) and Timer 2 Interrupt routine, which should always be active.
This routine executes uniformly at 1200Hz rate in 8 steps, so it enables a 150Hz display refresh
rate. Within this routine, there is a key scanning subroutine with a debouncer and an edge
detector, and full ON-OFF-Pause control. So, MCU sleeps in Interrupt routine and user does not
have to take care of that. There is also UART RX manager, which automatically loads received
string in RX buffer (0x601-0x60E), if all conditions are met.
Frame buffer is in RAM, and everything that the user writes in 0x700-0x70F will be immediately
displayed on the LED screen. There is one more auxiliary buffer, which is not displayed and is
free to be used by the user routine. The third buffer (0x720-0x72F) is a special frame buffer
which will be displayed only in Pause mode. It may be useful for score displaying, pause symbol
or any message.