-
Notifications
You must be signed in to change notification settings - Fork 1
/
mega65.inc
67 lines (62 loc) · 1.93 KB
/
mega65.inc
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
; Some misc. MEGA65 specific CA65 helpers
;
; Copyright (C)2017 LGB (Gábor Lénárt) <[email protected]>
;
; This program is free software; you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation; either version 3 of the License, or
; (at your option) any later version.
;
; This program is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with this program. If not, see <http://www.gnu.org/licenses/>.
.SETCPU "4510" ; This requires quite new CA65 (of the CC65 suite) version, maybe only the git version can do this ...
.MACRO HYPERDOS
STA $D640 ; DOS hypervisor trap on write (I/O mode for M65 should be enabled for this)
CLV ; MEGA65 needs an extra opcode after hypervisor trap, as sometimes (?) one byte is skipped
.ENDMACRO
; MEGA65 32 bit linear ops
.MACRO LDA32Z zploc
NOP
LDA (zploc),Z
.ENDMACRO
.MACRO STA32Z zploc
NOP
STA (zploc),Z
.ENDMACRO
.MACRO ORA32Z zploc
NOP
ORA (zploc),Z
.ENDMACRO
.MACRO AND32Z zploc
NOP
AND (zploc),Z
.ENDMACRO
.MACRO EOR32Z zploc
NOP
EOR (zploc),Z
.ENDMACRO
.MACRO ADC32Z zploc
NOP
ADC (zploc),Z
.ENDMACRO
.MACRO SBC32Z zploc
NOP
SBC (zploc),Z
.ENDMACRO
.MACRO __DMA_COPY_OP__ sourcebank, source, targetbank, target, length, upward, chained
.ENDMACRO
.MACRO __DMA_FILL_OP__ targetbank, target, filler, length, upward, chained
.ENDMACRO
.MACRO DMA_COPY_OP_CHAINED sourcebank, source, targetbank, target, length, upward
.ENDMACRO
.MACRO DMA_COPY_OP_LAST sourcebank, source, targetbank, target, length, upward
.ENDMACRO
.MACRO DMA_FILL_OP_CHAINED targetbank, target, filler, length, upward
.ENDMACRO
.MACRO DMA_FILL_OP_LAST targetbank, target, filler, length, upward
.ENDMACRO