A grande maioria dos displays LCD de texto para telas 4x40 ou menores usa um controlador baseado no Hitachi HD44780. É um design bastante agradável de várias maneiras, portanto sua popularidade é compreensível. Um aspecto disso me intriga, no entanto.
O controlador de exibição foi projetado para operar com fontes 5x8 ou 5x10; de acordo com a folha de dados 44780, a peça está disponível com duas configurações ROM de estoque - uma com 248 formas de caracteres 5x8, designada A02, e uma com 160 formas 5x8 e 32 formas 5x10, designadas A00. As formas de caracteres 5x10 são realmente úteis apenas em monitores de linha única que possuem uma matriz de LCD de 10 altos, e esses monitores parecem ser muito raros (acho que já vi folhas de dados de um punhado deles, se isso, e eu não sei que eu já vi um pessoalmente).
Estou perplexo, então, com o motivo pelo qual parece que todo monitor LCD que eu vi baseado em um controlador compatível com HD44780 usa o padrão de fonte A00, que possui muitas células de caracteres em branco e cujos glifos para vários caracteres (incluindo 0xE4, 0xE6 , 0xE7, 0xEA, 0xF0, 0xF1 e 0xF9) são essencialmente inúteis com qualquer coisa que não seja uma tela 5x10 de linha única. Eu esperava que pelo menos alguns fornecedores alterassem as definições desses caracteres para que ficassem bem em uma tela de 5x8, mas não tenho conhecimento de que isso tenha acontecido. Eu também acho que, para muitas aplicações, o padrão ROM A02 seria mais útil que o padrão A00, mas todos os monitores que já vi à venda usam o padrão A00.
Para garantir que, em muitos aplicativos, a capacidade de definir glifos personalizados atenue substancialmente as limitações do conjunto de caracteres interno, mas a exibição pode mostrar apenas oito glifos personalizados diferentes por vez. Ter glifos incorporados para coisas como setas significaria que aplicativos que precisam de setas poderiam ter mais glifos personalizados restantes para outros fins.
Se nada mais, parece lógico que os displays tenham uma opção para preencher os intervalos de caracteres 0x10-0x1F e 0x80-0x9F com caracteres úteis. Se um controlador em particular for usado apenas com vidro 5x8 ou 5x16 (parece bastante provável), seria simples usar o bit de controle da fonte 5x10 para ativar ou desativar esses caracteres. Isso tornaria o controlador compatível com o software que esperaria que todos esses caracteres aparecessem em branco, mas permitiria que o software que sabe o que é explorar esses outros caracteres.