Supportnet / Forum / Anwendungen(Java,C++...)
Vernuenftige Prg-Sprache fuer DOS
Frage
Gibt es eine vernuenftige Programmiersprache fuer
DOS ? Sie sollte genug RAM erkennen (mehr als 64
oder 640 KB). Ist zwar selten geworden, aber es
gibt neue Prg. fuer DOS (z.B. ACE). Womit kann
man solche Art won Software proramieren ?
"Turbo" oder Borland Pascal koennen nicht mehr
als 64 KB RAM bedienen, was Schwachsinn ist,
wenn 0.5 GB drin ist, und Freepascal benutzt
ein gewisses DPMI, welches RAM mit HD vermischt,
was ich nicht will und auch (bei 0.5 GB RAM)
total sinnlos ist.
Kennt jemand etwas ?
Antwort 1 von drago
@Dose
Das Pascal nicht mehr als 64 KB RAM ansprechen kann, ist Unsinn.
So ziemlich die gesamte Software ist Pascal oder C geschrieben, wobei für C die gleichen Bedingungen bzw. Voraussetzungen gegeben sind.
Die 64 KB Grenze, ist nicht Pascal-bedingt, sodern DOS bedingt, noch genauer, der Modus in dem der Prozessor läuft (Real Modus, 8086er Modus),lässt nicht mehr als 64 KB pro Segment (egal ob Code oder Daten)zu.
Das heist, egal welche Software du benutzt, du hast die gleichen 64KB Probleme.
Auch unter Windows 3.x war das gleiche problem.
Bei Pascal kannst du das Problem damit umgehen, dass du deine Programme in UNITS unterteilst, da eine Unit sowieso nicht meht als 64 KB zu Verfügung hat.
Also musst du entsprechend deine Daten, den Code in verschiedene Units Auslagern, und dann eben zusammen kompilieren und linken.
Die 640 KB Grenze umschifft man eben mit EMS, oder Himem.
Die 64 KB Barriere hast du unter DOS, bei ALLEN Programmiersprachen.
DPMI benutzt nicht die HD, sondern ist ein DOS-Extender Modus, also ein Protected Modus.
DAmit kannst du den GANZEN Speicher ansprechen.
Erfodert aber tiefere Kenntnisse üder den Protected Mode, da in diesem Modus ALLES anders läuft, auch das Programmieren.
Auch Win 9x benutzt das DPMI.
Z.B. findet man in dem Windows Verzeichnis das Programm DOSX, welches so ein DOS-Xtender ist, und windows im Speicher aufbaut.
Kurzum, Basic, Pascal, C, es sind nach wie vor die GLEICHEN Compiler die die Arbeit verrichten.
Turbo Pascal galt/gilt als der Schnellste.
C bzw. C++ ist die Sprache die genauso IN ist wie bei Windows.
Aber eben IN, und automatisch besser...
Borland Pascal 5.5 ist freigegeben, kannst unter Borland.com Dowloaden.
(Registrierung in der Borland Community notwendig)
Turbo C 2.0 ist auch frei dum Dowloaden.
Turbo C++ 1.0 genauso.
Freepascal u.ä. sind auch gut, aber eben die gleichen Einschränkungen (DOS,16bit, 64 KB Segment, 640 KB Memory Grenze).
Watcom C/C++ ist auch mittlerweile frei, und für fast alle Systeme anwendbar.
Unter http://downloads.openwatcom.org/ftp/11.0c/zips/ kannst du die einzelnen Dateien herunterladen.
oder du gehst auf diese Seite, klickst Parent directory an, dann kannst du die ZIP datei in einem Stück downloaden.
(watcom-c-11.0c.exe, 47 MB).
oder klick einfach auf http://downloads.openwatcom.org/ftp/11.0c/, da ist sie drin.
denke aber daran, die 64 KB als Barriere BLEIBEN, weil Prozessorbedingt, Real-Modus)
.
Das Pascal nicht mehr als 64 KB RAM ansprechen kann, ist Unsinn.
So ziemlich die gesamte Software ist Pascal oder C geschrieben, wobei für C die gleichen Bedingungen bzw. Voraussetzungen gegeben sind.
Die 64 KB Grenze, ist nicht Pascal-bedingt, sodern DOS bedingt, noch genauer, der Modus in dem der Prozessor läuft (Real Modus, 8086er Modus),lässt nicht mehr als 64 KB pro Segment (egal ob Code oder Daten)zu.
Das heist, egal welche Software du benutzt, du hast die gleichen 64KB Probleme.
Auch unter Windows 3.x war das gleiche problem.
Bei Pascal kannst du das Problem damit umgehen, dass du deine Programme in UNITS unterteilst, da eine Unit sowieso nicht meht als 64 KB zu Verfügung hat.
Also musst du entsprechend deine Daten, den Code in verschiedene Units Auslagern, und dann eben zusammen kompilieren und linken.
Die 640 KB Grenze umschifft man eben mit EMS, oder Himem.
Die 64 KB Barriere hast du unter DOS, bei ALLEN Programmiersprachen.
DPMI benutzt nicht die HD, sondern ist ein DOS-Extender Modus, also ein Protected Modus.
DAmit kannst du den GANZEN Speicher ansprechen.
Erfodert aber tiefere Kenntnisse üder den Protected Mode, da in diesem Modus ALLES anders läuft, auch das Programmieren.
Auch Win 9x benutzt das DPMI.
Z.B. findet man in dem Windows Verzeichnis das Programm DOSX, welches so ein DOS-Xtender ist, und windows im Speicher aufbaut.
Kurzum, Basic, Pascal, C, es sind nach wie vor die GLEICHEN Compiler die die Arbeit verrichten.
Turbo Pascal galt/gilt als der Schnellste.
C bzw. C++ ist die Sprache die genauso IN ist wie bei Windows.
Aber eben IN, und automatisch besser...
Borland Pascal 5.5 ist freigegeben, kannst unter Borland.com Dowloaden.
(Registrierung in der Borland Community notwendig)
Turbo C 2.0 ist auch frei dum Dowloaden.
Turbo C++ 1.0 genauso.
Freepascal u.ä. sind auch gut, aber eben die gleichen Einschränkungen (DOS,16bit, 64 KB Segment, 640 KB Memory Grenze).
Watcom C/C++ ist auch mittlerweile frei, und für fast alle Systeme anwendbar.
Unter http://downloads.openwatcom.org/ftp/11.0c/zips/ kannst du die einzelnen Dateien herunterladen.
oder du gehst auf diese Seite, klickst Parent directory an, dann kannst du die ZIP datei in einem Stück downloaden.
(watcom-c-11.0c.exe, 47 MB).
oder klick einfach auf http://downloads.openwatcom.org/ftp/11.0c/, da ist sie drin.
denke aber daran, die 64 KB als Barriere BLEIBEN, weil Prozessorbedingt, Real-Modus)
.
Antwort 2 von Dose
Danke...
Free Pascal unterstuetzt genug Speicher, aber er
legt auf C:\ eine SWP Datei an (ohne
Notwendigkeit), und wenn ich C:\ blockiere
(mit DOS 5, welcher FAT32 nicht kennt), laeuft
gar nichts. Win benutzt auch SWP, aber die
meisten DOS-Programme eben nicht !!!
Gibt es eine Moeglichkeit,
entweder
- ein DPMI, welches nur in RAM arbeitet (hat`s
mehr als genug), und keine SWP Dateien anlegt
oder
die 64 oder 640 KB irgendwie einfach zu umschiffen
(EMS, Himem, XMS, irgendwelche 4MB wurden mir
genuegen) ? Oder heisst das, dass etwa
alle Programme , die "ziemlich gesamte Software",
wie z.B. ZIP oder ACE sich mit 64KB Bloecken
herumschlagen und zwichen solchen umschalten ?
Free Pascal unterstuetzt genug Speicher, aber er
legt auf C:\ eine SWP Datei an (ohne
Notwendigkeit), und wenn ich C:\ blockiere
(mit DOS 5, welcher FAT32 nicht kennt), laeuft
gar nichts. Win benutzt auch SWP, aber die
meisten DOS-Programme eben nicht !!!
Gibt es eine Moeglichkeit,
entweder
- ein DPMI, welches nur in RAM arbeitet (hat`s
mehr als genug), und keine SWP Dateien anlegt
oder
die 64 oder 640 KB irgendwie einfach zu umschiffen
(EMS, Himem, XMS, irgendwelche 4MB wurden mir
genuegen) ? Oder heisst das, dass etwa
alle Programme , die "ziemlich gesamte Software",
wie z.B. ZIP oder ACE sich mit 64KB Bloecken
herumschlagen und zwichen solchen umschalten ?
Antwort 3 von real_Sparfuchs
Is den ne Swap so schlimm???
RS
RS
Antwort 4 von drago
Wenn die Programme im Protected Mode geschrieben sind, fallen diese 64 KB Barierren.
Allerdings erfordert es wie bereits erwähnt, tiefe Kenntisse des Protected Mode, und natürlich des Extenders, welcher benutzt wird.
DOS4GW ist zum Beispiel so einer.
Wenn KEIN Extender benutzt wird, muss eben IMMER getrickst werden, wenn mehr als 640 KB notwendig sind.
So ist die DOS-Welt aufgebaut, und so hat sie bisher gelebt.
Wom Wordstar bis Works.
Jeder hat so seine eigene Technik gehabt.
Turbo Pascal bietet noch die Möglichkeit Overlays zu benutzen, was im Endeffekt ein Swappen ist.
Wenn z.B ein Modul nicht gebraucht wird, wird der Speicher freigegeben, und ein benötigtes wird von der Platte geladen.
Mit EMS umd Himem kann man zwar tricksen , aber es sind IMMER Einblendungen aus/in den Speicher (in die 640 KB hinein/heraus).
Also statt Platte ist es dann Speicher.
(im Prinzip kann man dann auch eine RAM-Disk anlegen, ist leichter zum programmieren)
Man kan also nicht einfach in den Speicherbereich oberhalb von 1 MB springen und dort weiterarbeiten, sondern muss im Hauptprogramm einen Speicherraum freimachen, bzw. freihalten, und dann wird ein Teil der Daten/Code heruntergeholt, und dann im 640 KB Rahmen normal gearbeitet.
.
Allerdings erfordert es wie bereits erwähnt, tiefe Kenntisse des Protected Mode, und natürlich des Extenders, welcher benutzt wird.
DOS4GW ist zum Beispiel so einer.
Wenn KEIN Extender benutzt wird, muss eben IMMER getrickst werden, wenn mehr als 640 KB notwendig sind.
So ist die DOS-Welt aufgebaut, und so hat sie bisher gelebt.
Wom Wordstar bis Works.
Jeder hat so seine eigene Technik gehabt.
Turbo Pascal bietet noch die Möglichkeit Overlays zu benutzen, was im Endeffekt ein Swappen ist.
Wenn z.B ein Modul nicht gebraucht wird, wird der Speicher freigegeben, und ein benötigtes wird von der Platte geladen.
Mit EMS umd Himem kann man zwar tricksen , aber es sind IMMER Einblendungen aus/in den Speicher (in die 640 KB hinein/heraus).
Also statt Platte ist es dann Speicher.
(im Prinzip kann man dann auch eine RAM-Disk anlegen, ist leichter zum programmieren)
Man kan also nicht einfach in den Speicherbereich oberhalb von 1 MB springen und dort weiterarbeiten, sondern muss im Hauptprogramm einen Speicherraum freimachen, bzw. freihalten, und dann wird ein Teil der Daten/Code heruntergeholt, und dann im 640 KB Rahmen normal gearbeitet.
.
Antwort 5 von Spftprogger
Hallo,
habe jahrelang in Powerbasic programmiert, es ist der Nachfolger von Turbobasic. Damit lässt sich sich schon professionell einiges anstellen. Es gibt auch anständige Toolboxen dafür. In Deutschland wird es von Kirschbaum Software vertrieben. Auch der Übergang zu Windows ist machbar (z.B. DLL-Compiler).
mfG Softprogger Wolle
habe jahrelang in Powerbasic programmiert, es ist der Nachfolger von Turbobasic. Damit lässt sich sich schon professionell einiges anstellen. Es gibt auch anständige Toolboxen dafür. In Deutschland wird es von Kirschbaum Software vertrieben. Auch der Übergang zu Windows ist machbar (z.B. DLL-Compiler).
mfG Softprogger Wolle

