Lista komend SIO według funkcji
From Atariki
Wersja z dnia 19:46, 11 lip 2015 Trub (Dyskusja | wkład) (→Atari 850) ← Previous diff |
Wersja z dnia 19:47, 11 lip 2015 Trub (Dyskusja | wkład) (→Atari 850) Next diff → |
||
Linia 199: | Linia 199: | ||
<tr><td><b>Kod</b></td><td><b>Nazwa</b></td><td><b>Urządzenie</b></td><td><b>R/W</b></td><td><b>Ilość danych</b></td><td><b>Opis</b></td></tr> | <tr><td><b>Kod</b></td><td><b>Nazwa</b></td><td><b>Urządzenie</b></td><td><b>R/W</b></td><td><b>Ilość danych</b></td><td><b>Opis</b></td></tr> | ||
- | <tr><td>$20 ( )</td><td>LOAD AND EXECUTE TEST</td><td>W</td><td>Równa wielkości przesyłanego kodu</td> | + | <tr><td>$20 ( )</td><td>LOAD AND EXECUTE TEST</td><td rowspan = 4>$50</td><td>W</td><td>Równa wielkości przesyłanego kodu</td> |
<td><p>Komenda niepublikowana w oficjalnej dokumentacji. Powoduje wczytanie z komputera kodu programu, a następnie uruchomienie go przez interfejs [[850|Atari 850]]. W DAUX1 podawany jest rozmiar przesyłanego kodu. Ze względu na specyfikę procedury odbioru danych, kod powinien być wysyłany od ostatniego do pierwszego bajtu.</p></td></tr> | <td><p>Komenda niepublikowana w oficjalnej dokumentacji. Powoduje wczytanie z komputera kodu programu, a następnie uruchomienie go przez interfejs [[850|Atari 850]]. W DAUX1 podawany jest rozmiar przesyłanego kodu. Ze względu na specyfikę procedury odbioru danych, kod powinien być wysyłany od ostatniego do pierwszego bajtu.</p></td></tr> | ||
- | <tr><td>$41 (A)</td><td>CONTROL</td><td rowspan = 4>$50</td><td rowspan = 2>-</td><td rowspan = 2>0 bajtów</td> | + | <tr><td>$41 (A)</td><td>CONTROL</td><td rowspan = 2>-</td><td rowspan = 2>0 bajtów</td> |
<td><p>Komenda aktywująca linie DTR, RTS i XMT (TX) wskazanego portu RS-232 interfejsu [[850|Atari 850]]. Odpowiada komendzie [[CIO]] XIO 34,#i,x,y,"Rn:", przy czym parametry ''x'' i ''y'' wysyłane są odpowiednio jako DAUX1 i DAUX2. Wykonanie komendy nie pociąga za sobą transmisji danych.</p></td></tr> | <td><p>Komenda aktywująca linie DTR, RTS i XMT (TX) wskazanego portu RS-232 interfejsu [[850|Atari 850]]. Odpowiada komendzie [[CIO]] XIO 34,#i,x,y,"Rn:", przy czym parametry ''x'' i ''y'' wysyłane są odpowiednio jako DAUX1 i DAUX2. Wykonanie komendy nie pociąga za sobą transmisji danych.</p></td></tr> | ||
Wersja z dnia 19:47, 11 lip 2015
Główny artykuł: SIO
Spis treści |
Podstawowy zestaw komend
Poniższa tabela wyszczególnia podstawowe minimum komend rozpoznawanych przez urządzenia peryferyjne Atari.
Kod | Nazwa | Urządzenie | R/W | Ilość danych | Opis |
$21 (!) | FORMAT DISK | $31 | R | Równa wielkości sektora danych na dysku | Formatuje dyskietkę w wybranej uprzednio (komendami PERCOM) gęstości, lub w pojedynczej gęstości (90k), jeśli stacja nie jest konfigurowalna. Zwraca listę zawierającą numery wadliwych sektorów (kolejno LSB/MSB) wykrytych w czasie formatowania, zakończoną wartością $FFFF. Niektóre stacje zwracają tu pustą listę ($FFFF, a dalej same zera), nawet jeśli na dyskietce są wadliwe sektory: po prostu dyskietki nie są już tak drogie, jak pod koniec lat siedemdziesiątych XX wieku... Kontroler KMK/JŻ IDE nie rozpoznaje tej komendy dla bezpieczeństwa danych na dysku (do partycjonowania i "formatowania" dysku służy oddzielny program). |
$50 (P) | PUT SECTOR | $31 i $60 | W | Zależna od urządzenia i trybu pracy. | Zapisuje do urządzenia blok danych wskazany przez DBUFA, a zawierający DBYT bajtów. W przypadku stacji dysków jest to zapis bez weryfikacji. |
$52 (R) | READ SECTOR | R | Odczytuje z urządzenia blok danych o wielkości DBYT bajtów i zapisuje go w pamięci pod adresem wskazanym przez DBUFA. | ||
$53 (S) | READ STATUS | Wszystkie oprócz magnetofonu | R | Zależna od urządzenia | Odczytuje z urządzenia blok statusu i zapisuje go pod adresem wskazanym przez DBUFA. Blok statusu dla RS-232 ma wielkość 2 bajtów, dla drukarki i stacji dysków - 4. Typowo komenda ta służy to stwierdzenia, czy urządzenie jest gotowe do pracy. W przypadku magnetofonu obowiązuje założenie, że jest on zawsze podłączony i gotów, nie ma więc potrzeby sprawdzania jego statusu. |
$57 (W) | WRITE SECTOR | Wszystkie | W | Zależna od urządzenia i trybu pracy. | To samo, co PUT SECTOR ($50). W przypadku stacji dysków zapis przeprowadzany jest z weryfikacją. |
W przypadku drukarki długość bufora może wynosić 20, 29 albo 40 znaków (na ogół to ostatnie), a znaczenie DAUX2 jest jak następuje:
| |||||
Dla interfejsu Atari 850 wielkość bufora wynosi 64 bajty. |
Komendy dodatkowe
Rozpoznawane przez urządzenia peryferyjne Atari komendy dodatkowe w stosunku do powyżej wspomnianego niezbędnego minimum.
Kod | Nazwa | Urządzenie | R/W | Ilość danych | Opis |
$22 (") | FORMAT MEDIUM | $31 | R | 128 bajtów | Analogicznie do FORMAT DISK ($21), z tym że formatowanie zawsze przeprowadzane jest w gęstości średniej (130k). Komenda wprowadzona razem ze stacją 1050.
Kontroler KMK/JŻ IDE nie rozpoznaje tej komendy dla bezpieczeństwa danych na dysku (do partycjonowania i "formatowania" dysku służy oddzielny program). |
$23 (#) | FORMAT DSDD | 256 bajtów | Analogicznie do FORMAT DISK ($21), z tym że formatowanie zawsze przeprowadzane jest w gęstości podwójnej dwustronnej (360k). Komenda wprowadzona razem ze stacją Atari XF-551.
Kontroler KMK/JŻ IDE nie rozpoznaje tej komendy dla bezpieczeństwa danych na dysku (do partycjonowania i "formatowania" dysku służy oddzielny program). |
Komendy PERCOM
Komendy PERCOM noszą nazwę od stacji dysków firmy PERCOM, w których po raz pierwszy się pojawiły. Nie są rozpoznawane przez stacje dysków firmy Atari (z wyjątkiem Atari XF-551), są jednak zaimplementowane we wszystkich rozszerzeniach oraz stacjach innych producentów i stanowią de facto standard.
Kod | Nazwa | Urządzenie | R/W | Ilość danych | Opis |
$4E (N) | READ PERCOM | $31 | R | 12 bajtów (Blok PERCOM) | Odczytuje z urządzenia dwunastobajtowy blok danych opisujący jego bieżącą konfigurację, tj. przede wszystkim format znajdującej się w stacji dyskietki. |
$4F (O) | WRITE PERCOM | W | Zapisuje do urządzenia dwanaście bajtów opisujących żądaną konfigurację, tj. liczbę ścieżek, stron dyskietki, sektorów na ścieżkę, wielkość sektora, gęstość. Przyjąwszy komendę stacja powinna natychmiast przestawić się na żądane ustawienia, o ile jest w stanie je zrealizować. Jeśli zadanych ustawień nie da się zrealizować, stacja w teorii powinna odrzucić przesłany blok danych zgłaszając komputerowi błąd wykonania (co skutkuje kodem błędu nr 144). W praktyce wiele stacji stosuje uproszczoną procedurę przyjmując parametry najbliższe zdefiniowanym przez przesłany blok danych. Jednak to, że parametry są "najbliższe", nie oznacza, że muszą być w ogóle bliskie: np. zażądanie formatu 360 KB od stacji Top Drive 1050 spowoduje jej ustawienie się w DD (180k), bo to jest maximum, jakie stacja jest w stanie zrealizować. Komplikuje to zadanie programom formatującym, które w celu zapisania prawidłowego katalogu muszą sprawdzać, czy żądana od stacji pojemność dyskietki została rzeczywiście wybrana. Po pomyślnym wykonaniu tej operacji komenda FORMAT DISK ($21) sformatuje dyskietkę zgodnie z zapisaną konfiguracją. Kontroler KMK/JŻ IDE nie rozpoznaje tej komendy dla bezpieczeństwa danych na dysku (do definiowania wielkości partycji służy oddzielny program). |
Komendy specjalne
Komendy wspomagające automatyczną instalację w systemie handlerów podłączonych urządzeń zewnętrznych.
Kod | Nazwa | Urządzenie | R/W | Ilość danych | Opis |
$21 (!) | SEND RELOCATOR | $50 (RS-232) | R | Wg odpowiedzi na komendę POLL ($3F) | Jest to komenda uzupełniająca do opisanego niżej POLL ($3F). Powoduje przesłanie przez urządzenie programu odpowiedzialnego za załadowanie (komendą SEND HANDLER) i relokację właściwego handlera. Wszystkie parametry transmisji dla SEND RELOCATOR przesyłane są na komendę POLL ($3F). Program relokatora - po jego załadowaniu - uruchamia się od adresu DBUFA + 6. Przejmuje on na siebie wykonanie reszty operacji, a w wypadku niepowodzenia sygnalizuje błąd przez ustawienie bitu Carry. Komendę SEND RELOCATOR rozpoznaje moduł Atari 850, a może dotyczyć też innych urządzeń, oprócz stacji dysków (gdzie kod operacyjny $21 oznacza formatowanie dyskietki). |
$26 (&) | SEND HANDLER | Wg parametrów ustawionych przez relokator przesłany przez SEND RELOCATOR ($21) lub wg odpowiedzi na komendę POLL BUS ($40) | R | Wg parametrów ustawionych przez relokator (przesłany przez urządzenie lub rezydujący) | Komenda SEND HANDLER służy do załadowania z urządzenia kodu programu obsługi (handlera) tego urządzenia. Może ona działać różnie w zależności od tego, czy transmisja została zainicjowana przez komendę POLL ($3F) czy POLL BUS ($40). Komenda POLL ($3F) oznacza starszy protokół transmisji, w którym format strumienia danych przesłanych przez SEND HANDLER zależny jest od programu relokatora załadowanego wcześniej komendą SEND RELOCATOR ($21) i uruchomionego przez komputer. Komenda POLL BUS ($40) oznacza nowszy protokół transmisji. Format strumienia danych jest ustalony z góry, a relokator rezyduje w ROM-ie systemu operacyjnego komputera. Po otrzymaniu pozytywnej odpowiedzi na POLL BUS ($40) komputer rozpoczyna ładowanie kolejnych, 128-bajtowych rekordów binarnych, w liczbie do 256 (czyli pojedynczy "handler" może mieć maximum 32k). Przesyłany strumień danych musi być w specjalnym formacie, który zapewnia relokowalność kodu, oraz zawiera podany explicite znacznik końca pliku - wystąpienie błędu przed napotkaniem tego znacznika powoduje przerwanie procedury z kodem błędu INCOMPLETE EXECUTION. Ustawienia zmiennych DCB dla komendy SEND HANDLER wyglądają następująco:
|
$3F (?) | POLL | $50 (RS-232) | R | 12 bajtów | Komenda ta, zwana też TYPE 2 POLL, służy do zainicjowania transmisji mającej na celu automatyczne ściągnięcie z urządzenia i zainstalowanie odpowiedniego dlań programu obsługi (handlera). W odpowiedzi urządzenie przesyła 12 bajtów odpowiadających kolejnym wartościom, jakie należy ustawić w bloku DCB celem załadowania kodu wykonywalnego handlera. Jest to starszy protokół transmisji zaprojektowany dla komputerów serii 400 i 800. W module Atari 850 odpowiedzią na komendę POLL są wartości, jakie trzeba wstawić do DCB celem wykonania komendy SEND RELOCATOR ($21). W celu uniknięcia wielokrotnego załadowania tego samego programu obsługi urządzenie na komendę POLL ($3F) odpowiada tylko raz, potem wykonanie komendy jest zablokowane aż do wyłączenia zasilania. |
$40 (@) | POLL BUS | $4F (bus master) | R | 4 bajty | W komputerach serii XL oraz XE komendę tę system operacyjny przesyła do interfejsu szeregowo-równoległego przy każdym zimnym starcie; w pewnych warunkach - ale z nieco innymi parametrami - może też zostać wykonana po zainicjowaniu systemu. Jest to odpowiednik komendy POLL ($3F), jednak protokół transmisji handlera jest zunifikowany i nie wymaga od urządzenia przesyłania relokatora (uniwersalny relokator rezyduje w ROM-ie systemu operacyjnego). Analogicznie do POLL ($3F), komenda POLL BUS jest przeznaczona do zapoczątkowania transmisji mającej na celu automatyczne ściągnięcie z urządzenia i zainstalowanie odpowiedniego dlań programu obsługi (handlera). Zasadniczym adresatem jest tu moduł 1090 działający jako bus master. Istnieje kilka odmian komendy POLL BUS różniących się parametrami przesyłanymi w DAUX1 i DAUX2:
Przy zimnym starcie na początku system wysyła RESET POLL. Komenda ta powinna odblokować rozpoznawanie komendy TYPE 3 POLL we wszystkich podłączonych urządzeniach. Na RESET POLL urządzenia, oprócz potwierdzenia wykonania, nie przesyłają żadnej odpowiedzi, a komputer jej nie oczekuje. Następnie system wysyła komendę TYPE 3 POLL. Pozytywna odpowiedź oznacza, że urządzenie nadesłało 4 bajty, z czego dwa pierwsze to ilość pamięci potrzebna do przeprowadzenia całości transmisji (musi to być parzysta wielkość). Jeśli jest to więcej niż dostępna ilość pamięci pomiędzy MEMLO a MEMTOP, system odpowiada przez NULL POLL (podobnie jak w wypadku RESET POLL, urządzenie przesyła tylko potwierdzenie wykonania), a następnie ponownie wysyła TYPE 3 POLL. W przypadku braku pamięci byłaby to pętla nieskończona, ale pojedyncze urządzenie na komendę TYPE 3 POLL może odpowiedzieć tylko raz - pętla jest więc przerywana błędem, który wystąpi po przetestowaniu wszystkich urządzeń zarządzanych przez bus mastera. Ponowna odpowiedź na TYPE 3 POLL jest możliwa dopiero po przesłaniu urządzeniu komendy RESET POLL, inaczej TYPE 3 POLL zostanie zignorowana. Trzeci przysłany bajt to identyfikator urządzenia (dla DDEVIC), które odpowiedziało na komendę i z którym będzie prowadzona dalsza komunikacja. Po stwierdzeniu poprawności odpowiedzi komputer dokonuje rezerwacji pamięci nad wartością MEMLO zaokrągloną w górę do najbliższej granicy słowa i próbuje dokonać odczytu z urządzenia, które się zgłosiło, 128 bajtów pod adres $03FD, przy użyciu innej "nietypowej" komendy, a mianowicie $26 - SEND HANDLER. Po załadowaniu i zainicjowaniu handlera pętla wraca do początku i wykonuje się cyklicznie aż do wystąpienia błędu - czyli do załadowania wszystkich handlerów będących w dyspozycji bus mastera. Procedura ładowania handlera wywoływana jest po procedurze bootowania DOS-u, ale niezależnie od jej wyniku; z czego wniosek, że "handler" może spełniać funkcję zarówno dodatku do DOS-u, jak i zostać załadowany zamiast DOS-u. Tą samą drogą można już po całkowitym uruchomieniu systemu, podczas pracy, załadować handler urządzenia konkretnie wskazanego. Robi to CIO przy każdorazowej próbie otwarcia pliku na urządzeniu, którego system nie zna (nie ma takiego wpisu w tablicy handlerów). Odpytanie bus mastera na okoliczność dysponowania takowym handlerem odbywa się za pomocą komendy TYPE 4 POLL. W DAUX1 ma się znajdować identyfikator urządzenia CIO, dla którego to urządzenia potrzebujemy handlera (np. dla magnetofonu $43, czyli "C"), w DAUX2 natomiast przesyła się numer wywoływanego urządzenia (np. dla "C1:" będzie to $01). |
Pozostałe komendy
Komendy zdefiniowane przez Atari, na których temat brak bliższych danych.
Kod | Nazwa | Urządzenie | R/W | Ilość danych | Opis |
$20 ( ) | DOWNLOAD | ??? | W (?) | ??? | Komenda wymieniana przez niektóre źródła. Szczegóły nieznane. Być może chodzi o komendę LOAD AND EXECUTE TEST w interfejsie 850 (zob. niżej) |
$23 (#) | DIAG1 | $31 | R/W | 128 bajtów | Komenda diagnostyczna stacji Atari 1050. Wymaga przesłania 128-bajtowego bloku danych, w którym dwa pierwsze bajty decydują o tym, co stacja będzie robić (DAUX1/2 są ignorowane):
UWAGA: kod operacyjny ($23) jest taki sam, jak kod komendy formatowania w stacji Atari XF-551 oraz LDW Super 2000 i CA-2001 z załadowanym Synchromeshem! |
$24 ($) | DIAG2 | Komenda diagnostyczna stacji 1050, służy do pomiaru prędkości obrotowej dyskietki. W zależności od wartości dwóch pierwszych bajtów przesłanego bloku danych ($00, $00 lub $00, $01) stacja przesyła czas jednego obrotu dyskietki lub wartość prędkości obrotowej w obrotach na minutę. | |||
$51 (Q) | READ SPIN | $31 | R (?) | ? | Komendy te występują jako komendy dyskowe na liście rozkazów SIO w dokumentacji sporządzonej przez Atari. Nie znam jednak stacji, która by na nie reagowała. Mogą to być komendy stacji 810, jakieś komendy diagnostyczne jej prototypu, albo komendy planowane, lecz nie zaimplementowane. Dostępna dokumentacja nie zawiera ich opisu. |
$54 (T) | READ ADDRESS | ||||
$55 (U) | MOTOR ON | - | 0 bajtów | ||
$56 (V) | VERIFY SECTOR | $31 | - | 0 bajtów | Stacja odczytuje sektor wskazany przez DAUX1/2 i zwraca komputerowi informację, czy da się on odczytać bez błędów. Dane zawarte w sektorze nie są transmitowane do komputera. Komenda ta występuje w dokumentacji SIO sporządzonej przez Atari, ale żadna ze stacji marki Atari jej nie rozpoznaje. |
Komendy specyficzne dla poszczególnych urządzeń
Stacje dysków Atari 1450XLD | |||||
Kod | Nazwa | Urządzenie | R/W | Ilość danych | Opis |
$01 (-) | SET LARGE MODE | $31 | - | 0 bajtów | Komenda aktywująca tzw. large mode. W tym trybie stacja "widzi" dyskietkę dwustronną jako logiczną całość liczącą 2080 sektorów po 128 bajtów (260k). |
$02 (-) | SET SMALL MODE | Komenda aktywująca tzw. small mode. W tym trybie stacja "widzi" dyskietkę dwustronną jako dwie oddzielne dyskietki liczące po 1040 sektorów po 128 bajtów (= 2x130k). | |||
$23 (#) | DRIVE DIAGNOSTIC IN | $31 | W | 128 bajtów | Komenda zapisująca do stacji wskazany bufor wypełniony bliżej nieokreślonymi danymi diagnostycznymi. |
$24 ($) | DRIVE DIAGNOSTIC OUT | R | Komenda odczytująca bliżej niesprecyzowane dane diagnostyczne do wskazanego bufora. | ||
$B1 (-) | ??? | $31 | ? | ? | Komenda wewnętrzna sterownika stacji, nieopisana w dokumentacji. |
$B2 (-) | ??? | Komenda wewnętrzna sterownika stacji, nieopisana w dokumentacji. | |||
Atari 850 | |||||
Kod | Nazwa | Urządzenie | R/W | Ilość danych | Opis |
$20 ( ) | LOAD AND EXECUTE TEST | $50 | W | Równa wielkości przesyłanego kodu | Komenda niepublikowana w oficjalnej dokumentacji. Powoduje wczytanie z komputera kodu programu, a następnie uruchomienie go przez interfejs Atari 850. W DAUX1 podawany jest rozmiar przesyłanego kodu. Ze względu na specyfikę procedury odbioru danych, kod powinien być wysyłany od ostatniego do pierwszego bajtu. |
$41 (A) | CONTROL | - | 0 bajtów | Komenda aktywująca linie DTR, RTS i XMT (TX) wskazanego portu RS-232 interfejsu Atari 850. Odpowiada komendzie CIO XIO 34,#i,x,y,"Rn:", przy czym parametry x i y wysyłane są odpowiednio jako DAUX1 i DAUX2. Wykonanie komendy nie pociąga za sobą transmisji danych. | |
$42 (B) | CONFIGURE | Komenda ustawiająca różne parametry pracy (m.in. szybkość transmisji) wskazanego portu RS-232 interfejsu Atari 850. Odpowiada komendzie CIO XIO 36,#i,x,y,"Rn:", przy czym parametry x i y wysyłane są odpowiednio jako DAUX1 i DAUX2. Wykonanie komendy nie pociąga za sobą transmisji danych. | |||
$58 (X) | STREAM | R | 9 bajtów | Komenda uruchamiająca tryb równoległego wejścia/wyjścia (concurrent I/O). Interfejs Atari 850 w odpowiedzi zwraca sekwencję liczb, według której handler urządzenia "R:" ustawia rejestry układu POKEY (kolejno AUDF,AUDC 1-4 oraz AUDCTL). Przykładowa sekwencja dla szybkości transmisji 300bps jest następująca: $A0, $A0, $0B, $A0, $A0, $A0, $0B, $A0, $78. Komenda jest używana przez handler przy poleceniu CIO XIO 40,#i,0,0,"Rn:" (START CONCURRENT MODE I/O). | |
ATR 8000 | |||||
Kod | Nazwa | Urządzenie | R/W | Ilość danych | Opis |
$47 (G) | GO TO | $5A (ATR 8000) | - | 0 | Komenda pozwala na wywoływanie funkcji zdefiniowanych w ROM-ie modułu ATR 8000 (q.v.). |
Indus GT/LDW Super 2000/CA-2001 | |||||
Kod | Nazwa | Urządzenie | R/W | Ilość danych | Opis |
$23 (#) | FORMAT SKEWED | $31 | R | Równa wielkości sektora danych na dysku | Komenda formatowania z szybkim przeplotem w stacjach Indus GT, LDW Super 2000 oraz CA-2001 z załadowanym Synchromeshem. Kod operacyjny jest taki sam, jak komendy formatowania w gęstości DSDD dla stacji XF551 oraz jednej z komend diagnostycznych w 1050. |
$58 (X) | DOWNLOAD/EXECUTE | R/W | Różna | Komenda zaimplementowana w stacjach Indus GT, LDW Super 2000 i CA-2001, pozwalająca na przesyłanie do stacji programów użytkownika i uruchamianie ich. Szczegóły: patrz Programowanie stacji LDW Super 2000 i CA-2001. | |
Happy Warp | |||||
Kod | Nazwa | Urządzenie | R/W | Ilość danych | Opis |
$48 (H) | HAPPY CONFIG | $31 | - | 0 bajtów | Konfiguracja stacji z rozszerzeniem Happy Warp. Szczegóły: patrz Happy Warp - Konfiguracja |
KMK/JŻ IDE | |||||
$EC | IDENTIFY DRIVE | $31 | R | 512 bajtów | W KMK/JŻ IDE komenda powoduje odczytanie bloku identyfikacyjnego napędu IDE, na którym założona jest wskazana partycja, i wpisanie go do bufora wskazanego przez DBUFA. Kolejność bajtów w tym bloku jest odwrotna od normalnej, tzn. wszystkie pary bajtów należy zamienić miejscami przed odczytaniem danych z tego bufora - dotyczy to również informacji tekstowej. |
Multi I/O | |||||
$4D (M) | MEDIA CAPACITY INFO | $31 | R | 8 bajtów | Nowe wersje firmware Multi I/O (od v. 1.4 wzwyż) w odpowiedzi na tę komendę zwracają informację o pojemności wskazanego dysku SCSI w tym formacie. |
Speedy 1050 | |||||
Kod | Nazwa | Urządzenie | R/W | Ilość danych | Opis |
$20 ( ) | AUTOMATIC FORMATTING | $31 | R | 0 bajtów | Speedy 1050 w odpowiedni na tę komendę formatuje dyskietkę w zadanej gęstości (DAUX1 = $00 pojedyncza, $20 podwójna, $80 średnia) i, o ile konfiguracja stacji tego nie zabrania, zapisuje bootsektory i VTOC zgodne z DOS 2.0 lub (w średniej gęstości) DOS 2.5. |
$41 (A) | REGISTER COMMAND | W | 3 bajty | W stacjach Speedy 1050 komenda powoduje zarejestrowanie komendy uzytkownika. Dane powinny zawierać kolejno:
Jeśli dana komenda jest już jakoś przypisana, to przypisanie zostanie zmienione. Gdy adres ma wartość $0000, komenda zostanie wykasowana z pamięci stacji. | |
$44 (D) | CONFIGURE DISPLAY | - | 0 bajtów | Konfiguracja wyświetlacza stacji Speedy 1050. DAUX2 powinien być wyzerowany, bity DAUX1 mają znaczenie jak następuje (gdy = 1):
| |
$4B (K) | CONFIGURE DRIVE | - | 0 bajtów | Konfiguracja stacji Speedy 1050. DAUX2 powinien być wyzerowany, bity DAUX1 mają znaczenie jak następuje (gdy = 1):
| |
$4C (L) | JUMP, NO ACKNOWLEDGE | - | 0 bajtów | W stacjach Speedy 1050 wywołanie wewnętrznej procedury ROM-u stacji spod adresu przekazanego w DAUX1/2 (młodszy/starszy). Potwierdzenie wykonania rozkazu musi przesłać wywoływany podprogram. | |
$4D (M) | JUMP WITH ACKNOWLEDGE | - | 0 bajtów | W stacjach Speedy 1050 to samo, to $4C, ale potwierdzenie rozkazu jest przesyłane automatycznie. | |
$51 (Q) | FLUSH | - | 0 bajtów | W stacjach Speedy 1050 komenda ta powoduje natychmiastowy zapis zawartości bufora zapisu na dyskietkę i zatrzymanie silnika (normalnie stacja czeka z tym ok. 2 sekund po transmisji sektora). | |
$60 (`) | WRITE TRACK | W | Liczba sektorów na ścieżce razy liczba bajtów w sektorze | W stacjach Speedy 1050 zapis na dyskietkę całej ścieżki od numeru sektora wskazanego bajtami DAUX1/2. | |
$62 (b) | READ TRACK | R | Liczba sektorów na ścieżce razy liczba bajtów w sektorze | W stacjach Speedy 1050 odczyt z dyskietki całej ścieżki od numeru sektora wskazanego bajtami DAUX1/2. | |
$68 (h) | SIO LEN | R | 2 bajty | W stacjach Speedy 1050 komenda powoduje przesłanie dwóch bajtów określających wielkość procedury SIO, którą mozna od stacji uzyskać komendą $69. | |
$69 (i) | SEND SIO | R | Wynik komendy $68 | W stacjach Speedy 1050 komenda powoduje przesłanie programu szybkiej transmisji SIO. Bajty DBYT powinny być ustawione na wartość zwróconą przez komendę $68. DAUX1/2 to adres w pamięci Atari, gdzie procedura ma zostać załadowana (stacja dokonuje relokacji kodu pod ten adres przed wysłaniem go do komputera). | |
TOMS Multi Drive | |||||
Kod | Nazwa | Urządzenie | R/W | Ilość danych | Opis |
$49 (I) | INDEX FORMATTING | $31 | R | Zależnie od wybranej gęstości | W stacjach TOMS Multi Drive komenda ta działa tak samo, jak zwykłe formatowanie ($21), z tym wyjątkiem, że do oznaczenia początku ścieżki stacja używa otworu indeksowego (normalnie w stacjach Atari ścieżka zaczyna się tam, gdzie akurat wypadnie). Służy to głównie do zabezpieczania programów przez tzw. synchroniczne sektory. |
US Doubler | |||||
Kod | Nazwa | Urządzenie | R/W | Ilość danych | Opis |
$3F (?) | SEND HIGH SPEED INDEX | $31 | R | 1 bajt | Stacje kompatybilne z US Doubler w odpowiedzi na tę komendę przesyłają wartość rejestru POKEY-a służącą do ustawienia częstotliwości nośnej dla przyspieszonej transmisji. |
$66 (f) | CUSTOM FORMAT | W | 128 bajtów | Komenda formatowania z zadanym przeplotem zaimplementowana w stacjach US Doubler. Wysyłane 128 bajtów określa:
Przykładowe przeploty podaje hasło Przeplot. | |
XFD601/602 | |||||
Kod | Nazwa | Urządzenie | R/W | Ilość danych | Opis |
$42 (B) | GET COMMAND BUFFER | $31 | R | 128 bajtów | Zwraca historię ostatnich 32 wywołań na łączu szeregowym. Wszystkich wywołań - nie tylko do stacji. Każdy wpis zawiera 4 bajty - dokładnie te same, jakie są wysyłane do urządzenia zewnetrznego przez komputer, czyli: DDEVIC, DCMND, DAUX1, DAUX2. |
$54 (T) | READ ADDRESS | R | 6 bajtów | Po odebraniu tego rozkazu stacja zwraca tzw. adres pierwszego napotkanego sektora, w formie 6 bajtów: numer scieżki, numer strony, numer sektora, rozmiar sektora, 2 bajty CRC. |