Speicher Probleme unter MS DOS bei neuen Rechner

Konfiguration, Anwendungen, Treiber und TSRs unter DOS
Geisterfahrer

Speicher Probleme unter MS DOS bei neuen Rechner

Beitrag von Geisterfahrer »

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é
Benutzeravatar
ChrisR3tro
Administrator
Beiträge: 1987
Registriert: Mo 7. Mär 2005, 23:33
Wohnort: NRW
Kontaktdaten:

Beitrag von ChrisR3tro »

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
Geisterfahrer

Beitrag von Geisterfahrer »

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.
bttr

Beitrag von bttr »

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.
Geisterfahrer

Beitrag von Geisterfahrer »

„EDV-Experte“
lol guter Witz :)

Also hab mir mal die erste von bttr gepostete Doku angeschaut und bin nach langen probieren auf die Lösung

"DEVICE=C:\DOS\EMM386.EXE i=e000-eff"

gestossen. Die Fehlermeldung am Anfang ist erstmal weg. Nun die Frage an die Spezis hier: Kann das so funktionieren?
Benutzeravatar
ChrisR3tro
Administrator
Beiträge: 1987
Registriert: Mo 7. Mär 2005, 23:33
Wohnort: NRW
Kontaktdaten:

Beitrag von ChrisR3tro »

Auf den ersten Blick fällt erstmal auf, bei

"DEVICE=C:\DOS\EMM386.EXE i=e000-eff"

fehlt ein "f" am Ende.

Gruß,
locutus
Benutzeravatar
CptKlotz
Admin a.D.
Beiträge: 2947
Registriert: Mo 7. Mär 2005, 23:36
Wohnort: Dorsten
Kontaktdaten:

Beitrag von CptKlotz »

Hallo René
Kann das so funktionieren?
"EMM368.EXE excludes E000 on MCA machines (IBM PS/2s) since the E000 segment has the system ROM.

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)
Geisterfahrer

Beitrag von Geisterfahrer »

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
Benutzeravatar
CptKlotz
Admin a.D.
Beiträge: 2947
Registriert: Mo 7. Mär 2005, 23:36
Wohnort: Dorsten
Kontaktdaten:

Beitrag von CptKlotz »

Bei mem spuckt der mir unter anderem folgendes aus:
Extended (XMS) : 65 k
Total Expanded (EMS): 33,152
Free Expanded (EMS): 31,584
Sieht soweit gut aus.

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)
Geisterfahrer

Beitrag von Geisterfahrer »

Maus, CD-ROM und Sound lade ich ja alles nicht, braucht auch kein Mensch ;)

Das hier ist ja die Originalzeile die unser PRogramm installiert:
DEVICE=C:\DOS\EMM386.EXE 2800 RAM
Ich kann jetzt zwar mit der Zahl 2800 nicht viel anfangen ;) aber die werden ja sich da schon was dabei gedacht haben !?!
Benutzeravatar
CptKlotz
Admin a.D.
Beiträge: 2947
Registriert: Mo 7. Mär 2005, 23:36
Wohnort: Dorsten
Kontaktdaten:

Beitrag von CptKlotz »

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
“It is impossible to defeat an ignorant man in argument.” (William G. McAdoo)
Geisterfahrer

Beitrag von Geisterfahrer »

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
bttr

Beitrag von bttr »

Wo hast du denn dazu was gefunden? Ich hab' nämlich nix entdeckt. Außer deinem eigenen Beitrag im PC-Welt-Forum. :wink:
Benutzeravatar
ChrisR3tro
Administrator
Beiträge: 1987
Registriert: Mo 7. Mär 2005, 23:33
Wohnort: NRW
Kontaktdaten:

Beitrag von ChrisR3tro »

@Geisterfahrer: Danke für's Lob. Das Board, was Ihr da benutzt ist nicht zufällig ein Board mit VIA Chipsatz? Vielleicht von ASUS? :)

Gruß,
locutus
Geisterfahrer

Beitrag von Geisterfahrer »

Ist ein Gigabyte GA-8IPE1000-G Rev 4.0
Wo hast du denn dazu was gefunden? Ich hab' nämlich nix entdeckt. Außer deinem eigenen Beitrag im PC-Welt-Forum.
Naja, man muss für alles offen sein. Nur am Rande: Von den fünf Foren, wo ich das gepostet habe, habt ihr am besten abgeschnitten ;)
Antworten