1 ; Standard macro set for NASM 0.98 -*- nasm -*-
2 ; Note that although some user-level forms of directives are defined
3 ; here, not all of them are: the user-level form of a format-specific
4 ; directive should be defined in the module for that directive.
6 %define __NASM_MAJOR__ 0
7 %define __NASM_MINOR__ 98
9 ; These two need to be defined, though the actual definitions will
10 ; be constantly updated during preprocessing.
14 %define __SECT__ ; it ought to be defined, even if as nothing
16 %imacro section 1+.nolist
17 %define __SECT__ [section %1]
20 %imacro segment 1+.nolist
21 %define __SECT__ [segment %1]
25 %imacro absolute 1+.nolist
26 %define __SECT__ [absolute %1]
30 %imacro struc 1.nolist
32 %define %$strucname %1
34 %$strucname: ; allow definition of `.member' to work sanely
36 %imacro endstruc 0.nolist
42 %imacro istruc 1.nolist
44 %define %$strucname %1
47 %imacro at 1-2+.nolist
48 times %1-($-%$strucstart) db 0
52 times %{$strucname}_size-($-%$strucstart) db 0
56 %imacro align 1-2+.nolist nop
57 times ($$-$) & ((%1)-1) %2
59 %imacro alignb 1-2+.nolist resb 1
60 times ($$-$) & ((%1)-1) %2
63 %imacro extern 1-*.nolist
70 %imacro bits 1+.nolist
74 %imacro use16 0.nolist
77 %imacro use32 0.nolist
81 %imacro global 1-*.nolist
88 %imacro common 1-*.nolist
100 ; Macros to make NASM ignore some TASM directives before the first include