24-09-2012, 11:06 PM
CRC_INIT_CHKFB8 ;"0xFFFF","0x1021",3xA1 = (CRC) H'CDB4'
MOVLF H'CD',CRC16H_ANYBANK ;(3xA1) crc High on CD
MOVLF H'B4',CRC16L_ANYBANK ;(3xA1) crc Low on B4
CRC_CALC
XORWF CRC16H_ANYBANK,W ; (a^x)b^y)
MOVWF CRC16TEMP_ANYBANK ;
ANDLW H'F0' ; W = (a^x):0
SWAPF CRC16TEMP_ANYBANK,F ; Index = (b^y)a^x)
XORWF CRC16TEMP_ANYBANK,F ; Index = (a^b^x^y)a^x) = i2:i1
MOVF CRC16TEMP_ANYBANK,W
ANDLW H'F0'
XORWF CRC16L_ANYBANK,W
MOVWF CRC16H_ANYBANK
RLF CRC16TEMP_ANYBANK,W
RLF CRC16TEMP_ANYBANK,W
XORWF CRC16H_ANYBANK,F
ANDLW H'E0'
XORWF CRC16H_ANYBANK,F
SWAPF CRC16TEMP_ANYBANK,F
XORWF CRC16TEMP_ANYBANK,W
MOVWF CRC16L_ANYBANK
RETURN
see 17 käsuline programmijupp ka töötab täiesti, olen kasutanud.
http://www.lammertbies.nl/comm/info/crc-...ation.html
crc kalkulaatorid on paljud kõverad ehk teoreetilised, aga see siin töötab, vähemasti floppy asjades ta toimib olen kasutanud.
aga üldiselt on see crc asi loomaaed, variante on seinast seina ja igale muidugi oma kalkulaator ja oma programmijupp asm-is
MOVLF H'CD',CRC16H_ANYBANK ;(3xA1) crc High on CD
MOVLF H'B4',CRC16L_ANYBANK ;(3xA1) crc Low on B4
CRC_CALC
XORWF CRC16H_ANYBANK,W ; (a^x)b^y)
MOVWF CRC16TEMP_ANYBANK ;
ANDLW H'F0' ; W = (a^x):0
SWAPF CRC16TEMP_ANYBANK,F ; Index = (b^y)a^x)
XORWF CRC16TEMP_ANYBANK,F ; Index = (a^b^x^y)a^x) = i2:i1
MOVF CRC16TEMP_ANYBANK,W
ANDLW H'F0'
XORWF CRC16L_ANYBANK,W
MOVWF CRC16H_ANYBANK
RLF CRC16TEMP_ANYBANK,W
RLF CRC16TEMP_ANYBANK,W
XORWF CRC16H_ANYBANK,F
ANDLW H'E0'
XORWF CRC16H_ANYBANK,F
SWAPF CRC16TEMP_ANYBANK,F
XORWF CRC16TEMP_ANYBANK,W
MOVWF CRC16L_ANYBANK
RETURN
see 17 käsuline programmijupp ka töötab täiesti, olen kasutanud.
http://www.lammertbies.nl/comm/info/crc-...ation.html
crc kalkulaatorid on paljud kõverad ehk teoreetilised, aga see siin töötab, vähemasti floppy asjades ta toimib olen kasutanud.
aga üldiselt on see crc asi loomaaed, variante on seinast seina ja igale muidugi oma kalkulaator ja oma programmijupp asm-is