diff --git a/src/aliases/,aliases_ram_lowmem_m65.s b/src/aliases/,aliases_ram_lowmem_m65.s index 423bfd7f..dc5cc1d0 100644 --- a/src/aliases/,aliases_ram_lowmem_m65.s +++ b/src/aliases/,aliases_ram_lowmem_m65.s @@ -64,12 +64,12 @@ .label M65_DMAJOB_SIZE_0 = M65_DMAGIC_LIST + 7 .label M65_DMAJOB_SIZE_1 = M65_DMAGIC_LIST + 8 - .label M65_DMAJOB_SRC_0 = M65_DMAGIC_LIST + 10 - .label M65_DMAJOB_SRC_1 = M65_DMAGIC_LIST + 11 - .label M65_DMAJOB_SRC_2 = M65_DMAGIC_LIST + 9 + .label M65_DMAJOB_SRC_0 = M65_DMAGIC_LIST + 9 + .label M65_DMAJOB_SRC_1 = M65_DMAGIC_LIST + 10 + .label M65_DMAJOB_SRC_2 = M65_DMAGIC_LIST + 11 .label M65_DMAJOB_SRC_3 = M65_DMAGIC_LIST + 2 - .label M65_DMAJOB_DST_0 = M65_DMAGIC_LIST + 13 - .label M65_DMAJOB_DST_1 = M65_DMAGIC_LIST + 14 - .label M65_DMAJOB_DST_2 = M65_DMAGIC_LIST + 12 + .label M65_DMAJOB_DST_0 = M65_DMAGIC_LIST + 12 + .label M65_DMAJOB_DST_1 = M65_DMAGIC_LIST + 13 + .label M65_DMAJOB_DST_2 = M65_DMAGIC_LIST + 14 .label M65_DMAJOB_DST_3 = M65_DMAGIC_LIST + 4 diff --git a/src/kernal/board_m65/mega65_dmagic.s b/src/kernal/board_m65/mega65_dmagic.s index 7c123914..bebe7b4f 100644 --- a/src/kernal/board_m65/mega65_dmagic.s +++ b/src/kernal/board_m65/mega65_dmagic.s @@ -11,70 +11,6 @@ // XXX: finish the implementation, use in screen editor -/* - // XXX implementation is wrong - this example seems to work, copies 32 bytes from $19000 to $19001 - - // Prepare list - - lda #$0A // format F018A - sta M65_DMAGIC_LIST + 0 - - lda #$80 // src MB code - sta M65_DMAGIC_LIST + 1 - lda #$00 // src address - bits 20-27 - sta M65_DMAGIC_LIST + 2 - - lda #$81 // dst MB code - sta M65_DMAGIC_LIST + 3 - lda #$00 // dst address - bits 20-27 - sta M65_DMAGIC_LIST + 4 - - lda #$00 // end of options - sta M65_DMAGIC_LIST + 5 - - lda #$00 // COPY, not a chained request - sta M65_DMAGIC_LIST + 6 - - lda #$20 // copy $0020 bytes - sta M65_DMAGIC_LIST + 7 - lda #$00 - sta M65_DMAGIC_LIST + 8 - - lda #$00 // src address is $xxx9000 (setting bits 0-15) - sta M65_DMAGIC_LIST + 9 - lda #$90 - sta M65_DMAGIC_LIST + 10 - lda #$01 // src address - bits 16-19 - sta M65_DMAGIC_LIST + 11 - - lda #$01 // dst address is $xxx9001 (setting bits 0-15) - sta M65_DMAGIC_LIST + 12 - lda #$90 - sta M65_DMAGIC_LIST + 13 - lda #$01 // dst address - bits 16-19 - sta M65_DMAGIC_LIST + 14 - - lda #$00 // 'modulo' value is $0000 - sta M65_DMAGIC_LIST + 15 - sta M65_DMAGIC_LIST + 16 - - // Launch the DMAgic list - - lda #$00 // DMA list location - bits 16-19 - sta $D702 - - lda #$00 // DMA list location - bits 20-27 - sta $D704 - - lda #>M65_DMAGIC_LIST - sta $D701 - lda #M65_DMAGIC_LIST sta DMA_ADDRMSB // $D701 - lda #