Update SD stuff

This commit is contained in:
Byron Lathi
2024-07-20 15:58:33 -07:00
parent bdb3fc96d6
commit f126e383a3
7 changed files with 136 additions and 25 deletions

View File

@@ -7,15 +7,27 @@
.addr _irq_int ; IRQ/BRK vector
SD_CONTROLLER = $e000
SD_CMD = SD_CONTROLLER
SD_ARG = SD_CONTROLLER + $4
SD_FIFO_0 = SD_CONTROLLER + $8
SD_FIFO_2 = SD_CONTROLLER + $C
SD_PHY = SD_CONTROLLER + $10
SD_PHY_CLKDIV = SD_PHY
SD_PHY_CLKCTRL = SD_PHY + $1
SD_PHY_SAMP_VOLT = SD_PHY + $2
SD_PHY_BLKSIZ = SD_PHY + $3
SD_DMA_BASE = SD_CONTROLLER + $28
SD_DMA_STAT_CTRL = SD_CONTROLLER + $2C
SDIOCLK_100KHZ = $FC
SPEED_512B = $09
.zeropage
rca: .res 4
@@ -25,7 +37,42 @@ _nmi_int:
_irq_int:
_init:
ldx #$ff
txs
ldx #$ff
txs
@end: bra @end
stz SD_PHY_CLKCTRL
stz SD_PHY_SAMP_VOLT
lda #SPEED_512B
sta SD_PHY_BLKSIZ
lda #SDIOCLK_100KHZ
sta SD_PHY_CLKDIV
@wait_clk: lda SD_PHY_CLKDIV
cmp #SDIOCLK_100KHZ
bne @wait_clk
stz SD_CMD+$3
lda #$04
sta SD_CMD+$2
lda #$08
sta SD_CMD+$1
lda #$40
sta SD_CMD
jsr wait_busy
lda #$01
sta SD_CMD+$1
lda #$48
sta SD_CMD
jsr wait_busy
@end:
bra @end
wait_busy: lda SD_CMD+$1
bit #$40
bne wait_busy
rts