SCSI-Treiber

Der SCSI-Treiber ist eine offene Software-Schnittstelle für den Zugriff auf beliebige Peripheriegeräte, nicht nur SCSI-Geräte. Auch SATA-Laufwerke für optische Medien wie DVDs und BDs verwenden den SCSI-Kommandosatz. Für andere Geräte kann ein SCSI-Treiber SCSI-Kommandos emulieren, so wie es HDDRIVER für IDE- und SATA-Platten tut.
Die Quellen für die Software auf dieser Seite sind auf GitHub verfügbar.

SCSI-Treiber-Schnittstelle

HDDRIVER unterstützt die neueste Version 1.01 der SCSI-Treiber-Schnittstelle vollständig. Über SCSI-Treiber können HDDRIVER und HDDRUTIL auf Peripheriegräte zugreifen, die mit einer beliebigen Schnittstelle verbunden sind, vorausgesetzt HDDRIVER oder HDDRUTIL wurden nach dem jeweiligen SCSI-Treiber gestartet.

SCSI-Treiber-Dokumentation 1.01

SCSI-Treiber-Target-Schnittstelle

Für Atari TT und Falcon implementiert HDDRIVER die so genannte SCSI-Treiber-Target-Schnittstelle: Ein TT oder Falcon werden von anderen Geräten am SCSI-Bus als SCSI-Geräte erkannt, und der Atari kann SCSI-Kommandos ausführen. Beispielcode in C für die Implementierung von SCSI-Kommandos ist auf GitHub verfügbar. Dieser Code ist nur für Entwickler geeignet, die sich sehr gut mit SCSI auskennen. Für die einwandfreie Funktion des Target-Interfaces müssen alle Treiber, die auf SCSI-Peripherie zugreifen, dies über den SCSI-Treiber tun.

SCSI-Treiber-Implementierungen

Voll funktionsfähige SCSI-Treiber sind für die folgenden Hardware-Schnittstellen bzw. Software-Emulatoren verfügbar:

Schnittstelle/Emulator Softwarepaket Autor
Atari ACSI/SCSI/IDE HDDRIVER
CBHD/SCSIDRV.PRG
Uwe Seimet
Claus Brod, Steffen Engel
Atari ATAPI/SATA HDDRIVER Uwe Seimet
Milan IDE/ATAPI/SATA HDDRIVER Uwe Seimet
Milan SCSI Milan PCI SCSI Driver Michael Schwingen
MagiCMac CBHD/MM_SCSI.PRG Steffen Engel, Thomas Tempelmann
MagiCPC CBHD/SCSIDRIV.DLL Steffen Engel
Hatari 2.0 (Linux SCSI/IDE/ATAPI/SATA/USB) NF_SCSI, s. unten Uwe Seimet
ARAnyM 1.1 (Linux SCSI/IDE/ATAPI/SATA/USB) NF_SCSI, s. unten Uwe Seimet, Thorsten Otto

Es gibt auch andere, offenbar unvollständige Implementierungen mit unbekanntem Status, die daher nicht aufgeführt sind.
Zur Implementierung eines neuen SCSI-Treibers ist es ratsam, neben der SCSI-Treiber-Dokumentation die Kommando-Standard-Dokumente zu studieren, insbesondere für SPC, SBC und MMC.
Informationen zum SCSI-Treiber liefern auch einige meiner Artikel für die Zeitschrift ST-Computer.

SCSI-Treiber für Hatari und ARAnyM (nur für Linux)

NF_SCSI 1.10

Die TOS-Komponente des SCSI-Treibers für Hatari und ARAnyM, auf der NatFeats-Schnittstelle dieser Emulatoren aufbauend. Sie kann als reguläres Programm oder als HDDRIVER-Modul gestartet werden.
Mit diesem Treiber hat Atari-Software (z. B. HDDRIVER, HDDRUTIL, DISKUS, EXTENDOS, GEMAR) Zugriff auf alle Geräte, die vom Linux-SG-Treiber verwaltet werden, beispielsweise Festplatten, Speicherkarten und CD/DVD-Brenner. (SSDs an einer NVMe-Schnittstelle werden vom Linux-SG-Treiber nicht unterstützt.)
Bitte lesen Sie die README-Datei sorgfältig. Die native SCSI-Treiber-Komponente für Linux, die das Gegenstück zu NF_SCSI darstellt, ist in die aktuellen Versionen von Hatari und ARAnyM integriert. Bei Hatari muss die NatFeats-Unterstützung explizit in der Hatari-Konfigurationsdatei oder per Kommandozeile aktiviert werden.

SCSI-Treiber-Monitor

SCSI_MON 1.40

SCSI_MON protokolliert Aufrufe des SCSI-Treibers. Dies hilft bei der Fehleranalyse oder beim Entwickeln eines neuen SCSI-Treibers. SCSI_MON hilft auch beim Verstehen der SCSI- und SATA-Software-Protokolle. Das Programm kann als reguläres Programm oder als HDDRIVER-Modul gestartet werden.

SCSI-Treiber Test-Tool

SDRVTEST 1.35

SDRVTEST ist ein einfaches Hilfsprogramm zum Testen gewisser SCSI-Treiber-Funktionen, insbesondere (aber nicht nur) für SCSI-Treiber, die IDE/SATA-Platten oder USB-Geräte unterstützen.