
Сообщение от
ezswift
Напомню:
&FF00 - в разрядах, где FF - всё остаётся, где 00 - стирается.
/0100 - получаем точное число страниц с недостатком. В МЛАДШЕМ байте.
&$FF - всё, что было - остаётся, но в старшем байте ничего.
*+1 - Число страниц увеличивается на 1.
**$0100 - и при умножении на 256, становится старшим байтом!!!
хм. я видел выравнивание при использовании z80:
(adres+$FF)/256
к тому же директива align 256 выравнивает код по "правильному" адресу.
Макросы мне не нравились, потому что есть масса ассемблеров и каждый использует макросы по-своему или не использует вообще.
в журнале Analog я встретил интересное применение:
Код:
*=$2000
AUDF1=$D200
AUDC1=$D201
AUDCTL=$D208
SKCTL=$D20F
.MACRO SOUND ; voice,pitch,dist,vol;,dur
lda #%2
sta AUDF1+2*%1
lda #[[%3 * 16] | %4] ;lda #[[%3 shl 4] or %4]
sta AUDC1+2*%1
.ENDM
lda #0
sta AUDCTL
lda #3
sta SKCTL
SOUND 0,121,10,8
jmp *
это по-нашему xD