Você conhece aqueles símbolos gráficos de blocos que permitem desenhar linhas, cantos, interseções, gráficos de barras finas, etc. eles são úteis e podem-se fazer muitas coisas, mas seus arranjos de código sempre me pareceram arbitrários/aleatórios. Mas talvez eu simplesmente não tenha descoberto a lógica. Alguém sabe por que eles acabaram com os códigos que receberam?
A codificação "PETSCII" é baseada nas posições do teclado PET chicklet original (*1):
(Retirado da Wikipédia)
O teclado é semelhante aos teclados básicos de máquinas de escrever, mas ordenado de forma quadrada, incluindo uma linha superior de símbolos, mas não números, e um teclado numérico separado. Cada chave contendo apenas um único símbolo equivalente ASCII (*2), leva a uma codificação direta de ASCII como posição de chave.
Como efeito colateral, todo o nível de mudança poderia ser usado para gráficos, como aconteceu. Todos os símbolos são ordenados em um padrão (principalmente) útil, como ter
UIJK formando as 4 seções de um círculo,
OPL: fazendo o mesmo para os cantos de um quadrado grande e
0.-=o mesmo para um pequeno quadrado.
Ele não apenas parece bonito no teclado, mas também é uma boa interface de usuário no que diz respeito à ordem dos símbolos.
A desvantagem é que os símbolos gráficos são codificados de acordo com o código de caracteres (não peneirado). E aqui combinações como
UIJK são simplesmente não contínuos. Como mostra a listagem da tarefa PETSCII:
(Retirado da Wikipédia)
Do ponto de vista dos programadores, isso não é nada perfeito. Uma sequência lógica para itens relacionados (*3) poderia ter sido mais útil. Isto é especialmente verdadeiro para os 16 códigos que formam uma divisão 2x2 de uma célula de caractere que permitiria um modo 'bitmap' fácil para 80x48 pixels (*4). Muito parecido com o TRS-80 contemporâneo e o ZX80/81 de Sinclair alguns anos depois.
Uma parte adicionalmente triste é que o PETSCII em si não é usado diretamente para exibição, mas antes traduzido em códigos de tela. Se não fosse logo à frente, este teria sido um bom ponto para reordenar.
... e assim virou história :)
*1 - A entrada da Wikipedia para 'Chicklet Keyboard' é um bom exemplo de explicação retrógrada.
*2 - Quase como se a primeira versão não fosse feita para usar shift.
*3 - Assim como o ASCII oferece uma sequência monótona para números ($30..$39) e letras ($41..$5A). Este último de acordo com a sequência lexical usual, popularizada por Bartholomeus Anglicus.
*4 - Como de costume, eles foram usados ​​de qualquer maneira, mas com uma camada de tradução. Alguns deles, escritos em BASIC, parecem mais uma ofuscação proposital.
Acho que os códigos foram dispostos de forma que, quando dispostos de maneira sensata no teclado PET, as formas alteradas e não alteradas de cada tecla tivessem um relacionamento consistente. Quando o VIC-20 reduziu o número de teclas, mas adicionou a tecla Commodore, foi necessário reorganizar o posicionamento dos gráficos nas teclas; como o Commodore manteve o mesmo arranjo de códigos de caracteres, isso significava que o arranjo não parecia mais fazer tanto sentido.
Pode-se ver um efeito semelhante no design do ASCII. Muitas máquinas de escrever costumavam usar um 2 deslocado como aspas, os primeiros teletipos faziam o mesmo e, portanto, o código ASCII para as aspas é um pouco diferente daquele do dígito 2, embora os teclados modernos usem um apóstrofo deslocado como aspas .