Far Heap alloziieren !

Wie schaff ich es, in C mehrere MegaByte RAM (z.B. 10MB) unter DOS zu alloziieren. Mein Rechner meldet mir grundsaetzlich, dass auf meinem FarHeap ( farcoreleft() )nur noch ca. 24K frei sind.

Danke, Lars !

Hallo !

Wie schaff ich es, in C mehrere MegaByte RAM (z.B. 10MB) unter
DOS zu alloziieren. Mein Rechner meldet mir grundsaetzlich,
dass auf meinem FarHeap ( farcoreleft() )nur noch ca. 24K frei
sind.

Prinzipiell geht das unter DOS gar nicht. Hier stehen für Programm und Daten maximal die beruehmten 640k zur Verfügung. Mit einem 16 bit Zeiger kannst Du davon aber jeweils nur 64k Ansprechen. Das liegt leider in der Natur der Sache (16 bit).
Also entweder musst Du ein anderes Betriebssystem nehmen (Win>=95, NT, Linux …) oder Du musst Dich auf die Suche nach einem sogenannten Dos- Extender machen. Das sind Bibliotheken, die in Deine exe Code einfuegen, welcher beim Start eine Umschaltung in den 32-bit protected Mode machen (linken so eine Art mini 32 bit Betriebssystem in die Exe). Dann kannst Du theoretisch bis zu 4 GByte Speicher adressieren.
Fuer BC31 gabs glaub ich mal so ein Teil gegen Geld. Koennte allerdings sein, dass das antiquierte Zeug jetzt irgendwo kostenlos zum download bereitsteht.
Wenn’s nicht unbedingt Dos sein muss wuerde ich allerdings darauf verzichten.

Tschuess !

Andreas