blob: 6587e0154ca363c00e723114a1a469a810bc6dc2 [file] [log] [blame]
H. Peter Anvin (Intel)89817242019-08-14 15:24:56 -07001;; --------------------------------------------------------------------------
2;;
3;; Copyright 2019 The NASM Authors - All Rights Reserved
4;; See the file AUTHORS included with the NASM distribution for
5;; the specific copyright holders.
6;;
7;; Redistribution and use in source and binary forms, with or without
8;; modification, are permitted provided that the following
9;; conditions are met:
10;;
11;; * Redistributions of source code must retain the above copyright
12;; notice, this list of conditions and the following disclaimer.
13;; * Redistributions in binary form must reproduce the above
14;; copyright notice, this list of conditions and the following
15;; disclaimer in the documentation and/or other materials provided
16;; with the distribution.
17;;
18;; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
19;; CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
20;; INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
21;; MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22;; DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23;; CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24;; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25;; NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
26;; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
27;; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28;; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29;; OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30;; EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31;;
32;; --------------------------------------------------------------------------
33
34;;
35;; masm.mac
36;;
37;; Very limited MASM compatiblity package; intended to be used
38;; primarily with machine-generated code. It does not include any
39;; "programmer friendly" shortcuts, nor does it in any way support
40;; ASSUME, symbol typing, or MASM-style structures.
41;;
42
43USE: masm
44
45%unimacro segment 1+
46
47%imacro segment 0-1+.nolist
48 %define __SECT__ [segment %00 %1]
49 __SECT__
50%endmacro
51
52%imacro ends 0+.nolist
53 %pragma ignore ends %00
54%endmacro
55
56%imacro proc 0-*.nolist
57 %rep %0
58 %ifidni %1,far
59 %idefine ret retf
60 %else
61 %idefine ret retn
62 %endif
63 %rotate 1
64 %endrep
65%endmacro
66
67%imacro endp 0.nolist
68 %pragma ignore endp %00
69 %undef ret
70%endmacro
71
72%idefine ptr __masm_ptr__
73%idefine flat __masm_flat__ ; is %idefine really correct here?
74%idefine offset
75
76%imacro end 0+.nolist
77 ; Nothing
78%endmacro
79
H. Peter Anvin (Intel)522bcad2019-08-14 21:29:21 -070080%idefine tbyte tword
81
H. Peter Anvin (Intel)89817242019-08-14 15:24:56 -070082 default rel