blob: 7e8c68554480772a6bd5b06074cfa642cf45b49c [file]
;; 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