SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: avis_phoenix en Sábado 24 de Julio de 2004, 06:05
-
HOLA!! alguien sabe como se puede hacer accesible la memoria extendida para un programa hecho en turbo c++ 3.0?, que algoritmo o que librería o como?, se debe poder pues se usa la memoria extendida desde los 90's y turbo c++ esta hecho en 1992 (o eso recuerdo), sería de mucha ayuda Gracias.
-
La memoria extendida es una caracteristica del sistema operativo MS-DOS y hasta don de se es lo mismo que hopy en dia llamariamos memoria virtual.
No hay manera de acceder a esta memoria ya que es el sistema operativo el que la administra y para el usuario incluyendo el programador, es memoria común y corriente.
Es decir el sistema operativo muestra esta memoria como parte de la memoria total del sistema, asi que cada vez que se solicita memoria el sistema operativo determina si la porcion de memoria que entregara la toma de la memoria fisica o de la extendida, esta desicion la toma de acuerdo al algoritmo de planificacion d memoria que posea el sistema operativo.
-
en realidad no, haz esta prueba sencillisima, crea un array bidimensional de 250 x 250 esto excedela memoria nucleo, y te lo avisa y te marca error y no se puede ejecutar solo por esto, sucede que si no recuerdas la memoria nucleo de ms-dos es de 64k si excedes este tamaño de memoria pues no puedes jalar el programa, sin embargo yo conozcomuchos juegos de ms-dos que te decian que para ejecutarlo tenias que usar lamemoria extendida, pues estos usaban más de los 64k de memoria, no creo que sea = que la memoria virtual actual pues la memopria extendida es la memoria ram que sobre de los 64k que usa ms-dos, y la memoria virtual es espacio del disco duro usado para simular memoria (y muy lento), es más para ms-dos hab´+ia unos discos de arranque (debes recordar) que eran especiales para quitar basura de ms-dos e iniciar con la mayorparte de lsorecursos, y había juegos que solo así jalaban, y el disco de arranque decia de opciones "con memoria extendida" y "sin memoria extendida" (algunos con cd y sin cd) y si no la jalabas con memoria extendida no jalaba el juego.
es decir que en ms-dos si tu tienes una memoria ram de 16 mb pues solo podrás acceder a 64k de esa memoria; la memoria extendida es para usar lo demás, para aprovechar los 16mb.
-
Oye Avis lee mi articulo, yo tengo un problema similar, pero creo que no necesitamos llegar a usar memoria extendida ...
Solo haría falta con usar mas de 64k ... hasta los 640 ... que entendí que no llegan a ser memoria extendida...
Despues de los 640 es memoria extendida ...
Creo
encontre algo de usar un macreo MK_FP (Ctrl F1 en Borland 3.1) para elegir la dirección de memoria que quieres que tenga la variable... pero no me convence por que no reservas memoria ... y en otro articulo leí que para usar memoria extendida habría que buscar documentación sobre quizas las interrupciones o algo que se crean al instalar HIMMEN.SYS o un administrador DOS de mem ext.
Encontré más cosas pero ahún no pude resolver el prolbema...
Agregame raulenriquesilva@hotmail.com a tu msn y seguimos en el tema, estoy preocupado por eso y por ahí encontramos más gente con problemas similares, hasta que alguien llegue a dilusidarlo.
Lee el adujnto a mi mensaje ¿Cómo usar más memoria en Borland 3.1?
-
:blink:
Recuerdo esos dían donde tenías que encajar el DOS donde pudieras para tener 600Kb de RAM para correr un juego con sonido Sound Blaster como DarkSeed. Recuerdo que la clave era activar la XMS con el himem, el EMS con el emm386, encajar el DOS=HIGH, conseguir el driver más pequeño para ratón y volar los archivos DRVSPACE, DLBSPACE para lograrlo.
P.D.
Usar XMS o EMS en estos días? Que masoquistas... :rolleyes:
-
Graicas, si conocia esa instrucción (make far point), y usas para esta un puntero lejano y es cierto me olvidaba de él, pues bueno muy probablemente se la única manera de manejar toda la memoria a tu placer, y esto "dificulta mucho" las cosas, bueno ya te agrege a mi lista de contactos espero me aceptes y espero te conectes pronto, yo normalmente estoy a las 8:00 pm hora de méxico, esperoverte, y gracias por decirme eso, y si alguein sabe algo más sería de mucha utilidad gracias.
-
No se si Turbo C++ tiene funciones que sirvan para trabajar con memoria extendida, expandida o para crear programas de 32 bits para MS-DOS.
Cualquiera de esas opciones son posibles utilizando código en ensamblador.
Para la memoria extendida generalmente se usa el controlador XMS, si te interesa ver como se hace esto en assembly, acá tenes unos ejemplos perfectos (Ejemplos.rar):
http://www.c0d3rz.com.ar/foro/viewtopic.php?t=65 (http://www.c0d3rz.com.ar/foro/viewtopic.php?t=65)
El capitulo 20 se llama 'Memoria expandida y extendida en DOS', no está el texto pero si el código. Te recomiendo mirar HayXMS.asm, VERSIXMS.ASM, XMSLIBRE.asm y UsaXMS.asm.
:comp: :ph34r: :hola: