Robotron EC1834 - Modifikation für XT Kompatibilität ("Tronix-Mod")

  • Moin,


    direkt nach der Reparatur des EC1834 berichte ich dann Mal über die Modifikation des 1834.

    Der Rechner ist nicht 100% XT Kompatibel.

    Hintergrund ist der 16 Bit IO Zugriff, der nicht vollständig umgesetzt wurde. Abgesehen vom RAM waren alle IO Karten nur als 8 Bit Version ausgelegt.


    Für den RAM gibt es eine Byte-Swap Logik, wo z.B. Byte Zugriffe auf ungerade Adressen von den unteren 8 Bit (CPU) auf die oberen 8 Bit des Datenbusses geschoben werden müssen und umgekehrt.

    Falls ich hier Blödsinn erzähle, korrigiert mich bitte.


    Für Speicherzugriffe funktioniert das wunderbar.


    Findet nun ein 16 Bit IO Zugriff statt, muss das in 2 Transfers aufgeteilt werden, weil der EC1834 kein ~IOCS16 Signal kennt, d.h. IO ist nur in 8 Bit möglich.

    Hier müssen zuerst die unteren 8 Bit auf den Datenbus geschoben werden und danach mit der ungeraden Adresse die oberen 8 Bit von der CPU auf die unteren 8 Bit des Datenbusses transferiert werden.


    Diese Logik ist nicht vorhanden. Daher funktioniert bei der XT-IDE der Hi-Speed Modus (aka Chuck Mode), sowie viele VGA Karten im 8 Bit Modus (das BIOS adressiert anscheinend nur 16 Bit Zugriffe) ebenfalls nicht.

    ET3000/4000 Karten haben anscheinend diese Zugriffsart im BIOS bedacht, daher funktioniere diese dann meist.


    Im Jahr 2018 gab es in diesem russischen Forum einen Thread, wo sich einige Leute damit beschäftigt hatten und eine (relativ) simple Lösung gefunden haben:

    Robotron EC 1834 :: IBM PC-совместимое. До 2000 года включительно



    Dieser Schaltplan ist aber noch nicht vollständig...

    Es fehlt da noch eine weitere Anpassung für den Lesezugriff.


    Ich habe gestern Abend, nach der Reparatur des Floppy Laufwerks direkt mit dieser Modifikation begonnen.


    Dazu musste D10 und D59 auf Sockel gebracht werden.

    D10 war erste defekte IC nach dem 8086, den ich getauscht hatte. Idiotischerweise habe ich da keinen Sockel eingebaut, deswegen musste er nochmal ausgelötet werden.

    Mittlerweile habe ich genügend Erfahrung, das ging leicht raus.


    D59 hingegen weigerte sich Standhaft. Die Innenseite der IC Pins hafteten weiterhin fest an der DuKo. Daher musste er letztendlich dran glauben, damit ich das Board nicht beschädige.

    Mit meinem neuen kleine Knipex wurden die Beine oben abgeknipst und konnten dann spielend entfernt werden.


         


    Nachdem alles gereinigt war, kamen die Sockel rein und ein erster Test des Board ohne Modifikation - es lief noch.... 😅


    Anschließend wurden die Beinchen auf den 2 ICs aus dem Sockel genommen - damit ist die Modifikation jederzeit reversibel - es werden keine Leiterzüge durchtrennt.

    Es gibt 4 reserve Positionen im DIP16 und DIP20 Format.

    Ein DIP16 Sockel wird nun das Zuhause für den zusätzlichen 74LS32 dieser Modifikation.


    Ich habe nach obigen Schaltplan alles verdrahtet und einen Test durchgeführt.

       


    Das Board arbeitet weiterhin, aber die VGA Karten zeigten bis jetzt NUR einen Start der Initialisierung (Monitor erkannte ein Signal).

    Heute früh habe ich den russischen Thread nochmal geprüft und im Text fiel mir dann eine zusätzliche nötige Modifikation (ich schätze für die Leserichtung) auf. Ich hatte das schon gelesen, aber gestern vergessen.


    Die muss nun noch umgesetzt werden.

    Auf D11.10 liegt das Signal MEMR an. Das muss ein (MEMR|IOR) werden. IOR gibt es so noch nicht, sondern nur ~IOR. D.h. ich muss das Signal noch negieren.


    Es gibt auf dem Board noch ungenutzte Inverter auf 2 ICs (D34 und 4x auf D82). Ich werde dafür nun noch D14 (ist einfach näher) und D11 auf Sockel bringen und die zusätzlichen Modifikationen unterbringen. Auf dem 74LS32 sind ja noch ein paar OR Gatter verfügbar.


    Gruß Mario

  • Sorry Andreas, ich denke das wird kein ISA IOCS16.

    Das müsste dann ja auf alle Slots geführt werden. Könnte man sicher machen, aber ich weiß nicht, wie hoch der Aufwand dafür wäre.


    Konkret wird hier nur die Bussteuerung auf HW Ebene gemacht. Also 16 Bit auf 2x 8 Bit Transfer übersetzen.


    Ich habe es gerade umgebaut, aber meine 2 anderen VGA Karten funktionieren noch nicht. Ich muss das in Ruhe nochmal nachmessen, evtl. habe ich irgendwo einen Fehler gemacht.

    Wird aber wohl erst nächstes Wochenende, da ich diese Woche mal wieder ins Büro fahren.

  • Gestern habe ich nochmal alles nachgemessen/geprüft.

    Da das Board auch normal arbeitet, ist da ein Fehler eher unwahrscheinlich.

    Im russischen Forum habe ich heute nochmal genauer nachgelesen.

    Eine Trident VGA Karte lief bei denen auch nicht. Das scheint da wohl wählerisch zu sein. Man ist da wohl auch nicht dahinter gekommen, was das war.


    Morgen teste ich einfach mal die XT-IDE im HI-Speed Mode. Mal schauen, was da raus kommt. Falls die funktioniert, war es das schon.

  • Danke für die Info!


    Müsste ich also nach so was suchen. Ist ja nicht so, dass es die nicht gäbe, allerdings sind die VGA Preise schon recht hoch geworden.

    Allerdings scheint sich eine Selbstau FPGA Alternative wohl dagegen auch nicht so zu rechnen. Hatte diese Woche kurz dazu recherchiert.


    Ich teste jetzt gleich Mal mit der XT-IDE - das lässt sich einfachsten prüfen.

  • Also.... XT-IDE im HI-Speed Mode...


    BIOS wollte booten, sagte aber "Diskette: Kein System oder Fehlerhaft" in Deutsch.

    Zum Glück steckte gerade der FDC mit eine bootfähigen Diskette drin.


    Also Diskette gebootet. Ich wollte gerade XTIDECFG von Disk aufrufen, der Prompt stand aber auf Laufwerk C.


    DIR zeigte mir auch den Inhalt vom Laufwerk - ich konnte XTIDECFG von der Flash Karte starten. Offensichtlich funktioniert es - möglicherweise stimmt nur was mit den konfigurierten Laufwerksparametern nicht.


    Leider kann ich das EPROM im Compatible Mode mit XTIDECFG nicht auslesen um es zu konfigurieren.

    Ich kann die Binary aus Datei laden und flashen, aber auch nicht konfigurieren.


    Ich habe 2 CF Karten an meinem XT-IDE, das BIOS zeigt mir beide an, ich sehe aber nur eine Partition der 2. Karte. FDISK will nicht auf das 2. Laufwerk zugreifen.


    Ich würde vermuten, dass ist nur ein Konfigurationsproblem in Richtung Addressierung der "Sektoren".


    Rein technisch läuft der Hi-Speed Mode... :D


    Ich konnte noch keine Tests machen, was die Geschwindigkeit angeht.

    checkit ist leider auf der Partition, wo ich gerade nicht dran komme, muss ich erst umkonfigurieren...

  • Also.... XT-IDE im HI-Speed Mode...


    BIOS wollte booten, sagte aber "Diskette: Kein System oder Fehlerhaft" in Deutsch.

    Zum Glück steckte gerade der FDC mit eine bootfähigen Diskette drin.

    Hat die Maschine deutsche BIOS-Meldungen?

    Ich hatte leider nie näheren Kontakt dazu, daher weiß ich das nicht.


    Bei den gängigen PCs, die ja durchweg englische BIOS-Meldungen haben, war diese Meldung auf Deutsch für mich immer der Indikator dafür, daß zumindest der Bootsektor von der Diskette geladen wurde.

    +++ ATH

  • Hat die Maschine deutsche BIOS-Meldungen?

    Ich hatte leider nie näheren Kontakt dazu, daher weiß ich das nicht.


    Bei den gängigen PCs, die ja durchweg englische BIOS-Meldungen haben, war diese Meldung auf Deutsch für mich immer der Indikator dafür, daß zumindest der Bootsektor von der Diskette geladen wurde.

    Die paar Strings im BIOS sind alle Englisch (SYSTEM BOARD ERROR).

    Das kommt definitiv vom DCP Bootsektor.


    XT-IDE Konfiguration ist aktuell wie folgt:

  • Muss mal schauen, die Konfiguration aus dem Flash image raus zu holen, dürfte kein Hexenwerk sein.


    Da der Umbau damit erfolgreich war, darf ich nun das Board endlich wieder mit dem Gehäuse verheiraten... 😁

    Vorher aber noch Fotos der vollständigen Modifikation.


    Ich überlege gerade, ob ich diese Modifikation in meinen Schaltplan mit übernehme (natürlich gekennzeichnet) oder einen Kopie anlege. Problem ist, dass dann 2 Pläne gepflegt werden müssen.

  • Noch zur XT-IDE Geschichte:


    Quote

    Important if you are upgrading from any previous XTIDE Universal BIOS version


    The v2.0.0 beta 2 and later versions, like most other BIOSes, adheres to the Phoenix Enhanced Disk Drive Specification. The older v1.x.x versions and v2.0.0 beta 1 do NOT - they may generate different L-CHS parameters for many drives. If you move a drive handled by a v1.x.x or v2.0.0 beta 1 BIOS to another system or upgrade to v2.x.x you risk data corruption if different L-CHS parameters are used.

    IMPORTANT! This means that, after upgrading to XTIDE Universal BIOS v2.0.0 beta 2 or later, you need to re-create and format any partitions on drives handled by this BIOS.

    Möglicherweise hat diese Änderung auch Auswirkungen. Sollte man vielleicht bedenken...

  • Naja, wenn fdisk die 2. Karte nicht findet, kann's daran eigentlich nicht liegen, denke ich.

    Das Problem würde sich erfahrungsgemäß eher in einem nicht funktionierendem/beschädigtem Dateisystem niederschlagen.

    Auf jeden Fall bedeutet das aber, daß bei Versionswechsel eine neue Partitionierung mit neuem MBR und High-Level Formatierung angesagt ist.

    +++ ATH

  • Auf die 2. Partition kann ich unter DOS aber zugreifen... ;)

    FDisk sagt, es gab einen Fehler beim Lesen der 2. Platte. Ich vermute, da ist was mit der Addressierung im Boot-Sektor Bereich.


    Ich habe jetzt auch konkrete Zahlen. Der Unterschied ist tatsächlich messbar:


    XT-IDE im Compat Mode hat bei mir 118 kbyte/s VS 188 kbyte/s im Hi-Speed Mode!

  • Naja, wenn fdisk die 2. Karte nicht findet, kann's daran eigentlich nicht liegen, denke ich.

    Das Problem würde sich erfahrungsgemäß eher in einem nicht funktionierendem/beschädigtem Dateisystem niederschlagen.

    Auf jeden Fall bedeutet das aber, daß bei Versionswechsel eine neue Partitionierung mit neuem MBR und High-Level Formatierung angesagt ist.

    Den letzten Satz hatte ich vorhin überlesen... Ja, darauf wird es hinaus laufen.

  • IOCS16 am EC1834 wäre sehr hilfreich im Zusammenspiel mit zahlreichen Karten, die momentan nicht korrekt initialisiert werden.

    Diese Modifikation werde ich definitiv auch zeitnah ausprobieren. Die zwei russ. Websites sind mir auch schon aufgefallen. Die zweite ist hier:

    nedoPC.org - View topic - Robotron EC1834

    Im EC1835 und im K1860 (K1520 Nachfolger) gibt es die fehlenden AT-Signale schon auf der dritten Reihe der 96pol. EFS Steckers.

    Deshalb würde ich /IOCS16 auf B01 legen. Belegung K1860 in der Anlage. Die gelben Signale hat EC1834, die blauen braucht 80286.

    Vom einzigen überlieferten Exemplar der Rückverdrahtung habe ich eine 1:1 Leiterplatte erstellt und ein paar Prototypen fertigen lassen.

    Die Rückverdrahtung ist mit 95x170 Nanos Karten und 100x160mm Eurocards kompatibel und deshalb m.E. noch heute interessant.

    Eines meiner langfristigen Projekte. Die I/O Karten kann man dann im EC1834 testen.

  • Moin efficeon,


    die Seite hatte ich in einem Tab auch schon geöffnet.

    Aber wenn ich das ab Seite 2 jetzt nochmal lese, verstehe ich erst, wo da die Reise hin ging.

    Allerdings sehe ich da kein /IOCS16. Das Signal kommt ja von den Karten. Das müsste Eingangsseitig bei /MEMCS16 verknüpft werden, damit die Bussteuerung deaktiviert wird.


    Was meinst du mit dem Exemplar der Rückverdrahtung? Hast du ein komplettes Mainboard herstellen lassen?


    Hobi: die Chancen steigen... ;)

  • Auf der anderen Seite, was ich nicht ganz verstehe (vermutlich schon wieder raus aus meinem Kopf)...

    Wenn /IOCS16 nicht präsent ist, dann wird von einem 16 Bit Transfer ausgegangen. Dann wäre doch theoretisch keine zusätzliche Steuerung nötig.


    ...Eine Google Suche brachte mich gerade auf einen alten Thread von Hobi im RT Forum

    EC1834 16-Bit Zugriffe, VGA Programmierung - Robotrontechnik-Forum


    ...wo er das ganze ja schon tiefergehend ergründet. Ich versuche das nochmal zu verstehen. Ich hatte da letztes Jahr aufgegeben. Vielleicht habe ich jetzt mehr Verständnis.

  • ok, dazu gibt es gegensätzliche Aussagen, deswegen irritiert mich das immer wieder.

    D.h. man müsste die Bussteuerung dann an der Stelle unterbrechen.


    Das betrifft dann die Stelle bei D88.8 zu D40.5 und D14.11.

    Mit der aktuellen Modifikation ist D14.11 bereits raus. Man müsste jetzt D7.2 blockieren, damit der 8286 auf D22 nicht aktiviert wird.

    Aber ich vermute, irgendwo in der FF Verzögerungskette wird auch noch was angefasst werden müssen, da diese nun nicht aktiviert werden sollte.


    der Schaltplan ohne den Tronix-Mod


    Ich schätze, die Beschriftung zwischen D14 bis D34 unten trifft es nicht korrekt. Das gilt nur für 16 Bit Speichertransfer.

  • Ich glaube, jetzt verstehe ich es so langsam.

    Insbesondere beim Schreibzugriff muss ja klar sein, was für eine Karte da arbeitet. D.h. wird jetzt 8 oder 16 Bit geschrieben.


    D.h. - nach dem Anlegen der Adresse an den Bus wird durch die Adressierte Karte dann IOCS16 aktiviert, wenn diese 16 Bit erwartet oder liefert.

    Das dürfte beim Speicher identisch sein.


    Ich habe noch nicht verstanden, warum der VGA Zugriff weiterhin ein Thema ist...

  • ok, die Trident Karte funktioniert nun bei mir... 😁


    Dank Tronix Erwähnung von Trident & ALE habe ich die Suche bemüht. Das führte zu VCF und einem ganz einfachen Fix:

    Habe den ISA ALE Pin abgeklebt und auf der Karte mit 5V verbunden!


    Bild kommt noch...

  • Hier die Bilder der VGA Karte...


     


     

  • Ich habe gestern/heute eine Kopie des Schaltplans erstellt und die Tronix Modifikation einmal eingarbeitet.


    Damit meine ich zu sehen, dass das ~IOCS16 Signal nur noch ein UND Gatter und einen Pull-Up Widerstand benötigt:



    D22 dürfte damit ausser Kraft gesetzt sein. Mit dem Tronix Mod wird mir jetzt auch ersichtlich, dass die FF Kette rechts nur bei 8 Bit Speicherzugriffen in Gang gesetzt wird, wenn auf die Leitungen D8-15 (~BHE/VA0) zugegriffen werden muss.

    Ich weiß nicht, ob man das nun noch für entsprechende IO Zugriffe machen muss. Aber das würde sonst auch für ungerade Port Zugriffe ohne IOCS16 gelten.


    Vielleicht sieht ja noch wer einen Fehler.

  • Ich habe eine coole Idee, wie ich die Modifikation auf das Board bringe.

    Aber das wird jetzt leider ein Cliffhanger. Foto/Erklärung gibt's erst, wenn das läuft.

    :ätsch:


    War so ein Blitzgedanke kurz vor 6 Uhr morgens, der einen dann nicht mehr schlafen lässt.

  • So, der Prototyp ist fertig und funktioniert.

    Beim IOCS16 weiß ich noch nicht.


    Eine 16 Bit NE2000 wird gefunden und der Selbsttest funktioniert.

    Leider funktioniert der Netzwerkzugriff noch nicht.




    Die Platine kann man durch eine Ersatzplatine ersetzen, die den Originalzustand der Board Schaltung wiederherstellen kann.

    Hier getestet mit Jumperwires, wobei D59.11 in den Sockel muss.



    Gruß Mario

  • Und endlich Mal ein IOCS16 Signal-Diagramm gefunden:



    Also weiß ich, dass IOCS16 vor IORW kommt. Damit sollte es oben theoretisch passen, außer, ich übersehe da noch was.

  • Ich denke, ich werde heute nochmal die betreffenden Signale im Logic Analyzer nachmessen.


    Ich weiß nicht, warum die Trident nicht mit der Platine läuft. XT-IDE funktioniert und mit der Ersatzschaltung (die Jumper habe ich mittlerweile durch eine kleine Adapter-Platine ersetzt) definitiv nicht.

    Die Trident funktioniert aber in einem 286 im 8 Bit Modus.


    Evtl. werde ich das Thema etwas zurückstellen. im RT Forum wurde die NE2000 mittlerweile erfolgreich nachgebaut - ich werde mich wohl auch nochmal dran wagen, bevor es zum KC85 Treffen nach Garitz geht.

    Wunsch Nummer 1 ist eine Kombi Platine - IDE/USB/LAN.


    Nebenbei habe ich gerade Sergeys SVGA Karte angefangen... ;)


    ganz frühes Stadium...


    Probiere erst Mal die Maße auf Papier...

  • Passt super... Ich muss unten den ISA Slot nur anpassen auf DIN41617.

    Allerdings wird die ausgewählte Slotblende nicht passen. Ich komme knapp 1cm höher. Der VGA Ausgang lässt sich wegen ROM aber nicht nach unten verschieben - außer ich route den nach oben.

    Das wollte ich aber nicht unbedingt.


    Vielleicht gibt es Alternativen. Notfalls bleibt nur 3D Druck. Weiteres dann in einem anderen Thread... ;)


    Messung der Signale hatte ich gestern nicht geschafft. Zum Thema hier kommt noch ein Ergebnis...

  • So, gerade herausgefunden, warum ich mir seit etwa 3 Wochen einen Wolf suche, warum die Trident nicht mehr funktioniert...


    Mangels jeglicher anderem Fund prüfte ich alle Signale am ISA Rand der Karte...

    Als ich die -12V fand, die auf einen C, R und Transistor ging, ging mir ein Licht auf - geprüft hatte ich die Karte im Gehäuse mit Netzteil. Aber die Modifikation prüfte ich nur mit Labornetzteil bei +5V & +12V....


    :stupid:


    Sie läuft... 😅



    ...und nun auch im 16 Bit Modus/Slot...