-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathmacros.asm
108 lines (95 loc) · 1.52 KB
/
macros.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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
function bank_word(addr) = ((addr&$FFFF)<<8)|(addr>>16)
function fake(addr) = addr
function sound(channel, effect) = channel<<8|effect
macro offset(label, offset)
?tmp:
pushpc
org ?tmp+<offset>
<label>:
pullpc
endmacro
macro mirror(label)
?tmp:
pushpc
org ?tmp+$400000
<label>:
pullpc
endmacro
macro font_tile_offset(label)
db <label>-$0660>>6
endmacro
macro return(label)
PEA <label>-1
endmacro
macro pea_use_dbr(label)
?dummy:
PEA.w (<:?dummy<<8)|<:<label>
endmacro
macro pea_shift_dbr(label)
PEA.w <label>>>8
endmacro
macro pea_mask_dbr(label)
PEA.w <label>>>8&$FF00
endmacro
macro pea_engine_dbr()
PEA.w $8080
endmacro
macro pea_mirror_dbr()
?dummy:
PEA.w (<:?dummy<<8|$4000)|$80
endmacro
macro lda_sound(channel, sound)
lda.w #<channel><<8|!sound_<sound>
endmacro
macro get_swanky_table()
!i #= 0
' ' = $2000
'*' = $200A
'a' = $2041
'b' = $2042
'c' = $2043
'd' = $2044
'e' = $2045
'f' = $2046
'g' = $2047
'h' = $2048
'i' = $2049
'j' = $204A
'k' = $204B
'l' = $204C
'm' = $204D
'n' = $204E
'o' = $204F
'p' = $2050
'q' = $2051
'r' = $2052
's' = $2053
't' = $2054
'u' = $2055
'v' = $2056
'w' = $2057
'x' = $2058
'y' = $2059
'z' = $205A
'G' = $2027
'C' = $2023
'V' = $2036
'^' = $205E
endmacro
macro sprite(param, x, y, sprite)
if !version == 0
if <sprite> >= $0DB6
dw <param>, <x>, <y>, <sprite>-2
else
dw <param>, <x>, <y>, <sprite>
endif
else
dw <param>, <x>, <y>, <sprite>
endif
endmacro
macro local(name, scratch)
pushpc
org <scratch>
<name>:
pullpc
endmacro