Diese Programme sind 2 Ramdisks. Fuer etliche Leute werden sicher einige
"Extras" fehlen, aber ich habe sie so gemacht, dass sie effizient und einfach
zu gebrauchen sind. Es sind zwei Programme, weil ich Groesse und
Geschwindigkeit optimieren wollte, deswegen ist eines fuer XMS und das andere
fuer EMS gemacht worden.
Um Hilfe zu ihrer Bedienung zu bekommen, geben Sie einfach XMSDSK /?
(oder EMSDSK /?) ein.
Man kann sie auf einem 286er und hoeher einsetzen (fuer die 8086 EMSDSK86
verwenden). Nach der Installation nehmen sie ca. 500 Bytes Speicher ein.
Sie koennen die Groesse der Disk jederzeit aendern (bis auf Null oder 2
Gigabyte, so vorhanden) und so Speicher fuer andere Verwendungszwecke
zurueckgewinnen. Dies ist im DOS-Kommandozeilenmodus moeglich, aber *NICHT*
unter WINDOWS, wegen des virtuellen Arbeitsspeichers. Der transiente Teil des
Programms wird alle benoetigten Parameter fuer die neue Disk errechnen
(dieselben wie bei einer MS-DOS-Festplatte; sie sollten deswegen fuer alle
Faelle geeignet sein).
Sie sollten vorsichtig sein, wenn Sie aus einem DOS-Programm heraus auf die
DOS-Kommandozeile zugreifen und die Groesse der Disk veraendern: im Fall, dass
Sie die TEMP- (oder TMP-) Umgebungsvariable in der Ramdisk eingerichtet haben
oder dem Programm mitgeteilt haben, dass es die Ramdisk benutzen soll, koennen
dort verborgene Dateien eingerichtet worden sein und einige (nicht) angenehme
Dinge dort passieren.
Diese RAM disks koennen *UEBER DIE KOMMANDOZEILE* eingerichtet werden (und
damit ueber die autoexec.bat, siehe unten). Auf diese Weise koennen Anwender
*SOGAR DEN VERWENDETEN LAUFWERKSBUCHSTABEN WAEHLEN*.
Obwohl die Installationsart (ueber die Kommandozeile) unter MS-DOS 3.x, 4.0,
5.0, 6.x erfolgreich getestet worden ist (vor Jahren von "Undocumented DOS"
von Adrew Schulman, Addison-Wesley, uebernommen), kann nicht garantiert
werden, dass andere MS-DOS-Versionen oder DOS-Versionen anderer Hersteller das
Programm unterstuetzen.
ABER beachten Sie bitte die Kompatibilitaetsliste weiter unten.
Indem Sie _EIN LAUFWERK BENENNEN_ ist es moeglich, die RAMdisk zwischen oder
nach CD-Rom- und Netzwerk-Laufwerken einzurichten (manche Anwender moechten
sie mit bestimmten Laufwerksbuchstaben versehen haben; leider ordnet MS-Dos
Laufwerksnamen so zu, wie sie beim Laden erscheinen). Nebenbei kann diese
Vorgehensweise das Verhalten von Cacheprogrammen verbessern (wenn der Cache
nicht fuer ein bestimmtes Laufwerk abgeschaltet werden kann, laedt man die
RAMdisk nach diesem Cacheprogramm; letzteres "sieht" dann nicht die RAMdisk
und versucht nicht, sie zu cachen: es ist nicht nur ueberfluessig, eine
RAMdisk im RAM zu cachen, sondern verbraucht auch Cache-Ressourcen).
PS1: wenn ein in der Kommandozeile speziell angegebenes Laufwerk auch genutzt
werden koennen soll, muss darauf geachtet werden, dass der
Laufwerksbuchstabe innerhalb des von LASTDRIVE festgelegten Bereichs liegt;
der Standardwert (wenn nicht in der Config.sys angegeben) ist E.
PS2: Wenn DBLSPACE oder DRVSPACE geladen ist, muessen zwei LASTDRIVEs beachtet
werden: Das eine in der CONFIG.SYS und ein weiteres in DBLSPACE.INI bzw.
DRVSPACE.INI. Letzteres ist eine Nur-Lesbare, Versteckte System-Datei,
ueblicherweise auf dem Startlaufwerk C: oder dem Hostlaufwerk zu finden.
Es hat den Anschein, als ob dem hoeheren Wert der Vorrang gegeben werde,
aber es gibt Ausnahmen (sonst waere es nicht witzig :-) ): wenn ein oder
mehrere Laufwerke in "Slots" eingerichtet werden, die fuer DBLSPACE oder
DRVSPACE vorgesehen sind, wird LASTDRIVE entsprechend erhoeht.
Tut mir leid, ich versuchte, es so klar wie moeglich auszudruecken, aber
besser kann ich es nicht, weil es fuer meine arme Person viel zu hoch ist.
:) :)
Sie koennen diese Dateien benutzen und kopieren: Sie sind Freeware.
Viel Spass ...
* Ein paar Tips ...
--------------------
* Zu XMS- und EMS-Speicher ...
XMS-Speicher wird in einem _zusammenhaengenden_ Block eingerichtet. So kann
ueberraschenderweise passieren, dass Sie XMSDSK in der Groesse nicht
veraendern koennen, obwohl MEM (oder ein anderes Programm) anzeigt, dass jede
Menge XMS vorhanden sei. Seltsam, nicht?
Die Ursache dafuer ist, dass andere Programme feste Bloecke im Speicher belegt haben koennen und das XMS dadurch_fragmentiert_ worden ist. Genauso wie der alte DOS-Speicher!
Die Loesung dafuer ist, Programme, die feste Speicherbloecke benoetigen, _vor_ XMSDSK zu laden, um die Fragmentierung des XMS zu verhindern. Auf diese Weise koennen Sie XMSDSK in der Groesse veraendern, von Null bis zum letzten verfuegbaren Byte im XMS-Speicher.
Das ist ein weiterer Vorteil davon, dass man RAMdisk von der Kommandozeile aus
laden kann.
Beachten Sie bitte, dass auf manchen Rechnern die Fragmentation dennoch weiter bestehen kann: dies haengt davon ab, wie diese BIOS- oder Hardware-konfigurationen mit dem oberen Speicher umgehen.
Die Fragmentation tritt nicht im Zusammenhang mit EMSDSK auf, weil der
EMS-Speicher (echt oder emuliert) gewissermassen 'in Haeppchen zerlegt' ist,
um zusammenhaengend zu erscheinen.
Ab Version 1.9g sind einige Hilfsprogramme von mir beigefuegt, die einen
kurzen Statusbericht ueber die EMS und XMS-Konfiguration geben (EMSTAT.EXE
und XMSTAT.EXE). Ausserdem ist SETXMSTO.EXE beigefuegt, das alte Versionen von
HIMEM.SYS (von MSDOS 6.x) dazu bringen soll, mehr als 64MB Speicher zu
verwalten.
Starten Sie SETXMSTO; es zeigt eine kurze Hilfe an und wieviel Speicher das BIOS erkennen kann. Wenn es angibt, dass die Funktion 15E801 nicht unterstuetzt wird, und Sie versuchen, die XMS-Groesse einzustellen, muessen Sie selbst wissen, was Sie tun; ES GESCHIEHT AUF IHR EIGENES RISIKO.
Der beste Weg, einen schnellen, aber eingehenden Test durchzufuehren, ist,
dass Sie die groesste RAMdisk einrichten, die moeglich ist, und mit Scandisk
einen Oberflaechentest durchfuehren; in dieser Einstellung werden alle
Sektoren (und damit allles genutzte RAM) getestet.
Wenn SETXMSTO mitteilt, dass Funktion 2F4309 nicht unterstuetzt wird, haben Sie kein HIMEM 3.09 oder hoeher (oder Ihr XMS-Verwaltungsprogramm macht von dieser Funktion keinen Gebrauch!). Fuer QUEMM in einer Version vor 8 sollten Sie es mit dem Parameter USERAM versuchen.
* Ueber Laufwerke im allgemeinen ...
Versuchen Sie, immer in einem Unterverzeichnis zu arbeiten: Das
Hauptverzeichnis hat nach dem Formatieren des Laufwerks eine vorgegebene
Groesse und ist in den meisten Faellen auf 512 Eintraege beschraenkt (Dateien
oder Verzeichnisse), so dass das Hauptverzeichnis "zu voll" werden kann,
obwohl genuegend Platz auf dem Laufwerk vorhanden waere.
Das trifft besonders auf XMSDSK und EMSDSK als veraenderbare Laufwerke zu: die Groesse des Hauptverzeichnisses haengt von der Gesamtgroesse des Laufwerks ab. Das ist von noch groesserer Wichtigkeit, wenn Sie lange Dateinamen unter Win95 verwenden: Lange Dateinamenseintraege nehmen soviel Platz ein wie der entsprechende kurze Name und obendrein weitere Eintraege, um den langen Namen unterzubringen. Auf diese Weise kann sich das Hauptverzeichnis sehr schnell auffuellen.
*Ueber Win95 ... (von einem gluecklichen Benutzer :-)
EMSDSK86 | Keine Probleme (1) | Schwere Warnung (2)
(1): *** Beachten Sie weiter unten "Mehr ueber Win95" ***
Win95 macht von dem 16-Bit- (=Kompatibilitaets-) Modus Gebrauch, um dieses Laufwerk anzusprechen, behandelt aber alle anderen Laufwerke unveraendert, und der 32-Bit-Zugriff bleibt bestehen.
Eine Nebenbemerkung:
Wenn Sie EMS- oder XMSDSK geladen haben, kann es sein, dass Sie etwa ein bis drei Sekunden lang die Festplatte arbeiten hoeren, waehrend die grafische Windowsoberflaeche gestartet wird. Das ist normal und voellig unschaedlich.
(2): Win95 startet mit einer Warnmeldung, dass ein von der CONFIG.SYS
geladener Treiber die Systemleistung herabsetze.
Wenn Sie ihren "Arbeitsplatz" rechts anklicken, "Eigenschaften" und "Leistungsmerkmale" waehlen, werden Sie sehen, dass alle Treiber in den Kompatibilitaetsmodus versetzt sind, was TATSAECHLICH die Systemleistung einschraenkt.
Die beste Loesung ist, die ramdisk in der autoexec.bat zu plazieren;
und Win95 wird dieses Laufwerk ohne jegliche Schwierigkeiten verwenden
koennen. Selbst wenn die Groesse auf Null gesetzt ist, werden Sie nur eine
Meldung der Art "Laufwerkszugriff nicht moeglich" erhalten, wenn Sie dieses
Laufwerk z.B. vom Explorer aus betrachten wollen. Sie werden die
Laufwerksgroesse jedoch vor dem Start der Windows-Oberflaeche festlegen
muessen.
Dieser kleine Test wurde mit XMS/EMSDSK Version 1.9e auf einem P5/133 MHz mit
48 MB RAM, DOS 7.0 und Win95, natuerlich selbstgebaut, von Joachim Otahal
durchgefuehrt <jou@gmx.net>
* Mehr ueber Win95 ...
Ab der Version 1.9g ist die Laufwerksidentifikation von RAMdisk mit der von
MS-RAMDRIVE identisch; dies verhindert die stoerende Win95-Meldung "Laufwerk
X: verwendet Kompatitbilitaetsmodus".
* Anwendungsbeispiele
----------------------
device[high]='Pfad'\XMSDSK.EXE [Groesse in Kilobytes] (oder EMSDSK.EXE)
Installiere ramdisk ueber die config.sys.
Wenn keine Groesse angegeben wird, hat die Disk die Groesse Null.
Von der config.sys aus kann KEIN LAUFWERKSBUCHSTABE ANGEGEBEN werden.
Wenn die RAMdisk noch nicht geladen ist, wird das Programm nach dem ersten
Aufruf verlangen, dass sie geladen werden soll. Um sie auf jeden Fall zu
laden, z.B. durch einen Befehl in der autoexec.bat, geben Sie ein:
XMSDSK [Groesse in Kilobytes] [Laufwerk:] /y (oder mit EMSDSK)
Dies wird den Treiber im oberen Speicherbereich laden, ohne besonders
nachzufragen. Der Teil, der den Treiber enthaelt, wird in einen
Speicherbereich geladen werden, der seiner Groesse am besten entspricht,
zuerst im oberen Speicherbereich, und wenn dies nicht gelingen sollte, im
unteren Speicherbereich. Auf diese Weise sollte Speicherfragmentierung
vermieden werden.
Wenn ein Laufwerk angegeben wird, wird ein Anlegen versucht; andernfalls
wird das erste frei verfuegbare Laufwerk verwendet. Das Laufwerk muss
vor/bei LASTDRIVE liegen (in der config.sys oder der dblspace.ini bzw.
drvspace.ini, siehe oben bei PS2:).
Der Parameter /t kann dazu verwendet werden, dem Treiber zu befehlen, den
XMS-Speicher von der obersten Speicheradresse her zu verwenden, statt der
niedrigeren Bereiche. Es gibt Rechner, die sich unter Win95 aufhaengen,
wenn es keinen freien Speicher in den ersten 16 MB gibt.
XMSDSK (oder EMSDSK)
In der DOS-Kommandozeile: gibt die Groesse und den Laufwerksbuchstaben
aus, die RAMdisk verwendet.
XMSDSK <Groesse in Kilobytes> (oder mit EMSDSK)
Aendert die Groesse der RAMdisk.
XMSDSK <Groesse in Kilobytes> /y (oder mit EMSDSK)
In einer Batchdatei vermeidet dies die Abfrage der Bestaetigung, wenn die
Groesse veraendert wird.
XMSDSK (und EMSDSK) gibt einen Wert zurueck, der mit "errorlevel"
abgefragt werden kann, wo es eingerichtet ist: 0, falls nicht eingerichtet
oder ein Fehler aufgetreten ist, 1 fuer Laufwerk A (haeh ?), 2 fuer B (haeh
haeh ?), 3 fuer C (hmmm ?), etc ...
XMSDSK /u (oder EMSDSK)
Entfernen des Treibers aus dem Speicher; Disk existiert nicht mehr.
XMSDSK /u /y (oder mit EMSDSK)
Dasselbe wie oben, ohne Rueckfragen. :-)
PS1: Groesse ist in Kilobytes und wird auf volle 16 Kilobytes aufgerundet.
PS2: Es ist besser, NICHT LOADHIGH bei EMS/XMSDSK EINZUSETZEN, da es sich
selbst besser im Speicher unterbringen kann als es DOS koennte.
* Entstehungsgeschichte
------------------------
v1.0 (Mai 92) Erste Fassung.
v1.1 (Jun 92) Verbesserungen im residenten Teil hinzugefuegt.
v1.2 (Oct 93) Einige Tests im Teil fuer die Aenderung der Groesse
hinzugefuegt.
v1.3 (Apr 94) Einen Fehler beseitigt, der bei einer gewuenschten
Groesse von 4000 KB auftrat und einen anderen, der
der die Groesse auf 16 MB beschraenkte.
Genauere Fehlermeldungen eingefuegt anstelle des
"error during installation".
v1.4 (Feb 96) Einige Schoenheitskorrekturen.
v1.5 (Mar 96) Moeglichkeit, ueber die Kommandozeile zu installieren,
hinzugefuegt.
v1.6 (Apr 96) Zu verwendendes Laufwerk kann in der Kommandozeile
angegeben werden. Einen Fehler korrigiert, der
Kompatibilitaet mit Scandisk (und evtl anderen Pro-
grammen?) verhinderte.
Option "y" hinzugefuegt.
v1.7 (Apr 96) Fehlerkorrektur.
v1.8 (Apr 96) Etwas aufgeraeumt.
v1.9 (Sep 96) Unterstuetzt nun bis zu 64 Megabytes.
Option "u" zur Entfernung des Treibers aus dem Speicher
hinzugefuegt.
EMSDSK und EMSDSK86 koennen ohne Probleme an Stelle
jeweils des anderen Programms benutzt werden. :-)
v1.9a (Sep 96) Unterstuetzt jetzt bis zu 2 GBytes. Das sollte der Frage
"kann es mehr als xxxKB unterstuetzen?" ein Ende
setzen. :)
v1.9b (Oct 96) Ein Problem mit DBLSPACE bzw. DRVSPACE korrigiert.
v1.9c (Dec 96) Speicherresidenter Teil wird nun "dynamisch" im oberen
Speicherbereich eingelagert. Behebt ein Problem mit
dem NWDOS 7 XMS-Manager.
Schoenheitsnachbesserungen.
v1.9d (Dec 96) Fehler in der Optionsverarbeitung beseitigt.
!!! Optionsverarbeitung reagiert nicht auf _falsche
Buchstabengroesse_.
v1.9e (Mar 97) Einige Fehler beseitigt (Probleme mit Groessen von
32 Megabytes)
Bei bis zu 32 Megabytes bleibt es beim FAT12-Standard,
um eine hoehere Geschwindigkeit zu erzielen.
v1.9f (Mar 97) Einige Schoenheitskorrekturen, um GUEST95 gluecklich
zu machen.
Hinweise zu Win95 in die Dokumentation eingefuegt.
v1.9g (Oct 97) Die Laufwerkskennzeichnung ist der von MS-RAMDRIVE
entsprechend kodiert worden, damit die Win95-Benutzer
zufriedener sein koennen.
Hilfsprogramm hinzugefuegt, das das HIMEM von
MSDOS 6.x dazu bringt, mehr als 64MB Speicher zu
unterstuetzen (funktioniert es?)
Neue Dokmentationen.
Den Algorithmus zur Plazierung geaendert.
v1.9h (Mar 98) Die Optionen brauchen keine Grossbuchstaben mehr.
Parameter "/t" eingefuegt, um den Speicher von oben herab
zuordnen zu koennen.
Die Funktionen von XMS 3 werden nicht mehr unterstuetzt.
Eine grosse Zahl sogenannter "XMS-3-kompatibler" Server
behandelt Speicherbloecke von mehr als 64 MB sehr
merkwuerdig. Nun kann Win95 "ueberraschenderweise" eine
RAMdisk jenseits von 64MB ohne Probleme benuetzen; dasselbe
sollte auch fuer Win3.1x oder andere XMS-2-und-hoeher-
Speichermanager gelten.
Ich danke fuer ihre Hilfe und Tests (oder Vorschlaege) folgenden Personen: