dos_compilers/Mix Power C v22/PCMAC.ASM

77 lines
1.6 KiB
NASM
Raw Permalink Normal View History

2024-07-02 17:33:48 +02:00
; .sall
modbeg macro modname
name modname
module segment
assume cs:module
endm
;
procbeg macro procname,arg1,arg2,arg3,arg4
public procname
procname proc far
push bp
mov bp,sp
lea si,[bp+6]
ifnb <arg1>
mov arg1, word ptr [bp+6]
endif
ifnb <arg2>
mov arg2, word ptr [bp+8]
endif
ifnb <arg3>
mov arg3, word ptr [bp+10]
endif
ifnb <arg4>
mov arg4, word ptr [bp+12]
endif
endm
;
getarg macro number,register
mov register,word ptr [bp+(number*2+4)]
endm
;
callc macro funcname,parm1,parm2,parm3,parm4
ifndef funcname
extrn funcname:far
endif
ifnb <parm4>
push parm4
endif
ifnb <parm3>
push parm3
endif
ifnb <parm2>
push parm2
endif
ifnb <parm1>
push parm1
endif
call far ptr funcname
ifnb <parm4>
add sp,8
else
ifnb <parm3>
add sp,6
else
ifnb <parm2>
add sp,4
else
ifnb <parm1>
add sp,2
endif
endif
endif
endif
endm
;
procend macro procname
pop bp
ret
procname endp
endm
;
modend macro
module ends
end
endm