XMS onder DOS vraagje.

Status
Niet open voor verdere reacties.

Eagle Creek

Verenigingslid
Lid geworden
3 okt 2002
Berichten
26.322
Ja, het is inderdaad een 'huiswerk'-vraagje (niet echt, is opdracht maar het idee is hetzelfde ja ;)).

Het verhaal is als volgt:
Vroeger is er ook gewerkt met rekensoftware (De Wereld van getallen (onder DOS)), maar het grote probleem was dat het programma binnen MS-DOS het XMS geheugen (met 1024 KB) moest aanspreken en er minimaal 600 kbyte geheugen beschikbaar moest zijn. Uiteraard wordt dit probleem nu weer verwacht.

Dus, dat is het probleem.. Ik zit nu in DOS 6.22.

Het XMS geheugen ken ik (Extended Memory Specification) om het >1 MB geheugen aan te spreken.
Voor zover ik weet kun je dit regelen in HIMEM.sys. Wanneer ik dit bestand open in Win98SE dan krijg ik alle info te zien, welke volgens mij teveel is. Dit kan ik dus ook niet 'veilig' editten.

Bij het starten van DOS krijg ik de mededeling 'HIMEM is bezig het extended memory te testen ... gereed'. Dit wekt bij mij het vermoeden dat dit in orde is.

Om het XMS geheugen te krijgen heb ik memmaker.exe gebruikt. De beschrijving dan dit programma zegt het volgende te doen:
Memmaker optimaliseert uw systeemgeheugen door geheugenresidente programma's en stuurprogramma's in het Upper Memory Area te laden. Hierdoor komt conventioneel geheugen beschikbaar voor toepassingen.
Memmaker zie ik nergens over XMS praten.

Als ik nu kijk bij het commando MEM zie ik dat er:
617 K conventioneel vrij is
90 K upper vrij is
0 K gereserveerd is
62.675 K XMS (Extended) vrij is.
Ook dit wekt bij mij het vermoeden dat het in orde is.
Verder zie ik nog staan:
Maximum omvang uitvoerbaar programma 617 K (welke dus meer is dan de 600 kbyte vereiste)
Maxmum beschikbaar upper memory block: 74 K
MS-Dos aanwezig in HMA.

Echter; omdat memmaker niet over XMS praat, alleen over vrij conventioneel (wat nu wel >600 is) betwijfel ik toch of DOS het XMS-geheugen wel aanspreekt.

De documentatie die ik hier voor me heb liggen spreekt erover dat DOS-> mem extended met 0 bytes free moet weergeven, en het XMS ongeveer evenveel als het conventioneel. Máár, ik heb dus 'Extended (XMS)' staan. Dat is volgens mij dan één ding.

Ik kreeg te horen dat ik de schakeloptie /X kon gebruiken om het programma in het extended geheugen te plaatsen maar dit lijkt niet te werken.
Kan iemand mij vertellen of ik nu goed zit of niet?
 
Laatst bewerkt:
Aha :))).

Ik krijg nu een overzicht van modules die geheugen gebruiken onder 1 MB.

Ik krijg hier:

Naam | Totaal = Conventioneel + Upper Memory

Bij naam krijg ik MSDOS, himem, emm386, command, setver, display en smartdrv te zien. Daarachter staat dan een waarde óf bij conventioneel óf bij upper.
Als laatste onderdeel heb ik.

Beschikb - 732.520 (707 k) | 631.568 (617k) | 91.929 (90 k).

Heb je hier iets aan?
 
Ik moet weer even diep nadenken hoor.

emm386.exe ook geladen??

In je config.sys zou dat er ongeveer zo uit moeten zien:
device=c:\dos\himem.sys
device=c:\dos\emm386.exe
dos=high,umb
 
Overigens was QEMM memory manager stukken beter dan het standaard MS spul. Het MS spul haalde meestal niet meer dan 617kb (als je veel 'vogelde' haalde je de 624kb) QEMM haalde probleemloos 637kb. Het lijkt nu niet meer interessant, maar destijds kon die paar kb het verschil betekenen tussen snel en traag werken of het wel of niet starten van programma's

http://www.answers.com/topic/qemm
 
Laatst bewerkt:
maestro12 zei:
Ik moet weer even diep nadenken hoor.

emm386.exe ook geladen??

In je config.sys zou dat er ongeveer zo uit moeten zien:
device=c:\dos\himem.sys
device=c:\dos\emm386.exe
dos=high,umb

Hoi Maestro,

emm is inderdaad geladen. Mijn config.sys (c:\config.sys) ziet er als volgt uit:

DEVICE=C:\WINDOWS\setver.exe
DEVICE=C:\WINDOWS\HIMEM.SYS
DOS=HIGH

device=C:\WINDOWS\COMMAND\display.sys con=(ega,,1)
Country=031,850,C:\WINDOWS\COMMAND\country.sys

Jouw toevoeg (,umb) kan ik niet terugvinden.

maestro12 zei:
Overigens was QEMM memory manager stukken beter dan het standaard MS spul. Het MS spul haalde meestal niet meer dan 617kb (als je veel 'vogelde' haalde je de 624kb) QEMM haalde probleemloos 637kb. Het lijkt nu niet meer interessant, maar destijds kon die paar kb het verschil betekenen tussen snel en traag werken of het wel of niet starten van programma's

http://www.answers.com/topic/qemm
Ga ik nog even naar kijken, altijd leuk :).
Good old times he :D.
 
Laatst bewerkt:
EMM386.EXE is an Extended Memory Manager used with Intel 80386 and above processors. This program allows MS-DOS computers to have access to memory above 640KB.

Kijk; dat klinkt goed :D. Maar het geladen zijn van dat programma, betekent dit automatisch dat het werkt?
Ik weet niet goed hoe ik het moet testen namelijk. Het genoemde programma is nergens te vinden op internet (ik vermoed dat het verzonnen is).

XMS requires HIMEM.SYS as an external memory manager (loaded in config.sys

Dat zou nu dus goed moeten zijn denk ik?

Even een hopin: Windows 98SE staat op dezelfde partitie. Wanneer ik daar bij MSCONFIG kijk zie ik een vlaggetje voor de 'himem.sys' en voor 'dos=high'. Kan dit bij DOS beïnvloeden?
and will generally be remarked by Windows automatically.

Want de DEVICE=C:\WINDOWS\HIMEM.SYS is wel aanwezig natuurlijk. Het ,umb commando zal ik nog toevoegen.

Duidelijke sites trouwens, geen poespas!

Kijk, als ik eea lees en van jou hoor dan zou ik denken dat het goed zit. Ik zal dan de ,umb nog toevoegen maar verder is dat ok dan.
Feit blijft dat ik twijfel vanwege de Windowsvlag, en dat ik het niet kan testen (of niet zou weten hoe). Vandaar dat ik hier even langskwam :).

Waar ik nog over twijfel, moet ik deze nog toepassen. Lijkt me wel?:
DEVICE=C:\WINDOWS\EMM386.EXE NOEMS
The EMM386 line loads the extended memory manager, however note that some MS-DOS games have problems with extended memory and will not run without the NOEMS statement.
 
Laatst bewerkt:
Tsja, NOEMS dat was altijd 'vogelen' of je het wel of niet nodig had. Ik had zelf een opstartmenu gemaakt in config.sys/autoexec.bat zodat daar bij het opstarten de keuze in had.
Er zijn trouwens nog meer schakelopties in mogelijk http://support.microsoft.com/?kbid=78557

Als het extended geheugen aanwezig is mag (moet) je aannemen dat het werkt. Door het commando mem/c (/p) kan je in ieder geval zien dat het aanwezig is. Voor nog meer 'mem' opties type mem/?

Ik mag aannemen dat je DOS kaal start, zolang je dus het config.sys en autoexec.bat gebruikt dat in de root van c: staat heeft win98 er niets mee van doen.
 
maestro12 zei:
Tsja, NOEMS dat was altijd 'vogelen' of je het wel of niet nodig had. Ik had zelf een opstartmenu gemaakt in config.sys/autoexec.bat zodat daar bij het opstarten de keuze in had.
Er zijn trouwens nog meer schakelopties in mogelijk http://support.microsoft.com/?kbid=78557
If the DEVICE=EMM386.EXE in the CONFIG.SYS file contains the HIGHSCAN parameter, remove HIGHSCAN from the command, save the CONFIG.SYS file, and restart your computer. (HIGHSCAN cannot be used on some computers.)
Heerlijk dat oude troubleshooten. Als je dit probeert werkt het, misschien niet. Zoniet; tja.. Danniet :D.
Ik denk niet dat een heel opstartmenu nodig is maar ik zal het eens doorlezen (toch leuk).


maestro12 zei:
Als het extended geheugen aanwezig is mag (moet) je aannemen dat het werkt. Door het commando mem/c (/p) kan je in ieder geval zien dat het aanwezig is. Voor nog meer 'mem' opties type mem/?

Ik mag aannemen dat je DOS kaal start, zolang je dus het config.sys en autoexec.bat gebruikt dat in de root van c: staat heeft win98 er niets mee van doen.

De mem/? had ik uitgeprobeerd nadat jij mij de /c/p gaf. Zoals je ziet staat het er wel bij, alleen niet bij de zogezegd actieve processen. Vandaar dat ik niet weet of een programma naar het XMS toegaat.
Daarom dacht ik dat ik DEVICE=C:\WINDOWS\EMM386.EXE NOEMS nog toe moest voegen. Ik ga het sowieso morgen proberen.

Ik heb eerst DOS geïnstalleerd op C (C:\DOS) en daarna Windows 98SE (C:\Windows). Verder geen aanpassingen gedaan. In Win98 heb ik het opstartmenu ingeschakeld zodat ik nu bij het opstarten van de PC kan kiezen voor Windows (/VM/etc..), 'Windows-Dos' en vorige dos-versies, welke dan DOS 6.22 oplevert (ver = 6.22).
 
Laatst bewerkt:
XP_PC zei:
Heerlijk dat oude troubleshooten. Als je dit probeert werkt het, misschien niet. Zoniet; tja.. Danniet :D.

En herstarten ging sneller dan nu :D


Ik heb eerst DOS geïnstalleerd op C (C:\DOS) en daarna Windows 98SE (C:\Windows). Verder geen aanpassingen gedaan. In Win98 heb ik het opstartmenu ingeschakeld zodat ik nu bij het opstarten van de PC kan kiezen voor Windows (/VM/etc..), 'Windows-Dos' en vorige dos-versies, welke dan DOS 6.22 oplevert (ver = 6.22).

Om te controleren in welke versie je bezig bent kan gewoon 'ver' typen.
 
Je kunt trouwens, als je de drivers na de himem.sys laadt,
in plaats van DEVICE= blablabla.com, ook DEVICEHIGH = blablabla gebruiken.

Als er dan plaats genoeg is, wordt de driver ook in high memory geladen.

Hetzelfde kun je ook doen als je misschien nog iets moet starten vanuit autoexec.bat.

bv in plaats van mouse.com LH mouse.com.

Kan ook zomaar weer wat geheugen schelen ;)

Volgens mij was het ook zo dat als je bij emm386 de optie /NOEMS gebruikte, je geheugen als XMS werd gebruikt, en zonder de optie als EMS (of althans een deel ervan)

Maar dan moet ik ook even diem in mijn verouderde brein gaan graven hoor ;) :D


PS: In plaats van NOEMS kon je meen ik ook een getal plaatsen om aan te geven hoeveel geheugen als EMS en ahoeveel als XMS gebruikt moest worden.
 
Laatst bewerkt:
buick zei:
Je kunt trouwens, als je de drivers na de himem.sys laadt,
in plaats van DEVICE= blablabla.com, ook DEVICEHIGH = blablabla gebruiken.

Als er dan plaats genoeg is, wordt de driver ook in high memory geladen.

Hetzelfde kun je ook doen als je misschien nog iets moet starten vanuit autoexec.bat.

bv in plaats van mouse.com LH mouse.com.

Kan ook zomaar weer wat geheugen schelen ;)

Volgens mij was het ook zo dat als je bij emm386 de optie /NOEMS gebruikte, je geheugen als XMS werd gebruikt, en zonder de optie als EMS (of althans een deel ervan)

Maar dan moet ik ook even diem in mijn verouderde brein gaan graven hoor ;) :D


PS: In plaats van NOEMS kon je meen ik ook een getal plaatsen om aan te geven hoeveel geheugen als EMS en ahoeveel als XMS gebruikt moest worden.


Ga ik ook proberen!
Met getallen en zulke details puzzel ik maar niet nu. Het ging erom dat het XMS-geheugen aangesproken kon worden. Als ik later wat meer tijd heb zoek ik het nog wel eens uit, gewoon leuk om te weten :).

Enne; dat LH staat voor 'load high' ofzo?
 
XP_PC zei:
Enne; dat LH staat voor 'load high' ofzo?

Inderdaad :)
Volgens mij kun je zelfs LOADHIGH volledig ook gebruiken, maar LH is korter ;)
 
In een dos box onder Win98 kun je toch ook allerlei geheugenwaarden instellen, werkt dat niet handiger?

attachment.php



Vr.Gr. Egel.
 

Bijlagen

  • msdos_box_geheugen.gif
    msdos_box_geheugen.gif
    6,4 KB · Weergaven: 183
Egel zei:
In een dos box onder Win98 kun je toch ook allerlei geheugenwaarden instellen, werkt dat niet handiger?

Vr.Gr. Egel.

Het gaat om een programma onder DOS 6.22, de 'nep-dos' was geen optie :).
 
Even een ander iets.. De config.sys die ik onder Windows open is anders dan de config.sys die ik onder DOS open. Klopt dat :confused:?
 
XP_PC zei:
Even een ander iets.. De config.sys die ik onder Windows open is anders dan de config.sys die ik onder DOS open. Klopt dat :confused:?
Misschien gebruikt DOS CONFIG.DOS & AUTOEXEC.DOS? Die zie ik ook staan in C:\


Vr.Gr. Egel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan