SIO Befehlsbeschreibung (API)

SIO Gerätenummer: $73 + device id (Gerätenummer)’''

Befehl aux1 aux2 Richtung Länge Beschreibung Firmware
$00 - - SIO2SD->ATARI ($40) <)>1 Gerät Status (sehe unten) 1.0
$01 Laufwerknummer (1-15,128-228) Die Anzahl von Laufwerken (1-4) SIO2SD->ATARI ($40) 54 * Die Anzahl von Laufwerken lese die Laufwerkzuordnungsparameter aus 1.0
$02 Laufwerknummer (1-15,129-228) Die Anzahl von Laufwerken (1-4) ATARI->SIO2SD ($80) 54* Die Anzahl von Laufwerken setze die Laufwerkzuordnungsparameter 1.0
$03 Laufwerknummer (1-15,129-228) Die Anzahl von Laufwerken (1-100) - ($00) - schalte die Laufwerkzuordnung aus 1.0
$04 Die Anzahl der Einträge (1-4) flags (0-3) SIO2SD->ATARI ($40) 54 * Die Anzahl der Einträge lese die nächsten Einträge im aktuellen Ordner aus 1.0
$05 - - ATARI->SIO2SD ($80) 54 wechsle den aktuellen Ordner in den angegeben Ordner 1.0
$06 - - - ($00) - wechsle in den übergeordneten Ordner 1.0
$07 - - - ($00) - wechsle in den Hauptordner 3.0
$08 - - SIO2SD->ATARI ($40) 54 lese den aktuellen Ordner aus 3.0
$09 Objekttypen - ATARI->SIO2SD ($80) 16 setze die Suchmaske 3.0
$0A - - SIO2SD->ATARI ($40) 2 lese die Anzahl der Einträge in dem aktuellen Ordner aus (passend zu der aktuellen Suchmaske) 3.0
$0B Objekttyp - ATARI->SIO2SD ($80) 39 Erstelle ein neues Objekt in dem aktuellen Ordner 3.0
$0C - - ATARI->SIO2SD ($80) 54 lösche die angegebene Datei 3.0
$0D - - ATARI->SIO2SD ($80) 54 benenne die angegebene Datei um 3.0
$0E - - SIO2SD->ATARI ($40) 54 suche die zu der angegebenen Suchmaske passende Dateien (auf der gesamten SD Karte) 3.0
$0F - - ATARI->SIO2SD->ATARI ($C0) 54 lese den übergeordneten Ordner für den angegebenen Objekt aus 3.0
$10 die Zeilennummer - ATARI->SIO2SD ($80) 40 zeige ein Text auf dem LCD 2.0
$11 - - SIO2SD->ATARI ($40) 1 lese die Firmware Version aus 3.0
$12 - - SIO2SD->ATARI ($40) 16 lese Konfigurationsbytes aus 3.0
$13 - - ATARI->SIO2SD ($80) 16 setze die Konfigurationsbytes 3.0
$14 - - SIO2SD->ATARI ($40) 15 lese die Laufwerkzuordnungsparameter von den virtuellen Laufwerken aus 3.0
$15 - - ATARI->SIO2SD ($80) 15 setze die Laufwerkzuordnungsparameter für die virtuellen Laufwerke 3.0
$1E - - SIO2SD->ATARI ($40) 1 lese hsindex für den Standard-Turbo-Modus aus 3.0
$1F - - SIO2SD->ATARI ($40) 1 lese hsindex für den 7-Bit-Turbo-Modus aus 3.0
$20 Parameter - ATARI->SIO2SD ($80) 39 erstelle/öffne Datei 3.0
$21 - - ATARI->SIO2SD ($80) 54 öffne Datei 3.0
$22 - - SIO2SD->ATARI ($40) 3 lese aktuelle Ein- Ausgabeposition (in Bytes) 3.0
$23 - - ATARI->SIO2SD ($80) 3 setze aktuelle Ein- Ausgabeposition (in Bytes) 3.0
$24 Länge - SIO2SD->ATARI ($40) Länge lese ‘Länge’-Bytes von der aktuellen Position 3.0
$25 Länge - ATARI->SIO2SD ($80) Länge schreibe ‘Länge’-Bytes ab der aktuellen Position 3.0
$26 - - SIO2SD->ATARI ($40) 3 lese die Dateigröße der geöffneten Datei aus(in Bytes) 3.0
$27 - - ATARI->SIO2SD ($80) 3 setze die Dateigröße für die geöffnete Datei (in Bytes) 3.0

$00

Status:

  • 0 - keine Karte im SD-Slot
  • 1 - Karte im SD-Slot vorhanden
  • 2 - Karte im SD-Slot vorhanden, die Laufwerkzuordnung und aktueller Ordner wurden geändert
  • 3 - Karte im SD-Slot vorhanden, die Laufwerkzuordnung wurde geändert
  • 4 - Karte im SD-Slot vorhanden, aktueller Ordner wurde geändert

$01,$02,$03,$14,$15

die Laufwerknummer:

  • <1-15> - Laufwerke D1 bis D15
  • <129-228> - virtuelle Laufwerke V0 bis V99
  • 128 - das Konfigurator-Laufwerk

$04

Flags (bit 0 = starten/fortsetzen , bit 1 = vorwärts/rückwärts):

  • 0 - fortsetzen vorwärts
  • 1 - die Position auf den ersten Eintrag setzen und die ersten Dateien zurückgeben
  • 2 - fortsetzen rückwärts
  • 3 - die Position auf den letzten Eintrag setzen und die letzten Dateien zurückgeben

$09

Typmaske:

  • 1 - Ordner
  • 2 - Dateien
  • 3 - Ordner und Dateien

Suchmaske:

  • die Maske ist angegeben als ein Text mit Null am Ende mit bis zu 16 Bytes
  • das Format ist: []text[] bzw. []text[].[]text[]

$0B

Objekttyp:

  • 1 - Ordner
  • 2 - Datei (die erstellte Datei ist leer = 0 Byte, wird jedoch wie eine normale ATR-Datei behandelt)

$0D

  • Bytes <0-38> - neuer Name
  • Bytes <39-53> - die Datei-Daten dieser der Name geändert werden soll

$0E

  • Um diesen Befehl auszuführen muss zuerst die Maske gesetzt werden (Befehl $09)

$12,$13

  • Byte 0 - die Übertragungsrate (0-16 Übertragungsrate, 17 - Turbo ausgeschaltet)
  • Byte 1 - die “7-bit Turbo-Modus”-Übertragungsrate (0-16 Übertragungsrate, 17 - Turbo ausgeschaltet)
  • Byte 2 - die MMC/SD Übertragungsrate
    • 0 - fast (ungefähr 2.4Mb/s)
    • 1 - avg (ungefähr 900kb/s)
    • 2 - slow (ungefähr 500kb/s)
  • Byte 3 - LED Modus
    • 0 - SD read/write - Lese- und Schreibbefehle der SD-Karte
    • 1 - SIO read/write - Lese- und Schreibbefehle des SIOs
    • 2 - SD act/SIO act - die erste LED: SD-Aktivitäten, die zweite LED: SIO-Aktivitäten
  • Byte 4 - SIO2SD device id von 0 bis 3 (Gerätenummer)
  • Byte 5 - Schreibschutz der ATR-Dateien
    • 0 - ATR-Dateien können beschrieben werden
    • 1 - ATR-Schreibrechte entscheiden, ob die Dateien beschrieben werden können
    • 2 - ATR-Dateien sind schreibgeschützt
  • Byte 6 - die Zeit ab dem ersten Tastendruck bis zum Beginn der automatischen Tastendruckwiederholung in 1/50 Sekunden: von 0 bis 50 (0s - 1s)
  • Byte 7 - die Zeit zwischen automatischer Tastendruckwiederholung in 1/50 Sekunden: von 0 bis 10 (0s - 0.2s)
  • Bytes 8-15 - nicht benutzt

$14,$15

Die Zuordnung von virtuellen Laufwerken. Ein Byte pro Laufwerk (D1-D15). Die Bytes sind die Nummer von virtuellen (oder realen) Laufwerken die den Laufwerken D1-D15 zugeordnet werden sollen.

  • <1-15> - Laufwerke D1 bis D15
  • <129-228> - virtuelle Laufwerke V0 bis V99
  • 128 - das Konfigurator-Laufwerk

$20

Parameter (Bit 0 = Selektion vorhanden, Bit 1 = Fehler, erzeuge keine Datei wenn sie nicht vorhanden ist):

  • 0 - öffne/erzeuge eine Datei mit dem angegebenen Namen im Hauptordner (ATARI)
  • 1 - öffne/erzeuge eine Datei mit dem angegebenen Namen im aktuellen Ordner
  • 2 - öffne eine Datei mit dem angegebenen Namen im Hauptordner (ATARI)
  • 3 - öffne eine Datei mit dem angegebenen Namen im aktuellen Ordner

$0B,$0D,$20

Dateiname:

Der Name soll bis zu 39 Zeichen beinhalten (wenn der Name kürzer ist, sollte der Rest mit NULLen bzw. mit Leerzeichen gefüllt werden). Alle nicht zugelassenen Zeichen (Zeichen deren Code unter 32 oder über 126 liegt und ‘', ‘/’, ‘:’, ‘*’, ‘?’, ‘"’, ‘<’, ‘>’, ‘|’) werden ignoriert. Zum Beispiel: der Name “test/name” wird zu “testname”. Das bedeutet, dass auch das Atari EOL (155) ignoriert wird, kann also im Namen enthalten sein.

$01,$02,$04,$05,$08,$21

Datei/Ordner Beschreibung (54 Bytes)

  • Bytes 0-38 - der Name
  • Byte 39:
    • 0 - ausgeschaltet (nur Befehle $01 und $02)
    • 1 - Ordner
    • 2 - Datei
    • 3 - leeres Laufwerk (nur Befehle $01 und $02)
  • Bytes 40-43 - die Nummer von dem ersten Block in der Datei (first cluster)
  • Bytes 44-47 - Länge (nur für Dateien, NULL für Ordner)
  • Bytes 48-53 - die Positionsbeschreibung im aktuellen Ordner