Witam,
wprowadziłem następujące zmiany:
MACRO ROLL TPAGE
LD A,(TPAGE)
XOR H
AND 11111000B
XOR H
LD H,A
ENDM
Efekt jest taki, że makro jest kompilowane prawidłowo, natomiast przy wywołaniu: ROLL TPAGE pojawia się następujący błąd: line 616: Over 20 defines nested.
Chyba coś jest nie tak z parametrem przekazywanym do makro. Zrobiłem eksperyment i LD w makro zmieniłem na:
LD A,0
czyli nie wykorzystuję parametru. Teraz ROLL TPAGE kompiluje się prawidłowo, a listing wygląda tak:
0616 02D4 P_PRT2 ROLL TPAGE ;KOREKCJA ADR. ZR0DLA
0616 02D4 3E 00 > LD A,0;(TPAGE)
0616 02D6 AC > XOR H
0616 02D7 E6 F8 > AND 11111000B
0616 02D9 AC > XOR H
0616 02DA 67 > LD H,A
0617 02DB ED A0 LDI ;PRZESLANIE ZNAKU
Czyli chyba prawidłowo, bo w miejsce wywołania makra podstawia jego kod.
Czy można jakoś inaczej napisać LD A,(TPAGE) z makra, aby wszystko działało? Jedyne informacje o definiowaniu TPAGE w programie znajdujące się w jego różnych miejscach są następujące:
DEFB 0F0H ;TPAGE
TPAGE DEFS 1
P.