なにこれ…z88dkの問題だと思うんだけど、グローバル変数の宣言で
uint8* const screen_pcg = (uint8* const)(ram);
このコードは通るのに、
uint8* const screen_pcg = (uint8* const)(ram + 0);
は
../IchigoJam_BASIC/screen.h:122:50: error: Expecting constant expression
と言われてしまう。
同じじゃん!
uint8* const screen_pcg = &((uint8*)ram)[0];
これもダメでした。
uint8* /*const*/ screen_pcg = ((uint8*)(ram + OFFSET_RAM_PCG)); // 同じ
これもダメ。多分構文解析する際に(ramが変数なのはともかくOFFSET_RAM_PAGEが#defineされた定数であっても)「計算する奴は許さねえ」という作りになってるんだろうなあ。gccとかclangじゃこんな書き方はごく普通にやるのに。