
Сообщение от
Ped7g
I guess you simplified the example, but so much, that it doesn't make sense to me.
так и есть
вот настоящий макрос
тут используется для определения ошибок типа
mvi $FFFF
которые будут заменены на mvi $FFF при компиляции
Код:
macro mvi ch8_xxx ;Axxx MVI xxx
if (ch8_xxx) > $FFF
display $," error mvi > $FFF (",ch8_xx,")"
endif
defb ($A0 + ($0F and (high (ch8_xx)))), (low (ch8_xx))
endm
вот кусок реального кода
весь на подобных макросах с проверками "правильности"
Код:
sne v9,0x1 ;
ld v4,0x1
add v9,v4 ;
drw v0,v9,6
add v0,0x9 ; адрес след знакоместа
mvi SPRITE_05
drw v0,va,6
sne va,0x14
ld v5,0xff
SPRITE_05
db 00111100b ; ; 8
db 11000011b ;
db 00111100b ;
db 11000011b ;
db 11000011b ;
db 00111100b ;
потом сыпется куча ошибок
которые по сути не ошибки
(это было бы ошибкой на 3 проходе
на 1-м это еще не ошибка)

среди которых тяжело увидеть более важные "настоящие" ошибки

Сообщение от
Ped7g
in older versions
в старых версиях SjASMPlus Z80 Cross-Assembler v1.07 RC7 (build 02-04-2008)
это тоже было
error: [IF] Forward reference
ну и проблему можно было бы решать
временным включением opt --msg=none
которого сейчас нет
да и в принципе хотелось бы иметь возможность
менять все параметры на ходу через opt
а не только одни
--nofakes, --syntax, --zxnext, --reversepop and --dirbol.