collapseos/blk/428

17 lines
586 B
Plaintext

( cmd arg1 arg2 -- resp )
( Sends a command to the SD card, along with arguments and
specified CRC fields. (CRC is only needed in initial commands
though). This does *not* handle CS. You have to
select/deselect the card outside this routine. )
: _cmd
_wait DROP ROT ( a1 a2 cmd )
0 _s+crc ( a1 a2 crc )
ROT 256 /MOD ROT ( a2 h l crc )
_s+crc _s+crc ( a2 crc )
SWAP 256 /MOD ROT ( h l crc )
_s+crc _s+crc ( crc )
1 OR ( ensure stop bit )
(spix) DROP ( send CRC )
_wait ( wait for a valid response... )
;