SD_command assembly rewrite

This commit is contained in:
Byron Lathi
2023-07-23 16:25:13 -07:00
parent 5ca5fca29b
commit 709c60cf36
5 changed files with 188 additions and 416 deletions

View File

@@ -0,0 +1,32 @@
.export _SD_command
.importzp sp
.autoimport on
; void SD_command(uint8_t cmd, uint32_t arg, uint8_t crc)
; The plan: push crc to stack, load arg into tmp1 through 4
.proc _SD_command: near
pha ; Push CRC to cpu stack
ldy #$04
lda (sp),y ; Load CMD
ora #$40 ; start bit
jsr _spi_exchange
dey
arg_loop: ; send ARG
lda (sp),y
jsr _spi_exchange
dey
bpl arg_loop
pla ; Pull CRC from stack
ora #$01 ; stop bit
jsr _spi_exchange
jsr incsp5 ; pop all off stack
rts
.endproc