Micro Cosmo
Volte
15/07/96

< Gate A20 é isso Aí... >


Semana passada vimos que seria possível “enganar” o DOS e romper o limite de 1Mb apontando o registrador de segmentos para o segmento mais alto, situado muito próximo ao limite de 1Mb, e usando o segmento que ali se inicia. Como cada segmento, independentemente de onde comece, tem sempre 64K, isto corresponde a um ganho de quase 64k de memória. Este trecho adicional de memória chama-se “Área de Memória Alta” (HMA, ou High Memory Area) e em geral é usado para armazenar o código executável do próprio DOS quando se inclúi o comando DOS=HIGH no arquivo de configuração Config.Sys. O problema é que para isto é preciso usar mais de vinte linhas de endereçamento.

Em um 8088, isto está fora de questão: ele tem apenas vinte linhas, portanto nada feito. Já em um 286, 386, 486 ou Pentium, todos eles com mais de vinte linhas de endereçamento, em princípio isto seria possível. Desde que se pudesse acionar a vigésima primeira linha de endereçamento enquanto se usa o DOS. O que não é tão simples como parece.

Mas qual é a dificuldade? As linhas não estão lá? Então porque não podem ser usadas? Bem, é que para rodar o DOS a CPU deve estar obrigatoriamente no modo real (sim, a força de sobrevivência do DOS é tamanha que tanto o 386 quanto o 486 e o Pentium incluiram dentre seus modos de funcionamento o modo real, que emula um 8088; e, sim, quando você roda o DOS “puro” em seu soberbo Pentium Pro de 200 MHz, ele está se comportando exatamente como se fosse um velho 8088, apenas mais rápido). E no modo real, a vigésima primeira linha de endereçamento permanece inacessível - o que faz sentido, pois o modo real serve apenas para emular um 8088 - que tinha apenas vinte linhas de endereçamento.

E foi assim que, não mais que de repente, a vigésima primeira linha de endereçamento assumiu uma inesperada importância mesmo sob o DOS. E qual é esta tão importante linha de endereçamento? Bem, as linhas são numeradas. E como a numeração começa sempre em zero, a primeira é A0. Ea vigésima primeira é batizada de A20.

Nosso problema agora se resume a é fazer com que a CPU possa acessar a A20, a vigésima primeira linha de endereçamento, mesmo rodando no modo real.

O que se consegue através de um artifício. Denominado “Gate A20”.

Semana que vem faremos um resumo de tudo isto, veremos para que serve o ajuste do Setup denominado Gate A20 e encerraremos esta série.

Afinal.

B. Piropo