diff --git a/blk/424 b/blk/424 index 4537302..e6d55fb 100644 --- a/blk/424 +++ b/blk/424 @@ -5,11 +5,6 @@ ( spix 0xff until the response is something else than 0xff for a maximum of 20 times. Returns 0xff if no response. ) : _wait - 0 ( cnt ) - BEGIN - _idle - DUP 0xff = IF DROP ELSE NIP EXIT THEN - 1+ - DUP 20 = UNTIL - DROP 0xff -; + 0 ( dummy ) 20 0 DO + DROP _idle DUP 0xff = NOT IF LEAVE THEN + LOOP ; diff --git a/blk/428 b/blk/428 index d97a8e0..a5093ca 100644 --- a/blk/428 +++ b/blk/428 @@ -10,7 +10,7 @@ _s+crc _s+crc ( a2 crc ) SWAP 256 /MOD ROT ( h l crc ) _s+crc _s+crc ( crc ) - 0x01 OR ( ensure stop bit ) + 1 OR ( ensure stop bit ) (spix) DROP ( send CRC ) _wait ( wait for a valid response... ) ; diff --git a/blk/431 b/blk/431 index 748aa05..ef92fa1 100644 --- a/blk/431 +++ b/blk/431 @@ -1,16 +1,16 @@ : SDC$ 10 0 DO _idle DROP LOOP - 0 ( dummy ) 10 0 DO ( r ) - DROP 0x40 0 0 SDCMDR1 ( CMD0 ) - DUP 0x01 = IF LEAVE THEN - LOOP 0x01 = NOT IF _err THEN + 10 0 DO ( r ) + 0x40 0 0 SDCMDR1 ( CMD0 ) + DUP 1 = IF LEAVE ELSE DROP THEN + LOOP 1 = NOT IF _err THEN 0x48 0 0x1aa ( CMD8 ) SDCMDR7 ( r arg1 arg2 ) - 0x1aa = NOT IF _err THEN ( arg2 check ) - 0 = NOT IF _err THEN ( arg1 check ) - 0x01 = NOT IF _err THEN ( r check ) + ( expected 1 0 0x1aa ) + 0x1aa = ROT ( arg1 f r ) 1 = AND SWAP ( f&f arg1 ) + NOT ( 0 expected ) AND ( f&f&f ) NOT IF _err THEN BEGIN 0x77 0 0 SDCMDR1 ( CMD55 ) - 0x01 = NOT IF _err THEN - 0x69 0x4000 0x0000 SDCMDR1 ( CMD41 ) - DUP 0x01 > IF _err THEN + 1 = NOT IF _err THEN + 0x69 0x4000 0 SDCMDR1 ( CMD41 ) + DUP 1 > IF _err THEN NOT UNTIL ; ( out of idle mode, success! ) diff --git a/blk/432 b/blk/432 index fb7b9f0..3db170e 100644 --- a/blk/432 +++ b/blk/432 @@ -1,14 +1,14 @@ -: _sdc@ ( dstaddr blkno -- ) +: _ ( dstaddr blkno -- ) [ SDC_DEVID LITN ] (spie) 0x51 ( CMD17 ) 0 ROT ( a cmd 0 blkno ) _cmd IF _err THEN _wait 0xfe = NOT IF _err THEN 0 SWAP ( crc a ) 512 0 DO ( crc a ) - DUP _idle ( crc a a n ) - DUP ROT C! ( crc a n ) - ROT SWAP _crc16 ( a crc ) - SWAP 1+ ( crc a+1 ) + _idle ( crc a n ) + DUP ROT C!+ ( crc n a+1 ) + ROT> _crc16 ( a+1 crc ) + SWAP ( crc a+1 ) LOOP DROP ( crc1 ) _idle 8 LSHIFT _idle + ( crc2 ) diff --git a/blk/433 b/blk/433 index 15414d3..6bd635b 100644 --- a/blk/433 +++ b/blk/433 @@ -1,6 +1,4 @@ : SDC@ - 2 * DUP BLK( SWAP ( b a b ) - _sdc@ - 1+ BLK( 512 + SWAP - _sdc@ + 2 * DUP BLK( SWAP ( b a b ) _ + 1+ BLK( 512 + SWAP _ ; diff --git a/blk/434 b/blk/434 index 6f74196..5f071a6 100644 --- a/blk/434 +++ b/blk/434 @@ -1,4 +1,4 @@ -: _sdc! ( srcaddr blkno -- ) +: _ ( srcaddr blkno -- ) [ SDC_DEVID LITN ] (spie) 0x58 ( CMD24 ) 0 ROT ( a cmd 0 blkno ) _cmd IF _err THEN diff --git a/blk/435 b/blk/435 index 7af62c9..f7828e9 100644 --- a/blk/435 +++ b/blk/435 @@ -1,6 +1,4 @@ : SDC! - 2 * DUP BLK( SWAP ( b a b ) - _sdc! - 1+ BLK( 512 + SWAP - _sdc! + 2 * DUP BLK( SWAP ( b a b ) _ + 1+ BLK( 512 + SWAP _ ;