Rozkazy JSL i JML w 65816 dotyczą skoków poza pierwsze 64kB, a nie do banków, więc tutaj nie znajdą zastosowania. Niewątpiwie jednak jego 16-bitowe rejestry mogą skrócić i przyspieszyć opisane procedury.
Zamiast pisać nowy asembler, można ułożyć makra dla dowolnego makroasemblera.
Preferowany MAE ze względu obsługę ficzerów 816-tki, ale nie tylko:
ˇ MAE potrafi zmieniać wartości etykiet w czasie asemblacji, co może być przydatne dla zapamiętywania numeru banku:
_bank.no = -1 ; $FFFFFF - 24-bit!
set _bank.no = _bank.no+1
ˇ Makra MAE, w czasie asemblacji, wstawiane są jako listing do źródła i dopiero wtedy kompilowane. Dzięki temu można pokombinować z dynamicznym tworzeniem etykiet, a nawet kodu (!) co jest istotne przy odwołaniach pomiędzy bankami:
!!!makro .md
...
bank:1 = :2
...
.em
Jeśli teraz wywołamy makro makro z parametrami np. 0 i $FF, to asembler utworzy etykietę bank0 o wartości 255, której wartość można później zmieniać!
ˇ MAE rozpoznaje lokalne etykiety makra (nazwa poprzedzona trzema kropkami - ...local) co chroni przed błędami typu Label defined twice.
ˇ Nie będę się już tutaj rozwodzić nad asemblacją warunkową, ale przy tego typu operacjach jest ona niezbędna.
Dołączam się więc do swych przedmówców.
Po co wyważać otwarte drzwi? :D