Цитата Сообщение от 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