Escritos
B. Piropo
Anteriores:
< Trilha Zero >
Volte de onde veio
19/04/1999

< Himem de Novo >


Interromperemos novamente a série – desta vez por duas semanas – para discutir o problema da Himem.

Os micreiros dos tempos do DOS certamente lembram. Os que começaram com Windows mas usam programas DOS, provavelmente sabem do que se trata. Himem refere-se a um trecho de memória conhecido por HMA (High Memory Area, ou área de memória alta). O conceito só faz sentido no DOS, um sistema operacional desenvolvido para o 8088 da Intel, que só "enxergava" um espaço de endereçamento de 1Mb. Por isso ainda hoje, mesmo rodando em um Pentium III, o DOS tem sérios problemas para acessar memória acima de 1Mb. É claro que com advento de microprocessadores mais poderosos, artifícios foram engendrados para aumentar os horizontes do DOS. Um deles consistiu em espichar um pouco o espaço de endereçamento, permitindo ao DOS "enxergar" o primeiro segmento de 64K situado acima do endereço 1Mb. Infelizmente não dá para detalhar aqui como isso é possível, mas acredite: é uma artimanha bastante engenhosa.

Pois bem: HMA é justamente a memória que ocupa o segmento de 64K situado imediatamente acima do primeiro Mb de memória. Em máquinas operando sob DOS ela geralmente é usada para carregar parte do código do próprio sistema operacional, liberando todo um segmento da preciosa memória convencional para programas. Para isso basta incluir no arquivo de configuração Config.Sys uma linha para carregar o gerenciador de memória estendida Himem.Sys e acrescentar o comando "DOS=HIGH" ao mesmo Config.Sys. Sob Windows 9x isto não é necessário: o Himem.Sys é carregado por padrão pelo próprio Windows e para que um programa use a HMA basta clicar com o botão direito sobre seu ícone, acionar a opção "Propriedades", passar para a aba "Memória" e marcar a caixa "Utiliza HMA" do grupo "Memória estendida (XMS)". Assim Windows consegue rodar muitos programas DOS (especialmente jogos) que antes eram liminarmente recusados sob a alegação de falta de memória.

Mas por que tamanho alvoroço em torno de um tema tão ultrapassado? Afinal, nos tempos de Windows quem se importa com memória convencional? Ao contrário do que parece, muita gente. Tanto é assim que a versão em português de Windows 95 conhecida por OSR2 veio com um bug que dificultava o uso da HMA e a chiadeira foi tão grande que obrigou a MS a distribuir um remendo ("patch") via Internet. O assunto provocou tanta celeuma que só nesta coluna foi discutido nada menos que três vezes nos dois últimos anos (em outubro e dezembro de 97 e janeiro de 98).

Mas com Windows 98, o tema não teria caducado? Afinal, se a MS descobriu o bug que infestava a versão OSR2 e o corrigiu, certamente tê-lo-ia extirpado na versão 98, certo? Errado. Não somente Windows 98 veio com o mesmo bug como, por incrível que pareça, não há como corrigi-lo transferindo um remendo via Internet.

A MS, compreensivelmente, não dá muita publicidade ao caso. Eu mesmo, instigado por literalmente centenas de mensagens de leitores solicitando uma solução, cansei de pesquisar a Internet sem encontrar menção ao problema. Porém recentemente o leitor Jason Ricci, a quem eu havia informado desconhecer a palavra oficial da MS sobre o assunto, teve a delicadeza de me enviar uma mensagem dando conta que, depois de muito insistir, teve mais sorte (ou competência...) e descobriu no próprio sítio da MS (que ele chama de "labirinto") a página [http://support.microsoft.com/support/kb/articles/q197/0/30.asp] sobre o assunto. Que traz informações de fazer cair o queixo de um pobre consumidor.

Resumindo: nela, a MS admite estar ciente de que as versões "européias" de Windows 98 em finlandês, polonês e português do Brasil (sabiam vocês que para a MS americana somos europeus?) põe menos memória convencional à disposição dos programas DOS. Que, nessas versões, o comando "mem /c" mostra que o driver Himem.Sys ocupa 44K de memória convencional ao invés do 1K que ocupa nas demais. Que isso se deve ao fato do módulo Io.Sys ocupar demasiada memória alta, forçando o Himem.Sys a se deslocar para a convencional. E que, pasmem: foi desenvolvido um "patch" mas, como não foi inteiramente testado, não está disponível via Internet. Se você não é "severamente afetado" pelo problema, deve esperar pelo próximo "service pack", que o resolverá (não há informações sobre quando o service pack estará disponível). Mas se ainda assim você decidir usá-lo, deve entrar em contato por telefone com o suporte da MS para se informar sobre o assunto, inclusive sobre os eventuais custos. Uma consulta à lista irá levá-lo ao telefone de suporte da MS em São Paulo, (011) 5506-8087. Para se candidatar ao suporte gratuito, deve-se consultar o artigo encontrado em [http://support.microsoft.com/support/kb/articles/Q154/8/71.asp]. Mas não perca tempo: lá, você descobrirá apenas que se seu Windows veio instalado no computador, a responsabilidade pelo suporte não é da MS mas do fabricante. E, caso contrário, você deverá ligar para os mesmos telefones da MS em São Paulo.

Mas não haverá um meio mais simples de resolver o problema? Há sim. Vamos vê-lo semana que vem.

B. Piropo