@@ -1,21 +1,4 @@
-dma0:
- rep #$10 : .xl
- sep #$20 : .as
- lda dma_mode
- sta $4300
- lda dma_b_reg
- sta $4301
- lda dma_a_bank
- ldx dma_a_addr
- stx $4302
- sta $4304
- ldx dma_len
- stx $4305
- lda #$01
- sta $420b
- rts
-
setup_hdma:
sep #$20 : .as
rep #$10 : .xl
@@ -1,13 +1,22 @@
+#define hash #
+#define f(x) x
+#define imm(a) f(hash)a
+
#define DMA0(mode, len, a_bank, a_addr, b_reg)\
- lda mode \
-: sta dma_mode \
+ php \
+: sep imm($20) : .as \
+: rep imm($10) : .xl \
+: lda mode \
+: sta $4300 \
: ldx a_addr \
: lda a_bank \
-: stx dma_a_addr \
-: sta dma_a_bank \
+: stx $4302 \
+: sta $4304 \
: ldx len \
-: stx dma_len \
+: stx $4305 \
: lda b_reg \
-: sta dma_b_reg \
-: jsr dma0
+: sta $4301 \
+: lda imm($01) \
+: sta $420b \
+: plp