Retro – XT-IDE (BIOS)

Last Updated on 1. April 2025 by sfambach

Soll eine IDE Festplatte an einen alten XT Computer angeschlossen werden, oder wird eine Größere Festplatte für den 386er benötigt kann man „einfach“ ein Bios neu schreiben oder den Computer durch einen neuren ersetzten. Da beides meist keine Option ist gibt es zum Glück das XT-IDE Projekt.

Schon kann der XT Computer mit neuen Festplatten zu versort werden oder und AT-Computer größere Festplattenkapazitäten erkennen. Die XT-IDE Software wird wie der Name schon sagt in ein ROM geschrieben, diese kann auf eine Netzwerkarte, auf einer eigens dafür vorgesehenen Karte oder sogar einem neu gebauten IDE Controller aufgedrückt werden.

In diesem Beitrag wird der Einsatz des XT-IDE Bios beschrieben und auf einige Kartenlösungen in anderen Beiträgen wird verwiesen.

Links zum Projekt

XT-IDE Universal Bios

Ansichten

XT-IDE (BIOS) – Emuliert auf PCem


Fakten

  • Ersetzt nicht das eigentlich Bios sondern ersetzt nur die IDE Controller Funktionalität.
  • Kann den Code des eigentlichen Bios überdecken (HDD im Bios deaktivieren).
  • Es gibt vorgefertigte Bios Version die auf ein Rom gebrannt werden können oder per Makefileanpassung kann eine eigene Version erstellt werden
  • Programmiert werden kann das Bios aufs EE-/UE-Proms wie 27C64, 27C256, 28C64, 28C512 …
  • Das Bios benötigt eine Hardware wie eine Steckkarte, IDE Controller oder eine Netzwerkkarte mt ROM Sockel.
  • Je nach ROM Type und Steckkarten kombination kann das EEROM auf der Karte programmiert werden oder muss extern programmiert und gelöscht werden.

Hardware Projekte

Glitchwork rev 4

https://www.minuszerodegrees.net/xtide/variations/XT-IDE%20and%20XT-CF%20variations.htm#xt_cf_lite_v4.1

Monotech XT-CF-Mini

https://github.com/monotech/monotech_xt-cf-mini

XT- CF-Lite

https://github.com/skiselev/xt-cf-lite-v4

ISA Roms

Zwei Versionen, eine Programmierbar mit Umschalter für 8kB und 32kB EEPRoms die andere nur für 27C256 UEPROMs geeignet.

https://www.vogons.org/viewtopic.php?t=82499

Nachgebaut

Ich habe einige der Projekte nachgebaut , siehe unten bei den verwandten Projekten.

ROM auf der Netzwerkkarte

Es ist auch möglich das XT-IDE Bios auf ein Rom zu flashen und auf den freien ROM-Steckplatz einer Netzwerkkarte zu stecken. Hierbei muss beachtet werden, dass das ROM per Jumper oder Konfigurationtool aktiviert, die richtige Größe angegeben wird und die Startspeicheradresse definiert wird. Auch arbeiten die Netzwerkkarten meist nur mit UV Löschbaren roms wie dem 27C64 zusammen. Diese können dann nur externen EPROM Programmer programmiert werden. Evtl gibt es hierfür aber einen funktonierenden EEPORM Ersatz von WINBOND dann kann man sich das Beleuchten für das Löschen sparen.

Programmierung

XT-IDE Bios Bauen

Die Quellen der XT-IDE sind schnell selbst gebaut, man benötigt nur ein paar Programme und schon wird der eigene Rechner zum Bios-Assemblierer. Beschrieben ist das Ganze unter folgenden Link:

https://xtideuniversalbios.org/wiki/BuildInstructions

Im Grunde müssen die folgenden Tools installiert werden. Danach überprüfen ob sie auch in den Umgebugnsvariablen stehen und einmal neustarten.

Per SVN die Sourcen holen. Dazu rechtklick mit der Mouse in ein gewähltes Zielverzeichnis und SVN Checkout wählen.

Die folgende URL eintragen und auschecken:

https://www.xtideuniversalbios.org/svn/xtideuniversalbios/trunk

Commandline öffnen und ins Verzeichnis wechseln. Dort den mingw32-make Befehl ausführen und alles sollte bauen.

Die Binärdeiten für das Biosrom sind dann im Verzeichnis build zu finden.

Benutzerdefiniertes XT-IDE Bios bauen

Hierfür müssen die beiden folgenden Variablen in der Make Datei (makefile im XTIDE BIOS Ordner) gesetzte werden.

DEFINES_CUSTOM =
BIOS_SIZE_CUSTOM = ?

Zusätlich habe ich noch die Konstate DEFINES_COMMON_CUSTOM eingefügt da ich das Powermanagement entfernt habe. Meine Variante der Konfiguration sieht wie folgt aus:

DEFINES_COMMON_CUSTOM= MODULE_STRINGS_COMPRESSED MODULE_HOTKEYS MODULE_8BIT_IDE MODULE_EBIOS MODULE_SERIAL MODULE_SERIAL_FLOPPY NO_ATAID_VALIDATION CLD_NEEDED EXTRA_LOOP_UNROLLING_SMALL MODULE_BOOT_MENU MODULE_8BIT_IDE_ADVANCED MODULE_COMPATIBLE_TABLES EXTRA_LOOP_UNROLLING_LARGE

DEFINES_CUSTOM = $(DEFINES_COMMON_CUSTOM) USE_386 MODULE_ADVANCED_ATA MODULE_W


#27C256
BIOS_SIZE_CUSTOM = 32768

Mit dem folgenden Befehl kann das BIOS dann gebaut werden:

mingw32-make custom

Die Binärdeiten für das Biosrom sind dann im Verzeichnis build zu finden.

Konfigurationstool bauen

Das Konfigurationstool xtidecfg.com wurde bereits mit der letzten SVN Checkout geholt. Es befindet sich im Verzeichnis XTIDE_Universal_BIOS_Configurator_v2. In das Verzeichnis wechseln und make ausführen.

mingw32-make xt

Die Datei xtidecfg.com ist im Verzeichnis build zu finden. Es gibt noch weitere Optionen das Tool zu bauen:

allclear, releaseBaut release
atAT Version
xtplusErweitert Instructionset auf 80188/80186/V20/V30
xtXT Version Instructionset auf 8088/8087/V30
cleanAlles aufräumen für einen neuen build
releasextKomprimierung mit UPX
xt_unusedxtOptimiert nicht benutzen code weg
XTIDE_Universal_BIOS_Configurator_v2 – Make Optionen

Installation

Bevor das Bootrom gebrannt wird, sollte das Rom über das tool konfiguriert werden. Hierfür benötigt man einen Rechner, am besten den, der das Rom später verwende soll. Dort wird dann das Programm xtidecfg.com aufgerufen.

(*) Autoconfig funktioniert nur auf dem original Rechner auf dem man das XTIDE Rom verwenden möchten, ansonsten müssen die Einstellungen, wie zum Beispiel die Adresse des IDE Controllers, manuell vorgenommen werden.

Danach die Datei nehmen und auf das ROM brennen. Sollte ein EEPROM verwendet worden sein und es wird von der Software unterstützt kann es auch direkt über den eingestgeckte Karte programmiert werden.

xtidecfg.com – Flashen des EEPROMs über die Software

Beim nächsten Booten mit eingestecken rom sollte XTIDE nach der Boardeigenen Biosinitialisierung angezeigt werden.

XT-IDE (BIOS) – Nach dem Mainboard Bios folg das XT-IDE Bios (hier simuliert mit PCem)

Probleme

XTIDE wird beim Booten nicht gefunden

  • Meist ist dies auf einen Adress-Konflikt entweder mit den ROM oder es wurde nicht die richtige HDD Controller Adress angeben. Auch wenn der Controller nicht gefunden wird, wird XTIDE einfach nicht angeigt. Alle Adressen nochmal überprüfen, auch die Jumper auf den ROM- und dem Controllerboard prüfen. Als guter Wert für die ROM Adresse hat sich C800 und D800 bewährt.
  • Falsche ROM verwendet manche EROMs und EEPROMS sind nicht kompatibel. Auch können Karten immer nur die angegebenen EPROM Typen unterstützen. Ich hatte Beipielsweise ein 27C256 mit einem 28C256 ersetzt was aber nicht funktioniert weil das Pinout an zwei Stellen abweicht. Hier muss ein 27C257 verwendet werden ;).
  • Beim Rom auf der Netzwerkkarte, darauf achten, dass es aktiv ist, die Größe und die Adresse richtig gesetzt ist.

Controller nicht gefunden

Sollte wiedererwarten die XTIDE angezeigt werden aber es gibt den Fehler Controller nicht gefunden, so stimmt die Adresse/Typ des IDE Controllers nicht, diese nochmal im Tool überprüfen und das ROM neu flashen.

Checksumm Error

XTIDECONF wurde nicht ausgeführt, dieses berechnet die Checksummer und setzt sie. Tool ausführen und ROM neu flashen.

Rom lässt sich nicht über XTIDECFG Flashen

Falsche Rom Version, zum Beispiel lässt sich das AT28C64-B flashen aber das AT28C64 nicht. Versucht man das AT28C64 zu flashen funktioniert die Version auf diesem danach nicht mehr und der EPRROM Programmierer muss angeworfen werden.

Sonstiges

Fazit

Ein Tolles Projekt. Ich hatte anfänglich ein paar Probleme, dass die XT-IDE nicht gefunden wurde oder das BIOS nicht richtig konfiguriert war. Wenn aber weiss wie es geht und die Fallstricke gefunden und gelöst hat geht es ganz einfach. Leider habe ich diese kleinigkeiten nur in wenigen Youtube Videos gefunden, bzw. erst nachträglich die Details gesehen die nötig gewesen wären. Aber was soll das Jammern, es is geglückt und wenn man die richtigen (E/EE/UE) PROMS nimmt klappt das alles auch. Achtet bei den Projekten darauf welcher ROM-type benötigt wird. Dies ist wichtig damit alle Funktioniert.

Verwandte Beiträge

Quellen

https://github.com/glitchwrks/xt_ide

https://users.glitchwrks.com/~glitch/2017/11/23/xt-ide-rev4

https://www.minuszerodegrees.net/xtide/XT-IDE%20-%20Basics.htm

https://www.minuszerodegrees.net/xtide/rev_4/XT-IDE%20Rev%204%20-%20general.htm

https://www.retrospace.net/infoseiten/readm.php?id=66

https://users.glitchwrks.com/~glitch/2017/11/23/xt-ide-rev4

https://www.lo-tech.co.uk/wiki/XTIDE_Universal_BIOS

PCem

Log

DatumBeschreibung
15.07.2024Platine mit XT Rom bei DocWilde Retronics bestellt
23.07.2024Bauteile aufgelötet
22.02.2025Infos zum Bios Baus hinzugefügt
23.02.2025Einleitung geschrieben
30.03.2025XT ide im PCem simuliert und screenshots gemacht. Evtl. Screenshots von richtiger Hardware noch einfügen.
Logbuch

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert