( c n -- c ) ( Computes n into crc c with polynomial 0x1021 ) : _crc16 SWAP DUP 256 / ( n c c>>8 ) ROT XOR ( c x ) DUP 16 / XOR ( c x^x>>4 ) SWAP 256 * ( x c<<8 ) OVER 4096 * XOR ( x c^x<<12 ) OVER 32 * XOR ( x c^x<<5 ) XOR ( c ) ; ( send-and-crc7 ) ( n c -- c ) : _s+crc SWAP DUP _sdcSR DROP _crc7 ;