Komendy SIO

SIO device number: $73 + deviceID

Komenda aux1 aux2 kierunek transmisji długość opis firmware
$00 - - SIO2SD->ATARI ($40) 1 status urządzenia (patrz niżej) 1.0
$01 numer dysku (1-15,128-228) ilość dysków (1-4) SIO2SD->ATARI ($40) 54*ilość dysków pobierz parametry mapowania dysków 1.0
$02 numer dysku (1-15,129-228) ilość dysków (1-4) ATARI->SIO2SD ($80) 54*ilość dysków ustaw parametry mapowania dysków 1.0
$03 numer dysku (1-15,129-228) ilość dysków (1-100) - ($00) - wyłącz mapowanie dysków 1.0
$04 ilość wpisów (1-4) flagi (0-3) SIO2SD->ATARI ($40) 54*ilość wpisów pobierz kolejne wpisy z bierzącego katalogu 1.0
$05 - - ATARI->SIO2SD ($80) 54 zmień bierzący katalog na podany 1.0
$06 - - - ($00) - wejdź do nadkatalogu 1.0
$07 - - - ($00) - wejdź do głównego katalogu 3.0
$08 - - SIO2SD->ATARI ($40) 54 zwróć bierzący katalog 3.0
$09 typy obiektów - ATARI->SIO2SD ($80) 16 ustaw maskę przeszukiwania 3.0
$0A - - SIO2SD->ATARI ($40) 2 zwróć liczbę wpisów dla bieżącego katalogu (pasujących do maski) 3.0
$0B typ obiektu - ATARI->SIO2SD ($80) 39 utwórz nowy wpis w bieżącym katalogu 3.0
$0C - - ATARI->SIO2SD ($80) 54 skasuj wskazany plik 3.0
$0D - - ATARI->SIO2SD ($80) 54 zmień nazwę wskazanego pliku 3.0
$0E - - SIO2SD->ATARI ($40) 54 znajdź na całej karcie SD pliki pasujące do maski 3.0
$0F - - ATARI->SIO2SD->ATARI ($C0) 54 zwróć katalog nadrzędny dla wskazanego obiektu 3.0
$10 line number - ATARI->SIO2SD ($80) 40 wyświetl dane na wyświetlaczu LCD 2.0
$11 - - SIO2SD->ATARI ($40) 1 zwróć wersję oprogramowania systemowego 3.0
$12 - - SIO2SD->ATARI ($40) 16 zwróć bajty konfiguracyjne 3.0
$13 - - ATARI->SIO2SD ($80) 16 ustaw bajty konfiguracyjne 3.0
$14 - - SIO2SD->ATARI ($40) 15 zwróć konfigurację mapowania dysków wirtualnych 3.0
$15 - - ATARI->SIO2SD ($80) 15 ustaw konfigurację mapowania dysków wirtualnych 3.0
$1E - - SIO2SD->ATARI ($40) 1 zwróć indeks szybkości dla turbo normalnego 3.0
$1F - - SIO2SD->ATARI ($40) 1 zwróć indeks szybkości dla turbo 7-bit 3.0
$20 parametry - ATARI->SIO2SD ($80) 39 stwórz/otwórz plik 3.0
$21 - - ATARI->SIO2SD ($80) 54 otwórz plik 3.0
$22 - - SIO2SD->ATARI ($40) 3 zwróć pozycję operacji odczytu/zapisu (w bajtach) 3.0
$23 - - ATARI->SIO2SD ($80) 3 ustaw pozycję operacji odczytu/zapisu (w bajtach) 3.0
$24 długość - SIO2SD->ATARI ($40) ‘aux1’ bajtów odczytaj podaną ilość bajtów z bieżącej pozycji 3.0
$25 długość - ATARI->SIO2SD ($80) ‘aux1’ bajtów zapisz podaną ilość bajtów od bieżącej pozycji 3.0
$26 - - SIO2SD->ATARI ($40) 3 zwróć długość otwartego pliku (w bajtach) 3.0
$27 - - ATARI->SIO2SD ($80) 3 ustaw długość otwartego pliku (w bajtach) 3.0

$00

status:

  • 0 - brak karty
  • 1 - jest karta w slocie
  • 2 - jest karta w slocie, uległy zmianie mapowania dysków oraz bieżący katalog
  • 3 - jest karta w slocie, uległy zmianie mapowania dysków
  • 4 - jest karta w slocie, uległ zmianie bieżący katalog

$01,$02,$03

numery dysków:

  • <1-15> - zwykłe dyski D1 do D15
  • <129-228> - dyski “wirtualne” V0 do V99
  • 128 - dysk konfiguracyjny

$04

flagi (bit 0 = start/kontynuacja , bit 1 = przód/tył):

  • 0 - kontynuuj od początku
  • 1 - ustaw na początek i zwróć pierwsze pliki
  • 2 - kontynuuj od końca
  • 3 - ustaw na koniec i zwróć ostatnie pliki

$09

maska typów:

  • 1 - katalogi
  • 2 - pliki
  • 3 - wszystko

dane:

  • Maska jest podawana w formie napisu zakończonego zerem lub zajmującego pełne 16B w formie: []text[] lub []text[].[]text[]

$0B

typ obiektu:

  • 1 - katalog
  • 2 - plik (tworzony jest plik o zerowej długości, który jest traktowany jak plik ATR)

$0D

  • bajty <0-38> - nowa nazwa pliku
  • bajty <39-53> - dane pliku, któremu chcemy zmienić nazwę

$0E

  • Komenda ta do pracy wymaga wcześniejszego ustawienia maski komendą $09

$12,$13

  • bajt 0 - ustawienie prędkości turbo (0-16 prędkość turbo , 17 - turbo wyłączone)
  • bajt 1 - ustawienie prędkości turbo w trybie 7-bit/XF551
  • bajt 2 - ustaw prędkość transmisji karty MMC/SD
    • 0 - szybko (jak na AVR’a) - około 2.4Mb/s
    • 1 - pośrednia prędkość - około 900kb/s
    • 2 - wolno - około 500kb/s
  • bajt 3 - tryb działania diod LED
    • 0 - tylko odczyty i zapisy na karcie SD
    • 1 - tylko odczyty i zapisy z ATARI (SIO)
    • 2 - jedna dioda odczyty i zapisy SD, a druga aktywność SIO
  • bajt 4 - numer urządzenia SIO2SD (0-3)
  • bajt 5 - parametry zabezpieczenia przed zapisem
    • 0 - ATR’y zawsze mogą być zapisywane
    • 1 - zachowanie zgodne z ustawieniem flagi w ATR
    • 2 - ATR’y zawsze są zabezpieczone przed zapisem
  • bajt 6 - czas od wciśnięcia klawisza do rozpoczęcia samopowtarzania (0-50 w 1/50s)
  • bajt 7 - czas pomiędzy wciśnięciami w czasie samopowtarzania (0-10 w 1/50s)
  • bajty 8-15 - na razie nie są używane

$14,$15

Tablica mapowania dysków. Kolejne bajty odpowiadają kolejnym dyskom. Każdy bajt zawiera numer dysku, na który dany dysk rzeczywisty ma być przemapowany.

  • wartości 1 - 15 odpowiadają dyskom D1 do D15
  • wartości 129 - 228 odpowiadają dyskom wirtualnym V0 do V99
  • wartość 128 odpowiada programowi konfiguracyjnemu

$20

parametry (bit 0 = wybór miejsca, bit 1 = błąd, gdy nie ma pliku):

  • 0 - otwórz plik o danej nazwie w katalogu ATARI (jeżeli nie było pliku to go stwórz) - dla plików konfiguracyjnych
  • 1 - otwórz plik o danej nazwie w bieżącym katalogu (jeżeli nie było pliku to go stwórz) - generacja nowego pliku
  • 2 - otwórz plik o danej nazwie w katalogu ATARI (jeżeli nie było pliku to błąd)
  • 3 - otwórz plik o danej nazwie w bieżącym katalogu (jeżeli nie było pliku to błąd)

$0B,$0D,$20

nazwa pliku:

Typowo powinno to być do 39 znaków dopełnionych zerami. Przy czym o ile w nazwie nie ma zera, to spacje z końca są usuwane, zatem wypełnienie nazwy spacjami (tak jak system zwraca w innych komendach) jest dopuszczalne. Z przekazanej nazwy system weźmie znaki o kodach od 32 do 126 z pominięciem znaków: ‘', ‘/’, ‘:’, ‘*’, ‘?’, ‘"’, ‘<’, ‘>’, ‘|’. Oznacza to np., że nazwa ze znakiem EOL (atari:155) na końcu zostanie zaakceptowana, a znak EOL po prostu pominięty.

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

opis pliku/katalogu (54B)

  • bajty 0-38 (nazwa obiektu)
  • bajt 39 - typ obiektu:
    • 0 - wyłączony (tylko komendy $01 i $02)
    • 1 - katalog
    • 2 - plik
    • 3 - pusty dysk (tylko komendy $01 i $02)
  • bajty 40-43 - numer pierwszego bloku pliku (first cluster)
  • bajty 44-47 - dla plików długość pliku, dla katalogów 0
  • bajty 48-53 - opis pozycji w katalogu, gdzie znajduje się dany obiekt