News DOSBox Pure: Emulator soll schon bald entfesselt werden

Wieder was gelernt. Habe das nicht gewust dass es ne neue dosbox version gibt. Aber gut dann kann ich schauen die alten schinken die rum fliegen mal zum laufen bringen. Bin da gespannt vor allen Dune 2 und die siedler 1. Oder die siedler 2.
 
Wenn Bill Gates doch nur gewußt hätte, wie lang seine Schöpfung die Menschheit verfolgen wird, dann hätte es wohl auch Adressraum für mehr als 1MB RAM gegeben. Keine speziellen Bootdisketten mehr, das wäre ein Segen gewesen...
Der Adressraum ist einfach IBM PC Design und wurde nicht von Microsoft erfunden...
 
Der Adressraum ist einfach IBM PC Design und wurde nicht von Microsoft erfunden...

Soweit ich weiß, hat niemand Bill Gates daran gehindert, die Grenze höher zu legen. Es ergab halt eben damals wenig Sinn. Wir reden von Ende der 70er, Anfang der 80er. Damals war 1 MB RAM etwa so, wie heute 1TB. Von daher hat er halt einfach diese Grenze genommen und gut war es. Wenn er gewußt hätte, dass uns seine Schöpfung bis Mitte der 90er und darüber hinaus verfolgen wird, dann wären die vollen 16MB, die der 16 Bit Adressraum erlaubt, logischer gewesen. IBM wäre es wohl egal gewesen.

Korrigiere mich, wenn ich falsch liege.
 
Soweit ich weiß, hat niemand Bill Gates daran gehindert, die Grenze höher zu legen. Es ergab halt eben damals wenig Sinn. Wir reden von Ende der 70er, Anfang der 80er. Damals war 1 MB RAM etwa so, wie heute 1TB. Von daher hat er halt einfach diese Grenze genommen und gut war es. Wenn er gewußt hätte, dass uns seine Schöpfung bis Mitte der 90er und darüber hinaus verfolgen wird, dann wären die vollen 16MB, die der 16 Bit Adressraum erlaubt, logischer gewesen. IBM wäre es wohl egal gewesen.

Korrigiere mich, wenn ich falsch liege.

Die Grenze ergab sich damals aus den maximal 1 MiB, die der 8088 verwalten konnte, und dem Bedarf an systeminternen Speicher. Eins minus das andere ließ 640k freien Adressraum für Anwendungen und ohne Adressvirtualisierung hatte das Betriebssystem auch keine Wahlfreiheit, wo im Adressraum der reservierte Block liegt; er kam ganz nach oben.

Was ich nicht weiß: Ob es (boot-)technisch möglich gewesen, den physischen RAM erst bei 384k starten zu lassen und alles darunter für Systemzwecke zu reservieren. Falls ja, hätte ein IBM-Ingenieur daran denken müssen und dann hätte Betriebssystem einen nach oben hin offenen Adressraum als Arbeitsspeicher nutzen können. Aber entweder war es nicht möglich oder es hat niemand daran gedacht, was passiert, wenn PCs statt 16 bis 64 KiB RAM irgendwann einmal mehr als 640 KiB haben sollten. Und ehrlicherweise muss man sagen, dass sie dafür auch keinen Grund hatten: Apple II, IBM 5100 und Co hatten ebenfalls "bis zu 64 KiB". Es gab in den 4-6 Jahren vor dem IBM-PC keine quantitative Entwicklung und mehr als 6 Jahre davor gab es Einzelplatzcomputer mit CPU, RAM und Bildschirm schlichtweg gar nicht. Niemand wusste, dass er mit der Arbeit am IBM-PC einen Grundstein legt, auf den eine Jahrzehntelange, zudem exponentielle Entwicklung aufbauen würde. 640k? Selbst wenn man den Preisverfall berücksichtigt und somit RAM-Upgrades in Nachfolgemodellen für möglich gehalten hat, muss das aus damaliger Perspektive wie eine Reserve bis zum Ende des Jahrtausends ausgesehen haben. Also bis in eine Zeit, wo niemand mehr über Kommandozeilen-Betriebssystem nachdenkt, sondern alle Sprachbefehle an ihr intelligentes Haus geben, ehe sie sich vom autonomen Flugauto zu einer Tagesbeschäftigung bringen lassen, die nichts mehr mit Arbeit gemeinsam hat, weil ja Computer und Roboter alle Arbeiten übernehmen.
 
Nicht zu vergessen in der Hinsicht: Real Mode, Protected Mode, Virtual 8086 Mode, A20 Gate.

Fast alles von damals verfolgt einen bis heute. Das zeigte sich im Mai 2023 nochmal, als Intel das Konzept x86S vorstellte, welche ein beachtlichen Teil dieser Legacy-Komponenten entfernt hätte, was dann aber leider anderthalb Jahre später wieder beerdigt wurde.
Eigentlich hätte es schon mindestens 10 Jahre früher kommen und durchsetzen müssen.
 
Zuletzt bearbeitet:
Was Intel da absägen wollte, existiert heute sowieso nur noch virtuell und spielt nur für die boot-up-Phase von UEFIs und eben für Retro-/Emulatorenprojekte eine Rolle. Intel wollte die 8086-Kompatibilität abschaffen, obwohl das im heutigen Betrieb exakt gar keinen Unterschied gemacht hätte. Verständlich, dass absolut niemand Lust hatte, fundamentalste und bewährteste Basics nochmal anzurühren.

Aber bei de 640k-Entscheidung spielte all das noch gar keine Rolle. Der 8088 lief immer im real mode und Adressen, die über A19 rausgingen, wurden immer gewrapt.
 
Die Grenze ergab sich damals aus den maximal 1 MiB, die der 8088 verwalten konnte, und dem Bedarf an systeminternen Speicher.
8088/8086: Segment Register + Basisregister, beide 16 bit und addiert, dabei das Segment Register um 4 bit nach links verschoben. Maximale Adresse daher z.B. für Programmcode: CS=0xFFFF, IP=0x000F
Code:
CS: FFFF -> FFFF0
FFFF0 +   (CS)
  000F       (IP)
-------------
Adr: FFFFF = dezimal  1.048.575 Bytes
Wird IP größer, gibt es einen Wrap, d.h. CS=0xFFFF und IP=0x1F gibt wg. des Overflows 0x0000F. Das gab dann auch später Probleme, wenn Programme diesen Wrap ausgenutzt haben, um z.B. die Interrupt-Tabelle im unteren RAM-Bereich anzusprechen.

Der 8088 hatte auch nach außen nur 20 Adress-Leitungen und konnte damit eben nur physikalische 1.048.575, also 1 MB Speicher (RAM oder ROM) ansprechen.

Eins minus das andere ließ 640k freien Adressraum für Anwendungen und ohne Adressvirtualisierung hatte das Betriebssystem auch keine Wahlfreiheit, wo im Adressraum der reservierte Block liegt; er kam ganz nach oben.
Der Original IBM-PC hatte einfach nur maximal 640K an RAM-Chips drin (wir reden über zwei- bis drei stellige Kilobits pro Chip). Im oberen Adressbereich lag dann das BIOS-ROM, der eigentliche Startcode musste ab 0xFFFF0 beginnen (beim Power On: Segment Register CS = 0xFFFF, Instruction Pointer = 0x0000, mit der 4bit versetzten Addition: 0xFFFF0, dort war dann ein Sprung in eine der Adressen weiter unten, wo das eigentliche BIOS begann (ich glaube ab 0xF0000).

Auch dass das VIdeo-RAM der CGA (und später EGA + VGA) zwischen RAM und BIOS lag (ich glaube, 0xA0000, das erklärt auch die 640K "Normal-RAM"), war wohl eine Design-Entscheidung, die aber eigentlich wegen des 8088 Segment Register Modells eh wurscht ist, das Limit waren einfach die 20 Adressleitungen.

Die "Kompatiblen" hatten später größere RAM-Chips drin und damit das volle Megabyte, allerdings wurde das BIOS einfach über das RAM gemappt. Es gab dann auch NEAT-Chips, die man programmieren konnte und damit z.B. einen Teil der RAM-Chips an bestimmte, unbenutzte Stellen im BIOS mappen. Da liesen sich dann per UMB (Upper Memory Blocks), die ab einer bestimmten Version des EMM386.SYS zur Verfügung standen, TSR-Treiber reinladen und damit den Bereich <640 KB entlasten.

Es gab in den 4-6 Jahren vor dem IBM-PC keine quantitative Entwicklung und mehr als 6 Jahre davor gab es Einzelplatzcomputer
Ähm, PET, Commodore, Amiga, ich selbst hatte einen 8080 8bit DAI Computer (wow, den gibts sogar noch im Wikipedia), den ich am "Fernseher" per Antennenkabel angeschlossen hatte. Im Gegensatz zu heutigen Gurken: einschalten...2 Sekunden warten...geht. Und gespeichert wurde per Kassettenrekorder, weil die damaligen Floppy-Laufwerke teurer waren als der Computer.

Ich denke, IBM konnte einfach den PC in die Firmen bringen (hatte selbst einen "PC-XT" bekommen). Da sitzt das Geld, Firmen kaufen so was, wenn es Vorteile bringt. Und wenn man im Job den Vorteil sieht, will man so ein Teil auch zuhause haben...dann kamen die bezahlbaren Kompatiblen.

Allerdings hätte IBM die Motorola 68000 CPU nehmen sollen, die hat ein stimmigeres Register- und Opcode-Modell und hätte auch schon 24bit Adressleitungen gehabt. Wäre m.E. einfacher zu erweitern gewesen.

Übrigens: auch in der real existierenden DOSBox kann spielen Spaß machen, ich selbst baller ab und an gern mit der einst gekauften DOS Vollversion von Raptor rum. Oder kennt jemand noch die Space Quest Reihe mit Roger Wilco ?

Gut, dass ich meine alten Disketten alle auf CD/DVD-ROM kopiert hab, als die Mainboards keine Floppy-Anschlüsse mehr hatten :D
 
Zuletzt bearbeitet:
Zurück