Speicher Probleme unter MS DOS bei neuen Rechner
Speicher Probleme unter MS DOS bei neuen Rechner
Hallo Leute.
Wir haben hier in der Firma ein Problem was uns schon seid längerem zu denken gibt. Ich muss da mal zum allgemeinen Verständnis weiter auholen:
Wir benötigen hier stink normale Rechner die wir mit MS DOS 6.22 und einer speziellen Software von uns laufen lassen.
Die brauchen:
- 2x Serielle Schnittstellen
- 1x parrallel
- min. 1 x PS/2 für die Tastattur
Alles weitere wie Prozessorleistung, Arbeitsspreicher, GraKa, Festplatte usw. ist nebensächlich, da das System durch DOS und unsere Software kaum gefordert wird. Aufgrund des Vormarsches von USB und die Weiterentwicklung der Motherboards sind solche Rechner nur noch schwer zu finden. Die letzten Rechner waren allesammt von Dell, die uns aber mittlerweile dies auch nicht mehr liefern können. Meistes fehlt dann eine serielle Schnittstelle, oder es gibt kein PS/2 mehr.
Nun haben wir uns mit Alternate kurzgeschlossen. Die können uns als einzigste die Rechner bauen. Nun haben wir knapp 30 nagelneue Rechner im Lager stehen, die allesamt nicht laufen. Die Rechner haben volgende Daten: GIGABYTE GA-8IPE1000-G Mainboard mit 256 MB DDR RAM.
Zum eigendlichen Problem: Zuerst partionieren wir die Festplatte mit Partion Magic 8.0 neu. Wir legen eine neue FAT Partition mit 2.047,3 MB an. Mehr brauchen wir auch nicht. Anschlissen spielen wir MS DOS 6.22 auf. Der Rechner ist danach voll funktionsfähig ohne Probleme oder Einschränkungen. Die Config.sys und Autoexec.bat enthalten folgende Zeilen:
Config.sys:
DEVICE=C:\DOS\SETVER.EXE
DEVICE=C:\DOS\HIMEM.SYS
DOS=HIGH
COUNTRY=049,850,C:\DOS\COUNTRY.SYS
DEVICE=C:\DOS\DISPLAY.SYS CON=(EGA,,1)
FILES=30
Autoexec.bat:
C:\DOS\SMARTDRV.EXE /X
@ECHO OFF
PROMPT $p$g
PATH C:\DOS
SET TEMP=C:\DOS
MODE CON CODEPAGE PREPARE=((850) C:\DOS\EGA.CPI)
MODE CON CODEPAGE SELECT=850
KEYB GR,,C:\DOS\KEYBOARD.SYS
Nun installieren wir unsere Software. Diese tauscht während der Installationsroutine die Config.sys und Autoexec.bat gegen eigene aus, die wie folgt lauten:
Config.sys:
REM Part #570062B
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE 2800 RAM
DOS=HIGH,UMB
FILES=20
Autoexec.bat:
@echo off
REM Part #570001A
PROMPT $l$p$g
PATH c:\dos;c:\;c:\cirrus\pc
CD \CIRRUS\PC
DOSKEY
KEYB GR
PROISAMD /Ib:36 /Ie:1544
START
Wenn wir den Rechner nun neu booten erhalten wir bei der abarbeitung der Config.sys folgende Fehlermeldung:
WARNING: Unable to set page frame base adress – EMS unavailable
Das System hält dann für kurze Zeit an und arbeitet dann weiter die Config.sys und Autoexec.bat ab. Diese Fehlermeldung müssen wir weg haben!
Der Fehler wird von der Zeile 3 in der Config.sys verursacht. Wir haben dann mal die Erweiterung „2800 RAM“ gegen „noems“ ausgetauscht. Ergebnis war, dass zwar die Fehlermeldung verschwunden war, unsere Rechner dann aber im Programm selber mit der Fehlermeldung „out of memory in line tralala“ ausgestiegen sind. Unsere Software wird dann komplett geschlossen und wir haben wieder den DOS-Prompt vor uns. Dies passiert aber erst nach eine gewissen Zeit, wenn schon viele Daten in den Speicher geschaufelt wurden.
Dann haben wir die neue Config.sys gegen die originale von DOS mit den benötigten Änderungen ausgetauscht. Auch das verhinderte die Fehlermeldung beim booten, trotzdem hatten wir weiter die Ausfälle im RUN der Software.
Nun stehen wir vor dem riesen Problem, dass wir dringend neue Rechner brauchen, wir aber keine lauffähigen haben. Habt ihr eine Ahnung wie ich das Problem in der Griff bekommen könnte?
Vielen Dank für die Unjterstützung.
René
Wir haben hier in der Firma ein Problem was uns schon seid längerem zu denken gibt. Ich muss da mal zum allgemeinen Verständnis weiter auholen:
Wir benötigen hier stink normale Rechner die wir mit MS DOS 6.22 und einer speziellen Software von uns laufen lassen.
Die brauchen:
- 2x Serielle Schnittstellen
- 1x parrallel
- min. 1 x PS/2 für die Tastattur
Alles weitere wie Prozessorleistung, Arbeitsspreicher, GraKa, Festplatte usw. ist nebensächlich, da das System durch DOS und unsere Software kaum gefordert wird. Aufgrund des Vormarsches von USB und die Weiterentwicklung der Motherboards sind solche Rechner nur noch schwer zu finden. Die letzten Rechner waren allesammt von Dell, die uns aber mittlerweile dies auch nicht mehr liefern können. Meistes fehlt dann eine serielle Schnittstelle, oder es gibt kein PS/2 mehr.
Nun haben wir uns mit Alternate kurzgeschlossen. Die können uns als einzigste die Rechner bauen. Nun haben wir knapp 30 nagelneue Rechner im Lager stehen, die allesamt nicht laufen. Die Rechner haben volgende Daten: GIGABYTE GA-8IPE1000-G Mainboard mit 256 MB DDR RAM.
Zum eigendlichen Problem: Zuerst partionieren wir die Festplatte mit Partion Magic 8.0 neu. Wir legen eine neue FAT Partition mit 2.047,3 MB an. Mehr brauchen wir auch nicht. Anschlissen spielen wir MS DOS 6.22 auf. Der Rechner ist danach voll funktionsfähig ohne Probleme oder Einschränkungen. Die Config.sys und Autoexec.bat enthalten folgende Zeilen:
Config.sys:
DEVICE=C:\DOS\SETVER.EXE
DEVICE=C:\DOS\HIMEM.SYS
DOS=HIGH
COUNTRY=049,850,C:\DOS\COUNTRY.SYS
DEVICE=C:\DOS\DISPLAY.SYS CON=(EGA,,1)
FILES=30
Autoexec.bat:
C:\DOS\SMARTDRV.EXE /X
@ECHO OFF
PROMPT $p$g
PATH C:\DOS
SET TEMP=C:\DOS
MODE CON CODEPAGE PREPARE=((850) C:\DOS\EGA.CPI)
MODE CON CODEPAGE SELECT=850
KEYB GR,,C:\DOS\KEYBOARD.SYS
Nun installieren wir unsere Software. Diese tauscht während der Installationsroutine die Config.sys und Autoexec.bat gegen eigene aus, die wie folgt lauten:
Config.sys:
REM Part #570062B
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE 2800 RAM
DOS=HIGH,UMB
FILES=20
Autoexec.bat:
@echo off
REM Part #570001A
PROMPT $l$p$g
PATH c:\dos;c:\;c:\cirrus\pc
CD \CIRRUS\PC
DOSKEY
KEYB GR
PROISAMD /Ib:36 /Ie:1544
START
Wenn wir den Rechner nun neu booten erhalten wir bei der abarbeitung der Config.sys folgende Fehlermeldung:
WARNING: Unable to set page frame base adress – EMS unavailable
Das System hält dann für kurze Zeit an und arbeitet dann weiter die Config.sys und Autoexec.bat ab. Diese Fehlermeldung müssen wir weg haben!
Der Fehler wird von der Zeile 3 in der Config.sys verursacht. Wir haben dann mal die Erweiterung „2800 RAM“ gegen „noems“ ausgetauscht. Ergebnis war, dass zwar die Fehlermeldung verschwunden war, unsere Rechner dann aber im Programm selber mit der Fehlermeldung „out of memory in line tralala“ ausgestiegen sind. Unsere Software wird dann komplett geschlossen und wir haben wieder den DOS-Prompt vor uns. Dies passiert aber erst nach eine gewissen Zeit, wenn schon viele Daten in den Speicher geschaufelt wurden.
Dann haben wir die neue Config.sys gegen die originale von DOS mit den benötigten Änderungen ausgetauscht. Auch das verhinderte die Fehlermeldung beim booten, trotzdem hatten wir weiter die Ausfälle im RUN der Software.
Nun stehen wir vor dem riesen Problem, dass wir dringend neue Rechner brauchen, wir aber keine lauffähigen haben. Habt ihr eine Ahnung wie ich das Problem in der Griff bekommen könnte?
Vielen Dank für die Unjterstützung.
René
- ChrisR3tro
- Administrator
- Beiträge: 1711
- Registriert: Mo 7. Mär 2005, 23:33
- Wohnort: NRW
- Kontaktdaten:
Hallo,
mein Vorschlag wäre, einfach die Frame Base Address nicht mit anzugeben.
Ein "DEVICE=C:\DOS\EMM386.EXE RAM" sollte dafür reichen, es sei denn das Programm was ihr einsetzt erwartet an einer bestimmten Stelle im Speicher EMS Frames.
Ausprobieren kann aber nicht schaden. :-)
Zu Eurem Legacy-Rechner Problem: Ich kann mir nicht vorstellen, daß es so schwer sein soll, Rechner mit serieller Schnittstelle und PS/2 Port zu finden. OK, bestimmte, große Firmen haben die mit großer Wahrscheinlichkeit schon wegrationalisiert. Aber es muß doch EDV-Firmen geben, die noch "normale" Rechner bauen. Wenn man heutzutage Boards von ASUS oder Gigabyte kauft, sind in aller Regel auch noch die älteren Schnittstellen dabei, wie z.B. auch bei meinem neuen AMD-Rechner. Gerade PS/2 ist auch noch sehr verbreitet, wenn's nicht gerade ein Notebook sein soll.
Gruß,
locutus
mein Vorschlag wäre, einfach die Frame Base Address nicht mit anzugeben.
Ein "DEVICE=C:\DOS\EMM386.EXE RAM" sollte dafür reichen, es sei denn das Programm was ihr einsetzt erwartet an einer bestimmten Stelle im Speicher EMS Frames.
Ausprobieren kann aber nicht schaden. :-)
Zu Eurem Legacy-Rechner Problem: Ich kann mir nicht vorstellen, daß es so schwer sein soll, Rechner mit serieller Schnittstelle und PS/2 Port zu finden. OK, bestimmte, große Firmen haben die mit großer Wahrscheinlichkeit schon wegrationalisiert. Aber es muß doch EDV-Firmen geben, die noch "normale" Rechner bauen. Wenn man heutzutage Boards von ASUS oder Gigabyte kauft, sind in aller Regel auch noch die älteren Schnittstellen dabei, wie z.B. auch bei meinem neuen AMD-Rechner. Gerade PS/2 ist auch noch sehr verbreitet, wenn's nicht gerade ein Notebook sein soll.
Gruß,
locutus
Das weglassen der Frame Base Adress hatte ich schon probiert.
Funktioniert leider auch nicht.
Wie gesagt die neueren Rechner die man kaufen kann haben nur noch USB anstelle von PS/2. Oder wenn sie PS/2 haben haben die nur eine Serielle schnittstelle. Wir brauchen aber dringend zwei. Und wir haben da auch nicht viel Spielraum zu testen ob da evtl. noch eine serielle Schnittstellen auf dem Motherboard vorgesehen ist. Ausserdem hatten wir ja dann mit Alternate jmd. gefunden der uns die Rechner in großer Stückzahl liefern kann. Aber wie gesagt, die laufen leider nicht.
Funktioniert leider auch nicht.
Wie gesagt die neueren Rechner die man kaufen kann haben nur noch USB anstelle von PS/2. Oder wenn sie PS/2 haben haben die nur eine Serielle schnittstelle. Wir brauchen aber dringend zwei. Und wir haben da auch nicht viel Spielraum zu testen ob da evtl. noch eine serielle Schnittstellen auf dem Motherboard vorgesehen ist. Ausserdem hatten wir ja dann mit Alternate jmd. gefunden der uns die Rechner in großer Stückzahl liefern kann. Aber wie gesagt, die laufen leider nicht.
Als „EDV-Experte“ hast du natürlich schon http://support.microsoft.com/kb/75592/en-us und
http://support.microsoft.com/kb/78557/en-us gelesen.
http://support.microsoft.com/kb/78557/en-us gelesen.
- ChrisR3tro
- Administrator
- Beiträge: 1711
- Registriert: Mo 7. Mär 2005, 23:33
- Wohnort: NRW
- Kontaktdaten:
- CptKlotz
- Admin a.D.
- Beiträge: 2405
- Registriert: Mo 7. Mär 2005, 23:36
- Wohnort: Dorsten
- Kontaktdaten:
Hallo René
On other machines, E000 may be excluded by default. If you think the E000 range is available, you can explicitly include the E000 segment by adding I=E000-EFFF to the DEVICE=EMM386.EXE command in the CONFIG.SYS file. "
Nach dem, was in dem von bttr geposteten Link steht, kann es also durchaus funktionieren. Ob es dann tatsächlich funktioniert, wirst Du ausprobieren müssen. :-)
Gib doch einfach mal nach dem Booten auf der Kommandozeile "mem" ein. Dann siehst Du eine Übersicht, was aktuell an Speicher vorhanden ist. Nicht wundern, wenn an EMS "nur" 64 MB vorhanden sind. Mehr kann DOS 6.22 nicht verwalten.
Auf die Gefahr hin, daß ich Dir nichts neues erzähle:
DOS 6.22 hat übrigens auch die HELP-Funktion, in der man vieles über Funktionen und Befehle wie EMM386 und MEM nachlesen kann.
Du kannst entweder HELP <Befehl> eingeben oder einfach nur HELP, dann kommst Du ins Menü und kannst ein Thema auswählen.
Macht das DOS-Handbuch fast schon überflüssig :-)
Gruß,
Stephan
"EMM368.EXE excludes E000 on MCA machines (IBM PS/2s) since the E000 segment has the system ROM.Kann das so funktionieren?
On other machines, E000 may be excluded by default. If you think the E000 range is available, you can explicitly include the E000 segment by adding I=E000-EFFF to the DEVICE=EMM386.EXE command in the CONFIG.SYS file. "
Nach dem, was in dem von bttr geposteten Link steht, kann es also durchaus funktionieren. Ob es dann tatsächlich funktioniert, wirst Du ausprobieren müssen. :-)
Gib doch einfach mal nach dem Booten auf der Kommandozeile "mem" ein. Dann siehst Du eine Übersicht, was aktuell an Speicher vorhanden ist. Nicht wundern, wenn an EMS "nur" 64 MB vorhanden sind. Mehr kann DOS 6.22 nicht verwalten.
Auf die Gefahr hin, daß ich Dir nichts neues erzähle:
DOS 6.22 hat übrigens auch die HELP-Funktion, in der man vieles über Funktionen und Befehle wie EMM386 und MEM nachlesen kann.
Du kannst entweder HELP <Befehl> eingeben oder einfach nur HELP, dann kommst Du ins Menü und kannst ein Thema auswählen.
Macht das DOS-Handbuch fast schon überflüssig :-)
Gruß,
Stephan
“It is impossible to defeat an ignorant man in argument.” (William G. McAdoo)
Ja das eine f hatte ich vergessen hin zu schreiben ;)
Das Problem ist ich kann das ganze nicht zu 100 % testen. Die Rechner hängen an Immulogietester, die den Rechner dann mit den Daten versorgen. Ich habe schon alles versucht, jedoch schaffe ich es hier nicht die Rechner zum aussteigen zu bringen. Um das richtig zu testen müsste ich jetzt den Rechner nehmen und zu einer unseren Kunden schicken. Die haben eine viel höherer Auslastung als wir hier je simulieren können. Problem ist, wenn der Rechner aussteigt kostet das den Kunden Geld (würde jetzt zu weit gehen wenn ich das erläutern würde, was, wie , wann warum). Ausserdem möchte kein Kunde Versuchskanninchen spielen. Im Endeffekt muss ich es zwangsläufig so machen. Deshalb hole ich mir gerne erstaml von euch ein "OK" ein. Wäre doof wenn ich den Rechner raus schicke und dann einer von euch sagt:"Ja, das hätte ich dir gleich sagen können" ;)
Bei mem spuckt der mir unter anderem folgendes aus:
Extended (XMS) : 65 k
Total Expanded (EMS): 33,152
Free Expanded (EMS): 31,584
Ist das so korrekt? Vielleciht eine blöde Frage, aber ich bin nicht allzu Fit in DOS.
Die EMM386 HElp habe ich mir schon durch gelesen, aber hat mir auch nicht wiklich weitrer geholfen
Das Problem ist ich kann das ganze nicht zu 100 % testen. Die Rechner hängen an Immulogietester, die den Rechner dann mit den Daten versorgen. Ich habe schon alles versucht, jedoch schaffe ich es hier nicht die Rechner zum aussteigen zu bringen. Um das richtig zu testen müsste ich jetzt den Rechner nehmen und zu einer unseren Kunden schicken. Die haben eine viel höherer Auslastung als wir hier je simulieren können. Problem ist, wenn der Rechner aussteigt kostet das den Kunden Geld (würde jetzt zu weit gehen wenn ich das erläutern würde, was, wie , wann warum). Ausserdem möchte kein Kunde Versuchskanninchen spielen. Im Endeffekt muss ich es zwangsläufig so machen. Deshalb hole ich mir gerne erstaml von euch ein "OK" ein. Wäre doof wenn ich den Rechner raus schicke und dann einer von euch sagt:"Ja, das hätte ich dir gleich sagen können" ;)
Bei mem spuckt der mir unter anderem folgendes aus:
Extended (XMS) : 65 k
Total Expanded (EMS): 33,152
Free Expanded (EMS): 31,584
Ist das so korrekt? Vielleciht eine blöde Frage, aber ich bin nicht allzu Fit in DOS.
Die EMM386 HElp habe ich mir schon durch gelesen, aber hat mir auch nicht wiklich weitrer geholfen
- CptKlotz
- Admin a.D.
- Beiträge: 2405
- Registriert: Mo 7. Mär 2005, 23:36
- Wohnort: Dorsten
- Kontaktdaten:
Sieht soweit gut aus.Bei mem spuckt der mir unter anderem folgendes aus:
Extended (XMS) : 65 k
Total Expanded (EMS): 33,152
Free Expanded (EMS): 31,584
Wenn der Programmabsturz am fehlenden EMS-Speicher lag, könnte es jetzt gehen.
Fraglich ist jetzt nur noch, wieviel konventionellen Speicher das Programm braucht. Da Du aber nicht wahnsinnig viele Treiber (CD-Rom, Maus, Soundkarte etc.) lädst, ist das vielleicht eh unkritisch.
Gruß,
Stephan
“It is impossible to defeat an ignorant man in argument.” (William G. McAdoo)
- CptKlotz
- Admin a.D.
- Beiträge: 2405
- Registriert: Mo 7. Mär 2005, 23:36
- Wohnort: Dorsten
- Kontaktdaten:
Was die 2800 bewirkt, steht doch auch in der "HELP" von DOS.
Es gibt dort zwei Kapitel:
Das zu EMM386 (--> als Befehl auf der Kommandozeile; erstmal uninteressant)
Das zu EMM386.EXE (--> als Speichermanager in der CONFIG.SYS)
Letzteres ist das Kapitel, welches für Dich interessant ist. Hier kannst Du's alternativ auch nachlesen (google ist dein Freund...):
http://users.cybercity.dk/~bse26236/bat ... MM386S.HTM
memory
Specifies the maximum amount of extended memory (in kilobytes) that you want EMM386 to provide as expanded/Virtual Control Program Interface (EMS/VCPI) memory. [...]
Die 2800 ist also ganz einfach die Menge an EMS-Speicher, die zur Verfügung gestellt wird. Der bereitgestellte EMS-Speicher wird damit auf 2800 kbyte begrenzt; der Rest des vorhandenen Speichers wird als XMS zur Verfügung gestellt.
Ohne die 2800 stellt DOS die maximalen 32 MB an EMS zur Verfügung (hatte mich oben geirrt, DOS verwaltet 64 MB Speicher, aber nur 32 MB EMS - zumindest mit EMM386).
Die Frage ist jetzt einfach, welche Speicherkonfiguration Euer Anwendungsprogramm erwartet. Es ist natürlich gut möglich, daß es einen speziellen Grund für die 2,8 MB EMS gibt.
Das wird Dir aber hier niemand sagen können (wie auch...), sondern nur der Autor oder die Dokumentation Eurer Software.
Irgendwer in der Firma wird ja wissen müssen, welche Arbeitsbedingungen die Software braucht.
Alles andere sind Vermutungen. Wenn die Software aber, so wie ich Dich verstehe, beim Kunden laufen soll, mußt Du SICHER wissen, unter welchen Bedingungen ein stabiler Betrieb möglich ist!
Gruß,
Stephan
Es gibt dort zwei Kapitel:
Das zu EMM386 (--> als Befehl auf der Kommandozeile; erstmal uninteressant)
Das zu EMM386.EXE (--> als Speichermanager in der CONFIG.SYS)
Letzteres ist das Kapitel, welches für Dich interessant ist. Hier kannst Du's alternativ auch nachlesen (google ist dein Freund...):
http://users.cybercity.dk/~bse26236/bat ... MM386S.HTM
memory
Specifies the maximum amount of extended memory (in kilobytes) that you want EMM386 to provide as expanded/Virtual Control Program Interface (EMS/VCPI) memory. [...]
Die 2800 ist also ganz einfach die Menge an EMS-Speicher, die zur Verfügung gestellt wird. Der bereitgestellte EMS-Speicher wird damit auf 2800 kbyte begrenzt; der Rest des vorhandenen Speichers wird als XMS zur Verfügung gestellt.
Ohne die 2800 stellt DOS die maximalen 32 MB an EMS zur Verfügung (hatte mich oben geirrt, DOS verwaltet 64 MB Speicher, aber nur 32 MB EMS - zumindest mit EMM386).
Die Frage ist jetzt einfach, welche Speicherkonfiguration Euer Anwendungsprogramm erwartet. Es ist natürlich gut möglich, daß es einen speziellen Grund für die 2,8 MB EMS gibt.
Das wird Dir aber hier niemand sagen können (wie auch...), sondern nur der Autor oder die Dokumentation Eurer Software.
Irgendwer in der Firma wird ja wissen müssen, welche Arbeitsbedingungen die Software braucht.
Alles andere sind Vermutungen. Wenn die Software aber, so wie ich Dich verstehe, beim Kunden laufen soll, mußt Du SICHER wissen, unter welchen Bedingungen ein stabiler Betrieb möglich ist!
Gruß,
Stephan
“It is impossible to defeat an ignorant man in argument.” (William G. McAdoo)
So, wir haben die Lösung des Problems gefunden.
Ein Techiker von uns gab mir den entscheidenden Tip mal ein wenig im BIOS rum zu spielen.
Unter "Integrated Peripherals" mussten wie die beiden Einträge "USE Mouse Suppoprt" und "USB Keyboard Support" auf Disabled setzten.
Danach lief alles einwandfrei. Beim nachgoogeln stellte sich heraus, dass das ein bekanntes Problem bei dem Typ Mainboard ist. Hätte ich vorher mal googeln sollen, dann hätte ich mir viel Arbeit erspart ;)
Naja, danke für eure Hilfe.
PS: Spitzen Board was ihr hier habt ;D
Ein Techiker von uns gab mir den entscheidenden Tip mal ein wenig im BIOS rum zu spielen.
Unter "Integrated Peripherals" mussten wie die beiden Einträge "USE Mouse Suppoprt" und "USB Keyboard Support" auf Disabled setzten.
Danach lief alles einwandfrei. Beim nachgoogeln stellte sich heraus, dass das ein bekanntes Problem bei dem Typ Mainboard ist. Hätte ich vorher mal googeln sollen, dann hätte ich mir viel Arbeit erspart ;)
Naja, danke für eure Hilfe.
PS: Spitzen Board was ihr hier habt ;D
- ChrisR3tro
- Administrator
- Beiträge: 1711
- Registriert: Mo 7. Mär 2005, 23:33
- Wohnort: NRW
- Kontaktdaten: