| ;; SPDX-License-Identifier: BSD-2-Clause |
| ;; Copyright 2019-2025 The NASM Authors - All Rights Reserved |
| |
| ;; |
| ;; masm.mac |
| ;; |
| ;; Very limited MASM compatibility package; intended to be used |
| ;; primarily with machine-generated code. It does not include any |
| ;; "programmer friendly" shortcuts, nor does it in any way support |
| ;; ASSUME, symbol typing, or MASM-style structures. |
| ;; |
| |
| USE: masm |
| |
| %unimacro segment 1+ |
| |
| %imacro segment 0-1+.nolist |
| %define __?SECT?__ [segment %00 %1] |
| __?SECT?__ |
| %endmacro |
| |
| %imacro ends 0+.nolist |
| %null ends %00 |
| %endmacro |
| |
| %imacro proc 0-*.nolist |
| %rep %0 |
| %ifidni %1,far |
| %idefine ret retf |
| %else |
| %idefine ret retn |
| %endif |
| %rotate 1 |
| %endrep |
| %endmacro |
| |
| %imacro endp 0.nolist |
| %null endp %00 |
| %undef ret |
| %endmacro |
| |
| %ifndef st |
| %idefine st(x) st %+ x |
| %endif |
| |
| %idefine ptr __?masm_ptr?__ |
| %idefine flat __?masm_flat?__ ; is %idefine really correct here? |
| %idefine offset |
| |
| %imacro end 0+.nolist |
| ; Nothing |
| %endmacro |
| |
| %idefine tbyte tword |
| |
| default rel |