Volver a la portada de Duiops
Volver al Web de Duiops
 
   
Google
 
En Internet En duiops.net
Menú
Secciones destacadas
Artículos y FAQs
Trucos de Windows
Versiones de Windows
y suites de software
Windows Vista
Windows Media Center
Windows XP
Windows 2000
Windows Millenium
Windows 98/98 SE
Windows 95 OSR-2
Internet Explorer
Office
Otros
Tutorial muy básico
   
Portada

 

Apúntate a la lista de correo del Web de Duiops

Portada - Artículos y FAQs - Memoria máxima bajo Windows
 
Memoria máxima bajo Windows

 

Por Jose Manuel Tella Llop, extraído de microsoft.public.es.windows98

MAXIMA MEMORIA BAJO WINDOWS
----------------------------

Este articulillo va dirijido a aquellos que desean la "maxima" memoria, e incluso memoria superior en las ventanas DOS bajo Windows.

Es conveniente haberse leido los articulos mios anteriores sobre la memoria MSDOS para entender perfectamente este articulo.

RECORDANDO
----------

Recordando los dos articulos mios anteriores, ya sabemos como conseguir memoria "estendida" (HIMEM.SYS), "expandida" y marco de pagina (EMM386.EXE), y por tando y con las directrices DOS=UMB,HIGH poder utilizar el maximo de memoria en DOS.

Pero... curiosamente cuando entramos en Windows y damos el comando mem /d/p vemos que no tenemos memoria "alta" (UMBs) disponibles.

Recordemos un poco el mama de memoria "fisica" del msdos. Hasta la dirección 'A000' de memoria son los primeros 640 Ks. Mejor graficamente:

0000
.....
9FFF     640 Ks
A000     Memoria grafica de video -64 Ks- marco de mapeo al video
B000     Memoria para pantallas de texto (monocromo) -32 Ks-
B800     Memoria para pantallas de texto (color) -32 Ks-
C000     ROM BIOS de la tarjeta de video -32 Ks-
C800     LIBRE ¿?    -96 Ks-  !!!!!!
E000     Marco de pagina memoria EMS (si tenemos EMM386)
F000     ROM BIOS de la placa madre
FFFF     64 Ks más donde el dos carga parte de él (DOS=HIGH)

Bien lo anterior es una configuracion estandard con EMM386 y memoria EMS y la instruccion DOS=HIGH,UMB (sino se ha entendido hasta aquí, por favor repasar los articulos anteriores).

Matizo que es una configuracion "standard". Es decir, si no tenemos otras tarjetas (SCSI, de red, etc...) que tengan ROM BIOS. Si tuviesemos esas tarjetas, la dirección libre en vez de empezar en C800, empezaria mas tarde y tendriamos menos espacio libre. Ya veremos como puede saberse esto.

Además, en le EMM386, podemos incluirle la linea I=B000-B7FF para poder utilizar la memoria de los antiguos adaptadores graficos monocromos (otros 32 Kbs). **** ATENCION: esto unicamente sino utilizamos "multimonitor". Si lo utilizasemos, NO SE PUEDE recuperar dicha memoria.

Entonces en una configuracion normal, tendriamos: 96 Ks + 32 Ks = 128 Ks libre por la zona alta.

Y ahora la pregunta ¿como utilizarlos?

UTILIZACION DE MEMORIA SUPERIOR
-------------------------------

Bien, la primera parte sencilla. Si a continuacion de la linea del config que carga el EMM386.EXE, ya colocamos las instrucciones "devicehigh" (en vez de device) y en el autoexec, cargamos los programas con "lh" (loadhigh) por delante de ellos, entonces estos programas se cargarán en memoria UMB, igualmente, el propio MSDOS, en cuanto puede, "mete" allí su zona de buffers, files, etc...... (por eso, realmente no "vemos" los 128 Ks libre nunca, porque el propio MSDOS, aunque no hayamos cargado nada, en cuanto se encuentre DOS=UMB, ya carga allí lo que puede).

Pero.... muy bien, ahora ya hemos terminado de cargar el DOS y empieza Windows a cargarse.

Si arrancamos en "solo símbolo del sistema" veremos con un mem /d/p la memoria superior que tenemos "antes" de entrar Windows. Y además la memoria libre que tenemos bajo MSDOS (recordad, que no haría falta nada más que : en el config, las lineas devicehigh= display.sys.... y el Country. Y en el autoexec, las dos lineas mode *no hay que ponerlas "lh" a estas. Y la linea keybsp con "lh". Con esto es suficiente para Windows. El resto de cosas, como ya hablaremos mas adelante: NO HACEN FALTA, se pueden quitar y ya veriamos como podemos recargarlas si hiciesen falta a posteriori para entrar en modo MSDOS)

Retomando lo anterior, sabemos la memoria libre, pero cuando entramos en Windows y damos el mismo comando, vemos que en la zona alta de memoria no nos queda nada....¿?

RECUPERACION DE LA MEMORIA ALTA BAJO WINDOWS
--------------------------------------------

La memoria anterior se puede recuperar. Unicamente debemos añadir en la seccion [386enh] del System.ini (que está en el directorio de windows), la linea:

LocalLoadHigh=On

Y reiniciar. Puede..... que el sistema no nos arranque, enviando un mensaje de "imposible, o error al cargar el DOSMRG. Programa detenido".

En este caso, podemos hacer dos cosas:

1) Eliminar la linea anterior y resignarnos a no tener memoria superior.

2) Mas elegante: buscar al culpable y reordenar la carga. El posible
culpable es que Windows,necesita "al menos" 4 Kbs en cada region de memoria superior (UMB). Pensemos que en la configuracion de  memoria descrita anteriormente, tenemos dos regiones (de B000-B7FF y C800-DFFF). Antes de entrar a Windows,debemos "ver" en MSDOS puro al menos 4 Ks libres en cada una de ellas.

El punto 2) es muy sencillo en la configuracion que he descrito antes. Pero en maquinas con varias ROM BIOS (scsi, red, etc...) puede ser un poquillo mas complicado, y a veces, por ejemplo, no cargar el keyb en alta a proposito, para dejar esos 4 Ks. O bien cargarlo (forzado) en otra region. Este ultimo tema, lo dejo para un articulo mas profundo sobre el tema.

*** Me queda pendente: (que intentaré poner esta tarde en este mismo hilo), el hacerme un programita en ensamblador y enviarosle, que os informe de las ROM BIOS de la maquina vuestra, donde empiezan y cuanto ocupan.

Con la informacion de ese programa, puedo realizar configuraciones "a medida" para cualquiera de vosotros que lo necesite.


Volver a Artículos y FAQs

 

     
 

Volver arriba Volver arriba

© 1997-2008 Duiops (http://www.duiops.net)
Prohibida la reproducción parcial o total de los textos o las imágenes

Para comentarios, usa las direcciones e-mail de contacto.