Mobile Footer

XP: Daten im Hohen Speicher

ludwig4

Cadet 4th Year
Registriert
Juni 2010
Beiträge
96
Hallo Helfer,

an meinem Problem sind beteiligt
ein Notebook Acer Aspire 9411AWSMi mit Windows XP Home SP3 (hier: µCG) und
ein Notebook HP Compaq 6820s mit Windows XP Prof. SP3 (hier: µCN).

Im Ordner C:\Windows\System32 sind gespeichert - hier ohne die REM-Zeilen -
im µCG
in autoexec.nt
@echo off
lh %SystemRoot%\system32\mscdexnt.exe
lh %SystemRoot%\system32\redir
lh %SystemRoot%\system32\dosx
SET BLASTER=A220 I5 D1 P330 T3
E:\Computer\Drucker\DOSprn\prn2file.com
in config.nt
dos=high, umb
device=%SystemRoot%\system32\himem.sys
files=20
im µCN
in autoexec.nt
@echo off
lh %SystemRoot%\system32\mscdexnt.exe
lh %SystemRoot%\system32\redir
lh %SystemRoot%\system32\dosx
SET BLASTER=A220 I5 D1 P330 T3
D:\Computer\Drucker\DOSprn\prn2file.com
in config.nt
dos=high, umb
device=%SystemRoot%\system32\himem.sys
files=20
device=D:\Computer\SICHER~1\Avast\aswmonds.sys

Der Aufruf mem /C bringt (Leere Zeilen entfernt)

beim µCG
Konventioneller Speicher:
Name Größe (dezimal) Größe (hex)
------------- --------------------- -------------
MSDOS 12448 ( 12.2K) 30A0
KBD 3296 ( 3.2K) CE0
HIMEM 1248 ( 1.2K) 4E0
COMMAND 4144 ( 4.0K) 1030
PRN2FILE 7280 ( 7.1K) 1C70
KB16 6096 ( 6.0K) 17D0
Frei 112 ( 0.1K) 70
Frei 960 ( 0.9K) 3C0
Frei 619536 (605.0K) 97410
Insgesamt frei: 620608 (606.1K)
Hoher Speicher:
Name Größe (dezimal) Größe (hex)
------------- --------------------- -------------
SYSTEM 221168 (216.0K) 35FF0
MOUSE 12528 ( 12.2K) 30F0
MSCDEXNT 464 ( 0.5K) 1D0
DOSX 34848 ( 34.0K) 8820
REDIR 2672 ( 2.6K) A70
Frei 944 ( 0.9K) 3B0
Frei 34976 ( 34.2K) 88A0
Frei 19904 ( 19.4K) 4DC0
Insgesamt frei: 55824 ( 54.5K)
Insgesamt frei (konventioneller und hoher Speicher): 676432 (660.6K)
Maximale Größe für ausführbares Programm: 619536 (605.0K)
Größter freier Block im hohen Speicherblock: 34976 ( 34.2K)
1048576 Bytes gesamter fortlaufender Erweiterungsspeicher
0 Bytes fortlaufender Erweiterungsspeicher verfügbar
736256 Bytes XMS-Speicher verfügbar
MS-DOS ist resident im oberen Speicherbereich (HMA).

beim µCN:
Konventioneller Speicher:
Name Größe (dezimal) Größe (hex)
------------- --------------------- -------------
MSDOS 11504 ( 11.2K) 2CF0
KBD 3296 ( 3.2K) CE0
HIMEM 1248 ( 1.2K) 4E0
ASWMONDS 592 ( 0.6K) 250
COMMAND 4176 ( 4.1K) 1050
DOSX 34720 ( 33.9K) 87A0
PRN2FILE 7312 ( 7.1K) 1C90
KB16 6096 ( 6.0K) 17D0
Frei 112 ( 0.1K) 70
Frei 992 ( 1.0K) 3E0
Frei 585040 (571.3K) 8ED50
Insgesamt frei: 586144 (572.4K)
Hoher Speicher:
Name Größe (dezimal) Größe (hex)
------------- --------------------- -------------
SYSTEM 204784 (200.0K) 31FF0
DOSX 128 ( 0.1K) 80
MOUSE 12528 ( 12.2K) 30F0
MSCDEXNT 464 ( 0.5K) 1D0
REDIR 2672 ( 2.6K) A70
Frei 976 ( 1.0K) 3D0
Frei 40464 ( 39.5K) 9E10
Insgesamt frei: 41440 ( 40.5K)
Insgesamt frei (konventioneller und hoher Speicher): 627584 (612.9K)
Maximale Größe für ausführbares Programm: 585040 (571.3K)
Größter freier Block im hohen Speicherblock: 40464 ( 39.5K)
1048576 Bytes gesamter fortlaufender Erweiterungsspeicher
0 Bytes fortlaufender Erweiterungsspeicher verfügbar
736256 Bytes XMS-Speicher verfügbar
MS-DOS ist resident im oberen Speicherbereich (HMA).

Somit stehen für DOS-Programme zur Verfügung
im µCG 620608 Bytes,
im µCN 586144 Bytes
- und das kann zu Problemen führen. Ursache dafür ist die Lage von DOSX im µCG komplett im hohen Speicher, im µCN aber fast ganz im konventionellen Speicher.
Und das, obwohl diese Daten mit lh %SystemRoot%\system32\dosx beide Male in den hohen Speicher gelegt werden sollten.

Was ist die Ursache? Wie kann ich den Mangel im µCN beheben?

Für Eure Lösung wäre ich sehr dankbar.
Grüße
ludwig4
 
DOSX konnte in diesm Fall nicht hochgeladen werden, weil in der Ausgabe ersichtlich ist:
Größter freier Block im hohen Speicherblock: 40464 ( 39.5K)

Da aber DOSX insgesamt 40K groß ist, bzw. DOSX aus zwei Modulen mit 39.9K und 0.1K besteht, paßt der größere der beiden Blocks nicht in den hohen Speicher.
Allgemein betrachtet hat Dein µCN weniger Speicher zur Verfügung. Manche Systemgeräte mappen ihr BIOS in Speicherbereiche hinein, weshalb dann insgesamt weniger zur Verfügung steht.

Vielleicht hilft ja eine Umstellung der Reihenfolge:
lh %SystemRoot%\system32\dosx
lh %SystemRoot%\system32\mscdexnt.exe
lh %SystemRoot%\system32\redir


Was möchtest Du denn überhaupt damit anstellen?
Für die Ausführung von DOS-Programmen bietet sich doch das kleine Programm DOSBOX an.
 
Hallo Mista Jack,

Deinen Vorschlag, die Reihenfolge zu ändern, habe ich erprobt. Nach wie vor ist aber die DOSX.EXE im konventionellen Speicher gelandet. Trotzdem Danke.

Es war eigentlich auch nicht zu erwarten, dass die Reihenfolge eine Rolle spielt. Richtig ist, dass der größte freie Block im hohen Speicher mit 40464 Bytes (39,5 K) ausgewiesen wird. Für die DOSX werden aber nur 34720 + 128 Bytes (33,9 + 0,1 K) angezeigt.

Jetzt will ich es mal mit dem Verzicht auf DOSX.EXE versuchen. Laut REM-Information installiert dieses Programm die DPMI-Unterstützung; Näheres konnte ich leider nicht ergoogeln. Laut Lexikon ermöglicht es DOS-Programmen, XMS-Speicher zu nutzen. Das wird aber das Turbo-Pascal-Programm, das auf dem Computer läuft, wohl nicht tun.

Aus der DOS-Box kann man meines Wissens nicht drucken. Die ist deswegen wohl nicht geeignet.
Vielleicht findet aber doch noch jemand eine vollkommene Lösung?

Beste Grüße
ludwig4
 
Hallo ludwig,

ludwig4 schrieb:
Es war eigentlich auch nicht zu erwarten, dass die Reihenfolge eine Rolle spielt. Richtig ist, dass der größte freie Block im hohen Speicher mit 40464 Bytes (39,5 K) ausgewiesen wird. Für die DOSX werden aber nur 34720 + 128 Bytes (33,9 + 0,1 K) angezeigt.

ohmann, das ist wirklich blamabel. Wie konnte mir das nur passieren? Sorry! Und danke für die Nachhilfe in Mathematik. :eek:

ludwig4 schrieb:
Jetzt will ich es mal mit dem Verzicht auf DOSX.EXE versuchen. Laut REM-Information installiert dieses Programm die DPMI-Unterstützung; Näheres konnte ich leider nicht ergoogeln. Laut Lexikon ermöglicht es DOS-Programmen, XMS-Speicher zu nutzen. Das wird aber das Turbo-Pascal-Programm, das auf dem Computer läuft, wohl nicht tun.

Hast Du ein akutes Problem, dass das Programm nicht läuft?

Ich hätte da noch einen anderen Ansatz anzubieten: Warum nimmst Du nicht eine virtualisierte Umgebung (vmware oder VirtualBox) mit einer DOS-Installation (altes MSDOS oder FreeDOS oder Ähnliches, z.B. unter http://virtualboxes.org/images/ ) und läßt dort Deine Software laufen? Bin mir nicht sicher, ob das die Hardwareausstattung der Notebooks hergibt, aber einen Versuch ist es wert. Oder?

Grüße
MistaJack
 
Hallo Mista Jack,

jeder kann mal 33,9 als 39,9 lesen - so ist es Dir wahrscheinlich gegangen. Und dann ist Deine Folgerung nicht abwegig. Du brauchst also keine Mathe-Nachhilfe.

Bis jetzt läuft das DOS-Programm ohne DOSX.EXE wie gewünscht. Versuchen wir es mal weiterhin so, wenn keine Lösung für "DOSX nach oben" in Sicht ist. Interessant wäre es aber dennoch, zu wissen, warum DOSX auf dem einen Notebook in den hohen Speicher kommt und auf dem anderen nicht.

Mit dem virtuellen Computer will ich es, wenn irgendwie möglich, nicht versuchen. Das DOS-Programm wird nicht nur von mir verwendet, sondern auch von anderen Personen, die vom Computer noch weniger verstehen als ich. Deswegen muss es ganz einfach mit Starten - Eingeben - Ausgeben - Herunterfahren bedienbar sein.

Danke für Deine Hinweise und
ein schönes Wochenende!
ludwig4
 
Zuletzt bearbeitet:

Ähnliche Themen

Zurück
Oben