001
Heute, 17:01 Uhr
maleuma
|
Ich habe in meinem Flash-Programm für CAOS eine modifizierte Fletcher-Routine eingebaut. Da die Original-Fletcher-Routine für alles 0 und alles FF das gleiche Ergebnis liefert, habe ich statt ADD einfach den Z80-Befehl ADC genommen. Damit ist die Routine genauso schnell, liefert jedoch unterschiedliche Werte bei 00 und FF. Nachteil: kein Standard und schlechter am PC nachbildbar.
| Quellcode: | ; Fletcher-Pruefsumme berechnen: ; PE: HL Anfangsadresse ; (PAR1) Adresse zur Ablage der CRC-Summe ; PA: DE CRC CRCC: LD HL,0C000H ; Anfangsadresse CRC: LD BC,2000H ; Laenge immer 8 KByte LD DE,'KC' ; Startwert ; Adjust 16-bit length for 2x8-bit loops inc b ; BC = 2100H dec bc ; BC = 20FFH inc c ; BC = 2000H Takte: FLLOOP: ld a,(hl) ; 7 inc hl ; 6 add a,e ; sum1 += data 4 ld e,a ; 4 adc a,d ; sum2 += sum1 + cy 4 ld d,a ; 4 dec c ; 4 jp nz,FLLOOP ; 10 djnz FLLOOP ; 13 (8)
|
-- Mario. Dieser Beitrag wurde am 17.05.2026 um 17:07 Uhr von maleuma editiert. |