1MB Speicher-Karte 8bit für XTs

  • ..wie wird denn das bei 386er Boards mit 2MB Ram gelöst? wird durch den emm386 ein bestimmter Speicherbereich "ausgeblendet", wo die ganzen VGA- IDE- etc. Treiber liegen?

  • ..wie wird denn das bei 386er Boards mit 2MB Ram gelöst? wird durch den emm386 ein bestimmter Speicherbereich "ausgeblendet", wo die ganzen VGA- IDE- etc. Treiber liegen?

    Die belegten Bereiche für VGA und BIOS-Erweiterungen bleiben auch beim 386er belegt. Ich habe mich da nie wirklich mit beschäftigt, aber es gibt da ja so Mechanismen wie Shadow-RAM, Stealth-Memory und natürlich den 64K HMA-Block. Ich habe diese Optionen beim EMM386 und bei QEMM immer nur benutzt ohne wirklich zu verstehen, wie das technisch funktioniert. Ok, HMA hatte ich schon verstanden.


    Es wurde eben in jede vorhandene Lücke RAM eingeblendet und auch genutzt. Ab 386 ging das halt - irgenwie. ;)

    Ab Version 5 hat MS-DOS das auch unterstützt.

  • Sodele... ein kleiner erster Erfolg:


    BIOS zählt bis 704KB hoch

    PC DOS 3.3 bootet.


    Ich habe meinen Rechner von 640KB (Bank 1-2-3) auf 512KB (Bank 1-2) downsized und die XT-ISA 1MB Karte so konfiguriert, das sie die Bereiche ab 512KB bis 704KB abdeckt. Der Jumper "Card Select" ist nicht gesteckt, da die Karte in SLOT 6 steckt. Das entspricht nun einem fortlaufenden RAM Bereich von 0x00000 - 0xAFFFF. Der Videospeicher von 32KB startet bei 0xB0000. Das ROM der XT-IDE CF Karte startet bei 0xD0000. Somit sollte es keinen Konflikt geben.


    Programme lassen sich (nun) starten.


    CheckIT zeigt beim RAM Test für die ersten 512KB ein "√", also ok... für die kommenden 128KB ein "X" für Fehler und für die restlichen 64KB wieder ein "√", also der Bereich soll wieder OK sein. Allerdings werden trotzdem 704KB als Gesamtspeicher angezeigt :grübel::nixwiss:


       



    Norton 6.01 zeigt im oberen Programmbereich an, das DOS 704KB reportet, 63KB davon sind belegt und der Rest 639KB stehen zur Verfügung. Weiter unten werden aber nur 640KB (0x00000 - 0xAFFFF reportet und 32KB Videospeicher (0xB0000 - 0xB8000) :nixwiss::grübel:


       


    Frage: hat jemand mal ein wirklich gutes DOS Testtool aus dem dann auch wirklich erkenntlich ist was hier ggf. schief läuft ?

    Am besten eins aus dem man auch sehen kann, wo was geladen wurde ?


    Danke


    PS: ich schau mal weiter... auf dem Board gibt es keine Möglichkeit die Speichergröße einzustellen.

    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


    ::matrix::

  • Ich habe mir mal die Anleitung von dem USEUMB-Treiber angeschaut.


    Die gute Nachricht: der macht wohl genau das, was ich erhofft hatte - also UMB auch auf dem XT zur Verfügung stellen.

    Die schlechte Nachricht: man muss anscheinend die gewünschten Speicherbereiche in dem Treiber patchen. Der Treiber kennt keine Parameter. :(

    Das geht aber recht einfach und funktioniert.


    https://retrocmp.de/hardware/i…a-fdc-kiselev.htm#lo-tech

  • Aha. Der Treiber unterstützt anscheinend nur einen zusammenhängenden Block.

    Ich glaube da werde ich zum Patchen mal ein kleines Tool schreiben. Gerade jetzt beim Experimentieren werde ich den Bereich öfter mal ändern.


    Wird nur ein max. 64K großer Speicherbereich unterstützt oder geht auch mehr? Ich hätte ja in meinem Unitron von D200 - EFFF frei.


    EDIT: Stimmt nicht! Der Treiber unterstützt anscheinend 6 Speicherblöcke. Das braucht auf jedenfall ein Tool. Das will ich nicht bei jeder Umkonfiguration wieder von Hand mit dem Debugger patchen.

  • ui - wie praktisch - da ist auch eine exakte Zeichnung von der benötigten Blende:

    https://www.lo-tech.co.uk/wiki…_ISA_Slot_Brackets#Type_3

    kann man die 3D-drucken? CBM_Ba :*:*:*

    Na dann mach ich mich die Tage mal ans Konstruieren. Brauche aber die Platine noch. ;)

  • Toast_r

    Da bin ich- was die Stabilität angeht- bei dir, aber mir gefällt es überhaupt nicht... der (zwangsläufig) gelötete Winkel ist irgendwie nix.

    Ich hab jetzt schon zwei SD2IDE-Adapter mit selbstgedrucktem Slotblech verbaut- das hält für den Zweck absolut ausreichend. Natürlich in PETG, nicht in PLA.


    Die Möglichkeiten des Einsatzes von Platinen bspw. für Frontplatten hingegen finde ich absolut GEEENIAAAL! Mittlerweile lässt sich da wirklich ALLES umsetzen! Bietet u.a. PCBway an... da wird sich Schäffer bald warm anziehen können, mit den unglaublich viel zu hohen Preisen. :)

    • Official Post

    Toast_r

    Da bin ich- was die Stabilität angeht- bei dir, aber mir gefällt es überhaupt nicht... der (zwangsläufig) gelötete Winkel ist irgendwie nix.


    Meinst Du die gelötete Befestigung an der Karte?

    Das finde ich auch nicht so prickelnd, aber das lässt sich mit Schraubwinkeln lösen.

  • Toast_r

    Da bin ich- was die Stabilität angeht- bei dir, aber mir gefällt es überhaupt nicht... der (zwangsläufig) gelötete Winkel ist irgendwie nix.


    Meinst Du die gelötete Befestigung an der Karte?

    Das finde ich auch nicht so prickelnd, aber das lässt sich mit Schraubwinkeln lösen.

    Japp, die meinte ich.
    Hmm, an Winkel hab ich nicht gedacht- das stimmt wohl!

    Vorteil der Platine wäre auch, dass sie eine homogene Aussenfläche hätte.

    Aber ich konstruier einfach nen druckbares Slotblech, wird schon reichen. :)

  • Neue Erkenntnisse. :)


    Erstmal vorweg:


    Nachdem ich mein Patch-Tool für den USE!UMBS-Treiber fertiggestellt hatte. habe ich festgestellt, dass die Version 2.2 des Treibers jetzt Parameter unterstützt und nicht mehr gepatcht werden muss. Da werden fleissig neue Versionen mit neuen Features erstellt, aber die Dokumentation wird nicht aktualisiert. Ich habe das jetzt im Assembler-Quelltext gefunden. Vielleicht bin ich auch wieder zu doof, die richtige Version der Doku zu finden. :stupid:


    Aber auf jeden Fall ist das so jetzt deutlich komfortabler. Und ein bisschen Turbo Pascal coden hat ja auch Spaß gemacht, auch wenn das Programm für die Tonne ist. ;)


    Jetzt zur 1MB-Karte:


    Ich habe jetzt mal die alte 256K-Erweiterung aus meinem XT rausgeschmissen und das ROM vom XT-IDE nach C800 verschoben. Damit ist jetzt der D000 und E000 Bereich komplett frei. Das ergibt dann folgendes Memory-Mapping:


    0000-3FFF 256K RAM XT-Board

    4000-9000 384K RAM 1-MB-Karte

    A000-BFFF VGA-Speicher

    C000-CFFF VGA- und XT-IDE BIOS

    D000-EFFF 128K RAM 1-MB-Karte


    Dann diese Zeile in die CONFIG.SYS:


    DOS=UMB

    DEVICE=USE!UMBS.SYS D000-EFFF


    So sieht das dann mit MEMLIST aus:



    und hier die MEM-Ausgabe vom DOS 6.2 mit geladenen Novell-Treibern:



    Man sieht, dass jetzt 128K hoher Speicher zur Verfügung steht und dass die Netware-Treiber dort komplett reingeladen wurden. Und da wären jetzt sogar noch 46K Platz für weitere Treiber.


    Von den 640K DOS-Speicher sind noch 568K frei. Und das mit DOS 6.2, das ja nicht gerade sparsam mit dem Speicher umgeht.

    Da lässt sich aber sicher noch mehr rausholen. Das ist alles noch nicht optimiert.


    Das gefällt mir!

  • detlef : kannst Du bitte mal die letzte Version USE!UMB zur Verfügung stellen?


    Eventuell sollte ich auch die DOS Version auf meinem XT upgraden... was mich daran ein wenig stört ist die Tatsache, das DOS 3.3 ja das eigentliche BS für diese Maschinen war. Aber na. Mal schauen.

    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


    ::matrix::

  • Eventuell sollte ich auch die DOS Version auf meinem XT upgraden... was mich daran ein wenig stört ist die Tatsache, das DOS 3.3 ja das eigentliche BS für diese Maschinen war. Aber na. Mal schauen.

    Vor MS-DOS 5.0 kein UMB. Da ist wohl leider nichts zu machen. Bei einem Marken-PC, wie z.B. meinem Euro-XT oder bei einem PC10 würde ich das auch nicht machen. Aber diese Noname-Kisten, wie meinen Unitron, haben wir damals zum Schluss auch mit DOS 6.2 gefahren (als Mailbox-Rechner). Deswegen ist das für mich authentisch.


    Die Version 2.2 des USE!UMBS-Treiber im Anhang. Achtung, nicht die SYS-Datei aus dem Root-Verzeichnis nehmen sondern die aus den 2.2-Verzeichnis.

  • Hallo zusammen,

    ich habe da 2 Fragen:

    1. was gebe ich demjenigen der meine Erweiterungen aufbauen wird an die Hand zwecks Bestückung etc. und muss etwas speziell beachtet werden?

    2. Jetzt, wo es diese schönen Erweiterungen gibt, hat da jemand zufällig noch eine 128 oder 256kb große Erweiterung übrig?

  • In meinem Unitron ist im Moment gerade eine 256K-Erweiterung übrig. Aber ich habe mich noch nicht entschieden, ob ich mich davon trennen möchte. ;)


    Zur Bestückung: der Bestückungsplan ist auf der Platine aufgedruckt. Der ist eigentlich selbst erklärend, wenn man sich daran hält. Ggf. noch ein Foto einer bestückten Platine hier aus dem Forum (meins kannst du z. B. verwenden). Wegen der Orientierung der Dip-Schalter.


    Bei dem Bauteilesatz sind keine IC-Fassungen dabei. Falls du die haben willst, müsstest du dir die noch besorgen (bei Reichelt z.B.). Oder dein Bestücker hat vielleicht welche.


    Ansonsten ist der Aufbau eher trivial für jemanden, der das nicht zum ersten Mal macht.

  • Sodele... jetzt funktioniert auch mein BOX16 XT... in Bank 2 & 3 waren wie in Bank 0 & 1 => 41256 RAM Chips installiert. Nachdem ich in Bank 2 & 3 => 4164 RAM Chips installiert habe zählt der Rechner sauber bis 640KB hoch. Nach einsetzten der 1MB Karte und setzen von SW 2.3 werden jetzt sauber 704KB angezeigt und auch von CheckIT sauber erkannt und getestet. Das Fenster zwischen dem CGA Adapter und der XT IDE Karte (C0000h - CFFFFh) wird leider nicht freigegeben. Aber was soll es... jetzt muß ich sehen ob ich bei DOS3.3 bleibe oder lieber > DOS 6 gehe um UMB nutzen zu können.


    Alles in allem, Danke für die schöne Karte

    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


    ::matrix::

  • So Burschen!


    Endlich hat auch mein 5155 die heiss ersehnten 640kB. Man nutzt ihn deshalb zwar genauso wenig, wie mit 256kB- aber so isses eben. :D



    In 20 Minuten lieblos zusammengebrutzelt- hatte nicht alle Fassungen passend- also gleich alles ohne verwurstet. ;)



    Morgen mach ich mich mal an die Konstruktion des Slotblechs für den 3D-Drucker.


    Frohes Fest!

  • So, werte Kollegen!


    Der erste Versuch sieht vielversprechend aus- getestet kann das Ganze erst morgen werden:




    Nicht beirren lassen- das Bild zeigt die SMD-Version der Karte, diese ist aber von den relevanten Abmaßen baugleich.

    Die 3D-Druck Version ist stabil genug- reicht dick für den Anwendungszweck.


    Ich berichte, wenn’s im Rechner hängt.

  • Ich habe mal die Adress Logik durch einen GAL ersetzt, und das Ganze dann mit KiCad umgesetzt.

    Damit enfallen alle kleinen IC's, die Widerstände und die Mäuseklaviere.


    Muß natürlich noch komplett geprüft werden, PCB's habe ich noch nicht bestellt.

    Und die SRAM Bausteine fehlen mir auch.


    Wollte dies einfach mal vorstellen und sehen ob von Interesse.



    Die Adress Logik in WINCUPL ( mit ein paar Beispielen ) sieht etwa so aus. Auch noch ungeprüft.


    Name XT-RAM ;

    PartNo 00 ;

    Date 22/09/2021 ;

    Revision 01 ;

    Designer Engineer ;

    Company PeacockXT ;

    Assembly None ;

    Location ;

    Device G16V8 ;


    /* *************** INPUT PINS *********************/

    PIN 1 = A14 ; /* */

    PIN 2 = A15 ; /* */

    PIN 3 = A16 ; /* */

    PIN 4 = A17 ; /* */

    PIN 5 = A18 ; /* */

    PIN 6 = A19 ; /* */

    PIN 7 = nMEMR ; /* */


    /* *************** OUTPUT PINS *********************/


    PIN 14 = nRAM1_EN ;

    PIN 15 = nRAM2_EN ;

    PIN 16 = nBUFF_EN ;

    PIN 17 = nCARDSEL ;



    /** Declarations and Intermediate Variable Definitions **/


    nRAM1_LO = !A19 ; /* XT-RAM speichert alle Sektoren 0 - 512k */


    /* nRAM1-LO = A14 & !A19 # A15 & !A19 # A16 & !A19 # A17 & !A19 # A18 & !A19; */ /* 16k - 512k */

    /* nRAM1-LO = A19 & !A19; */ /* Bereich 0 -512 k ausgeblendet */


    nRAM2_HI = !A16 & A19 # !A17 & A19 # !A18 & A19 ; /* XT-RAM speichert alle Sektoren 512k - 960k */


    /** Logic Equations **/


    !nRAM1_EN = nRAM1_LO ;

    !nRAM2_EN = nRAM2_HI ;

    !nBUFF_EN = nRAM1_LO # nRAM2_HI ;

    !nCARDSEL = nRAM1_LO & nMEMR # nRAM2_HI & nMEMR ;

  • oha - und wie wählt man dann die Speicher-Bereiche aus, wenn es keine DIP-Schalter mehr gibt?


    muss man dann den GAL entsprechend programmieren?

    Das frage ich mich auch... ich denke (mal vorsichtig), dass mir da die "herkömmliche" Variante deutlich sympathischer ist.

    Der GAL muss ja programmiert werden (im Defektfall später evtl. mal doof).