summaryrefslogtreecommitdiff
path: root/misc/c32.mac
diff options
context:
space:
mode:
Diffstat (limited to 'misc/c32.mac')
-rw-r--r--misc/c32.mac28
1 files changed, 27 insertions, 1 deletions
diff --git a/misc/c32.mac b/misc/c32.mac
index a59acfde..f0c116ba 100644
--- a/misc/c32.mac
+++ b/misc/c32.mac
@@ -1,26 +1,52 @@
; NASM macro set to make interfacing to 32-bit programs easier -*- nasm -*-
+
+
%imacro proc 1 ; begin a procedure definition
+
%push proc
+
global %1
+
%1: push ebp
+
mov ebp,esp
+
%assign %$arg 8
+
%define %$procname %1
+
%endmacro
+
+
%imacro arg 0-1 4 ; used with the argument name as a label
- equ %$arg
+
+%00 equ %$arg
+
%assign %$arg %1+%$arg
+
%endmacro
+
+
%imacro endproc 0
+
%ifnctx proc
+
%error Mismatched `endproc'/`proc'
+
%else
+
leave
+
ret
+
__end_%$procname: ; useful for calculating function size
+
%pop
+
%endif
+
%endmacro
+