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.