RADIX 50 [1] [2] [3] o RAD50 [3] (también conocido como RADIX50 , [4] RADIX-50 [5] o RAD-50 ), es una codificación de caracteres en mayúsculas creada por Digital Equipment Corporation (DEC) para su uso en sus computadoras DECsystem , PDP y VAX .
El repertorio de 40 caracteres de RADIX 50 (050 en octal ) puede codificar seis caracteres más cuatro bits adicionales en una palabra de máquina de 36 bits ( PDP-6 , PDP-10 /DECsystem-10, DECSYSTEM-20 ), tres caracteres más dos bits adicionales en una palabra de 18 bits ( PDP-9 , [2] PDP-15 ), [6] o tres caracteres en una palabra de 16 bits ( PDP-11 , VAX). [3]
La codificación real difiere entre los sistemas de 36 bits y de 16 bits.
En los sistemas DEC de 36 bits, RADIX 50 se utilizaba habitualmente en tablas de símbolos para ensambladores o compiladores que admitían nombres de símbolos de seis caracteres de un alfabeto de 40 caracteres. Esto dejaba cuatro bits para codificar las propiedades del símbolo.
Por sus similitudes con el esquema de codificación de caracteres SQUOZE utilizado en el sistema operativo SHARE de IBM para representar símbolos de código objeto, la variante de DEC también se llamó a veces DEC Squoze , [7] sin embargo, IBM SQUOZE empaquetó seis caracteres de un alfabeto de 50 caracteres más dos bits de bandera adicionales en una palabra de 36 bits. [6]
RADIX 50 normalmente no se utilizaba en sistemas de 36 bits para codificar cadenas de caracteres normales; los nombres de archivos normalmente se codificaban como seis caracteres de seis bits y las cadenas ASCII completas como cinco caracteres de siete bits y un bit sin utilizar por palabra de 36 bits.
RADIX 50 (también llamado formato Radix 50 8 [2] ) se utilizó en las computadoras PDP-9 y PDP-15 de 18 bits de Digital para almacenar símbolos en tablas de símbolos, dejando dos bits adicionales por palabra de 18 bits ("bits de clasificación de símbolos"). [2]
Algunas cadenas en los sistemas de 16 bits de DEC se codificaban como bytes de 8 bits, mientras que otras usaban RADIX 50 (entonces también llamado MOD40 ). [3] [8]
En RADIX 50, las cadenas se codificaban en palabras sucesivas según fuera necesario, con el primer carácter dentro de cada palabra ubicado en la posición más significativa.
Por ejemplo, utilizando la codificación PDP-11, la cadena "ABCDEF", con valores de caracteres 1, 2, 3, 4, 5 y 6, se codificaría como una palabra que contiene el valor 1×40 2 + 2×40 1 + 3×40 0 =1683 , seguido de una segunda palabra que contiene el valor 4×40 2 + 5×40 1 + 6×40 0 =6606. Por lo tanto, las palabras de 16 bits codifican valores que van desde 0 (tres espacios) a63 999 ("999"). Cuando había menos de tres caracteres en una palabra, la última palabra de la cadena se rellenaba con espacios finales. [3]
Hubo varias variaciones menores de esta codificación con diferentes interpretaciones de los puntos de código 27, 28, 29. Cuando se utilizó RADIX 50 para los nombres de archivo almacenados en medios, los puntos de código representan los $
caracteres %
, *
, y se mostrarán como tales al enumerar el directorio con utilidades como DIR. [9] Al codificar cadenas en el ensamblador PDP-11 y otros lenguajes de programación PDP-11, los puntos de código representan los $
caracteres .
, %
, y se codifican como tales con la macro RAD50 predeterminada en el archivo de macros global, y esta codificación se utilizó en las tablas de símbolos . Algunos documentos tempranos para el sistema operativo RT-11 consideraron que el punto de código 29 no estaba definido. [3]
El uso de RADIX 50 fue la fuente de las convenciones de tamaño de nombre de archivo utilizadas por los sistemas operativos PDP-11 de Digital Equipment Corporation . Con la codificación RADIX 50, se podían almacenar seis caracteres de un nombre de archivo en dos palabras de 16 bits, mientras que tres caracteres de extensión (tipo de archivo) más se podían almacenar en una tercera palabra de 16 bits. De manera similar, un nombre de dispositivo de tres caracteres como "DL1" también se podía almacenar en una palabra de 16 bits. El punto que separaba el nombre de archivo y su extensión, y los dos puntos que separaban el nombre de un dispositivo del nombre de archivo, estaban implícitos (es decir, no se almacenaban y siempre se asumía que estaban presentes).
[…] Los programas de los sistemas
PDP-11
a menudo manejan símbolos en una forma especialmente codificada llamada RADIX 50 (esta forma a veces se conoce como MOD40). Esta forma permite empaquetar 3 caracteres en 16 bits; por lo tanto, cualquier símbolo de 6 caracteres puede almacenarse en dos palabras. El operando único tiene la forma /CCC/ donde la barra (el delimitador) puede ser cualquier carácter imprimible excepto = y :. Los delimitadores encierran los caracteres que se van a convertir, que pueden ser de la A a la Z, del 0 al 9, dólar ($), punto (.) y espacio ( ). Si hay menos de 3 caracteres, se considera que están justificados a la izquierda y se supone que hay espacios finales. […] El algoritmo de empaquetado es el siguiente: […] A. Cada carácter se traduce a su equivalente RADIX 50 como se indica en la siguiente tabla: Carácter - Equivalente RADIX 50 (octal): (espacio) - 0, A–Z - 1–32, $ - 33, . - 34, 0–9 - 36–47. Tenga en cuenta que se podría definir otro carácter para el código 35. […] B. Los equivalentes RADIX 50 para los caracteres 1 a 3 (C1,C2,C3) se combinan de la siguiente manera: RESULTADO=((C1*50)+C2)*50+C3 […][1]