# PETSCII

PETSCII (PET Standard Code of Information Interchange), también conocido como CBM ASCII, es la variación del conjunto de caracteres ASCII utilizado en los sobremesa de 8 bit Commodore Business Machines (CBM), empezando por el PET, en 1977, y pasando por el VIC-20, C64, Plus/4, C16 y C128.
Este conjunto de caracteres fue diseñado por Leonard Tramiel y el diseñador de PET, Chuck Peddle. El VIC-20 utilizaba la misma fuente píxel a píxel que el PET, mientras que el Commodore 64 utilizaba una variante, diferente de la utilizada en el PET. Tal variante fue denominada “Atari font”.
PETSCII, en el C64, se muestra en dos modos, “shifted” y “unshifted”, las tablas adjuntas muestran el conjunto de caracteres en cada modo.
PETSCII se basa en la versión ASCII de 1963. Solo presentaba letras mayúsculas (en el modo “unshifted”), la flecha hacia arriba (↑) en lugar de (^) en la posición $5E, y una flecha hacia la izquierda (←) en lugar del símbolo de subrayado (_) en la posición $5F. En modo “unshifted”, las entradas $60 - $7F y $A0 - $FF están asignadas a caracteres gráfico. Las entradas que van desde $00 - $1f y $80 - $9F contienen caracteres de control, y las posiciones $60 - $7F contienen caracteres repetidos en las $C0 - $DF, y lo mismo sucede con los rangos $E0 - $FE y $7E - $FF.
La falta de un modo gráfico en mapa de bits programable en el PET y el no poseer la capacidad de redefinición de carácter son algunas de las razones por las cuales PETSCII fue desarrollado.
PETSCII también contiene un modo “shifted” donde el rango $41 - $5A contiene letras minúsculas y $61 - $7A mayúsculas. Esto viene a ser a la inversa del ASCII-1977, con lo que cualquier paso de texto entre el Commodore de 8bit y otro que emplee ASCII estándar producirá una inversión en el texto. Por ello, así como en otras máquinas que no trabajan con versiones de ASCII estándar, se hace necesaria la conversión del software en casos de intercambio de texto. Los rangos restantes se mantienen intactos en modo “shifted”.
Se incluye también en PETSCII un cursor y códigos de control de pantalla, tales como {HOME}, {CLR}, {RVS ON} y {RVS OFF}. Que son, en esencia, muy similares a los códigos de salida de las máquinas de terminal de código.
Como ya se ha comentado, PETSCII permite cambiar del modo “unshifted” (uppercase+graphics character set) a “shifted” (lower+uppercase set). Este cambio se realiza mediante comandos especiales.

## La tabla de código

Ya que no todos los caracteres del código PETSCII son gráficos (códigos de control) y no todos tienen su correspondiente representación en Unicode, probablemente no podrían ser mostrados en el explorador web. La siguiente tabla muestra los signos gráficos de PETSCII donde exista correspondencia con el Unicode. Los no mostrables se representan mediante la abreviación del nombre. Los encabezamientos de las filas y las columnas indican la combinación de dígitos hexadecimal necesaria para la generación del valor de 8 bits.
PETSCII (Commodore 64) :
| | x0 | x1 | x2 | x3 | x4 | x5 | x6 | x7 | x8 | x9 | xA | xB | xC | xD | xE | xF |
| 0x | unused | unused | unused | unused | unused | WHT | unused | unused | SHIFT ENABLE | SHIFT DISABLE | unused | unused | unused | CR | SO | unused |
| 1x | unused | DOWN | RVS ON | HOME | DEL | unused | unused | unused | unused | unused | unused | unused | RED | RIGHT | GRN | BLU |
| 2x | SP | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / |
| 3x | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? |
| 4x | @ | A a | B b | C c | D d | E e | F f | G g | H h | I i | J j | K k | L l | M m | N n | O o |
| 5x | P p | Q q | R r | S s | T t | U u | V v | W w | X x | Y y | Z z | [ | £ | ] | ↑ | ← |
| 6x | ━ | ♠ A | │ B | ━ C | � D | � E | � F | � G | � H | ╮ I | ╰ J | ╯ K | � L | ╲ M | ╱ N | � O |
| 7x | � P | ● Q | � R | ♥ S | � T | ╭ U | ╳ V | ○ W | ♣ X | � Y | ♦ Z | ┼ | � | │ | π ▒ | ◥ � |
| 8x | unused | ORG | unused | unused | unused | F1 | F3 | F5 | F7 | F2 | F4 | F6 | F8 | LF | SI | unused |
| 9x | BLK | UP | RVS OFF | CLR | INS | BRN | LT RED | GRAY1 | GRAY2 | LT GRN | LT BLU | GRAY3 | PUR | LEFT | YEL | CYN |
| Ax | NBSP | ▌ | ▄ | ▔ | ▁ | ▏ | ▒ | ▕ | � | ◤ � | � | ├ | � | └ | ┐ | ▂ |
| Bx | ┌ | ┴ | ┬ | ┤ | ▎ | ▍ | � | � | � | ▃ | � ✓ | � | � | ┘ | � | � |
| Cx | ━ | ♠ A | │ B | ━ C | � D | � E | � F | � G | � H | ╮ I | ╰ J | ╯ K | � L | ╲ M | ╱ N | � O |
| Dx | � P | ● Q | � R | ♥ S | � T | ╭ U | ╳ V | ○ W | ♣ X | � Y | ♦ Z | ┼ | � | │ | π ▒ | ◥ � |
| Ex | NBSP | ▌ | ▄ | ▔ | ▁ | ▏ | ▒ | ▕ | � | ◤ � | � | ├ | � | └ | ┐ | ▂ |
| Fx | ┌ | ┴ | ┬ | ┤ | ▎ | ▍ | � | � | � | ▃ | � ✓ | � | � | ┘ | � | π ▒ |