From: MagerValp (MagerValp_at_cling.gu.se)
Date: 2005-11-08 10:33:41
>>>>> "s" == silverdr <silverdr@inet.com.pl> writes:
s> Do you mean you were able to split the GCR nybbles in RT? What do
s> you mean by "partially" though? Could you elaborate a bit on the
s> method and results, please?
No, there aren't enough cycles to decode to nybbles in realtime, thus
only partially decoded. I don't have my notes here, but it was
something like this:
read 1st gcr byte ; 5 + 3 bits
store in buf[0] ; 00000xxx
store in buf[1] ; xxxxx111
read 2nd gcr byte ; 2 + 5 + 1 bits
lsr, lsb to carry
store in buf[2] ; x1122222
read 3rd gcr byte ; 4 + 4 bits
store to buf[4] ; xxxx4444
ror, msb from carry
store to buf[3] ; 33333xxx
read 4th gcr byte ; 1 + 5 + 2 bits
asl, msb to carry
rol buf[4] ; xxx44444
store to buf[5] ; 5555566x
read 5th gcr byte ; 3 + 5 bits
store to buf[7] ; 66677777
add 8 to bufptr, loop
so after 5 gcr bytes have been read, the nybble buffer contains:
buf data steps to decode
0: 00000xxx -> lsr lsr lsr
1: xxxxx111 -> asl asl, merge with buf[2]
2: x1122222 -> and #$1f
3: 33333xxx -> lsr lsr lsr
4: xxx44444 -> and #$1f
5: 5555566x -> lsr lsr lsr
6: xxxxxxxx -> merge from buf[5] and buf[7]
7: 66677777 -> and #$1f
3 nybbles just require ANDing, 3 just shifting, and only 2 nybbles
require several operators. I implemented the full decode as a 2nd pass
that merges the nybbles into bytes, but for the next version I'll see
if I can merge the decoding with the transfer loop.
HTH,
--
___ . . . . . + . . o
_|___|_ + . + . + . Per Olofsson, arkadspelare
o-o . . . o + MagerValp@cling.gu.se
- + + . http://www.cling.gu.se/~cl3polof/
Message was sent through the cbm-hackers mailing list
Archive generated by hypermail pre-2.1.8.