Frage an MSDOS-Experten zur Speicherverwaltung unter MSDOS

  • Ich habe eine Frage bzgl. der Speicheraufteilung bei MSDOS


    Ich habe 3 Rechner, die unter MSDOS laufen:


    IBM 5155 DOS 3.30

    Compaq Portable I Compaq-DOS 3.31

    Compaq Portable III Compaq DOS 3.31


    Alle 3 Rechner haben 640 kB RAM, das wird beim Start auch korrekt erkannt. Alle Motherboards sind auf 640 kB gejumpert und im SETUP (Compaq) eingetragen/angezeigt.


    Alle Rechner haben ihr DOS ohne allen Firlefanz (keine Treiber für Zusatzkarten etc, Ausnahme siehe unten), das Problem (s.u) besteht auch beim frischen Booten von Diskette(n)


    Jetzt meine Frage: warum zeigen mir CHKDSK, Norton Commander und Checkit3 nur 639 kB an ? Wer klaut mir da 1 kB ??


    CHECKIT3 zeigt RAM von 00000 bis xAFBFF an. Man kann zum Speichertest auch bis xAFFFF eintragen und der Speicher wird OK getestet. Das fehlende 1 kB ist also "da".


    Beim IBM 5155 und dem Portable I ist eine XTIDE drin. In der XTIDE-Anleitung steht, dass im "full operating mode" 1 kB vom Speicher abgezwickt wird - ist das der Grund ?


    Im Portable III war aber nie eine XTIDE drin, er läuft mit der Harddisk.

    Und noch seltsamer: als ich den IIIer bekam hatte ich ihn neu aufgesetzt und einen Screenshot gemacht, wo CHKDSK 640 kB RAM anzeigte (unter Compaq DOS 3.31). :/


    1 kB sind zwar nur Peanuts, aber ich würde es gerne verstehen.


    Roland

  • Bei dem einen oder anderen BIOS wird 1KB vom DOS Speicher abgezweigt, um die Festplattendaten einer Platte mit Benutzerkonfiguration (HDD type 47) zu speichern.

    Der zu verwendenden Speicherbereich kann bei manchen BIOSen Setup auch ausgewählt werden, da sind dann die Auswahlmöglichkeiten gewöhnlich 0:300 oder DOS 1KB.

    Wenn das Problem mit einem voreingestellten Festplattentyp nicht auftritt, sollte die Frage beantwortet sein.

  • Bei dem einen oder anderen BIOS wird 1KB vom DOS Speicher abgezweigt, um die Festplattendaten einer Platte mit Benutzerkonfiguration (HDD type 47) zu speichern.

    Der zu verwendenden Speicherbereich kann bei manchen BIOSen Setup auch ausgewählt werden, da sind dann die Auswahlmöglichkeiten gewöhnlich 0:300 oder DOS 1KB.

    Wenn das Problem mit einem voreingestellten Festplattentyp nicht auftritt, sollte die Frage beantwortet sein.

    guter Punkt: beim Compaq nutze ich einen voreingestellten Typ (42) für eine moderne IDE-Platte. Bei den beiden anderen Rechnern eine XTIDE


    Roland

  • Das ist doch schon seit fast 40 Jahren Allgemeinwissen: Extended BIOS Data Area

    Und um Toast_r 's Aussage zu ergänzen, die ist nicht nur dazu da, um Festplattenparameter zu speichern, sondern wird auch für viele andere Zwecke genutzt.

    Danke, ich habe wohl die letzten 40 Jahre verschlafen.


    im Ernst: der Link ist wirklich hilfreich, danke. Was mich wundert ist, dass es mir nachweislich bei gleichem BIOS und gleichem DOS gelang, 640 k angezeigt zu bekommen, jetzt aber nicht mehr.


    April 2024:


    heute: gleiche Maschine, gleiches DOS, keine sonstigen Änderungen:



    Roland

  • Das ist doch schon seit fast 40 Jahren Allgemeinwissen: Extended BIOS Data Area

    Findest Du Deine Antwort nicht etwas anmaßend ???

    Gruß Torsten

    BFZ MFA, ZX80Core, AX81, ZX81, ZX81NU, Spectrum+, Harlequin, MSX VG8010, Amstrad NC100, Cambridge Z88, C64, C128D, Amiga 500 & 1200, Atari Portfolio, HP200LX, IBM PC5155, TP755c, TP755cx, T20, T41, T61, PS/2 (Model 40SX), PS/2E, Accura 101, Apple //e, Sharp PC1401 & PC1403H, TI59 m. PC-100c, HP48SX & HP48GX


    An die Person, die meine Schuhe versteckt hat, während ich auf der Hüpfburg war: Werd' erwachsen! :motz:


    ::matrix::

  • Was mich wundert ist, dass es mir nachweislich bei gleichem BIOS und gleichem DOS gelang, 640 k angezeigt zu bekommen, jetzt aber nicht mehr.

    Vielleicht zwischenzeitlich die XBDA im BIOS-Setup aktiviert?


    Findest Du Deine Antwort nicht etwas anmaßend ???

    Kann sein. Aber das war doch seinerzeit in den späten 80ern allgemein im Gespräch. Bzw., es war allgemein bekannt, dass diverse Programme ins Stolpern kamen, wenn wider Erwarten das freie RAM nicht bei 9FFF endete, sondern schon vorher. Deshalb doch auch die MOVEXBDA-Switches bei 386MAX, QEMM etc.

  • Findest Du Deine Antwort nicht etwas anmaßend ???

    Kann sein. Aber das war doch seinerzeit in den späten 80ern allgemein im Gespräch. Bzw., es war allgemein bekannt, dass diverse Programme ins Stolpern kamen, wenn wider Erwarten das freie RAM nicht bei 9FFF endete, sondern schon vorher. Deshalb doch auch die MOVEXBDA-Switches bei 386MAX, QEMM etc.

    Da hast du Recht, das ist Allgemeinwissen. Wer das nicht weiß, der sollte hier eigentlich des Forums verwiesen werden und sollte zur Strafe alle seine DOS-Rechner abgeben. :D


    Aber, auch wieder was gelernt. :thumbup:

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Guten Tag

    Roland_t29


    Gibt es eine Erklärung, warum z. b die Anzahl der versteckten Dateien variieren,


    kannst du die versteckten Dateien ggf anzeigen oder benennen

  • fanhistorie :

    den Zustand der Platte vom April mit den 9 versteckten Dateien kann ich nicht mehr rekonstruieren. Die Platte wurde danach neu formatiert, wieder mit Compaq DOS 3.31


    Es werden 3 versteckte Dateien mit 55296 Bytes angezeigt. Ich finde (mit Norton Util) nur die üblichen 2 versteckten Dateien: IBMBIO und IBMDOS. Die machen zusammen 54292 Bytes, fehlen 1004 Bytes zu den o.g. 55296 Bytes


    Das gilt nicht nur für die Platte, sondern auch für die Bootdiskette zu Compaq DOS


    Beim IBM 5155 unter MS DOS 3.30 ist es ähnlich:


    CHKDSK zeigt hier 2 versteckte Dateien an Dateien. Addiert man deren Länge, fehlen auch hier knapp 1 kB.

    Auch hier ist es auf der Platte und auf der Bootdiskette dasselbe.


    Roland

  • Es werden 3 versteckte Dateien mit 55296 Bytes angezeigt. Ich finde (mit Norton Util) nur die üblichen 2 versteckten Dateien: IBMBIO und IBMDOS. Die machen zusammen 54292 Bytes, fehlen 1004 Bytes zu den o.g. 55296 Bytes

    Die 55296 Bytes sind genau 108 Sektoren, 54292 nur 106,039.

    Die 1004 Bytes sind also die unbenutzten Bytes in den Sektoren.


    Die 55296 Bytes ist also nicht die Summe der Dateigroessen, sondern des belegten Platzes.

    ;------------------------------------
    ;----- ENABLE NMI INTERRUPTS
    (aus: IBM BIOS Source Listing)

  • Oh man, keiner der hier Mutmaßungen äußert, scheint x86 Assembler zu programmieren.

    Der freie Speicher unter DOS wird anhand von DOS Interrupt(s) und einer Kalkulation mit Hilfe des PSP gemacht. Ausserdem muss DOS ja bestimmte Verwaltungsinformationen für das laufende DOS ablegen können. Wenn man 640KB komplett nutzen würde, wäre ja kein Platz übrig für die besagten DOS Daten.

    Ich hatte mal hier im Forum ein Assembler-Beispielcode veröffentlicht, wo man recht einfach sehen kann, wie das vor sich geht (war 2021, aber die Suchfunktion ist gegen mich).


    Edit: Ein paar Beispielprogramme in x86 Assembler für DOS - Teil 3: System-Informationen anzeigen

    "The biggest communication problem is we do not listen to understand. We listen to reply." - Stephen Covey


    Webseite und Blog ist immer noch - seit fast 20 Jahren - online.

  • Ich habe mit Hilfe von DEBUG meine Frage gelöst, Toast_r in #10 hat mich drauf gebracht:


    In dem "abgezwackten" 1 kB steht bei x9FC00 - x9FDFF eine Kopie des Bootsektors. Er beginnt mit EB 3C 90, dann die Signatur "IBM 3.3", dann die üblichen Angaben zur FAT etc, später der Bootloader und am Schluss die 55 AA als Signatur.


    x9FE00 - x9FFFF ist mit 00 belegt


    Damit ist für mich klar, den Bereich hat sich DOS reserviert und die 639 kB RAM-Anzeige geht OK.


    Warum ich mal 640 kB bei CHKDSK gesehen habe ist damit nicht geklärt, ich kann das aber auch nicht mehr reproduzieren. Ich lass es damit mal auf sich beruhen.


    Roland

  • Guten Abend

    Roland_t29


    Hast du also auf deinem Compaq ein IBM 3.3 System nunoder bezog sich die letzte Aussage auf den IBM 5150


    Würde damals bei der Installation die IDE Festplatte, alle Sektoren komplett überschrieben oder nur neuformatiert,


    Bei meinem 2660 zeigt unter MS-Dos 5.0 CHKDSK soweit die 655360 Byte konventioneller Arbeitsspeicher

  • DEBUG habe ich auf dem Compaq III laufen lassen. Letztlich ist Compaq DOS 3.31 ein MSDOS 3.3 mit einigen wenigen Änderungen, so dass mich das "IBM 3.3" erstmal nicht erstaunt hat.


    Die IDE-Platte war aus einem alten Mac und wurde unter Compaq DOS 3.31 mit FDISK und FORMAT eingerichtet.

    Der Compaq Portable I, der auch nur 639 kB anzeigt, hat eine XTIDE, ebenfalls wie oben eingereichtet


    Dass DOS 5.0 CHKDSK was anderes anzeigt überrascht mich nicht: ein anderer Compaq (LST/286) unter DOS 6.2 zeigt bei mir auch die vollen 640 kB mit CHKDSK an


    Roland

  • Bei meinem 2660 zeigt unter MS-Dos 5.0 CHKDSK soweit die 655360 Byte konventioneller Arbeitsspeicher

    habe den Portable III eben mal mit MSDOS 6.20 gebootet: CHKDSK zeigt 640 kB an !


    Mein Problem ist wohl eine Eigenart von DOS 3.3(1). Da ich die Rechner "wie damals" betreiben will, bleib ich dabei und lebe mit dem fehlenden 1 kB


    Roland

  • In dem "abgezwackten" 1 kB steht bei x9FC00 - x9FDFF eine Kopie des Bootsektors. Er beginnt mit EB 3C 90, dann die Signatur "IBM 3.3", dann die üblichen Angaben zur FAT etc, später der Bootloader und am Schluss die 55 AA als Signatur.

    Ja, der Bootloader wird normal "direkt unterm Dach" geladen.

    Eigenartig nur, dass er nach Benutzung anscheinend nicht freigegeben wird.

    Nun, IBM war oft bissl speziell. Vllt auch ein Grund warum kaum jemand IBM DOS benutzt hat.


    Was sagt denn die MCB Chain?

    Siehe z.B. http://tools.dosforum.de/#mcbscan


    Evt. besser z.B. Compaq DOS 3.31 zu benutzen.

    Ist das beste DOS 3.3 wo gibt ;) Haben seinerzeit alle Freunde und Kollegen benutzt, wegen Partitionen>32MB.


    Das beschriebene Phänomen war jedenfalls seinerzeit nicht bekannt.


    Ergo wirft sich die Frage auf:

    Befindet sich auf Deinem System vllt ein Mischmasch von Compaq und IBM IO.SYS, MSDOS.SYS und COMMAND.COM?

    Das könnte nämlich eine Erklärung liefern, warum der Bootstrap-Buffer nach dem Booten nicht freigemacht wird...