screen.h
uint8* const screen_pcg = ((uint8*)(ram + OFFSET_RAM_PCG)); // 同じ
basic.h
int16* const var = (int16*)(ram + OFFSET_RAM_VAR);
keyboard.h
char* keybuf = (char*)(ram + (OFFSET_RAM_KEYBUF + 1)); // kbhit[-1], len:[0], buf:[1-(KEY_BUF_LEN-1] // 24512+60 // 小さい!
ram.h:#define OFFSET_RAM_PCG 0 // basic:#700
ram.h:#define OFFSET_RAM_VAR (OFFSET_RAM_PCG + SIZE_RAM_PCG) // basic:#800
ram.h:#define OFFSET_RAM_KEYBUF (OFFSET_RAM_LIST + SIZE_RAM_LIST) // basic:#1002
これは、アレか。どっかで固定的に確保したメモリをオフセットとサイズで切り分けるんじゃなく、
int16 var[SIZE_RAM_VAR / sizeof(int16)];
で確保するパターンなのかも。というか別にそれで良くね?(真面目にやるとリンカスクリプトとかでサイズやアドレスを調整する世界にもなりかねん)