( bucko | 2016. 07. 11., h – 13:47 )

Máris töltöttem!

Még mindig keveredik a -1 és a 0f.
Vagyis mi az alapja call után ennek az üzenetnek?

Message[1302]: RAM Bank undefined in this chunk of code. Ensure that bank bits are correct. Assuming bank 15 from now on.

Az "Assuming" egy olyan dolog, hogy az ombuccman' is megdícsérne! ;) Nem tételezed fel a program írójáról, hogy hülye. Ilyenkor az automatikusan értéket kapott __ACTIVE_BANK_ADDR miatt a következő - esetleg jó - címzés hibadetektálása megfordul. (Tesztelés: a kis programomban a "movlb 4" helyet írjál "movlb 5"-öt és vizsgáld a Bank4DataManipulation üzeneteit -S 2 opció mellett!)
Természetesen a programozó - a programot tyúklépesben írva - mindig az első hibát javítja, így nem fog jelentkezni a téves üzenet.
8X---
Közben van már egy móricka makróm:

#define NOTHING -1
assume  macro   regN,regV
        if ( regN == BSR )
__ACTIVE_BANK_ADDR=regV
        endif
        endm

Ez a szubrutin elején kiüti a nem definiált vagy a fordító által rosszul értelmezett bsr miatti üzenetet.

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. Mivel nincs proc-endp, mint az MASM-ben, erről a programozónak kellene gondoskodni, hogy kijelölje a kód blokkokat.