<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl">
	<id>https://atariki.krap.pl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Montezuma</id>
	<title>Atariki - Wkład użytkownika [pl]</title>
	<link rel="self" type="application/atom+xml" href="https://atariki.krap.pl/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Montezuma"/>
	<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php/Specjalna:Wk%C5%82ad/Montezuma"/>
	<updated>2026-10-24T08:12:30Z</updated>
	<subtitle>Wkład użytkownika</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=NOMari&amp;diff=41631</id>
		<title>NOMari</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=NOMari&amp;diff=41631"/>
		<updated>2024-08-02T06:16:26Z</updated>

		<summary type="html">&lt;p&gt;Montezuma: /* Mapa pamięci */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rozszerzenie możliwości dźwiękowych ośmiobitowego Atari autorstwa [[Tori]]ego oparte o układ emulatora układu Commodore SID - &#039;&#039;&#039;SwinSID Nano&#039;&#039;&#039; - autorstwa Swinkelsa. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:NOMari dsg.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:NOMari cart.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Charakterystyka ==&lt;br /&gt;
Rozwiązanie bazuje na układzie XilinX XC9572XL-TQ100 oraz dwóch mikrokontrolerach ATMEGA88PA-AU emulujących układy Commodore SID umożliwiające pracę zarówno w układzie mono- jak i stereofonicznym. Dostępne jest w postaci cartridge&#039;a.&lt;br /&gt;
&lt;br /&gt;
==Mapa pamięci==&lt;br /&gt;
Na PCB znajduje się 3pozycyjny DIPswitch, którym ustala się adres bazowy modułu. Pozycja ON wysyła 0 na linię do dekodera (logika odwrotna). Wszystkie 3 hebelki w pozycji ON ustalają adres BASE na $D500 dla pierwszego SID i $D520 dla drugiego. Binarnie można ustawić jedną parę z ośmiu obszarów adresowych:&lt;br /&gt;
&lt;br /&gt;
      SID1   SID2&lt;br /&gt;
 1 - $D500  $D520&lt;br /&gt;
 2 - $D520  $D540&lt;br /&gt;
 3 - $D540  $D560&lt;br /&gt;
 4 - $D560  $D580&lt;br /&gt;
 5 - $D580  $D5A0&lt;br /&gt;
 6 - $D5A0  $D5C0&lt;br /&gt;
 7 - $D5C0  $D5E0&lt;br /&gt;
 8 - $D5E0  $D500&lt;br /&gt;
&lt;br /&gt;
NOMari standardowo ma ustawienie BASE na $D500 - nr 1&lt;br /&gt;
&lt;br /&gt;
Detekcja NOMari polega na odczytywaniu kolejnych adresów pamięci: $D500, $D520, ..., $D5E0. Jeśli z któregoś adresu odczytamy wartość $CE, oznacza to, że NOMari znajduje się w systemie, a BASE jest ustawione na ten adres.&lt;br /&gt;
&lt;br /&gt;
==Odnośniki zewnętrzne==&lt;br /&gt;
[http://atari.myftp.org/atari8bit/nomari/nomari.html Strona projektu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Atari 8-bit]]&lt;br /&gt;
[[Kategoria:Rozszerzenia]]&lt;/div&gt;</summary>
		<author><name>Montezuma</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Karin_Maxi&amp;diff=38408</id>
		<title>Karin Maxi</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Karin_Maxi&amp;diff=38408"/>
		<updated>2021-03-14T14:05:40Z</updated>

		<summary type="html">&lt;p&gt;Montezuma: /* Konfiguracja */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Interfejs pozwalający na podłączenie do Atari [[XE]] jednego lub dwóch typowych napędów dyskietek od PC. Połączenie pomiędzy stacją a komputerem jest równoległe ([[nowe urządzenia|nowe urządzenie]]), co pozwala na uzyskanie transferów powyżej 20 kB/s. Interfejs stworzony został w połowie lat 90 XX wieku przez firmę [[Karin]].&lt;br /&gt;
&lt;br /&gt;
Interfejs przeznaczony jest dla komputerów wyposażonych w złącze [[Gniazdo_ECI|ECI]]. Firma Karin oferowała montaż brakującego złącza ECI lub odpowiednią przejściowkę ze złącza [[PBI]]. Istnieje także wersja wewnętrzna (interfejs wpina się w odpowiednie sygnały na płycie komputera).&lt;br /&gt;
&lt;br /&gt;
Stosuje się zwykle napędy 5,25&amp;quot; i 3,5&amp;quot;, 40- lub 80-ścieżkowe o pojemności 360 do 720 kB. Na 3,5&amp;quot; napędzie 720k można &amp;quot;wycisnąć&amp;quot; do 980 kilobajtów pojemności dyskietki formatując ją dwustronnie po 24 256-bajtowe sektory na ścieżkę. Uzyskanie większych pojemności wymaga przetaktowania kontrolera i może się zdarzyć, że nie będą wówczas obsługiwane dyskietki sformatowane na nieprzerobionych stacjach.&lt;br /&gt;
&lt;br /&gt;
Ciekawostką interfejsu jest obsługa pełnej pojemności boot-sektora (można zapisać 256 bajtów zamiast 128 jak w standardowych stacjach).&lt;br /&gt;
&lt;br /&gt;
Cenę interfejsu z 1997r. można zobaczyć pod tym linkiem:&lt;br /&gt;
[https://groups.google.com/forum/?hl=pl#!msg/pl.comp.sys.atari/yne1mvPY488/Auh2byGsMRMJ;context-place=topic/pl.comp.sys.atari/kgx0I-eglCw Grupa pl.comp.sys.atari]&lt;br /&gt;
&lt;br /&gt;
W 2012 r. powstała nowa wersja z udoskonaloną elektroniką i oprogramowaniem, nazywana dalej &amp;lt;b&amp;gt;Karin Maxi II&amp;lt;/b&amp;gt;. Jej produkcji podjął się [[Stryker]], a osoby zaangażowane to [[Zaxon]], [[Jerzy Sobola|Jer]], [[trub]], [[KMK|drac030]], [[Candle]] i [[Dely]].&lt;br /&gt;
&lt;br /&gt;
== Technikalia ==&lt;br /&gt;
* Zastosowany zegar: 8 MHz&lt;br /&gt;
* Zastosowany kontroler: WD1770 lub WD1772&lt;br /&gt;
* Identyfikator nowego urządzenia PBI: 7 (ustawiony sprzętowo na stałe)&lt;br /&gt;
&lt;br /&gt;
== Konfiguracja ==&lt;br /&gt;
Interfejs ma zestaw przełączników pozwalający na ustawienie numeru stacji Karin Maxi oraz automatyczne lub ręczne skonfigurowanie napędów (mogą być różnego typu). Znaczenie przełączników podano w tabeli.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&lt;br /&gt;
 style=&amp;quot;text-align: left; &amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
 cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Nr&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Parametr&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;ON&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;OFF&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;i&amp;gt;Numery stacji Karin&amp;lt;/i&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;D2: i D3:&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;D1: i D2:&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;i&amp;gt;Konfiguracja&amp;lt;/i&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;Automatyczna (przy reset)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;Ręczna (wg przełączników 3-6)&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;i&amp;gt;Szybkość kroku głowicy w napędzie 2&amp;lt;/i&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;3ms&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;6ms&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;i&amp;gt;Szybkość kroku głowicy w napędzie 1&amp;lt;/i&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;3ms&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;6ms&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;i&amp;gt;Ilość ścieżek w napędzie 2&amp;lt;/i&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;80&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;40&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;i&amp;gt;Ilość ścieżek w napędzie 1&amp;lt;/i&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;80&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;40&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
       &amp;lt;td colspan=&amp;quot;4&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;i&amp;gt;Dodatkowe przełączniki w Karin Maxi II&amp;lt;/i&amp;gt;&lt;br /&gt;
       &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;i&amp;gt;Wybór wersji firmware*&amp;lt;/i&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;Dolna połówka EPROM&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;Górna połówka EPROM&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;i&amp;gt;Sterowanie interfejsem&amp;lt;/i&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;Aktywny&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;Nieaktywny&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Karin Mini&#039;&#039;&#039; ma nieco inną kolejność przełączników (od lewej):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table&lt;br /&gt;
 style=&amp;quot;text-align: left; &amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
 cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Nr&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Parametr&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;ON&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;b&amp;gt;OFF&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;i&amp;gt;Ilość ścieżek w napędzie 1&amp;lt;/i&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;80&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;40&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;i&amp;gt;Ilość ścieżek w napędzie 2&amp;lt;/i&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;80&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;40&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;3&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;i&amp;gt;Szybkość kroku głowicy w napędzie 1&amp;lt;/i&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;3ms&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;6ms&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;4&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;i&amp;gt;Szybkość kroku głowicy w napędzie 2&amp;lt;/i&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;3ms&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;6ms&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;5&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;i&amp;gt;Konfiguracja&amp;lt;/i&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;Automatyczna (przy reset)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;Ręczna (wg przełączników 1-4)&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;6&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;i&amp;gt;Numery stacji Karin&amp;lt;/i&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;D2: i D3:&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;D1: i D2:&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;7&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;i&amp;gt;Wybór wersji firmware*&amp;lt;/i&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;Dolna połówka EPROM&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;Górna połówka EPROM&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;8&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;&amp;lt;i&amp;gt;Sterowanie interfejsem&amp;lt;/i&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;Nieaktywny&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td&amp;gt;Aktywny&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;* W fabrycznym EPROMie nagranym przez Strykera dolną połówkę zajmuje BIOS dla WD1770, górną - WD1772 &amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Obsługa ==&lt;br /&gt;
Uruchomienie komputera lub reset z wciśniętym klawiszem SELECT powoduje:&lt;br /&gt;
&lt;br /&gt;
a) w starszych wersjach interfejsu: ustawienie stacji Karin Maxi jako D2: i D3: (niezależnie od przełącznika), przydatne w przypadku bootowania z innej stacji (np. szeregowej),&lt;br /&gt;
&lt;br /&gt;
b) w Karin Maxi II: wyświetlenie menu konfiguracyjnego Karin Maxi Setup. Jego opcje są następujące:&lt;br /&gt;
&lt;br /&gt;
* X - odłączenie interfejsu (logiczne)&lt;br /&gt;
* S - zamiana napędów 1 na 2 i odwrotnie&lt;br /&gt;
* 2 - ustawienie logicznych dysków na D2: i D3: (a nie D1: i D2:)&lt;br /&gt;
* D - wyłączenie migotania podczas operacji we/wy (ekran Antica pozostaje wyłączony)&lt;br /&gt;
* Esc - wyjście z menu&lt;br /&gt;
* Shift+Esc - wyjście z menu z resetowaniem ustawień gęstości dyskietek (format zostanie ustalony przy pierwszym dostępie)&lt;br /&gt;
* Shift+Return - wykonanie zimnego restartu.&lt;br /&gt;
&lt;br /&gt;
Przytrzymanie klawisza &amp;quot;Shift&amp;quot; podczas transmisji danych służy do chwilowego wstrzymania transmisji i umożliwia podejrzenie zawartości ekranu.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Zdjęcia ==&lt;br /&gt;
Na zdjęciach przedstawiono interfejs sprzedawany przez firmę Karin. Do kompletu dodawany był napęd dyskietek 5.25 lub 3.5 cala (od PC), instrukcja oraz dyskietka z [[MyDOS|MyDOSem]]. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[grafika:Karinmaxi1.jpg]]&lt;br /&gt;
[[Grafika:Karinmaxi2.jpg]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Grafika:Wd1770.jpg|Wersja z WD1770]]&lt;br /&gt;
[[Grafika:Wd1770_2.jpg|Wersja z WD1770]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Grafika:Wd1772.jpg|Wersja z WD1772]]&lt;br /&gt;
[[Grafika:Wd1772_2.jpg|Wersja z WD1772]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Konflikt z innymi urządzeniami ==&lt;br /&gt;
&lt;br /&gt;
Oryginalny interfejs ma dwie wady, programową i sprzętową, które uniemożliwiają lub powodują problemy przy współpracy z innymi [[Nowe_urządzenia|nowymi urządzeniami]]:&lt;br /&gt;
&lt;br /&gt;
* Błąd w programie Karin Maxi usuwa z rejestru PDVMSK ($247) wcześniej zarejestrowane urządzenia, przez co są one niewidoczne.&lt;br /&gt;
* Usterka sprzętowa na stałe mapuje rejestry interfejsu na stronę D1, nawet wtedy gdy nie jest on aktywowany przez system. W takiej sytuacji wszelkie zapisy na tę stronę wykonywanie przez sterowniki innych urządzeń PBI (np. [[IDE Plus]], [[KMK/JŻ IDE]] itp.) mogą być fałszywie odbierane przez Karin Maxi. Objawia się to niestabilną pracą lub całkowitym zawieszeniem komputera, np. przy kopiowaniu plików z IDE Plus do stacji.&lt;br /&gt;
&lt;br /&gt;
W Karin Maxi II powyższe usterki nie występują.&lt;br /&gt;
&lt;br /&gt;
=== Naprawa ===&lt;br /&gt;
Wymagana jest drobna zmiana na płytce interfejsu, przeprogramowanie układu GAL16V8 (U3) oraz EPROMu.&lt;br /&gt;
* zaprogramować EPROM poprawioną wersją oprogramowania stacji, do pobrania [http://atariki.krap.pl/images/a/a5/Maxifix.zip z tego linku]&lt;br /&gt;
* przeciąć ścieżkę dochodzącą do pinu 4 układu GAL (sygnał D1XX powinien teraz dochodzić tylko do pinu 1)&lt;br /&gt;
* połączyć pin 4 układu GAL z pinem 12 układu U9 (74LS259) lub pinem 3 układu U7 (74LS30)&lt;br /&gt;
* zaprogramować GAL nowym plikiem [http://trub.atari8.info/files/KarinFix.zip .jed] .&lt;br /&gt;
&lt;br /&gt;
Pin 19 może służyć do wyłączania interfejsu bez jego odpinania od komputera. Poniżej fragment schematu Karin Maxi z naniesionymi poprawkami.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Grafika:KarinFix.png|center|Poprawka Karin Maxi]]&lt;br /&gt;
&lt;br /&gt;
== Karin Midi Drive ==&lt;br /&gt;
[[Mariusz Geisler]] z firmy [[Karin]] zaprojektował również stację równoległą, która nie wymagała złącza [[Gniazdo_ECI|ECI]] i korzystała wyłącznie ze złącza kartridża. Jedynym śladem tej stacji, nazwanej Karin Midi Drive jest [http://jsobola.atari8.info/dereatari/atarisch/karinmid.zip schemat] opracowany przez [[Jerzy Sobola|Jerzego Sobolę]].&lt;br /&gt;
&lt;br /&gt;
== Odnośniki zewnętrzne ==&lt;br /&gt;
*[http://atariarea.krap.pl/files/karin_maxi_drive_instrukcja_uzytkowania.pdf Karin Maxi Disk Drive - Instrukcja użytkowania] - zawiera także dość obszerny opis systemu [[MyDOS]].&lt;br /&gt;
*[http://jsobola.atari8.info/dereatari/atarisch/maxi1.zip Strona dereatari] - link do archiwum w którym znajdziemy schemat, wsad do gal&#039;a i romy w wersji dla WD1770 i WD1772.&lt;br /&gt;
*[http://trub.atari8.info/files/KarinFix.zip Archiwum z poprawionym wsadem do gal&#039;a.] Znajduję się tam też schemat z poprawką oraz napisane od nowa równania dla GALa Karinki (pełny plik pld).&lt;br /&gt;
*[http://atariki.krap.pl/images/a/a5/Maxifix.zip Poprawione romy w wersji 1770/1772]. &lt;br /&gt;
*[http://karinmaxidrive.pigwa.net/index.html Karin Maxi II - zrekonstruowana wersja interfejsu z 2012 roku]&lt;br /&gt;
== Zobacz też ==&lt;br /&gt;
[[MasterDOS]] - DOS przeznaczony wyłącznie do Karin Maxi&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;/div&gt;</summary>
		<author><name>Montezuma</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=B:_Device&amp;diff=37434</id>
		<title>B: Device</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=B:_Device&amp;diff=37434"/>
		<updated>2019-07-24T17:01:45Z</updated>

		<summary type="html">&lt;p&gt;Montezuma: dodana informacja o emulatorze Altirra&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wirtualne urządzenie pozwalające na otwieranie dowolnego adresu URL w oknie przeglądarki internetowej.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pierwsza implementacja handlera urządzenia B: pojawiła się w emulatorze [[Atari800]], a konkretnie w jego porcie [https://play.google.com/store/apps/details?id=name.nick.jubanka.colleen Colleen] dla platformy Android.&amp;lt;BR&amp;gt;&lt;br /&gt;
Użytkownik może aktywować urządzenie B: w ustawieniach emulatora i zagrać we wbudowaną w emulator grę Planetary Defense 2012 autorstwa [https://en.wikipedia.org/wiki/Tom_Hudson_(programmer) Toma Hudsona], bardziej znanego z programów: Solid States, DEGAS, czy 3D STUDIO.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tom Hudson opowiada w [https://ataripodcast.libsyn.com/antic-interview-48-tom-hudson-analog wywiadzie] dla podcastu ANTIC (44 minuta) o urządzeniu B:&amp;lt;BR&amp;gt;&lt;br /&gt;
A w [https://github.com/atari800/atari800/blob/master/src/devices.c kodzie źródłowym] emulatora czytamy:&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /* The B: device is intended as a handler for interoperating with a web browser.&lt;br /&gt;
  * The device is OPENed, a url is WRITE-n, then it is CLOSEd.&lt;br /&gt;
  * Upon closing, the ready flag in the structure is set to TRUE.&lt;br /&gt;
  * This can tested by the host port, reset to FALSE then if the string contained&lt;br /&gt;
  * in the url member looks like a url, a browser to can be spawned to that url.&lt;br /&gt;
  * The user can also be notified via a popup that an Atari program is requesting&lt;br /&gt;
  * browser access.&lt;br /&gt;
  */&lt;br /&gt;
&lt;br /&gt;
Również w emulatorze [http://www.virtualdub.org/altirra.html Altirra] (począwszy od wersji 3.00) znajdziemy urządzenie B:&lt;br /&gt;
&lt;br /&gt;
Aplikacja/gra korzystająca z urządzenia B: musi je więc otworzyć, zapisać do niego łańcuch znaków (URL) i je zamknąć, co spowoduje otwarcie okna przeglądarki internetowej i wyświetlenie w nim zawartości wskazywanej przez URL.&amp;lt;BR&amp;gt;&lt;br /&gt;
Poniższy program w Basicu ilustruje korzystanie z urządzenia B:&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 OPEN #3,8,0,&amp;quot;B:&amp;quot;&lt;br /&gt;
 PRINT #3;&amp;quot;http://atari.pl/hsc/?x=003000129&amp;quot;&lt;br /&gt;
 CLOSE #3&lt;br /&gt;
&lt;br /&gt;
Jak bardzo elastyczna jest koncepcja [[CIO]] świadczy fakt, że już po ukazaniu się gry Planetary Defense 2012, możliwe było napisanie nowego handlera [https://github.com/TheMontezuma/B-Handler urządzenia B:], korzystającego z [[URL Submit]].&amp;lt;BR&amp;gt;&lt;br /&gt;
Bez zmiany ani jednego bitu w kodzie gry, Planetary Defense 2012 uruchomiona na prawdziwym komputerze Atari z zainstalowanym handlerem B:, prawidłowo wysyła Hi-Score przez [[SIO]].&lt;br /&gt;
&lt;br /&gt;
==Zobacz też==&lt;br /&gt;
* [http://users.uoa.gr/~knakos/atari800/android/ strona Kostasa Nakosa poświęcona emulatorowi Colleen]&lt;br /&gt;
* [http://analog.klanky.com/8bit.htm strona Toma Hudsona poświęcona grze Planetary Defense 2012]&lt;br /&gt;
* [https://github.com/TheMontezuma/B-Handler/releases obraz dyskietki zawierającej B: handler oraz grę Planetary Defence 2012]&lt;/div&gt;</summary>
		<author><name>Montezuma</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=B:_Device&amp;diff=37413</id>
		<title>B: Device</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=B:_Device&amp;diff=37413"/>
		<updated>2019-07-07T10:16:07Z</updated>

		<summary type="html">&lt;p&gt;Montezuma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wirtualne urządzenie pozwalające na otwieranie dowolnego adresu URL w oknie przeglądarki internetowej.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pierwsza implementacja handlera urządzenia B: pojawiła się w emulatorze [[Atari800]], a konkretnie w jego porcie [https://play.google.com/store/apps/details?id=name.nick.jubanka.colleen Colleen] dla platformy Android.&amp;lt;BR&amp;gt;&lt;br /&gt;
Użytkownik może aktywować urządzenie B: w ustawieniach emulatora i zagrać we wbudowaną w emulator grę Planetary Defense 2012 autorstwa [https://en.wikipedia.org/wiki/Tom_Hudson_(programmer) Toma Hudsona], bardziej znanego z programów: Solid States, DEGAS, czy 3D STUDIO.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tom Hudson opowiada w [https://ataripodcast.libsyn.com/antic-interview-48-tom-hudson-analog wywiadzie] dla podcastu ANTIC (44 minuta) o urządzeniu B:&amp;lt;BR&amp;gt;&lt;br /&gt;
A w [https://github.com/atari800/atari800/blob/master/src/devices.c kodzie źródłowym] emulatora czytamy:&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /* The B: device is intended as a handler for interoperating with a web browser.&lt;br /&gt;
  * The device is OPENed, a url is WRITE-n, then it is CLOSEd.&lt;br /&gt;
  * Upon closing, the ready flag in the structure is set to TRUE.&lt;br /&gt;
  * This can tested by the host port, reset to FALSE then if the string contained&lt;br /&gt;
  * in the url member looks like a url, a browser to can be spawned to that url.&lt;br /&gt;
  * The user can also be notified via a popup that an Atari program is requesting&lt;br /&gt;
  * browser access.&lt;br /&gt;
  */&lt;br /&gt;
&lt;br /&gt;
Aplikacja/gra korzystająca z urządzenia B: musi je więc otworzyć, zapisać do niego łańcuch znaków (URL) i je zamknąć, co spowoduje otwarcie okna przeglądarki internetowej i wyświetlenie w nim zawartości wskazywanej przez URL.&amp;lt;BR&amp;gt;&lt;br /&gt;
Poniższy program w Basicu ilustruje korzystanie z urządzenia B:&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 OPEN #3,8,0,&amp;quot;B:&amp;quot;&lt;br /&gt;
 PRINT #3;&amp;quot;http://atari.pl/hsc/?x=003000129&amp;quot;&lt;br /&gt;
 CLOSE #3&lt;br /&gt;
&lt;br /&gt;
Jak bardzo elastyczna jest koncepcja [[CIO]] świadczy fakt, że już po ukazaniu się gry Planetary Defense 2012, możliwe było napisanie nowego handlera [https://github.com/TheMontezuma/B-Handler urządzenia B:], korzystającego z [[URL Submit]].&amp;lt;BR&amp;gt;&lt;br /&gt;
Bez zmiany ani jednego bitu w kodzie gry, Planetary Defense 2012 uruchomiona na prawdziwym komputerze Atari z zainstalowanym handlerem B:, prawidłowo wysyła Hi-Score przez [[SIO]].&lt;br /&gt;
&lt;br /&gt;
==Zobacz też==&lt;br /&gt;
* [http://users.uoa.gr/~knakos/atari800/android/ strona Kostasa Nakosa poświęcona emulatorowi Colleen]&lt;br /&gt;
* [http://analog.klanky.com/8bit.htm strona Toma Hudsona poświęcona grze Planetary Defense 2012]&lt;br /&gt;
* [https://github.com/TheMontezuma/B-Handler/releases obraz dyskietki zawierającej B: handler oraz grę Planetary Defence 2012]&lt;/div&gt;</summary>
		<author><name>Montezuma</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=B:_Device&amp;diff=37412</id>
		<title>B: Device</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=B:_Device&amp;diff=37412"/>
		<updated>2019-07-07T10:14:58Z</updated>

		<summary type="html">&lt;p&gt;Montezuma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wirtualne urządzenie pozwalające na otwieranie dowolnego adresu URL w oknie przeglądarki internetowej.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pierwsza implementacja handlera urządzenia B: pojawiła się w emulatorze [[Atari800]], a konkretnie w jego porcie [https://play.google.com/store/apps/details?id=name.nick.jubanka.colleen Colleen] dla platformy Android.&amp;lt;BR&amp;gt;&lt;br /&gt;
Użytkownik może aktywować urządzenie B: w ustawieniach emulatora i zagrać we wbudowaną w emulator grę Planetary Defense 2012 autorstwa [https://en.wikipedia.org/wiki/Tom_Hudson_(programmer) Toma Hudsona], bardziej znanego z programów: Solid States, DEGAS, czy 3D STUDIO.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tom Hudson opowiada w [https://ataripodcast.libsyn.com/antic-interview-48-tom-hudson-analog wywiadzie] dla podcastu ANTIC (44 minuta) o urządzeniu B:&amp;lt;BR&amp;gt;&lt;br /&gt;
A w [https://github.com/atari800/atari800/blob/master/src/devices.c kodzie źródłowym] emulatora czytamy:&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /* The B: device is intended as a handler for interoperating with a web browser.&lt;br /&gt;
  * The device is OPENed, a url is WRITE-n, then it is CLOSEd.&lt;br /&gt;
  * Upon closing, the ready flag in the structure is set to TRUE.&lt;br /&gt;
  * This can tested by the host port, reset to FALSE then if the string contained&lt;br /&gt;
  * in the url member looks like a url, a browser to can be spawned to that url.&lt;br /&gt;
  * The user can also be notified via a popup that an Atari program is requesting&lt;br /&gt;
  * browser access.&lt;br /&gt;
  */&lt;br /&gt;
&lt;br /&gt;
Aplikacja/gra korzystająca z urządzenia B: musi je więc otworzyć, zapisać do niego łańcuch znaków (URL) i je zamknąć, co spowoduje otwarcie okna przeglądarki internetowej i wyświetlenie w nim zawartości wskazywanej przez URL.&amp;lt;BR&amp;gt;&lt;br /&gt;
Poniższy program w Basicu ilustruje korzystanie z urządzenia B:&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 OPEN #3,8,0,&amp;quot;B:&amp;quot;&lt;br /&gt;
 PRINT #3;&amp;quot;http://atari.pl/hsc/?x=003000129&amp;quot;&lt;br /&gt;
 CLOSE #3&lt;br /&gt;
&lt;br /&gt;
Jak bardzo elastyczna jest koncepcja [[CIO]] świadczy fakt, że już po ukazaniu się gry Planetary Defense 2012, możliwe było napisanie nowego handlera urządzenia B:, korzystającego z [[URL Submit]].&amp;lt;BR&amp;gt;&lt;br /&gt;
Bez zmiany ani jednego bitu w kodzie gry, Planetary Defense 2012 uruchomiona na prawdziwym komputerze Atari z zainstalowanym handlerem B:, prawidłowo wysyła Hi-Score przez [[SIO]].&lt;br /&gt;
&lt;br /&gt;
==Zobacz też==&lt;br /&gt;
* [http://users.uoa.gr/~knakos/atari800/android/ strona Kostasa Nakosa poświęcona emulatorowi Colleen]&lt;br /&gt;
* [http://analog.klanky.com/8bit.htm strona Toma Hudsona poświęcona grze Planetary Defense 2012]&lt;br /&gt;
* [https://github.com/TheMontezuma/B-Handler B: Handler korzystający z URL Submit]&lt;br /&gt;
* [https://github.com/TheMontezuma/B-Handler/releases obraz dyskietki zawierającej B: handler oraz grę Planetary Defence 2012]&lt;/div&gt;</summary>
		<author><name>Montezuma</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=APE_Time&amp;diff=37411</id>
		<title>APE Time</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=APE_Time&amp;diff=37411"/>
		<updated>2019-07-07T10:06:47Z</updated>

		<summary type="html">&lt;p&gt;Montezuma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Protokół odczytu aktualnej daty i godziny, zaimplementowany początkowo w [[APE]], później także w [[SIO2BSD]], [[RespeQt]] i [[SIO2BT]]. Służy do aktualizacji ustawień czasu w tych komputerach [[Atari 8-bit]], które nie mają sprzętowego zegara (np. [[R-Time 8]]).&lt;br /&gt;
&lt;br /&gt;
== Szczegóły techniczne ==&lt;br /&gt;
&lt;br /&gt;
Odczyt odbywa się za pośrednictwem [[SIO]]. Wartości [[SIO#DCB|DCB]] trzeba ustawić następująco:&lt;br /&gt;
&lt;br /&gt;
* DDEVIC: $45&lt;br /&gt;
* DUNIT: $01&lt;br /&gt;
* DCMND: $93&lt;br /&gt;
* DSTATS: $40&lt;br /&gt;
* DBUFA: adres bufora o wielkości sześciu bajtów&lt;br /&gt;
* DTIMLO: dowolna wartość, typowo od 1 do 7&lt;br /&gt;
* DBYT: 6&lt;br /&gt;
* DAUX1: $EE&lt;br /&gt;
* DAUX2: $A0&lt;br /&gt;
&lt;br /&gt;
Jeśli w systemie istnieje urządzenie zgodne z protokołem APE Time, po wywołaniu [[Tablica_skoków#JSIOINT|JSIOINT]] do bufora zostaną odczytane bieżące ustawienia czasu w formacie zgodnym ze [[SpartaDOS]]:&lt;br /&gt;
&lt;br /&gt;
* bajty 0-2: data w formacie DD-MM-YY&lt;br /&gt;
* bajty 3-5: czas w formacie HH-MM-SS &lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Programowanie Atari 8-bit]]&lt;br /&gt;
[[Kategoria:Niezbędnik kodera]]&lt;/div&gt;</summary>
		<author><name>Montezuma</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=B:_Device&amp;diff=37410</id>
		<title>B: Device</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=B:_Device&amp;diff=37410"/>
		<updated>2019-07-06T22:25:10Z</updated>

		<summary type="html">&lt;p&gt;Montezuma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wirtualne urządzenie pozwalające na otwieranie dowolnego adresu URL w oknie przeglądarki internetowej.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pierwsza implementacja handlera urządzenia B: pojawiła się w emulatorze [https://github.com/atari800/atari800 atari800], a konkretnie w jego porcie [https://play.google.com/store/apps/details?id=name.nick.jubanka.colleen Colleen] dla platformy Android. Użytkownik może aktywować urządzenie B: w ustawieniach emulatora i zagrać we wbudowaną w emulator grę Planetary Defense 2012 autorstwa [https://en.wikipedia.org/wiki/Tom_Hudson_(programmer) Toma Hudsona], bardziej znanego z programu 3D Studio Max.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tom Hudson opowiada w [https://ataripodcast.libsyn.com/antic-interview-48-tom-hudson-analog wywiadzie] dla podcastu ANTIC (44 minuta) o urządzeniu B:.&amp;lt;BR&amp;gt;&lt;br /&gt;
A w [https://github.com/atari800/atari800/blob/master/src/devices.c kodzie źródłowym] emulatora czytamy:&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /* The B: device is intended as a handler for interoperating with a web browser.&lt;br /&gt;
  * The device is OPENed, a url is WRITE-n, then it is CLOSEd.&lt;br /&gt;
  * Upon closing, the ready flag in the structure is set to TRUE.&lt;br /&gt;
  * This can tested by the host port, reset to FALSE then if the string contained&lt;br /&gt;
  * in the url member looks like a url, a browser to can be spawned to that url.&lt;br /&gt;
  * The user can also be notified via a popup that an Atari program is requesting&lt;br /&gt;
  * browser access.&lt;br /&gt;
  */&lt;br /&gt;
&lt;br /&gt;
Aplikacja/gra korzystająca z urządzenia B: musi je więc otworzyć, zapisać do niego łańcuch znaków (URL) i je zamknąć, co spowoduje otwarcie okna przeglądarki internetowej.&amp;lt;BR&amp;gt;&lt;br /&gt;
Poniższy program w Basicu ilustruje korzystanie z urządzenia B:&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 OPEN #3,8,0,&amp;quot;B:&amp;quot;&lt;br /&gt;
 PRINT #3;&amp;quot;http://atari.pl/hsc/?x=003000129&amp;quot;&lt;br /&gt;
 CLOSE #3&lt;br /&gt;
&lt;br /&gt;
Jak bardzo elastyczna jest koncepcja [[CIO]] świadczy fakt, że już po ukazaniu się gry Planetary Defense 2012, możliwe było napisanie nowego handlera urządzenia B:, korzystającego z [[URL Submit]].&amp;lt;BR&amp;gt;&lt;br /&gt;
Bez zmiany ani jednego bitu w kodzie gry, Planetary Defense 2012 uruchomiona na prawdziwym komputerze Atari z zainstalowanym handlerem B:, prawidłowo wysyła Hi-Score przez [[SIO]].&lt;br /&gt;
&lt;br /&gt;
==Zobacz też==&lt;br /&gt;
* [http://users.uoa.gr/~knakos/atari800/android/ strona Kostasa Nakosa poświęcona emulatorowi Colleen]&lt;br /&gt;
* [http://analog.klanky.com/8bit.htm strona Toma Hudsona poświęcona grze Planetary Defense 2012]&lt;br /&gt;
* [https://ataripodcast.libsyn.com/antic-interview-48-tom-hudson-analog wywiad z Tomem Hudsonem]&lt;br /&gt;
* [https://github.com/TheMontezuma/B-Handler B: Handler korzystający z URL Submit]&lt;br /&gt;
* [https://github.com/TheMontezuma/B-Handler/releases obraz dyskietki zawierającej B: handler oraz grę Planetary Defence 2012]&lt;/div&gt;</summary>
		<author><name>Montezuma</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=URL_Submit&amp;diff=37409</id>
		<title>URL Submit</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=URL_Submit&amp;diff=37409"/>
		<updated>2019-07-06T22:05:32Z</updated>

		<summary type="html">&lt;p&gt;Montezuma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Protokół pozwalający na przesłanie URL do urządzenia SIO.&lt;br /&gt;
Zaimplementowany w [[SIO2BT]] oraz w [[RespeQt]].&amp;lt;br&amp;gt;&lt;br /&gt;
Służy typowo do przesłania liczby punktów uzyskanych w grze (Hi-Score) na serwer administrujący listą wyników (np. https://xxl.atari.pl/hsc/).&amp;lt;br&amp;gt;&lt;br /&gt;
Urządzenie SIO otwiera przeglądarkę internetową i przekazuje jej URL odebrany przez SIO.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Szczegóły techniczne ==&lt;br /&gt;
&lt;br /&gt;
Zapis odbywa się za pośrednictwem [[SIO]]. Wartości [[SIO#DCB|DCB]] trzeba ustawić następująco:&lt;br /&gt;
&lt;br /&gt;
* DDEVIC: $45&lt;br /&gt;
* DUNIT: $01&lt;br /&gt;
* DCMND: $55&lt;br /&gt;
* DSTATS: $80&lt;br /&gt;
* DBUFA: adres bufora o wielkości maksymalnie 2000 bajtów&lt;br /&gt;
* DTIMLO: dowolna wartość, typowo od 1 do 7&lt;br /&gt;
* DBYTLO: wielkość bufora danych (LSB)&lt;br /&gt;
* DBYTHI: wielkość bufora danych (MSB)&lt;br /&gt;
* DAUX1: wielkość bufora danych (LSB)&lt;br /&gt;
* DAUX2: wielkość bufora danych (MSB)&lt;br /&gt;
&lt;br /&gt;
W buforze powinien się znajdować łancuch znaków ASCII, nie zawierający znaku końca linii, np.&lt;br /&gt;
&lt;br /&gt;
http://analog.klanky.com/leaderboards/SaveScore.php?game=PD2012&amp;amp;name=--------&amp;amp;level=00&amp;amp;score=000000&amp;amp;key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
Poniżej prosty handler urządzenia [[B: Device]]&amp;lt;br&amp;gt;&lt;br /&gt;
https://github.com/TheMontezuma/B-Handler&amp;lt;br&amp;gt;&lt;br /&gt;
ktory używa URL Submit.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zobacz też==&lt;br /&gt;
* [https://github.com/TheMontezuma/mahna-malysz/releases wersja gry Mahna-Małysz używająca URL Submit]&lt;br /&gt;
* [https://github.com/TheMontezuma/1K-ATASCII-BLASTER/releases wersja gry 1K-ATASCII-BLASTER używająca URL Submit]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Programowanie Atari 8-bit]]&lt;br /&gt;
[[Kategoria:Niezbędnik kodera]]&lt;/div&gt;</summary>
		<author><name>Montezuma</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=URL_Submit&amp;diff=37408</id>
		<title>URL Submit</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=URL_Submit&amp;diff=37408"/>
		<updated>2019-07-06T22:03:32Z</updated>

		<summary type="html">&lt;p&gt;Montezuma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Protokół pozwalający na przesłanie URL do urządzenia SIO.&lt;br /&gt;
Zaimplementowany w [[SIO2BT]] oraz w [[RespeQt]].&amp;lt;br&amp;gt;&lt;br /&gt;
Służy typowo do przesłania liczby punktów uzyskanych w grze (Hi-Score) na serwer administrujący listą wyników (np. https://xxl.atari.pl/hsc/).&amp;lt;br&amp;gt;&lt;br /&gt;
Urządzenie SIO otwiera przeglądarkę internetową i przekazuje jej URL odebrany przez SIO.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Szczegóły techniczne ==&lt;br /&gt;
&lt;br /&gt;
Zapis odbywa się za pośrednictwem [[SIO]]. Wartości [[SIO#DCB|DCB]] trzeba ustawić następująco:&lt;br /&gt;
&lt;br /&gt;
* DDEVIC: $45&lt;br /&gt;
* DUNIT: $01&lt;br /&gt;
* DCMND: $55&lt;br /&gt;
* DSTATS: $80&lt;br /&gt;
* DBUFA: adres bufora o wielkości maksymalnie 2000 bajtów&lt;br /&gt;
* DTIMLO: dowolna wartość, typowo od 1 do 7&lt;br /&gt;
* DBYTLO: wielkość bufora danych (LSB)&lt;br /&gt;
* DBYTHI: wielkość bufora danych (MSB)&lt;br /&gt;
* DAUX1: wielkość bufora danych (LSB)&lt;br /&gt;
* DAUX2: wielkość bufora danych (MSB)&lt;br /&gt;
&lt;br /&gt;
W buforze powinien się znajdować łancuch znaków ASCII, nie zawierający znaku końca linii, np.&lt;br /&gt;
&lt;br /&gt;
http://analog.klanky.com/leaderboards/SaveScore.php?game=PD2012&amp;amp;name=--------&amp;amp;level=00&amp;amp;score=000000&amp;amp;key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
Poniżej prosty handler urządzenia [[CIO]] B:&amp;lt;br&amp;gt;&lt;br /&gt;
https://github.com/TheMontezuma/B-Handler&amp;lt;br&amp;gt;&lt;br /&gt;
ktory używa URL Submit.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zobacz też==&lt;br /&gt;
* [https://github.com/TheMontezuma/mahna-malysz/releases wersja gry Mahna-Małysz używająca URL Submit]&lt;br /&gt;
* [https://github.com/TheMontezuma/1K-ATASCII-BLASTER/releases wersja gry 1K-ATASCII-BLASTER używająca URL Submit]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Programowanie Atari 8-bit]]&lt;br /&gt;
[[Kategoria:Niezbędnik kodera]]&lt;/div&gt;</summary>
		<author><name>Montezuma</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=B:_Device&amp;diff=37407</id>
		<title>B: Device</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=B:_Device&amp;diff=37407"/>
		<updated>2019-07-06T21:59:11Z</updated>

		<summary type="html">&lt;p&gt;Montezuma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Wirtualne urządzenie pozwalające na otwieranie dowolnego adresu URL w oknie przeglądarki internetowej.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pierwsza implementacja handlera urządzenia B: pojawiła się w emulatorze [https://github.com/atari800/atari800 atari800], a konkretnie w jego porcie [https://play.google.com/store/apps/details?id=name.nick.jubanka.colleen Colleen] dla platformy Android. Użytkownik może aktywować urządzenie B: w ustawieniach emulatora i zagrać we wbudowaną w emulator grę Planetary Defense 2012 autorstwa [https://en.wikipedia.org/wiki/Tom_Hudson_(programmer) Toma Hudsona], bardziej znanego z programu 3D Studio Max.&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tom Hudson opowiada w [https://ataripodcast.libsyn.com/antic-interview-48-tom-hudson-analog wywiadzie] dla podcastu ANTIC (44 minuta) o urządzeniu B:.&amp;lt;BR&amp;gt;&lt;br /&gt;
A w [https://github.com/atari800/atari800/blob/master/src/devices.c kodzie źródłowym] emulatora czytamy:&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 /* The B: device is intended as a handler for interoperating with a web browser.&lt;br /&gt;
  * The device is OPENed, a url is WRITE-n, then it is CLOSEd.&lt;br /&gt;
  * Upon closing, the ready flag in the structure is set to TRUE.&lt;br /&gt;
  * This can tested by the host port, reset to FALSE then if the string contained&lt;br /&gt;
  * in the url member looks like a url, a browser to can be spawned to that url.&lt;br /&gt;
  * The user can also be notified via a popup that an Atari program is requesting&lt;br /&gt;
  * browser access.&lt;br /&gt;
  */&lt;br /&gt;
&lt;br /&gt;
Aplikacja/gra korzystająca z urządzenia B: musi je więc otworzyć, zapisać do niego łańcuch znaków (URL) i je zamknąć, co spowoduje otwarcie okna przeglądarki internetowej.&amp;lt;BR&amp;gt;&lt;br /&gt;
Poniższy program w Basicu ilustruje korzystanie z urządzenia B:&amp;lt;BR&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 OPEN #3,8,0,&amp;quot;B:&amp;quot;&lt;br /&gt;
 PRINT #3;&amp;quot;http://atari.pl/hsc/?x=003000129&amp;quot;&lt;br /&gt;
 CLOSE #3&lt;br /&gt;
&lt;br /&gt;
Jak bardzo elastyczna jest koncepcja [[CIO]] świadczy fakt, że już po ukazaniu się gry Planetary Defense 2012, możliwe było napisanie nowego handlera urządzenia B:, korzystającego z [[URL Submit]].&amp;lt;BR&amp;gt;&lt;br /&gt;
Bez zmiany ani jednego bitu w kodzie gry, Planetary Defense 2012 uruchomiona na prawdziwym komputerze Atari z zainstalowanym handlerem B:, prawidłowo wysyła Hi-Score przez [[SIO]].&lt;br /&gt;
&lt;br /&gt;
==Zobacz też==&lt;br /&gt;
* [http://users.uoa.gr/~knakos/atari800/android/ strona Kostasa Nakosa poświęcona emulatorowi Colleen]&lt;br /&gt;
* [http://analog.klanky.com/8bit.htm strona Toma Hudsona poświęcona grze Planetary Defense 2012]&lt;br /&gt;
* [https://ataripodcast.libsyn.com/antic-interview-48-tom-hudson-analog wywiad z Tomem Hudsonem]&lt;br /&gt;
* [https://github.com/TheMontezuma/B-Handler B: Handler korzystający z URL Submit]&lt;/div&gt;</summary>
		<author><name>Montezuma</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Biblioteczka_kodera_Atari_XL/XE&amp;diff=37406</id>
		<title>Biblioteczka kodera Atari XL/XE</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Biblioteczka_kodera_Atari_XL/XE&amp;diff=37406"/>
		<updated>2019-07-06T21:18:47Z</updated>

		<summary type="html">&lt;p&gt;Montezuma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Biblioteczka, czyli przydatne procedury i fragmenty kodu, głównie w asemblerze.&lt;br /&gt;
&lt;br /&gt;
==System==&lt;br /&gt;
&lt;br /&gt;
===CPU===&lt;br /&gt;
* [[Programowanie: Jak stwierdzić typ procesora|Jak stwierdzić typ procesora]]&lt;br /&gt;
* [[Programowanie: Jak stwierdzić, w jakim trybie jest 65C816|Jak stwierdzić, w jakim trybie jest 65C816]]&lt;br /&gt;
* [[Programowanie: Odczyt sygnatury rozkazu BRK lub COP na 65C816|Odczyt sygnatury rozkazu BRK lub COP na 65C816]]&lt;br /&gt;
&lt;br /&gt;
===Pamięć===&lt;br /&gt;
* [[Obsługa rozszerzenia pamięci RAM]]&lt;br /&gt;
&lt;br /&gt;
===[[CIO]]===&lt;br /&gt;
&lt;br /&gt;
* [[Programowanie: Jak wyszukać pierwszy wolny IOCB|Jak wyszukać pierwszy wolny IOCB]]&lt;br /&gt;
&lt;br /&gt;
==== Edytor ekranowy ====&lt;br /&gt;
* [[Otwarcie ekranu w trybie konsoli (GRAPHICS 0)]]&lt;br /&gt;
* [[Odczyt rekordu tekstowego z edytora ekranowego (INPUT)]]&lt;br /&gt;
* [[Zapis znaku na ekran (PUT)]]&lt;br /&gt;
* [[Zapis ciągu znaków na ekran (PRINT)]]&lt;br /&gt;
* [[Znaki kontrolne edytora ekranowego]]&lt;br /&gt;
&lt;br /&gt;
==== Klawiatura ====&lt;br /&gt;
* [[Odczyt znaku z klawiatury (GET)]]&lt;br /&gt;
&lt;br /&gt;
==== Grafika ====&lt;br /&gt;
* [[Otwarcie ekranu w trybie graficznym (GRAPHICS)]]&lt;br /&gt;
&lt;br /&gt;
==== DOS ====&lt;br /&gt;
* [[Wiersz poleceń]]&lt;br /&gt;
* [[Dostęp do plików]]&lt;br /&gt;
* [[Lista funkcji specjalnych CIO według urządzeń|Funkcje XIO]]&lt;br /&gt;
===== SpartaDOS X =====&lt;br /&gt;
* [[Programowanie: Jak stwierdzić obecność SpartaDOS X oraz jego konfigurację pamięci | Jak stwierdzić obecność SpartaDOS X oraz jego konfigurację pamięci]]&lt;br /&gt;
* [[TD Line: wyłączenie i włączenie z poziomu programu]]&lt;br /&gt;
* [[Programowanie: Jak parsować przełączniki z parametrami | Jak parsować przełączniki z parametrami]]&lt;br /&gt;
* [[Programowanie: Program odporny na RESET#SpartaDOS X | Program odporny na RESET]]&lt;br /&gt;
* [[Programowanie: Dostęp do pamięci rozszerzonej | Dostęp do pamięci rozszerzonej]]&lt;br /&gt;
* [[Programowanie: Przerywanie długotrwałych operacji klawiszem BREAK | Przerywanie długotrwałych operacji klawiszem BREAK]]&lt;br /&gt;
* [[Programowanie: Parsowanie zawartości zmiennej środowiskowej | Parsowanie zawartości zmiennej środowiskowej]]&lt;br /&gt;
&lt;br /&gt;
=== Kody ===&lt;br /&gt;
* [[ATASCII|Kod ATASCII]]&lt;br /&gt;
* [[Kody ekranowe]]&lt;br /&gt;
* [[Kody błędów]]&lt;br /&gt;
* [[Kody klawiszy]]&lt;br /&gt;
* [[Znaki kontrolne edytora ekranowego|Kody kontrolne edytora ekranowego]]&lt;br /&gt;
* [[Programowanie: Konwersje znaków ATASCII i ANTIC|Konwersje znaków ATASCII i ANTIC]]&lt;br /&gt;
&lt;br /&gt;
==Obliczenia stałoprzecinkowe==&lt;br /&gt;
&lt;br /&gt;
=== Ośmiobitowe ===&lt;br /&gt;
&lt;br /&gt;
* [[Programowanie: Konwersja liczby binarnej na cyfrę hex|Konwersja liczby binarnej na cyfrę hex]]&lt;br /&gt;
* [[Obroty bitowe]]&lt;br /&gt;
* [[Odejmowanie od (2 do X)-1]]&lt;br /&gt;
* [[Odwrócenie stanu znacznika C]]&lt;br /&gt;
* [[Przesunięcie arytmetyczne]]&lt;br /&gt;
* [[Rozszerzenie arytmetyczne]]&lt;br /&gt;
&lt;br /&gt;
=== Szesnastobitowe ===&lt;br /&gt;
* [[Programowanie: Dzielenie 16-bitowe z wynikiem 32-bitowym|Dzielenie 16-bitowe z wynikiem 32-bitowym]]&lt;br /&gt;
* [[Programowanie: Mnożenie 16-bitowe z wynikiem 32-bitowym|Mnożenie 16-bitowe z wynikiem 32-bitowym]]&lt;br /&gt;
&lt;br /&gt;
== Grafika ==&lt;br /&gt;
&lt;br /&gt;
* [[Programowanie: Plot w Graphics 0|Plot w Graphics 0]]&lt;br /&gt;
* [[Programowanie: Rysowanie punktu|Rysowanie punktu]]&lt;br /&gt;
* [[Programowanie: Rysowanie linii|Rysowanie linii]]&lt;br /&gt;
* [[Programowanie: Definiowanie niestandardowych trybów graficznych | Definiowanie niestandardowych trybów graficznych]]&lt;br /&gt;
* [[Programowanie: Konwersja kolorowej grafiki z układu 6845| Konwersja kolorowej grafiki z układu 6845]]&lt;br /&gt;
&lt;br /&gt;
== Dźwięk ==&lt;br /&gt;
&lt;br /&gt;
* [[Programowanie: Detekcja stereo|Detekcja stereo]]&lt;br /&gt;
* [[Programowanie: Odtwarzanie sampli|Odtwarzanie sampli]]&lt;br /&gt;
&lt;br /&gt;
==Techniki przyspieszania kodu==&lt;br /&gt;
&lt;br /&gt;
* [[Skoki do adresów w tablicy]]&lt;br /&gt;
* [[Szybsze zapamiętywanie rejestrów w procedurze przerwania]]&lt;br /&gt;
&lt;br /&gt;
==Techniki skracania kodu==&lt;br /&gt;
&lt;br /&gt;
* [[Inkrementacja i dekrementacja liczb wielobajtowych]]&lt;br /&gt;
* [[Obliczanie adresu danych dla podprogramów]]&lt;br /&gt;
* [[Ujemne indeksowanie]]&lt;br /&gt;
* [[Ustawianie i kasowanie znaczników]]&lt;br /&gt;
* [[Wielobajtowe NOP-y]]&lt;br /&gt;
&lt;br /&gt;
==Inne==&lt;br /&gt;
&lt;br /&gt;
* [[Programowanie: Jak wyłączyć ROM systemu|Jak wyłączyć ROM systemu]]&lt;br /&gt;
* [[Programowanie: Dekompresja danych w formacie DEFLATE | Dekompresja danych w formacie DEFLATE]]&lt;br /&gt;
* [[Programowanie: Dekompresja danych przy użyciu Exomizera | Dekompresja danych przy użyciu Exomizera]]&lt;br /&gt;
* [[Programowanie: Dekompresja danych w formacie LZ4 | Dekompresja danych w formacie LZ4]]&lt;br /&gt;
* [[Programowanie: Zapis na ekran w różnych systemach liczbowych| Zapis na ekran w różnych systemach liczbowych]]&lt;br /&gt;
* [[Prosty generator pseudolosowy|Prosty generator pseudolosowy]]&lt;br /&gt;
* [[Pętle opóźniające|Pętle opóźniające]]&lt;br /&gt;
* [[Programowanie: Program odporny na RESET | Program odporny na RESET]]&lt;br /&gt;
* [[Programowanie: Przesuw poziomy z regulowaną prędkością | Przesuw poziomy z regulowaną prędkością]]&lt;br /&gt;
&lt;br /&gt;
== Urządzenia peryferyjne ==&lt;br /&gt;
&lt;br /&gt;
===Stacje dysków===&lt;br /&gt;
* [[Programowanie stacji LDW Super 2000 i CA-2001]]&lt;br /&gt;
* [[Suma kontrolna SIO|Obliczanie sum kontrolnych SIO]]&lt;br /&gt;
&lt;br /&gt;
=== Twarde dyski ===&lt;br /&gt;
* [[APT]]&lt;br /&gt;
&lt;br /&gt;
===[[VBXE]]===&lt;br /&gt;
* [[Wykrycie VBXE]]&lt;br /&gt;
* [[Konwersja numeru banku MEMAC B na PORTB i odwrotnie]]&lt;br /&gt;
&lt;br /&gt;
===Inne===&lt;br /&gt;
* [[APE Time]]&lt;br /&gt;
* [[URL Submit]]&lt;br /&gt;
&lt;br /&gt;
== Turbo BASIC XL ==&lt;br /&gt;
* [[Programowanie w Turbo BASIC XL]]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Menu Główne]]&lt;br /&gt;
[[Kategoria:Programowanie Atari 8-bit]]&lt;/div&gt;</summary>
		<author><name>Montezuma</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Lista_handler%C3%B3w_CIO&amp;diff=37405</id>
		<title>Lista handlerów CIO</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Lista_handler%C3%B3w_CIO&amp;diff=37405"/>
		<updated>2019-07-06T21:14:52Z</updated>

		<summary type="html">&lt;p&gt;Montezuma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Lista identyfikatorów urządzeń [[CIO]]:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
! ID !! Autor !! Krótki opis !! Gdzie znaleźć program obsługi + ewentualny opis&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | A: || Atari Corp. || Odczyt dyskietki przez DOS&amp;amp;nbsp;XE w&amp;amp;nbsp;formacie AtariDOS&amp;amp;nbsp;II || [[DOS XE]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Maciej Czarnota]] || Zapis i odczyt sektorów dyskietki || [[Tajemnice Atari]] [http://tajemnice.atari8.info/3_92/3_92_handlera.html 3/1992]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | B: || Bob Martin || Tworzy pliki bootowalne || [[ANTIC (czasopismo)|ANTIC]] [http://www.atarimagazines.com/v8n3/OperatingSystemHandlers.html 3/1989]&lt;br /&gt;
|-&lt;br /&gt;
| [http://users.uoa.gr/~knakos/atari800/android/ Kostas Nakos] i [http://analog.klanky.com/8bit.htm Tom Hudson] || Browser || [[B: Device]]&lt;br /&gt;
|-&lt;br /&gt;
| C: || Atari || Handler magnetofonu || W ROM-ie&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | [[D:]] || Atari i in. || Handler dysku || W [[DOS]]-ach.&lt;br /&gt;
|-&lt;br /&gt;
| Twórcy Turbo 2000 || Handler magnetofonu dla szybkiej transmisji w systemie Turbo 2000 || Oprogramowanie do Turbo 2000&lt;br /&gt;
|-&lt;br /&gt;
| [[E:]] || Atari || Konsola systemowa || W ROM-ie (standardowy) lub dostarczany razem z przystawką [[XEP80]] (80-kolumnowy)&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | F: || Darek Mihocka || Host filesystem w emulatorze XFormer || [[XFormer]]&lt;br /&gt;
|-&lt;br /&gt;
| RiP || Kompresja plików &amp;quot;w locie&amp;quot; || [[Cat Food]]&lt;br /&gt;
|-&lt;br /&gt;
| G: || Charles Johnson, 1985 || Drukowanie w trybie graficznym na drukarce EPSON i GEMINI || [http://www.strotmann.de/twiki/bin/view/APG/PgmGraphicsPrintDevice]&lt;br /&gt;
|-&lt;br /&gt;
| H: || ? || Host filesystem w emulatorach || W emulatorach (Atari800)&lt;br /&gt;
|-&lt;br /&gt;
| I: || [[TOMS]] || [[STIBM]] - handler dyskietek w formacie IBM/PC ||  w oprogramowaniu systemowym stacji [[TOMS 720]] &lt;br /&gt;
|-&lt;br /&gt;
| J: || [[Wojciech Zientara]], 1988 || Transmisja danych przez porty joysticka || [[Procedury wejścia-wyjścia|Mapa pamięci ATARI XL/XE: Procedury wejścia-wyjścia]]&lt;br /&gt;
|-&lt;br /&gt;
| K: || Atari || Handler klawiatury || W ROM-ie&lt;br /&gt;
|-&lt;br /&gt;
| L: || David and Mary Lynch, 1985 || Handler drukarki Atari [[1020]] || [http://www.page6.org/archive/issue_13/page_22.htm]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; | M: || [[Bill Wilkinson]] || Prosty ramdysk || [http://www.strotmann.de/twiki/bin/view/APG/PgmMemHandler] Podobny sterownik (handler) instalujący w systemie RAM-plik w pamięci pod ROM, został opublikowany na łamach [[Tajemnice Atari]] w 1991 r.&lt;br /&gt;
|-&lt;br /&gt;
| Witold Ściuk || Ramfile w [[Turbo Operating System]] || [[Turbo Operating System]].&lt;br /&gt;
|-&lt;br /&gt;
| N: || Bob Martin, Antic 2/89 || Urządzenie &amp;quot;null&amp;quot; || [http://www.atarimagazines.com/software/89-06a/NULLHAND.M65], ROM [[Karin Maxi]]&lt;br /&gt;
|-&lt;br /&gt;
| O: || Andrzej Biazik || Sterownik okienek w trybie tekstowym || [http://tajemnice.atari8.info/bajtek/atari_2/atari_2_djvu.html Tylko o Atari 2]&lt;br /&gt;
|-&lt;br /&gt;
| P: || Atari || Handler drukarki || W ROM-ie. Również sterownik interfejsu [[JOYSTAR]]&lt;br /&gt;
|-&lt;br /&gt;
| Q: || - || - || [http://www.cyberroach.com/analog/an16/print_itfc.htm]&lt;br /&gt;
|-&lt;br /&gt;
| R: || Atari i in. || Handler RS-232 || Sterownik modułu [[850]] znajduje się w jego ROM-ie, sterownik [[ASI]] opublikowano w piśmie [[Tajemnice Atari]] itd.&lt;br /&gt;
|-&lt;br /&gt;
| S: || Atari || Handler ekranu || W ROM-ie&lt;br /&gt;
|-&lt;br /&gt;
| [[S2:]] || [[KMK]] || Handler ekranu graficznego [[VBXE]] || [http://drac030.krap.pl/vbxe_s.arc U autora]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;4&amp;quot; | T: || Atari i in. || Handler modemu [[XM301]](?) ||&lt;br /&gt;
|-&lt;br /&gt;
| Witold Ściuk || Handler magnetofonu [[Turbo 2000]] || [[Turbo Operating System]]&lt;br /&gt;
|-&lt;br /&gt;
| || Handler magnetofonu [[Turbo Blizzard]] || [[Turbo Blizzard]]&lt;br /&gt;
|-&lt;br /&gt;
| || Jakieś &amp;quot;text display device&amp;quot; || [http://www.atariarchives.org/APX/showinfo.php?cat=20067]&lt;br /&gt;
|-&lt;br /&gt;
| rowspan=&amp;quot;3&amp;quot; | V: || Chris Bone, 1985 || Handler syntezatora mowy || [http://www.atarimagazines.com/v3n10/assemblylanguage.html]&lt;br /&gt;
|-&lt;br /&gt;
| THOR-Software || Voice interface - handler sprzętowego syntezatora mowy || [http://ftp.atari.art.pl/stuff/collections/atari_forever/Extension/Voice%20InterfaceVoice%20box%20for%20the%20800XL/Voice.asm]&lt;br /&gt;
|-&lt;br /&gt;
| Christopher Terpin || Atari Midi Interface || [http://ftp.atari.art.pl/stuff/collections/atari_forever/Extension/Midi/MIDI.ASM]&lt;br /&gt;
|-&lt;br /&gt;
| [[W:]] || [[Lesław Pasternak]], [[Janusz Pelc]] || Handler okienek tekstowych || [[Moje Atari]] [http://atarionline.pl/biblioteka/czasopisma/Moje_Atari/Moje_Atari_1990_01.djvu 1/1990]&lt;br /&gt;
|-&lt;br /&gt;
| X: || Steven W. Klassen, 1988 || Przesyłanie danych przez port joysticka ||  [http://www.cyberroach.com/analog/an16/print_itfc.htm]&lt;br /&gt;
|-&lt;br /&gt;
| [[Z:]] || [[ICD]] || Handler zegara [[R-Time 8]] || [http://www.sunmark.com/rtime/RTIME8.txt]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Programowanie Atari 8-bit]]&lt;/div&gt;</summary>
		<author><name>Montezuma</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO2BT&amp;diff=37404</id>
		<title>SIO2BT</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO2BT&amp;diff=37404"/>
		<updated>2019-07-06T20:51:19Z</updated>

		<summary type="html">&lt;p&gt;Montezuma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Projekt pozwalajacy na bezprzewodową (Bluetooth) komunikację 8-bitowych komputerów Atari z emulowanymi na Smartfonie lub komputerze PC urządzeniami SIO.&lt;/div&gt;</summary>
		<author><name>Montezuma</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=AspeQt&amp;diff=37403</id>
		<title>AspeQt</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=AspeQt&amp;diff=37403"/>
		<updated>2019-07-06T20:46:42Z</updated>

		<summary type="html">&lt;p&gt;Montezuma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;AspeQt to bezpłatny i otwarty (licencja GNU GPL 2) emulator szeregowych urządzeń peryferyjnych z wykorzystaniem połączenia [[SIO2PC]] w tym [[IO-Board]] i inne konwertery USB oparte na układach FTDI. W chwili obecnej program emuluje stacje dysków, magnetofon (tylko do odczytu) oraz drukarkę znakową. Działa w systemach Windows oraz pochodnych Unixa (BSD, Linux). Zbudowany jest w oparciu o bibliotekę [http://pl.wikipedia.org/wiki/Qt Qt].&lt;br /&gt;
&lt;br /&gt;
Bieżąca (od dłuższego czasu) wersja to 0.6.&lt;br /&gt;
&lt;br /&gt;
== Możliwości ==&lt;br /&gt;
* Emulacja do 8 stacji dysków,&lt;br /&gt;
* Obsługuje przyspieszoną transmisję SIO (do 6x i wg [[HS Index]]),&lt;br /&gt;
* Obsługuje obrazy [[ATR]] (format SIO2PC), [[XFD]] oraz katalogi,&lt;br /&gt;
* Eksplorator obrazów dla formatów Atari [[DOS 1.0]] / [[DOS 2.0]] / [[DOS 2.5]] / [[MyDOS]] / [[SpartaDOS]]&lt;br /&gt;
* Bezpośrednie wczytywanie plików wykonywalnych Atari&lt;br /&gt;
* Emulacja drukarki znakowej&lt;br /&gt;
* Odtwarzacz obrazów kaset&lt;br /&gt;
&lt;br /&gt;
== Znane błędy ==&lt;br /&gt;
* W wersji 0.6 funkcja &amp;quot;Dysk -&amp;gt; Montowanie katalogu&amp;quot; (ang. &amp;quot;Disk -&amp;gt; Mount folder image&amp;quot;) stosuje trik, który nie działa prawidłowo ze [[SpartaDOS X]]&lt;br /&gt;
&lt;br /&gt;
== Zobacz też ==&lt;br /&gt;
* [http://aspeqt.sourceforge.net AspeQt na SourceForge]&lt;br /&gt;
* [[RespeQt]]&lt;br /&gt;
* [[SIO2BSD]]&lt;br /&gt;
* [[APE]]&lt;br /&gt;
* [[AtariSIO]]&lt;br /&gt;
[[Kategoria:Emulacja]]&lt;/div&gt;</summary>
		<author><name>Montezuma</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Smart_Device&amp;diff=37402</id>
		<title>Smart Device</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Smart_Device&amp;diff=37402"/>
		<updated>2019-07-06T20:45:11Z</updated>

		<summary type="html">&lt;p&gt;Montezuma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To wirtualne urządzenie zaimplementowane w [[SIO2BT]] oraz w [[RespeQt]].&amp;lt;br&amp;gt;&lt;br /&gt;
Aktualnie obejmuje dwie funkcje [[APE Time]] oraz [[URL Submit]]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Programowanie Atari 8-bit]]&lt;br /&gt;
[[Kategoria:Niezbędnik kodera]]&lt;/div&gt;</summary>
		<author><name>Montezuma</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=RespeQt&amp;diff=37401</id>
		<title>RespeQt</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=RespeQt&amp;diff=37401"/>
		<updated>2019-07-06T20:41:43Z</updated>

		<summary type="html">&lt;p&gt;Montezuma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;RespeQt to fork programu [[AspeQt]].&lt;br /&gt;
&lt;br /&gt;
== Dodatkowe funkcje (w porównaniu do AspeQt) ==&lt;br /&gt;
* Wieloplatformowość (Windows/Linux/Mac)&lt;br /&gt;
* Obsługa protokołu [[DOS2DOS]] (PCLink)&lt;br /&gt;
* Obsługa [[Smart Device]]&lt;br /&gt;
* Obsługa komunikacji przez Bluetooth ([[SIO2BT]])&lt;br /&gt;
&lt;br /&gt;
== Zobacz też ==&lt;br /&gt;
* [https://github.com/jzatarski/RespeQt RespeQt na GitHub]&lt;br /&gt;
[[Kategoria:Emulacja]]&lt;/div&gt;</summary>
		<author><name>Montezuma</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=URL_Submit&amp;diff=37400</id>
		<title>URL Submit</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=URL_Submit&amp;diff=37400"/>
		<updated>2019-07-06T17:36:42Z</updated>

		<summary type="html">&lt;p&gt;Montezuma: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Protokół pozwalający na przesłanie URL do urządzenia SIO.&lt;br /&gt;
Zaimplementowany w [[SIO2BT]] oraz w [[RespeQt]].&amp;lt;br&amp;gt;&lt;br /&gt;
Służy typowo do przesłania liczby punktów uzyskanych w grze (Hi-Score) na serwer administrujący listą wyników (np. https://xxl.atari.pl/hsc/).&amp;lt;br&amp;gt;&lt;br /&gt;
Urządzenie SIO otwiera przeglądarkę internetową i przekazuje jej URL odebrany przez SIO.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Szczegóły techniczne ==&lt;br /&gt;
&lt;br /&gt;
Zapis odbywa się za pośrednictwem [[SIO]]. Wartości [[SIO#DCB|DCB]] trzeba ustawić następująco:&lt;br /&gt;
&lt;br /&gt;
* DDEVIC: $45&lt;br /&gt;
* DUNIT: $01&lt;br /&gt;
* DCMND: $55&lt;br /&gt;
* DSTATS: $80&lt;br /&gt;
* DBUFA: adres bufora o wielkości maksymalnie 2000 bajtów&lt;br /&gt;
* DTIMLO: dowolna wartość, typowo od 1 do 7&lt;br /&gt;
* DBYTLO: wielkość bufora danych (LSB)&lt;br /&gt;
* DBYTHI: wielkość bufora danych (MSB)&lt;br /&gt;
* DAUX1: wielkość bufora danych (LSB)&lt;br /&gt;
* DAUX2: wielkość bufora danych (MSB)&lt;br /&gt;
&lt;br /&gt;
W buforze powinien się znajdować łancuch znaków ASCII, nie zawierający znaku końca linii, np.&lt;br /&gt;
&lt;br /&gt;
http://analog.klanky.com/leaderboards/SaveScore.php?game=PD2012&amp;amp;name=--------&amp;amp;level=00&amp;amp;score=000000&amp;amp;key=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX&lt;br /&gt;
&lt;br /&gt;
Poniżej prosty handler urządzenia [[CIO]] B:&amp;lt;br&amp;gt;&lt;br /&gt;
https://github.com/TheMontezuma/B-Handler&amp;lt;br&amp;gt;&lt;br /&gt;
ktory używa URL Submit.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Programowanie Atari 8-bit]]&lt;br /&gt;
[[Kategoria:Niezbędnik kodera]]&lt;/div&gt;</summary>
		<author><name>Montezuma</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO&amp;diff=37399</id>
		<title>SIO</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO&amp;diff=37399"/>
		<updated>2019-07-06T17:04:49Z</updated>

		<summary type="html">&lt;p&gt;Montezuma: /* Wykaz urządzeń */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Serial Input/Output. W założeniach jest to rezydujący w ROM-ie podsystem niskopoziomowych procedur blokowego dostępu do urządzeń szeregowych, to jest przede wszystkim stacji dysków, drukarek, modemów i magnetofonu. Wszystkie te urządzenia podłącza się w Atari do [[Gniazdo SIO|gniazda SIO]].&lt;br /&gt;
&lt;br /&gt;
W serii [[XL]] do podsystemu SIO dodano także niskopoziomową (blokową) obsługę urządzeń podłączanych do szyny równoległej ([[PBI]]), czyli tak zwanych [[nowe urządzenia|nowych urządzeń]].&lt;br /&gt;
&lt;br /&gt;
==Sposób użycia==&lt;br /&gt;
&lt;br /&gt;
Żądaną operację definiuje się ustawiwszy przedtem odpowiednie zmienne w bloku DCB (Device Control Block, $0300), a następnie wywołuje skokiem JSR pod JSIOINT $E459, co jest punktem wejściowym interfejsu szeregowo-równoległego. Przy powrocie rejestr Y zawiera wartość 1 w przypadku powodzenia, bądź ujemny [[kody błędów|kod błędu]].&lt;br /&gt;
&lt;br /&gt;
===Struktura DCB===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 cellpadding=5&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Adres&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Etykieta&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Wielkość&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Znaczenie&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$0300&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;DDEVIC&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bajt&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Identyfikator urządzenia (zob. niżej).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$0301&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;DUNIT&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bajt&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia; w przypadku stacji dysków numer napędu.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$0302&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;DCMND&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bajt&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Komenda dla urządzenia.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$0303&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;DSTATS&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bajt&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Przed wywołaniem SIO należy ustawić tu rodzaj operacji ($40 odczyt, $80 zapis, $C0 zapis i odczyt, $00 brak transferu danych). Po powrocie z systemu znajduje się tu status operacji ([[kody błędów|kod błędu]]).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$0304&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;DBUFA&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Dwa bajty&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora. Przy operacji zapisu i odczytu jednocześnie (DSTATS = $C0) bufor na odczytywane dane znajduje się w tym samym miejscu, co bufor danch przeznaczonych do zapisu.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$0306&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;DTIMLO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bajt&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Czas oczekiwania na pozytywną odpowiedź urządzenia, tzw. &#039;&#039;timeout&#039;&#039;. Oblicza się to jak następuje: wartość DTIMLO mnożona jest przez 64, w wyniku czego otrzymujemy liczbę &amp;quot;[[ramka|ramek]]&amp;quot; [[VBL]] do odczekania. Zwiększenie DTIMLO o jeden powoduje wydłużenie czasu oczekiwania o 1,28 sek. w systemie PAL i o 1,067 sek. w systemie NTSC. Wartość &amp;quot;0&amp;quot; oznacza 256 jednostek.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Typowo ustawia się tu wartość z zakresu od $06 do $08 (zależnie od kaprysu programisty) dla wszystkich operacji oprócz formatowania. Właściwą wartość timeout dla formatowania urządzenie przesyła w bloku statusu, w odpowiedzi na komendę READ STATUS (&amp;quot;S&amp;quot;, zob. niżej).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$0307&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;DUNUSE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bajt&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bajt nieużywany, zarezerwowany do przyszłych zastosowań.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$0308&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;DBYT&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Dwa bajty&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wielkość bufora; musi być zgodna z wielkością transmitowanego bloku danych. Zero oznacza 64 kilobajty.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$030A&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;DAUX1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bajt&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pierwszy bajt pomocniczy. W operacjach dyskowych młodszy bajt numeru sektora.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$030B&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;DAUX2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bajt&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Drugi bajt pomocniczy. W operacjach dyskowych starszy bajt numeru sektora.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Wykaz urządzeń===&lt;br /&gt;
&lt;br /&gt;
Istnieje pięć urządzeń zdefiniowanych przez Atari. Właściwy identyfikator urządzenia (CDEVIC) zestawiany jest przez system z kodu urządzenia (DDEVIC) i jego numeru indywidualnego (DUNIT). Wartości te są dodawane, po czym jeszcze odejmuje się 1. Dlatego stację dysków nr 1 można wywołać też jako DDEVIC=$32 i DUNIT=0, liczy się wynik wspomnianego dodawania (CDEVIC). UWAGA: jest to tzw. &amp;quot;nieudokumentowana&amp;quot; cecha procedur szeregowych OS-u, inne urządzenia (jak np. [[nowe urządzenia]]) mogą tego nie robić.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 cellpadding = 5&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;DDEVIC&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CDEVIC&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Opis&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$31&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$31-$3F&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;dyskowa pamięć masowa (stacja dysków, twardy dysk)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40-$43&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;drukarka&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$4F&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$4F&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;bus master (moduł [[1090]])&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$50&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$50-$53&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;port szeregowy RS-232C&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$60&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$60&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;magnetofon kasetowy&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Przypisanie identyfikatorów do poszczególnych urządzeń jest niezbyt konsekwentne, np. CDEVIC=$31 to stacja dysków numer 1, ale CDEVIC=$41 to drukarka numer 2.&lt;br /&gt;
&lt;br /&gt;
Urządzeniem, które na podanej powyżej liście jest wyjątkowe, jest magnetofon kasetowy. Jest to jedyne &amp;quot;nieinteligentne&amp;quot; urządzenie peryferyjne, to jest nie zawierające własnego procesora. Wszystkie zadania związane z wysyłaniem danych na magnetofon i odbiorem z niego wykonuje system operacyjny komputera. W odróżnieniu od innych urządzeń, magnetofon okupuje tylko identyfikator $60, a wartość DUNIT jest ignorowana - w związku z tym kody urządzeń od $61 do $6F są (na razie) wolne.&lt;br /&gt;
&lt;br /&gt;
Wartości CDEVIC powyżej $7F są zarezerwowane dla pewnych rozszerzeń protokołu SIO, patrz [[SIO#Rozszerzenia_SIO|niżej]].&lt;br /&gt;
&lt;br /&gt;
Ponieważ identyfikator jest częścią wysyłanej do urządzenia komendy, więc budując własne urządzenie można posłużyć się identyfikatorem spoza powyżej wyszczególnionych:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 cellpadding = 5&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;DDEVIC&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;CDEVIC&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Opis&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$20&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$20&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[IDE Plus]], [[SIDE]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$45&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$45&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[Smart Device]] ( [[APE Time]] i [[URL Submit]])&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$5A&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$5A&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[ATR 8000]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$61&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$61&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[AtariSIO]], [[DOS2DOS]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$70&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$70&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[http://www.mathyvannisselroy.nl/aspi.htm Atari ASPI] (zob. [http://pl.wikipedia.org/wiki/ASPI ASPI])&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$71-$74&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$71-$74&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[SDrive]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$71&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$70&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[SIO2USB]] [http://www.atariage.com/forums/topic/155690-ape-time/page__view__findpost__p__1916403?s=2e4d3fd681ca05ec0c05b0a7e5474dd6]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$73&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$72-$75&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;[[SIO2SD|Sio2SD]]&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Wykazy komend===&lt;br /&gt;
&lt;br /&gt;
* [[Lista komend SIO według funkcji]]&lt;br /&gt;
* [[Lista komend SIO według kodów operacyjnych]]&lt;br /&gt;
&lt;br /&gt;
===Blok statusu===&lt;br /&gt;
&lt;br /&gt;
Blok statusu przysyłany na komendę żądania statusu ($53) ma strukturę w dużym stopniu zależną od urządzenia. Są to dwa lub cztery bajty, a ich znaczenie dla poszczególnych urządzeń jest opisane poniżej. W pierwszym bajcie statusu obowiązuje jednolity dla wszystkich urządzeń podział na dwie grupy bitów:&lt;br /&gt;
&lt;br /&gt;
* bity 0-2 sygnalizują status komunikacji pomiędzy komputerem a urządzeniem&lt;br /&gt;
* bity 3-7 sygnalizują status wewnętrzny urządzenia&lt;br /&gt;
&lt;br /&gt;
====Stacja dysków====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 cellpadding=4&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Bajt&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Znaczenie&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
* bit 0 = 1 - wydana ostatnio komenda nie została rozpoznana&lt;br /&gt;
* bit 1 = 1 - przesłany ostatnio blok danych był błędny (błąd sumy kontrolnej)&lt;br /&gt;
* bit 2 = 1 - ostatnia operacja nie powiodła się (np. próbowano odczytać wadliwy sektor)&lt;br /&gt;
* bit 3 = 1 - dyskietka jest zabezpieczona przed zapisem&lt;br /&gt;
* bit 4 = 1 - kręci się silnik obracający dyskietkę&lt;br /&gt;
* bit 5 = 1 - sektory 256-bajtowe (128-bajtowe w przeciwnym wypadku)&lt;br /&gt;
* bit 6 = 0 - zarezerwowany&lt;br /&gt;
* bit 7 = 1 - praca w średniej gęstości&lt;br /&gt;
&amp;lt;p&amp;gt;W przypadku interfejsu [[KMK/JŻ]] IDE znaczenie mają tylko bity 3 i 5, reszta jest zawsze wyzerowana.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Kopia rejestru statusu kontrolera WD 1772 (lub kompatybilnego), wszystkie bity są poddane inwersji.&amp;lt;/p&amp;gt;&lt;br /&gt;
* bit 0 = 1 - BUSY&lt;br /&gt;
* bit 1 = 1 - DRQ (Data Request)&lt;br /&gt;
* bit 2 = 1 - Track 0 not found&lt;br /&gt;
* bit 3 = 1 - CRC error&lt;br /&gt;
* bit 4 = 1 - Record not found&lt;br /&gt;
* bit 5 = 1 - Seek complete&lt;br /&gt;
* bit 6 = 1 - Write protected&lt;br /&gt;
* bit 7 = 1 - Not ready&lt;br /&gt;
&amp;lt;p&amp;gt;Interfejs IDE [[KMK/JŻ]] zwraca zamiast tego zawartość rejestru ERROR kontrolera IDE:&amp;lt;/p&amp;gt;&lt;br /&gt;
* bit 0 = 1 - Data Address Mark not found&lt;br /&gt;
* bit 1 = 1 - Track 0 not found&lt;br /&gt;
* bit 2 = 1 - Aborted command&lt;br /&gt;
* bit 3, zarezerwowany&lt;br /&gt;
* bit 4 = 1 - ID not found&lt;br /&gt;
* bit 5, zarezerwowany&lt;br /&gt;
* bit 6 = 1 - ECC error&lt;br /&gt;
* bit 7 = 1 - Bad sector&lt;br /&gt;
&amp;lt;p&amp;gt;Podobnie jak powyżej wszystkie bity są poddane inwersji (EOR #$FF).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Maksymalny czas oczekiwania na wykonanie komendy (timeout) przewidziany dla operacji dyskowej. Najdłużej trwa formatowanie, zalecaną wartością jest 240.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nie używany.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Drukarka====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 cellpadding=4&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Bajt&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Znaczenie&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
* bit 0 = 1 - wydana ostatnio komenda nie została rozpoznana&lt;br /&gt;
* bit 1 = 1 - przesłany ostatnio blok danych był błędny (błąd sumy kontrolnej)&lt;br /&gt;
* bit 7 = 1 - drukarka jest programowalna (w drukarkach Atari ten bit jest skasowany)&lt;br /&gt;
Pozostałe bity są zarezerwowane.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;DAUX2 przesłanej ostatnio komendy&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Maksymalny czas oczekiwania na wykonanie komendy (timeout) przewidziany dla tej drukarki&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Nie używany.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====RS-232 ([[850|Atari 850]])====&lt;br /&gt;
&lt;br /&gt;
Blok statusu portu RS-232 ma dwa bajty (w pozostałych urządzeniach - cztery).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 cellpadding=4&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Bajt&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Znaczenie&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
* bit 0 = 1 - wydana ostatnio komenda nie została rozpoznana&lt;br /&gt;
* bit 1 = 1 - przesłany ostatnio blok danych był błędny (błąd sumy kontrolnej)&lt;br /&gt;
* bit 2, zarezerwowany&lt;br /&gt;
* bit 3, zarezerwowany&lt;br /&gt;
* bit 4 = 1 - przepełnienie bufora RS-232&lt;br /&gt;
* bit 5 = 1 - błąd parzystości RS-232&lt;br /&gt;
* bit 6 = 1 - na porcie RS-232 wystąpił nadmiar bitów (overrun) &lt;br /&gt;
* bit 7 = 1 - na porcie RS-232 wystąpiło zakłócenie transmisji szeregowej (framing error)&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
* bit 0 = 1 - RCV (czyli RX) ustawione&lt;br /&gt;
* bit 1, zarezerwowany&lt;br /&gt;
* bit 2, kopia bitu 3&lt;br /&gt;
* bit 3 = 1 - CRX (czyli DCD) ustawione&lt;br /&gt;
* bit 4, kopia bitu 5&lt;br /&gt;
* bit 5 = 1 - CTS ustawione&lt;br /&gt;
* bit 6, kopia bitu 7&lt;br /&gt;
* bit 7 = 1 - DSR ustawione&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Magnetofon kasetowy====&lt;br /&gt;
&lt;br /&gt;
Przyjmuje się, że magnetofon, jako urządzenie &amp;quot;nieinteligentne&amp;quot;, jest zawsze podłączony i gotowy do pracy, a więc nie zachodzi potrzeba sprawdzania jego statusu. W związku z tym funkcja READ STATUS ($53) nie jest dla magnetofonu zaimplementowana.&lt;br /&gt;
&lt;br /&gt;
===Blok PERCOM===&lt;br /&gt;
&lt;br /&gt;
Blok PERCOM jest to 12 bajtów informacji o konfiguracji stacji dysków. Odczyt przeprowadza się komendą $4E (&amp;quot;N&amp;quot;), a zapis - komendą $4F (&amp;quot;O&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 cellpadding=5&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Bajt&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Opis&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Liczba ścieżek na dyskietce; w praktyce dla stacji dysków spotyka się wartości najczęściej 40 lub 80, rzadziej 35 lub 77. Partycje twardego dysku zwracają 1.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Szybkość przesuwu głowicy ze ścieżki na ścieżkę:&lt;br /&gt;
* 0 - 30 ms&lt;br /&gt;
* 1 - 20 ms&lt;br /&gt;
* 2 - 12 ms&lt;br /&gt;
* 3 - 6 ms&lt;br /&gt;
&amp;lt;p&amp;gt;W praktyce stacje przeważnie ignorują przesłaną wartość. W przypadku twardego dysku jest ona bez znaczenia (kontroler KMK/JŻ zwraca w tym bajcie numer wersji wewnętrznego oprogramowania)&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;STARSZY bajt liczby sektorów na ścieżce.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MŁODSZY bajt liczby sektorów na ścieżce.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Liczba aktywnych stron dyskietki zmniejszona o 1 albo najstarszy bajt liczby sektorów partycji twardego dysku (patrz niżej).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;5&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
* bit 0 - zarezerwowany&lt;br /&gt;
* bit 1 = 1, dyskietka ośmiocalowa; 5,25 cala w przeciwnym wypadku&lt;br /&gt;
* bit 2 = 1, gęstość MFM, FM w przeciwnym wypadku&lt;br /&gt;
* bit 3 = 1, dysk nie ma &amp;quot;stron&amp;quot;, a zamiast liczby stron jest podany najstarszy bajt całkowitej liczby sektorów dysku (partycji twardego dysku)&lt;br /&gt;
&amp;lt;p&amp;gt;Pozostałe bity są zarezerwowane i powinny być wyzerowane.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;6&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;STARSZY bajt wielkości sektora (w bajtach)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;7&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MŁODSZY bajt wielkości sektora (w bajtach)&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Niewykorzystany, zapisuje się - i przeważnie odczytuje - jako $FF. W oryginalnych stacjach PERCOM bajt ten sygnalizował stan niektórych funkcji kontrolera stacji i służył do ich wybierania:&amp;lt;/p&amp;gt;&lt;br /&gt;
* bit 0 = 1, sektory fizyczne na ścieżce numerowane są od 0, a nie od 1.&lt;br /&gt;
* bit 1 = 1, sektory fizyczne 1,2,3 mają pełne rozmiary.&lt;br /&gt;
* bit 2, zarezerwowany&lt;br /&gt;
* bit 3, zarezerwowany&lt;br /&gt;
* bit 4, zarezerwowany&lt;br /&gt;
* bit 5, zarezerwowany&lt;br /&gt;
* bit 6 = 0, napęd stacji jest odłączony (wyjęty).&lt;br /&gt;
* bit 7 = 1, napęd 80-ścieżkowy pracuje w trybie 40-ścieżkowym.&lt;br /&gt;
&amp;lt;p&amp;gt;W praktyce większość stacji nie ustawia tych bitów zgodnie z powyższym opisem.&amp;lt;/p&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;9&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Niewykorzystane, na ogół 0.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;10&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Niewykorzystane, na ogół 0.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;11&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Niewykorzystane, na ogół 0.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Protokół transmisji==&lt;br /&gt;
&lt;br /&gt;
=== Połączenia równoległe ===&lt;br /&gt;
&lt;br /&gt;
Protokół transmisji urządzeń podłączanych do szyny równoległej jest zależny od programu obsługi urządzenia zawartego w jego pamięci ROM. System operacyjny tego nie definiuje.&lt;br /&gt;
&lt;br /&gt;
=== Połączenia szeregowe ===&lt;br /&gt;
&lt;br /&gt;
Podziału poszczególnych bajtów na bity i wyemitowania ich na złącze szeregowe tudzież przyjmowania pojedynczych bitów i scalania ich w bajty dokonuje sprzętowo układ [[POKEY]] (quod vide).&lt;br /&gt;
&lt;br /&gt;
==== Opis przebiegu komunikacji ====&lt;br /&gt;
Przebieg komunikacji pomiędzy komputerem a urządzeniem jest następujący:&lt;br /&gt;
&lt;br /&gt;
1) komputer ustawia linię COMMAND [[gniazdo SIO|portu SIO]];&lt;br /&gt;
&lt;br /&gt;
2) komputer formuje czterobajtowy blok komendy, tzw. Command Frame. Command Frame składa się kolejno z (bajt 1) dodanych do siebie wartości DDEVIC i DUNIT, odjąć 1; (bajt 2) wartości DCMND; (bajt 3) wartości DAUX1; (bajt 4) wartości DAUX2;&lt;br /&gt;
&lt;br /&gt;
3) komenda jest wysyłana do urządzenia razem z dołączoną na końcu [[suma kontrolna SIO|sumą kontrolną]]; czas pomiędzy ustawieniem linii COMMAND a rozpoczęciem wysyłania komendy musi być nie mniejszy niż 750 usec i nie większy niż 1600 usec.&lt;br /&gt;
&lt;br /&gt;
4) komputer kasuje linię COMMAND portu SIO (nie wcześniej niż po 650 usec i nie później niż 950 usec po wysłaniu ostatniego bitu komendy) i czeka na odpowiedź;&lt;br /&gt;
&lt;br /&gt;
5) urządzenie przyjmuje komendę; jeśli urządzenie stwierdziło w komendzie błąd sumy kontrolnej, nie reaguje; jeśli komenda jest nierozpoznana, albo nieprawidłowe są jej parametry (np. nie istnieje sektor o podanym numerze), odpowiedzią jest $4E (&amp;quot;N&amp;quot;, jak Negative Acknowledge) i na tym transmisja się kończy; jeśli komenda jest urządzeniu znana a parametry prawidłowe, odpowiedzią jest $41 (&amp;quot;A&amp;quot;, jak Acknowledge). Urządzenie musi rozpocząć wysyłanie odpowiedzi w czasie od 0 do 16 msec. od skasowania linii COMMAND przez komputer;&lt;br /&gt;
&lt;br /&gt;
Dalszy przebieg jest zależny tego, czy dana komenda wymaga przesłania dodatkowego bloku danych do/z urządzenia. Możliwe są 3 sytuacje: brak transmisji danych; odczyt danych z urządzenia; zapis danych do urządzenia.&lt;br /&gt;
&lt;br /&gt;
6a) Jeśli komenda nie wymaga transmisji bloku danych, urządzenie podejmuje próbę wykonania operacji; jeśli się to nie uda, wysyła kod $45 (&amp;quot;E&amp;quot;, jak Error); w przeciwnym wypadku przesyłany jest kod $43 (&amp;quot;C&amp;quot;, jak Complete); na tym transmisja się kończy.&lt;br /&gt;
&lt;br /&gt;
6b) jeśli komenda polega na odczycie bloku danych, urządzenie podejmuje próbę wykonania operacji; jeśli się to nie uda (np. nie można odczytać sektora z powodu uszkodzenia nośnika), wysyła kod $45 (&amp;quot;E&amp;quot;, jak Error); w przeciwnym wypadku przesyłany jest kod $43 (&amp;quot;C&amp;quot;, jak Complete); następnie w obydwu przypadkach urządzenie natychmiast wysyła blok danych zakończony sumą kontrolną i na tym transmisja się kończy.&lt;br /&gt;
&lt;br /&gt;
6c) jeśli to jest zapis bloku danych, komputer przesyła blok danych plus sumę kontrolną do urządzenia. Po jego przyjęciu, jeśli blok danych jest poprawny, urządzenie odpowiada kodem $41 (&amp;quot;A&amp;quot;) i przystępuje do np. zapisania danych na nośnik. W przeciwnym wypadku, jeśli w nadesłanym bloku danych urządzenie stwierdzi błąd sumy kontrolnej lub inne nieprawidłowości, odpowiada kodem $4E (&amp;quot;N&amp;quot;) lub nie odpowiada w ogóle, a blok danych ignoruje. W następnej fazie urządzenie informuje komputer o wykonaniu kodem &amp;quot;C&amp;quot; lub &amp;quot;E&amp;quot; o znaczeniu jak powyżej, i na tym transmisja się kończy. Przesłanie bloku danych musi rozpocząć się nie wcześniej niż 1000 usec. i nie później niż 1800 usec. po przesłaniu ostatniego bitu potwierdzeniu przyjęcia komendy (pierwszym &amp;quot;A&amp;quot;). Rozpoczęcie przesłania potwierdzenia otrzymania bloku (&amp;quot;A&amp;quot; lub &amp;quot;N&amp;quot;) musi nastąpić w czasie od 850 usec. do 16 msec. po przesłaniu ostatniego bitu bloku danych.&lt;br /&gt;
&lt;br /&gt;
We wszystkich 3 przypadkach transmisja potwierdzenia końcowego (&amp;quot;C&amp;quot; lub &amp;quot;E&amp;quot;) z urządzenia musi rozpocząć się nie wcześniej niż po 250 usec. i nie później niż po 255 sekundach - czyli po 4 minutach i 15 sekundach - od przesłania ostatniego bitu potwierdzenia komendy (&amp;quot;A&amp;quot;) (6a, 6b) lub od odebrania ostatniego bitu bloku danych (6c).&lt;br /&gt;
&lt;br /&gt;
Konieczność odebrania bloku danych z urządzenia podczas operacji odczytu, nawet po ustaleniu że operacja została wykonana błędnie (kod &amp;quot;E&amp;quot;) może tłumaczyć fakt, że po operacji formatowania dysku stacje dysków wysyłają listę błędnych sektorów (rozmiar odbieranego bloku danych ustalany jest w DBYT).&lt;br /&gt;
&lt;br /&gt;
==== Schemat wymiany danych ====&lt;br /&gt;
&lt;br /&gt;
W fazie oznaczonej jako &#039;&#039;wykonanie&#039;&#039; urządzenie dokonuje niezbędnych czynności (np. stacja dysków wyszukuje żądany sektor na dyskietce i odczytuje go, albo zapisuje), a komputer czeka.&lt;br /&gt;
&lt;br /&gt;
Potwierdzenia przesyłane są bez sum kontrolnych.&lt;br /&gt;
&lt;br /&gt;
===== Tylko komenda =====&lt;br /&gt;
&lt;br /&gt;
* komputer --&amp;gt; komenda 4 B + suma kontrolna --&amp;gt; urządzenie&lt;br /&gt;
* komputer &amp;lt;-- potwierdzenie &#039;A&#039; &amp;lt;-- urządzenie&lt;br /&gt;
* wykonanie&lt;br /&gt;
* komputer &amp;lt;-- potwierdzenie &#039;C&#039; &amp;lt;-- urządzenie&lt;br /&gt;
* koniec&lt;br /&gt;
&lt;br /&gt;
===== Odczyt =====&lt;br /&gt;
&lt;br /&gt;
* komputer --&amp;gt; komenda 4 B + suma kontrolna --&amp;gt; urządzenie&lt;br /&gt;
* komputer &amp;lt;-- potwierdzenie &#039;A&#039; &amp;lt;-- urządzenie&lt;br /&gt;
* wykonanie&lt;br /&gt;
* komputer &amp;lt;-- potwierdzenie &#039;C&#039; &amp;lt;-- urządzenie&lt;br /&gt;
* komputer &amp;lt;-- blok danych + suma kontrolna &amp;lt;-- urządzenie&lt;br /&gt;
* koniec&lt;br /&gt;
&lt;br /&gt;
===== Zapis =====&lt;br /&gt;
&lt;br /&gt;
* komputer --&amp;gt; komenda 4 B + suma kontrolna --&amp;gt; urządzenie&lt;br /&gt;
* komputer &amp;lt;-- potwierdzenie &#039;A&#039; &amp;lt;-- urządzenie&lt;br /&gt;
* komputer --&amp;gt; blok danych + suma kontrolna --&amp;gt; urządzenie&lt;br /&gt;
* komputer &amp;lt;-- potwierdzenie &#039;A&#039; &amp;lt;-- urządzenie&lt;br /&gt;
* wykonanie&lt;br /&gt;
* komputer &amp;lt;-- potwierdzenie &#039;C&#039; &amp;lt;-- urządzenie&lt;br /&gt;
* koniec&lt;br /&gt;
&lt;br /&gt;
===== Zapis i odczyt =====&lt;br /&gt;
&lt;br /&gt;
* komputer --&amp;gt; komenda 4 B + suma kontrolna --&amp;gt; urządzenie&lt;br /&gt;
* komputer &amp;lt;-- potwierdzenie &#039;A&#039; &amp;lt;-- urządzenie&lt;br /&gt;
* komputer --&amp;gt; blok danych + suma kontrolna --&amp;gt; urządzenie&lt;br /&gt;
* komputer &amp;lt;-- potwierdzenie &#039;A&#039; &amp;lt;-- urządzenie&lt;br /&gt;
* wykonanie&lt;br /&gt;
* komputer &amp;lt;-- potwierdzenie &#039;C&#039; &amp;lt;-- urządzenie&lt;br /&gt;
* komputer &amp;lt;-- blok danych + suma kontrolna &amp;lt;-- urządzenie&lt;br /&gt;
* koniec&lt;br /&gt;
&lt;br /&gt;
====Magnetofon====&lt;br /&gt;
&lt;br /&gt;
Powyższe schematy dotyczą wszystkich urządzeń SIO za wyjątkiem magnetofonu. Magnetofon nie zawiera w sobie mikroprocesora, jest urządzeniem &amp;quot;nieinteligentnym&amp;quot;. Transmisja jest w całości obsługiwana przez komputer, który wysyła (i przyjmuje) bloki danych, tzw. rekordy, zawierające każdy po 128 bajtów danych, sumę kontrolną oraz dwa dodatkowe bajty służące do pomiaru równomierności przesuwu taśmy.&lt;br /&gt;
&lt;br /&gt;
==Rozszerzenia SIO==&lt;br /&gt;
&lt;br /&gt;
===Systemy turbo do stacji dysków===&lt;br /&gt;
&lt;br /&gt;
Standardowa szybkość wymiany danych ze stacją dysków - 19200 bps - szybko okazała się dalece niewystarczająca. Ponieważ, jak napisano powyżej, możliwości układu [[POKEY]] pozwalają uzyskać znacznie więcej, wkrótce powstało kilka, różnych niestety, [[Systemy Turbo|systemów &amp;quot;turbo&amp;quot;]].&lt;br /&gt;
&lt;br /&gt;
===Rozszerzone adresowanie sektorów (KMK/JŻ IDE)===&lt;br /&gt;
&lt;br /&gt;
Kontroler [[KMK/JŻ IDE]] wykorzystuje bajt DUNUSE ($0307) bloku DCB jako najstarszy bajt numeru sektora. Pozwala to na zaadresowanie do 16777215 sektorów na jednej partycji.&lt;br /&gt;
&lt;br /&gt;
===Rozszerzone adresowanie pamięci (65C816)===&lt;br /&gt;
&lt;br /&gt;
[[DracOS]] (odmiana [[XL OS]] przygotowana dla procesora [[65C816]]) zawiera rozszerzenie SIO pozwalające na transfery danych bezpośrednio do i z dodatkowej pamięci adresowalnej liniowo (tj. znajdującej się pod adresami wyższymi niż $FFFF) oraz 32-bitowe adresowanie sektorów.&lt;br /&gt;
&lt;br /&gt;
==Zobacz też==&lt;br /&gt;
* [http://www.atariarchives.org/dere/ De Re Atari]&lt;br /&gt;
&lt;br /&gt;
==Bibliografia==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;[http://ftp.pigwa.net/stuff/collections/nir_dary_cds/Tech%2520Info/SIOSPECS.PDF Atari Home Computer System: Serial Input Output Interface, User&#039;s Handbook]&#039;&#039;&lt;br /&gt;
* Harry B. Stewart, &#039;&#039;[http://www.atarimuseum.com/ahs_archives/archives/pdf/computers/8bits/1200XL/sweet-16_OS.pdf Z800/Sweet 16 Operating System, External Reference Specification]&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Menu Główne]]&lt;br /&gt;
[[Kategoria:Programowanie Atari 8-bit]]&lt;/div&gt;</summary>
		<author><name>Montezuma</name></author>
	</entry>
</feed>