: _cmd ( b4 b3 b2 b1 -- r4 ) (spix) DROP DUP (spix) DROP SWAP (spix) = ( b4 f ) SWAP (spix) SWAP ( r4 f ) NOT IF ABORT" AVR err" THEN ; : asp$ ( -- ) ( RESET pulse ) (spie) (spid) (spie) ( wait 20ms ) 2000 0 DO LOOP ( enable prog ) 0 0 0x53 0xac _cmd DROP ; : asprdy ( -- f ) 0 0 0 0xf0 _cmd NOT ; : aspfl@ ( -- lfuse ) 0 0 0 0x50 _cmd ; : aspfh@ ( -- hfuse ) 0 0 0x08 0x58 _cmd ; : aspfe@ ( -- efuse ) 0 0 0x00 0x58 _cmd ; : aspfl! ( lfuse -- ) 0 0xa0 0xac _cmd ; : aspfh! ( hfuse -- ) 0 0xa8 0xac _cmd ; : aspfe! ( efuse -- ) 0 0xa4 0xac _cmd ;