more work on SD card support
This commit is contained in:
1 parent
ff98d2c5c2
commit
32a73bb5f8
3 files changed
+147
-35
No files matched your search
@@ -0,0 +1,78 @@
|
||||
|
||||
;
|
||||
; Writes the sector to the SD card
|
||||
;
|
||||
|
||||
; Based on https://github.com/MEGA65/mega65-libc/blob/master/cc65/src/sdcard.c
|
||||
|
||||
|
||||
; XXX finish, provide documentation
|
||||
|
||||
|
||||
sdcard_writesector:
|
||||
|
||||
; XXX check if card initialized and operable
|
||||
|
||||
lda SD_CTL
|
||||
and #$03
|
||||
bne sdcard_writesector ; XXX add a timer here
|
||||
|
||||
; End reset
|
||||
|
||||
lda #$01
|
||||
sta SD_CTL
|
||||
|
||||
; Set write address
|
||||
|
||||
jsr sdcard_set_addr
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
jsr sdcard_writesector_copy_data
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
;
|
||||
; Helper routines
|
||||
;
|
||||
|
||||
sdcard_writesector_copy_data:
|
||||
|
||||
; XXX use DMAgic for this
|
||||
|
||||
phz
|
||||
phx
|
||||
|
||||
ldx #$00
|
||||
ldz #$00
|
||||
|
||||
@1:
|
||||
lda CARD_BUF,x
|
||||
sta [CARD_BUFPNT],z
|
||||
inc CARD_BUFPNT+1
|
||||
lda CARD_BUF+$100,x
|
||||
sta [CARD_BUFPNT],z
|
||||
dec CARD_BUFPNT+1
|
||||
|
||||
inz
|
||||
inx
|
||||
bne @1
|
||||
|
||||
; Restore registers and quit
|
||||
|
||||
plx
|
||||
plz
|
||||
|
||||
clc
|
||||
rts
|
||||
Reference in new issue
Block a user