E se o que foi dito antes não funcionar? Caso o joguinho continue acusando falta de memória, o mais provável de estar ocorrendo é falta de memória convencional.
Cada driver, comando ou programa residente em memória que é carregado através do Config.sys ou Autoexec.bat ocupa espaço na área de 640 KB que o MS-DOS reconhece.
Encaremos os fatos: há diversos comandos que são carregados em memória - tais como driver de mouse para MS-DOS, o DOSKEY, o SHARE, drivers da placa de som, driver da unidade de CD-ROM, entre outros. Portanto, apesar de termos 640 KB de memória convencional, tal área não está totalmente disponível, pois há diversos programas residentes em memória. Se quantidade de memória convencional livre não for suficiente para o joguinho ser executado, ele acusará erro de falta de memória.
O MS-DOS permite que programas residentes possam ser carregados em uma outra área acima dos 640 KB de memória convencional, área esta chamada memória superior ou UMB (Upper Memory Bank). Os programas residentes carregados nesta área não ocupam memória convencional e funcionam perfeitamente.
| Memória Estendida |
1 MB a Total (Ex: 8 MB) |
| Memória Superior |
640 KB a 1 MB |
| Memória Convencional |
0 KB a 640 KB |
Para que isto seja possível, o Config.sys do micro deverá conter obrigatoriamente as seguintes linhas, de preferência em seu começo:
DEVICE=C:DOSHIMEM.SYS DEVICE=C:DOSEMM386.EXE NOEMS DOS=HIGH, UMB
Nota: Caso você precise utilizar a técnica de memória expandida (EMS) para "rodar" o seu joguinho, ao invés do parâmetro "NOEMS", utilize o parâmetro "RAM".
O próximo passo é fazer com que os programas residentes sejam carregados em memória superior. Nem todos os programas chamados através do Config.sys e do Autoexec.bat ficam residentes em memória. Para saber quais os programas que ficam residentes, utilize o comando MEM /C /P. Uma lista de programas atualmente carregados em memória será apresentada.
Config.sys
Edite o arquivo Config.sys e faça com que os programas residentes em memória sejam carregados em memória superior, substituindo o comando "DEVICE" por "DEVICEHIGH".
Ex: DEVICE=C:WINDOWSIFSHLP.SYS
alterar para DEVICEHIGH=C:WINDOWSIFSHLP.SYS
Autoexec.bat
Edite o arquivo Autoexec.bat e faça com que os programas residentes em memória sejam carregados em memória superior adicionando o comando "LOADHIGH" ao início da linha que carrega o programa residente.
Ex: C:DOSSHARE.EXE /L:500 /F:5100
alterar para LOADHIGH C:DOSSHARE.EXE /L:500 /F:5100
Será necessário dar um "reset" no micro para que as alterações tomem efeito.
Nem todos os programas podem ser carregados em memória. Se o micro travar depois que você fizer as alterações necessárias, isto significa que algum programa incompatível foi carregado em memória superior. Para resolver este problema é simples: dê um novo "reset" no micro e, ao aparecer a mensagem "Iniciando o MS-DOS..." na tela, pressione a tecla [F8]. Vá confirmando passo-a-passo a execução do Config.sys e do Autoexec.bat. Assim que o micro travar, o nome do último programa carregado estará na tela; ele é quem fez o micro travar. Basta você dar um novo "reset" e desta vez apertar a tecla [F5] quando a mensagem "Iniciando o MS-DOS..." aparecer. Edite o Config.sys ou Autoexec.bat e faça com que o programa incompatível seja carregado em memória convencional, como estava antes de você alterar os arquivos de configuração de seu micro. |