Вот, кстати, нашлись подобные макросы в Alasm:
alasm:
Вычисление экранного адреса.
getS метка,3,4*8 (4пикселя и *8 для знакомест)
\0 - Имя создаваемой переменной
\1 - X coord (в знакоместах)
\2 - Y coord (в пикселях)
MACRO getS ; label,X,Y ($-SCR)
\0 EQU Ss
\0=\0+((\2)&192*32)+((\2)&7*256)+((\2)&56*4)+((\1) &31)
ENDM
Вычисление адреса в атрибутах.
get@ метка,X,Y
\0 - Имя создаваемой переменной
\1 - X координата (в знакоместах)
\2 - Y координата (в знакоместах)
MACRO get@ ; label,Xat,Yat (@-ATTR)
\0 EQU As
\0=\0+((\2)*32)+((\1)F)
ENDM