diff --git a/snes/dma.a65 b/snes/dma.a65 index 3983693..53a1b20 100644 --- a/snes/dma.a65 +++ b/snes/dma.a65 @@ -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 diff --git a/snes/dma.i65 b/snes/dma.i65 index f5e6040..7d4bb60 100644 --- a/snes/dma.i65 +++ b/snes/dma.i65 @@ -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