[EMAIL PROTECTED] writes: > Way back when 16 kilobytes was a lot of memory, a method for encoding five > characters into a single 32-bit machine word was developed. It was called > "Radix-50", or "RAD50". The 50 is octal, or 40 decimal. The character set > was 26 monocase letters, 10 digits, three special characters, and a null (a > total of 40). This encoding was used in the linkers of various DEC PDP > operating systems, which is where Unix was born. > > (That could, of course, be incorrect, but I did find references to > Radix-50/RAD50 in some old DEC migration documentation.)
It was also known as "squoze code" around the M.I.T. AI lab. RAD50 may have originated at DEC, but I wouldn't bet either way. The description is close. Radix 50 actually allows you to get three characters into a 16 bit word (40*40*40 <= 65536), or 6 into a 32 bit word. 5 characters will actually fit into 27 bits (102400000 being no greater than 134217728). That means that you can also have up to 5 bits of "flags", say, for symbol type, in the same (double 16 bit) word of your symbol table as that which stores the name. When it wasn't uncommon to have as little as 4k words (8k bytes) on your PDP-11/20, people really did care about bit twiddling. People writing in assembly language for such machines didn't seem to chaff at such symbol length restrictions. (Perhaps few of them could type, and short names were easier.) Linkers developed for use with assemblers were pressed into service for linking C because originally the C compiler produced assembly languagy, and the assembler was invoked on the output. Bill _______________________________________________ gnhlug-discuss mailing list [EMAIL PROTECTED] http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss