Forum: PC Hard- und Software Waren früher 640 KiB, 768 KiB und 896 KiB bei den 80286ern übliche RAM Bestückungen?


von Nano (Gast)


Lesenswert?

Oder ging man da gleich von 512 KiB auf 1 MiB?

Weiß da jemand genaueres wie das gehandhabt wurde?

Im Prinzip konnte durch die konventionelle Speichergrenze von 640 KiB 
unter DOS ohne Tricks der Bereich zwischen 640 KiB und 1 MiB ja ohnehin 
nur bedingt genutzt werden.
Insofern könnte es für PC Hersteller attraktiv gewesen sein, die PCs mit 
5 x 128 KiB  oder 3 x 256 KiB RAM Chips zu bestücken. Kam das vor?
Und wie sah es mit (2 x 256 KiB + 1 x 128 KiB) aus, ging das?

Und wie sah es von dem Mainboards und ihren Chipsätzen aus. Erlaubten 
die eine derartige ungerade Bestückung?

von (prx) A. K. (prx)


Lesenswert?

Nano schrieb:
> Oder ging man da gleich von 512 KiB auf 1 MiB?

Das hing vom Mainboard und den Finanzen ab. RAM war teuer.

Versuch einfach mal, dir RAM auf ISA Karten als Hauptspeicher 
vorzustellen. Auch wenn das heute schwer fällt. RAM onboard war bei 
PC/XT und PC/AT auch nicht schneller.

Mischkonfiguration war natürlich möglich. Clevere Taiwanesen brachten 
bei 286 auch Mainboards mit Option zur Mischbestückung mit verschiedenen 
DRAM Typen onboard.

Die schafften es im Gegensatz zu IBM auch, den 286 bei onboard RAM mit 
den möglichen 2 Takten pro Zyklus zu betreiben. 10 MHz mit zwei Takten, 
statt 8 MHz mit dreien, das ist ein sehr markanter Unterschied.

: Bearbeitet durch User
von Walter T. (nicolas)


Lesenswert?

Nano schrieb:
> Und wie sah es von dem Mainboards und ihren Chipsätzen aus. Erlaubten
> die eine derartige ungerade Bestückung?

Bei den 286ern war der Spuk schon fast wieder vorbei - RAMs im ZIP oder 
im DIL-Sockel so gut wie verschwunden. SIM war angesagt.

Bestückungen von 512kiB, seltener 768 kiB, 1024 kiB waren üblich - Himem 
wurde normal.

Beim 386er kam dann der Sprung zu 4 oder 16 MB.

: Bearbeitet durch User
von Franz (Gast)


Lesenswert?

Meiner gatte damals 2 Speicherbänke bestehend aus IC Sockeln direkt auf 
dem Mainboard.
Auslieferungszustand waren 512kb + 128kb. Später wurde die 2. Bank auch 
auf 512kb erweitert.
Richtig nutzen konnte man den xmd nicht da zu klein.
Jedoch konnte man die Treiber hochladen und hatte do unter 640kb mehr 
Luft

von (prx) A. K. (prx)


Lesenswert?

Walter T. schrieb:
> Bei den 286ern war der Spuk schon fast wieder vorbei - RAMs im ZIP oder
> im DIL-Sockel so gut wie verschwunden. SIM war angesagt.

SIMMs kamen m.W. erst in der zweiten Generation der 286er grossflächig 
auf.

von Walter T. (nicolas)


Lesenswert?

(prx) A. K. schrieb:
> SIMMs kamen m.W. erst in der zweiten Generation der 286er grossflächig
> auf.

Das kann sein. Ich kenne 286er, 386er, 486er hauptsächlich aus 
archäologischen Untersuchungen. Es ist absolut plausibel, dass die Funde 
hauptsächlich jeweils aus der Spätphase stammen. Damit könnten auch 
anfangs schwach bestückte Systeme jeweils nachträglich aufgerüstet 
worden sein.

: Bearbeitet durch User
von Fpgakuechle K. (Gast)


Lesenswert?

Nano schrieb:

> Weiß da jemand genaueres wie das gehandhabt wurde?

Je nach Nase und Geldbeutel. Wobei Anfang der Neunziger auch den 
verbreiteten Computern wie Commodore Amiga auf 1 Megabyte ging. Eine 
Speichererweiterung von 0.5 auf 1.0 MByte kostetet um die 100 DM.

Im PC-Bereich kenne ich keinen der einen AT mit weniger als 1 MB 
betrieb. Damit konnte man auch 720k disketten in einem Rutsch kopieren. 
Und die Mindestanforderungen für Windows 3.0 lagen wohl bei 2 MB.
https://en.wikipedia.org/wiki/Windows_3.0

von Michael U. (amiga)


Lesenswert?

Hallo,

Auslieferzustand vom 286er am Anfang kann ich nicht sagen, bin erst 
gegen Ende dazugestoßen.
Boards mit DIL und DIL/SIPP-Modulplätzen sind mir noch bgegnet.
DIL mit 64kx1 oder 256kx1 bestückbar, SIPP mit 256MBx9 oder 1MBx9.
Mein "Liebling": 286er mit NEAT-Chipset. Man konnte Ram in wohl jeder 
irgendwie möglichen Kombination bestücken. Im BIOS dann die 
Ram-Konfiguration an die Realität anzupassen war wie Adventure 
spielen...
Gab es auch noch mit den ersten 386SX.

Gruß aus Berlin
Michael

von Walter T. (nicolas)


Lesenswert?

Michael U. schrieb:
> SIPP

(prx) A. K. schrieb:
> SIMM

Offensichtlich habe ich damals (Aushilfsjob) viel über Archäologie 
gelernt, aber nicht, wie die Sachen richtig buchstabiert werden.

von KArl Fred M. (Gast)


Lesenswert?

Ja, erst SIPP dann kam SIMM :-)
Hatte bei meinem 286 auch schräge Werte. Was ich gerade an Rambauseiten 
rumliegen hatte.
Der hatte auch noch einzelne DIMMS

von Helge (Gast)


Lesenswert?

Anfangs üblich war der DRAM-Controller 8208. Manche Billigheimer wurden 
ausgeliefert mit 36x4164 DRAM, häufiger aber 18x41256. Dann konnte man 
mit der leeren zweiten Speicherbank entweder auf 640k oder gleich auf 
1MB aufrüsten. Um Eagle gut benutzen zu können, hatte ich mir DRDOS 
gekauft, damit waren ein paar byte mehr im lowmem möglich. Wenn man 
große Aluwinkel auf 286, 8087 und 8208 klebte, konnte die 8MHz-Version 
meist auch mit 10MHz rechnen.

von Peter D. (peda)


Lesenswert?

Ich kenne 286-er nur mit 640kB oder 1MB Erstbestückung. Bei 1MB konnte 
man ne 384kB RAM-Disk einrichten.

von (prx) A. K. (prx)


Lesenswert?

Helge schrieb:
> Anfangs üblich war der DRAM-Controller 8208

Nicht beim IBM Original AT. Hardware Reference mit Schaltplan und BIOS:
http://www.bitsavers.org/pdf/ibm/pc/at/1502494_PC_AT_Technical_Reference_Mar84.pdf

: Bearbeitet durch User
von rbx (Gast)


Lesenswert?

Nano schrieb:
> Weiß da jemand genaueres wie das gehandhabt wurde?

Da gab es noch kein Plug + Play. Aber es gab u.a. Aufrüstpläne in 
Fachzeitschriften. Beim Atari per Huckepack nochmal 512 draufgelötet, so 
dass man dann problemlose 1 MB Arbeitsspeichergröße hatte.

Andere Pläne hatten gab es noch für 4 MB mit PS/2 Modulen aus der 
Anfangszeit der 90er. Welche das genau waren, konnte man den damaligen 
Zeitschriftenartikel entnehmen.

Der PC kam später als (Musik-)Workstation mit 4-16 MB um die Ecke.

Die spätere Grenze war 64 MB und wenn man mehr einbauen konnte, musste 
man auf das Mainboard achten, dass das Tag-Ram auf der Hauptplatine die 
Aufrüstpläne mitmacht. Das war aber oft, trotz allen Werbesprüchen 
damals, auf 64 MB begrenzt.

Eine andere spannende Frage war noch die Arbeitsspeichergröße bei 
Samplern. Beim Emax2 wollte ich mal einen Thread aufmachen, um zu 
fragen, ob es Umrüstpläne(/oder -Chancen) gibt, oder ob die Sinn machen 
(möglicherweise nicht). Für die Aufrüstung beim Emax2 gab es eine 
spezielle Prozedur der Aufrüstung mit EEproms und speziellem 
Betriebssystem auf Update-Diskette zum Einrichten des Zusatzspeichers.

Aktuell kann man sich beim Emax2 mit Floppyemulator behelfen, und 
Usb-Speicher nutzen, das ist auch schon mal was gutes.

von Bit-Gräber (Gast)


Lesenswert?

rbx schrieb:
> Die spätere Grenze war 64 MB und wenn man mehr einbauen konnte, musste
> man auf das Mainboard achten, dass das Tag-Ram auf der Hauptplatine die
> Aufrüstpläne mitmacht. Das war aber oft, trotz allen Werbesprüchen
> damals, auf 64 MB begrenzt.

Hm, ich glaub die Grenze fürs address-Tag-sram war niedriger als 64MB 
und das war eher ein Problem beim 386 resp dessen Chipsatzes als beim 
286. Der 286 hatte ein anderes Cache system (gar keins resp doubled 
buffered prefetch unit?)

von Peter D. (peda)


Lesenswert?

Wenn man später mal alte PCs aufrüsten wollte, gab es das Problem, daß 
die größeren Module auch mehr Refreshleitungen benötigten.
Ich hatte mal versucht, in einen 386SX 4* 4MB Module reinzustecken. Die 
16MB wurden auch erkannt, nur wurden sie nach einigen Minuten vergeßlich 
und der PC stürzte ab. Ein RAM-Test lief aber durch, weil er schnell 
genug alle Adressen durchlief und so quasi das Refresh machte.

von (prx) A. K. (prx)


Lesenswert?

rbx schrieb:
> Die spätere Grenze war 64 MB

Der 286 konnte nur 16 MB adressieren.

Bit-Gräber schrieb:
> Der 286 hatte ein anderes Cache system

Cache in der CPU gab es erst beim 486, Cache auf Mainboards ab 386.

von rbx (Gast)


Lesenswert?

Bit-Gräber schrieb:
> das war eher ein Problem beim 386 resp dessen Chipsatzes als beim
> 286. Der 286 hatte ein anderes Cache system (gar keins resp doubled
> buffered prefetch unit?)

Der 286 und die ersten 386 konnten 16MB adressieren. Die früheren 
Rechner, also 186 und früher konnten nur maximal 1 MB adressieren.
Der spätere 386 brauchte noch einen 32 Bit Datenbus und konnte dann 4 GB 
adressieren.
Diese 4 GB als Arbeitsspeicher nutzen zu können, oder auch Annäherungen 
dahin waren aber noch lange theoretisch.

Cache-Nutzung gibt es eigentlich erst ab 386 und 25mhz.
Tatsächlich ist/war wohl auch die Cache-Technik/Chipsatz 
mitverantwortlich für die Größe des tatsächlich nutzbaren 
Arbeitsspeichers.

Naja, die Sache war ziemlich im Fluss eigentlich. Nicht von heute auf 
morgen - aber das ging schon ganz schön ab, hinsichtlich Computerspiele 
und Technik. Heute gibt es richtig gute Flugsimulatoren, beindruckend 
realitätsnahe Wettkampf mit Knarre-Simulationen oder auch HPC-Boost mit 
Grafikkarten.
Dass die Grafikkarten mal so teuer werden (aber trotz allem ganz gut 
rechnen), hatte auch keiner ahnen können.

von Roland F. (rhf)


Lesenswert?

Hallo,
Nano schrieb:
> Im Prinzip konnte durch die konventionelle Speichergrenze von 640 KiB
> unter DOS ohne Tricks der Bereich zwischen 640 KiB und 1 MiB ja ohnehin
> nur bedingt genutzt werden.

Wodurch kam eigentlich diese "merkwürdige" Speichergrenze bei 640 KiB? 
512KiB (oder 1 MiB) würde ich viel eher verstehen.

rhf

von Walter Tarpan (Gast)


Lesenswert?

Eigentlich ist da der Wikipedia-Artikel ganz brauchbar:

https://de.m.wikipedia.org/wiki/Konventioneller_Speicher

von (prx) A. K. (prx)


Lesenswert?

Roland F. schrieb:
> Wodurch kam eigentlich diese "merkwürdige" Speichergrenze bei 640 KiB?
> 512KiB (oder 1 MiB) würde ich viel eher verstehen.

1 MB geht nicht, weil man Platz für 128 KB ROM-BIOS inklusive 
eingebautem BASIC benötigte. Dazu gingen dann noch 
Speicheradressbereiche für Display-Adapter und für BIOS/RAM sonstiger 
Adapter weg.

Blieben 640 KB frei, von denen IBMs ATs der ersten Version bei 
Vollausbau onboard mittels 128 Kbit DRAMs insgesamt 256 KB oder 512 KB 
nutzen konnten. In zweiten Version waren es immer noch 512 KB, mit halb 
so viel 256 Kbit DRAMs. 640 KB gab es also nur mit Erweiterungskarte.

: Bearbeitet durch User
von Nano (Gast)


Lesenswert?

Helge schrieb:
>  Um Eagle gut benutzen zu können, hatte ich mir DRDOS
> gekauft, damit waren ein paar byte mehr im lowmem möglich.

DR DOS 3.41 kostete im Nov 1989 149 DM. Wäre etwas mehr RAM nicht 
sinnvoller gewesen oder war das deutlich früher?

Wo man auch immer sehr viel konventionellen Speicher einsparen konnte 
war der Maustreiber. Der Maustreiber von Microsoft kostete extrem viel 
Speicherplatz. Da reichte es schon, in dem man ihn durch einen anderen 
austauschte um ein paar KiB Speicherplatz zu gewinnen und mit dem 
anderen funktionierte die serielle Maus ganz genauso.

von Nano (Gast)


Lesenswert?

Roland F. schrieb:
> Hallo,
> Nano schrieb:
>> Im Prinzip konnte durch die konventionelle Speichergrenze von 640 KiB
>> unter DOS ohne Tricks der Bereich zwischen 640 KiB und 1 MiB ja ohnehin
>> nur bedingt genutzt werden.
>
> Wodurch kam eigentlich diese "merkwürdige" Speichergrenze bei 640 KiB?
> 512KiB (oder 1 MiB) würde ich viel eher verstehen.
>
> rhf

Die hat IBM beim ersten PC so festgelegt.
Alles was oberhalb zwischen 640 KiB bis 1 MiB liegt, war nicht für RAM 
gedacht, sondern dazu, um Hardwarekomponenten einzubinden und über 
Memoryadressen anzusprechen.
Der 8086 konnte per Segment und Offset im Real Mode Speicheradressen bis 
zu 1 MiB ansprechen.

Vereinfacht gesagt, wenn du bspw. in C programmiert hast und eine 
Hardware ansprechen wolltest, dann hat ein Zeiger auf die Adresse 
gezeigt, wo die HW eingebunden war. Die VGA Grafikkarte fing bspw. bei 
Adresse A0000h (ein Hex Wert) an, das entspricht im 10er System der 
Adresse wo normalerweise das 688128 igste-Byte anfangen würde. Also 
oberhalb der 640 KiB Grenze.

Wolltest du also auf dem Bildschirm einen Pixel setzten, dann musstest 
du in das VRAM der VGA Grafikkarte einen Wert reinschreiben.
Und das VRAM der Grafikkarte war war quasi irgendwo ab Adresse A0000h 
"eingehängt".
Wegen der 16 bittigen CPU war die Segmentierung nötig, so dass man 
Speicherfenster von 2^16-1, also ca. 64KiB hatte.

Siehe dazu auch:
https://de.wikipedia.org/wiki/Upper_Memory_Block
https://de.wikipedia.org/wiki/Segmentierung_(Speicherverwaltung)

Und hier mit Grafik:
https://en.wikipedia.org/wiki/Upper_memory_area

Bei heutigen Betriebssystemen wird die Adresse, wo eine Hardware liegen 
soll, mit dem Betriebssystem und er HW ausgehandelt, die ist nicht mehr 
fest vorgegeben und wird auch nicht mehr per Jumper gesetzt.

Die 8 GB einer Geforce Karte werden bei einem 32 Bit OS,also irgendwo 
oberhalb der Adresse von 2^31-1 eingehängt.
Sollte im Rechner 4 GB RAM verbaut sein, dann kann man den 
Speicherplatz, der von einer Hardware überlagert wird, nicht nutzen.

Damals, als Speicherplatz noch kostbar war, gab es spezielle 
Mainboardchips, die diesen nutzbaren Speicher dann an höhere Adressen 
oberhalb der 1 MiB verschoben.
Unter DOS konnte man den im Real Mode aber nur mithilfe von EMS, XMS 
oder DOS Extendern ansprechen. Bei EMS und XMS wurde ein Speicherbereich 
oberhalb der 1 MiB einfach in den Bereich zwischen 640 KiB und 1 MiB 
eingeblendet.
Und bei den DOS Extendern schaltete man eine 32 Bit CPU ab dem 386er 
gleich in den Protected Modus, so dass man per 32 Bit breiter Adresse 
diesen Speicher oberhalb der 1 MiB linear ansteuern und adressieren 
konnte.

von Nano (Gast)


Lesenswert?


von Christian S. (roehrenvorheizer)


Lesenswert?

Nano schrieb:
> Oder ging man da gleich von 512 KiB auf 1 MiB?

Mein IBM-AT 5170 mit etwa 4 MHz hatte nur 512 kB RAM auf der Platine in 
Form von DIL-ICs. Mittels ISA-16-Bit-Vollformat-Steckkarte konnte dann 
auf 640 kB und zusätzliches RAM über 1MB erweitert werden.

https://de.wikipedia.org/wiki/IBM_Personal_Computer/AT

mfg

von Guido K. (Firma: Code Mercenaries GmbH) (thebug)


Lesenswert?

"Früher" haben wir solchen Kram wie Miep und Piep-Bytes nicht verwendet.

von Nano (Gast)


Lesenswert?

Guido K. schrieb:
> "Früher" haben wir solchen Kram wie Miep und Piep-Bytes nicht
> verwendet.

Früher schrieb man auf Disketten auch 2 MB, anstatt 1,44 MiB (bei 
normaler Formatierung), damit die Verwirrung komplett ist.

von rbx (Gast)


Lesenswert?

Ich hatte früher vor allem 3,5 DD Disketten verwendet.
( https://de.wikipedia.org/wiki/Double_Density )

Die Aufnahmegröße entsprach in ungefähr den standard-ab-Werk Ramgrößen 
der derzeit aktuellen Hardware. Allerdings kamen beim Emax2 auch nur ein 
DD-Diskettenlaufwerk mit und ansonsten Diva hinsichtlich Kompatibilität 
bei CD oder Festplatte.
(weswegen der Floppyemulator noch viel nützlicher erscheint)
(brennen geht wohl auch mit Apple)

Beim TX16W ging maximal 6 MB, beim Emax2 8 MB. Die hatte man vor allem 
für Live-Sessions genutzt, um Disketten-Wechsel-Ladepausen zu vermeiden.
Aber man konnte auch Live-Auftritte besuchen, mit recht langen 
Diskettenladepausen, wenn mehrere Disketten geladen werden mussten.

Auf vielen Geräten war es möglich, Basic einzusetzen. Das war so 
verbreitet, dass man schon von einer Lingua franca gesprochen hatte.

Recht hilfreich zum Programmieren beim PC waren neben den 
Fachzeitschriftenartikeln die Bücher von Peter Norton.

von Guido K. (Firma: Code Mercenaries GmbH) (thebug)


Lesenswert?

Nano schrieb:
> Früher schrieb man auf Disketten auch 2 MB, anstatt 1,44 MiB (bei
> normaler Formatierung), damit die Verwirrung komplett ist.

Also meine 140 KB Disk hatte 35 Spuren mit jeweils 16 Sektoren zu 256 
Byte.

Und nu?

von E34 L. (nostalgiker)


Lesenswert?

Peter D. schrieb:
> Ich kenne 286-er nur mit 640kB oder 1MB Erstbestückung.

Kenne ich auch so. Waren noch Zeiten, als der PC beim Booten erstmal den 
Arbeitsspeicher "hochgezählt" hat... bis 1024KB ;)

Man stelle sich das mal heute vor.

Die 1024KB waren ab Werk, zusammen mit Wordstar und einem 
Excel-ähnlichen Programm. Mehr war da nicht drauf.

von Nano (Gast)


Lesenswert?

Guido K. schrieb:
> Nano schrieb:
>> Früher schrieb man auf Disketten auch 2 MB, anstatt 1,44 MiB (bei
>> normaler Formatierung), damit die Verwirrung komplett ist.
>
> Also meine 140 KB Disk hatte 35 Spuren mit jeweils 16 Sektoren zu 256
> Byte.
>
> Und nu?

Es geht um den Aufdruck auf den Disketten.

Ich glaube Fujitsu machte das. Da stand dann bei HD Disketten außen 2 MB 
drauf, obwohl die regulär mit 1,44 MiB formatiert wurden.
Es gab zwar Sonderformate, die dann noch mehr Spuren nutzten und somit 
mehr schafften, aber DOS konnte das von Haus aus nicht. Man musste ein 
TSR laden, damit DOS diese Disketten lesen konnte und besonders 
zuverlässig war das auch nicht.

von 888 (Gast)


Lesenswert?

Nano schrieb:

> Ich glaube Fujitsu machte das. Da stand dann bei HD Disketten außen 2 MB
> drauf, obwohl die regulär mit 1,44 MiB formatiert wurden.

Das ist die Bruttokapazität. Die ergibt sich aus der Datenrate, der 
Drehzahl der Magnetscheibe, und der Anzahl der Spuren. Bei den Sony 3,5" 
- Disketten kommst Du bei SD/DD auf 1 MByte und bei HD auf 2 MByte. Von 
der Bruttokapazität geht nun die Formatierung ab. Address gap, address 
header, data gap, data header, data checksum. Damit bleiben die 
bekannten 720k oder 1,44 MByte beim PC.

Mit größeren Sektoren und kleineren Gaps bringt man auch 800 oder 900 
kByte Nutzdaten auf einer 1 MByte-Diskette unter. Und mit track-at-once 
(also nur ein Sektor pro Spur) kommt man der Bruttogrenze schon ganz 
schön nahe.

von Guido K. (Firma: Code Mercenaries GmbH) (thebug)


Lesenswert?

Nano schrieb:
> Ich glaube Fujitsu machte das. Da stand dann bei HD Disketten außen 2 MB
> drauf, obwohl die regulär mit 1,44 MiB formatiert wurden.

Die haben teilweise die brutto-Datenmenge angegeben, also inklusive der 
Pre- und Postamble für die Blöcke.

von DerEinzigeBernd (Gast)


Lesenswert?

Das war bei MFM-Festplatten auch so, da wurde die Brutto-Kapazität 
angegeben. Die 25 in der berühmten ST225 steht für 25 MB, wie auch die 
12 in der älteren ST412 für 12 MB steht.

Welche Kapazität die Diskette oder Festplatte schlussendlich hatte, war 
dem Anwender überlassen. Nicht alle Disketten wurden von PCs mit 
512-Byte-Sektoren genutzt, andere Computer nutzten z.B. 
256-Byte-Sektoren. Und die resultierten in geringerer Nettokapazität wg. 
noch mehr Verschnitt.

von (prx) A. K. (prx)


Lesenswert?

CP/M verwaltete Files in logischen Sektoren von 128 Bytes, was auch dem 
üblichen Diskettenformat der ursprünglich genutzten 8 Zoll Disketten 
entsprach. Später wurden die physikalischen Sektoren größer, die 
logischen aber blieben klein.

: Bearbeitet durch User
von WinXP (Gast)


Lesenswert?

Nano schrieb:

> Bei EMS und XMS wurde ein Speicherbereich
> oberhalb der 1 MiB einfach in den Bereich zwischen 640 KiB und 1 MiB
> eingeblendet.
Bei EMS ja, bei XMS nicht! Siehe 
https://en.wikipedia.org/wiki/Extended_memory

von Nano (Gast)


Lesenswert?

WinXP schrieb:
> Nano schrieb:
>
>> Bei EMS und XMS wurde ein Speicherbereich
>> oberhalb der 1 MiB einfach in den Bereich zwischen 640 KiB und 1 MiB
>> eingeblendet.
> Bei EMS ja, bei XMS nicht! Siehe
> https://en.wikipedia.org/wiki/Extended_memory

Du hast trotzdem nur ein max. 64 KiB Fenster im Real Mode 
Speicherbereich. Denn die DOS Anwendung, die XMS Speicher über den 
Extended Memory Manager nutzt, ist immer noch nur eine 16 bittige Real 
Mode Anwendung, sie kann selbst also gar nicht mehr als 2^20-1 Byte = 1 
MiB + vielleicht noch den HMA Bereich adressieren.

Und ja, das ganze geht dann über eine API die der Extended Memory 
Manager, z.B. HIMEM.SYS dann bereit stellt.

Siehe dazu die XMS 3.0 Spezifikation, da steht es drin:
http://www.phatcode.net/res/219/files/xms30.txt

Der Unterschied zu EMS, abgesehen davon, dass der aus der Zeit der 
Memory Expander Karten stammte, ist also eher bei XMS der, dass die DOS 
Anwendung auf einen Speicherbereich bis max 64 KBit im AFAIK 
konventionellen Speicherbereich zeigt und dann die API des Extended 
memory Managers aufruft und an diese diesen Speicherbereich übergibt, 
damit der die Daten dort abholt und nach oben in den Bereich über 1 MiB 
kopiert.
Die DOS Anwendung selbst greift auf diesen Bereich oberhalb der 1 MiB 
somit selbst nie zu und dieser Speicherplatz lässt sich auch nur für 
Daten, nicht aber für ausführbaren Code nutzen.


Wenn du den Bereich oberhalb von 1 MiB + HMA mit einer Anwendung unter 
DOS direkt ansprechen willst, dann darf die Anwendung nicht mehr im Real 
Mode laufen, sie muss den Protected Mode nutzen und 32 Bit sein und dann 
kann sie den Speicher linear ansprechen.
Da DOS und das BIOS aber weiterhin im Real Mode laufen, braucht sie für 
DOS Und BIOS Calls einen Vermittler und diese Aufgabe erledigt ein DOS 
Extender.

von Nano (Gast)


Lesenswert?

Bezüglich der DOS Extender siehe dazu auch:

http://www.delorie.com/djgpp/doc/eli-m17n99.html#Extending%20DOS

von Bernd (Gast)


Lesenswert?

Hallo,
mein 286er PC aus dem Jahr 1985, welchen ich 1991 geschenkt bekam, hatte 
im Original eine Speicherbank mit 512 kB und eine mit 128 kB = 640 kB. 
Man konnte die zweite Speicherbank auch mit 512 kB bestücken, wobei 
diese dann auf einer Adresse oberhalb von 1 MB angesiedelt waren und 
sich der konventionelle Speicher auf 512 kB verringerte. Ich habe dann 
auf diese zweiten 512 kB huckepack die 128 kB aufgelötet und die 
weggebogenen CS-Pins mit dem Jumper-Pin, der für die Aktivierung der 128 
kB zuständig war, verbunden. So konnte ich beide Varianten nutzen und 
hatte die absonderliche Speicherkapazität von 1152 kB. Allerdings musste 
ich nun die Taktfrequenz von 12 MHz auf 10 MHz verringern. Später habe 
ich dann noch mit Hilfe einer Vollformat-Lochrasterplatine weitere 512 
kB hinzugefügt.
Windows 3.0 lief mit einigen Einschränkungen auch schon auf einem 286er 
mit 640 kB.

Bernd

von Nano (Gast)


Lesenswert?

Bernd schrieb:
> Ich habe dann
> auf diese zweiten 512 kB huckepack die 128 kB aufgelötet und die
> weggebogenen CS-Pins mit dem Jumper-Pin, der für die Aktivierung der 128
> kB zuständig war, verbunden.

Hast du den Rechner noch?
Falls ja, könntest du mal davon ein Foto machen damit ich mir das besser 
vorstellen kann.

von DerEgon (Gast)


Lesenswert?

Bernd schrieb:
> Windows 3.0 lief mit einigen Einschränkungen auch schon auf einem 286er
> mit 640 kB.

Es lief sogar auf einem XT. Sofern man das "laufen" nennen wollte.

von Bernd (Gast)


Angehängte Dateien:

Lesenswert?

Den Rechner habe ich leider nicht mehr. Aber das hier habe ich noch 
gefunden, den letzten Überrest meiner 512k-Erweiterung auf Lochraster. 
Da ich die Schaltkreise nicht alle einzeln verdrahten wollte habe ich 
sie einfach übereinander gelötet, nur die Datenleitungen waren getrennt 
(3. Pin von hinten). Die Bustreiber, Adressdekoder, RAS-CAS-Multiplexer 
u.s.w. waren auf der Lochrasterplatine.
So ähnlich wie hier waren auf dem Motherboard 16 mal jeweils ein 64k und 
ein 256k RAM übereinander gelötet und nur die Chipselektpins getrennt 
verdrahtet.
Bernd

von Nano (Gast)


Lesenswert?

Danke für das Foto.

Mich wundert, dass das so funktioniert hat. Bin da aber nicht so in der 
E-Technik drin. Dachte immer, dass die Chips speziell angesteuert werden 
müssen und man da nicht einfach Chips wild mischen kann.

Ein Schaltplan oder zumindest ein grober Überblick wäre nicht schlecht.

von Bernd (Gast)


Lesenswert?

Sicher, dass es funktioniert, war ich mir damals auch nicht. Deshalb 
habe ich erst mal 1 Bit umgebaut, und als das funktionierte den Rest.
Die XX64er und XX256er unterscheiden sich nur an Pin 1, beim XX64er ist 
das nicht verbunden und beim XX256er ist es A8.
Bernd

von Rolf M. (rmagnus)


Lesenswert?

Nano schrieb:
> Die DOS Anwendung selbst greift auf diesen Bereich oberhalb der 1 MiB
> somit selbst nie zu und dieser Speicherplatz lässt sich auch nur für
> Daten, nicht aber für ausführbaren Code nutzen.

Warum sollte da kein ausführbarer Code drin sein können? Dem himem.sys 
ist es egal, was da drin steht. Der kopiert es nur. Und wenn es dann in 
den Bereich kopiert wurde, auf den das DOS-Programm zugreifen kann, kann 
es natürlich auch darin enthaltenen Code ausführen. Wer sollte das 
verhindern?

> Wenn du den Bereich oberhalb von 1 MiB + HMA mit einer Anwendung unter
> DOS direkt ansprechen willst, dann darf die Anwendung nicht mehr im Real
> Mode laufen, sie muss den Protected Mode nutzen und 32 Bit sein und dann
> kann sie den Speicher linear ansprechen.

Es gibt Möglichkeiten, auch im Real Mode (bzw. dann gerne als "unreal 
mode" bezeichnet) mehr anzusprechen, ab 386 auch den kompletten 
32-Bit-Adressraum am Stück. Das war keine offizielle Betriebsart, wurde 
aber dennoch manchmal genutzt, um sich z.B. das zu sparen:

> Da DOS und das BIOS aber weiterhin im Real Mode laufen, braucht sie für
> DOS Und BIOS Calls einen Vermittler und diese Aufgabe erledigt ein DOS
> Extender.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.