more work on SD card support on MEGA65
This commit is contained in:
1 parent
11188cde84
commit
4b2d99a399
3 files changed
+48
-11
No files matched your search
@@ -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
|
||||
|
||||
|
||||
;
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in new issue
Block a user