2023-11-16 18:19:54 -05:00

55 lines
752 B
Plaintext

SUBTTL MACROS
PAGE +
GTAWRD MACRO D,S ;;GET ABSOLUTE WORD
MOV D&X,ES:&S
XCHG D&H,D&L
ENDM
PTAWRD MACRO D,S ;;PUT ABSOLUTE WORK
XCHG S&H,S&L
MOV ES:&D,S&X
ENDM
MOVM MACRO D,S,R ;;MOVE MEMORY TO MEMORY
MOV R,S
MOV D,R
ENDM
PUSHZ MACRO S ;;PUSH ONTO Z STACK
XCHG SP,DI
PUSH S
XCHG SP,DI
ENDM
POPZ MACRO D ;;POP FROM Z STACK
XCHG SP,DI
POP D
XCHG SP,DI
ENDM
POPZT MACRO D ;;GET TOP OF Z STACK
MOV D,SS:[DI]
ENDM
PUSHZT MACRO S ;;PUT TOP OF Z STACK
MOV SS:[DI],S
ENDM
PRINT MACRO STR ;;PRINT A STRING, POINTER IS ARGUMENT
PUSH AX
MOV AX,OFFSET STR
CALL MPRNT
POP AX
ENDM
FATAL MACRO ERR ;;PRINT FATAL ERROR AND DIE
CALL MCRLF
MOV AX,OFFSET FATHDR
CALL MPRNT
MOV AX,OFFSET ERR
CALL MPRNT
JMP FINISH
ENDM