PETSCII ( PET Standard Code of Information Interchange ), también conocido como CBM ASCII , es el conjunto de caracteres utilizado en los ordenadores domésticos de 8 bits de Commodore Business Machines .
Este conjunto de caracteres fue utilizado por primera vez por el PET en 1977, y posteriormente por el CBM-II , VIC-20 , Commodore 64 , Commodore 16 , Commodore 116 , Plus/4 y Commodore 128. Sin embargo, la familia de ordenadores personales Amiga utiliza el estándar ISO/IEC 8859-1 .
Historia
El conjunto de caracteres fue diseñado en gran parte por Leonard Tramiel (hijo del CEO de Commodore, Jack Tramiel ) y el diseñador de PET, Chuck Peddle . [ 1 ] [ 2 ] [ 3 ] Los caracteres gráficos de PETSCII fueron una de las extensiones que Commodore especificó para Commodore BASIC cuando presentó los cambios deseados al BASIC 6502 existente de Microsoft a Ric Weiland de Microsoft en 1977. [ 4 ] El VIC-20 usó la misma fuente píxel a píxel que el PET, aunque los caracteres parecían más anchos debido a la pantalla de 22 columnas del VIC. El Commodore 64, sin embargo, usó una fuente de mayúsculas gruesa ligeramente rediseñada, esencialmente una versión más gruesa de la del PET, para evitar artefactos de color creados por la pantalla de mayor resolución de la máquina. Los caracteres en minúscula del C64 son idénticos a los caracteres en minúscula de la fuente ATASCII de las computadoras Atari de 8 bits (lanzada 2,75 años antes).
Peddle afirma que la inclusión de los símbolos de los palos de la baraja fue impulsada por la demanda de que fuera fácil escribir juegos de cartas en el PET (como parte de la lista de especificaciones que recibió). [ 2 ]
Presupuesto

El PETSCII "sin desplazamiento" se basa en la versión de 1963 del ASCII (en lugar de la versión de 1967, que es la que utilizan la mayoría, si no todos, los demás conjuntos de caracteres informáticos basados en ASCII). Solo tiene letras mayúsculas , una flecha hacia arriba ⟨ ↑ ⟩ en lugar del acento circunflejo ⟨ ^ ⟩ en la posición 0x 5E y una flecha hacia la izquierda ⟨ ← ⟩ en lugar del guion bajo ⟨ _ ⟩ en la posición 0x5F. En todas las versiones, excepto en la original del Commodore PET, también tiene el símbolo de la libra esterlina ⟨ £ ⟩ en lugar de la barra invertida ⟨ \ ⟩ en la posición 0x5C. Otros caracteres añadidos en ASCII-1967 (letras minúsculas, acento grave , llaves , barra vertical y tilde) no existen en PETSCII. Los códigos 0xA0 – 0xDF se asignan a caracteres gráficos de bloques específicos de CBM: líneas horizontales y verticales, tramas, sombras, triángulos, círculos y palos de cartas .
PETSCII también tiene un modo "desplazado" (también llamado "modo de negocios"), que cambia las letras mayúsculas en 0x41 – 0x5A a minúsculas, y cambia los gráficos en 0xC1 – 0xDA a mayúsculas. Las mayúsculas y minúsculas se intercambian con respecto a donde las tiene ASCII. El modo se activa manteniendo presionada una de las teclas SHIFT y luego presionando y soltando la tecla Commodore . El desplazamiento se puede realizar mediante POKE en la ubicación 59468 con el valor 14 para seleccionar el conjunto alternativo o 12 para volver al estándar. En el Commodore 64, los conjuntos se alternan invirtiendo el bit 2 del byte 53272. En algunos modelos de PET, esto también se puede lograr mediante un código de control especial PRINT CHR$(14)que ajusta el espaciado de línea además de cambiar el conjunto de caracteres; el método POKE sigue estando disponible y no altera el espaciado de línea. [ 5 ]
PETSCII incluye códigos de control de cursor y pantalla, como {HOME}, {CLR}, {RVS ON}, y {RVS OFF}(estos dos últimos activan/desactivan la visualización de caracteres de vídeo invertido). Los códigos de control aparecían en los listados de programas como caracteres gráficos de vídeo invertido, aunque algunas revistas informáticas, en su afán por ofrecer listados más legibles, los escribían con formato legible usando sus nombres reales entre llaves, como en los ejemplos anteriores. Esto es inequívoco, ya que PETSCII no tiene caracteres entre llaves.
Se utilizan diferentes asignaciones para almacenar caracteres (la asignación "interchange", como la que usa CHR$()) y para mostrar caracteres (la asignación "video"). Por ejemplo, para mostrar los caracteres "@ABC" en pantalla escribiendo directamente en la memoria de pantalla , se escribirían los valores decimales 0, 1, 2 y 3 en lugar de 64, 65, 66 y 67. [ 6 ] [ 7 ]
El teclado, por defecto, da acceso a la mitad inferior de la página de códigos. Al pulsar Mayús y una tecla, se obtiene el punto de código correspondiente de la mitad superior. Algunos puntos de código PETSCII no se pueden imprimir y solo se utilizan para la entrada de teclado (por ejemplo, F1, EJECUTAR/DETENER).

Conjunto de caracteres
Las tablas que aparecen a continuación representan la codificación PETSCII de "intercambio", tal como la utiliza CHR$().
Los caracteres de control se definen en los rangos 0x00 – 0x1F y 0x80 – 0x9F, aunque los caracteres de control definidos y su definición varían entre sistemas. Las tablas siguientes excluyen los caracteres de control; la codificación de los caracteres de control se analiza en la sección Caracteres de control .
Los rangos 0x60 – 0x7F y 0xE0 – 0xFF son rangos duplicados, aunque lo que duplican varía entre sistemas. En el Commodore PET, duplican 0x20 – 0x3F y 0xA0 – 0xBF, respectivamente; en el Commodore VIC-20, 64, 16 y 128, duplican 0xC0 – 0xDF y 0xA0 – 0xBF, respectivamente. [ 6 ] Si bien estos caracteres son visualmente duplicados, son semánticamente diferentes; por ejemplo, en el Commodore PET, los puntos de código 0x2C y 0x6C producen un carácter de coma, pero solo 0x2C funciona como delimitador entre campos de entrada. [ 8 ]
Los caracteres gráficos son prácticamente idénticos en todos los sistemas, con la excepción de 0x5C (presente \en Commodore PET y £otros sistemas), 0xDE (que corresponde a U+1FB95 RELLENO DE TABLERO DE DIAMANTES en Commodore PET y VIC-20, y U+1FB96 RELLENO DE TABLERO DE DIAMANTES INVERSO en otros sistemas) y el rango 0x60 – 0x7F (que duplica un rango diferente en Commodore PET). Además, en el conjunto de caracteres desplazados de Commodore PET 2001 , las letras mayúsculas y minúsculas se intercambian con respecto a otros sistemas.
Equivalentes Unicode
Los caracteres PETSCII están representados en el estándar Unicode en varios bloques:
- Latín básico (U+0000 - U+007F)
- Suplemento Latin-1 (U+0080 - U+00FF)
- Griego y copto ( U+03C0 π LETRA MINÚSCULA GRIEGA PI )
- Puntuación general ( U+2022 • VIÑETA )
- Flechas (dos flechas, U+2190 y U+2191)
- Dibujo de la caja (U+2500 - U+257F)
- Elementos de bloque (U+2580 - U+259F)
- Figuras geométricas (U+25A0 - U+25FF)
- Símbolos varios (U+2600 - U+26FF)
- Dingbats ( U+2713 ✓ MARCA DE VERIFICACIÓN )
- Símbolos para computación heredada (U+1FB00 - U+1FBFF, añadidos por primera vez en 2020 como parte de Unicode 13.0) [ 9 ]
Estándar
Las siguientes tablas representan la codificación PETSCII utilizada en los ordenadores Commodore VIC-20, 64, 16 y 128.
Sin cambios
Cambiado
PET Comodoro
Sin cambios
Cambiado
Personajes de control
Si bien los caracteres gráficos eran en su mayoría comunes a los sistemas Commodore, los caracteres de control variaban con frecuencia. La siguiente tabla describe lo que representan los caracteres de control en los sistemas Commodore PET 2001 , Commodore PET 8032 , VIC-20 , Commodore 64 , Commodore 16 y Commodore 128 (modos de 40 y 80 columnas).
Los colores de los modelos VIC-20 y C64/128 se enumeran en el artículo sobre el VIC-II .
Base 128
De los primeros 192 códigos de PETSCII, existen 128 caracteres gráficos: del 32 al 127 y del 160 al 192. Esto permite codificaciones al estilo "base128" en sentencias DATA, o posiblemente entre máquinas que utilizan PETSCII. También puede incluir caracteres de control, que se visualizan al citarlos, aunque la definición de estos caracteres varía según el sistema.
La principal aplicación de la codificación "Base 128" se encuentra en las sentencias DATA de Commodore BASIC. Los datos binarios se pueden almacenar con una sobrecarga relativamente baja, permitiendo que un carácter de datos codifique siete bits. En una línea estándar de 80 caracteres, normalmente se utilizan cuatro caracteres para el número de línea y dos para la sentencia DATA abreviada ( dA). Dado que la coma y los dos puntos son importantes para BASIC, también se necesita un carácter de comillas, lo que deja 73 caracteres para los datos. Con siete bits por carácter, una línea DATA podría almacenar 511 bits de datos binarios, con una eficiencia del 79 %. Si se utilizan números de línea de tres dígitos, la eficiencia aumenta al 80 %. Si se utilizan números de línea de dos dígitos, la eficiencia es del 82 %.
Para almacenar datos binarios en Commodore BASIC, parece que los números de línea de dos o tres dígitos suelen ser la mejor opción.
Base 164
En las cadenas entre comillas se pueden representar 164 caracteres PETSCII; por lo tanto, teóricamente, es posible usar Base 164. Esto incluye los valores de color, las teclas de función y los controles del cursor.
Véase también
Referencias
- ↑ Reunanen, Markku; Heikkinen, Tero; Carlsson, Anders (22 de noviembre de 2018). "PETSCII: un conjunto de personajes y una plataforma creativa" (PDF) . Repetición. La revista polaca de estudios de juegos . 5 (1): 27– 47. doi : 10.18778/2391-8551.05.02 .
- 1 2 Bagnall, Brian (2007). Al límite: El espectacular ascenso y caída del Commodore . Winnipeg: Variant Press. págs. 43, 54–55 . ISBN 978-0-9738649-0-8.
- ↑ Tramiel, Leonard (27 de diciembre de 2021). "Creando PETSCII" . Vintage Computer Stories . Blogspot.
- ↑ "Una conversación con Chuck Peddle, Bil Herd y Jeri Ellsworth - parte 3 - BIOS - blip.tv" . blip.tv. 5 de septiembre de 2010 [2009]. 6:30. Archivado del original el 9 de enero de 2011.( espejo )
- ↑ Andersson, Larry (25 de noviembre de 2000). "ARCHIVO DE PREGUNTAS FRECUENTES SOBRE EL ORDENADOR PARA MASCOTAS COMMODORE" . Zimmers.net . 1.7.
- 1 2 3 4 5 6 7 Oy, Aivosto (2014), "Conjuntos de caracteres PETSCII de Commodore" (PDF) , Aivosto
- 1 2 3 Ewell, Doug; Bettencourt, Rebecca; Bánffy, Ricardo; Everson, Michael; Marín Silva, Eduardo; Mårtenson, Elias; Shoulson, Mark; Steele, Shawn; Turner, Rebecca (4 de enero de 2019), "ReadMe.txt" , L2/19-025: Propuesta para agregar caracteres de computadoras antiguas y teletexto al UCS (PDF) , El Consorcio Unicode
- ↑ Brain, Jim (16 de marzo de 1996). "Commodore Trivia Edition #26 Answers for February 1996" . Commodore Trivia (Lista de correo). Brain Innovations, Inc. – vía Zimmers.net.
P $195) En las máquinas CBM anteriores al VIC-20, ¿qué código chr$ produce el mismo carácter que chr$(44), la coma?
R $195) 108.
P $196) ¿Es útil el carácter descrito en $195?
R $196) Para insertar comas en cadenas leídas mediante INPUT. Recuerda que INPUT trata una coma (chr$(44)) como un delimitador entre campos de entrada, pero chr$(108) no produce el mismo efecto, por lo que podrías reemplazar 44 con 108 en los datos escritos en el disco y leerlos con INPUT.
- ↑ Ewell, Doug; Bettencourt, Rebecca; Bánffy, Ricardo; Everson, Michael; Marín Silva, Eduardo; Mårtenson, Elias; Shoulson, Mark; Steele, Shawn; Turner, Rebecca (4 de enero de 2019), L2/19-025: Propuesta para agregar caracteres de computadoras antiguas y teletexto al UCS (PDF) , The Unicode Consortium
- 1 2 Bettencourt, Rebecca G. "Mapeo de PETSCII a Unicode" . KreativeKorp .
- ↑ Bettencourt, Rebecca (20 de abril de 2018), "CVICIPRI.TXT" , L2/19-025: Propuesta para agregar caracteres de computadoras antiguas y teletexto al UCS (PDF)
- ↑ Bettencourt, Rebecca (20 de abril de 2018), "C64IPRI.TXT" , L2/19-025: Propuesta para agregar caracteres de computadoras antiguas y teletexto al UCS (PDF)
- ↑ Bettencourt, Rebecca (11 de octubre de 2018), "CVICIALT.TXT" , L2/19-025: Propuesta para agregar caracteres de computadoras antiguas y teletexto al UCS (PDF)
- ↑ Bettencourt, Rebecca (11 de octubre de 2018), "C64IALT.TXT" , L2/19-025: Propuesta para agregar caracteres de computadoras antiguas y teletexto al UCS (PDF)
- ↑ Bettencourt, Rebecca (20 de abril de 2018), "CPETIPRI.TXT" , L2/19-025: Propuesta para agregar caracteres de computadoras antiguas y teletexto al UCS (PDF)
- ↑ Bettencourt, Rebecca (11 de octubre de 2018), "CPETIALT.TXT" , L2/19-025: Propuesta para agregar caracteres de computadoras antiguas y teletexto al UCS (PDF)
- ↑ Guía de referencia del programador de Commodore 128 (PDF) . Commodore Business Machines, Inc. Febrero de 1986. págs. 666–668 . ISBN 0-553-34292-4.
Enlaces externos
- Mapeo de PETSCII a Unicode y una fuente TrueType que utiliza dicho mapeo.
- Tipografía en 8 bits: Fuentes del sistema
- Editor de arte PETSCII en línea
- Arte PETSCII
- Conjuntos de caracteres
- Comodoro Internacional
- Commodore 64
- VIC-20
- ASCII
- Introducciones relacionadas con la informática en 1977