more work on SD card support on MEGA65

This commit is contained in:
FeralChild64 committed 2020-10-28 21:50:36 +01:00
1 parent 11188cde84
commit 4b2d99a399
3 files changed
+48 -11

No files matched your search

+2 -2
View File
@@ -31,8 +31,8 @@
!addr CARD_TMP_STEP = $12 ; 4 bytes
!addr CARD_TMP_RETRIES = $16 ; 1 byte
!addr CARD_BUFPNT = $FC ; 4 bytes - pointer to hardware sector buffer XXX replace copy routines with DMAgic
!addr CARD_BUFPNT1 = $17 ; 4 bytes - pointer to hardware sector buffer XXX replace copy routines with DMAgic
!addr CARD_BUFPNT2 = $1B ; 4 bytes - as above, but points to the 2nd page of the hardware buffer
;
+9 -4
View File
@@ -18,13 +18,18 @@ sdcard_init:
sta CARD_IS_SDHC
lda #SD_SECBUF_0
sta CARD_BUFPNT+0
sta CARD_BUFPNT1+0
sta CARD_BUFPNT2+0
lda #SD_SECBUF_1
sta CARD_BUFPNT+1
sta CARD_BUFPNT1+1
inc
sta CARD_BUFPNT2+1
lda #SD_SECBUF_2
sta CARD_BUFPNT+2
sta CARD_BUFPNT1+2
sta CARD_BUFPNT2+2
lda #SD_SECBUF_3
sta CARD_BUFPNT+3
sta CARD_BUFPNT1+3
sta CARD_BUFPNT2+3
; Reset the card
+37 -5
View File
@@ -99,13 +99,47 @@ sdcard_writesector_verify:
and #$03
bne @3
; XXX verify - compare buffer
; FALLTROUGH
sdcard_writesector_verify_loop:
; Compare buffers
phx
phz
ldx #$00
ldz #$00
lda [CARD_BUFPNT1],z
cmp CARD_BUF, x
bne sdcard_writesector_verify_fail
lda [CARD_BUFPNT2],z
cmp CARD_BUF+$100, x
bne sdcard_writesector_verify_fail
inz
inx
bne sdcard_writesector_verify_loop
; FALLTROUGH
sdcard_writesector_verify_success:
plz
plx
clc
rts
sdcard_writesector_verify_fail:
plz
plx
sec
rts
;
@@ -124,11 +158,9 @@ sdcard_writesector_copy_data:
@1:
lda CARD_BUF,x
sta [CARD_BUFPNT],z
inc CARD_BUFPNT+1
sta [CARD_BUFPNT1],z
lda CARD_BUF+$100,x
sta [CARD_BUFPNT],z
dec CARD_BUFPNT+1
sta [CARD_BUFPNT2],z
inz
inx