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_STEP = $12 ; 4 bytes
|
||||||
!addr CARD_TMP_RETRIES = $16 ; 1 byte
|
!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
|
sta CARD_IS_SDHC
|
||||||
|
|
||||||
lda #SD_SECBUF_0
|
lda #SD_SECBUF_0
|
||||||
sta CARD_BUFPNT+0
|
sta CARD_BUFPNT1+0
|
||||||
|
sta CARD_BUFPNT2+0
|
||||||
lda #SD_SECBUF_1
|
lda #SD_SECBUF_1
|
||||||
sta CARD_BUFPNT+1
|
sta CARD_BUFPNT1+1
|
||||||
|
inc
|
||||||
|
sta CARD_BUFPNT2+1
|
||||||
lda #SD_SECBUF_2
|
lda #SD_SECBUF_2
|
||||||
sta CARD_BUFPNT+2
|
sta CARD_BUFPNT1+2
|
||||||
|
sta CARD_BUFPNT2+2
|
||||||
lda #SD_SECBUF_3
|
lda #SD_SECBUF_3
|
||||||
sta CARD_BUFPNT+3
|
sta CARD_BUFPNT1+3
|
||||||
|
sta CARD_BUFPNT2+3
|
||||||
|
|
||||||
; Reset the card
|
; Reset the card
|
||||||
|
|
||||||
|
|||||||
@@ -99,13 +99,47 @@ sdcard_writesector_verify:
|
|||||||
and #$03
|
and #$03
|
||||||
bne @3
|
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:
|
@1:
|
||||||
lda CARD_BUF,x
|
lda CARD_BUF,x
|
||||||
sta [CARD_BUFPNT],z
|
sta [CARD_BUFPNT1],z
|
||||||
inc CARD_BUFPNT+1
|
|
||||||
lda CARD_BUF+$100,x
|
lda CARD_BUF+$100,x
|
||||||
sta [CARD_BUFPNT],z
|
sta [CARD_BUFPNT2],z
|
||||||
dec CARD_BUFPNT+1
|
|
||||||
|
|
||||||
inz
|
inz
|
||||||
inx
|
inx
|
||||||
|
|||||||
Reference in new issue
Block a user