Retro: Sinclair ZX-Spectrum DivIDE+

DivIDE plus
DivIDE plus

Das DivIDE+ Interface stellt für jeden Sinclair ZX Spectrum ein Standard ATA (IDE) Interface zur Verfügung. Damit kann man Standard Festplatten, CD-ROM Laufwerke oder Compact Flash (CF) Karten am Spectrum verwenden. Ich habe das DivIDE+ vor einigen Jahren aus England bezogen (2 Stück). Kurz darauf hatte ich aber keine Zeit mehr mich mit damit zu beschäftigen. Das hat sich inzwischen wieder geändert und ich habe das DivIDE+ an meinem Spectrum in Betrieb genommen.
Es macht richtig Spaß die alten Spiele mit denen man aufgewachsen ist wieder mal zu spielen. Dazu habe ich an das DivIDE+ ein Joystick Interface angeschlossen, einen alten Quickshot Joystick und los ging’s mit einer Runde BombJack – geladen von der CF-Karte.
Ich verwende zur Zeit eine 1GB CF-Karte von Sandisk – während meiner Versuche sind mir folgende Punkte aufgefallen:
– nicht kompatibel mit Interface 1
– beim Einschalten des Spectrum die „Space“ Taste gedrückt halten – dann sollten die erkannten Karten und Partititonen angezeigt werden
– mit dem Knopf auf der Rückseite kommt man in den Dateiselector

Inzwischen gibt es mehrere Firmware’s zur Auswahl für das DivIDE+. Dafür gibt es über SellMyRetro für 5 Pfund einen Firmware Selector zu kaufen. Die Installation ist sehr problemlos. Einfach die Datei am PC auf die CF-Karte kopieren. Den Spectrum damit starten – Knopf auf der Rückseite drücken und die Datei auswählen. Damit wird der Firmware Selector installiert. Damit kann man einfach auswählen – eine Übersicht gibt es hier: DivIDE+ Firmware
Da seit meinem Kauf einige Zeit vergangen ist, hat sich hier noch mehr getan – findige Entwickler haben ein komplett neues „System“ für das DivIDE+ geschrieben: ESXDOS. Um dies installieren zu können benötigt man neu programmierte Chips – diese sind auch über SellMyRetro für 10 Pfund zu beziehen. Diese sind ca. 1 Woche nach meiner Bestellung eingetroffen. Die Chips sind schnell installiert – man benötigt nur einen feinen flachen Schraubenzieher – alle Chips sind gesockelt und beschriftet. Einfach die Chips 1:1 tauschen – fertig.
Um ESXDOS zu installieren, muss man nur die entsprechende Datei auf die CF-Karte kopieren (TAP-File). Ebenfalls auf die Karte muss man die Ordner „sys“ und „bin“ kopieren. Mit der CF-Karte starten – wieder auf der Rückseite den Knopf drücken und die Datei auswählen – damit landet man im Flasprogramm – dort kann man dann über folgende Befehle die Flash-Bausteine neu programmieren:

- press keys "x","0" = erase first 64kB block of flash eprom chip
- press keys "w","0" = write 16kB block (contain 2x esxdos) to 16kB rom page 0
- press keys "w","1" = write 16kB block (contain 2x esxdos) to 16kB rom page 1
- press "z" = exit to zx basic. Now is ESXDOS 080 installed as main system

Nach einem Kaltstart wird der BIOS Screen angezeigt. Es sollte sichergestellt sein, dass ESXDOS.SYS und NMI.SYS mit „OK“ laden. Nach einem Kaltstart kannst man RUN eingeben um zu prüfen ob das System korrekt geladen wurde – entweder bekommt man die Meldung „O.K. ESXDSOS“ oder „No SYSTEM“.

ESXDOS bietet einige neue BASIC Funktionalitäten:
– Alle Kommandos unterstützen einen Befehl. Dieser kann „*“ sein für das aktuelle Laufwerk oder man gib einen an z.B. „hd1“
– Man kann eine BASIC Variable anstelle eines Dateinamens verwenden: einfach einen „;“ zwischen Laufwerk und Variable einfügen
– Im Falle eines FAT Dateisystems, haben alle von ESXDOS angelegten Dateien einen +3DOS Header
Laufwerksnamen:
Laufwerke werden entsprechend ihrem Typ und der Partitionsnummer benannt. Also wird die erste Festplatte und Partition „hd0“ heißen. Man kann eine Liste der Laufwerksnamen sehen wenn die BIOS Laufwerks Erkennung von ESXDOS läuft.
Dateinamen:
ESXDOS würde lange Dateinamen unterstützen – allerdings macht das der aktuelle FAT-Treiber das nicht. Daher sind die Dateinamen fürs erste auf das ursprüngliche 8.3 Format beschränkt.

Hier eine Liste aller Befehle:
CAT:
Zeigt (ohne Parameter) eine einfache Verzeichnisliste an. Mit Parametern wird eine ausführliche Liste mit BASIC header und freiem Speicherplatz angezeigt.
Form:

CAT [<Laufwerk>]

Beispiele:

CAT
CAT *
CAT hd1

GOTO:
Zeigt das aktuelle Laufwerk/Verzeichnis an oder wechselt das Laufwerk/Verzeichnis.
Form:

GOTO (zeigt aktuelles Laufwerk/Verzeichnis an)

Beispiele:

GOTO hd1
GOTO "neu/Pfad"
GOTO hd0 "/neu/Pfad"

LOAD:
Lade eine Datei vom Laufwerk. Dateien ohne Header werden als CODE mit START=32768 geladen.
Form:

LOAD <Laufwerk> "Pfad/to/Dateiname"
LOAD <Laufwerk> "Pfad/to/Dateiname" CODE [<START>] [<LENGTH>]
LOAD <Laufwerk> "Pfad/to/Dateiname" SCREEN$

Beispiele:

LOAD * "Dateiname"
LOAD * "Dateiname" CODE 32768,16384
LOAD * "Dateiname" SCREEN$

MERGE:
MERGE eine Datei von einem Laufwerk
Form:

MERGE <Laufwerk> "Pfad/to/Dateiname"

Beispiel:

MERGE * "Dateiname"

VERIFY:
VERIFY eine Datei von einem Laufwerk (vergleiche es mit dem Speicherinhalt). Dateien ohne Header werden als CODE mit START=32768 überprüft.
Forms:

VERIFY <Laufwerk> "Pfad/to/Dateiname"
VERIFY <Laufwerk> "Pfad/to/Dateiname" CODE [<START>] [<LENGTH>]
VERIFY <Laufwerk> "Pfad/to/Dateiname" SCREEN$

Beispiele:

VERIFY * "Dateiname"
VERIFY * "Dateiname" CODE 32768,16384
VERIFY * "Dateiname" SCREEN$

SAVE:
Speichere eine Datei auf das Laufwerk. Wenn es die Datei schon gibt wird eine Bestätigung verlangt.
Forms:

SAVE <Laufwerk> "Pfad/to/Dateiname" [LINE]
SAVE <Laufwerk> "Pfad/to/Dateiname" CODE <START> <LENGTH>
SAVE <Laufwerk> "Pfad/to/Dateiname" SCREEN$

Examples:

SAVE * "Dateiname" LINE 10
SAVE * "Dateiname" CODE 32768,16384
SAVE * "Dateiname" SCREEN$

ERASE:
Lösche eine Datei oder ein leeres Verzeichnis. Wenn die Datei oder das Verzeichnis in Benutzung sind gibt es eine Fehlermeldung „Access Denied“.
Form:

ERASE [<Laufwerk>] "Pfad/to/Datei_oder_Verzeichnis"

Examples:

ERASE "Dateiname"
ERASE "Verzeichnisname"
ERASE hd1 "Dateiname"
DivIDE+
DivIDE+

 

DivIDE+
DivIDE+