lkml.org 
[lkml]   [2003]   [Feb]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRe: [PATCH] morse code panics for 2.5.62
Date
<posted & mailed>

Jan-Benedict Glaw wrote:

> On Tue, 2003-02-18 14:50:38 +0100, Tomas Szepe <szepe@pinerecords.com>
> wrote in message <20030218135038.GA1048@louise.pinerecords.com>:
>
> This is the first time I really look at the code, so please forgive if I
> talk about things where already a consens was given...

>> +const unsigned char morsetable[] = {
>> + 0122, 0, 0310, 0, 0, 0163, /* "#$%&' */
>> + 055, 0155, 0, 0, 0163, 0141, 0152, 0051, /* ()*+,-./ */
>> + 077, 076, 074, 070, 060, 040, 041, 043, 047, 057, /* 0-9 */
>> + 0107, 0125, 0, 0061, 0, 0114, 0, /* :;<=>?@ */
>> + 006, 021, 025, 011, 002, 024, 013, 020, 004, /* A-I */
>> + 036, 015, 022, 007, 005, 017, 026, 033, 012, /* J-R */
>> + 010, 003, 014, 030, 016, 031, 035, 023, /* S-Z */
>> + 0, 0, 0, 0, 0154 /* [\]^_ */
>> +};

>
> You're using a set bit for long and an unset bit for a short beep, don't
> you? Storing these values in octal/as chars is quite low on memory
> consumption, but I'd like to learn so I suggest:

It's slightly more complicated than that:
It's set bits for long, unset bits for short, and termination when the byte
equals 0x01 (in other words, there's an extra set bit to the left of what
we want). This lets us represent any variable-length morse of up to 7
dits/dahs with a byte, which is cool because nothing is more than 6, that
I've ever seen.

The use of macros is an OK hack though, it reminds me of the nethack source.
:)

The reason someone proposed this in the first place is because I had had

const unsigned char * morsetable [] = {
".-..-.", NULL, "...-..-"
and so on in the initial revision of my patch, which is quite readable, but
takes up a lot more space, and makes the code actually a bit messier too.

--Andrew

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:33    [W:0.056 / U:0.128 seconds]
©2003-2011 Jasper Spaans. Advertise on this site