A tárolóban van a javított kód. Mellesleg javasolom azt hogy ha a választott bank sorszámát szeretnéd kiíratni akkor ne így tedd:
messg "__ACTIVE_BANK_ADDR: #v(__ACTIVE_BANK_ADDR/100)"
Ez ugyanis nullát ad akkor ha a bank értéke -1 (__BANK_INV). (Ráadásul ha egy szám leírásakor nem adod meg a használt számrendszert akkor jól ki is tolhatsz magaddal: 100 --> 0x100) Ha viszont az erre is alkalmas __BANK_SHIFT állandót használod akkor a mínusz egyből nem lesz nulla, amivel aztán becsapod magadat.
messg "__ACTIVE_BANK_ADDR: #v(__ACTIVE_BANK_ADDR >> __BANK_SHIFT)"
Ezt ráadásul egyszerűsítheted is a következő módon. Valahol a kód elején felveszed a következő két definíciót:
#define ActiveBank (__ACTIVE_BANK_ADDR >> __BANK_SHIFT)
#define AssumedBank (__ASSUMED_BANK_ADDR >> __BANK_SHIFT)
Aztán használod őket:
messg "__ASSUMED_BANK: #v(AssumedBank)"
messg "__ACTIVE_BANK: #v(ActiveBank)"