16 lines
537 B
Plaintext
16 lines
537 B
Plaintext
( With dst being assumed to be an AT28 EEPROM, perform !
|
|
operation while doing the right thing. Checks data integrity
|
|
and ABORT on mismatch. )
|
|
: AT28! ( n a -- )
|
|
2DUP C!
|
|
( as long as writing operation is running, IO/6 will toggle
|
|
at each read attempt. We know that write is finished when
|
|
we read the same value twice. )
|
|
BEGIN ( n1 a )
|
|
DUP C@ ( n1 a n2 )
|
|
OVER C@ ( n1 a n2 n3 )
|
|
= UNTIL
|
|
( We're finished writing. do we have a mismatch? )
|
|
C@ = NOT IF ABORT" mismatch" THEN
|
|
;
|