Vagyis mi az alapja call után ennek az üzenetnek?
Megválaszoltad saját magadnak: :-)
...felülbírálhatná pl. a call utáni __ACTIVE_BANK_ADDR törlését.
Amikor írtam a bank és a page kijelölések követését akkor próbáltam követni bizonyos szabályszerűségeket. Ilyen például az hogy egy call után törlöm a bank hozzárendelést, mivel a jó ég tudja hogy mit művel a szubrutin. Lehet hogy nem nyúl a bank kijelöléshez, de az is lehet hogy összekutyulja. Ezt csak szimulátorral lehetne követni. (A gpdasm primitív szinten valami hasonlót művel, de a gpasm-ba nem lenne értelme ilyet tenni, ezért maradt az egyszerűbb megoldás.) Persze mivel van pár év programozási gyakorlatom, pont a hibakezelés az ami nem mindig sikerül kimerítően, mivel akadnak olyan hibák amiket már csak reflexből is elkerülök és fel sem merül bennem hogy azokat valaki el fogja követni. Aztán legközelebb mégis belefutok egy ordas hibába a saját kódomban. :-)
A törlés úgy működik hogy minden utasításhoz van pár jelző amelyek közül az egyik mutatja hogy a végrehajtása után érvényes lehet-e még egy bank kijelölés, vagy el kell felejteni. A vezérlés átadások - bra, call, goto, return, stb. - ilyenek.
Ha lenne egy __ACTIVE_BANK_ADDR_GLOBAL, akkor ezt helyesen beállítva felülbírálhatná pl. a call utáni __ACTIVE_BANK_ADDR törlését.
Ezt végül is megcsinálhatod makrókkal is, vagy jobban szeretnéd ha a gpasm segítene a változók kezelésében? ;-)
Mivel nincs proc-endp, ...
Ezt én is furcsálltam amikor annak idején ismerkedtem a gpasm nyelvi elemeivel. (Néha jól jönne egy blokk lezárás.)
Egyébként most frissítettem a gputils változás naplóját: The major changes since the stable release (1.4.2)
Van pár új dolog ami esetleg téged is érdekelhet.