• Codepages (1)

    From Mauro Veiga@1:2320/100 to All on Fri Jul 29 12:44:02 2016
    O mist‚rio das paginas de codigo.
    Dos textos do B. Piropo.

    O MS-DOS 5.0 da Microsoft oferece um total de seis p ginas de c¢digo. Em
    todas elas, os primeiros 128 caracteres s„o os mesmos e obedecem rigorosamente … padroniza‡„o ASCII e os 128 remanescentes correspondem a caracteres espec”ficos de determinados idiomas. Nos interessam particularmente trˆs p ginas de c¢digo (que doravante vamos abreviar para
    CP): as CP 860, 437 e 850. A primeira por raz”es ¢bvias: ela corresponde ao idioma portuguˆs.  uma solu‡„o extremamente inteligente:
    os caracteres acentuados do portuguˆs e inexistentes na CP 437 foram introduzidos em substitui‡„o a outros jamais utilizados em nosso idioma,
    como o e-trema e i-circunflexo, deixando intactos os caracteres gr ficos
    que muitos programas usam para molduras e as letras gregas utilizadas
    como s”mbolos matem ticos e essenciais para relat¢rios t‚cnicos, por exemplo.

    A CP 437 corresponde ao inglˆs usado nos EUA, e nela faltam al‚m do a-til
    e o-til a maior parte dos caracteres acentuados mai£sculos. Mas provavelmente ‚ a que vem gravada na ROM de sua controladora de v”deo, ou
    seja, ‚ sua p gina de c¢digo de hardware.

    A CP 850 ‚ a "multilingue latino I". Foi desenvolvida para atender ao
    maior n£mero poss”vel de idiomas, particularmente os de ra”zes latinas, dentre os quais o portuguˆs e espanhol, e incorpora caracteres £teis em alguns desses idiomas, mas absolutamente inserv”veis no portuguˆs (a
    menos que vocˆ consiga enfiar, por exemplo, um u-circunflexo no meio de
    uma palavra). Como quem pretende satisfazer a todos acaba por deixar a maioria insatisfeita, n„o ‚ uma boa solu‡„o: para abrir espa‡o para os
    novos caracteres, a maior parte dos s”mbolos gr ficos usados para o desenho de molduras e linhas foram eliminados, assim como muitas letras gregas (o "alfa" sumiu, mas por alguma raz„o o "beta" permaneceu; provavelmente para continuar permitindo o desenvolvimento de "vers”es
    beta" de software). Entretanto alguns programas utilizam a CP 850 e se
    vocˆ usar o Works ou Word 5.0 sem ela, aparecem s”mbolos muito estranhos
    no lugar de alguns caracteres acentuados.

    Essas s„o as principais caracter”sticas das p ginas de c¢digo que nos interessam. Mas at‚ agora temos discutido as CP como se elas apenas servissem para o v”deo. E sua a‡„o pode se estender tamb‚m para teclado
    e impressora. O que parece ¢timo. Mas n„o se anime tanto, que a coisa
    tem seus percal‡os. Sen„o vejamos.

    O uso de p ginas de c¢digo na impress„o exige que a pr¢pria impressora forne‡a suporte para elas, e poucas o fazem. De forma que n„o vamos perder tempo com isso agora. J  no que toca ao teclado, a coisa ‚ mais simples, posto que se o suporte de p ginas de c¢digo para v”deo tiver
    sido implementado com os comandos que j  examinamos, basta usar o programa Keyb.Com, do pr¢prio DOS, um residente que intercepta as teclas
    e as converte de acordo com a p gina de c¢digo selecionada (lembre-se que
    o driver Display.Sys ‚ um gerenciador de console, e console inclui o teclado). O lugar ideal para carreg -lo ‚, evidentemente, o Autoexec.Bat. Sua sintaxe admite outros parƒmetros, mas para n¢s basta a
    que segue:

    keyb xx,yyy,[via]nomearq

    Destrinchemo-la: keyb ‚ o nome do comando. O parƒmetro xx representa o c¢digo do teclado. Dos poss”veis, nos interessam "br", para o teclado brasileiro (dispon”vel apenas a partir da vers„o 5.0 do MS DOS) e "po"
    para o teclado portuguˆs. O parƒmetro yyy ‚ o c¢digo da p gina de c¢digo
    a ser utilizada, obrigatoriamente uma das que tiver sido previamente preparada para o console. E [via]nomearq representa a via de diret¢rio e
    o nome do arquivo Keyboard.Sys, do DOS, que cont‚m as informa‡”es sobre
    os teclados. Tamb‚m nesse caso, se vocˆ copiar o arquivo Keyboard.Sys
    para o diret¢rio raiz do disco de boot, pode suprimir a [via] na linha de comando.

    Parece ¢timo: com o residente Keyb.Com instalado ‚ poss”vel usar caracteres acentuados como em uma m quina de escrever, teclando-se o acento seguido da letra. O problema ‚ que Keyb.Com muda o lay-out do teclado de acordo com o pa”s. Se vocˆ estiver usando a CP 860, do idioma portuguˆs, e ajustar o teclado usando o parƒmetro "po", as teclas de seu teclado ficar„o completamente "embaralhadas" e vai ter que teclar o sinal
    "<" menor-que toda a vez que precisar de um dois-pontos, por exemplo,
    pois as teclas mudam de posi‡„o no teclado e aparecem de acordo com a disposi‡„o usada em Portugal, completamente diferente do padr„o americano
    da maioria dos nossos teclados, o "US Keyboard".

    E verdade que sempre se pode usar o parƒmetro "br", do teclado brasileiro, que n„o muda o lay-out do teclado padr„o americano e permite acentuar da mesma forma (o cedilha ‚ obtido teclando o acento agudo seguido do "C"). Mas quando se especifica o teclado deve-se especificar tamb‚m a CP. E os parƒmetros xx e yyy devem combinar um com o outro e
    com o pa”s usado no comando "country". Explicando melhor: quando vocˆ especifica o parƒmetro xx, ou seja, escolhe o pa”s, somente poder  especificar determinadas p ginas de c¢digo que "combinem" com o pa”s escolhido. Em outras palavras: cada c¢digo de teclado somente aceita determinadas p ginas de c¢digo. E a Microsoft, que desenvolveu essa tralha toda, decidiu que o Brasil e a CP 860 do idioma portuguˆs n„o combinam, ou seja, se for escolhido o teclado brasileiro n„o ser  poss”vel usar a CP 860, do idioma portuguˆs. Parece est£pido? Parece mesmo. Mas acontece que por insond veis raz”es a Microsoft resolveu que
    o Brasil deve usar apenas as CP 850 "multilingue latino I" e 437 americana, jamais a 860. Talvez algum dia os luminares da Microsoft consigam me explicar por que a CP 437 do inglˆs dos EUA foi tornada compat”vel com o c¢digo de pa”s 055, correspondente ao Brasil e a 860 do idioma portuguˆs n„o, mas at‚ agora, por meus pr¢prios meios, confesso
    n„o ter conseguido deslindar esse mist‚rio.

    Ent„o, conforme o evangelho segundo a Microsoft, n¢s brasileiros devemos
    usar as CP 437 e 850 e nos privarmos da 860 do idioma portuguˆs. Mas acontece que a CP 850, embora tenha todos os caracteres acentuados do portuguˆs, inclui uma multid„o de outros que n„o tˆm serventia alguma
    (para que servem um "e" ou um "u" com acento grave, por exemplo?). E exclui a maior parte das letras gregas usadas em textos t‚cnicos e uma
    s‚rie de s”mbolos gr ficos que muitos programas utilizam para molduras (experimente rodar o XTree ou DesqView na CP 850 e veja que maldita confus„o aparece na tela). O que ‚ muito inconveniente.

    Temos ent„o um problema: ou usamos a CP 850 e o teclado brasileiro para acentuar, e perdemos os s”mbolos gr ficos e letras gregas, ou usamos a CP
    860 do portuguˆs que n„o tem esse inconveniente. Mas se usarmos seu teclado, embaralhamos as teclas do nosso. Vejamos como resolver este aparente impasse.

    B. Piropo

    ___ Blue Wave/386 v2.30
    --- SBBSecho 2.27-Win32
    # Origin: Ninho do Abutre 2 - Rio de Janeiro - Brasil * (4:801/194)
    * Origin: LiveWire BBS - Synchronet - LiveWireBBS.com (1:2320/100)