I'm pretty confused right now. I wrote a small basic program to dump my
cassettes into the computer.
1 IF (1 AND PEEK(61456)) = 0 THEN POKE 61441, PEEK(61457)
2 GOTO 1
61441 - ACIA DATA PORT
61456 - KCACR STATUS PORT
61457 - KCACR DATA PORT
I'm not checking if the ACIA is ready for data, because when reading at
300bps and transmitting at 9600 we should never have to.
Why am I getting strange results below? The only thing I can think of is
that it is somehow missing every other byte from the KCACR. Does anyone
see anything wrong with the basic program? All 500 lines returned are the
exact same length and they all start with 13.
1300D603EAFE3A00880C8
13000000000000000000C
...
1310452E25D34F0FEE5CC
1310C71943CF143316541
Missing every other byte? Maybe the 680 and it's basic isn't fast enough
for my program? I'm just guessing that S1 and 13 are supposed to be there...
S113_0_0_D_6_0_3_E_A_F_E_3_A_0_0_8_8_0_C_8
On top of all this, I'm having a hard time understanding the format.
This is a good line:
1 2 3 4 5 6 7 8 9 10 11 12 13
S1 13 0000 0D 76 00 F3 7E 18 F9 7E 03 3C 00 00 48 38 00 2C 7E
S1 means its a data record,
13 is the byte count,
0000 is the address,
and 7E is the checksum.
So what are the mystery bytes? How do you get 13 data bytes and still have
a place for all of the rest? 13 is supposed to include the checksum! The
checksum is the one's compliment of the sum of the all bytes except S1 and
the checksum itself.
FF-(13+0D+76+F3+7E+18+F9+7E+03+3C+48+38+2C)=7E
So 7E is the checksum. I want to know where all those bytes go! :(
Grant