Este artículo necesita citas adicionales para su verificación . ( enero de 2019 ) |
Clasificación | Codificaciones latinas básicas de 8 bits (no ASCII) |
---|---|
Precedido por | BCD |
El Código de intercambio decimal codificado en binario extendido [1] [2] ( EBCDIC ; [1] / ˈ ɛ b s ɪ d ɪ k / ) es una codificación de caracteres de ocho bits utilizada principalmente en los sistemas operativos de mainframe y de gama media de IBM . Desciende del código utilizado con tarjetas perforadas y del código decimal codificado en binario de seis bits correspondiente utilizado con la mayoría de los periféricos informáticos de IBM de finales de los años 1950 y principios de los años 1960. [3] Es compatible con varias plataformas que no son IBM, como BS2000/OSD , OS-IV, MSP y MSP-EX de Fujitsu-Siemens , la serie SDS Sigma , Unisys VS/9 , Unisys MCP e ICL VME .
El EBCDIC fue ideado en 1963 y 1964 por IBM y fue anunciado con el lanzamiento de la línea de computadoras mainframe IBM System/360 . Es una codificación de caracteres de ocho bits, desarrollada independientemente del esquema de codificación ASCII de siete bits . Fue creado para extender el Código de Intercambio Decimal Codificado en Binario (BCD) existente, o BCDIC , que a su vez fue ideado como un medio eficiente de codificar las dos zonas y los números perforados en tarjetas perforadas en seis bits. La codificación distinta de 's' y 'S' (usando la posición 2 en lugar de 1) se mantuvo de las tarjetas perforadas donde era deseable no tener perforaciones demasiado cerca una de la otra para asegurar la integridad de la tarjeta física. [4] [ verificación fallida ]
Aunque IBM fue uno de los principales promotores del comité de estandarización ASCII, [5] la compañía no tuvo tiempo de preparar periféricos ASCII (como máquinas perforadoras de tarjetas) para enviar con sus computadoras System/360, por lo que la compañía se decidió por EBCDIC. [3] El System/360 tuvo un gran éxito, junto con clones como RCA Spectra 70 , ICL System 4 y Fujitsu FACOM, por lo que también lo hizo EBCDIC.
Todos los sistemas operativos mainframe de IBM , y su sistema operativo IBM i para computadoras de gama media , utilizan EBCDIC como su codificación inherente [6] (con tolerancia para ASCII, por ejemplo, ISPF en z/OS puede explorar y editar archivos codificados tanto en EBCDIC como en ASCII). El software puede traducir hacia y desde codificaciones, y los mainframes modernos (como IBM Z ) incluyen instrucciones de procesador, a nivel de hardware, para acelerar la traducción entre conjuntos de caracteres.
No todos los sistemas operativos que se ejecutan en hardware IBM utilizan EBCDIC; IBM AIX , Linux en IBM Z y Linux en Power utilizan ASCII, al igual que todos los sistemas operativos que se ejecutan en IBM Personal Computer y sus sucesores.
This section needs additional citations for verification. (November 2022) |
Hubo numerosas dificultades para escribir software que funcionara tanto en ASCII como en EBCDIC.
for (c = 'A'; c <= 'Z'; ++c) putchar(c);
Existen cientos de páginas de códigos EBCDIC basadas en la codificación de caracteres EBCDIC original; existe una variedad de páginas de códigos EBCDIC destinadas a usarse en diferentes partes del mundo, incluidas páginas de códigos para alfabetos no latinos, como chino, japonés (por ejemplo, EBCDIC 930, JEF y KEIS), coreano y griego (EBCDIC 875). También existe una gran cantidad de variaciones con las letras intercambiadas sin ninguna razón aparente. [ cita requerida ]
La tabla siguiente muestra el "subconjunto invariante" [9] de EBCDIC, que son caracteres que deberían tener las mismas asignaciones en todas las páginas de códigos EBCDIC que utilizan el alfabeto latino. (Esto incluye la mayor parte del repertorio invariante ISO/IEC 646 , excepto el signo de exclamación ). También muestra (en gris) la puntuación ASCII y EBCDIC faltante, ubicada donde están en la página de códigos 37 (una de las variantes de la página de códigos de EBCDIC). Las celdas en blanco están llenas de caracteres específicos de la región en las variantes, pero los caracteres en gris a menudo también se intercambian o reemplazan. Al igual que ASCII, el subconjunto invariante funciona solo para idiomas que utilizan el alfabeto latino básico ISO , como inglés (excluyendo préstamos y algunas variaciones ortográficas poco comunes) y holandés (si las ligaduras "ij" y "IJ" se escriben como dos caracteres).
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | do | D | mi | F | |
0x | Nulo | SOL | Tx | ETX | SEL | alta | RNL | DEL | EG | SPS | RPT | Vermont | FF | ES | ENTONCES | SI |
1x | DLE | DC1 | DC2 | DC3 | RES/PEV | ES | Licenciatura en Ciencias | POC | PODER | En | UBS | CU1 | Si | IGS | Hacienda | SIU / ITB |
2x | DS | LLAMADA DE SOCORRO | Es | WUS | Pérdida de impulso/entrada de impulso | Si | ETB | ESC | Sudamérica | SFES | SM/SO | CSP | Maestría en Bellas Artes | ENQ | Acuse de recibo | BEL |
3x | SINÓNIMO | IR | PÁGINAS | TRN | Oficina nacional de normas | ETE | SBS | ÉL | RFF | CU3 | DC4 | No se puede | SUB | |||
4x | ES | ¢ | . | < | ( | + | | | |||||||||
5x | & | ! | $ | * | ) | ; | ¬ | |||||||||
6x | - | / | ¦ | , | % | _ | > | ? | ||||||||
7x | ` | : | # | @ | ' | = | " | |||||||||
8x | a | b | do | d | mi | F | gramo | yo | i | ± | ||||||
9x | yo | a | yo | metro | norte | o | pag | q | a | |||||||
Hacha | ~ | s | a | tú | en | el | incógnita | y | el | |||||||
Bx | ^ | [ | ] | |||||||||||||
Cx | { | A | B | do | D | mi | F | GRAMO | yo | I | ||||||
Dx | } | Yo | K | yo | METRO | norte | Oh | PAG | Q | R | ||||||
Ex | \ | S | yo | tú | V | Yo | incógnita | Y | O | |||||||
Fx | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | EO |
A continuación se presentan las definiciones de caracteres de control EBCDIC que no se asignan a los caracteres de control ASCII o que tienen usos adicionales. Cuando se asignan a Unicode, estos se asignan principalmente a puntos de código de caracteres de control C1 de una manera especificada por la Arquitectura de representación de datos de caracteres (CDRA) de IBM. [10] [11]
Aunque la asignación predeterminada de Nueva línea (NL) corresponde al carácter de siguiente línea (NEL) de ISO/IEC 6429 (cuyo comportamiento también se especifica, pero no se requiere, en el Anexo 14 de Unicode), [12] la mayoría de estos controles asignados a C1 no coinciden ni con los del conjunto C1 de ISO/IEC 6429 ni con los de otros conjuntos de control C1 registrados , como ISO 6630. [13] Aunque esto hace que los controles EBCDIC no ASCII sean efectivamente un conjunto de control C1 único, no se encuentran entre los conjuntos de control C1 registrados en el registro ISO-IR , [14] lo que significa que no tienen una secuencia de designación de conjunto de control asignada (como se especifica en ISO/IEC 2022 y se permite opcionalmente en ISO/IEC 10646 (Unicode)). [15]
Además de U+0085 (Next Line), el estándar Unicode no prescribe una interpretación de los caracteres de control C1, dejando su interpretación a protocolos de nivel superior (sugiere, pero no exige, sus interpretaciones ISO/IEC 6429 en ausencia de uso para otros fines), [16] por lo que esta asignación está permitida en Unicode, pero no está especificada por éste.
Mnemotécnico | EBCDIC | Emparejamiento CDRA [10] [11] | Nombre | Descripción [17] |
---|---|---|---|---|
SEL | 04 | 009C | Seleccionar | Carácter de control del dispositivo que toma un parámetro de un solo byte. |
PF | Golpear | Incluido en esta ubicación según GOST 19768-93 . [18] | ||
RNL | 06 | 0086 | Nueva línea requerida | Salto de línea restableciendo sangría modo tabulación |
LC | Minúscula | Incluido en esta ubicación según GOST 19768-93 . [18] | ||
EG | 08 | 0097 | Escape gráfico | Desplazamiento sin bloqueo que modifica la interpretación del carácter siguiente (véase, por ejemplo, la página de códigos 310 ). Compárese con SS2 (008E) de ISO/IEC 6429 . |
SPS | 09 | 008D | Sobrescrito | Comience con superíndice o deshaga el subíndice. Compare el PLU (008C) de ISO/IEC 6429 . |
RPT | 0A | 008E | Repetir | Cambiar a un modo de operación repitiendo un búfer de impresión |
SMM | Inicio del mensaje manual | Incluido en esta ubicación según GOST 19768-93 . [18] | ||
RES/PEV | 14 | 009D | Restaurar, habilitar presentación | Reanudar la salida (después de BYP/INP ) |
ES | 15 | 0085 (000A) | Nueva linea | Salto de línea. La asignación predeterminada (0085) coincide con la NEL de ISO/IEC 6429. Las asignaciones a veces se intercambian con el salto de línea (EBCDIC 0x25) de acuerdo con la convención de salto de línea de UNIX. [10] |
POC | 17 | 0087 | Comunicación con el operador del programa | Seguido de dos operadores de un byte que identifican la función específica, por ejemplo, una luz o una tecla de función. Compárese con CSI (009B), OSC (009D) y APC (009F) de ISO/IEC 6429. |
Illinois | Inactivo | Incluido en esta ubicación según GOST 19768-93 . [18] | ||
UBS | 1A | 0092 | Unidad Retroceso | Un retroceso fraccionario. |
C.C. | Control del cursor | Incluido en esta ubicación según GOST 19768-93 . [18] | ||
CU1 | 1B | 008F | Uso del cliente Uno | No utilizado por IBM; para uso del cliente. |
SIU/ITB | 1ºF | 001F | Separador de unidad de intercambio, bloque de transmisión intermedio | Se utiliza como separador de información para terminar un bloque llamado "unidad" (como en ASCII ; ver también IR ) o como código de control de transmisión para delimitar el final de un bloque intermedio. |
DS | 20 | 0080 | Seleccionar dígito | Utilizado por la instrucción de edición (ED) de la CPU S/360 |
LLAMADA DE SOCORRO | 21 | 0081 | Comienzo de la Importancia | Utilizado por la instrucción de edición (ED) de la CPU S/360. (Nota: diferente de SOS de ISO/IEC 6429 ; cuando es necesario distinguirlos, IBM abrevia Inicio de significado como (con un punto) e Inicio de cadena como , de lo contrario se abrevian de la misma manera). [19]SOS. SOS |
FS, [17] FDS [18] | 22 | 0082 | Separador de campos | Utilizado por la instrucción de edición (ED) de la CPU S/360. (Nota: El separador de archivos (de intercambio) , abreviado como FS en ASCII, está en 0x1C y se abrevia como IFS.) [17] |
WUS | 23 | 0083 | Palabra de subrayado | Subraya la palabra inmediatamente anterior. Contrasta con SGR de ISO/IEC 6429 . |
Pérdida de impulso/entrada de impulso | 24 | 0084 | Derivar, inhibir la presentación | Desactiva la salida, es decir, ignora todos los caracteres gráficos y caracteres de control además de los códigos de control de transmisión y RES/ENP, hasta el próximo RES/ENP . |
Sudamérica | 28 | 0088 | Establecer atributo | Marca el comienzo de una secuencia de control específica del dispositivo de longitud fija. Obsoleto en favor de CSP . |
SFES | 29 | 0089 | Campo de inicio extendido | Marca el comienzo de una secuencia de control específica del dispositivo de longitud variable. Obsoleto en favor de CSP . |
SM/SO | 2A | 008A | Modo de configuración, interruptor | Control específico del dispositivo que establece un modo de operación, como un interruptor de búfer. |
CU2 | 2B | 008B | Uso del cliente dos | Esto aparece en algunas especificaciones, como GOST 19768-93 ; [18] las especificaciones más nuevas de IBM para códigos de control EBCDIC enumeran solo CU1 y CU3 como uso del cliente y usan esta posición para CSP . [17] |
CSP | Prefijo de secuencia de control | Marca el comienzo de una secuencia de control específica de dispositivo de longitud variable. Seguido de un byte de clase que especifica una categoría de función de control, un byte de conteo que proporciona la longitud de la secuencia (incluidos los bytes de conteo y tipo, pero no el byte de clase o CSP inicial), un byte de tipo que identifica una función de control dentro de esa categoría y cero o más bytes de parámetros. Compárese con DCS (0090) y CSI (009B) de ISO/IEC 6429. | ||
Maestría en Bellas Artes | 2C | 008C | Modificar atributo de campo | Marca el comienzo de una secuencia de control específica del dispositivo de longitud variable. Obsoleto en favor de CSP . |
30 | 0090 | (reservado) | Reservado para uso futuro por parte de IBM | |
31 | 0091 | (reservado) | Reservado para uso futuro por parte de IBM | |
IR | 33 | 0093 | Rendimiento del índice | O bien pasar al inicio de la siguiente línea (ver también NL ), o bien terminar una unidad de información (ver también IUS/ITB ). |
PÁGINAS | 34 | 0094 | Posición de presentación | Seguido de dos parámetros de un byte (en primer lugar, la función y, en segundo lugar, el número de la columna o línea) para establecer la posición actual. Compárese con CUP y HVP de ISO/IEC 6429 . |
PN | Golpear | Incluido en esta ubicación según GOST 19768-93 . [18] | ||
TRN | 35 | 0095 | Transparente | Seguido de un parámetro de byte que indica la cantidad de bytes de datos transparentes que siguen. |
Primera vez | Lector Detenerse | Incluido en esta ubicación según GOST 19768-93 . [18] | ||
Oficina nacional de normas | 36 | 0096 | Retroceso numérico | Mover hacia atrás el ancho de un dígito. |
Universidad de California | Mayúsculas | Incluido en esta ubicación según GOST 19768-93 . [18] | ||
SBS | 38 | 0098 | Subíndice | Comienza con subíndice o deshaz superíndice. Compara el PLD (008B) de ISO/IEC 6429. |
ÉL | 39 | 0099 | Tabulación de sangría | Sangra la línea actual y todas las siguientes, hasta que se encuentra RNL o RFF . |
RFF | 3A | 009A | Formulario de alimentación requerido | Restablecimiento del salto de página en modo sangría y tabulación . |
CU3 | 3B | 009B | Uso del cliente tres | No utilizado por IBM; para uso del cliente. |
3E | 009E | (reservado) | Reservado para uso futuro por parte de IBM | |
EO | FF | 009F | Ocho unos | Todos los caracteres se utilizan como relleno. |
Las siguientes páginas de códigos tienen el conjunto completo de caracteres Latin-1 (ISO/IEC 8859-1). La primera columna indica el número de la página de códigos original. La segunda columna indica el número de la página de códigos actualizada con el símbolo del euro (€) en sustitución del símbolo monetario universal (¤) (o en el caso de EBCDIC 924, con el conjunto modificado para que coincida con ISO 8859-15 ).
Cada país tiene diferentes páginas de códigos porque estas páginas de códigos se originaron como páginas de códigos con repertorios de caracteres específicos de cada país y luego se ampliaron para incluir todo el repertorio ISO 8859-1, lo que significa que un carácter ISO 8859-1 determinado puede tener diferentes valores de punto de código en diferentes páginas de códigos. Se conocen como páginas de códigos extendidas por país ( CECP ). [20]
CSICID | Actualización del euro | Países |
---|---|---|
037 | 1140 | Australia, Brasil, Canadá, Estados Unidos, Nueva Zelanda, Portugal, Sudáfrica |
273 | 1141 | Austria, Alemania |
277 | 1142 | Dinamarca, Noruega |
278 | 1143 | Finlandia, Suecia |
280 | 1144 | Italia |
284 | 1145 | América Latina, España |
285 | 1146 | Irlanda, Reino Unido |
297 | 1147 | Francia |
500 | 1148 | Internacional |
871 | 1149 | Islandia |
1047 | 924 | Sistemas abiertos ( compilador MVS C ) |
This section appears to contradict another section of this article.(May 2024) |
Eric S. Raymond, defensor del software de código abierto y desarrollador de software, escribe en su Jargon File que los hackers odiaban a EBCDIC, con lo que se refería [21] a los miembros de una subcultura de programadores entusiastas. El Jargon File 4.4.7 ofrece la siguiente definición: [22]
EBCDIC: /eb´s@·dik/, /eb´see`dik/, /eb´k@·dik/, n. [abreviatura, Extended Binary Code Decimal Interchange Coded] Un supuesto conjunto de caracteres utilizado en los dinosaurios de IBM. Existe en al menos seis versiones mutuamente incompatibles, todas ellas con delicias tales como secuencias de letras no contiguas y la ausencia de varios caracteres de puntuación ASCII bastante importantes para los lenguajes informáticos modernos (los caracteres que faltan exactamente varían según la versión de EBCDIC que esté mirando). IBM adaptó EBCDIC a partir del código de tarjeta perforada a principios de la década de 1960 y lo promulgó como una táctica de control del cliente (ver la conspiración del conector ), desdeñando el estándar ASCII ya establecido. Hoy, IBM afirma ser una empresa de sistemas abiertos , pero la propia descripción de IBM de las variantes de EBCDIC y cómo convertirlas todavía está clasificada internamente como alto secreto, que se debe quemar antes de leer. Los hackers palidecen ante el solo nombre de EBCDIC y lo consideran una manifestación del más puro mal.
— El archivo de jerga 4.4.7
El diseño de EBCDIC también fue fuente de muchos chistes. Uno de ellos, encontrado en el archivo fortune de Unix de 4.3BSD Reno (1990) [23] decía:
Profesor: "Entonces el gobierno americano recurrió a IBM para que ideara un estándar de cifrado , y se les ocurrió..."
Estudiante: "¡EBCDIC!"
En la serie de juegos de ordenador Zork de 1979 se hacen referencias al conjunto de caracteres EBCDIC . En la "Sala de máquinas" de Zork II , se utiliza EBCDIC para dar a entender que se trata de un lenguaje incomprensible:
Se trata de una gran sala llena de maquinaria pesada de todo tipo, que zumba ruidosamente. La sala huele a resistencias quemadas. A lo largo de una pared hay tres botones que son, respectivamente, redondos, triangulares y cuadrados. Naturalmente, encima de estos botones hay instrucciones escritas en EBCDIC...
En 2021, se hizo público que un banco belga seguía utilizando EBCDIC internamente en 2019. Un cliente insistió en que la ortografía correcta de su apellido incluía una diéresis , que el banco omitió, y el cliente presentó una queja citando la garantía en el Reglamento General de Protección de Datos del derecho a la "rectificación oportuna de datos personales inexactos". El argumento del banco incluía el hecho de que su sistema utilizaba EBCDIC, así como que no admitía letras con diacríticos (o minúsculas, para el caso). El tribunal de apelaciones falló a favor del cliente. [24] [25]
pero sus impresoras y perforadoras no estaban preparadas para manejar ASCII, e IBM TENÍA que anunciarlo.
Los 64 caracteres de control... el carácter ASCII DELETE (U+007F)... se asignan respetando las convenciones EBCDIC, tal como se define en IBM Character Data Representation Architecture, CDRA, con una excepción: el emparejamiento de los caracteres de control de avance de línea y nueva línea EBCDIC se intercambia de sus emparejamientos predeterminados de CDRA a los caracteres de control de avance de línea (U+000A) y siguiente línea (U+0085) ISO/IEC 6429
{{citation}}
: CS1 maint: numeric names: authors list (link)Para otros conjuntos C0 o C1, el octeto final F se obtendrá del Registro internacional de conjuntos de caracteres codificados.... Si dicha secuencia de escape aparece dentro de una secuencia de unidad de código conforme a esta Norma Internacional, se deberá rellenar de acuerdo con la Cláusula 11.
{{citation}}
: CS1 maint: numeric names: authors list (link)El mnemónico para el carácter de control de inicio de significado en EBCDIC se ha modificado para incluir un punto (.) al final (SOS.). Esto se ha hecho para distinguirlo del mnemónico SOS utilizado en ISO-8 para el carácter de control de inicio de cadena. El punto no altera la propiedad del control de ninguna manera.