/
MyMacros.asm
66 lines (61 loc) · 1.06 KB
/
MyMacros.asm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
literal MACRO quoted_text:VARARG
LOCAL local_text
.data
local_text db quoted_text,0
align 4
.code
EXITM <local_text>
ENDM
SADD MACRO quoted_text:VARARG
EXITM <ADDR literal(quoted_text)>
ENDM
szText MACRO Name, Text:VARARG
LOCAL lbl
jmp lbl
Name db Text,0
lbl:
ENDM
m2m MACRO M1, M2
push M2
pop M1
ENDM
FUNC MACRO parameters:VARARG
invoke parameters
EXITM <eax>
ENDM
return MACRO arg
mov eax, arg
ret
ENDM
RGB MACRO red, green, blue
xor eax, eax
mov ah, blue ; blue
mov al, green ; green
rol eax, 8
mov al, red ; red
ENDM
chr$ MACRO any_text:VARARG
LOCAL txtname
.data
txtname db any_text,0
.code
EXITM <OFFSET txtname>
ENDM
dsText MACRO Name, Text:VARARG
.data
Name db Text,0
align 4
.code
ENDM
AllowSingleInstance MACRO lpTitle
invoke FindWindow,NULL,lpTitle
cmp eax, 0
je @F
push eax
invoke ShowWindow,eax,SW_RESTORE
pop eax
invoke SetForegroundWindow,eax
mov eax, 0
ret
@@:
ENDM