RADIX-50, commonly called Rad-50, RAD50 or DEC Squoze, is a character encoding created by Digital Equipment Corporation for use on their DECsystem, PDP, and VAX computers. RADIX-50's 40-character repertoire (050 in octal) can encode 6 characters plus 4 additional bits into one 36-bit word (PDP-6, PDP-10/DECsystem-10, DECSYSTEM-20); 3 characters plus 2 additional bits into one 18-bit word (PDP-9, PDP-15); or 3 characters in one 16-bit word (PDP-11, VAX).
RADIX-50, commonly called Rad-50, RAD50 or DEC Squoze, is a character encoding created by Digital Equipment Corporation for use on their DECsystem, PDP, and VAX computers. RADIX-50's 40-character repertoire (050 in octal) can encode 6 characters plus 4 additional bits into one 36-bit word (PDP-6, PDP-10/DECsystem-10, DECSYSTEM-20); 3 characters plus 2 additional bits into one 18-bit word (PDP-9, PDP-15); or 3 characters in one 16-bit word (PDP-11, VAX).
The actual encoding differed between the 36-bit and 16-bit systems.
Contents |
The name "SQUOZE" was borrowed from the scheme used in the SHARE 709 operating system for representing object code symbols; it packed 6 characters of a 50-character alphabet plus 2 additional flag bits into a 36-bit word.
Radix-50 in 36-bit systems was commonly used in symbol tables for assemblers or compilers which supported 6-character symbol names. This left 4 bits to encode properties of the symbol.
Radix-50 was not normally used in 36-bit systems for encoding ordinary character strings; file names were normally encoded as six six-bit characters and full ASCII strings as five 7-bit characters and 1 unused bit per 36-bit word.
| Most significant bits |
Least significant bits | |||||||
|---|---|---|---|---|---|---|---|---|
| 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 | |
| 000 | space | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
| 001 | 7 | 8 | 9 | A | B | C | D | E |
| 010 | F | G | H | I | J | K | L | M |
| 011 | N | O | P | Q | R | S | T | U |
| 100 | V | W | X | Y | Z | . | $ | % |
Radix-50 (called Radix 508 format) was used in Digital's 18-bit PDP-9 and PDP-15 computers to store symbols in symbol tables, leaving 2 extra bits per word ("symbol classification bits").[2]
Some strings in DEC's 16-bit systems were encoded as 8-bit bytes, others used Radix-50. In Radix-50, strings were encoded in successive words as needed, and the first character within each word is in the most significant position. For example, using the PDP-11 encoding, the string "ABCDEF", with character values 1, 2, 3, 4, 5, and 6, would be encoded as a word containing the value (1*40 + 2) * 40 + 3 = 1683 followed by a word containing the value (4*40 + 5) * 40 + 6 = 6606. Thus, 16-bit encoded values range from 0 (three spaces) to 63999 ("999"). When there are fewer characters in a word than it can hold, the string is padded with trailing spaces.
There were several minor variations of the encoding families. For example, the RT-11 operating system considered the character corresponding to value 011101 to be undefined, and some utility programs used that value to represent * instead.
The use of Rad-50 was the source of the filename size conventions used by the PDP-11 operating systems. Using Rad-50 encoding, six characters of filename could be stored in two sixteen-bit words while three more characters of extension (filetype) could be stored in a third sixteen-bit word. The period that separated the filename and extension was implied (not stored and always assumed to be present). Rad-50 was also commonly used in the symbol tables of the various PDP-11 programming languages.
| Most significant bits |
Least significant bits | |||||||
|---|---|---|---|---|---|---|---|---|
| 000 | 001 | 010 | 011 | 100 | 101 | 110 | 111 | |
| 000 | space | A | B | C | D | E | F | G |
| 001 | H | I | J | K | L | M | N | O |
| 010 | P | Q | R | S | T | U | V | W |
| 011 | X | Y | Z | $ | . | % | 0 | 1 |
| 100 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
|
|||||||||||||||||||||||||||||||||||||||||||||||