<?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=Pajero</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=Pajero"/>
	<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php/Specjalna:Wk%C5%82ad/Pajero"/>
	<updated>2026-10-24T08:30:41Z</updated>
	<subtitle>Wkład użytkownika</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Ram-Cart&amp;diff=38339</id>
		<title>Ram-Cart</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Ram-Cart&amp;diff=38339"/>
		<updated>2021-01-09T18:46:32Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Mini poprawki&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{grafr|Ramcart.jpg}}&lt;br /&gt;
&lt;br /&gt;
Rozszerzenie pamięci [[RAM]] do Atari [[XL]]/[[XE]] występujące w formie [[cartridge]]&#039;a, produkowane przez łódzki zakład [[Unnering Masters]] a dokładnie Piotra Janiszowskiego, który był twórcą i początkowym wykonawcą (wersje do 1MB). &lt;br /&gt;
W późniejszym czasie dołączył Przemysław &amp;quot;[[GALTRON]]&amp;quot; Galanciak, który zajmował się projektowaniem płytek, wykonaniem ich wraz z montażem elementów.&lt;br /&gt;
W projekcie pomagał [[Zenon]] &amp;quot;DIAL&amp;quot; Rakoczy który tworzył schematy, brał udział w testowaniu. &lt;br /&gt;
&lt;br /&gt;
Pamięć jest podtrzymywana bateryjnie.&lt;br /&gt;
&lt;br /&gt;
Pierwowzorem układu był [[SiDiCar]].&lt;br /&gt;
&lt;br /&gt;
Obecnie układ można też spotkać w wersji z przyciskiem RESET oraz w formie &#039;&#039;&#039;Double Ram-Cart&#039;&#039;&#039;, który różni się od zwykłej wersji tym, że ma podwojoną liczbę układów pamięci - co daje już przyzwoitą pojemność - 256KB, a nawet (przy drobnych modyfikacjach) do 1MB.&lt;br /&gt;
&lt;br /&gt;
== 64KB ==&lt;br /&gt;
&lt;br /&gt;
RAM-CART 64k produkowany był w dwu wersjach różniących się zastosowaną pamięcią SRAM. Różnica polega na odmiennym sterowaniu wejściem zapisu E (/E),  stąd w wersji 2 (oznaczonej na schemacie) pojawiły sie dodatkowe bramki  logiczne 7403 typu  otwarty kolektor (OC).&lt;br /&gt;
&lt;br /&gt;
Płytka przygotowana była dla wersji 64k i 128k. W zależności od modelu dokonywano na niej modyfikacji.&lt;br /&gt;
Model 64k - tylko dwie pamięci SRAM, tylko dwa oporniki 10k, brak zwory łączącej pin 12 układu 74174 i pinami 11,12 układu 7402 oraz pinami 9, 12 układu 7403. Te cztery piny połączone są zworą do +5V.&lt;br /&gt;
&lt;br /&gt;
== 128KB ==&lt;br /&gt;
&lt;br /&gt;
Model 128k - nalutowane dwie dodatkowe pamięci SRAM, wlutowane dwa dodatkowe oporniki 10k, wlutowana zwora łączące pin 12 układu 74174 z pinami 11,12 układu 7402 oraz pinami 9, 12 układu 7403. Wejścia /CS dodatkowych pamięci połączone są odpowiednio z pinami 3, 6 układu 7403 (patrz schemat RAM-CART 128k wersja 2)&lt;br /&gt;
&lt;br /&gt;
RAM-CART 128k produkowany był w dwu wersjach różniących się zastosowaną pamięcią SRAM. Różnica polega na odmiennym sterowaniu wejściem zapisu E (/E),  stąd w wersji 2 (oznaczonej na schemacie) pojawiły sie dodatkowe bramki  logiczne 7403 typu  otwarty kolektor (OC).&lt;br /&gt;
&lt;br /&gt;
== Double Ram-Cart 2x128KB / 256KB ==&lt;br /&gt;
&lt;br /&gt;
Dodatkowy przycisk P1 pozwala na wybór jednego z dwóch trybów pracy:&lt;br /&gt;
&lt;br /&gt;
* 2x128K - wtedy cartridge zachowuje się jak dwa oddzielne moduły 128K&lt;br /&gt;
* 256K - cartridge zawiera 256K pamięci a bit 2 w rejestrze konfiguracyjnym służy do wyboru numeru banku&lt;br /&gt;
&lt;br /&gt;
Dodatkowy przycisk P2 pozwala przełączać się między modułami 128KB w obydwu trybach pracy (!).&lt;br /&gt;
&lt;br /&gt;
== 1MB ==&lt;br /&gt;
&lt;br /&gt;
Cartridge powstały na bazie wersji 128KB.&lt;br /&gt;
&lt;br /&gt;
Z obudowy zniknęły przyciski P1 i P2, za to pojawiły się przyciski A, B i C pozwalające na wybór 1 z 8 modułów 128K.&lt;br /&gt;
&lt;br /&gt;
W firmowej wersji cartridge-a bity 2, 6 i 7 służą do odczytu stanu przycisków A, B i C. Po rozkręceniu obudowy można zalutować zworki dzięki czemu przyciski A, B i C tracą swoją funkcję, a bity te służą do wybierania banków w pełnym obszarze 1MB. &lt;br /&gt;
&lt;br /&gt;
== 2MB ==&lt;br /&gt;
&lt;br /&gt;
Rozszerzenie cartridge-a 1MB o dodatkowy 1MB.&lt;br /&gt;
&lt;br /&gt;
Dodatkowy przycisk 1/2M na obudowie w kooperacji z A, B i C pozwala wybrać 1 z 16 modułów 128K (1 z 2 modułów 1M po przelutowaniu zworek ABC).&lt;br /&gt;
&lt;br /&gt;
== 4MB ==&lt;br /&gt;
&lt;br /&gt;
Rozszerzenie cartridge-a 1MB o dodatkowe 3MB.&lt;br /&gt;
&lt;br /&gt;
Dodatkowe przyciski D i 2/4M na obudowie w kooperacji z A, B i C pozwalają na wybór 1 z 32 modułów 128K (1 z 4 modułów 1M po przelutowaniu zworek ABC).&lt;br /&gt;
&lt;br /&gt;
== 8MB ==&lt;br /&gt;
&lt;br /&gt;
W przygotowaniu&lt;br /&gt;
&lt;br /&gt;
==Programowanie==&lt;br /&gt;
Rejestr sterujący układu znajduje się pod adresem $D500 (aczkolwiek ze względu na uproszczony dekoder adresów jest on powtórzony na całej stronie $D5).&lt;br /&gt;
&lt;br /&gt;
- bit 0: włącza moduł w obszarze $A000 - $BFFF;&lt;br /&gt;
w trybie RO (odczytu): 0 włączony, 1 wyłączony a&lt;br /&gt;
w trybie RW (zapisu): 1 włączony, 0 wyłączony&lt;br /&gt;
&lt;br /&gt;
- bit 1: włącza moduł w obszarze $8000 - $9FFF; 1 włączony, 0 wyłączony&lt;br /&gt;
&lt;br /&gt;
- bit 2: ustawiony blokuje rejestr do momentu wyłączenia komputera (w module 64/128K/2x128K), przełącza bank pamięci w module 256K i w zmodyfikowanych 1M, 2M i 4M, w fabrycznych wersjach zwraca stan przycisku A&lt;br /&gt;
&lt;br /&gt;
- bit 3: przełącza bank pamięci w module 64K&lt;br /&gt;
&lt;br /&gt;
- bit 4: przełącza bank pamięci w module 64K&lt;br /&gt;
&lt;br /&gt;
- bit 5: przełącza bank pamięci w module 128K&lt;br /&gt;
&lt;br /&gt;
- bit 6: przełącza bank pamięci w zmodyfikowanym module 1/2/4M, w fabrycznym zwraca stan przycisku B&lt;br /&gt;
&lt;br /&gt;
- bit 7: przełącza bank pamięci w zmodyfikowanym module 1/2/4M, w fabrycznym zwraca stan przycisku C&lt;br /&gt;
&lt;br /&gt;
W cartridge-ach 64K i 128K rejestr był przeznaczony tylko do zapisu. W pierwszych wersjach Double Ram-Cart 2x128/256K i Ram-Cart 1M od Zenona początkowo również tak było, choć w późniejszych egzemplarzach został udostępniony również do odczytu, a dodatkowo Zenon zmodyfikował konstrukcję i wykorzystał pełny dekoder adresów (rejestr sterujący dostępny jest wtedy tylko pod adresem $D500).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Bibliografia ==&lt;br /&gt;
&lt;br /&gt;
*[[KMK|Konrad Kokoszkiewicz]], &amp;quot;RAM-CARTRIDGE dla Atari XL/XE&amp;quot;, [http://atarionline.pl/biblioteka/czasopisma/Bajtek/Bajtek_1992_11.djvu Bajtek 11/1992] (w [[Atarionline.pl]]), s. 12-13&lt;br /&gt;
&lt;br /&gt;
== Schematy ==&lt;br /&gt;
&lt;br /&gt;
* [[:Grafika:RAMCART.png|Schemat wersji 64k]]&lt;br /&gt;
* [[:Grafika:RAMCART64v2.png|Schemat wersji 64k - wersja druga]]&lt;br /&gt;
* [[:Grafika:RAMCART128.png|Schemat wersji 128k - wersja oryginalna]]&lt;br /&gt;
* [[:Grafika:RAMCART128ZENON.png|Schemat wersji 128k - wersja zmodyfikowana, autorstwa Zenona/Dial]]&lt;br /&gt;
* [[:Grafika:RAMCART128kv2.png|Schemat wersji 128k - wersja druga]]&lt;br /&gt;
* [[:Grafika:DOUBLE.png|Schemat wersji 2x128k/256k - Double Ram-Cart]]&lt;br /&gt;
&lt;br /&gt;
== Odnośniki zewnętrzne ==&lt;br /&gt;
&lt;br /&gt;
* RAM-CART Handler - [[Tajemnice Atari|TA]] [http://tajemnice.atari8.info/10_93/10_93.html 10/93] - instaluje dodatkowy dysk używający Ram-Carta&lt;br /&gt;
* [http://web.archive.org/web/20100720185313/http://www.serious-dial.atari.pl/softdial.html Dial Group - oprogramowanie]&lt;br /&gt;
* [http://web.archive.org/web/20090209232906/http://serious-dial.atari.pl/artykuly/dblrc.html Double Ram-Cart - opis oprogramowania]&lt;br /&gt;
* [http://web.archive.org/web/20100804024148/http://www.serious-dial.atari.pl/zzone/pserious.html Artykuły w SERIOUS#8,#9,#10 i #11] dotyczące różnych modyfikacji Ram-Carta&lt;br /&gt;
&lt;br /&gt;
== Zobacz też ==&lt;br /&gt;
&lt;br /&gt;
* [[SiDiCar]]&lt;br /&gt;
* [http://raster.atariportal.cz/hw/ramcart/ramcart.htm S/XEGS RAMCART 128KB]&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Ram-Cart&amp;diff=38338</id>
		<title>Ram-Cart</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Ram-Cart&amp;diff=38338"/>
		<updated>2021-01-09T18:40:26Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Dalsze poprawki o autarach&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{grafr|Ramcart.jpg}}&lt;br /&gt;
&lt;br /&gt;
Rozszerzenie pamięci [[RAM]] do Atari [[XL]]/[[XE]] występujące w formie [[cartridge]]&#039;a, produkowane przez łódzki zakład [[Unnering Masters]] a dokładnie Piotra Janiszowskiego, który był twórcą i początkowym wykonawcą (wersje do 1MB). &lt;br /&gt;
W późniejszym czasie dołączył [[Przemysław &amp;quot;GALTRON&amp;quot; Galanciak]], który zajmował się projektowaniem płytek, wykonaniem ich wraz z montażem elementów.&lt;br /&gt;
W projekcie pomagał [[Zenon &amp;quot;DIAL&amp;quot; Rakoczy]] który tworzył schematy, brał udział w testowaniu. &lt;br /&gt;
&lt;br /&gt;
Pamięć jest podtrzymywana bateryjnie.&lt;br /&gt;
&lt;br /&gt;
Pierwowzorem układu był [[SiDiCar]].&lt;br /&gt;
&lt;br /&gt;
Obecnie układ można też spotkać w wersji z przyciskiem RESET oraz w formie &#039;&#039;&#039;Double Ram-Cart&#039;&#039;&#039;, który różni się od zwykłej wersji tym, że ma podwojoną liczbę układów pamięci - co daje już przyzwoitą pojemność - 256KB, a nawet (przy drobnych modyfikacjach) do 1MB.&lt;br /&gt;
&lt;br /&gt;
== 64KB ==&lt;br /&gt;
&lt;br /&gt;
RAM-CART 64k produkowany był w dwu wersjach różniących się zastosowaną pamięcią SRAM. Różnica polega na odmiennym sterowaniu wejściem zapisu E (/E),  stąd w wersji 2 (oznaczonej na schemacie) pojawiły sie dodatkowe bramki  logiczne 7403 typu  otwarty kolektor (OC).&lt;br /&gt;
&lt;br /&gt;
Płytka przygotowana była dla wersji 64k i 128k. W zależności od modelu dokonywano na niej modyfikacji.&lt;br /&gt;
Model 64k - tylko dwie pamięci SRAM, tylko dwa oporniki 10k, brak zwory łączącej pin 12 układu 74174 i pinami 11,12 układu 7402 oraz pinami 9, 12 układu 7403. Te cztery piny połączone są zworą do +5V.&lt;br /&gt;
&lt;br /&gt;
== 128KB ==&lt;br /&gt;
&lt;br /&gt;
Model 128k - nalutowane dwie dodatkowe pamięci SRAM, wlutowane dwa dodatkowe oporniki 10k, wlutowana zwora łączące pin 12 układu 74174 z pinami 11,12 układu 7402 oraz pinami 9, 12 układu 7403. Wejścia /CS dodatkowych pamięci połączone są odpowiednio z pinami 3, 6 układu 7403 (patrz schemat RAM-CART 128k wersja 2)&lt;br /&gt;
&lt;br /&gt;
RAM-CART 128k produkowany był w dwu wersjach różniących się zastosowaną pamięcią SRAM. Różnica polega na odmiennym sterowaniu wejściem zapisu E (/E),  stąd w wersji 2 (oznaczonej na schemacie) pojawiły sie dodatkowe bramki  logiczne 7403 typu  otwarty kolektor (OC).&lt;br /&gt;
&lt;br /&gt;
== Double Ram-Cart 2x128KB / 256KB ==&lt;br /&gt;
&lt;br /&gt;
Dodatkowy przycisk P1 pozwala na wybór jednego z dwóch trybów pracy:&lt;br /&gt;
&lt;br /&gt;
* 2x128K - wtedy cartridge zachowuje się jak dwa oddzielne moduły 128K&lt;br /&gt;
* 256K - cartridge zawiera 256K pamięci a bit 2 w rejestrze konfiguracyjnym służy do wyboru numeru banku&lt;br /&gt;
&lt;br /&gt;
Dodatkowy przycisk P2 pozwala przełączać się między modułami 128KB w obydwu trybach pracy (!).&lt;br /&gt;
&lt;br /&gt;
== 1MB ==&lt;br /&gt;
&lt;br /&gt;
Cartridge powstały na bazie wersji 128KB.&lt;br /&gt;
&lt;br /&gt;
Z obudowy zniknęły przyciski P1 i P2, za to pojawiły się przyciski A, B i C pozwalające na wybór 1 z 8 modułów 128K.&lt;br /&gt;
&lt;br /&gt;
W firmowej wersji cartridge-a bity 2, 6 i 7 służą do odczytu stanu przycisków A, B i C. Po rozkręceniu obudowy można zalutować zworki dzięki czemu przyciski A, B i C tracą swoją funkcję, a bity te służą do wybierania banków w pełnym obszarze 1MB. &lt;br /&gt;
&lt;br /&gt;
== 2MB ==&lt;br /&gt;
&lt;br /&gt;
Rozszerzenie cartridge-a 1MB o dodatkowy 1MB.&lt;br /&gt;
&lt;br /&gt;
Dodatkowy przycisk 1/2M na obudowie w kooperacji z A, B i C pozwala wybrać 1 z 16 modułów 128K (1 z 2 modułów 1M po przelutowaniu zworek ABC).&lt;br /&gt;
&lt;br /&gt;
== 4MB ==&lt;br /&gt;
&lt;br /&gt;
Rozszerzenie cartridge-a 1MB o dodatkowe 3MB.&lt;br /&gt;
&lt;br /&gt;
Dodatkowe przyciski D i 2/4M na obudowie w kooperacji z A, B i C pozwalają na wybór 1 z 32 modułów 128K (1 z 4 modułów 1M po przelutowaniu zworek ABC).&lt;br /&gt;
&lt;br /&gt;
==Programowanie==&lt;br /&gt;
Rejestr sterujący układu znajduje się pod adresem $D500 (aczkolwiek ze względu na uproszczony dekoder adresów jest on powtórzony na całej stronie $D5).&lt;br /&gt;
&lt;br /&gt;
- bit 0: włącza moduł w obszarze $A000 - $BFFF;&lt;br /&gt;
w trybie RO (odczytu): 0 włączony, 1 wyłączony a&lt;br /&gt;
w trybie RW (zapisu): 1 włączony, 0 wyłączony&lt;br /&gt;
&lt;br /&gt;
- bit 1: włącza moduł w obszarze $8000 - $9FFF; 1 włączony, 0 wyłączony&lt;br /&gt;
&lt;br /&gt;
- bit 2: ustawiony blokuje rejestr do momentu wyłączenia komputera (w module 64/128K/2x128K), przełącza bank pamięci w module 256K i w zmodyfikowanych 1M, 2M i 4M, w fabrycznych wersjach zwraca stan przycisku A&lt;br /&gt;
&lt;br /&gt;
- bit 3: przełącza bank pamięci w module 64K&lt;br /&gt;
&lt;br /&gt;
- bit 4: przełącza bank pamięci w module 64K&lt;br /&gt;
&lt;br /&gt;
- bit 5: przełącza bank pamięci w module 128K&lt;br /&gt;
&lt;br /&gt;
- bit 6: przełącza bank pamięci w zmodyfikowanym module 1/2/4M, w fabrycznym zwraca stan przycisku B&lt;br /&gt;
&lt;br /&gt;
- bit 7: przełącza bank pamięci w zmodyfikowanym module 1/2/4M, w fabrycznym zwraca stan przycisku C&lt;br /&gt;
&lt;br /&gt;
W cartridge-ach 64K i 128K rejestr był przeznaczony tylko do zapisu. W pierwszych wersjach Double Ram-Cart 2x128/256K i Ram-Cart 1M od Zenona początkowo również tak było, choć w późniejszych egzemplarzach został udostępniony również do odczytu, a dodatkowo Zenon zmodyfikował konstrukcję i wykorzystał pełny dekoder adresów (rejestr sterujący dostępny jest wtedy tylko pod adresem $D500).&lt;br /&gt;
&lt;br /&gt;
== 8MB ==&lt;br /&gt;
&lt;br /&gt;
W przygotowaniu&lt;br /&gt;
&lt;br /&gt;
== Bibliografia ==&lt;br /&gt;
&lt;br /&gt;
*[[KMK|Konrad Kokoszkiewicz]], &amp;quot;RAM-CARTRIDGE dla Atari XL/XE&amp;quot;, [http://atarionline.pl/biblioteka/czasopisma/Bajtek/Bajtek_1992_11.djvu Bajtek 11/1992] (w [[Atarionline.pl]]), s. 12-13&lt;br /&gt;
&lt;br /&gt;
== Schematy ==&lt;br /&gt;
&lt;br /&gt;
* [[:Grafika:RAMCART.png|Schemat wersji 64k]]&lt;br /&gt;
* [[:Grafika:RAMCART64v2.png|Schemat wersji 64k - wersja druga]]&lt;br /&gt;
* [[:Grafika:RAMCART128.png|Schemat wersji 128k - wersja oryginalna]]&lt;br /&gt;
* [[:Grafika:RAMCART128ZENON.png|Schemat wersji 128k - wersja zmodyfikowana, autorstwa Zenona/Dial]]&lt;br /&gt;
* [[:Grafika:RAMCART128kv2.png|Schemat wersji 128k - wersja druga]]&lt;br /&gt;
* [[:Grafika:DOUBLE.png|Schemat wersji 2x128k/256k - Double Ram-Cart]]&lt;br /&gt;
&lt;br /&gt;
== Odnośniki zewnętrzne ==&lt;br /&gt;
&lt;br /&gt;
* RAM-CART Handler - [[Tajemnice Atari|TA]] [http://tajemnice.atari8.info/10_93/10_93.html 10/93] - instaluje dodatkowy dysk używający Ram-Carta&lt;br /&gt;
* [http://web.archive.org/web/20100720185313/http://www.serious-dial.atari.pl/softdial.html Dial Group - oprogramowanie]&lt;br /&gt;
* [http://web.archive.org/web/20090209232906/http://serious-dial.atari.pl/artykuly/dblrc.html Double Ram-Cart - opis oprogramowania]&lt;br /&gt;
* [http://web.archive.org/web/20100804024148/http://www.serious-dial.atari.pl/zzone/pserious.html Artykuły w SERIOUS#8,#9,#10 i #11] dotyczące różnych modyfikacji Ram-Carta&lt;br /&gt;
&lt;br /&gt;
== Zobacz też ==&lt;br /&gt;
&lt;br /&gt;
* [[SiDiCar]]&lt;br /&gt;
* [http://raster.atariportal.cz/hw/ramcart/ramcart.htm S/XEGS RAMCART 128KB]&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Ram-Cart&amp;diff=38337</id>
		<title>Ram-Cart</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Ram-Cart&amp;diff=38337"/>
		<updated>2021-01-09T17:28:03Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Poprawa nazwy Unnering Masters, dodanie autorów&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{grafr|Ramcart.jpg}}&lt;br /&gt;
&lt;br /&gt;
Rozszerzenie pamięci [[RAM]] do Atari [[XL]]/[[XE]] występujące w formie [[cartridge]]&#039;a, produkowane przez łódzki zakład [[Unnering Masters]] a dokładnie Piotra Janiszowskiego, który był twórcą i początkowym wykonawcą. W późniejszym czasie dołączył Przemysław &amp;quot;GALTRON&amp;quot; Galanciak.&lt;br /&gt;
&lt;br /&gt;
Pamięć jest podtrzymywana bateryjnie.&lt;br /&gt;
&lt;br /&gt;
Pierwowzorem układu był [[SiDiCar]].&lt;br /&gt;
&lt;br /&gt;
Obecnie układ można też spotkać w wersji z przyciskiem RESET oraz w formie &#039;&#039;&#039;Double Ram-Cart&#039;&#039;&#039;, który różni się od zwykłej wersji tym, że ma podwojoną liczbę układów pamięci - co daje już przyzwoitą pojemność - 256KB, a nawet (przy drobnych modyfikacjach) do 1MB.&lt;br /&gt;
&lt;br /&gt;
== 64KB ==&lt;br /&gt;
&lt;br /&gt;
RAM-CART 64k produkowany był w dwu wersjach różniących się zastosowaną pamięcią SRAM. Różnica polega na odmiennym sterowaniu wejściem zapisu E (/E),  stąd w wersji 2 (oznaczonej na schemacie) pojawiły sie dodatkowe bramki  logiczne 7403 typu  otwarty kolektor (OC).&lt;br /&gt;
&lt;br /&gt;
Płytka przygotowana była dla wersji 64k i 128k. W zależności od modelu dokonywano na niej modyfikacji.&lt;br /&gt;
Model 64k - tylko dwie pamięci SRAM, tylko dwa oporniki 10k, brak zwory łączącej pin 12 układu 74174 i pinami 11,12 układu 7402 oraz pinami 9, 12 układu 7403. Te cztery piny połączone są zworą do +5V.&lt;br /&gt;
&lt;br /&gt;
== 128KB ==&lt;br /&gt;
&lt;br /&gt;
Model 128k - nalutowane dwie dodatkowe pamięci SRAM, wlutowane dwa dodatkowe oporniki 10k, wlutowana zwora łączące pin 12 układu 74174 z pinami 11,12 układu 7402 oraz pinami 9, 12 układu 7403. Wejścia /CS dodatkowych pamięci połączone są odpowiednio z pinami 3, 6 układu 7403 (patrz schemat RAM-CART 128k wersja 2)&lt;br /&gt;
&lt;br /&gt;
RAM-CART 128k produkowany był w dwu wersjach różniących się zastosowaną pamięcią SRAM. Różnica polega na odmiennym sterowaniu wejściem zapisu E (/E),  stąd w wersji 2 (oznaczonej na schemacie) pojawiły sie dodatkowe bramki  logiczne 7403 typu  otwarty kolektor (OC).&lt;br /&gt;
&lt;br /&gt;
== Double Ram-Cart 2x128KB / 256KB ==&lt;br /&gt;
&lt;br /&gt;
Dodatkowy przycisk P1 pozwala na wybór jednego z dwóch trybów pracy:&lt;br /&gt;
&lt;br /&gt;
* 2x128K - wtedy cartridge zachowuje się jak dwa oddzielne moduły 128K&lt;br /&gt;
* 256K - cartridge zawiera 256K pamięci a bit 2 w rejestrze konfiguracyjnym służy do wyboru numeru banku&lt;br /&gt;
&lt;br /&gt;
Dodatkowy przycisk P2 pozwala przełączać się między modułami 128KB w obydwu trybach pracy (!).&lt;br /&gt;
&lt;br /&gt;
== 1MB ==&lt;br /&gt;
&lt;br /&gt;
Cartridge powstały na bazie wersji 128KB.&lt;br /&gt;
&lt;br /&gt;
Z obudowy zniknęły przyciski P1 i P2, za to pojawiły się przyciski A, B i C pozwalające na wybór 1 z 8 modułów 128K.&lt;br /&gt;
&lt;br /&gt;
W firmowej wersji cartridge-a bity 2, 6 i 7 służą do odczytu stanu przycisków A, B i C. Po rozkręceniu obudowy można zalutować zworki dzięki czemu przyciski A, B i C tracą swoją funkcję, a bity te służą do wybierania banków w pełnym obszarze 1MB. &lt;br /&gt;
&lt;br /&gt;
== 2MB ==&lt;br /&gt;
&lt;br /&gt;
Rozszerzenie cartridge-a 1MB o dodatkowy 1MB.&lt;br /&gt;
&lt;br /&gt;
Dodatkowy przycisk 1/2M na obudowie w kooperacji z A, B i C pozwala wybrać 1 z 16 modułów 128K (1 z 2 modułów 1M po przelutowaniu zworek ABC).&lt;br /&gt;
&lt;br /&gt;
== 4MB ==&lt;br /&gt;
&lt;br /&gt;
Rozszerzenie cartridge-a 1MB o dodatkowe 3MB.&lt;br /&gt;
&lt;br /&gt;
Dodatkowe przyciski D i 2/4M na obudowie w kooperacji z A, B i C pozwalają na wybór 1 z 32 modułów 128K (1 z 4 modułów 1M po przelutowaniu zworek ABC).&lt;br /&gt;
&lt;br /&gt;
==Programowanie==&lt;br /&gt;
Rejestr sterujący układu znajduje się pod adresem $D500 (aczkolwiek ze względu na uproszczony dekoder adresów jest on powtórzony na całej stronie $D5).&lt;br /&gt;
&lt;br /&gt;
- bit 0: włącza moduł w obszarze $A000 - $BFFF;&lt;br /&gt;
w trybie RO (odczytu): 0 włączony, 1 wyłączony a&lt;br /&gt;
w trybie RW (zapisu): 1 włączony, 0 wyłączony&lt;br /&gt;
&lt;br /&gt;
- bit 1: włącza moduł w obszarze $8000 - $9FFF; 1 włączony, 0 wyłączony&lt;br /&gt;
&lt;br /&gt;
- bit 2: ustawiony blokuje rejestr do momentu wyłączenia komputera (w module 64/128K/2x128K), przełącza bank pamięci w module 256K i w zmodyfikowanych 1M, 2M i 4M, w fabrycznych wersjach zwraca stan przycisku A&lt;br /&gt;
&lt;br /&gt;
- bit 3: przełącza bank pamięci w module 64K&lt;br /&gt;
&lt;br /&gt;
- bit 4: przełącza bank pamięci w module 64K&lt;br /&gt;
&lt;br /&gt;
- bit 5: przełącza bank pamięci w module 128K&lt;br /&gt;
&lt;br /&gt;
- bit 6: przełącza bank pamięci w zmodyfikowanym module 1/2/4M, w fabrycznym zwraca stan przycisku B&lt;br /&gt;
&lt;br /&gt;
- bit 7: przełącza bank pamięci w zmodyfikowanym module 1/2/4M, w fabrycznym zwraca stan przycisku C&lt;br /&gt;
&lt;br /&gt;
W cartridge-ach 64K i 128K rejestr był przeznaczony tylko do zapisu. W pierwszych wersjach Double Ram-Cart 2x128/256K i Ram-Cart 1M od Zenona początkowo również tak było, choć w późniejszych egzemplarzach został udostępniony również do odczytu, a dodatkowo Zenon zmodyfikował konstrukcję i wykorzystał pełny dekoder adresów (rejestr sterujący dostępny jest wtedy tylko pod adresem $D500).&lt;br /&gt;
&lt;br /&gt;
== Bibliografia ==&lt;br /&gt;
&lt;br /&gt;
*[[KMK|Konrad Kokoszkiewicz]], &amp;quot;RAM-CARTRIDGE dla Atari XL/XE&amp;quot;, [http://atarionline.pl/biblioteka/czasopisma/Bajtek/Bajtek_1992_11.djvu Bajtek 11/1992] (w [[Atarionline.pl]]), s. 12-13&lt;br /&gt;
&lt;br /&gt;
== Schematy ==&lt;br /&gt;
&lt;br /&gt;
* [[:Grafika:RAMCART.png|Schemat wersji 64k]]&lt;br /&gt;
* [[:Grafika:RAMCART64v2.png|Schemat wersji 64k - wersja druga]]&lt;br /&gt;
* [[:Grafika:RAMCART128.png|Schemat wersji 128k - wersja oryginalna]]&lt;br /&gt;
* [[:Grafika:RAMCART128ZENON.png|Schemat wersji 128k - wersja zmodyfikowana, autorstwa Zenona/Dial]]&lt;br /&gt;
* [[:Grafika:RAMCART128kv2.png|Schemat wersji 128k - wersja druga]]&lt;br /&gt;
* [[:Grafika:DOUBLE.png|Schemat wersji 2x128k/256k - Double Ram-Cart]]&lt;br /&gt;
&lt;br /&gt;
== Odnośniki zewnętrzne ==&lt;br /&gt;
&lt;br /&gt;
* RAM-CART Handler - [[Tajemnice Atari|TA]] [http://tajemnice.atari8.info/10_93/10_93.html 10/93] - instaluje dodatkowy dysk używający Ram-Carta&lt;br /&gt;
* [http://web.archive.org/web/20100720185313/http://www.serious-dial.atari.pl/softdial.html Dial Group - oprogramowanie]&lt;br /&gt;
* [http://web.archive.org/web/20090209232906/http://serious-dial.atari.pl/artykuly/dblrc.html Double Ram-Cart - opis oprogramowania]&lt;br /&gt;
* [http://web.archive.org/web/20100804024148/http://www.serious-dial.atari.pl/zzone/pserious.html Artykuły w SERIOUS#8,#9,#10 i #11] dotyczące różnych modyfikacji Ram-Carta&lt;br /&gt;
&lt;br /&gt;
== Zobacz też ==&lt;br /&gt;
&lt;br /&gt;
* [[SiDiCar]]&lt;br /&gt;
* [http://raster.atariportal.cz/hw/ramcart/ramcart.htm S/XEGS RAMCART 128KB]&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=QMEG_OS&amp;diff=37995</id>
		<title>QMEG OS</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=QMEG_OS&amp;diff=37995"/>
		<updated>2020-01-28T18:46:30Z</updated>

		<summary type="html">&lt;p&gt;Pajero: + Odnośnik do żródeł kodu QMEG 4.04&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{SDP}}&lt;br /&gt;
{{OS}}&lt;br /&gt;
[[grafika:Qmeg_404.png]]&lt;br /&gt;
&lt;br /&gt;
Alternatywny system operacyjny dla atari stworzony przez [[Stefan Dorndorf|Stefana Dorndorfa]]. Cechuje go natywna obsługa [[Ultra Speed]] oraz obsługa dodatkowego układu [[PIA]] działającego jako port w standardzie Centronics. Dostępnych jest kilka wersji mniej lub bardziej zmodyfikowanych.&lt;br /&gt;
&lt;br /&gt;
Poniżej znajduje się opis ostatniej istniejącej wersji systemu, napisany przez [[Jurgi]]ego w magazynie [[Syzygy]].&lt;br /&gt;
&lt;br /&gt;
== Qmeg+ OS ver. 4.04 - instrukcja obsługi ==&lt;br /&gt;
&lt;br /&gt;
===Wstęp===&lt;br /&gt;
Qmeg &amp;quot;+&amp;quot; to nowa wersja (v. 4) znanego systemu operacyjnego na małe Atari. Qmeg jest systemem wysoce kompatybilnym ze standardowym systemem Atari, a oferuje wiele przydatnych i wygodnych opcji. Większość funkcji jest identyczna, jak w starszej jego wersji - v. 3. Proszę przy tym zauważyć, że wszytkie wersje sygnowane przez [[Gumi]]ego/[[Tight]] są nadal wersją v. 3 (z niewielkimi przeróbkami), nawet, jeśli wyświetlają napis &amp;quot;version 4.x&amp;quot;! Autorem Qmega jest Niemiec, Stefan Dorndorf.&lt;br /&gt;
&lt;br /&gt;
Qmeg znajduje się na 16 KB EPROM-ie, który zastępuje standardowy ROM. Przydatną rzeczą jest przełącznik systemów - zawsze istnieje możliwość, że źle napisany program nie pójdzie ze zmodyfikowanym systemem.&lt;br /&gt;
&lt;br /&gt;
Ja system ten dostałem z sieci, bez oryginalnej instrukcji. Wszystkie zawarte tu informacje pochodzą z moich własnych doświadczeń (kilka też z krótkiego opisu w magazynie [[Serious]]). Z pewnością instrukcja ta nie jest kompletna, dlatego osoby, które mają na temat tego systemu jakieś informacje bardzo proszę o info! Pisząc ten artykuł założyłem, że czytelnik ma już jakieś pojęcie o Qmegu v. 3.&lt;br /&gt;
&lt;br /&gt;
===Czego nowy Qmeg nie ma===&lt;br /&gt;
&lt;br /&gt;
*Brak pełnego handlera magnetofonu (C:). Zastępuje go Cas-simulator (tylko odczyt, nie można bootować z kasety).&lt;br /&gt;
*Brak międzynarodowego zestawu znaków (wszystkie próby odwołania do niego (poke 756,204) będą przez system ignorowane - przywracany będzie zestaw standardowy.&lt;br /&gt;
*Brak self-testu.&lt;br /&gt;
&lt;br /&gt;
====Czego brak w porównaniu do wersji 3====&lt;br /&gt;
&lt;br /&gt;
* Brak ramdysku C (nie ma możliwości wystartowania [[DOS]]a przez Control + Caps w menu).&lt;br /&gt;
* Nie ma mrugającego kursora.&lt;br /&gt;
* Brak ochrony ramdysku przez zapisem (P w menu).&lt;br /&gt;
* Brak możliwości skoku pod wektor użytkownika poprzez kombinację Control + 8.&lt;br /&gt;
* Prawdopodobnie nie ma własnych procedur dla drukarki (dodatkowego [[PIA]]).&lt;br /&gt;
* Nie współpracuje z [[Tight Tools Packed]].&lt;br /&gt;
&lt;br /&gt;
===Co nowy Qmeg ma w porównaniu z v. 3===&lt;br /&gt;
&lt;br /&gt;
* Ustawienia dla każdej stacji 1-8 (a nie tylko 1-4 i 8).&lt;br /&gt;
* Automatyczne rozpoznawanie rodzaju dopalacza w stacji (rozpoznaje też większą ich ilość).&lt;br /&gt;
* Możliwość bootowania z każdej stacji 1-8.&lt;br /&gt;
* Klawisze funkcyjne a&#039;la [[1200XL]].&lt;br /&gt;
* Klawisze funkcyjne do konfiguracji stacji 1.&lt;br /&gt;
* Przełącznik resetu ciepły/zimny.&lt;br /&gt;
* Loader Qmega w menu ładuje i uruchamia również programy w [[BASIC]]u.&lt;br /&gt;
* Loader rozpoznaje gęstości 360 kB i 720 kB w formacie [[MyDOS]]a, oraz jego podkatalogi.&lt;br /&gt;
* Umożliwia ochronę przerwań w obszarze $4000-$7fff podczas operacji i/o na ramdysku.&lt;br /&gt;
* Możliwość wyłączenia wszystkich funkcji Qmega (poza kombinacjami z Reset oraz mini-freezerem).&lt;br /&gt;
* Kombinacja Select + Reset przejmuje kontrolę nad każdym kartridżem.&lt;br /&gt;
* Mini-freezer, freezowanie na dodatkową pamięć.&lt;br /&gt;
* Mini-freezer dla poków.&lt;br /&gt;
* MLM zawiera edytor sektorowy, można też przeglądać pamięć pod [[ROM]]em i XMS.&lt;br /&gt;
&lt;br /&gt;
Nowy Qmeg zawiera również (w przeciwieństwie do starego) procedury obsługi &amp;quot;[[Nowe urządzenia|New Devices]]&amp;quot; - urządzeń podłączanych do szyny równoległej, więc działają z nim np. interfejsy dysku twardego, czy też stacje [[Karin Maxi]].&lt;br /&gt;
&lt;br /&gt;
===Wygląd nowego Qmega===&lt;br /&gt;
&lt;br /&gt;
Bootując kompa z wciśniętym klawiszem Select ujrzymy prawdopodobnie coś takiego:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    Qmeg+OS 4.04 (c) &#039;97 S. Dorndorf&lt;br /&gt;
           Q M E G   M E N U&lt;br /&gt;
------------------------------------------&lt;br /&gt;
Cold | Drive 1 2 3 4 5 6 7 8 X Y | EDI KEY&lt;br /&gt;
Ram  | Mode  F F F F F X Y Y S S | G25 VBS&lt;br /&gt;
------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zacznijmy od lewej części ekranu.&lt;br /&gt;
&lt;br /&gt;
Słowo Cold informuje, że po reset nastąpi zimny start systemu + boot. Kiedy w tym miejscu jest słowo Warm - nastąpi jedynie ciepły reset.&lt;br /&gt;
&lt;br /&gt;
Niżej widnieje status obszaru $8000-$bfff. &#039;Ram&#039; oznacza, że jest tam włączony RAM, &#039;Bas&#039; oznacza włączony BASIC, &#039;Car&#039; - włożony do gniazda zewnętrzny kartridż. Klawisze:&lt;br /&gt;
* Tab - przełącza reset Cold/Warm (zimny/ciepły).&lt;br /&gt;
* A - włącza RAM w obszar $8000-$bfff.&lt;br /&gt;
* B - włącza BASIC.&lt;br /&gt;
* C - włącza zewnętrzny kartridż.&lt;br /&gt;
* Start + A - włącza RAM i uruchamia DOSa, jeśli jest w pamięci.&lt;br /&gt;
* Start + B - włącza i uruchamia Basic pod warunkiem że jest w pamięci DOS, lub program w BASICu. Nie można niestety (?) w ten sposób uruchomić samego BASICa. Jeśli w pamięci jest program w BASICu, to zostanie uruchomiony automatycznie.&lt;br /&gt;
* Start + C - uruchamia kartridż.&lt;br /&gt;
&lt;br /&gt;
====Środek menu - operacje I/O====&lt;br /&gt;
&lt;br /&gt;
Widać tu konfigurację wszystkich stacji, oraz obu ramdysków. Klawiszologia:&lt;br /&gt;
* Space , + , * - poruszanie kursorem - wybór napędu 1-8 do skonfigurowania.&lt;br /&gt;
* 1 - 8 - bezpośredni wybór napędu.&lt;br /&gt;
* N - ustawia stację normal dla wybranego napędu.&lt;br /&gt;
* F - ustawia stację z turbo. Rodzaj turbo jest rozpoznawany automatycznie. Qmeg obsługuje następujące standardy (i zgodne z nimi):&lt;br /&gt;
* Speedy (Ultra Speed),&lt;br /&gt;
* [[Happy Warp]] (Warp i Ultra Speed),&lt;br /&gt;
* 1050 Turbo (Turbo Drive),&lt;br /&gt;
* US-Doubler (Ultra Speed),&lt;br /&gt;
* [[XF551]] (High Speed).&lt;br /&gt;
&lt;br /&gt;
Stacje z rozszerzeniem [[TOMS Multi Drive]] będą pracować w Ultra Speed. Jeśli stacja nie obsługuje żadnego z tych systemów, wtedy Qmeg przełączy jej ustawienie na normal samoczynnie podczas następnego i/o, nie potrzeba więc już przełączać ręcznie.&lt;br /&gt;
&lt;br /&gt;
* X - ustawia ramdysk X dla wybranej stacji.&lt;br /&gt;
* Y - ustawia ramdysk Y dla wybranej stacji.&lt;br /&gt;
&lt;br /&gt;
Jeśli ustawi się ramdisk dla napędu 1, to można z niego bootować.&lt;br /&gt;
&lt;br /&gt;
* Shift + 1 - 8 - pozwala wybrać z której stacji chcemy bootować. Wybrana stacja jest podmieniana ze stacją numer 1 i jako 1 widziana.&lt;br /&gt;
* S - ustawia oba ramdyski (X i Y) na gęstość single (oznaczenie: &amp;quot;S S&amp;quot;).&lt;br /&gt;
* M - ustawia ramdysk X na gęstość medium, zaś ramdysk Y na niepełny single (oznaczenie: &amp;quot;M E&amp;quot;).&lt;br /&gt;
* D - ustawia ramdysk X na gęstość double, ramdysku Y nie ma (oznaczenie: &amp;quot;D -&amp;quot;).&lt;br /&gt;
* R - kopiuje zaznaczony napęd do ramdysku X.&lt;br /&gt;
* W - kopiuje ramdysk X do zaznaczonego napędu.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Po wybraniu R lub W pojawi się napis Read lub Write i numer wybranej do odczytu/zapisu stacji. Należy wówczas nacisnąć:&lt;br /&gt;
&lt;br /&gt;
* Start - aby sformatować dysk docelowy (napęd lub ramdysk) przed rozpoczęciem kopiowania.&lt;br /&gt;
* Select - aby skopiować bez formatowania.&lt;br /&gt;
&lt;br /&gt;
Jeśli wystąpi błąd i/o pojawi się komunikat z numerem błędu i numer sektora, w którym pojawił się rzeczony błąd (oba w hex). Możemy wtedy wybrać opcje:&lt;br /&gt;
&lt;br /&gt;
* Start - ponów próbę odczytu/zapisu sektora.&lt;br /&gt;
* Select - pomiń sektor.&lt;br /&gt;
* Option - przerwij kopiowanie.&lt;br /&gt;
&lt;br /&gt;
Zawartość kopiowanego sektora pokazywana jest na ekranie (w kodach ekranowych). Opcji R/W można używać jako kopiera, lub aby zabootować program z ramdysku. Można też kopiować pomiędzy ramdyskami.&lt;br /&gt;
&lt;br /&gt;
* Shift + R - wczytanie zafreezowanego programu z dysku/ramdysku.&lt;br /&gt;
* Shift + W - nagranie zafreezowanego programu na dysku/ramdysku.&lt;br /&gt;
&lt;br /&gt;
W obu powyższych opcjach postępujemy identycznie, jak przy R/W. Przy komunikacie Read/Write pojawia się litera &#039;F&#039;.&lt;br /&gt;
&lt;br /&gt;
* O - W przypadku napędów Happy Warp i Speedy - wyłączenie szybkiej transmisji (tryb slow). Ten sam klawisz w kombinacji z Shift włącza tryb &amp;quot;absolute slow&amp;quot;, czyli blokadę rozszerzeń stacji działającą aż do jej fizycznego zresetowania.&lt;br /&gt;
* I - Funkcja odwrotna do O. Powoduje zainicjiowanie stacji Happy Warp lub Speedy i powrót do szybkiej transmisji, nie wychodzi jednak z trybu &amp;quot;absolute slow&amp;quot; - do tego potrzebna jest kombinacja Shift + I, która powoduje reset stacji odpowiadający jej wyłączeniu i ponownemu włączeniu.&lt;br /&gt;
* Ctrl + I - w stacjach Speedy powoduje wyczyszczenie wewnetrzego bufora (cache).&lt;br /&gt;
* L lub ; - dir/load. Każde kolejne naciśnięcie pokazuje następne 8 plików z katalogu zaznaczonej dyskietki. Z prawej strony podawana jest gęstość dysku. Funkcja load obsługuje również dyskietki w gęstości dwustronnej i format MyDOSa. Można także używać podkatalogów MyDOSa! Naciśnięcie klawiszy 1 - 8 spowoduje wczytanie i uruchomienie programu lub wejście do podkatalogu. Uruchamiany program maszynowy musi być w formacie Atari DOSa (dwa bajty $ff na początku). Loader wczytuje też i uruchamia programy w BASICu (jest on włączany automatycznie). Program musi być stokenizowany (nagrany instrukcją SAVE, listingi w [[ATASCII]] nagrane przez LIST nie są ładowane!). Stacja XF551 zostanie w razie potrzeby przełączona na prawidłową gęstość (po naciśnięciu L Qmeg czyta dodatkowo pojedynczy sektor z pierwszej scieżki by ustawić gęstość, można tę funkcje zablokować odczytując katalog przy pomocy ; - to jedyna różnica w działaniu tych dwóch klawiszy). Można także wczytywać programy naciskajac klawisze 1 - 8 w kombinacji z Shift. W tym wypadku nie jest zmieniany stan interpretera BASICa i nie jest czyszczona pamięć przed wczytaniem programu (przydatne przy plikach binarnych wymagających włączonego BASICa).&lt;br /&gt;
* Shift + L / ; - jak wyżej - obsługa gęstości [[QD|Quad]] z [[BiboDOS]] lub Turbo-DOS. W miejscu gęstości dysku wyśw. &#039;Q&#039;.&lt;br /&gt;
&lt;br /&gt;
====Prawa strona menu - opcje specjalne====&lt;br /&gt;
&lt;br /&gt;
Są to opcje: KEY, EDI, G25, VBS.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;KEY&#039;&#039;&#039; - standardowo włączona, zezwala na używanie klawiszy funkcyjnych Qmega w edytorze systemowym.&lt;br /&gt;
* &#039;&#039;&#039;EDI&#039;&#039;&#039; - standardowo wyłączona. Opcja znacząca w czasie operacji i/o na ramdysku. Włączona zezwala na używanie DLI podczas i/o. Jej wyłączenie zapobiega zawieszaniu sie w czasie wczytywania programów zawierajacych np. czołówke (w trakcie wczytywania) wykorzystująca przerwania DLI. Jeśli procedura obsługująca te przerwania bedzie umieszczona przypadkowo w obszarze $4000-$7fff, to w chwili dostepu do pamieci rozszerzonej moze dojść do zawieszenia systemu.&lt;br /&gt;
* &#039;&#039;&#039;G25&#039;&#039;&#039; - Powoduje, że ramdysk X (standardowo 130k pojemności) jest zgodny z ramdyskiem zakładanym przez [[DOS 2.5]] (128k pojemności).&lt;br /&gt;
* &#039;&#039;&#039;VBS&#039;&#039;&#039; - standardowo wyłączona. Opcja znacząca w czasie operacji i/o na ramdysku. Włączona powoduje synchronizowanie dostepu do ramdysków z przerwaniami [[VBL]]. Powoduje to znaczne spowolnienie wczytywania z ramdysków (50 sektorów/s). Ogranicza migotanie ekranu w czasie operacji i/o, jesli obraz umieszczony jest w obszarze $4000-$7fff. A także zabezpiecza przed zawieszeniem systemu, analogicznie jak EDI dla przerwań DLI.&lt;br /&gt;
&lt;br /&gt;
Włączenie EDI, G25 i VBS spowalnia ramdysk ok. 3 razy. Właściwe ustawienie tych opcji umożliwia jednak odpalenie niektórych programów, które bez tego nie pójdą, ponadto zwykle zapobiega &amp;quot;telepaniu&amp;quot; ekranem oraz różnym innym &amp;quot;krzakom&amp;quot; w trakcie transmisji.&lt;br /&gt;
&lt;br /&gt;
===Inne===&lt;br /&gt;
&lt;br /&gt;
* Esc - wraca do DOSu, jeśli jest on w pamięci, pod warunkiem, że przełącznik resetu jest ustalony na Warm. Jeśli jest w pozycji Cold nastąpi boot.&lt;br /&gt;
* Shift + Inverse - &amp;quot;kontrolowany&amp;quot; zimny start, to znaczy boot bez pełnego zimnego resetu (np. bez sprawdzania klawiszy Start i Option).&lt;br /&gt;
* Return - skok do Mashine Language Monitor, MLM version 2.3 obsługuje się identycznie jak wersję 2.1 w Qmegu v. 3.&lt;br /&gt;
* Bk Sp - czyści tablicę ustawień Qmega i powoduje zablokowanie jego funkcji (poza kombinacjami z klawiszem reset, przeł. Cold/Warm, mini-freezerem i MLM). Opcje specjalne są nieaktywne, w miejscu ustawień stacji i ramdysków pojawia się &#039;-&#039;. Oczywiście stacje pracują tylko w normalu, ramdysków nie ma.&lt;br /&gt;
* &amp;lt; - Przywraca funkcje Qmega i ustawia tablicę na wartości początkowe.&lt;br /&gt;
&lt;br /&gt;
====Kombinacje z klawiszem reset====&lt;br /&gt;
&lt;br /&gt;
* Reset - powoduje ciepły/zimny start, w zależności od ustawienia Qmega. Działa standardowo.&lt;br /&gt;
* Select + Reset - przejście do menu Qmega. Przejmuje kontrolę nad każdym kartridżem!&lt;br /&gt;
* Shift + Reset - zimny start.&lt;br /&gt;
* Start + Reset - zablokowanie funkcji Qmega (sprawdzany tylko przy zimnym starcie).&lt;br /&gt;
* Option + Reset - włączenie Basica (sprawdzany tylko przy zimny starcie).&lt;br /&gt;
&lt;br /&gt;
====Funkcyjne klawisze systemowe====&lt;br /&gt;
&lt;br /&gt;
Poniższe kombinacje działają w MLM, DOSie oraz w programach użytkowych, pod warunkiem że ROM nie jest odłączony, a systemowe przerwania klawiatury nie jest zablokowane.&lt;br /&gt;
&lt;br /&gt;
* Control + 4 - stuk klawisza on/off.&lt;br /&gt;
* Control + 5 - autorepetycja wolna/normalna.&lt;br /&gt;
* Control + 6 - wyłączenie ekranu. Włączenie za pomocą dowolnego klawisza. Klawisz przywracający nie jest maskowany, więc proponuję Ctrl+Shft+A.&lt;br /&gt;
* Control + 7 - kursor na lewą krawędź ekranu.&lt;br /&gt;
* Control + 8 - kursor na prawą krawędź ekranu.&lt;br /&gt;
* Control + 9 - kursor na górną krawędź ekranu.&lt;br /&gt;
* Control + 0 - kursor na dolną krawędź ekranu.&lt;br /&gt;
* Shift + Control + N - stacja #1 normal.&lt;br /&gt;
* Shift + Control + F - stacja #1 turbo.&lt;br /&gt;
* Shift + Control + / - ramdysk X jako stacja #1.&lt;br /&gt;
* Shift + Control + Inverse - ramd. Y jako st. #1.&lt;br /&gt;
&lt;br /&gt;
===Mini freezer dla &amp;quot;poke&#039;ów&amp;quot;===&lt;br /&gt;
&lt;br /&gt;
Ta funkcja działa zawsze, jeśli nie jest wyłączony ROM. Nawet, jeśli klawiatura jest zablokowana!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Control + Help&#039;&#039; - wejście do freezera. Program jest freezowany (zatrzymywany), aby niczego nie popsuć. Poke&#039;i musimy zatem wprowadzać &amp;quot;na ślepo&amp;quot;. Wprowadzamy je szestnastkowo w formacie: xxxxyy - gdzie: xxxx - adres, yy - bajt.&lt;br /&gt;
&lt;br /&gt;
* 0 - 9 , A - F - wprowadzanie poków.&lt;br /&gt;
* Bk Sp - zmazanie ostatniej cyfry.&lt;br /&gt;
* Clear - zmazanie całego wprowadzanego poka.&lt;br /&gt;
* Return - zatwierdza wprowadzonego poka.&lt;br /&gt;
* Space - wyłączenie dźwięku.&lt;br /&gt;
* Help - wyjście z freezera.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W celu uniknięcia pomyłek wyłączona jest autorepetycja klawiatury. Również dla ułatwienia i orientacji słuchowej podczas wprowadzania poke&#039;ów każda wprowadzana cyfra i funkcja jest potwierdzana krótkim piskiem. Długi pisk oznacza, że wprowadziliśmy coś niezgodnie z wymaganym formatem. Spacja poza wyłączeniem dźwięku nie robi nic innego, więc można użyć jej do oddzielenia adresu od bajtu (chociaż nie trzeba). Wyciszany jest jedynie dźwięk, inne rejestry [[POKEY]]-a nie są ruszane, aby po powrocie do programu nie psuł się dźwięk.&lt;br /&gt;
&lt;br /&gt;
===Mini-freezer, freezowanie na dodatkową pamięć===&lt;br /&gt;
&lt;br /&gt;
Aby skorzystać z tej funkcji niezbędne jest minimum 64 KB [[XMS]]-u. Aby skorzystać z freezera naciskamy (tak samo, jak kiedy chcemy wprowadzić poki) Control + Help. Program zostaje zatrzymany, a my mamy wtedy do dyspozycji klawisze:&lt;br /&gt;
* Control + S - zafreezowanie działającego programu na dodatkową pamięć (&#039;save&#039;).&lt;br /&gt;
* Control + L - załadowanie i uruchomienie zafreezowanego programu (&#039;load&#039;).&lt;br /&gt;
* Control + E - oba powyższe naraz, czyli zamiana działającego programu na ten zafreezowany (aktualny zostaje zafreezowany; &#039;exchange&#039;).&lt;br /&gt;
&lt;br /&gt;
Te funkcje wychodzą jednocześnie z mini-freezera, więc nie trzeba naciskać klawisza Help. W menu systemu możemy zafreezowany program nagrać na dysk (Shift + W), albo go odczytać (Shift + R).&lt;br /&gt;
&lt;br /&gt;
Qmeg wykorzystuje do zafreezowania programu banki używane przez ramdysk X. Przy nagrywaniu zafreezowanego programu na dysk, musi on być sformatowany w takiej samej gęstości, jak ramdysk X (lub w takiej zostanie sformatowany, zależnie od tego, czy naciśniemy Start, czy Select). To samo tyczy się nagrywania na ramdysk Y. Można jednak zmieniać format ramdysku X również wtedy, gdy mamy na nim zafreezowany program - nie powoduje to kłopotów w działaniu freezera (i opcji dyskowych), ani też tym bardziej utraty danych.&lt;br /&gt;
&lt;br /&gt;
Jeśli zatem ładując z dysku zafreezowany program nie chcemy psuć ramdysku Y, to zmieniamy format ramdysku X na taką samą gęstość, w jakiej jest nagrany dysk, wczytujemy bez formatowania ramdysku (Select zamiast Start), a po załadowaniu przywracamy poprzednie ustawienie. Ponieważ freezowany pogram zajmuje tylko 64 KB, to ramdysk Y nie zostanie uszkodzony, nawet jeśli odczytywać będziemy z dysku w double! Oczywiście pod warunkiem że ładować będziemy przez &#039;Shift+R&#039;, a nie samo &#039;R&#039; - polecenia te są bowiem do pewnego stopnia zamienne!&lt;br /&gt;
&lt;br /&gt;
Mogą wystąpić problemy przy odmrażaniu jakichś źle napisanych programów, niechlujnie (niestandardowo) używających rejestrów sprzętowych. Problemy takie mogą wystąpić również w przypadku używania przez program rejestrów sprzętowych, które są jedynie do zapisu (nie można ich odczytać). Np. dwie uruchamiane naprzemiennie (Control+E) gry używają w odmienny sposób sprite&#039;ów.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Tablica ustawień===&lt;br /&gt;
&lt;br /&gt;
Tablica ustawień Qmega zajmuje 11 bajtów. Oto niektóre z nich:&lt;br /&gt;
&lt;br /&gt;
Konfiguracja napędów zajmuje 8 bajtów. Znajduje się w tym samym miejscu, co w Qmegu v. 3 i jest z nią kompatybilna. Status &#039;F&#039; w Qmegu v. 4 odpowiada statusowi &#039;U&#039; w Qmegu v. 3 Tablica znajduje się od odresu $03f0 - jeden bajt dla każdej stacji. Dopuszczalne są następujące wartości:&lt;br /&gt;
* $00 - stacja normal (&#039;N&#039;).&lt;br /&gt;
* $01 - stacja turbo (&#039;F&#039;).&lt;br /&gt;
* $02 - ramdysk X (&#039;X&#039;).&lt;br /&gt;
* $03 - ramdysk Y (&#039;Y&#039;).&lt;br /&gt;
&lt;br /&gt;
Konfiguracja ramdysków zajmuje jeden bajt pod adresem $03ed. Nie jest kompatybilna z Qmegiem v. 3 (znajduje się w innym miejscu). Lewy nibbl oznacza format ramdysku X. Ramdysk Y jest zdeterminowany.&lt;br /&gt;
&lt;br /&gt;
* $0x - X single (Y single, &amp;quot;S S&amp;quot;)&lt;br /&gt;
* $8x - X medium (Y niepełny (64kB) single, &amp;quot;M E&amp;quot;).&lt;br /&gt;
* $2x - X double (Y - brak, &amp;quot;D -&amp;quot;).&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prawy nibbl ustala opcje specjalne w menu Qmega. Każdy bit odpowiada jednej opcji. Standardowo jest tu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
% 0 0 0 1  &lt;br /&gt;
  / | | \&lt;br /&gt;
VBS / \ KEY&lt;br /&gt;
  G25 EDI&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Banki używane przez ramdysk====&lt;br /&gt;
&lt;br /&gt;
Na komputerze z 1088 KB (Rambo) i 576 KB (Compy Shop), ramdysk double używa następujących banków:&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EF EB E7 E3&lt;br /&gt;
AF AB A7 (A3 nie jest używany)&lt;br /&gt;
6F 6B 67 63&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ponieważ rozszerzenie do 1088 kB wyczerpuje wszystkie możliwe kombinacje, więc także posiadacze innych (mniejszych) rozmiarów powinni znaleźć dane w bankach o tych numerach.&lt;br /&gt;
&lt;br /&gt;
===Na zakończenie===&lt;br /&gt;
&lt;br /&gt;
Jak już powiedziałem na początku, system ten musiałem rozpracować sam i z pewnością instrukcja ta nie jest kompletna. W szczególności ma ona następujące luki:&lt;br /&gt;
&lt;br /&gt;
* nie rozpracowałem: edytora sektorowego (powinien się znajdować w MLM), sposobu przeglądania i zmieniania pamięci XMS oraz pod ROMem,&lt;br /&gt;
* nie rozpracowałem jeszcze wszystkich bajtów tablicy ustawień.&lt;br /&gt;
&lt;br /&gt;
Być może nie znalazłem również innych jeszcze funkcji. Jeśli ktoś znajdzie jakieś nieuwzględnione przeze mnie funkcje, może rozwiać wątpliwości lub poprawić ewentualne błędy, wreszcie wszelkie komentarze, pomysły, uwagi proszę przesyłać do mnie (adres w stopce magazynu), ew. do Vaska.&lt;br /&gt;
&lt;br /&gt;
== Odnośniki zewnętrzne ==&lt;br /&gt;
* [http://atari8.info/artykul.php?art=q404ins Oryginał] artykułu [[Jurgi]]ego&lt;br /&gt;
* [http://madteam.atari8.info/index.php?prod=uzytki Kod źródłowy w formacie MADS] zdisasemblowane przez [[Pajero]]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Menu Główne]]&lt;br /&gt;
[[Kategoria:Oprogramowanie Atari 8-bit]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SONari&amp;diff=37124</id>
		<title>SONari</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SONari&amp;diff=37124"/>
		<updated>2019-01-15T20:11:01Z</updated>

		<summary type="html">&lt;p&gt;Pajero: /* Odnośniki zewnętrzne */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rozszerzenie możliwości dźwiękowych ośmiobitowego Atari o znany z [http://pl.wikipedia.org/wiki/ZX_Spectrum ZX Spectrum] lub [[ST|Atari ST]] układ [https://en.wikipedia.org/wiki/Programmable_sound_generator PSG], którego autorem jest [[Tori]].&lt;br /&gt;
&lt;br /&gt;
== Charakterystyka ==&lt;br /&gt;
Rozwiązanie bazuje na ogólnodostępnych układach TTL i przeznaczone jest do samodzielnego montażu wewnątrz komputera.&lt;br /&gt;
&lt;br /&gt;
Wersja zaprezentowana na forum Atari Area przystosowana jest do współpracy z układami [http://raven1.magix.net/sonari/Microchip%20AY-3-8910.pdf AY-3-8910] oraz [http://raven1.magix.net/sonari/ym2149.pdf YM2149].&lt;br /&gt;
&lt;br /&gt;
PSG taktowany jest [[NTSC vs PAL|częstotliwością bazową Atari]].&lt;br /&gt;
&lt;br /&gt;
== Mapa pamięci ==&lt;br /&gt;
&lt;br /&gt;
* $d500 - odczyt: dana z rejestru, zapis: wybór rejestru&lt;br /&gt;
* $d501 - odczyt: indeks rejestru, zapis: zapis danej do rejestru&lt;br /&gt;
&lt;br /&gt;
== Zobacz też ==&lt;br /&gt;
* [[Evie]]&lt;br /&gt;
&lt;br /&gt;
== Odnośniki zewnętrzne ==&lt;br /&gt;
* [http://www.atari.org.pl/forum/viewtopic.php?id=13250 Dyskusja] na forum [[Atari Area]]&lt;br /&gt;
* [http://www.atari.org.pl/forum/viewtopic.php?pid=246342#p246342 Płytka PCB + spis elementów projektu] by Mq na AArea&lt;br /&gt;
* [http://raven1.magix.net/sonari/sonari.html Strona projektu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Atari 8-bit]]&lt;br /&gt;
[[Kategoria:Rozszerzenia]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SONari&amp;diff=37123</id>
		<title>SONari</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SONari&amp;diff=37123"/>
		<updated>2019-01-15T20:07:55Z</updated>

		<summary type="html">&lt;p&gt;Pajero: PCB w produkcji przez Mq&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Rozszerzenie możliwości dźwiękowych ośmiobitowego Atari o znany z [http://pl.wikipedia.org/wiki/ZX_Spectrum ZX Spectrum] lub [[ST|Atari ST]] układ [https://en.wikipedia.org/wiki/Programmable_sound_generator PSG], którego autorem jest [[Tori]].&lt;br /&gt;
&lt;br /&gt;
== Charakterystyka ==&lt;br /&gt;
Rozwiązanie bazuje na ogólnodostępnych układach TTL i przeznaczone jest do samodzielnego montażu wewnątrz komputera.&lt;br /&gt;
&lt;br /&gt;
Wersja zaprezentowana na forum Atari Area przystosowana jest do współpracy z układami [http://raven1.magix.net/sonari/Microchip%20AY-3-8910.pdf AY-3-8910] oraz [http://raven1.magix.net/sonari/ym2149.pdf YM2149].&lt;br /&gt;
&lt;br /&gt;
PSG taktowany jest [[NTSC vs PAL|częstotliwością bazową Atari]].&lt;br /&gt;
&lt;br /&gt;
== Mapa pamięci ==&lt;br /&gt;
&lt;br /&gt;
* $d500 - odczyt: dana z rejestru, zapis: wybór rejestru&lt;br /&gt;
* $d501 - odczyt: indeks rejestru, zapis: zapis danej do rejestru&lt;br /&gt;
&lt;br /&gt;
== Zobacz też ==&lt;br /&gt;
* [[Evie]]&lt;br /&gt;
&lt;br /&gt;
== Odnośniki zewnętrzne ==&lt;br /&gt;
* [http://www.atari.org.pl/forum/viewtopic.php?id=13250 Dyskusja] na forum [[Atari Area]]&lt;br /&gt;
* [http://www.atari.org.pl/forum/viewtopic.php?pid=246342#p246342 Płytka PCB + spis elementów projektu]&lt;br /&gt;
* [http://raven1.magix.net/sonari/sonari.html Strona projektu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Atari 8-bit]]&lt;br /&gt;
[[Kategoria:Rozszerzenia]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29841</id>
		<title>SIO2SD</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29841"/>
		<updated>2010-09-30T14:59:39Z</updated>

		<summary type="html">&lt;p&gt;Pajero: /* Wpis katalogu */  info&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Informacje Ogólne==&lt;br /&gt;
SIO2SD to interfejs autorstwa [[Jakub_Kruszona-Zawadzki|Jakuba Kruszony-Zawadzkiego]], pozwalający na wczytywanie gier/programów na Atari 8-bit poprzez port SIO z kart SD/MMC. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:Sio2sd.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cechy urządzenia==&lt;br /&gt;
&lt;br /&gt;
* Obsługa kart SD/MMC (formaty FAT12, FAT16 i FAT32) &lt;br /&gt;
* Obsługa plików w formatach ATR (rw), XFD (ro) i COM/XEX (ro) &lt;br /&gt;
* Wyświetlacz 16x2 pokazujący aktualnie wybrany katalog i plik ATR/XEX podmapowany pod określony numer stacji dysków.&lt;br /&gt;
* Obsługa SIO z turbo (możliwość ustawienia prędkości - [[HS Index]] od 1 do 16, standardowo 6, co odpowiada prędkości ok. 68,2 kbps, do wersji 2007.02.18 była stała prędkość 51 kbps - HS Index 10) &lt;br /&gt;
* Wszystkie gęstości z sektorami 128 B i 256 B (TOMS-owe 512 B na razie nieobsługiwane), w tym również dyski 16 MB &lt;br /&gt;
* Możliwość równoległej obsługi 8 stacji (do wersji 2007.02.08 tylko 4 stacje: D1-D4) &lt;br /&gt;
* Możliwość konfigurowania z poziomu ATARI (możliwe ładowanie programu konfiguracyjnego bezpośrednio z urządzenia, bez potrzeby nagrywania na kartę SD)&lt;br /&gt;
&lt;br /&gt;
==Wydajność==&lt;br /&gt;
&lt;br /&gt;
Prędkość zmierzona programem [[RW-Test]] pod [[SpartaDOS X]]:&lt;br /&gt;
&lt;br /&gt;
* DOS Reading: 1719,8 B/sek.&lt;br /&gt;
* DOS Writing: 5137,8 B/sek.&lt;br /&gt;
* DOS Average: 3428,8 B/sek.&lt;br /&gt;
&lt;br /&gt;
Użyto RW-Test w wersji 3.0 i karty SD Pretec Highspeed 60x.&lt;br /&gt;
&lt;br /&gt;
==Lista elementów==&lt;br /&gt;
&lt;br /&gt;
Poniżej przedstawiona jest lista elementów elektronicznych potrzebnych do budowy układu.&lt;br /&gt;
&lt;br /&gt;
    Lp  Ilość   Nazwa Elementu         Wartość          Oznaczenie elementu&lt;br /&gt;
     1     2    Rezystor                10k                 R1,R3&lt;br /&gt;
     2     1    Potencjometr            2.2k                R2&lt;br /&gt;
     3     3    Rezystor                1.8k                R4,R5,R6&lt;br /&gt;
     4     3    Rezystor                3.3k                R7,R8,R9&lt;br /&gt;
     5     1    Rezystor                27R                 R10&lt;br /&gt;
     6     3    Rezystor                220R                R11,R12,R13&lt;br /&gt;
     7     1    Kondensator tantalowy   10uF                C4&lt;br /&gt;
     8     2    Kondensator ceramiczny  22pF                C1,C2&lt;br /&gt;
     9     4    Kondensator ceramiczny  100nF               C3,C12,C10,C11&lt;br /&gt;
    10     5    Kondensator ceramiczny  22nF                C5,C6,C7,C8,C9&lt;br /&gt;
    11     1    Kwarc                   7.3728 lub 14MHz    Q1&lt;br /&gt;
    12     1    Dioda Schottkiego       BAT85               opcjonalnie&lt;br /&gt;
    13     1    Procesor ATMEGA32-16PI (lub Atmega 32L-8PU) IC1&lt;br /&gt;
    14     1    Stabilizator            3.3V                IC2&lt;br /&gt;
    15     3    Diody LED               3V                  LED1,LED2,LED3&lt;br /&gt;
    16     5    Mikrostyki                -                 S1,S2,S3,S4,S5&lt;br /&gt;
    17     1    Gniazdo SD                -                 SD&lt;br /&gt;
    18     1    Wyświetlacz 2x16 LED      -                 JP3&lt;br /&gt;
&lt;br /&gt;
==Porady dotyczące uruchomienia układu==&lt;br /&gt;
&lt;br /&gt;
* Dla kwarca 7.3728 MHz fuse procesora Atmel ustawiamy na (H:0xD1 ; L:0xFF)&lt;br /&gt;
* Dla kwarca 14.3118 MHz fuse procesora Atmel ustawiamy na (H:0xC3 ; L:0x3F) &lt;br /&gt;
* Jeżeli podczas wyboru plików ATR na wyświetlaczu pojawiają się śmieci - należy wymienić stabilizator napięcia 3.3V (na np. precyzyjny stabilizator napięcia 1.0A w obudowie TO-220)&lt;br /&gt;
* Komunikat &#039;Błąd odczytu karty SD&#039; - gdy jest włożona do slotu - przyczyną jest brak styku przy kondensatorze C12 lub stabilizatorze napięcia 3.3V. PCB jest dwustronne, dlatego zaleca się poprawić lutowanie z obu stron płytki dla tych elementów.&lt;br /&gt;
&lt;br /&gt;
==Programowanie, obsługa SIO==&lt;br /&gt;
&lt;br /&gt;
Sio2SD jest urządzeniem [[SIO]], z którym możemy się komunikować.&lt;br /&gt;
Wykorzystuje tę możliwość dedykowany przez autora Sio2SD.com, a także grupy MadTeam [[Atari Commander]] od wersji 1.7 oraz S2S.com autorstwa Truba&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Poniżej oficjalne dane zebrane przez [[Pajero]] zgodne z wersją firmware 2.5.&amp;lt;br&amp;gt;Nowsze wersje (3.0) mają o wiele większą liczbę komend, co opisane jest na &amp;lt;b&amp;gt;nowej&amp;lt;/b&amp;gt; stronie www...&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
* $300 DDEVIC = $73 &lt;br /&gt;
* $301 DUNIT  = deviceID&lt;br /&gt;
* $306 DTIMLO = $7f minimum, optymalnie $90&lt;br /&gt;
* $307 DUNUSE = $00 zawsze&lt;br /&gt;
&lt;br /&gt;
DeviceID znajduje się w pliku konfiguracji Sio2SD.com (musi być to 6.bajt programu!).&amp;lt;br&amp;gt;Wartość: 0-3. To pozwala podłączyć do 4 urządzeń do Atari jednocześnie.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 cellpadding=6&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$0302 &amp;lt;b&amp;gt;DCMND&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0303 &amp;lt;b&amp;gt;DSTATS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0304/5 &amp;lt;b&amp;gt;DBUFA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0308/9 &amp;lt;b&amp;gt;DBYT&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030A &amp;lt;b&amp;gt;DAUX1&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030B &amp;lt;b&amp;gt;DAUX2&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;$00 get status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Odczytana wartość:&amp;lt;br&amp;gt;00 = brak karty&amp;lt;br&amp;gt;01 = OK &amp;lt;br&amp;gt;02 = OK zmieniono kartę na inną&amp;lt;br&amp;gt;03 = OK zmiany w D1-D8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$01&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$01 get drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla:&amp;lt;br&amp;gt;- jednego wpisu&amp;lt;br&amp;gt;- wpisów 1-4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$36&amp;lt;br&amp;gt;$36 * Ilość wpisów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia:&amp;lt;br&amp;gt;1 - 8&amp;lt;br&amp;gt; 0 - 7&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$00&amp;lt;br&amp;gt;Ilość wpisów: 1-4&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;$02 mount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora:&amp;lt;br&amp;gt;- z jednym wpisem&amp;lt;br&amp;gt;- z wpisami 1-4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$36&amp;lt;br&amp;gt;$36 * Ilość wpisów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia:&amp;lt;br&amp;gt;1 - 8&amp;lt;br&amp;gt; 0 - 7&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$00&amp;lt;br&amp;gt;Ilość wpisów: 1-4&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;$03 unmount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia:&amp;lt;br&amp;gt;1 - 8&amp;lt;br&amp;gt; 0 - 7&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$00&amp;lt;br&amp;gt;Ilość wpisów: 1-8&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;$04 get name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla:&amp;lt;br&amp;gt;- jednego wpisu&amp;lt;br&amp;gt;- wpisów 1-4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$36&amp;lt;br&amp;gt;$36 * Ilość wpisów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$00&amp;lt;br&amp;gt;Ilość wpisów: 1-4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00 = kolejny wpis&amp;lt;br&amp;gt;01 = rewind i wczytaj kolejny wpis&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;$05 select directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą katalogu &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$06 up directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$10 lcd set&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z linią do wyświetlenia&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$28&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00 = linia górna&amp;lt;br&amp;gt;$01 = linia dolna&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uwagi:&lt;br /&gt;
* nie wolno przekraczać założenia: 8 &amp;gt;= Numer urządzenia + Ilość wpisów &lt;br /&gt;
* obowiązuje zawsze sprawdzenie czy komenda została poprawnie wykonana. &lt;br /&gt;
&lt;br /&gt;
Czyli mamy możliwość sprawdzenia czy urządzenie jest włączone do gniazda SIO - get status; możemy odczytać co jest podpięte do jednego z ośmiu urządzeń - get drive; zmienić to podpięcie - mount drive; lub je wyłączyć (tzw. --OFF-- ) - unmount drive; odczytać zawartość bieżącego katalogu - get name; wejść do wybranego katalogu - select directory; przejść o katalog wyżej (do nadrzędnego) - up directory; a także wysłać tekst na wyświetlacz.&lt;br /&gt;
&lt;br /&gt;
Niestety w tej wersji urządzenia nie można ustawiać dowolnie ścieżki katalogów (nalezy po nich &amp;quot;skakać&amp;quot; krokowo), odczytywać dowolnego wpisu z katalogu - zawsze przekazywany jest wpis po wpisie.&lt;br /&gt;
Największym bólem jest brak możliwości zapisywania do samej karty. Czyli nie można założyć nowego [[ATR]]-a.&lt;br /&gt;
&lt;br /&gt;
===Wpis katalogu===&lt;br /&gt;
&lt;br /&gt;
Komunikacja odbywa się blokami po $36 bajtów. Zawartość:&lt;br /&gt;
* $00-$26 = nazwa wpisu do katalogu wypełniona do końca spacjami&lt;br /&gt;
* $27 = status wpisu: 01 katalog, 02 atr, 03 xfd, 04 inny &lt;br /&gt;
* $2c-$2f = file size (0=dla katalogu)&lt;br /&gt;
* reszta zawiera dane dot.położenia wpisu na karcie SD.&lt;br /&gt;
Jeśli pierwszy bajt równy 0 = koniec katalogu, potem znowu wszystko od początku.&lt;br /&gt;
&lt;br /&gt;
Uwaga: dane $28-$35 mają inną organizacje we wersji wsadu od 3.0 włącznie!&lt;br /&gt;
&lt;br /&gt;
==Programowanie układu ATMEL==&lt;br /&gt;
&lt;br /&gt;
Aby zmienić firmware wystarczy: wgrać program binarny SIO2SD.BIN o długości 30720 B do głównego katalogu karty SD; odpalić Sio2SD z wciśniętym K4 by wejść do trybu konfiguracji; a tam w menu wcisnąć Shift+K3. Ale przy błędzie takiej operacji lub jeśli rozprogramuje się układ Atmel możemy tylko ratować się programując procesor.&lt;br /&gt;
Do tego celu może posłużyć dowolny programator (np. [http://allegro.pl/listing.php/search?string=stk200*&amp;amp;from_showcat=1&amp;amp;category=68366&amp;amp;description=1&amp;amp;from_showcat=1&amp;amp;order=p&amp;amp;change_view=1 STK 200/300] za ~12PLN na Allegro) podłączany do portu LPT (drukarki) w PC. Za pomocą programu (np. darmowy PonyProg) szybko odratujemy Atmela. &lt;br /&gt;
Podłączamy kable programatora do złącza JP2 w płytce Sio2SD. Oznaczenia pinów - widok na PCB od strony elementów - powyżej jest Atmel: &lt;br /&gt;
&lt;br /&gt;
 RESET  CLK  MISO&lt;br /&gt;
  GND  MOSI   VCC&lt;br /&gt;
&lt;br /&gt;
Włączamy PC (wtyk D-Sub 25 wpięty już jest do LPT), podłączamy Sio2SD do Atari i je włączamy.&lt;br /&gt;
Uruchamiamy program, który wykona programowanie. Szczegóły obsługi programu dostępne są w sieci lub u sprzedawcy programatora.&lt;br /&gt;
&lt;br /&gt;
==Przydatne linki==&lt;br /&gt;
&lt;br /&gt;
Więcej informacji na [http://sio2sd.gucio.pl/ stronie] autora projektu.&lt;br /&gt;
Żródło Atari Commandera na [http://madteam.atari8.info/index.php?prod=uzytki  stronie MadTeamu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29812</id>
		<title>SIO2SD</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29812"/>
		<updated>2010-09-08T08:09:05Z</updated>

		<summary type="html">&lt;p&gt;Pajero: /* Porady dotyczące uruchomienia układu */  fuse bit&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Informacje Ogólne==&lt;br /&gt;
SIO2SD to interfejs autorstwa [[Jakub_Kruszona-Zawadzki|Jakuba Kruszony-Zawadzkiego]], pozwalający na wczytywanie gier/programów na Atari 8-bit poprzez port SIO z kart SD/MMC. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:Sio2sd.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cechy urządzenia==&lt;br /&gt;
&lt;br /&gt;
* Obsługa kart SD/MMC (formaty FAT12, FAT16 i FAT32) &lt;br /&gt;
* Obsługa plików w formatach ATR (rw), XFD (ro) i COM/XEX (ro) &lt;br /&gt;
* Wyświetlacz 16x2 pokazujący aktualnie wybrany katalog i plik ATR/XEX podmapowany pod określony numer stacji dysków.&lt;br /&gt;
* Obsługa SIO z turbo (możliwość ustawienia prędkości - [[HS Index]] od 1 do 16, standardowo 6, co odpowiada prędkości ok. 68,2 kbps, do wersji 2007.02.18 była stała prędkość 51 kbps - HS Index 10) &lt;br /&gt;
* Wszystkie gęstości z sektorami 128 B i 256 B (TOMS-owe 512 B na razie nieobsługiwane), w tym również dyski 16 MB &lt;br /&gt;
* Możliwość równoległej obsługi 8 stacji (do wersji 2007.02.08 tylko 4 stacje: D1-D4) &lt;br /&gt;
* Możliwość konfigurowania z poziomu ATARI (możliwe ładowanie programu konfiguracyjnego bezpośrednio z urządzenia, bez potrzeby nagrywania na kartę SD)&lt;br /&gt;
&lt;br /&gt;
==Wydajność==&lt;br /&gt;
&lt;br /&gt;
Prędkość zmierzona programem [[RW-Test]] pod [[SpartaDOS X]]:&lt;br /&gt;
&lt;br /&gt;
* DOS Reading: 1719,8 B/sek.&lt;br /&gt;
* DOS Writing: 5137,8 B/sek.&lt;br /&gt;
* DOS Average: 3428,8 B/sek.&lt;br /&gt;
&lt;br /&gt;
Użyto RW-Test w wersji 3.0 i karty SD Pretec Highspeed 60x.&lt;br /&gt;
&lt;br /&gt;
==Lista elementów==&lt;br /&gt;
&lt;br /&gt;
Poniżej przedstawiona jest lista elementów elektronicznych potrzebnych do budowy układu.&lt;br /&gt;
&lt;br /&gt;
    Lp  Ilość   Nazwa Elementu         Wartość          Oznaczenie elementu&lt;br /&gt;
     1     2    Rezystor                10k                 R1,R3&lt;br /&gt;
     2     1    Potencjometr            2.2k                R2&lt;br /&gt;
     3     3    Rezystor                1.8k                R4,R5,R6&lt;br /&gt;
     4     3    Rezystor                3.3k                R7,R8,R9&lt;br /&gt;
     5     1    Rezystor                27R                 R10&lt;br /&gt;
     6     3    Rezystor                220R                R11,R12,R13&lt;br /&gt;
     7     1    Kondensator tantalowy   10uF                C4&lt;br /&gt;
     8     2    Kondensator ceramiczny  22pF                C1,C2&lt;br /&gt;
     9     4    Kondensator ceramiczny  100nF               C3,C12,C10,C11&lt;br /&gt;
    10     5    Kondensator ceramiczny  22nF                C5,C6,C7,C8,C9&lt;br /&gt;
    11     1    Kwarc                   7.3728 lub 14MHz    Q1&lt;br /&gt;
    12     1    Dioda Schottkiego       BAT85               opcjonalnie&lt;br /&gt;
    13     1    Procesor ATMEGA32-16PI (lub Atmega 32L-8PU) IC1&lt;br /&gt;
    14     1    Stabilizator            3.3V                IC2&lt;br /&gt;
    15     3    Diody LED               3V                  LED1,LED2,LED3&lt;br /&gt;
    16     5    Mikrostyki                -                 S1,S2,S3,S4,S5&lt;br /&gt;
    17     1    Gniazdo SD                -                 SD&lt;br /&gt;
    18     1    Wyświetlacz 2x16 LED      -                 JP3&lt;br /&gt;
&lt;br /&gt;
==Porady dotyczące uruchomienia układu==&lt;br /&gt;
&lt;br /&gt;
* Dla kwarca 7.3728 MHz fuse procesora Atmel ustawiamy na (H:0xD1 ; L:0xFF)&lt;br /&gt;
* Dla kwarca 14.3118 MHz fuse procesora Atmel ustawiamy na (H:0xC3 ; L:0x3F) &lt;br /&gt;
* Jeżeli podczas wyboru plików ATR na wyświetlaczu pojawiają się śmieci - należy wymienić stabilizator napięcia 3.3V (na np. precyzyjny stabilizator napięcia 1.0A w obudowie TO-220)&lt;br /&gt;
* Komunikat &#039;Błąd odczytu karty SD&#039; - gdy jest włożona do slotu - przyczyną jest brak styku przy kondensatorze C12 lub stabilizatorze napięcia 3.3V. PCB jest dwustronne, dlatego zaleca się poprawić lutowanie z obu stron płytki dla tych elementów.&lt;br /&gt;
&lt;br /&gt;
==Programowanie, obsługa SIO==&lt;br /&gt;
&lt;br /&gt;
Sio2SD jest urządzeniem [[SIO]], z którym możemy się komunikować.&lt;br /&gt;
Wykorzystuje tę możliwość dedykowany przez autora Sio2SD.com, a także grupy MadTeam [[Atari Commander]] od wersji 1.7 oraz S2S.com autorstwa Truba&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Poniżej oficjalne dane zebrane przez [[Pajero]] zgodne z wersją firmware 2.5.&amp;lt;br&amp;gt;Nowsze wersje (3.0) mają o wiele większą liczbę komend, co opisane jest na &amp;lt;b&amp;gt;nowej&amp;lt;/b&amp;gt; stronie www...&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
* $300 DDEVIC = $73 &lt;br /&gt;
* $301 DUNIT  = deviceID&lt;br /&gt;
* $306 DTIMLO = $7f minimum, optymalnie $90&lt;br /&gt;
* $307 DUNUSE = $00 zawsze&lt;br /&gt;
&lt;br /&gt;
DeviceID znajduje się w pliku konfiguracji Sio2SD.com (musi być to 6.bajt programu!).&amp;lt;br&amp;gt;Wartość: 0-3. To pozwala podłączyć do 4 urządzeń do Atari jednocześnie.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 cellpadding=6&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$0302 &amp;lt;b&amp;gt;DCMND&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0303 &amp;lt;b&amp;gt;DSTATS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0304/5 &amp;lt;b&amp;gt;DBUFA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0308/9 &amp;lt;b&amp;gt;DBYT&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030A &amp;lt;b&amp;gt;DAUX1&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030B &amp;lt;b&amp;gt;DAUX2&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;$00 get status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Odczytana wartość:&amp;lt;br&amp;gt;00 = brak karty&amp;lt;br&amp;gt;01 = OK &amp;lt;br&amp;gt;02 = OK zmieniono kartę na inną&amp;lt;br&amp;gt;03 = OK zmiany w D1-D8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$01&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$01 get drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla:&amp;lt;br&amp;gt;- jednego wpisu&amp;lt;br&amp;gt;- wpisów 1-4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$36&amp;lt;br&amp;gt;$36 * Ilość wpisów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia:&amp;lt;br&amp;gt;1 - 8&amp;lt;br&amp;gt; 0 - 7&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$00&amp;lt;br&amp;gt;Ilość wpisów: 1-4&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;$02 mount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora:&amp;lt;br&amp;gt;- z jednym wpisem&amp;lt;br&amp;gt;- z wpisami 1-4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$36&amp;lt;br&amp;gt;$36 * Ilość wpisów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia:&amp;lt;br&amp;gt;1 - 8&amp;lt;br&amp;gt; 0 - 7&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$00&amp;lt;br&amp;gt;Ilość wpisów: 1-4&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;$03 unmount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia:&amp;lt;br&amp;gt;1 - 8&amp;lt;br&amp;gt; 0 - 7&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$00&amp;lt;br&amp;gt;Ilość wpisów: 1-8&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;$04 get name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla:&amp;lt;br&amp;gt;- jednego wpisu&amp;lt;br&amp;gt;- wpisów 1-4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$36&amp;lt;br&amp;gt;$36 * Ilość wpisów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$00&amp;lt;br&amp;gt;Ilość wpisów: 1-4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00 = kolejny wpis&amp;lt;br&amp;gt;01 = rewind i wczytaj kolejny wpis&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;$05 select directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą katalogu &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$06 up directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$10 lcd set&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z linią do wyświetlenia&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$28&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00 = linia górna&amp;lt;br&amp;gt;$01 = linia dolna&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uwagi:&lt;br /&gt;
* nie wolno przekraczać założenia: 8 &amp;gt;= Numer urządzenia + Ilość wpisów &lt;br /&gt;
* obowiązuje zawsze sprawdzenie czy komenda została poprawnie wykonana. &lt;br /&gt;
&lt;br /&gt;
Czyli mamy możliwość sprawdzenia czy urządzenie jest włączone do gniazda SIO - get status; możemy odczytać co jest podpięte do jednego z ośmiu urządzeń - get drive; zmienić to podpięcie - mount drive; lub je wyłączyć (tzw. --OFF-- ) - unmount drive; odczytać zawartość bieżącego katalogu - get name; wejść do wybranego katalogu - select directory; przejść o katalog wyżej (do nadrzędnego) - up directory; a także wysłać tekst na wyświetlacz.&lt;br /&gt;
&lt;br /&gt;
Niestety w tej wersji urządzenia nie można ustawiać dowolnie ścieżki katalogów (nalezy po nich &amp;quot;skakać&amp;quot; krokowo), odczytywać dowolnego wpisu z katalogu - zawsze przekazywany jest wpis po wpisie.&lt;br /&gt;
Największym bólem jest brak możliwości zapisywania do samej karty. Czyli nie można założyć nowego [[ATR]]-a.&lt;br /&gt;
&lt;br /&gt;
===Wpis katalogu===&lt;br /&gt;
&lt;br /&gt;
Komunikacja odbywa się blokami po $36 bajtów. Zawartość:&lt;br /&gt;
* $00-$26 = nazwa wpisu do katalogu wypełniona do końca spacjami&lt;br /&gt;
* $27 = status wpisu: 01 katalog, 02 atr, 03 xfd, 04 inny &lt;br /&gt;
* $2c-$2f = file size (nie dla katalogu)&lt;br /&gt;
* reszta zawiera dane dot.położenia wpisu na karcie SD.&lt;br /&gt;
Jeśli pierwszy bajt równy 0 = koniec katalogu, potem znowu wszystko od początku.&lt;br /&gt;
&lt;br /&gt;
==Programowanie układu ATMEL==&lt;br /&gt;
&lt;br /&gt;
Aby zmienić firmware wystarczy: wgrać program binarny SIO2SD.BIN o długości 30720 B do głównego katalogu karty SD; odpalić Sio2SD z wciśniętym K4 by wejść do trybu konfiguracji; a tam w menu wcisnąć Shift+K3. Ale przy błędzie takiej operacji lub jeśli rozprogramuje się układ Atmel możemy tylko ratować się programując procesor.&lt;br /&gt;
Do tego celu może posłużyć dowolny programator (np. [http://allegro.pl/listing.php/search?string=stk200*&amp;amp;from_showcat=1&amp;amp;category=68366&amp;amp;description=1&amp;amp;from_showcat=1&amp;amp;order=p&amp;amp;change_view=1 STK 200/300] za ~12PLN na Allegro) podłączany do portu LPT (drukarki) w PC. Za pomocą programu (np. darmowy PonyProg) szybko odratujemy Atmela. &lt;br /&gt;
Podłączamy kable programatora do złącza JP2 w płytce Sio2SD. Oznaczenia pinów - widok na PCB od strony elementów - powyżej jest Atmel: &lt;br /&gt;
&lt;br /&gt;
 RESET  CLK  MISO&lt;br /&gt;
  GND  MOSI   VCC&lt;br /&gt;
&lt;br /&gt;
Włączamy PC (wtyk D-Sub 25 wpięty już jest do LPT), podłączamy Sio2SD do Atari i je włączamy.&lt;br /&gt;
Uruchamiamy program, który wykona programowanie. Szczegóły obsługi programu dostępne są w sieci lub u sprzedawcy programatora.&lt;br /&gt;
&lt;br /&gt;
==Przydatne linki==&lt;br /&gt;
&lt;br /&gt;
Więcej informacji na [http://sio2sd.gucio.pl/ stronie] autora projektu.&lt;br /&gt;
Żródło Atari Commandera na [http://madteam.atari8.info/index.php?prod=uzytki  stronie MadTeamu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29811</id>
		<title>SIO2SD</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29811"/>
		<updated>2010-09-08T07:49:39Z</updated>

		<summary type="html">&lt;p&gt;Pajero: /* Wykaz komend */  zalecenia autora&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Informacje Ogólne==&lt;br /&gt;
SIO2SD to interfejs autorstwa [[Jakub_Kruszona-Zawadzki|Jakuba Kruszony-Zawadzkiego]], pozwalający na wczytywanie gier/programów na Atari 8-bit poprzez port SIO z kart SD/MMC. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:Sio2sd.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cechy urządzenia==&lt;br /&gt;
&lt;br /&gt;
* Obsługa kart SD/MMC (formaty FAT12, FAT16 i FAT32) &lt;br /&gt;
* Obsługa plików w formatach ATR (rw), XFD (ro) i COM/XEX (ro) &lt;br /&gt;
* Wyświetlacz 16x2 pokazujący aktualnie wybrany katalog i plik ATR/XEX podmapowany pod określony numer stacji dysków.&lt;br /&gt;
* Obsługa SIO z turbo (możliwość ustawienia prędkości - [[HS Index]] od 1 do 16, standardowo 6, co odpowiada prędkości ok. 68,2 kbps, do wersji 2007.02.18 była stała prędkość 51 kbps - HS Index 10) &lt;br /&gt;
* Wszystkie gęstości z sektorami 128 B i 256 B (TOMS-owe 512 B na razie nieobsługiwane), w tym również dyski 16 MB &lt;br /&gt;
* Możliwość równoległej obsługi 8 stacji (do wersji 2007.02.08 tylko 4 stacje: D1-D4) &lt;br /&gt;
* Możliwość konfigurowania z poziomu ATARI (możliwe ładowanie programu konfiguracyjnego bezpośrednio z urządzenia, bez potrzeby nagrywania na kartę SD)&lt;br /&gt;
&lt;br /&gt;
==Wydajność==&lt;br /&gt;
&lt;br /&gt;
Prędkość zmierzona programem [[RW-Test]] pod [[SpartaDOS X]]:&lt;br /&gt;
&lt;br /&gt;
* DOS Reading: 1719,8 B/sek.&lt;br /&gt;
* DOS Writing: 5137,8 B/sek.&lt;br /&gt;
* DOS Average: 3428,8 B/sek.&lt;br /&gt;
&lt;br /&gt;
Użyto RW-Test w wersji 3.0 i karty SD Pretec Highspeed 60x.&lt;br /&gt;
&lt;br /&gt;
==Lista elementów==&lt;br /&gt;
&lt;br /&gt;
Poniżej przedstawiona jest lista elementów elektronicznych potrzebnych do budowy układu.&lt;br /&gt;
&lt;br /&gt;
    Lp  Ilość   Nazwa Elementu         Wartość          Oznaczenie elementu&lt;br /&gt;
     1     2    Rezystor                10k                 R1,R3&lt;br /&gt;
     2     1    Potencjometr            2.2k                R2&lt;br /&gt;
     3     3    Rezystor                1.8k                R4,R5,R6&lt;br /&gt;
     4     3    Rezystor                3.3k                R7,R8,R9&lt;br /&gt;
     5     1    Rezystor                27R                 R10&lt;br /&gt;
     6     3    Rezystor                220R                R11,R12,R13&lt;br /&gt;
     7     1    Kondensator tantalowy   10uF                C4&lt;br /&gt;
     8     2    Kondensator ceramiczny  22pF                C1,C2&lt;br /&gt;
     9     4    Kondensator ceramiczny  100nF               C3,C12,C10,C11&lt;br /&gt;
    10     5    Kondensator ceramiczny  22nF                C5,C6,C7,C8,C9&lt;br /&gt;
    11     1    Kwarc                   7.3728 lub 14MHz    Q1&lt;br /&gt;
    12     1    Dioda Schottkiego       BAT85               opcjonalnie&lt;br /&gt;
    13     1    Procesor ATMEGA32-16PI (lub Atmega 32L-8PU) IC1&lt;br /&gt;
    14     1    Stabilizator            3.3V                IC2&lt;br /&gt;
    15     3    Diody LED               3V                  LED1,LED2,LED3&lt;br /&gt;
    16     5    Mikrostyki                -                 S1,S2,S3,S4,S5&lt;br /&gt;
    17     1    Gniazdo SD                -                 SD&lt;br /&gt;
    18     1    Wyświetlacz 2x16 LED      -                 JP3&lt;br /&gt;
&lt;br /&gt;
==Porady dotyczące uruchomienia układu==&lt;br /&gt;
&lt;br /&gt;
* Dla kwarca 7.3728 MHz fuse procesora Atmel ustawiamy na (H:0xD1 ; L:0xFF)&lt;br /&gt;
* Dla kwarca 14.3118 MHz fuse procesora Atmel ustawiamy na (H:0xC3 ; L:0xFF)&lt;br /&gt;
* Jeżeli podczas wyboru plików ATR na wyświetlaczu pojawiają się śmieci - należy wymienić stabilizator napięcia 3.3V (na np. precyzyjny stabilizator napięcia 1.0A w obudowie TO-220)&lt;br /&gt;
* Komunikat &#039;Błąd odczytu karty SD&#039; - gdy jest włożona do slotu - przyczyną jest brak styku przy kondensatorze C12 lub stabilizatorze napięcia 3.3V. PCB jest dwustronne, dlatego zaleca się poprawić lutowanie z obu stron płytki dla tych elementów.&lt;br /&gt;
&lt;br /&gt;
==Programowanie, obsługa SIO==&lt;br /&gt;
&lt;br /&gt;
Sio2SD jest urządzeniem [[SIO]], z którym możemy się komunikować.&lt;br /&gt;
Wykorzystuje tę możliwość dedykowany przez autora Sio2SD.com, a także grupy MadTeam [[Atari Commander]] od wersji 1.7 oraz S2S.com autorstwa Truba&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Poniżej oficjalne dane zebrane przez [[Pajero]] zgodne z wersją firmware 2.5.&amp;lt;br&amp;gt;Nowsze wersje (3.0) mają o wiele większą liczbę komend, co opisane jest na &amp;lt;b&amp;gt;nowej&amp;lt;/b&amp;gt; stronie www...&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
* $300 DDEVIC = $73 &lt;br /&gt;
* $301 DUNIT  = deviceID&lt;br /&gt;
* $306 DTIMLO = $7f minimum, optymalnie $90&lt;br /&gt;
* $307 DUNUSE = $00 zawsze&lt;br /&gt;
&lt;br /&gt;
DeviceID znajduje się w pliku konfiguracji Sio2SD.com (musi być to 6.bajt programu!).&amp;lt;br&amp;gt;Wartość: 0-3. To pozwala podłączyć do 4 urządzeń do Atari jednocześnie.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 cellpadding=6&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$0302 &amp;lt;b&amp;gt;DCMND&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0303 &amp;lt;b&amp;gt;DSTATS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0304/5 &amp;lt;b&amp;gt;DBUFA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0308/9 &amp;lt;b&amp;gt;DBYT&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030A &amp;lt;b&amp;gt;DAUX1&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030B &amp;lt;b&amp;gt;DAUX2&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;$00 get status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Odczytana wartość:&amp;lt;br&amp;gt;00 = brak karty&amp;lt;br&amp;gt;01 = OK &amp;lt;br&amp;gt;02 = OK zmieniono kartę na inną&amp;lt;br&amp;gt;03 = OK zmiany w D1-D8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$01&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$01 get drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla:&amp;lt;br&amp;gt;- jednego wpisu&amp;lt;br&amp;gt;- wpisów 1-4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$36&amp;lt;br&amp;gt;$36 * Ilość wpisów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia:&amp;lt;br&amp;gt;1 - 8&amp;lt;br&amp;gt; 0 - 7&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$00&amp;lt;br&amp;gt;Ilość wpisów: 1-4&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;$02 mount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora:&amp;lt;br&amp;gt;- z jednym wpisem&amp;lt;br&amp;gt;- z wpisami 1-4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$36&amp;lt;br&amp;gt;$36 * Ilość wpisów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia:&amp;lt;br&amp;gt;1 - 8&amp;lt;br&amp;gt; 0 - 7&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$00&amp;lt;br&amp;gt;Ilość wpisów: 1-4&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;$03 unmount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia:&amp;lt;br&amp;gt;1 - 8&amp;lt;br&amp;gt; 0 - 7&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$00&amp;lt;br&amp;gt;Ilość wpisów: 1-8&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;$04 get name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla:&amp;lt;br&amp;gt;- jednego wpisu&amp;lt;br&amp;gt;- wpisów 1-4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$36&amp;lt;br&amp;gt;$36 * Ilość wpisów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;br&amp;gt;$00&amp;lt;br&amp;gt;Ilość wpisów: 1-4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00 = kolejny wpis&amp;lt;br&amp;gt;01 = rewind i wczytaj kolejny wpis&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;$05 select directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą katalogu &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$06 up directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$10 lcd set&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z linią do wyświetlenia&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$28&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00 = linia górna&amp;lt;br&amp;gt;$01 = linia dolna&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uwagi:&lt;br /&gt;
* nie wolno przekraczać założenia: 8 &amp;gt;= Numer urządzenia + Ilość wpisów &lt;br /&gt;
* obowiązuje zawsze sprawdzenie czy komenda została poprawnie wykonana. &lt;br /&gt;
&lt;br /&gt;
Czyli mamy możliwość sprawdzenia czy urządzenie jest włączone do gniazda SIO - get status; możemy odczytać co jest podpięte do jednego z ośmiu urządzeń - get drive; zmienić to podpięcie - mount drive; lub je wyłączyć (tzw. --OFF-- ) - unmount drive; odczytać zawartość bieżącego katalogu - get name; wejść do wybranego katalogu - select directory; przejść o katalog wyżej (do nadrzędnego) - up directory; a także wysłać tekst na wyświetlacz.&lt;br /&gt;
&lt;br /&gt;
Niestety w tej wersji urządzenia nie można ustawiać dowolnie ścieżki katalogów (nalezy po nich &amp;quot;skakać&amp;quot; krokowo), odczytywać dowolnego wpisu z katalogu - zawsze przekazywany jest wpis po wpisie.&lt;br /&gt;
Największym bólem jest brak możliwości zapisywania do samej karty. Czyli nie można założyć nowego [[ATR]]-a.&lt;br /&gt;
&lt;br /&gt;
===Wpis katalogu===&lt;br /&gt;
&lt;br /&gt;
Komunikacja odbywa się blokami po $36 bajtów. Zawartość:&lt;br /&gt;
* $00-$26 = nazwa wpisu do katalogu wypełniona do końca spacjami&lt;br /&gt;
* $27 = status wpisu: 01 katalog, 02 atr, 03 xfd, 04 inny &lt;br /&gt;
* $2c-$2f = file size (nie dla katalogu)&lt;br /&gt;
* reszta zawiera dane dot.położenia wpisu na karcie SD.&lt;br /&gt;
Jeśli pierwszy bajt równy 0 = koniec katalogu, potem znowu wszystko od początku.&lt;br /&gt;
&lt;br /&gt;
==Programowanie układu ATMEL==&lt;br /&gt;
&lt;br /&gt;
Aby zmienić firmware wystarczy: wgrać program binarny SIO2SD.BIN o długości 30720 B do głównego katalogu karty SD; odpalić Sio2SD z wciśniętym K4 by wejść do trybu konfiguracji; a tam w menu wcisnąć Shift+K3. Ale przy błędzie takiej operacji lub jeśli rozprogramuje się układ Atmel możemy tylko ratować się programując procesor.&lt;br /&gt;
Do tego celu może posłużyć dowolny programator (np. [http://allegro.pl/listing.php/search?string=stk200*&amp;amp;from_showcat=1&amp;amp;category=68366&amp;amp;description=1&amp;amp;from_showcat=1&amp;amp;order=p&amp;amp;change_view=1 STK 200/300] za ~12PLN na Allegro) podłączany do portu LPT (drukarki) w PC. Za pomocą programu (np. darmowy PonyProg) szybko odratujemy Atmela. &lt;br /&gt;
Podłączamy kable programatora do złącza JP2 w płytce Sio2SD. Oznaczenia pinów - widok na PCB od strony elementów - powyżej jest Atmel: &lt;br /&gt;
&lt;br /&gt;
 RESET  CLK  MISO&lt;br /&gt;
  GND  MOSI   VCC&lt;br /&gt;
&lt;br /&gt;
Włączamy PC (wtyk D-Sub 25 wpięty już jest do LPT), podłączamy Sio2SD do Atari i je włączamy.&lt;br /&gt;
Uruchamiamy program, który wykona programowanie. Szczegóły obsługi programu dostępne są w sieci lub u sprzedawcy programatora.&lt;br /&gt;
&lt;br /&gt;
==Przydatne linki==&lt;br /&gt;
&lt;br /&gt;
Więcej informacji na [http://sio2sd.gucio.pl/ stronie] autora projektu.&lt;br /&gt;
Żródło Atari Commandera na [http://madteam.atari8.info/index.php?prod=uzytki  stronie MadTeamu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29810</id>
		<title>SIO2SD</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29810"/>
		<updated>2010-09-08T07:32:40Z</updated>

		<summary type="html">&lt;p&gt;Pajero: /* Wykaz komend */  poprawka&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Informacje Ogólne==&lt;br /&gt;
SIO2SD to interfejs autorstwa [[Jakub_Kruszona-Zawadzki|Jakuba Kruszony-Zawadzkiego]], pozwalający na wczytywanie gier/programów na Atari 8-bit poprzez port SIO z kart SD/MMC. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:Sio2sd.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cechy urządzenia==&lt;br /&gt;
&lt;br /&gt;
* Obsługa kart SD/MMC (formaty FAT12, FAT16 i FAT32) &lt;br /&gt;
* Obsługa plików w formatach ATR (rw), XFD (ro) i COM/XEX (ro) &lt;br /&gt;
* Wyświetlacz 16x2 pokazujący aktualnie wybrany katalog i plik ATR/XEX podmapowany pod określony numer stacji dysków.&lt;br /&gt;
* Obsługa SIO z turbo (możliwość ustawienia prędkości - [[HS Index]] od 1 do 16, standardowo 6, co odpowiada prędkości ok. 68,2 kbps, do wersji 2007.02.18 była stała prędkość 51 kbps - HS Index 10) &lt;br /&gt;
* Wszystkie gęstości z sektorami 128 B i 256 B (TOMS-owe 512 B na razie nieobsługiwane), w tym również dyski 16 MB &lt;br /&gt;
* Możliwość równoległej obsługi 8 stacji (do wersji 2007.02.08 tylko 4 stacje: D1-D4) &lt;br /&gt;
* Możliwość konfigurowania z poziomu ATARI (możliwe ładowanie programu konfiguracyjnego bezpośrednio z urządzenia, bez potrzeby nagrywania na kartę SD)&lt;br /&gt;
&lt;br /&gt;
==Wydajność==&lt;br /&gt;
&lt;br /&gt;
Prędkość zmierzona programem [[RW-Test]] pod [[SpartaDOS X]]:&lt;br /&gt;
&lt;br /&gt;
* DOS Reading: 1719,8 B/sek.&lt;br /&gt;
* DOS Writing: 5137,8 B/sek.&lt;br /&gt;
* DOS Average: 3428,8 B/sek.&lt;br /&gt;
&lt;br /&gt;
Użyto RW-Test w wersji 3.0 i karty SD Pretec Highspeed 60x.&lt;br /&gt;
&lt;br /&gt;
==Lista elementów==&lt;br /&gt;
&lt;br /&gt;
Poniżej przedstawiona jest lista elementów elektronicznych potrzebnych do budowy układu.&lt;br /&gt;
&lt;br /&gt;
    Lp  Ilość   Nazwa Elementu         Wartość          Oznaczenie elementu&lt;br /&gt;
     1     2    Rezystor                10k                 R1,R3&lt;br /&gt;
     2     1    Potencjometr            2.2k                R2&lt;br /&gt;
     3     3    Rezystor                1.8k                R4,R5,R6&lt;br /&gt;
     4     3    Rezystor                3.3k                R7,R8,R9&lt;br /&gt;
     5     1    Rezystor                27R                 R10&lt;br /&gt;
     6     3    Rezystor                220R                R11,R12,R13&lt;br /&gt;
     7     1    Kondensator tantalowy   10uF                C4&lt;br /&gt;
     8     2    Kondensator ceramiczny  22pF                C1,C2&lt;br /&gt;
     9     4    Kondensator ceramiczny  100nF               C3,C12,C10,C11&lt;br /&gt;
    10     5    Kondensator ceramiczny  22nF                C5,C6,C7,C8,C9&lt;br /&gt;
    11     1    Kwarc                   7.3728 lub 14MHz    Q1&lt;br /&gt;
    12     1    Dioda Schottkiego       BAT85               opcjonalnie&lt;br /&gt;
    13     1    Procesor ATMEGA32-16PI (lub Atmega 32L-8PU) IC1&lt;br /&gt;
    14     1    Stabilizator            3.3V                IC2&lt;br /&gt;
    15     3    Diody LED               3V                  LED1,LED2,LED3&lt;br /&gt;
    16     5    Mikrostyki                -                 S1,S2,S3,S4,S5&lt;br /&gt;
    17     1    Gniazdo SD                -                 SD&lt;br /&gt;
    18     1    Wyświetlacz 2x16 LED      -                 JP3&lt;br /&gt;
&lt;br /&gt;
==Porady dotyczące uruchomienia układu==&lt;br /&gt;
&lt;br /&gt;
* Dla kwarca 7.3728 MHz fuse procesora Atmel ustawiamy na (H:0xD1 ; L:0xFF)&lt;br /&gt;
* Dla kwarca 14.3118 MHz fuse procesora Atmel ustawiamy na (H:0xC3 ; L:0xFF)&lt;br /&gt;
* Jeżeli podczas wyboru plików ATR na wyświetlaczu pojawiają się śmieci - należy wymienić stabilizator napięcia 3.3V (na np. precyzyjny stabilizator napięcia 1.0A w obudowie TO-220)&lt;br /&gt;
* Komunikat &#039;Błąd odczytu karty SD&#039; - gdy jest włożona do slotu - przyczyną jest brak styku przy kondensatorze C12 lub stabilizatorze napięcia 3.3V. PCB jest dwustronne, dlatego zaleca się poprawić lutowanie z obu stron płytki dla tych elementów.&lt;br /&gt;
&lt;br /&gt;
==Programowanie, obsługa SIO==&lt;br /&gt;
&lt;br /&gt;
Sio2SD jest urządzeniem [[SIO]], z którym możemy się komunikować.&lt;br /&gt;
Wykorzystuje tę możliwość dedykowany przez autora Sio2SD.com, a także grupy MadTeam [[Atari Commander]] od wersji 1.7 oraz S2S.com autorstwa Truba&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Poniżej oficjalne dane zebrane przez [[Pajero]] zgodne z wersją firmware 2.5.&amp;lt;br&amp;gt;Nowsze wersje (3.0) mają o wiele większą liczbę komend, co opisane jest na &amp;lt;b&amp;gt;nowej&amp;lt;/b&amp;gt; stronie www...&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
* $300 DDEVIC = $73 &lt;br /&gt;
* $301 DUNIT  = deviceID&lt;br /&gt;
* $306 DTIMLO = $7f minimum, optymalnie $90&lt;br /&gt;
* $307 DUNUSE = $00 zawsze&lt;br /&gt;
&lt;br /&gt;
DeviceID znajduje się w pliku konfiguracji Sio2SD.com (musi być to 6.bajt programu!).&amp;lt;br&amp;gt;Wartość: 0-3. To pozwala podłączyć do 4 urządzeń do Atari jednocześnie.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 cellpadding=6&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$0302 &amp;lt;b&amp;gt;DCMND&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0303 &amp;lt;b&amp;gt;DSTATS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0304/5 &amp;lt;b&amp;gt;DBUFA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0308/9 &amp;lt;b&amp;gt;DBYT&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030A &amp;lt;b&amp;gt;DAUX1&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030B &amp;lt;b&amp;gt;DAUX2&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;$00 get status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Odczytana wartość:&amp;lt;br&amp;gt;00 = brak karty&amp;lt;br&amp;gt;01 = OK &amp;lt;br&amp;gt;02 = OK zmieniono kartę na inną&amp;lt;br&amp;gt;03 = OK zmiany w D1-D8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$01&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$01 get drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla:&amp;lt;br&amp;gt;- jednego wpisu&amp;lt;br&amp;gt;- wpisów 1-4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;br&amp;gt;lub&amp;lt;br&amp;gt;$36 * Ilość wpisów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;br&amp;gt;lub&amp;lt;br&amp;gt;Ilość wpisów: 1-4&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;$02 mount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora:&amp;lt;br&amp;gt;- z jednym wpisem&amp;lt;br&amp;gt;- z wpisami 1-4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;br&amp;gt;lub&amp;lt;br&amp;gt;$36 * Ilość wpisów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;br&amp;gt;lub&amp;lt;br&amp;gt;Ilość wpisów: 1-4&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;$03 unmount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00&amp;lt;br&amp;gt;lub&amp;lt;br&amp;gt;Ilość wpisów: 1-4&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;$04 get name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla:&amp;lt;br&amp;gt;- jednego wpisu&amp;lt;br&amp;gt;- wpisów 1-4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;br&amp;gt;lub&amp;lt;br&amp;gt;$36 * Ilość wpisów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;br&amp;gt;lub&amp;lt;br&amp;gt;Ilość wpisów: 1-4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00 = kolejny wpis&amp;lt;br&amp;gt;01 = rewind i wczytaj kolejny wpis&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;$05 select directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą katalogu &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$06 up directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$10 lcd set&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z linią do wyświetlenia&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$28&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00 = linia górna&amp;lt;br&amp;gt;$01 = linia dolna&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oczywiście obowiązuje zawsze sprawdzenie czy komenda została poprawnie wykonana. &lt;br /&gt;
&lt;br /&gt;
Czyli mamy możliwość sprawdzenia czy urządzenie jest włączone do gniazda SIO - get status; możemy odczytać co jest podpięte do jednego z ośmiu urządzeń - get drive; zmienić to podpięcie - mount drive; lub je wyłączyć (tzw. --OFF-- ) - unmount drive; odczytać zawartość bieżącego katalogu - get name; wejść do wybranego katalogu - select directory; przejść o katalog wyżej (do nadrzędnego) - up directory; a także wysłać tekst na wyświetlacz.&lt;br /&gt;
&lt;br /&gt;
Niestety w tej wersji urządzenia nie można ustawiać dowolnie ścieżki katalogów (nalezy po nich &amp;quot;skakać&amp;quot; krokowo), odczytywać dowolnego wpisu z katalogu - zawsze przekazywany jest wpis po wpisie.&lt;br /&gt;
Największym bólem jest brak możliwości zapisywania do samej karty. Czyli nie można założyć nowego [[ATR]]-a.&lt;br /&gt;
&lt;br /&gt;
===Wpis katalogu===&lt;br /&gt;
&lt;br /&gt;
Komunikacja odbywa się blokami po $36 bajtów. Zawartość:&lt;br /&gt;
* $00-$26 = nazwa wpisu do katalogu wypełniona do końca spacjami&lt;br /&gt;
* $27 = status wpisu: 01 katalog, 02 atr, 03 xfd, 04 inny &lt;br /&gt;
* $2c-$2f = file size (nie dla katalogu)&lt;br /&gt;
* reszta zawiera dane dot.położenia wpisu na karcie SD.&lt;br /&gt;
Jeśli pierwszy bajt równy 0 = koniec katalogu, potem znowu wszystko od początku.&lt;br /&gt;
&lt;br /&gt;
==Programowanie układu ATMEL==&lt;br /&gt;
&lt;br /&gt;
Aby zmienić firmware wystarczy: wgrać program binarny SIO2SD.BIN o długości 30720 B do głównego katalogu karty SD; odpalić Sio2SD z wciśniętym K4 by wejść do trybu konfiguracji; a tam w menu wcisnąć Shift+K3. Ale przy błędzie takiej operacji lub jeśli rozprogramuje się układ Atmel możemy tylko ratować się programując procesor.&lt;br /&gt;
Do tego celu może posłużyć dowolny programator (np. [http://allegro.pl/listing.php/search?string=stk200*&amp;amp;from_showcat=1&amp;amp;category=68366&amp;amp;description=1&amp;amp;from_showcat=1&amp;amp;order=p&amp;amp;change_view=1 STK 200/300] za ~12PLN na Allegro) podłączany do portu LPT (drukarki) w PC. Za pomocą programu (np. darmowy PonyProg) szybko odratujemy Atmela. &lt;br /&gt;
Podłączamy kable programatora do złącza JP2 w płytce Sio2SD. Oznaczenia pinów - widok na PCB od strony elementów - powyżej jest Atmel: &lt;br /&gt;
&lt;br /&gt;
 RESET  CLK  MISO&lt;br /&gt;
  GND  MOSI   VCC&lt;br /&gt;
&lt;br /&gt;
Włączamy PC (wtyk D-Sub 25 wpięty już jest do LPT), podłączamy Sio2SD do Atari i je włączamy.&lt;br /&gt;
Uruchamiamy program, który wykona programowanie. Szczegóły obsługi programu dostępne są w sieci lub u sprzedawcy programatora.&lt;br /&gt;
&lt;br /&gt;
==Przydatne linki==&lt;br /&gt;
&lt;br /&gt;
Więcej informacji na [http://sio2sd.gucio.pl/ stronie] autora projektu.&lt;br /&gt;
Żródło Atari Commandera na [http://madteam.atari8.info/index.php?prod=uzytki  stronie MadTeamu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29809</id>
		<title>SIO2SD</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29809"/>
		<updated>2010-09-08T07:26:11Z</updated>

		<summary type="html">&lt;p&gt;Pajero: /* Wykaz komend */  aktualizacja&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Informacje Ogólne==&lt;br /&gt;
SIO2SD to interfejs autorstwa [[Jakub_Kruszona-Zawadzki|Jakuba Kruszony-Zawadzkiego]], pozwalający na wczytywanie gier/programów na Atari 8-bit poprzez port SIO z kart SD/MMC. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:Sio2sd.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cechy urządzenia==&lt;br /&gt;
&lt;br /&gt;
* Obsługa kart SD/MMC (formaty FAT12, FAT16 i FAT32) &lt;br /&gt;
* Obsługa plików w formatach ATR (rw), XFD (ro) i COM/XEX (ro) &lt;br /&gt;
* Wyświetlacz 16x2 pokazujący aktualnie wybrany katalog i plik ATR/XEX podmapowany pod określony numer stacji dysków.&lt;br /&gt;
* Obsługa SIO z turbo (możliwość ustawienia prędkości - [[HS Index]] od 1 do 16, standardowo 6, co odpowiada prędkości ok. 68,2 kbps, do wersji 2007.02.18 była stała prędkość 51 kbps - HS Index 10) &lt;br /&gt;
* Wszystkie gęstości z sektorami 128 B i 256 B (TOMS-owe 512 B na razie nieobsługiwane), w tym również dyski 16 MB &lt;br /&gt;
* Możliwość równoległej obsługi 8 stacji (do wersji 2007.02.08 tylko 4 stacje: D1-D4) &lt;br /&gt;
* Możliwość konfigurowania z poziomu ATARI (możliwe ładowanie programu konfiguracyjnego bezpośrednio z urządzenia, bez potrzeby nagrywania na kartę SD)&lt;br /&gt;
&lt;br /&gt;
==Wydajność==&lt;br /&gt;
&lt;br /&gt;
Prędkość zmierzona programem [[RW-Test]] pod [[SpartaDOS X]]:&lt;br /&gt;
&lt;br /&gt;
* DOS Reading: 1719,8 B/sek.&lt;br /&gt;
* DOS Writing: 5137,8 B/sek.&lt;br /&gt;
* DOS Average: 3428,8 B/sek.&lt;br /&gt;
&lt;br /&gt;
Użyto RW-Test w wersji 3.0 i karty SD Pretec Highspeed 60x.&lt;br /&gt;
&lt;br /&gt;
==Lista elementów==&lt;br /&gt;
&lt;br /&gt;
Poniżej przedstawiona jest lista elementów elektronicznych potrzebnych do budowy układu.&lt;br /&gt;
&lt;br /&gt;
    Lp  Ilość   Nazwa Elementu         Wartość          Oznaczenie elementu&lt;br /&gt;
     1     2    Rezystor                10k                 R1,R3&lt;br /&gt;
     2     1    Potencjometr            2.2k                R2&lt;br /&gt;
     3     3    Rezystor                1.8k                R4,R5,R6&lt;br /&gt;
     4     3    Rezystor                3.3k                R7,R8,R9&lt;br /&gt;
     5     1    Rezystor                27R                 R10&lt;br /&gt;
     6     3    Rezystor                220R                R11,R12,R13&lt;br /&gt;
     7     1    Kondensator tantalowy   10uF                C4&lt;br /&gt;
     8     2    Kondensator ceramiczny  22pF                C1,C2&lt;br /&gt;
     9     4    Kondensator ceramiczny  100nF               C3,C12,C10,C11&lt;br /&gt;
    10     5    Kondensator ceramiczny  22nF                C5,C6,C7,C8,C9&lt;br /&gt;
    11     1    Kwarc                   7.3728 lub 14MHz    Q1&lt;br /&gt;
    12     1    Dioda Schottkiego       BAT85               opcjonalnie&lt;br /&gt;
    13     1    Procesor ATMEGA32-16PI (lub Atmega 32L-8PU) IC1&lt;br /&gt;
    14     1    Stabilizator            3.3V                IC2&lt;br /&gt;
    15     3    Diody LED               3V                  LED1,LED2,LED3&lt;br /&gt;
    16     5    Mikrostyki                -                 S1,S2,S3,S4,S5&lt;br /&gt;
    17     1    Gniazdo SD                -                 SD&lt;br /&gt;
    18     1    Wyświetlacz 2x16 LED      -                 JP3&lt;br /&gt;
&lt;br /&gt;
==Porady dotyczące uruchomienia układu==&lt;br /&gt;
&lt;br /&gt;
* Dla kwarca 7.3728 MHz fuse procesora Atmel ustawiamy na (H:0xD1 ; L:0xFF)&lt;br /&gt;
* Dla kwarca 14.3118 MHz fuse procesora Atmel ustawiamy na (H:0xC3 ; L:0xFF)&lt;br /&gt;
* Jeżeli podczas wyboru plików ATR na wyświetlaczu pojawiają się śmieci - należy wymienić stabilizator napięcia 3.3V (na np. precyzyjny stabilizator napięcia 1.0A w obudowie TO-220)&lt;br /&gt;
* Komunikat &#039;Błąd odczytu karty SD&#039; - gdy jest włożona do slotu - przyczyną jest brak styku przy kondensatorze C12 lub stabilizatorze napięcia 3.3V. PCB jest dwustronne, dlatego zaleca się poprawić lutowanie z obu stron płytki dla tych elementów.&lt;br /&gt;
&lt;br /&gt;
==Programowanie, obsługa SIO==&lt;br /&gt;
&lt;br /&gt;
Sio2SD jest urządzeniem [[SIO]], z którym możemy się komunikować.&lt;br /&gt;
Wykorzystuje tę możliwość dedykowany przez autora Sio2SD.com, a także grupy MadTeam [[Atari Commander]] od wersji 1.7 oraz S2S.com autorstwa Truba&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Poniżej oficjalne dane zebrane przez [[Pajero]] zgodne z wersją firmware 2.5.&amp;lt;br&amp;gt;Nowsze wersje (3.0) mają o wiele większą liczbę komend, co opisane jest na &amp;lt;b&amp;gt;nowej&amp;lt;/b&amp;gt; stronie www...&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
* $300 DDEVIC = $73 &lt;br /&gt;
* $301 DUNIT  = deviceID&lt;br /&gt;
* $306 DTIMLO = $7f minimum, optymalnie $90&lt;br /&gt;
* $307 DUNUSE = $00 zawsze&lt;br /&gt;
&lt;br /&gt;
DeviceID znajduje się w pliku konfiguracji Sio2SD.com (musi być to 6.bajt programu!).&amp;lt;br&amp;gt;Wartość: 0-3. To pozwala podłączyć do 4 urządzeń do Atari jednocześnie.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 cellpadding=6&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$0302 &amp;lt;b&amp;gt;DCMND&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0303 &amp;lt;b&amp;gt;DSTATS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0304/5 &amp;lt;b&amp;gt;DBUFA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0308/9 &amp;lt;b&amp;gt;DBYT&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030A &amp;lt;b&amp;gt;DAUX1&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030B &amp;lt;b&amp;gt;DAUX2&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;$00 get status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Odczytana wartość:&amp;lt;br&amp;gt;00 = brak karty&amp;lt;br&amp;gt;01 = OK &amp;lt;br&amp;gt;02 = OK zmieniono kartę na inną&amp;lt;br&amp;gt;03 = OK zmiany w D1-D8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$01&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$01 get drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;br&amp;gt;lub&amp;lt;br&amp;gt;$36 * Ilość wpisów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;br&amp;gt;lub&amp;lt;br&amp;gt;Ilość wpisów: 1-4&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;$02 mount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;br&amp;gt;lub&amp;lt;br&amp;gt;$36 * Ilość wpisów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;br&amp;gt;lub&amp;lt;br&amp;gt;Ilość wpisów: 1-4&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;$03 unmount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00&amp;lt;br&amp;gt;lub&amp;lt;br&amp;gt;Ilość wpisów: 1-4&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;$04 get name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla nazwy wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;br&amp;gt;lub&amp;lt;br&amp;gt;$36 * Ilość wpisów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;br&amp;gt;lub&amp;lt;br&amp;gt;Ilość wpisów: 1-4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00 = kolejny wpis&amp;lt;br&amp;gt;01 = rewind i wczytaj kolejny wpis&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;$05 select directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą katalogu &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$06 up directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$10 lcd set&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z linią do wyświetlenia&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$28&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00 = linia górna&amp;lt;br&amp;gt;$01 = linia dolna&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oczywiście obowiązuje zawsze sprawdzenie czy komenda została poprawnie wykonana. &lt;br /&gt;
&lt;br /&gt;
Czyli mamy możliwość sprawdzenia czy urządzenie jest włączone do gniazda SIO - get status; możemy odczytać co jest podpięte do jednego z ośmiu urządzeń - get drive; zmienić to podpięcie - mount drive; lub je wyłączyć (tzw. --OFF-- ) - unmount drive; odczytać zawartość bieżącego katalogu - get name; wejść do wybranego katalogu - select directory; przejść o katalog wyżej (do nadrzędnego) - up directory; a także wysłać tekst na wyświetlacz.&lt;br /&gt;
&lt;br /&gt;
Niestety w tej wersji urządzenia nie można ustawiać dowolnie ścieżki katalogów (nalezy po nich &amp;quot;skakać&amp;quot; krokowo), odczytywać dowolnego wpisu z katalogu - zawsze przekazywany jest wpis po wpisie.&lt;br /&gt;
Największym bólem jest brak możliwości zapisywania do samej karty. Czyli nie można założyć nowego [[ATR]]-a.&lt;br /&gt;
&lt;br /&gt;
===Wpis katalogu===&lt;br /&gt;
&lt;br /&gt;
Komunikacja odbywa się blokami po $36 bajtów. Zawartość:&lt;br /&gt;
* $00-$26 = nazwa wpisu do katalogu wypełniona do końca spacjami&lt;br /&gt;
* $27 = status wpisu: 01 katalog, 02 atr, 03 xfd, 04 inny &lt;br /&gt;
* $2c-$2f = file size (nie dla katalogu)&lt;br /&gt;
* reszta zawiera dane dot.położenia wpisu na karcie SD.&lt;br /&gt;
Jeśli pierwszy bajt równy 0 = koniec katalogu, potem znowu wszystko od początku.&lt;br /&gt;
&lt;br /&gt;
==Programowanie układu ATMEL==&lt;br /&gt;
&lt;br /&gt;
Aby zmienić firmware wystarczy: wgrać program binarny SIO2SD.BIN o długości 30720 B do głównego katalogu karty SD; odpalić Sio2SD z wciśniętym K4 by wejść do trybu konfiguracji; a tam w menu wcisnąć Shift+K3. Ale przy błędzie takiej operacji lub jeśli rozprogramuje się układ Atmel możemy tylko ratować się programując procesor.&lt;br /&gt;
Do tego celu może posłużyć dowolny programator (np. [http://allegro.pl/listing.php/search?string=stk200*&amp;amp;from_showcat=1&amp;amp;category=68366&amp;amp;description=1&amp;amp;from_showcat=1&amp;amp;order=p&amp;amp;change_view=1 STK 200/300] za ~12PLN na Allegro) podłączany do portu LPT (drukarki) w PC. Za pomocą programu (np. darmowy PonyProg) szybko odratujemy Atmela. &lt;br /&gt;
Podłączamy kable programatora do złącza JP2 w płytce Sio2SD. Oznaczenia pinów - widok na PCB od strony elementów - powyżej jest Atmel: &lt;br /&gt;
&lt;br /&gt;
 RESET  CLK  MISO&lt;br /&gt;
  GND  MOSI   VCC&lt;br /&gt;
&lt;br /&gt;
Włączamy PC (wtyk D-Sub 25 wpięty już jest do LPT), podłączamy Sio2SD do Atari i je włączamy.&lt;br /&gt;
Uruchamiamy program, który wykona programowanie. Szczegóły obsługi programu dostępne są w sieci lub u sprzedawcy programatora.&lt;br /&gt;
&lt;br /&gt;
==Przydatne linki==&lt;br /&gt;
&lt;br /&gt;
Więcej informacji na [http://sio2sd.gucio.pl/ stronie] autora projektu.&lt;br /&gt;
Żródło Atari Commandera na [http://madteam.atari8.info/index.php?prod=uzytki  stronie MadTeamu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29808</id>
		<title>SIO2SD</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29808"/>
		<updated>2010-09-08T07:12:27Z</updated>

		<summary type="html">&lt;p&gt;Pajero: /* Programowanie, obsługa SIO */  zmiany oficjalne&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Informacje Ogólne==&lt;br /&gt;
SIO2SD to interfejs autorstwa [[Jakub_Kruszona-Zawadzki|Jakuba Kruszony-Zawadzkiego]], pozwalający na wczytywanie gier/programów na Atari 8-bit poprzez port SIO z kart SD/MMC. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:Sio2sd.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cechy urządzenia==&lt;br /&gt;
&lt;br /&gt;
* Obsługa kart SD/MMC (formaty FAT12, FAT16 i FAT32) &lt;br /&gt;
* Obsługa plików w formatach ATR (rw), XFD (ro) i COM/XEX (ro) &lt;br /&gt;
* Wyświetlacz 16x2 pokazujący aktualnie wybrany katalog i plik ATR/XEX podmapowany pod określony numer stacji dysków.&lt;br /&gt;
* Obsługa SIO z turbo (możliwość ustawienia prędkości - [[HS Index]] od 1 do 16, standardowo 6, co odpowiada prędkości ok. 68,2 kbps, do wersji 2007.02.18 była stała prędkość 51 kbps - HS Index 10) &lt;br /&gt;
* Wszystkie gęstości z sektorami 128 B i 256 B (TOMS-owe 512 B na razie nieobsługiwane), w tym również dyski 16 MB &lt;br /&gt;
* Możliwość równoległej obsługi 8 stacji (do wersji 2007.02.08 tylko 4 stacje: D1-D4) &lt;br /&gt;
* Możliwość konfigurowania z poziomu ATARI (możliwe ładowanie programu konfiguracyjnego bezpośrednio z urządzenia, bez potrzeby nagrywania na kartę SD)&lt;br /&gt;
&lt;br /&gt;
==Wydajność==&lt;br /&gt;
&lt;br /&gt;
Prędkość zmierzona programem [[RW-Test]] pod [[SpartaDOS X]]:&lt;br /&gt;
&lt;br /&gt;
* DOS Reading: 1719,8 B/sek.&lt;br /&gt;
* DOS Writing: 5137,8 B/sek.&lt;br /&gt;
* DOS Average: 3428,8 B/sek.&lt;br /&gt;
&lt;br /&gt;
Użyto RW-Test w wersji 3.0 i karty SD Pretec Highspeed 60x.&lt;br /&gt;
&lt;br /&gt;
==Lista elementów==&lt;br /&gt;
&lt;br /&gt;
Poniżej przedstawiona jest lista elementów elektronicznych potrzebnych do budowy układu.&lt;br /&gt;
&lt;br /&gt;
    Lp  Ilość   Nazwa Elementu         Wartość          Oznaczenie elementu&lt;br /&gt;
     1     2    Rezystor                10k                 R1,R3&lt;br /&gt;
     2     1    Potencjometr            2.2k                R2&lt;br /&gt;
     3     3    Rezystor                1.8k                R4,R5,R6&lt;br /&gt;
     4     3    Rezystor                3.3k                R7,R8,R9&lt;br /&gt;
     5     1    Rezystor                27R                 R10&lt;br /&gt;
     6     3    Rezystor                220R                R11,R12,R13&lt;br /&gt;
     7     1    Kondensator tantalowy   10uF                C4&lt;br /&gt;
     8     2    Kondensator ceramiczny  22pF                C1,C2&lt;br /&gt;
     9     4    Kondensator ceramiczny  100nF               C3,C12,C10,C11&lt;br /&gt;
    10     5    Kondensator ceramiczny  22nF                C5,C6,C7,C8,C9&lt;br /&gt;
    11     1    Kwarc                   7.3728 lub 14MHz    Q1&lt;br /&gt;
    12     1    Dioda Schottkiego       BAT85               opcjonalnie&lt;br /&gt;
    13     1    Procesor ATMEGA32-16PI (lub Atmega 32L-8PU) IC1&lt;br /&gt;
    14     1    Stabilizator            3.3V                IC2&lt;br /&gt;
    15     3    Diody LED               3V                  LED1,LED2,LED3&lt;br /&gt;
    16     5    Mikrostyki                -                 S1,S2,S3,S4,S5&lt;br /&gt;
    17     1    Gniazdo SD                -                 SD&lt;br /&gt;
    18     1    Wyświetlacz 2x16 LED      -                 JP3&lt;br /&gt;
&lt;br /&gt;
==Porady dotyczące uruchomienia układu==&lt;br /&gt;
&lt;br /&gt;
* Dla kwarca 7.3728 MHz fuse procesora Atmel ustawiamy na (H:0xD1 ; L:0xFF)&lt;br /&gt;
* Dla kwarca 14.3118 MHz fuse procesora Atmel ustawiamy na (H:0xC3 ; L:0xFF)&lt;br /&gt;
* Jeżeli podczas wyboru plików ATR na wyświetlaczu pojawiają się śmieci - należy wymienić stabilizator napięcia 3.3V (na np. precyzyjny stabilizator napięcia 1.0A w obudowie TO-220)&lt;br /&gt;
* Komunikat &#039;Błąd odczytu karty SD&#039; - gdy jest włożona do slotu - przyczyną jest brak styku przy kondensatorze C12 lub stabilizatorze napięcia 3.3V. PCB jest dwustronne, dlatego zaleca się poprawić lutowanie z obu stron płytki dla tych elementów.&lt;br /&gt;
&lt;br /&gt;
==Programowanie, obsługa SIO==&lt;br /&gt;
&lt;br /&gt;
Sio2SD jest urządzeniem [[SIO]], z którym możemy się komunikować.&lt;br /&gt;
Wykorzystuje tę możliwość dedykowany przez autora Sio2SD.com, a także grupy MadTeam [[Atari Commander]] od wersji 1.7 oraz S2S.com autorstwa Truba&amp;lt;br&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Poniżej oficjalne dane zebrane przez [[Pajero]] zgodne z wersją firmware 2.5.&amp;lt;br&amp;gt;Nowsze wersje (3.0) mają o wiele większą liczbę komend, co opisane jest na &amp;lt;b&amp;gt;nowej&amp;lt;/b&amp;gt; stronie www...&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
* $300 DDEVIC = $73 &lt;br /&gt;
* $301 DUNIT  = deviceID&lt;br /&gt;
* $306 DTIMLO = $7f minimum, optymalnie $90&lt;br /&gt;
* $307 DUNUSE = $00 zawsze&lt;br /&gt;
&lt;br /&gt;
DeviceID znajduje się w pliku konfiguracji Sio2SD.com (musi być to 6.bajt programu!).&amp;lt;br&amp;gt;Wartość: 0-3. To pozwala podłączyć do 4 urządzeń do Atari jednocześnie.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=1 cellpadding=6&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$0302 &amp;lt;b&amp;gt;DCMND&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0303 &amp;lt;b&amp;gt;DSTATS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0304/5 &amp;lt;b&amp;gt;DBUFA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0308/9 &amp;lt;b&amp;gt;DBYT&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030A &amp;lt;b&amp;gt;DAUX1&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030B &amp;lt;b&amp;gt;DAUX2&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;$00 get status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Odczytana wartość:&amp;lt;br&amp;gt;00 = brak karty&amp;lt;br&amp;gt;01 = OK &amp;lt;br&amp;gt;02 = OK zmieniono kartę na inną&amp;lt;br&amp;gt;03 = OK zmiany w D1-D8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$01&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$01 get drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;br&amp;gt;lub&amp;lt;br&amp;gt;$36 * Ilość wpisów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;br&amp;gt;lub&amp;lt;br&amp;gt;Ilość wpisów: 1-4&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;$02 mount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$03 unmount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$04 get name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla nazwy wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;br&amp;gt;lub&amp;lt;br&amp;gt;$36 * Ilość wpisów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;br&amp;gt;lub&amp;lt;br&amp;gt;Ilość wpisów: 1-4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;00 = kolejny wpis&amp;lt;br&amp;gt;01 = rewind i wczytaj kolejny wpis&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;$05 select directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą katalogu &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$06 up directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$10 lcd set&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z linią do wyświetlenia&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$28&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00 = linia górna&amp;lt;br&amp;gt;$01 = linia dolna&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oczywiście obowiązuje zawsze sprawdzenie czy komenda została poprawnie wykonana. &lt;br /&gt;
&lt;br /&gt;
Czyli mamy możliwość sprawdzenia czy urządzenie jest włączone do gniazda SIO - get status; możemy odczytać co jest podpięte do jednego z ośmiu urządzeń - get drive; zmienić to podpięcie - mount drive; lub je wyłączyć (tzw. --OFF-- ) - unmount drive; odczytać zawartość bieżącego katalogu - get name; wejść do wybranego katalogu - select directory; przejść o katalog wyżej (do nadrzędnego) - up directory; a także wysłać tekst na wyświetlacz.&lt;br /&gt;
&lt;br /&gt;
Niestety w tej wersji urządzenia nie można ustawiać dowolnie ścieżki katalogów (nalezy po nich &amp;quot;skakać&amp;quot; krokowo), odczytywać dowolnego wpisu z katalogu - zawsze przekazywany jest wpis po wpisie.&lt;br /&gt;
Największym bólem jest brak możliwości zapisywania do samej karty. Czyli nie można założyć nowego [[ATR]]-a.&lt;br /&gt;
&lt;br /&gt;
===Wpis katalogu===&lt;br /&gt;
&lt;br /&gt;
Komunikacja odbywa się blokami po $36 bajtów. Zawartość:&lt;br /&gt;
* $00-$26 = nazwa wpisu do katalogu wypełniona do końca spacjami&lt;br /&gt;
* $27 = status wpisu: 01 katalog, 02 atr, 03 xfd, 04 inny &lt;br /&gt;
* $2c-$2f = file size (nie dla katalogu)&lt;br /&gt;
* reszta zawiera dane dot.położenia wpisu na karcie SD.&lt;br /&gt;
Jeśli pierwszy bajt równy 0 = koniec katalogu, potem znowu wszystko od początku.&lt;br /&gt;
&lt;br /&gt;
==Programowanie układu ATMEL==&lt;br /&gt;
&lt;br /&gt;
Aby zmienić firmware wystarczy: wgrać program binarny SIO2SD.BIN o długości 30720 B do głównego katalogu karty SD; odpalić Sio2SD z wciśniętym K4 by wejść do trybu konfiguracji; a tam w menu wcisnąć Shift+K3. Ale przy błędzie takiej operacji lub jeśli rozprogramuje się układ Atmel możemy tylko ratować się programując procesor.&lt;br /&gt;
Do tego celu może posłużyć dowolny programator (np. [http://allegro.pl/listing.php/search?string=stk200*&amp;amp;from_showcat=1&amp;amp;category=68366&amp;amp;description=1&amp;amp;from_showcat=1&amp;amp;order=p&amp;amp;change_view=1 STK 200/300] za ~12PLN na Allegro) podłączany do portu LPT (drukarki) w PC. Za pomocą programu (np. darmowy PonyProg) szybko odratujemy Atmela. &lt;br /&gt;
Podłączamy kable programatora do złącza JP2 w płytce Sio2SD. Oznaczenia pinów - widok na PCB od strony elementów - powyżej jest Atmel: &lt;br /&gt;
&lt;br /&gt;
 RESET  CLK  MISO&lt;br /&gt;
  GND  MOSI   VCC&lt;br /&gt;
&lt;br /&gt;
Włączamy PC (wtyk D-Sub 25 wpięty już jest do LPT), podłączamy Sio2SD do Atari i je włączamy.&lt;br /&gt;
Uruchamiamy program, który wykona programowanie. Szczegóły obsługi programu dostępne są w sieci lub u sprzedawcy programatora.&lt;br /&gt;
&lt;br /&gt;
==Przydatne linki==&lt;br /&gt;
&lt;br /&gt;
Więcej informacji na [http://sio2sd.gucio.pl/ stronie] autora projektu.&lt;br /&gt;
Żródło Atari Commandera na [http://madteam.atari8.info/index.php?prod=uzytki  stronie MadTeamu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29679</id>
		<title>SIO2SD</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29679"/>
		<updated>2010-08-30T17:42:06Z</updated>

		<summary type="html">&lt;p&gt;Pajero: /* Wykaz urządzeń */  skasowane&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Informacje Ogólne==&lt;br /&gt;
SIO2SD to interfejs autorstwa [[Jakub_Kruszona-Zawadzki|Jakuba Kruszony-Zawadzkiego]], pozwalający na wczytywanie gier/programów na Atari 8-bit poprzez port SIO z kart SD/MMC. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:Sio2sd.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cechy urządzenia==&lt;br /&gt;
&lt;br /&gt;
* Obsługa kart SD/MMC (formaty FAT12, FAT16 i FAT32) &lt;br /&gt;
* Obsługa plików w formatach ATR (rw), XFD (ro) i COM/XEX (ro) &lt;br /&gt;
* Wyświetlacz 16x2 pokazujący aktualnie wybrany katalog i plik ATR/XEX podmapowany pod określony numer stacji dysków.&lt;br /&gt;
* Obsługa SIO z turbo (możliwość ustawienia prędkości - hsindex od 1 do 16, standardowo 6, co odpowiada prędkości ok. 69kb/s, do wersji 2007.02.18 była stała prędkość 51kb/s - hsindex 10) &lt;br /&gt;
* Wszystkie gęstości z sektorami 128B i 256B (TOMS&#039;owe 512B na razie nieobsługiwane), w tym również dyski 16MB &lt;br /&gt;
* Możliwość równoległej obsługi 8 stacji (do wersji 2007.02.08 tylko 4 stacje: D1-D4) &lt;br /&gt;
* Możliwość konfigurowania z poziomu ATARI (możliwe ładowanie programu konfiguracyjnego bezpośrednio z urządzenia, bez potrzeby nagrywania na kartę SD)&lt;br /&gt;
&lt;br /&gt;
==Wydajność==&lt;br /&gt;
&lt;br /&gt;
Prędkość zmierzona programem [[RW-Test]] pod [[SpartaDOS X]]:&lt;br /&gt;
&lt;br /&gt;
* DOS Reading: 1719,8 B/sek.&lt;br /&gt;
* DOS Writing: 5137,8 B/sek.&lt;br /&gt;
* DOS Average: 3428,8 B/sek.&lt;br /&gt;
&lt;br /&gt;
Użyto RW-Test w wersji 3.0 i karty SD Pretec Highspeed 60x.&lt;br /&gt;
&lt;br /&gt;
==Lista elementów==&lt;br /&gt;
&lt;br /&gt;
Poniżej przedstawiona jest lista elementów elektronicznych potrzebnych do budowy układu.&lt;br /&gt;
&lt;br /&gt;
    Lp  Ilość   Nazwa Elementu         Wartość          Oznaczenie elementu&lt;br /&gt;
     1     2    Rezystor                10k                 R1,R3&lt;br /&gt;
     2     1    Potencjometr            2.2k                R2&lt;br /&gt;
     3     3    Rezystor                1.8k                R4,R5,R6&lt;br /&gt;
     4     3    Rezystor                3.3k                R7,R8,R9&lt;br /&gt;
     5     1    Rezystor                27R                 R10&lt;br /&gt;
     6     3    Rezystor                220R                R11,R12,R13&lt;br /&gt;
     7     1    Kondensator tantalowy   10uF                C4&lt;br /&gt;
     8     2    Kondensator ceramiczny  22pF                C1,C2&lt;br /&gt;
     9     4    Kondensator ceramiczny  100nF               C3,C12,C10,C11&lt;br /&gt;
    10     5    Kondensator ceramiczny  22nF                C5,C6,C7,C8,C9&lt;br /&gt;
    11     1    Kwarc                   7.3728 lub 14MHz    Q1&lt;br /&gt;
    12     1    Dioda Schottkiego       BAT85               opcjonalnie&lt;br /&gt;
    13     1    Procesor ATMEGA32-16PI (lub Atmega 32L-8PU) IC1&lt;br /&gt;
    14     1    Stabilizator            3.3V                IC2&lt;br /&gt;
    15     3    Diody LED               3V                  LED1,LED2,LED3&lt;br /&gt;
    16     5    Mikrostyki                -                 S1,S2,S3,S4,S5&lt;br /&gt;
    17     1    Gniazdo SD                -                 SD&lt;br /&gt;
    18     1    Wyświetlacz 2x16 LED      -                 JP3&lt;br /&gt;
&lt;br /&gt;
==Porady dotyczące uruchomienia układu==&lt;br /&gt;
&lt;br /&gt;
* Dla kwarca 7.3728 MHz fuse procesora Atmel ustawiamy na (H:0xD1 ; L:0xFF)&lt;br /&gt;
* Dla kwarca 14.3118 MHz fuse procesora Atmel ustawiamy na (H:0xC3 ; L:0xFF)&lt;br /&gt;
* Jeżeli podczas wyboru plików ATR na wyświetlaczu pojawiają się śmieci - należy wymienić stabilizator napięcia 3.3V (na np. precyzyjny stabilizator napięcia 1.0A w obudowie TO-220)&lt;br /&gt;
* Komunikat &#039;Błąd odczytu karty SD&#039; - gdy jest włożona do slotu - przyczyną jest brak styku przy kondensatorze C12 lub stabilizatorze napięcia 3.3V. PCB jest dwustronne, dlatego zaleca się poprawić lutowanie z obu stron płytki dla tych elementów.&lt;br /&gt;
&lt;br /&gt;
==Programowanie, obsługa SIO==&lt;br /&gt;
&lt;br /&gt;
Sio2SD jest urządzeniem [[SIO]], z którym możemy się komunikować. Wykorzystuje tę możliwość dedykowany przez autora Sio2SD.com albo grupy MadTeam [[Atari Commander]] od wersji 1.7&amp;lt;br&amp;gt; &lt;br /&gt;
Poniżej nieoficjalne dane zebrane przez [[Pajero]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
* $300 DDEVIC = $73 &lt;br /&gt;
* $301 DUNIT  = deviceID&lt;br /&gt;
* $306 DTIMLO = $7f minimum, optymalnie $90&lt;br /&gt;
* $307 DUNUSE = $00 zawsze&lt;br /&gt;
* $30B DAUX2  = $00 zawsze&lt;br /&gt;
&lt;br /&gt;
DeviceID znajduje się w konfiguracji Sio2SD. Wartości 0-3. Pozwala podłączyć do 4 urzadzeń do Atari jednocześnie.&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;$0302 &amp;lt;b&amp;gt;DCMND&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0303 &amp;lt;b&amp;gt;DSTATS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0304/5 &amp;lt;b&amp;gt;DBUFA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0308/9 &amp;lt;b&amp;gt;DBYT&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030A &amp;lt;b&amp;gt;DAUX1&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;$00 get status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bufor jednobajtowy. Odczytana wartość:&amp;lt;br&amp;gt;00 = brak karty&amp;lt;br&amp;gt;01 = OK &amp;lt;br&amp;gt;02 = OK zmieniono kartę na inną&amp;lt;br&amp;gt;03 = OK zmiany w D1-D8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$01&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$01 get drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$02 mount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$03 unmount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$04 get name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla nazwy wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$05 select directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą katalogu &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$06 up directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$10 lcd set&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z linią do wyświetlenia&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$28&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00 = linia górna&amp;lt;br&amp;gt;$01 = linia dolna&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oczywiście obowiązuje zawsze sprawdzenie czy komenda została poprawnie wykonana. &lt;br /&gt;
&lt;br /&gt;
Czyli mamy możliwość sprawdzenia czy urządzenie jest włączone do gniazda SIO - get status; możemy odczytać co jest podpięte do jednego z ośmiu urządzeń - get drive; zmienić to podpięcie - mount drive; lub je wyłączyć (tzw. --OFF-- ) - unmount drive; odczytać zawartość bieżącego katalogu - get name; wejść do wybranego katalogu - select directory; przejść o katalog wyżej (do nadrzędnego) - up directory; a także wysłać tekst na wyświetlacz.&lt;br /&gt;
&lt;br /&gt;
Niestety w tej wersji urządzenia nie można ustawiać dowolnie ścieżki katalogów (nalezy po nich &amp;quot;skakać&amp;quot; krokowo), odczytywać dowolnego wpisu z katalogu - zawsze przekazywany jest wpis po wpisie.&lt;br /&gt;
Największym bólem jest brak możliwości zapisywania do samej karty. Czyli nie można założyć nowego [[ATR|Atr&#039;a]].&lt;br /&gt;
&lt;br /&gt;
===Wpis katalogu===&lt;br /&gt;
&lt;br /&gt;
Komunikacja odbywa się blokami po $36 bajtów. Zawartość:&lt;br /&gt;
* $00-$26 = nazwa wpisu do katalogu wypełniona do końca spacjami&lt;br /&gt;
* $27 = status wpisu: 01 katalog, 02 atr, 03 xfd, 04 inny &lt;br /&gt;
* $2c-$2f = file size (nie dla katalogu)&lt;br /&gt;
* reszta zawiera dane dot.położenia wpisu na karcie SD.&lt;br /&gt;
Jeśli pierwszy bajt równy 0 = koniec katalogu, potem znowu wszystko od początku.&lt;br /&gt;
&lt;br /&gt;
==Programowanie układu ATMEL==&lt;br /&gt;
&lt;br /&gt;
Aby zmienić firmware wystarczy: wgrać program binarny SIO2SD.BIN długości 30720b do głównego katalogu karty SD; odpalić Sio2SD z wciśniętym K4 by wejść do trybu konfiguracji; a tam w menu wcisnąć Shift+K3. Ale przy błędzie takiej operacji lub jeśli rozprogramuje się układ Atmel możemy tylko ratować się programując procesor.&lt;br /&gt;
Do tego celu może posłużyć dowolny programator (np. [http://allegro.pl/listing.php/search?string=stk200*&amp;amp;from_showcat=1&amp;amp;category=68366&amp;amp;description=1&amp;amp;from_showcat=1&amp;amp;order=p&amp;amp;change_view=1 STK 200/300] za ~12PLN na Allegro) podłączany do portu LPT (drukarki) w PC&#039;ecie. Za pomocą programu (np. darmowy PonyProg) szybko odratujemy Atmela. &lt;br /&gt;
Podłączamy kable programatora do złącza JP2 w płytce Sio2SD. Oznaczenia pinów - widok na PCB od strony elementów - powyżej jest Atmel: &lt;br /&gt;
&lt;br /&gt;
 RESET  CLK  MISO&lt;br /&gt;
  GND  MOSI   VCC&lt;br /&gt;
&lt;br /&gt;
Włączamy PC (wtyk D-Sub 25 wpięty już jest do LPT), podłączamy Sio2SD do Atari i je włączamy!&lt;br /&gt;
Uruchamiamy program, który wykona programowanie. Szczegóły obsługi programu dostępne są w sieci lub u sprzedawcy programatora!&lt;br /&gt;
&lt;br /&gt;
==Przydatne linki==&lt;br /&gt;
&lt;br /&gt;
Więcej informacji na [http://sio2sd.gucio.pl/ stronie] autora projektu.&lt;br /&gt;
Żródło Atari Commandera na [http://madteam.atari8.info/index.php?prod=uzytki  stronie MadTeamu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29678</id>
		<title>SIO2SD</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29678"/>
		<updated>2010-08-30T17:39:07Z</updated>

		<summary type="html">&lt;p&gt;Pajero: /* Wykaz komend */  korekta $300&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Informacje Ogólne==&lt;br /&gt;
SIO2SD to interfejs autorstwa [[Jakub_Kruszona-Zawadzki|Jakuba Kruszony-Zawadzkiego]], pozwalający na wczytywanie gier/programów na Atari 8-bit poprzez port SIO z kart SD/MMC. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:Sio2sd.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cechy urządzenia==&lt;br /&gt;
&lt;br /&gt;
* Obsługa kart SD/MMC (formaty FAT12, FAT16 i FAT32) &lt;br /&gt;
* Obsługa plików w formatach ATR (rw), XFD (ro) i COM/XEX (ro) &lt;br /&gt;
* Wyświetlacz 16x2 pokazujący aktualnie wybrany katalog i plik ATR/XEX podmapowany pod określony numer stacji dysków.&lt;br /&gt;
* Obsługa SIO z turbo (możliwość ustawienia prędkości - hsindex od 1 do 16, standardowo 6, co odpowiada prędkości ok. 69kb/s, do wersji 2007.02.18 była stała prędkość 51kb/s - hsindex 10) &lt;br /&gt;
* Wszystkie gęstości z sektorami 128B i 256B (TOMS&#039;owe 512B na razie nieobsługiwane), w tym również dyski 16MB &lt;br /&gt;
* Możliwość równoległej obsługi 8 stacji (do wersji 2007.02.08 tylko 4 stacje: D1-D4) &lt;br /&gt;
* Możliwość konfigurowania z poziomu ATARI (możliwe ładowanie programu konfiguracyjnego bezpośrednio z urządzenia, bez potrzeby nagrywania na kartę SD)&lt;br /&gt;
&lt;br /&gt;
==Wydajność==&lt;br /&gt;
&lt;br /&gt;
Prędkość zmierzona programem [[RW-Test]] pod [[SpartaDOS X]]:&lt;br /&gt;
&lt;br /&gt;
* DOS Reading: 1719,8 B/sek.&lt;br /&gt;
* DOS Writing: 5137,8 B/sek.&lt;br /&gt;
* DOS Average: 3428,8 B/sek.&lt;br /&gt;
&lt;br /&gt;
Użyto RW-Test w wersji 3.0 i karty SD Pretec Highspeed 60x.&lt;br /&gt;
&lt;br /&gt;
==Lista elementów==&lt;br /&gt;
&lt;br /&gt;
Poniżej przedstawiona jest lista elementów elektronicznych potrzebnych do budowy układu.&lt;br /&gt;
&lt;br /&gt;
    Lp  Ilość   Nazwa Elementu         Wartość          Oznaczenie elementu&lt;br /&gt;
     1     2    Rezystor                10k                 R1,R3&lt;br /&gt;
     2     1    Potencjometr            2.2k                R2&lt;br /&gt;
     3     3    Rezystor                1.8k                R4,R5,R6&lt;br /&gt;
     4     3    Rezystor                3.3k                R7,R8,R9&lt;br /&gt;
     5     1    Rezystor                27R                 R10&lt;br /&gt;
     6     3    Rezystor                220R                R11,R12,R13&lt;br /&gt;
     7     1    Kondensator tantalowy   10uF                C4&lt;br /&gt;
     8     2    Kondensator ceramiczny  22pF                C1,C2&lt;br /&gt;
     9     4    Kondensator ceramiczny  100nF               C3,C12,C10,C11&lt;br /&gt;
    10     5    Kondensator ceramiczny  22nF                C5,C6,C7,C8,C9&lt;br /&gt;
    11     1    Kwarc                   7.3728 lub 14MHz    Q1&lt;br /&gt;
    12     1    Dioda Schottkiego       BAT85               opcjonalnie&lt;br /&gt;
    13     1    Procesor ATMEGA32-16PI (lub Atmega 32L-8PU) IC1&lt;br /&gt;
    14     1    Stabilizator            3.3V                IC2&lt;br /&gt;
    15     3    Diody LED               3V                  LED1,LED2,LED3&lt;br /&gt;
    16     5    Mikrostyki                -                 S1,S2,S3,S4,S5&lt;br /&gt;
    17     1    Gniazdo SD                -                 SD&lt;br /&gt;
    18     1    Wyświetlacz 2x16 LED      -                 JP3&lt;br /&gt;
&lt;br /&gt;
==Porady dotyczące uruchomienia układu==&lt;br /&gt;
&lt;br /&gt;
* Dla kwarca 7.3728 MHz fuse procesora Atmel ustawiamy na (H:0xD1 ; L:0xFF)&lt;br /&gt;
* Dla kwarca 14.3118 MHz fuse procesora Atmel ustawiamy na (H:0xC3 ; L:0xFF)&lt;br /&gt;
* Jeżeli podczas wyboru plików ATR na wyświetlaczu pojawiają się śmieci - należy wymienić stabilizator napięcia 3.3V (na np. precyzyjny stabilizator napięcia 1.0A w obudowie TO-220)&lt;br /&gt;
* Komunikat &#039;Błąd odczytu karty SD&#039; - gdy jest włożona do slotu - przyczyną jest brak styku przy kondensatorze C12 lub stabilizatorze napięcia 3.3V. PCB jest dwustronne, dlatego zaleca się poprawić lutowanie z obu stron płytki dla tych elementów.&lt;br /&gt;
&lt;br /&gt;
==Programowanie, obsługa SIO==&lt;br /&gt;
&lt;br /&gt;
Sio2SD jest urządzeniem [[SIO]], z którym możemy się komunikować. Wykorzystuje tę możliwość dedykowany przez autora Sio2SD.com albo grupy MadTeam [[Atari Commander]] od wersji 1.7&amp;lt;br&amp;gt; &lt;br /&gt;
Poniżej nieoficjalne dane zebrane przez [[Pajero]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz urządzeń===&lt;br /&gt;
&lt;br /&gt;
* $73 - zgłasza się jako urządzenie numer 3, widocznie no.1 to [[SIO2IDE|Sio2Ide]], a no.2 to [[SIO2PC|Sio2pc]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
* $300 DDEVIC = $73 &lt;br /&gt;
* $301 DUNIT  = deviceID&lt;br /&gt;
* $306 DTIMLO = $7f minimum, optymalnie $90&lt;br /&gt;
* $307 DUNUSE = $00 zawsze&lt;br /&gt;
* $30B DAUX2  = $00 zawsze&lt;br /&gt;
&lt;br /&gt;
DeviceID znajduje się w konfiguracji Sio2SD. Wartości 0-3. Pozwala podłączyć do 4 urzadzeń do Atari jednocześnie.&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;$0302 &amp;lt;b&amp;gt;DCMND&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0303 &amp;lt;b&amp;gt;DSTATS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0304/5 &amp;lt;b&amp;gt;DBUFA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0308/9 &amp;lt;b&amp;gt;DBYT&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030A &amp;lt;b&amp;gt;DAUX1&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;$00 get status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bufor jednobajtowy. Odczytana wartość:&amp;lt;br&amp;gt;00 = brak karty&amp;lt;br&amp;gt;01 = OK &amp;lt;br&amp;gt;02 = OK zmieniono kartę na inną&amp;lt;br&amp;gt;03 = OK zmiany w D1-D8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$01&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$01 get drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$02 mount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$03 unmount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$04 get name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla nazwy wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$05 select directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą katalogu &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$06 up directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$10 lcd set&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z linią do wyświetlenia&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$28&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00 = linia górna&amp;lt;br&amp;gt;$01 = linia dolna&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oczywiście obowiązuje zawsze sprawdzenie czy komenda została poprawnie wykonana. &lt;br /&gt;
&lt;br /&gt;
Czyli mamy możliwość sprawdzenia czy urządzenie jest włączone do gniazda SIO - get status; możemy odczytać co jest podpięte do jednego z ośmiu urządzeń - get drive; zmienić to podpięcie - mount drive; lub je wyłączyć (tzw. --OFF-- ) - unmount drive; odczytać zawartość bieżącego katalogu - get name; wejść do wybranego katalogu - select directory; przejść o katalog wyżej (do nadrzędnego) - up directory; a także wysłać tekst na wyświetlacz.&lt;br /&gt;
&lt;br /&gt;
Niestety w tej wersji urządzenia nie można ustawiać dowolnie ścieżki katalogów (nalezy po nich &amp;quot;skakać&amp;quot; krokowo), odczytywać dowolnego wpisu z katalogu - zawsze przekazywany jest wpis po wpisie.&lt;br /&gt;
Największym bólem jest brak możliwości zapisywania do samej karty. Czyli nie można założyć nowego [[ATR|Atr&#039;a]].&lt;br /&gt;
&lt;br /&gt;
===Wpis katalogu===&lt;br /&gt;
&lt;br /&gt;
Komunikacja odbywa się blokami po $36 bajtów. Zawartość:&lt;br /&gt;
* $00-$26 = nazwa wpisu do katalogu wypełniona do końca spacjami&lt;br /&gt;
* $27 = status wpisu: 01 katalog, 02 atr, 03 xfd, 04 inny &lt;br /&gt;
* $2c-$2f = file size (nie dla katalogu)&lt;br /&gt;
* reszta zawiera dane dot.położenia wpisu na karcie SD.&lt;br /&gt;
Jeśli pierwszy bajt równy 0 = koniec katalogu, potem znowu wszystko od początku.&lt;br /&gt;
&lt;br /&gt;
==Programowanie układu ATMEL==&lt;br /&gt;
&lt;br /&gt;
Aby zmienić firmware wystarczy: wgrać program binarny SIO2SD.BIN długości 30720b do głównego katalogu karty SD; odpalić Sio2SD z wciśniętym K4 by wejść do trybu konfiguracji; a tam w menu wcisnąć Shift+K3. Ale przy błędzie takiej operacji lub jeśli rozprogramuje się układ Atmel możemy tylko ratować się programując procesor.&lt;br /&gt;
Do tego celu może posłużyć dowolny programator (np. [http://allegro.pl/listing.php/search?string=stk200*&amp;amp;from_showcat=1&amp;amp;category=68366&amp;amp;description=1&amp;amp;from_showcat=1&amp;amp;order=p&amp;amp;change_view=1 STK 200/300] za ~12PLN na Allegro) podłączany do portu LPT (drukarki) w PC&#039;ecie. Za pomocą programu (np. darmowy PonyProg) szybko odratujemy Atmela. &lt;br /&gt;
Podłączamy kable programatora do złącza JP2 w płytce Sio2SD. Oznaczenia pinów - widok na PCB od strony elementów - powyżej jest Atmel: &lt;br /&gt;
&lt;br /&gt;
 RESET  CLK  MISO&lt;br /&gt;
  GND  MOSI   VCC&lt;br /&gt;
&lt;br /&gt;
Włączamy PC (wtyk D-Sub 25 wpięty już jest do LPT), podłączamy Sio2SD do Atari i je włączamy!&lt;br /&gt;
Uruchamiamy program, który wykona programowanie. Szczegóły obsługi programu dostępne są w sieci lub u sprzedawcy programatora!&lt;br /&gt;
&lt;br /&gt;
==Przydatne linki==&lt;br /&gt;
&lt;br /&gt;
Więcej informacji na [http://sio2sd.gucio.pl/ stronie] autora projektu.&lt;br /&gt;
Żródło Atari Commandera na [http://madteam.atari8.info/index.php?prod=uzytki  stronie MadTeamu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29677</id>
		<title>SIO2SD</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29677"/>
		<updated>2010-08-30T17:37:13Z</updated>

		<summary type="html">&lt;p&gt;Pajero: /* Wpis katalogu */  dodatkowe informacje&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Informacje Ogólne==&lt;br /&gt;
SIO2SD to interfejs autorstwa [[Jakub_Kruszona-Zawadzki|Jakuba Kruszony-Zawadzkiego]], pozwalający na wczytywanie gier/programów na Atari 8-bit poprzez port SIO z kart SD/MMC. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:Sio2sd.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cechy urządzenia==&lt;br /&gt;
&lt;br /&gt;
* Obsługa kart SD/MMC (formaty FAT12, FAT16 i FAT32) &lt;br /&gt;
* Obsługa plików w formatach ATR (rw), XFD (ro) i COM/XEX (ro) &lt;br /&gt;
* Wyświetlacz 16x2 pokazujący aktualnie wybrany katalog i plik ATR/XEX podmapowany pod określony numer stacji dysków.&lt;br /&gt;
* Obsługa SIO z turbo (możliwość ustawienia prędkości - hsindex od 1 do 16, standardowo 6, co odpowiada prędkości ok. 69kb/s, do wersji 2007.02.18 była stała prędkość 51kb/s - hsindex 10) &lt;br /&gt;
* Wszystkie gęstości z sektorami 128B i 256B (TOMS&#039;owe 512B na razie nieobsługiwane), w tym również dyski 16MB &lt;br /&gt;
* Możliwość równoległej obsługi 8 stacji (do wersji 2007.02.08 tylko 4 stacje: D1-D4) &lt;br /&gt;
* Możliwość konfigurowania z poziomu ATARI (możliwe ładowanie programu konfiguracyjnego bezpośrednio z urządzenia, bez potrzeby nagrywania na kartę SD)&lt;br /&gt;
&lt;br /&gt;
==Wydajność==&lt;br /&gt;
&lt;br /&gt;
Prędkość zmierzona programem [[RW-Test]] pod [[SpartaDOS X]]:&lt;br /&gt;
&lt;br /&gt;
* DOS Reading: 1719,8 B/sek.&lt;br /&gt;
* DOS Writing: 5137,8 B/sek.&lt;br /&gt;
* DOS Average: 3428,8 B/sek.&lt;br /&gt;
&lt;br /&gt;
Użyto RW-Test w wersji 3.0 i karty SD Pretec Highspeed 60x.&lt;br /&gt;
&lt;br /&gt;
==Lista elementów==&lt;br /&gt;
&lt;br /&gt;
Poniżej przedstawiona jest lista elementów elektronicznych potrzebnych do budowy układu.&lt;br /&gt;
&lt;br /&gt;
    Lp  Ilość   Nazwa Elementu         Wartość          Oznaczenie elementu&lt;br /&gt;
     1     2    Rezystor                10k                 R1,R3&lt;br /&gt;
     2     1    Potencjometr            2.2k                R2&lt;br /&gt;
     3     3    Rezystor                1.8k                R4,R5,R6&lt;br /&gt;
     4     3    Rezystor                3.3k                R7,R8,R9&lt;br /&gt;
     5     1    Rezystor                27R                 R10&lt;br /&gt;
     6     3    Rezystor                220R                R11,R12,R13&lt;br /&gt;
     7     1    Kondensator tantalowy   10uF                C4&lt;br /&gt;
     8     2    Kondensator ceramiczny  22pF                C1,C2&lt;br /&gt;
     9     4    Kondensator ceramiczny  100nF               C3,C12,C10,C11&lt;br /&gt;
    10     5    Kondensator ceramiczny  22nF                C5,C6,C7,C8,C9&lt;br /&gt;
    11     1    Kwarc                   7.3728 lub 14MHz    Q1&lt;br /&gt;
    12     1    Dioda Schottkiego       BAT85               opcjonalnie&lt;br /&gt;
    13     1    Procesor ATMEGA32-16PI (lub Atmega 32L-8PU) IC1&lt;br /&gt;
    14     1    Stabilizator            3.3V                IC2&lt;br /&gt;
    15     3    Diody LED               3V                  LED1,LED2,LED3&lt;br /&gt;
    16     5    Mikrostyki                -                 S1,S2,S3,S4,S5&lt;br /&gt;
    17     1    Gniazdo SD                -                 SD&lt;br /&gt;
    18     1    Wyświetlacz 2x16 LED      -                 JP3&lt;br /&gt;
&lt;br /&gt;
==Porady dotyczące uruchomienia układu==&lt;br /&gt;
&lt;br /&gt;
* Dla kwarca 7.3728 MHz fuse procesora Atmel ustawiamy na (H:0xD1 ; L:0xFF)&lt;br /&gt;
* Dla kwarca 14.3118 MHz fuse procesora Atmel ustawiamy na (H:0xC3 ; L:0xFF)&lt;br /&gt;
* Jeżeli podczas wyboru plików ATR na wyświetlaczu pojawiają się śmieci - należy wymienić stabilizator napięcia 3.3V (na np. precyzyjny stabilizator napięcia 1.0A w obudowie TO-220)&lt;br /&gt;
* Komunikat &#039;Błąd odczytu karty SD&#039; - gdy jest włożona do slotu - przyczyną jest brak styku przy kondensatorze C12 lub stabilizatorze napięcia 3.3V. PCB jest dwustronne, dlatego zaleca się poprawić lutowanie z obu stron płytki dla tych elementów.&lt;br /&gt;
&lt;br /&gt;
==Programowanie, obsługa SIO==&lt;br /&gt;
&lt;br /&gt;
Sio2SD jest urządzeniem [[SIO]], z którym możemy się komunikować. Wykorzystuje tę możliwość dedykowany przez autora Sio2SD.com albo grupy MadTeam [[Atari Commander]] od wersji 1.7&amp;lt;br&amp;gt; &lt;br /&gt;
Poniżej nieoficjalne dane zebrane przez [[Pajero]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz urządzeń===&lt;br /&gt;
&lt;br /&gt;
* $73 - zgłasza się jako urządzenie numer 3, widocznie no.1 to [[SIO2IDE|Sio2Ide]], a no.2 to [[SIO2PC|Sio2pc]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
* $300 DDEVIC = $70 lub $73 +deviceID&lt;br /&gt;
* $301 DUNIT  = $03 lub $00 +deviceID&lt;br /&gt;
* $306 DTIMLO = $7f minimum, optymalnie $90&lt;br /&gt;
* $307 DUNUSE = $00 zawsze&lt;br /&gt;
* $30B DAUX2  = $00 zawsze&lt;br /&gt;
&lt;br /&gt;
DeviceID znajduje się w konfiguracji Sio2SD. Wartości 0-3. Pozwala podłączyć do 4 urzadzeń do Atari jednocześnie.&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;$0302 &amp;lt;b&amp;gt;DCMND&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0303 &amp;lt;b&amp;gt;DSTATS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0304/5 &amp;lt;b&amp;gt;DBUFA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0308/9 &amp;lt;b&amp;gt;DBYT&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030A &amp;lt;b&amp;gt;DAUX1&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;$00 get status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bufor jednobajtowy. Odczytana wartość:&amp;lt;br&amp;gt;00 = brak karty&amp;lt;br&amp;gt;01 = OK &amp;lt;br&amp;gt;02 = OK zmieniono kartę na inną&amp;lt;br&amp;gt;03 = OK zmiany w D1-D8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$01&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$01 get drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$02 mount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$03 unmount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$04 get name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla nazwy wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$05 select directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą katalogu &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$06 up directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$10 lcd set&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z linią do wyświetlenia&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$28&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00 = linia górna&amp;lt;br&amp;gt;$01 = linia dolna&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oczywiście obowiązuje zawsze sprawdzenie czy komenda została poprawnie wykonana. &lt;br /&gt;
&lt;br /&gt;
Czyli mamy możliwość sprawdzenia czy urządzenie jest włączone do gniazda SIO - get status; możemy odczytać co jest podpięte do jednego z ośmiu urządzeń - get drive; zmienić to podpięcie - mount drive; lub je wyłączyć (tzw. --OFF-- ) - unmount drive; odczytać zawartość bieżącego katalogu - get name; wejść do wybranego katalogu - select directory; przejść o katalog wyżej (do nadrzędnego) - up directory; a także wysłać tekst na wyświetlacz.&lt;br /&gt;
&lt;br /&gt;
Niestety w tej wersji urządzenia nie można ustawiać dowolnie ścieżki katalogów (nalezy po nich &amp;quot;skakać&amp;quot; krokowo), odczytywać dowolnego wpisu z katalogu - zawsze przekazywany jest wpis po wpisie.&lt;br /&gt;
Największym bólem jest brak możliwości zapisywania do samej karty. Czyli nie można założyć nowego [[ATR|Atr&#039;a]].&lt;br /&gt;
&lt;br /&gt;
===Wpis katalogu===&lt;br /&gt;
&lt;br /&gt;
Komunikacja odbywa się blokami po $36 bajtów. Zawartość:&lt;br /&gt;
* $00-$26 = nazwa wpisu do katalogu wypełniona do końca spacjami&lt;br /&gt;
* $27 = status wpisu: 01 katalog, 02 atr, 03 xfd, 04 inny &lt;br /&gt;
* $2c-$2f = file size (nie dla katalogu)&lt;br /&gt;
* reszta zawiera dane dot.położenia wpisu na karcie SD.&lt;br /&gt;
Jeśli pierwszy bajt równy 0 = koniec katalogu, potem znowu wszystko od początku.&lt;br /&gt;
&lt;br /&gt;
==Programowanie układu ATMEL==&lt;br /&gt;
&lt;br /&gt;
Aby zmienić firmware wystarczy: wgrać program binarny SIO2SD.BIN długości 30720b do głównego katalogu karty SD; odpalić Sio2SD z wciśniętym K4 by wejść do trybu konfiguracji; a tam w menu wcisnąć Shift+K3. Ale przy błędzie takiej operacji lub jeśli rozprogramuje się układ Atmel możemy tylko ratować się programując procesor.&lt;br /&gt;
Do tego celu może posłużyć dowolny programator (np. [http://allegro.pl/listing.php/search?string=stk200*&amp;amp;from_showcat=1&amp;amp;category=68366&amp;amp;description=1&amp;amp;from_showcat=1&amp;amp;order=p&amp;amp;change_view=1 STK 200/300] za ~12PLN na Allegro) podłączany do portu LPT (drukarki) w PC&#039;ecie. Za pomocą programu (np. darmowy PonyProg) szybko odratujemy Atmela. &lt;br /&gt;
Podłączamy kable programatora do złącza JP2 w płytce Sio2SD. Oznaczenia pinów - widok na PCB od strony elementów - powyżej jest Atmel: &lt;br /&gt;
&lt;br /&gt;
 RESET  CLK  MISO&lt;br /&gt;
  GND  MOSI   VCC&lt;br /&gt;
&lt;br /&gt;
Włączamy PC (wtyk D-Sub 25 wpięty już jest do LPT), podłączamy Sio2SD do Atari i je włączamy!&lt;br /&gt;
Uruchamiamy program, który wykona programowanie. Szczegóły obsługi programu dostępne są w sieci lub u sprzedawcy programatora!&lt;br /&gt;
&lt;br /&gt;
==Przydatne linki==&lt;br /&gt;
&lt;br /&gt;
Więcej informacji na [http://sio2sd.gucio.pl/ stronie] autora projektu.&lt;br /&gt;
Żródło Atari Commandera na [http://madteam.atari8.info/index.php?prod=uzytki  stronie MadTeamu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29676</id>
		<title>SIO2SD</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29676"/>
		<updated>2010-08-30T17:27:46Z</updated>

		<summary type="html">&lt;p&gt;Pajero: /* Programowanie układu ATMEL */  dodanie linku&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Informacje Ogólne==&lt;br /&gt;
SIO2SD to interfejs autorstwa [[Jakub_Kruszona-Zawadzki|Jakuba Kruszony-Zawadzkiego]], pozwalający na wczytywanie gier/programów na Atari 8-bit poprzez port SIO z kart SD/MMC. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:Sio2sd.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cechy urządzenia==&lt;br /&gt;
&lt;br /&gt;
* Obsługa kart SD/MMC (formaty FAT12, FAT16 i FAT32) &lt;br /&gt;
* Obsługa plików w formatach ATR (rw), XFD (ro) i COM/XEX (ro) &lt;br /&gt;
* Wyświetlacz 16x2 pokazujący aktualnie wybrany katalog i plik ATR/XEX podmapowany pod określony numer stacji dysków.&lt;br /&gt;
* Obsługa SIO z turbo (możliwość ustawienia prędkości - hsindex od 1 do 16, standardowo 6, co odpowiada prędkości ok. 69kb/s, do wersji 2007.02.18 była stała prędkość 51kb/s - hsindex 10) &lt;br /&gt;
* Wszystkie gęstości z sektorami 128B i 256B (TOMS&#039;owe 512B na razie nieobsługiwane), w tym również dyski 16MB &lt;br /&gt;
* Możliwość równoległej obsługi 8 stacji (do wersji 2007.02.08 tylko 4 stacje: D1-D4) &lt;br /&gt;
* Możliwość konfigurowania z poziomu ATARI (możliwe ładowanie programu konfiguracyjnego bezpośrednio z urządzenia, bez potrzeby nagrywania na kartę SD)&lt;br /&gt;
&lt;br /&gt;
==Wydajność==&lt;br /&gt;
&lt;br /&gt;
Prędkość zmierzona programem [[RW-Test]] pod [[SpartaDOS X]]:&lt;br /&gt;
&lt;br /&gt;
* DOS Reading: 1719,8 B/sek.&lt;br /&gt;
* DOS Writing: 5137,8 B/sek.&lt;br /&gt;
* DOS Average: 3428,8 B/sek.&lt;br /&gt;
&lt;br /&gt;
Użyto RW-Test w wersji 3.0 i karty SD Pretec Highspeed 60x.&lt;br /&gt;
&lt;br /&gt;
==Lista elementów==&lt;br /&gt;
&lt;br /&gt;
Poniżej przedstawiona jest lista elementów elektronicznych potrzebnych do budowy układu.&lt;br /&gt;
&lt;br /&gt;
    Lp  Ilość   Nazwa Elementu         Wartość          Oznaczenie elementu&lt;br /&gt;
     1     2    Rezystor                10k                 R1,R3&lt;br /&gt;
     2     1    Potencjometr            2.2k                R2&lt;br /&gt;
     3     3    Rezystor                1.8k                R4,R5,R6&lt;br /&gt;
     4     3    Rezystor                3.3k                R7,R8,R9&lt;br /&gt;
     5     1    Rezystor                27R                 R10&lt;br /&gt;
     6     3    Rezystor                220R                R11,R12,R13&lt;br /&gt;
     7     1    Kondensator tantalowy   10uF                C4&lt;br /&gt;
     8     2    Kondensator ceramiczny  22pF                C1,C2&lt;br /&gt;
     9     4    Kondensator ceramiczny  100nF               C3,C12,C10,C11&lt;br /&gt;
    10     5    Kondensator ceramiczny  22nF                C5,C6,C7,C8,C9&lt;br /&gt;
    11     1    Kwarc                   7.3728 lub 14MHz    Q1&lt;br /&gt;
    12     1    Dioda Schottkiego       BAT85               opcjonalnie&lt;br /&gt;
    13     1    Procesor ATMEGA32-16PI (lub Atmega 32L-8PU) IC1&lt;br /&gt;
    14     1    Stabilizator            3.3V                IC2&lt;br /&gt;
    15     3    Diody LED               3V                  LED1,LED2,LED3&lt;br /&gt;
    16     5    Mikrostyki                -                 S1,S2,S3,S4,S5&lt;br /&gt;
    17     1    Gniazdo SD                -                 SD&lt;br /&gt;
    18     1    Wyświetlacz 2x16 LED      -                 JP3&lt;br /&gt;
&lt;br /&gt;
==Porady dotyczące uruchomienia układu==&lt;br /&gt;
&lt;br /&gt;
* Dla kwarca 7.3728 MHz fuse procesora Atmel ustawiamy na (H:0xD1 ; L:0xFF)&lt;br /&gt;
* Dla kwarca 14.3118 MHz fuse procesora Atmel ustawiamy na (H:0xC3 ; L:0xFF)&lt;br /&gt;
* Jeżeli podczas wyboru plików ATR na wyświetlaczu pojawiają się śmieci - należy wymienić stabilizator napięcia 3.3V (na np. precyzyjny stabilizator napięcia 1.0A w obudowie TO-220)&lt;br /&gt;
* Komunikat &#039;Błąd odczytu karty SD&#039; - gdy jest włożona do slotu - przyczyną jest brak styku przy kondensatorze C12 lub stabilizatorze napięcia 3.3V. PCB jest dwustronne, dlatego zaleca się poprawić lutowanie z obu stron płytki dla tych elementów.&lt;br /&gt;
&lt;br /&gt;
==Programowanie, obsługa SIO==&lt;br /&gt;
&lt;br /&gt;
Sio2SD jest urządzeniem [[SIO]], z którym możemy się komunikować. Wykorzystuje tę możliwość dedykowany przez autora Sio2SD.com albo grupy MadTeam [[Atari Commander]] od wersji 1.7&amp;lt;br&amp;gt; &lt;br /&gt;
Poniżej nieoficjalne dane zebrane przez [[Pajero]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz urządzeń===&lt;br /&gt;
&lt;br /&gt;
* $73 - zgłasza się jako urządzenie numer 3, widocznie no.1 to [[SIO2IDE|Sio2Ide]], a no.2 to [[SIO2PC|Sio2pc]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
* $300 DDEVIC = $70 lub $73 +deviceID&lt;br /&gt;
* $301 DUNIT  = $03 lub $00 +deviceID&lt;br /&gt;
* $306 DTIMLO = $7f minimum, optymalnie $90&lt;br /&gt;
* $307 DUNUSE = $00 zawsze&lt;br /&gt;
* $30B DAUX2  = $00 zawsze&lt;br /&gt;
&lt;br /&gt;
DeviceID znajduje się w konfiguracji Sio2SD. Wartości 0-3. Pozwala podłączyć do 4 urzadzeń do Atari jednocześnie.&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;$0302 &amp;lt;b&amp;gt;DCMND&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0303 &amp;lt;b&amp;gt;DSTATS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0304/5 &amp;lt;b&amp;gt;DBUFA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0308/9 &amp;lt;b&amp;gt;DBYT&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030A &amp;lt;b&amp;gt;DAUX1&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;$00 get status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bufor jednobajtowy. Odczytana wartość:&amp;lt;br&amp;gt;00 = brak karty&amp;lt;br&amp;gt;01 = OK &amp;lt;br&amp;gt;02 = OK zmieniono kartę na inną&amp;lt;br&amp;gt;03 = OK zmiany w D1-D8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$01&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$01 get drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$02 mount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$03 unmount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$04 get name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla nazwy wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$05 select directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą katalogu &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$06 up directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$10 lcd set&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z linią do wyświetlenia&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$28&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00 = linia górna&amp;lt;br&amp;gt;$01 = linia dolna&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oczywiście obowiązuje zawsze sprawdzenie czy komenda została poprawnie wykonana. &lt;br /&gt;
&lt;br /&gt;
Czyli mamy możliwość sprawdzenia czy urządzenie jest włączone do gniazda SIO - get status; możemy odczytać co jest podpięte do jednego z ośmiu urządzeń - get drive; zmienić to podpięcie - mount drive; lub je wyłączyć (tzw. --OFF-- ) - unmount drive; odczytać zawartość bieżącego katalogu - get name; wejść do wybranego katalogu - select directory; przejść o katalog wyżej (do nadrzędnego) - up directory; a także wysłać tekst na wyświetlacz.&lt;br /&gt;
&lt;br /&gt;
Niestety w tej wersji urządzenia nie można ustawiać dowolnie ścieżki katalogów (nalezy po nich &amp;quot;skakać&amp;quot; krokowo), odczytywać dowolnego wpisu z katalogu - zawsze przekazywany jest wpis po wpisie.&lt;br /&gt;
Największym bólem jest brak możliwości zapisywania do samej karty. Czyli nie można założyć nowego [[ATR|Atr&#039;a]].&lt;br /&gt;
&lt;br /&gt;
===Wpis katalogu===&lt;br /&gt;
&lt;br /&gt;
Komunikacja odbywa się blokami po $36 bajtów. Zawartość:&lt;br /&gt;
* $00-$26 = nazwa wpisu do katalogu wypełniona do końca spacjami&lt;br /&gt;
* $27 = status wpisu: 01 katalog, 02 atr, 03 xfd, 04 inny &lt;br /&gt;
Jeśli pierwszy bajt równy 0 = koniec katalogu, potem znowu wszystko od początku.&lt;br /&gt;
&lt;br /&gt;
==Programowanie układu ATMEL==&lt;br /&gt;
&lt;br /&gt;
Aby zmienić firmware wystarczy: wgrać program binarny SIO2SD.BIN długości 30720b do głównego katalogu karty SD; odpalić Sio2SD z wciśniętym K4 by wejść do trybu konfiguracji; a tam w menu wcisnąć Shift+K3. Ale przy błędzie takiej operacji lub jeśli rozprogramuje się układ Atmel możemy tylko ratować się programując procesor.&lt;br /&gt;
Do tego celu może posłużyć dowolny programator (np. [http://allegro.pl/listing.php/search?string=stk200*&amp;amp;from_showcat=1&amp;amp;category=68366&amp;amp;description=1&amp;amp;from_showcat=1&amp;amp;order=p&amp;amp;change_view=1 STK 200/300] za ~12PLN na Allegro) podłączany do portu LPT (drukarki) w PC&#039;ecie. Za pomocą programu (np. darmowy PonyProg) szybko odratujemy Atmela. &lt;br /&gt;
Podłączamy kable programatora do złącza JP2 w płytce Sio2SD. Oznaczenia pinów - widok na PCB od strony elementów - powyżej jest Atmel: &lt;br /&gt;
&lt;br /&gt;
 RESET  CLK  MISO&lt;br /&gt;
  GND  MOSI   VCC&lt;br /&gt;
&lt;br /&gt;
Włączamy PC (wtyk D-Sub 25 wpięty już jest do LPT), podłączamy Sio2SD do Atari i je włączamy!&lt;br /&gt;
Uruchamiamy program, który wykona programowanie. Szczegóły obsługi programu dostępne są w sieci lub u sprzedawcy programatora!&lt;br /&gt;
&lt;br /&gt;
==Przydatne linki==&lt;br /&gt;
&lt;br /&gt;
Więcej informacji na [http://sio2sd.gucio.pl/ stronie] autora projektu.&lt;br /&gt;
Żródło Atari Commandera na [http://madteam.atari8.info/index.php?prod=uzytki  stronie MadTeamu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29675</id>
		<title>SIO2SD</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=29675"/>
		<updated>2010-08-30T17:10:51Z</updated>

		<summary type="html">&lt;p&gt;Pajero: /* Programowanie układu ATMEL */  poprawka&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Informacje Ogólne==&lt;br /&gt;
SIO2SD to interfejs autorstwa [[Jakub_Kruszona-Zawadzki|Jakuba Kruszony-Zawadzkiego]], pozwalający na wczytywanie gier/programów na Atari 8-bit poprzez port SIO z kart SD/MMC. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:Sio2sd.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cechy urządzenia==&lt;br /&gt;
&lt;br /&gt;
* Obsługa kart SD/MMC (formaty FAT12, FAT16 i FAT32) &lt;br /&gt;
* Obsługa plików w formatach ATR (rw), XFD (ro) i COM/XEX (ro) &lt;br /&gt;
* Wyświetlacz 16x2 pokazujący aktualnie wybrany katalog i plik ATR/XEX podmapowany pod określony numer stacji dysków.&lt;br /&gt;
* Obsługa SIO z turbo (możliwość ustawienia prędkości - hsindex od 1 do 16, standardowo 6, co odpowiada prędkości ok. 69kb/s, do wersji 2007.02.18 była stała prędkość 51kb/s - hsindex 10) &lt;br /&gt;
* Wszystkie gęstości z sektorami 128B i 256B (TOMS&#039;owe 512B na razie nieobsługiwane), w tym również dyski 16MB &lt;br /&gt;
* Możliwość równoległej obsługi 8 stacji (do wersji 2007.02.08 tylko 4 stacje: D1-D4) &lt;br /&gt;
* Możliwość konfigurowania z poziomu ATARI (możliwe ładowanie programu konfiguracyjnego bezpośrednio z urządzenia, bez potrzeby nagrywania na kartę SD)&lt;br /&gt;
&lt;br /&gt;
==Wydajność==&lt;br /&gt;
&lt;br /&gt;
Prędkość zmierzona programem [[RW-Test]] pod [[SpartaDOS X]]:&lt;br /&gt;
&lt;br /&gt;
* DOS Reading: 1719,8 B/sek.&lt;br /&gt;
* DOS Writing: 5137,8 B/sek.&lt;br /&gt;
* DOS Average: 3428,8 B/sek.&lt;br /&gt;
&lt;br /&gt;
Użyto RW-Test w wersji 3.0 i karty SD Pretec Highspeed 60x.&lt;br /&gt;
&lt;br /&gt;
==Lista elementów==&lt;br /&gt;
&lt;br /&gt;
Poniżej przedstawiona jest lista elementów elektronicznych potrzebnych do budowy układu.&lt;br /&gt;
&lt;br /&gt;
    Lp  Ilość   Nazwa Elementu         Wartość          Oznaczenie elementu&lt;br /&gt;
     1     2    Rezystor                10k                 R1,R3&lt;br /&gt;
     2     1    Potencjometr            2.2k                R2&lt;br /&gt;
     3     3    Rezystor                1.8k                R4,R5,R6&lt;br /&gt;
     4     3    Rezystor                3.3k                R7,R8,R9&lt;br /&gt;
     5     1    Rezystor                27R                 R10&lt;br /&gt;
     6     3    Rezystor                220R                R11,R12,R13&lt;br /&gt;
     7     1    Kondensator tantalowy   10uF                C4&lt;br /&gt;
     8     2    Kondensator ceramiczny  22pF                C1,C2&lt;br /&gt;
     9     4    Kondensator ceramiczny  100nF               C3,C12,C10,C11&lt;br /&gt;
    10     5    Kondensator ceramiczny  22nF                C5,C6,C7,C8,C9&lt;br /&gt;
    11     1    Kwarc                   7.3728 lub 14MHz    Q1&lt;br /&gt;
    12     1    Dioda Schottkiego       BAT85               opcjonalnie&lt;br /&gt;
    13     1    Procesor ATMEGA32-16PI (lub Atmega 32L-8PU) IC1&lt;br /&gt;
    14     1    Stabilizator            3.3V                IC2&lt;br /&gt;
    15     3    Diody LED               3V                  LED1,LED2,LED3&lt;br /&gt;
    16     5    Mikrostyki                -                 S1,S2,S3,S4,S5&lt;br /&gt;
    17     1    Gniazdo SD                -                 SD&lt;br /&gt;
    18     1    Wyświetlacz 2x16 LED      -                 JP3&lt;br /&gt;
&lt;br /&gt;
==Porady dotyczące uruchomienia układu==&lt;br /&gt;
&lt;br /&gt;
* Dla kwarca 7.3728 MHz fuse procesora Atmel ustawiamy na (H:0xD1 ; L:0xFF)&lt;br /&gt;
* Dla kwarca 14.3118 MHz fuse procesora Atmel ustawiamy na (H:0xC3 ; L:0xFF)&lt;br /&gt;
* Jeżeli podczas wyboru plików ATR na wyświetlaczu pojawiają się śmieci - należy wymienić stabilizator napięcia 3.3V (na np. precyzyjny stabilizator napięcia 1.0A w obudowie TO-220)&lt;br /&gt;
* Komunikat &#039;Błąd odczytu karty SD&#039; - gdy jest włożona do slotu - przyczyną jest brak styku przy kondensatorze C12 lub stabilizatorze napięcia 3.3V. PCB jest dwustronne, dlatego zaleca się poprawić lutowanie z obu stron płytki dla tych elementów.&lt;br /&gt;
&lt;br /&gt;
==Programowanie, obsługa SIO==&lt;br /&gt;
&lt;br /&gt;
Sio2SD jest urządzeniem [[SIO]], z którym możemy się komunikować. Wykorzystuje tę możliwość dedykowany przez autora Sio2SD.com albo grupy MadTeam [[Atari Commander]] od wersji 1.7&amp;lt;br&amp;gt; &lt;br /&gt;
Poniżej nieoficjalne dane zebrane przez [[Pajero]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz urządzeń===&lt;br /&gt;
&lt;br /&gt;
* $73 - zgłasza się jako urządzenie numer 3, widocznie no.1 to [[SIO2IDE|Sio2Ide]], a no.2 to [[SIO2PC|Sio2pc]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
* $300 DDEVIC = $70 lub $73 +deviceID&lt;br /&gt;
* $301 DUNIT  = $03 lub $00 +deviceID&lt;br /&gt;
* $306 DTIMLO = $7f minimum, optymalnie $90&lt;br /&gt;
* $307 DUNUSE = $00 zawsze&lt;br /&gt;
* $30B DAUX2  = $00 zawsze&lt;br /&gt;
&lt;br /&gt;
DeviceID znajduje się w konfiguracji Sio2SD. Wartości 0-3. Pozwala podłączyć do 4 urzadzeń do Atari jednocześnie.&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;$0302 &amp;lt;b&amp;gt;DCMND&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0303 &amp;lt;b&amp;gt;DSTATS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0304/5 &amp;lt;b&amp;gt;DBUFA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0308/9 &amp;lt;b&amp;gt;DBYT&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030A &amp;lt;b&amp;gt;DAUX1&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;$00 get status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bufor jednobajtowy. Odczytana wartość:&amp;lt;br&amp;gt;00 = brak karty&amp;lt;br&amp;gt;01 = OK &amp;lt;br&amp;gt;02 = OK zmieniono kartę na inną&amp;lt;br&amp;gt;03 = OK zmiany w D1-D8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$01&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$01 get drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$02 mount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$03 unmount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$04 get name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla nazwy wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$05 select directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą katalogu &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$06 up directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$10 lcd set&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z linią do wyświetlenia&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$28&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00 = linia górna&amp;lt;br&amp;gt;$01 = linia dolna&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oczywiście obowiązuje zawsze sprawdzenie czy komenda została poprawnie wykonana. &lt;br /&gt;
&lt;br /&gt;
Czyli mamy możliwość sprawdzenia czy urządzenie jest włączone do gniazda SIO - get status; możemy odczytać co jest podpięte do jednego z ośmiu urządzeń - get drive; zmienić to podpięcie - mount drive; lub je wyłączyć (tzw. --OFF-- ) - unmount drive; odczytać zawartość bieżącego katalogu - get name; wejść do wybranego katalogu - select directory; przejść o katalog wyżej (do nadrzędnego) - up directory; a także wysłać tekst na wyświetlacz.&lt;br /&gt;
&lt;br /&gt;
Niestety w tej wersji urządzenia nie można ustawiać dowolnie ścieżki katalogów (nalezy po nich &amp;quot;skakać&amp;quot; krokowo), odczytywać dowolnego wpisu z katalogu - zawsze przekazywany jest wpis po wpisie.&lt;br /&gt;
Największym bólem jest brak możliwości zapisywania do samej karty. Czyli nie można założyć nowego [[ATR|Atr&#039;a]].&lt;br /&gt;
&lt;br /&gt;
===Wpis katalogu===&lt;br /&gt;
&lt;br /&gt;
Komunikacja odbywa się blokami po $36 bajtów. Zawartość:&lt;br /&gt;
* $00-$26 = nazwa wpisu do katalogu wypełniona do końca spacjami&lt;br /&gt;
* $27 = status wpisu: 01 katalog, 02 atr, 03 xfd, 04 inny &lt;br /&gt;
Jeśli pierwszy bajt równy 0 = koniec katalogu, potem znowu wszystko od początku.&lt;br /&gt;
&lt;br /&gt;
==Programowanie układu ATMEL==&lt;br /&gt;
&lt;br /&gt;
Aby zmienić firmware wystarczy: wgrać program binarny SIO2SD.BIN długości 30720b do głównego katalogu karty SD; odpalić Sio2SD z wciśniętym K4 by wejść do trybu konfiguracji; a tam w menu wcisnąć Shift+K3. Ale przy błędzie takiej operacji lub jeśli rozprogramuje się układ Atmel możemy tylko ratować się programując procesor.&lt;br /&gt;
Do tego celu może posłużyć dowolny programator (np. STK 200/300 za ~15PLN na Allegro) podłączany do portu LPT (drukarki) w PC&#039;ecie. Za pomocą programu (np. darmowy PonyProg) szybko odratujemy Atmela. &lt;br /&gt;
Podłączamy kable programatora do złącza JP2 w płytce Sio2SD. Oznaczenia pinów - widok na PCB od strony elementów - powyżej jest Atmel: &lt;br /&gt;
&lt;br /&gt;
 RESET  CLK  MISO&lt;br /&gt;
  GND  MOSI   VCC&lt;br /&gt;
&lt;br /&gt;
Włączamy PC (wtyk D-Sub 25 wpięty już jest do LPT), podłączamy Sio2SD do Atari i je włączamy!&lt;br /&gt;
Uruchamiamy program, który wykona programowanie. Szczegóły obsługi programu dostępne są w sieci lub u sprzedawcy programatora!&lt;br /&gt;
&lt;br /&gt;
==Przydatne linki==&lt;br /&gt;
&lt;br /&gt;
Więcej informacji na [http://sio2sd.gucio.pl/ stronie] autora projektu.&lt;br /&gt;
Żródło Atari Commandera na [http://madteam.atari8.info/index.php?prod=uzytki  stronie MadTeamu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Rejestry_GTIA&amp;diff=29394</id>
		<title>Rejestry GTIA</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Rejestry_GTIA&amp;diff=29394"/>
		<updated>2010-05-24T09:46:29Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Uaktualnienie: TRIG3 a linia RD4 (autopoprawka)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[GTIA]] został wykorzystany w [[Atari 8-bit|małych Atari]] oraz w konsolach [[5200|Atari 5200]]. W obu systemach rejestry GTIA zostały zmapowane na różnych [[strona]]ch pamięci - w komputerach na stronie &#039;&#039;&#039;$D0&#039;&#039;&#039;, w konsoli na stronie &#039;&#039;&#039;$C0&#039;&#039;&#039;. W tabeli podane są adresy właściwe dla komputerów 400/800/XL/XE.&lt;br /&gt;
&lt;br /&gt;
===Lista rejestrów===&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;Opis&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 id=&amp;quot;KOLM0PF&amp;quot;&amp;gt;$D000 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLM0PF&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;HPOSP0&amp;quot;&amp;gt;$D000 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HPOSP0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Pozycja pozioma [[gracz]]a nr 0, mierzona w [[cykl koloru|cyklach koloru]]. Można wpisywac wartości od 0 (skrajna lewa) do 255 (skrajna prawa) pamiętając jednak o tym, że skrajne pozycje znajdują się poza obszarem wyświetlanym na ekranie przeciętnego monitora. W praktyce zakres pozycji, w jakich duszek jest widoczny, rozciąga się od wartości 32 do 216. Standardowe pole gry zajmuje pozycje 41 do 207, zwężone odpowiednio mniej, a rozszerzone odpowiednio więcej.&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 id=&amp;quot;KOLM1PF&amp;quot;&amp;gt;$D001 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLM1PF&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;HPOSP1&amp;quot;&amp;gt;$D001 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HPOSP1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pozycja pozioma gracza nr 1. Patrz [[#HPOSP0|HPOSP0]].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;KOLM2PF&amp;quot;&amp;gt;$D002 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLM2PF&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;HPOSP2&amp;quot;&amp;gt;$D002 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HPOSP2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pozycja pozioma gracza nr 2. Patrz [[#HPOSP0|HPOSP0]].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;KOLM3PF&amp;quot;&amp;gt;$D003 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLM3PF&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;HPOSP3&amp;quot;&amp;gt;$D003 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HPOSP3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pozycja pozioma gracza nr 3. Patrz [[#HPOSP0|HPOSP0]].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;KOLP0PF&amp;quot;&amp;gt;$D004 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLP0PF&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;HPOSM0&amp;quot;&amp;gt;$D004 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HPOSM0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pozycja pozioma [[pocisk]]u nr 0. Patrz [[#HPOSP0|HPOSP0]].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;KOLP1PF&amp;quot;&amp;gt;$D005 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLP1PF&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;HPOSM1&amp;quot;&amp;gt;$D005 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HPOSM1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pozycja pozioma pocisku nr 1. Patrz [[#HPOSP0|HPOSP0]].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;KOLP2PF&amp;quot;&amp;gt;$D006 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLP2PF&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;HPOSM2&amp;quot;&amp;gt;$D006 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HPOSM2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pozycja pozioma pocisku nr 2. Patrz [[#HPOSP0|HPOSP0]].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;KOLP3PF&amp;quot;&amp;gt;$D007 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLP3PF&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;HPOSM3&amp;quot;&amp;gt;$D007 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HPOSM3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pozycja pozioma pocisku nr 3. Patrz [[#HPOSP0|HPOSP0]].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;KOLM0P&amp;quot;&amp;gt;$D008 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLM0P&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;SIZEP0&amp;quot;&amp;gt;$D008 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SIZEP0&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;KOLM1P&amp;quot;&amp;gt;$D009 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLM1P&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;SIZEP1&amp;quot;&amp;gt;$D009 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SIZEP1&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;KOLM2P&amp;quot;&amp;gt;$D00A (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLM2P&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;SIZEP2&amp;quot;&amp;gt;$D00A (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SIZEP2&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;KOLM3P&amp;quot;&amp;gt;$D00B (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLM3P&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;SIZEP3&amp;quot;&amp;gt;$D00B (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SIZEP3&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;KOLP0P&amp;quot;&amp;gt;$D00C (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLP0P&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;SIZEM&amp;quot;&amp;gt;$D00C (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SIZEM&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;KOLP1P&amp;quot;&amp;gt;$D00D (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLP1P&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;GRAFP0&amp;quot;&amp;gt;$D00D (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;GRAFP0&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;KOLP2P&amp;quot;&amp;gt;$D00E (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLP2P&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;GRAFP1&amp;quot;&amp;gt;$D00E (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;GRAFP1&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;KOLP3P&amp;quot;&amp;gt;$D00F (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLP3P&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;GRAFP2&amp;quot;&amp;gt;$D00F (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;GRAFP2&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;TRIG0&amp;quot;&amp;gt;$D010 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;TRIG0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Stan spustu joysticka nr 0 (0 - wciśnięty).&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 id=&amp;quot;GRAFP3&amp;quot;&amp;gt;$D010 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;GRAFP3&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;TRIG1&amp;quot;&amp;gt;$D011 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;TRIG1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Stan spustu joysticka nr 1 (0 - wciśnięty).&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 id=&amp;quot;GRAFM&amp;quot;&amp;gt;$D011 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;GRAFM&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;TRIG2&amp;quot;&amp;gt;$D012 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;TRIG2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;W [[400/800]] stan spustu joysticka nr 2 (0 - wciśnięty). W [[XEGS]] wskazuje fakt podłączenia klawiatury (1 - podłączona). W pozostałych [[XL]] i [[XE]] rejestr nieużywany.&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 id=&amp;quot;COLPM0&amp;quot;&amp;gt;$D012 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;COLPM0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Kolor gracza i pocisku nr 0. Bity 7-4 wybierają kolor, bity 3-1 odcień, a bit 0 jest nieużywany, a więc wybór jest z palety 128 kolorów. Rejestr odświeżany jest przez procedurę [[SYSVBL]], która kopiuje tu zawartość cienia COLPM0S $02C0 za każdym wystąpieniem [[przerwania]] [[VBL]].&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 id=&amp;quot;TRIG3&amp;quot;&amp;gt;$D013 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;TRIG3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;W [[400/800]] stan spustu joysticka nr 3 (0 - wciśnięty). W [[XL]] i [[XE]] sygnalizuje stan zewnętrznego [[cartridge]]&#039;a (1 - włożony do gniazda) podpiętego pod linie RD5 - mapowanie $a000-$bfff. Nie wskaże czy włożono cartridge, który jest podpięty tylko (!) pod linie RD4 - mapowanie $8000-$9fff.&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 id=&amp;quot;COLPM1&amp;quot;&amp;gt;$D013 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;COLPM1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Kolor gracza i pocisku nr 1. Bity 7-4 wybierają kolor, bity 3-1 odcień, a bit 0 jest nieużywany, a więc wybór jest z palety 128 kolorów. Rejestr odświeżany jest przez procedurę [[SYSVBL]], która kopiuje tu zawartość cienia COLPM1S $02C1 za każdym wystąpieniem [[przerwania]] [[VBL]].&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 id=&amp;quot;PAL&amp;quot;&amp;gt;$D014 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PAL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Znacznik systemu TV. Znaczenie bitów:&amp;lt;/p&amp;gt;&lt;br /&gt;
* bity 7-4: nieużywane, zawsze 0&lt;br /&gt;
* bity 3-1: wartość 000 dla systemu PAL/SECAM oraz 111 dla [http://pl.wikipedia.org/wiki/NTSC NTSC]&lt;br /&gt;
* bit 0: zawsze 1.&lt;br /&gt;
&amp;lt;p&amp;gt;Wynika z tego, że w systemie PAL i SECAM wartość rejestru to $01, a w NTSC $0F.&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 id=&amp;quot;COLPM2&amp;quot;&amp;gt;$D014 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;COLPM2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Kolor gracza i pocisku nr 2. Bity 7-4 wybierają kolor, bity 3-1 odcień, a bit 0 jest nieużywany, a więc wybór jest z palety 128 kolorów. Rejestr odświeżany jest przez procedurę [[SYSVBL]], która kopiuje tu zawartość cienia COLPM2S $02C2 za każdym wystąpieniem [[przerwania]] [[VBL]].&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 id=&amp;quot;COLPM3&amp;quot;&amp;gt;$D015 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;COLPM3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Kolor gracza i pocisku nr 3. Bity 7-4 wybierają kolor, bity 3-1 odcień, a bit 0 jest nieużywany, a więc wybór jest z palety 128 kolorów. Rejestr odświeżany jest przez procedurę [[SYSVBL]], która kopiuje tu zawartość cienia COLPM3S $02C3 za każdym wystąpieniem [[przerwania]] [[VBL]].&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 id=&amp;quot;COLPF0&amp;quot;&amp;gt;$D016 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;COLPF0&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;COLPF1&amp;quot;&amp;gt;$D017 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;COLPF1&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;COLPF2&amp;quot;&amp;gt;$D018 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;COLPF2&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;COLPF3&amp;quot;&amp;gt;$D019 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;COLPF3&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;COLBAK&amp;quot;&amp;gt;$D01A (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;COLBAK&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;GTIACTL&amp;quot;&amp;gt;$D01B (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;GTIACTL (GPRIOR)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
Rejestr cień: GTIACTLS (GPRIORS) $026F&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;bit&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;7&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;6&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;5&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;znaczenie&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
tryby GTIA:&amp;lt;br /&amp;gt;&lt;br /&gt;
00 = tryby GTIA wyłączone&amp;lt;br /&amp;gt;&lt;br /&gt;
01 = 1 barwa, 16 jasności&amp;lt;br /&amp;gt;&lt;br /&gt;
10 = 9 barw/jasności&amp;lt;br /&amp;gt;&lt;br /&gt;
11 = 16 barw, 1 jasność&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
gracze wielokolorowi:&amp;lt;br /&amp;gt;&lt;br /&gt;
1 = włączone&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;4 pociski jako 5 gracz:&amp;lt;br /&amp;gt;&lt;br /&gt;
1 = włączone&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
priorytety graczy i pocisków:&amp;lt;br /&amp;gt;&lt;br /&gt;
0001 = P0, P1, P2, P3, PF0, PF1, PF2, PF3, BAK&amp;lt;br /&amp;gt;&lt;br /&gt;
0010 = P0, P1, PF0, PF1, PF2, PF3, P2, P3, BAK&amp;lt;br /&amp;gt;&lt;br /&gt;
0100 = PF0, PF1, PF2, PF3, P0, P1, P2, P3, BAK&amp;lt;br /&amp;gt;&lt;br /&gt;
1000 = PF0, PF1, P0, P1, P2, P3, PF2, PF3, BAK&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&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 id=&amp;quot;VDELAY&amp;quot;&amp;gt;$D01C (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;VDELAY&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Bity 0-3 oznaczają pociski o numerach 0-3, bity 4-7 graczy o numerach 0-3. Ustawienie bitu powoduje, ze pozycja pionowa odpowiedniego obiektu zwiększa się o jedną linię skaningową obrazu (czyli obiekt na ekranie obniża się o jedną linię). Służy to do zwiększenia płynności ruchu pionowego obiektów w rozdzielczości dwuliniowej, patrz [[Rejestry_ANTIC-a#DMACTL|DMACTL]].&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 id=&amp;quot;PMCTNL&amp;quot;&amp;gt;$D01D (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PMCNTL (GRACTL)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Ustawienie bitu 0 powoduje włączenie wyświetlania pocisków, bitu 1 - włączenie wyświetlania graczy.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Bit 2 odpowiada za działanie rejestrów TRIG0-3: jego ustawienie powoduje, że po wciśnięciu spustu joysticka rejestr &amp;quot;zatrzaskuje się&amp;quot; i pokazuje cały czas, że spust jest wciśnięty, nawet jeśli już nie jest. Zwolnienie następuje dopiero po skasowaniu bitu 2 omawianego tu rejestru. Mechanizm ten służy do łapania stanów spustów joysticka bez konieczności ich nieustannego monitorowania.&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 id=&amp;quot;HITCLR&amp;quot;&amp;gt;$D01E (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HITCLR&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Zapis dowolnej wartości pod ten adres kasuje stany rejestrów kolizji.&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 id=&amp;quot;CONSOL&amp;quot;&amp;gt;$D01F (R/W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;CONSOL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Bity 0-3 tego rejestru reprezentują stan nóżek S0-S3 układu [[GTIA]], a pozostałe bity sa niewykorzystane. Znaczenie:&amp;lt;/p&amp;gt;&lt;br /&gt;
* bit 3 - jednobitowe wyjście dźwiękowe&lt;br /&gt;
* bit 2 - stan klawisza OPTION (0 - naciśnięty)&lt;br /&gt;
* bit 1 - stan klawisza SELECT (0 - naciśnięty)&lt;br /&gt;
* bit 0 - stan klawisza START (0 - naciśnięty)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;quot;Jednobitowe wyjście dźwiękowe&amp;quot; wykorzystywane jest do generowania kliku klawiatury oraz dźwięku brzęczyka systemowego urządzenia &amp;quot;E:&amp;quot; (zob. [[CIO]]). W serii [[400/800]] służy do tego osobny głośniczek, w [[XL]] i [[XE]] natomiast jest to podłączone do ogólnego wyjścia audio.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Przed odczytaniem stanu linii wejściowych (czyli stanu klawiszy START, SELECT, OPTION) odpowiednie bity rejestru CONSOL trzeba ustawić na zero. Normalnie jednak nie ma potrzeby tego czynić w programie, gdyż robi to systemowa procedura [[SYSVBL]].&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&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;
{{stub}}&lt;br /&gt;
[[Kategoria:Programowanie Atari 8-bit]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Rejestry_GTIA&amp;diff=29393</id>
		<title>Rejestry GTIA</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Rejestry_GTIA&amp;diff=29393"/>
		<updated>2010-05-24T09:43:34Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Uaktualnienie: TRIG3 a linia RD4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[GTIA]] został wykorzystany w [[Atari 8-bit|małych Atari]] oraz w konsolach [[5200|Atari 5200]]. W obu systemach rejestry GTIA zostały zmapowane na różnych [[strona]]ch pamięci - w komputerach na stronie &#039;&#039;&#039;$D0&#039;&#039;&#039;, w konsoli na stronie &#039;&#039;&#039;$C0&#039;&#039;&#039;. W tabeli podane są adresy właściwe dla komputerów 400/800/XL/XE.&lt;br /&gt;
&lt;br /&gt;
===Lista rejestrów===&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;Opis&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 id=&amp;quot;KOLM0PF&amp;quot;&amp;gt;$D000 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLM0PF&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;HPOSP0&amp;quot;&amp;gt;$D000 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HPOSP0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Pozycja pozioma [[gracz]]a nr 0, mierzona w [[cykl koloru|cyklach koloru]]. Można wpisywac wartości od 0 (skrajna lewa) do 255 (skrajna prawa) pamiętając jednak o tym, że skrajne pozycje znajdują się poza obszarem wyświetlanym na ekranie przeciętnego monitora. W praktyce zakres pozycji, w jakich duszek jest widoczny, rozciąga się od wartości 32 do 216. Standardowe pole gry zajmuje pozycje 41 do 207, zwężone odpowiednio mniej, a rozszerzone odpowiednio więcej.&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 id=&amp;quot;KOLM1PF&amp;quot;&amp;gt;$D001 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLM1PF&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;HPOSP1&amp;quot;&amp;gt;$D001 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HPOSP1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pozycja pozioma gracza nr 1. Patrz [[#HPOSP0|HPOSP0]].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;KOLM2PF&amp;quot;&amp;gt;$D002 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLM2PF&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;HPOSP2&amp;quot;&amp;gt;$D002 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HPOSP2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pozycja pozioma gracza nr 2. Patrz [[#HPOSP0|HPOSP0]].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;KOLM3PF&amp;quot;&amp;gt;$D003 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLM3PF&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;HPOSP3&amp;quot;&amp;gt;$D003 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HPOSP3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pozycja pozioma gracza nr 3. Patrz [[#HPOSP0|HPOSP0]].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;KOLP0PF&amp;quot;&amp;gt;$D004 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLP0PF&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;HPOSM0&amp;quot;&amp;gt;$D004 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HPOSM0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pozycja pozioma [[pocisk]]u nr 0. Patrz [[#HPOSP0|HPOSP0]].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;KOLP1PF&amp;quot;&amp;gt;$D005 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLP1PF&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;HPOSM1&amp;quot;&amp;gt;$D005 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HPOSM1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pozycja pozioma pocisku nr 1. Patrz [[#HPOSP0|HPOSP0]].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;KOLP2PF&amp;quot;&amp;gt;$D006 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLP2PF&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;HPOSM2&amp;quot;&amp;gt;$D006 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HPOSM2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pozycja pozioma pocisku nr 2. Patrz [[#HPOSP0|HPOSP0]].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;KOLP3PF&amp;quot;&amp;gt;$D007 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLP3PF&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;HPOSM3&amp;quot;&amp;gt;$D007 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HPOSM3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Pozycja pozioma pocisku nr 3. Patrz [[#HPOSP0|HPOSP0]].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td id=&amp;quot;KOLM0P&amp;quot;&amp;gt;$D008 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLM0P&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;SIZEP0&amp;quot;&amp;gt;$D008 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SIZEP0&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;KOLM1P&amp;quot;&amp;gt;$D009 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLM1P&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;SIZEP1&amp;quot;&amp;gt;$D009 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SIZEP1&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;KOLM2P&amp;quot;&amp;gt;$D00A (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLM2P&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;SIZEP2&amp;quot;&amp;gt;$D00A (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SIZEP2&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;KOLM3P&amp;quot;&amp;gt;$D00B (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLM3P&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;SIZEP3&amp;quot;&amp;gt;$D00B (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SIZEP3&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;KOLP0P&amp;quot;&amp;gt;$D00C (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLP0P&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;SIZEM&amp;quot;&amp;gt;$D00C (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SIZEM&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;KOLP1P&amp;quot;&amp;gt;$D00D (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLP1P&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;GRAFP0&amp;quot;&amp;gt;$D00D (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;GRAFP0&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;KOLP2P&amp;quot;&amp;gt;$D00E (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLP2P&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;GRAFP1&amp;quot;&amp;gt;$D00E (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;GRAFP1&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;KOLP3P&amp;quot;&amp;gt;$D00F (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;KOLP3P&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;GRAFP2&amp;quot;&amp;gt;$D00F (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;GRAFP2&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;TRIG0&amp;quot;&amp;gt;$D010 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;TRIG0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Stan spustu joysticka nr 0 (0 - wciśnięty).&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 id=&amp;quot;GRAFP3&amp;quot;&amp;gt;$D010 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;GRAFP3&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;TRIG1&amp;quot;&amp;gt;$D011 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;TRIG1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Stan spustu joysticka nr 1 (0 - wciśnięty).&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 id=&amp;quot;GRAFM&amp;quot;&amp;gt;$D011 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;GRAFM&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;TRIG2&amp;quot;&amp;gt;$D012 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;TRIG2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;W [[400/800]] stan spustu joysticka nr 2 (0 - wciśnięty). W [[XEGS]] wskazuje fakt podłączenia klawiatury (1 - podłączona). W pozostałych [[XL]] i [[XE]] rejestr nieużywany.&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 id=&amp;quot;COLPM0&amp;quot;&amp;gt;$D012 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;COLPM0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Kolor gracza i pocisku nr 0. Bity 7-4 wybierają kolor, bity 3-1 odcień, a bit 0 jest nieużywany, a więc wybór jest z palety 128 kolorów. Rejestr odświeżany jest przez procedurę [[SYSVBL]], która kopiuje tu zawartość cienia COLPM0S $02C0 za każdym wystąpieniem [[przerwania]] [[VBL]].&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 id=&amp;quot;TRIG3&amp;quot;&amp;gt;$D013 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;TRIG3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;W [[400/800]] stan spustu joysticka nr 3 (0 - wciśnięty). W [[XL]] i [[XE]] sygnalizuje stan zewnętrznego [[cartridge]]&#039;a (1 - włożony do gniazda) podpięty pod linie RD5 - mapowanie $a000-$bfff. Nie wskaże czy włożono cartridge, który jest podpięty tylko (!) pod linie RD4 - mapowanie $8000-$9fff.&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 id=&amp;quot;COLPM1&amp;quot;&amp;gt;$D013 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;COLPM1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Kolor gracza i pocisku nr 1. Bity 7-4 wybierają kolor, bity 3-1 odcień, a bit 0 jest nieużywany, a więc wybór jest z palety 128 kolorów. Rejestr odświeżany jest przez procedurę [[SYSVBL]], która kopiuje tu zawartość cienia COLPM1S $02C1 za każdym wystąpieniem [[przerwania]] [[VBL]].&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 id=&amp;quot;PAL&amp;quot;&amp;gt;$D014 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PAL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Znacznik systemu TV. Znaczenie bitów:&amp;lt;/p&amp;gt;&lt;br /&gt;
* bity 7-4: nieużywane, zawsze 0&lt;br /&gt;
* bity 3-1: wartość 000 dla systemu PAL/SECAM oraz 111 dla [http://pl.wikipedia.org/wiki/NTSC NTSC]&lt;br /&gt;
* bit 0: zawsze 1.&lt;br /&gt;
&amp;lt;p&amp;gt;Wynika z tego, że w systemie PAL i SECAM wartość rejestru to $01, a w NTSC $0F.&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 id=&amp;quot;COLPM2&amp;quot;&amp;gt;$D014 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;COLPM2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Kolor gracza i pocisku nr 2. Bity 7-4 wybierają kolor, bity 3-1 odcień, a bit 0 jest nieużywany, a więc wybór jest z palety 128 kolorów. Rejestr odświeżany jest przez procedurę [[SYSVBL]], która kopiuje tu zawartość cienia COLPM2S $02C2 za każdym wystąpieniem [[przerwania]] [[VBL]].&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 id=&amp;quot;COLPM3&amp;quot;&amp;gt;$D015 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;COLPM3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Kolor gracza i pocisku nr 3. Bity 7-4 wybierają kolor, bity 3-1 odcień, a bit 0 jest nieużywany, a więc wybór jest z palety 128 kolorów. Rejestr odświeżany jest przez procedurę [[SYSVBL]], która kopiuje tu zawartość cienia COLPM3S $02C3 za każdym wystąpieniem [[przerwania]] [[VBL]].&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 id=&amp;quot;COLPF0&amp;quot;&amp;gt;$D016 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;COLPF0&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;COLPF1&amp;quot;&amp;gt;$D017 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;COLPF1&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;COLPF2&amp;quot;&amp;gt;$D018 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;COLPF2&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;COLPF3&amp;quot;&amp;gt;$D019 (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;COLPF3&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;COLBAK&amp;quot;&amp;gt;$D01A (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;COLBAK&amp;lt;/td&amp;gt;&amp;lt;td&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 id=&amp;quot;GTIACTL&amp;quot;&amp;gt;$D01B (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;GTIACTL (GPRIOR)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
Rejestr cień: GTIACTLS (GPRIORS) $026F&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;bit&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;7&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;6&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;5&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;4&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;3&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;2&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;znaczenie&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
tryby GTIA:&amp;lt;br /&amp;gt;&lt;br /&gt;
00 = tryby GTIA wyłączone&amp;lt;br /&amp;gt;&lt;br /&gt;
01 = 1 barwa, 16 jasności&amp;lt;br /&amp;gt;&lt;br /&gt;
10 = 9 barw/jasności&amp;lt;br /&amp;gt;&lt;br /&gt;
11 = 16 barw, 1 jasność&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
gracze wielokolorowi:&amp;lt;br /&amp;gt;&lt;br /&gt;
1 = włączone&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;4 pociski jako 5 gracz:&amp;lt;br /&amp;gt;&lt;br /&gt;
1 = włączone&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td colspan=&amp;quot;4&amp;quot;&amp;gt;&lt;br /&gt;
priorytety graczy i pocisków:&amp;lt;br /&amp;gt;&lt;br /&gt;
0001 = P0, P1, P2, P3, PF0, PF1, PF2, PF3, BAK&amp;lt;br /&amp;gt;&lt;br /&gt;
0010 = P0, P1, PF0, PF1, PF2, PF3, P2, P3, BAK&amp;lt;br /&amp;gt;&lt;br /&gt;
0100 = PF0, PF1, PF2, PF3, P0, P1, P2, P3, BAK&amp;lt;br /&amp;gt;&lt;br /&gt;
1000 = PF0, PF1, P0, P1, P2, P3, PF2, PF3, BAK&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&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 id=&amp;quot;VDELAY&amp;quot;&amp;gt;$D01C (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;VDELAY&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Bity 0-3 oznaczają pociski o numerach 0-3, bity 4-7 graczy o numerach 0-3. Ustawienie bitu powoduje, ze pozycja pionowa odpowiedniego obiektu zwiększa się o jedną linię skaningową obrazu (czyli obiekt na ekranie obniża się o jedną linię). Służy to do zwiększenia płynności ruchu pionowego obiektów w rozdzielczości dwuliniowej, patrz [[Rejestry_ANTIC-a#DMACTL|DMACTL]].&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 id=&amp;quot;PMCTNL&amp;quot;&amp;gt;$D01D (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PMCNTL (GRACTL)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Ustawienie bitu 0 powoduje włączenie wyświetlania pocisków, bitu 1 - włączenie wyświetlania graczy.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Bit 2 odpowiada za działanie rejestrów TRIG0-3: jego ustawienie powoduje, że po wciśnięciu spustu joysticka rejestr &amp;quot;zatrzaskuje się&amp;quot; i pokazuje cały czas, że spust jest wciśnięty, nawet jeśli już nie jest. Zwolnienie następuje dopiero po skasowaniu bitu 2 omawianego tu rejestru. Mechanizm ten służy do łapania stanów spustów joysticka bez konieczności ich nieustannego monitorowania.&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 id=&amp;quot;HITCLR&amp;quot;&amp;gt;$D01E (W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;HITCLR&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Zapis dowolnej wartości pod ten adres kasuje stany rejestrów kolizji.&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 id=&amp;quot;CONSOL&amp;quot;&amp;gt;$D01F (R/W)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;CONSOL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Bity 0-3 tego rejestru reprezentują stan nóżek S0-S3 układu [[GTIA]], a pozostałe bity sa niewykorzystane. Znaczenie:&amp;lt;/p&amp;gt;&lt;br /&gt;
* bit 3 - jednobitowe wyjście dźwiękowe&lt;br /&gt;
* bit 2 - stan klawisza OPTION (0 - naciśnięty)&lt;br /&gt;
* bit 1 - stan klawisza SELECT (0 - naciśnięty)&lt;br /&gt;
* bit 0 - stan klawisza START (0 - naciśnięty)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;&amp;quot;Jednobitowe wyjście dźwiękowe&amp;quot; wykorzystywane jest do generowania kliku klawiatury oraz dźwięku brzęczyka systemowego urządzenia &amp;quot;E:&amp;quot; (zob. [[CIO]]). W serii [[400/800]] służy do tego osobny głośniczek, w [[XL]] i [[XE]] natomiast jest to podłączone do ogólnego wyjścia audio.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Przed odczytaniem stanu linii wejściowych (czyli stanu klawiszy START, SELECT, OPTION) odpowiednie bity rejestru CONSOL trzeba ustawić na zero. Normalnie jednak nie ma potrzeby tego czynić w programie, gdyż robi to systemowa procedura [[SYSVBL]].&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&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;
{{stub}}&lt;br /&gt;
[[Kategoria:Programowanie Atari 8-bit]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Turbo_Blizzard&amp;diff=27323</id>
		<title>Turbo Blizzard</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Turbo_Blizzard&amp;diff=27323"/>
		<updated>2009-08-03T15:43:09Z</updated>

		<summary type="html">&lt;p&gt;Pajero: /* Oprogramowanie */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;System turbo do magnetofonów rozpowszechniony na południowej części naszej krainki. Najlepszy (wg [[Pajero]]) system przyspieszania transmisji, nadaje się nie tylko do gier - dobrze znosi [[COM|programy]] [[DOS]]owe.&lt;br /&gt;
&lt;br /&gt;
== Instrukcja obsługi ==&lt;br /&gt;
&lt;br /&gt;
Z tego względu, że istnieje duża różnorodność kartridży i oprogramowania do systemu TURBO BLIZZARD, dodatkowo to samo oprogramowanie występuje pod różnymi nazwami, poniższy opis traktować należy jako uniwersalny. Użytkownik po uruchomieniu systemu, niezależnie czy zrobi to wgrywając oprogramowanie z kasety magnetofonowej czy dyskietki, powinien zapoznać się z dostępnymi opcjami w MENU ukazującym się na ekranie.&lt;br /&gt;
&lt;br /&gt;
Uruchomienie oprogramowania z kartridża nie odbiega od ogólnie przyjętych zasad. Jeżeli moduł wyposażony jest w przełącznik lub przełączniki wyboru systemu, należy przed włączeniem zasilania odpowiednio je ustawić. Niektóre modele wyposażone są w przycisk RESET. W dowolnej chwili można wymusić nim zimny start systemu. Naciśnięcie przycisku RESET spowoduje wyzerowanie rejestru sprzętowego modułu, (linia RD5 = 1) w tym czasie można przełącznikami (jeżeli są) wybrać inny system TURBO BLIZZARD. Naciśnięcie RESET (w kombinacji z klawiszem OPTION) w ATARI spowoduje uruchomienie systemu.&lt;br /&gt;
Jeżeli w czasie uruchamiania modułu naciśnięty jest dodatkowo klawisz  SELECT  włączenie zasilania spowoduje odłączenie modułu.&lt;br /&gt;
Klawisz START zachowuje swoje znaczenie, włącza lub wyłącza BASIC w momencie uruchamiania modułu.&lt;br /&gt;
&lt;br /&gt;
Przykładowe MENU uruchomionego systemu może wyglądać tak&lt;br /&gt;
&lt;br /&gt;
1. MICROLOADER&lt;br /&gt;
&lt;br /&gt;
2. TURBO KOS&lt;br /&gt;
&lt;br /&gt;
3. SHORT KOS&lt;br /&gt;
&lt;br /&gt;
4. LOOKING&lt;br /&gt;
&lt;br /&gt;
=== MICROLOADER i SHORT KOS ===&lt;br /&gt;
&lt;br /&gt;
Służy do wczytywania i zapisywania plików tylko w systemie TURBO BLIZZARD. Różnica w użyciu jednego lub drugiego loadera polega na zainstalowaniu go w innym miejscu pamięci, co pozwala uniknąć kolizji z ładowanym oprogramowaniem.&lt;br /&gt;
SHORT KOS ładuje pliki DOSowe, Gdy w czasie wczytywania pliku ukaże się komunikat - FORMAT ERROR - plik taki należy załadować MICROLOADEREM. Dostępna jest duża różnorodność MICROLOADERÓW, gdy jakiegoś pliku nie można załadować i uruchomić, na zasadzie prób i błędów należy wybrać inny MICROLOADER. Niektóre programy nie współpracują z systemem TURBO BLIZZARD.&lt;br /&gt;
Użycie MICROLOADERA do załadowania pliku kasuje zawartość RAM-DYSKu.&lt;br /&gt;
&lt;br /&gt;
=== LOOKING ===&lt;br /&gt;
&lt;br /&gt;
Pozwala odnaleźć początek pliku, lub nazwy plików.&lt;br /&gt;
Odczytuje nazwy programów z taśmy, Gdy nazwa zostanie odnaleziona i wyświetlona na ekranie, naciśnięcie dowolnego klawisza uruchamia proces poszukiwania kolejnej nazwy pliku umieszczonego na taśmie. Naciśnięcie klawisza BREAK powoduje powrót do MENU.&lt;br /&gt;
Dziwne dźwięki które mogą sie pojawiać to skutek czytania innych rekordów niż tego zawierającego nazwę pliku. Zazwyczaj taki objaw występuje gdy taśma przed zapisem plików nie była dobrze skasowana. W takim wypadku należy nacisnąć dwukrotnie klawisz BREAK w celu powrotu do MENU lub nacisnąć klawisz BREAK i dowolny klawisz w celu dalszego poszukiwania nazwy pliku.&lt;br /&gt;
&lt;br /&gt;
=== TURBO KOS ===&lt;br /&gt;
&lt;br /&gt;
==== urządzenie M: (RAMDYSK) ====&lt;br /&gt;
&lt;br /&gt;
Po uruchomieniu system zapyta czy instalować RAMDYSK. Pytania brzmią&lt;br /&gt;
&lt;br /&gt;
INSTAL RAMDISK IN - instalować RAMDYSK w...&lt;br /&gt;
&lt;br /&gt;
RAM UNDER OS  - pamięci RAM pod OS-em&lt;br /&gt;
&lt;br /&gt;
RAM UNDER BASIC - pamięci pod BASIC-iem&lt;br /&gt;
&lt;br /&gt;
ADDITIONAL BANKS - w dodatkowych bankach (tylko w komputerach z pamięcią RAM o wielkości co najmniej 128k.&lt;br /&gt;
&lt;br /&gt;
Naciśnięcie klawisz &amp;quot;Y&amp;quot; zatwierdza, klawisz &amp;quot;N&amp;quot; pomija.&lt;br /&gt;
Gdy wszystkie pytania zostaną pominięte, RAM-DYSK nie zostanie zainstalowany&lt;br /&gt;
&lt;br /&gt;
Jeżeli zainstalowany jest RAM-DYSK a w nim jakieś pliki, wywołanie zimnego startu systemu przez naciśnięcie RESET w module, nie kasuje zawartości RAM-DYSKu.&lt;br /&gt;
Ponowne uruchomienie TURBO KOSa skutkuje pojawieniem się komunikatu - THERE IS RAMDISC IN (RAM-DYSK znajduje się w...) i poniżej pojawiają się komunikaty gdzie.&lt;br /&gt;
&lt;br /&gt;
Po zainstalowaniu RAM-DYSKu pojawi się komunikat informujący czy formatować RAM-DYSK. Naciśnięcie klawisza &amp;quot;Y&amp;quot; formatuje RAM-DYSK, klawisz &amp;quot;N&amp;quot;  pomija formatowanie. Gdy omyłkowo został naciśnięty klawisz &amp;quot;Y&amp;quot; zawartość RAM-DYSKu można jeszcze odzyskać, naciskając klawisz RESET w ATARI. Po naciśnięciu klawisza &amp;quot;Y&amp;quot; pojawią sie pytania jak wyżej opisano...&lt;br /&gt;
Bez zainstalowanego RAM-DYSKu TURBO KOS dysponuje większą pamięcią o około 1,2kB.&lt;br /&gt;
&lt;br /&gt;
Jeżeli został zainstalowany dostępny jest jako urządzenie M:. Można równocześnie używać wszystkich kanałów. W RAMDYSKu może się znajdować do 32 zbiorów danych (o ile pozwala na to rozmiar RAMDYSKu). Każdy sektor zawiera 125 bajtów danych w pojedynczej gęstości (jak dla stacji dysków)&lt;br /&gt;
&lt;br /&gt;
Rozmiar RAM-DYSKU&lt;br /&gt;
&lt;br /&gt;
683 sektory - dodatkowe banki, pod OS, pod BASICem&lt;br /&gt;
&lt;br /&gt;
619 sektorów  - dodatkowe banki, pod OS&lt;br /&gt;
&lt;br /&gt;
507 sektorów  - dodatkowe banki&lt;br /&gt;
&lt;br /&gt;
171 sektorów  - pod OS, pod BASICiem&lt;br /&gt;
&lt;br /&gt;
107 sektorów  - pod OS&lt;br /&gt;
&lt;br /&gt;
Format instrukcji OPEN dla RAM-DYSKu&lt;br /&gt;
 &lt;br /&gt;
OPEN A,B,C,&amp;quot;M:NAZWA&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*A - Numer kanału&lt;br /&gt;
*B - Rodzaj dostępu do pliku&lt;br /&gt;
**4 - Odczyt&lt;br /&gt;
**6 - Odczyt katalogu (Directory)&lt;br /&gt;
**8 - Zapis&lt;br /&gt;
&lt;br /&gt;
W nazwach plików używać można znaków * (gwiazdka) jak w nazwach plików DOSowych. RAMDYSK ma możliwość ponownego formatowania z poziomu TURBO KOS lub za pomocą komendy XIO&lt;br /&gt;
&lt;br /&gt;
==== urządzenie T: ====&lt;br /&gt;
&lt;br /&gt;
TURBO KOS 2.0 instaluje nowe urządzenie T: oraz procedury TURBO które umożliwiają...&lt;br /&gt;
&lt;br /&gt;
1. Zapis w systemu TURBO&lt;br /&gt;
&lt;br /&gt;
2. Zapis nazw programów\plików&lt;br /&gt;
&lt;br /&gt;
3. Wyszukiwanie programów\plików&lt;br /&gt;
&lt;br /&gt;
4. Nagrywanie skrótu nazwy po każdym rekordzie danych wraz z numerem rekordu&lt;br /&gt;
&lt;br /&gt;
Format instrukcji OPEN dla systemu TURBO&lt;br /&gt;
&lt;br /&gt;
OPEN A,B,C,&amp;quot;Tx::EXT.NAZWA&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*A - Numer kanału użytego do transmisji&lt;br /&gt;
*B - Rodzaj dostępu do pliku&lt;br /&gt;
**4 - Odczyt&lt;br /&gt;
**5 - Odczyt bez potwierdzeń naciśnięcia klawiszem&lt;br /&gt;
**6 - Odczyt katalogu (Directory)&lt;br /&gt;
**8 - Zapis&lt;br /&gt;
**9 - Zapis bez potwierdzeń naciśnięcia klawiszem&lt;br /&gt;
*C - Długość przerw pomiędzy rekordami&lt;br /&gt;
**C&amp;lt;128 zatrzymanie  silnika magnetofonu&lt;br /&gt;
**C&amp;gt;128 długość przerw pomiędzy rekordami w/g wzoru  C-128x0.02s + czas potrzebny systemowi na transmisję&lt;br /&gt;
&lt;br /&gt;
NAZWA PLIKU  Tx:EXT.NAZWA&amp;quot;&lt;br /&gt;
&lt;br /&gt;
*T - Nazwa urządzenia TURBO&lt;br /&gt;
**x - (0-5) lub pominięte&lt;br /&gt;
***0 - Przerwy pomiędzy rekordami dłuższe o 0.4s. Dłuższe przerwy są konieczne gdy plik ma być kopiowany do RAM-DYSKu opcją                  Transfer z TURBO KOSa&lt;br /&gt;
***1 - Jak wyżej lecz bez potwierdzania klawiszem&lt;br /&gt;
***2 - najkrótsze przerwy pomiędzy rekordami&lt;br /&gt;
***3 - Jak wyżej lecz bez potwierdzania klawiszem&lt;br /&gt;
***4 - Długie przerwy pomiędzy rekordami&lt;br /&gt;
***5 - Jak wyżej lecz bez potwierdzania klawiszem&lt;br /&gt;
&lt;br /&gt;
Polecenia przekazywane w nazwie programu (pomiędzy znakami cudzysłowia) mają priorytet nad przekazywanymi instrukcją OPEN&lt;br /&gt;
Jeżeli w nazwie pliku na czwartej pozycji po dwukropku znajduje się znak kropki, to trzy znaki pomiędzy dwukropkiem a kropka będą traktowane jako skrót nazwy pliku. Będą one nagrywane po każdym rekordzie danych wraz z numerem tego rekordu. Nazwa pliku nagrywana  przed początkiem pliku będzie się rozpoczynała od piątego znaku po dwukropku podanego ciągu. Jeżeli na czwartym miejscu po dwukropku nie ma znaku kropki to wówczas jako skrót nazwy będą używane trzy pierwsze znaki a właściwa nazwa umieszczana przed plikiem rozpoczynać się będzie od pierwszego znaku po dwukropku. Zasadnicza nazwa zawierać może 76 dowolnych znaków.&lt;br /&gt;
&lt;br /&gt;
Podczas otwierania kanału do czytania podana nazwa jest porównywalna z nazwą odczytaną z taśmy. Podana nazwa może być niepełną, i kiedy nastąpi zgodność znaków plik zostanie wczytywany. W nazwie pliku podać można znaki specjalne * (gwiazdka) np. *.*, po odnalezieniu na taśmie dowolnego rekordy z nazwą pliku system zapyta czy ten plik wczytywać, Po dokonaniu operacji otwarcia do ODCZYTU  nazwa pliku znajduje sie w buforze klawiatury od adresu 1408 (dec) i może być wykorzystana przez oprogramowanie użytkownika.&lt;br /&gt;
&lt;br /&gt;
Podczas odczytu skrótów nazw, naciśnięcie klawisza BREAK kończy przeszukiwanie (Patrz opis LOOKING). Wystąpienie błędu nr.176 wskazuje inny rodzaj pliku niezgodny z systemem TURBO BLIZZARD.&lt;br /&gt;
&lt;br /&gt;
==== Menu TURBO KOS ====&lt;br /&gt;
&lt;br /&gt;
Z poziomu BASICa dostęp do MENU następuje poprzez wydanie polecenia DOS. Na ekranie widnieją następujące komunikaty:&lt;br /&gt;
&lt;br /&gt;
BASIC OFF/ON - Wyłączony, Włączony BASIC&lt;br /&gt;
&lt;br /&gt;
MOTOR OFF/ON - Wyłączony, Włączony silnik magnetofonu&lt;br /&gt;
&lt;br /&gt;
Adres startu załadowanego programu lub adres początkowy 3199. Spis dostępnych urządzeń (skrót P,C,E,S,K,T,M).&lt;br /&gt;
&lt;br /&gt;
Lista dostępnych komend/poleceń zatwierdzanych klawiszem RETURN (tu w opisie przykłady użycia, polecenia rozdzielane są przecinkiem)&lt;br /&gt;
&lt;br /&gt;
R - RUN FILE - wczytanie i uruchomienie programu: R (return) T:NAZWA lub R,T:NAZWA&lt;br /&gt;
&lt;br /&gt;
Komunikat FORMAT ERROR informuje, że plik nie jest plikiem DOSowym i nie może być czytany i uruchomiony przez TURBO KOSa&lt;br /&gt;
&lt;br /&gt;
L - wczytanie programu/pliku bez uruchomienia  użycie, patrz wyżej&lt;br /&gt;
&lt;br /&gt;
S - start programu lub start od wskazanego adresu&lt;br /&gt;
&lt;br /&gt;
M - włącz/wyłącz silnik magnetofonu&lt;br /&gt;
&lt;br /&gt;
C - uruchomienie BASICa&lt;br /&gt;
&lt;br /&gt;
N - podanie nowego adresu startu:  N (return) ADRES lub N,ADRES&lt;br /&gt;
&lt;br /&gt;
G - zimny start systemu&lt;br /&gt;
&lt;br /&gt;
T - transfer. przesyłanie danych między urządzeniami/plikami: T (return) T:PLIK1 (return) M:PLIK2 lub  T,T:PLIK1,M:PLIK2. Plik o nazwie PLIK1 z taśmy zostanie przetransmitowany do RAMDYSKU jako plik PLIK2. Aby operacja sie powiodła, przerwy pomiędzy rekordami muszą być dłuższe o około 0.3s tak by po odczytaniu rekordu i transmitowaniu go do RAM-DYSKU nie był odczytywany kolejny rekord danych. Na pewno transmisja przebiegać będzie poprawnie gdy przerwy między rekordami będą długie, ale zwiększa to czas transmisji. Stąd opcja wydłużania najkrótszych przerw o w/w czas. Zatem program/plik powinien być zapisany na taśmie jako na urządzeniu T0:&lt;br /&gt;
&lt;br /&gt;
D - katalog&lt;br /&gt;
&lt;br /&gt;
E - Usuwanie plików danych np z RAMDYSKu: E (return) M:NAZWA lub E,M:NAZWA. Jeśli nie ma wskazanego nazwą pliku to wystąpi błąd 170&lt;br /&gt;
&lt;br /&gt;
I - formatowanie RAM-DYSKu, kasuje wszystkie zapisy&lt;br /&gt;
&lt;br /&gt;
B - włącz/wyłącz BASIC jeśli nie zabrania tego wskaźnik ustawiany przy uruchamianiu TURBO KOSa  (wciśnięty klawisz OPTION). Jeżeli BASIC zostanie wyłączony i RAM-DYSK jest założony w pamięci RAM pod BASICiem to RAM-DYSK zostanie automatycznie sformatowany.&lt;br /&gt;
 &lt;br /&gt;
V - zmiana nazw urządzeń: V (return) T (return) D lub V,T,D. Urządzenie T od tego momentu dostępne jest pod nazwą D. Operacja wymagana do poprawnej współpracy z niektórymi programami.&lt;br /&gt;
&lt;br /&gt;
==== współpraca z BASIC ====&lt;br /&gt;
&lt;br /&gt;
Transmisja TURBO i obsługa RAMDYSKu wykonuje sie po wydaniu standardowych poleceń np. LOAD &amp;quot;T2:NAZWA&amp;quot; uwzględniając podanie poprawnej nazwy urządzenia po pierwszym cudzysłowiu. Dla pełnego wykorzystania zalet transmisji TURBO zaleca się stosowanie poleceń tupu LOAD, SAVE lub RUN z podaniem nazwy urządzenia i nazwy programu/pliku.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;KOMENDY PLIKOWE (BAT)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Polegają one na załadowaniu od adresu 2820 (DEC) ciągu tekstowego o takiej strukturze jak przy podawaniu poleceń w MENU TURBO KOS. Ciąg poleceń może zawierać do 128 bajtów. Przykładowy program generujący ciąg poleceń pod wskazany adres.&lt;br /&gt;
&lt;br /&gt;
 10 DIM N$(74), BUF$(128)&lt;br /&gt;
 20 PRINT &amp;quot;PODAJ KOMENDE&amp;quot;&lt;br /&gt;
 30 INPUT BUF$&lt;br /&gt;
 40 PRINT &amp;quot;PODAJ NAZWE PLIKU POD KTORA ZAPISAC KOMENDE&amp;quot;&lt;br /&gt;
 50 INPUT N$&lt;br /&gt;
 60 OPEN #1,0,0,N$&lt;br /&gt;
 70 PUT #1,255&lt;br /&gt;
 80 PUT #1,255&lt;br /&gt;
 90 PUT #1,4&lt;br /&gt;
 100 PUT #1,11&lt;br /&gt;
 110 PUT #1,132&lt;br /&gt;
 120 PUT #1,11&lt;br /&gt;
&lt;br /&gt;
W liniach 70-120 generowany jest nagłówek DOSowy. Wygenerowany plik czytamy opcją &amp;quot;L&amp;quot; z poziomu TURBO KOS. Po wczytaniu, wykonywane są instrukcje jak dla plików typu BAT. Np. PODANĄ KOMENDĄ niech będzie ciąg M,G - wykona się jako plik BAT zatrzymanie silnika magnetofonowego i system wykona zimny start.&lt;br /&gt;
&lt;br /&gt;
== Struktura nagrania ==&lt;br /&gt;
&lt;br /&gt;
Nagranie składa sie z bloku nazwy pliku i bloków (rekordów) danych. Rekord nazwy to: 2 bajty długosci ($50), 80 znaków [[ATASCII]] nazwy (dowolne znaki wyświetlane na urządzenie E:), 1 bajt sumy kontrolnej. Natomiast rekord danych to: 2 bajty długości rekordu ($400), 1024b danych, 1b sumy kontrolnej. Ostatni rekord jest krótszy niż 1024b.&lt;br /&gt;
&lt;br /&gt;
== Montaż w magnetofonie ==&lt;br /&gt;
&lt;br /&gt;
Sposób wykonania interfejsu zależy od pomysłowości projektanta, jak widać z załączonych schematów tor przekształcający sygnał analogowy w cyfrowy wykonany może być na elementach dyskretnych (tranzystory) albo na układzie UL1111 zawierającym w swojej strukturze wystarczającą ilość tranzystorów (minus jeden).&lt;br /&gt;
&lt;br /&gt;
Na uwagę zasługuje różna wartość oporników podłączanych do układu, polaryzujących tranzystory w jednym i drugim modelu interfejsu. Nie ma to większego znaczenia, ważne by układ przekształcał sygnał analogowy na cyfrowy i w generowanych impulsach zbocza były strome.&lt;br /&gt;
&lt;br /&gt;
Dioda krzemowa umieszczona na wyjściu bramki NAND 7400 (punk E) symuluje wyjście typu OC (otwarty kolektor). Wyjście takie jest wymagane przez tor SIO ATARI do poprawnej komunikacji z wieloma urządzeniami podłączonymi do wspólnego gniazda SIO.&lt;br /&gt;
W modelu zbudowanym na układzie UL1111 diody tej brak, bo wyjście typu OC uzyskuje się stosując dwa tranzystory dołączone do wyjścia bramki NAND. (Dwa tranzystory są wymagane by układ nie odwracał fazy sygnału wyjściowego).&lt;br /&gt;
&lt;br /&gt;
Właściwy montaż interfejsu w magnetofonie polega na tym, by odlutować z płyty biały przewód który dochodzi z pinu 3 wtyku SIO.&lt;br /&gt;
Przewód ten należy podłączyć do punktu E interfejsu, a miejsce wylutowanego przewodu na płycie połączyć z punktem D intefejsu.&lt;br /&gt;
Do punktu A doprowadzić zasilanie +5V z płyty magnetofonu (za przełącznikiem), tak by zasilanie pojawiało się w momencie uruchamiania magnetofonu.&lt;br /&gt;
Punkt C połączyć z masą (GND)&lt;br /&gt;
Punkt F połączyć z punktem lutowniczym na płycie magnetofonu do którego przylutowany jest przewód biegnący z pinu 5 wtyku SIO (DATA OUT). Zazwyczaj jest to przewód szary.&lt;br /&gt;
Punkt B interfejsu w zależności od rodzaju płyty łączy się z pinem 8 lub 14 układu LM324 znajdującym się na płycie magnetofonu.&lt;br /&gt;
Z lokalizacją układu LM324 (lub jego odpowiednikiem) nie powinno być problemu, natomiast dalszy opis pozwala właściwie zlokalizować pin 8 lub 14, do pinu tego  połączone są cztery elementy, dwie diody krzemowe, opornik 1M i kondensator 50pF.&lt;br /&gt;
Jeżeli system pracuje poprawnie, (Zapis, Odczyt programów w systemie Turbo i Normal) montaż na tym się kończy, jeżeli nie, zlokalizować należy na płycie miejsce podłączenia przewodów - biały, czerwony - z głowicy odczytującej. Należy wylutować kondensator który zwiera te przewody.&lt;br /&gt;
&lt;br /&gt;
== Schematy ==&lt;br /&gt;
&lt;br /&gt;
[http://atariki.krap.pl/index.php/Grafika:BLIZZARD.png Schemat (wersja pierwsza)]&lt;br /&gt;
&lt;br /&gt;
[http://atariki.krap.pl/index.php/Grafika:BLIZZARD.v2.png Schemat (wersja druga)]&lt;br /&gt;
&lt;br /&gt;
[http://atariki.krap.pl/index.php/Grafika:BLIZZARDV3.png Schemat (wersja trzecia - zbudowana na wzmacniaczu UL1321]&lt;br /&gt;
&lt;br /&gt;
[http://atariki.krap.pl/index.php/Grafika:Blizzard_plyta.png Podłączenie płytki z Blizzard - widok na płytę XC12]&lt;br /&gt;
&lt;br /&gt;
[http://atariki.krap.pl/index.php/Grafika:Blizzardcart.png Schemat kartridża z oprogramowaniem]&lt;br /&gt;
&lt;br /&gt;
== Oprogramowanie ==&lt;br /&gt;
&lt;br /&gt;
[http://atariki.krap.pl/index.php/Grafika:Blizzard.atr Zestaw oprogramowania]&lt;br /&gt;
&lt;br /&gt;
* DISCBLI.COP program kopiujący dla BLIZZARDA, kopiuje pliki DYSK - BLIZZARD - DYSK&lt;br /&gt;
&lt;br /&gt;
* BLICOPY.MAG program kopiujący dla BLIZZARDA wersja tylko dla magnetofonu, kopiuje pliki zapisane standardowo na TURBO BLIZZARD i odwrotnie. Program nie uruchamia sie z poziomu DOSa tylko jako program ładowany systemem KOS BLIZZARD, należy go więc przekopiować na taśmę programem kopiującym DISCBLI.COP.&lt;br /&gt;
&lt;br /&gt;
[http://atariki.krap.pl/index.php/Grafika:BLIZZARD_HandlerASM.ATR Źródła handlera Blizzarda]&lt;br /&gt;
&lt;br /&gt;
* BLIZZARD.ASM deassemlerowany handler blizzarda, w przykładzie podpięcia pod DOS jako napęd &amp;quot;X&amp;quot; pod adres $B700-$BFFF&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Atari 8-bit]] [[Kategoria: Magnetofonowe Systemy Turbo]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Plik:BLIZZARD_HandlerASM.ATR&amp;diff=27322</id>
		<title>Plik:BLIZZARD HandlerASM.ATR</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Plik:BLIZZARD_HandlerASM.ATR&amp;diff=27322"/>
		<updated>2009-08-03T15:38:33Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Źródła handler&amp;#039;a Turbo Blizzarda.
Deassemblerował Pajero/MadTeam.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Źródła handler&#039;a Turbo Blizzarda.&lt;br /&gt;
Deassemblerował Pajero/MadTeam.&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Turbo_6000&amp;diff=25980</id>
		<title>Turbo 6000</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Turbo_6000&amp;diff=25980"/>
		<updated>2008-06-17T23:41:10Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Wprowadzenie linku&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www-user.tu-chemnitz.de/~sgl/atari/turb6000/turb6000.htm Strona domowa &amp;quot;Atari Datasette XC12 Turbo 6000 Baud Interface&amp;quot;]&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[Kategoria:Atari 8-bit]] [[Kategoria: Magnetofonowe Systemy Turbo]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Opisy_gier_na_ma%C5%82e_Atari&amp;diff=25440</id>
		<title>Opisy gier na małe Atari</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Opisy_gier_na_ma%C5%82e_Atari&amp;diff=25440"/>
		<updated>2008-03-28T19:38:42Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Start strony by Pajero&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{ImgFrm|http://atariki.krap.pl/images/6/6b/OpisyGierAmissFrontMini.jpg|http://atariki.krap.pl/images/0/0a/OpisyGierAmissFront.jpg|Kliknij by powiększyć}}&lt;br /&gt;
Książka pt. &#039;&#039;&#039;&amp;quot;Opisy gier na małe Atari&amp;quot; część I&#039;&#039;&#039;. Wydawnictwa Agencja Reklamowo-Wydawnicza Amiss, Elbląg 1992.&amp;lt;br&amp;gt;&lt;br /&gt;
{{ImgFrm|http://atariki.krap.pl/images/c/cf/OpisyGierAmissInMini.jpg|http://atariki.krap.pl/images/9/97/OpisyGierAmissIn.jpg|Przykładowa strona z książki}}&lt;br /&gt;
Na 143 stronach znalazły się opisy takich gier jak:&lt;br /&gt;
*[[Action Biker]]&lt;br /&gt;
*[[Agent USA]]&lt;br /&gt;
*[[Alley Cat]]&lt;br /&gt;
*[[Amaurote]]&lt;br /&gt;
*[[Astro Chase]]&lt;br /&gt;
*[[Atkin’s Chess 7.0]]&lt;br /&gt;
*[[Beach Head I]]&lt;br /&gt;
*[[Behind Jagi Lines]]&lt;br /&gt;
*[[Cavelord]]&lt;br /&gt;
*[[Computer War]]&lt;br /&gt;
*[[Diamonds]]&lt;br /&gt;
*[[Elektra Glide]]&lt;br /&gt;
*[[Fighter]]&lt;br /&gt;
*[[Gemstone Warrior]]&lt;br /&gt;
*[[Ghostbusters]]&lt;br /&gt;
*[[Gunfight]]&lt;br /&gt;
*[[Mecenary| Mecenary (Najemnik)]]&lt;br /&gt;
*[[Nato Commander]]&lt;br /&gt;
*[[Necromancer]]&lt;br /&gt;
*[[Road Race]]&lt;br /&gt;
*[[Silent Service]]&lt;br /&gt;
*[[Solo Flight]]&lt;br /&gt;
*[[Spitfire 40]]&lt;br /&gt;
*[[Spy Vs Spy 2]]&lt;br /&gt;
*[[Spy Vs Spy 3]]&lt;br /&gt;
*[[Temple Of Apshat]]&lt;br /&gt;
*[[The Goonies]]&lt;br /&gt;
*[[Whistler’s Brother]]&lt;br /&gt;
Dla każdej gry została opisana fabuła, sterowanie (klawiszologia), schemat ukończenia gry lub inne wskazówki (np. kurs pilotażu).&amp;lt;br&amp;gt;&lt;br /&gt;
Na ostatniej stronie reklama [[Turbo 2000]] [[Wojciech Ptasznik|Wojciecha Ptasznika]] z Elbląga.&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[Kategoria:Prasa komputerowa]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Plik:OpisyGierAmissInMini.jpg&amp;diff=25439</id>
		<title>Plik:OpisyGierAmissInMini.jpg</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Plik:OpisyGierAmissInMini.jpg&amp;diff=25439"/>
		<updated>2008-03-28T19:34:28Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Książka &amp;quot;Opisy gier na małe Atari&amp;quot; Przykładowa strona Mini&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Książka &amp;quot;Opisy gier na małe Atari&amp;quot; Przykładowa strona Mini&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Plik:OpisyGierAmissFrontMini.jpg&amp;diff=25438</id>
		<title>Plik:OpisyGierAmissFrontMini.jpg</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Plik:OpisyGierAmissFrontMini.jpg&amp;diff=25438"/>
		<updated>2008-03-28T19:05:38Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Książka &amp;quot;Opisy gier na małe Atari&amp;quot; Front miniaturka&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Książka &amp;quot;Opisy gier na małe Atari&amp;quot; Front miniaturka&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Plik:OpisyGierAjasoftIn.jpg&amp;diff=25411</id>
		<title>Plik:OpisyGierAjasoftIn.jpg</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Plik:OpisyGierAjasoftIn.jpg&amp;diff=25411"/>
		<updated>2008-03-27T20:58:38Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Książka &amp;quot;Opisy programów komputerowych&amp;quot; by Ajasoft 
Przykładowa strona.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Książka &amp;quot;Opisy programów komputerowych&amp;quot; by Ajasoft &lt;br /&gt;
Przykładowa strona.&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Plik:OpisyGierAjasoftBack.jpg&amp;diff=25410</id>
		<title>Plik:OpisyGierAjasoftBack.jpg</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Plik:OpisyGierAjasoftBack.jpg&amp;diff=25410"/>
		<updated>2008-03-27T20:57:48Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Książka &amp;quot;Opisy programów komputerowych&amp;quot; by Ajasoft 
Tył.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Książka &amp;quot;Opisy programów komputerowych&amp;quot; by Ajasoft &lt;br /&gt;
Tył.&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Plik:OpisyGierAjasoftFront.jpg&amp;diff=25409</id>
		<title>Plik:OpisyGierAjasoftFront.jpg</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Plik:OpisyGierAjasoftFront.jpg&amp;diff=25409"/>
		<updated>2008-03-27T20:57:01Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Książka &amp;quot;Opisy programów komputerowych&amp;quot; by Ajasoft 
Front.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Książka &amp;quot;Opisy programów komputerowych&amp;quot; by Ajasoft &lt;br /&gt;
Front.&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Plik:OpisyGierAmissIn.jpg&amp;diff=25408</id>
		<title>Plik:OpisyGierAmissIn.jpg</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Plik:OpisyGierAmissIn.jpg&amp;diff=25408"/>
		<updated>2008-03-27T20:55:25Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Książka &amp;quot;Opisy gier na małe Atari część I&amp;quot; by Amiss 1992
Przykładowa strona.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Książka &amp;quot;Opisy gier na małe Atari część I&amp;quot; by Amiss 1992&lt;br /&gt;
Przykładowa strona.&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Plik:OpisyGierAmissFront.jpg&amp;diff=25407</id>
		<title>Plik:OpisyGierAmissFront.jpg</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Plik:OpisyGierAmissFront.jpg&amp;diff=25407"/>
		<updated>2008-03-27T20:52:33Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Książka &amp;quot;Opisy gier na małe Atari część I&amp;quot; by Amiss 1992
Okładka.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Książka &amp;quot;Opisy gier na małe Atari część I&amp;quot; by Amiss 1992&lt;br /&gt;
Okładka.&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Plik:Ac181.zip&amp;diff=24609</id>
		<title>Plik:Ac181.zip</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Plik:Ac181.zip&amp;diff=24609"/>
		<updated>2007-11-30T14:35:22Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Atari Commander 1.81 by Pajero/MadTeam&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Atari Commander 1.81 by Pajero/MadTeam&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=24585</id>
		<title>SIO2SD</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=24585"/>
		<updated>2007-11-29T07:29:19Z</updated>

		<summary type="html">&lt;p&gt;Pajero: /* Wykaz komend */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Informacje Ogólne==&lt;br /&gt;
SIO2SD to interfejs autorstwa [[Jakub_Kruszona-Zawadzki|Jakuba Kruszony-Zawadzkiego]], pozwalający na wczytywanie gier/programów na Atari 8-bit poprzez port SIO z kart SD/MMC. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:Sio2sd.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cechy urządzenia==&lt;br /&gt;
&lt;br /&gt;
* Obsługa kart SD/MMC (formaty FAT12,FAT16 i FAT32) &lt;br /&gt;
* Obsługa plików w formatach ATR (rw), XFD (ro) i COM/XEX (ro) &lt;br /&gt;
* Wyświetlacz 16x2 pokazujący aktualnie wybrany katalog i plik ATR/XEX podmapowany pod określony numer stacji dysków.&lt;br /&gt;
* Obsługa SIO z turbo (możliwość ustawienia prędkości - hsindex od 1 do 16, standardowo 6, co odpowiada prędkości ok. 69kb/s, do wersji 2007.02.18 była stała prędkość 51kb/s - hsindex 10) &lt;br /&gt;
* Wszystkie gęstości z sektorami 128B i 256B (TOMS&#039;owe 512B na razie nieobsługiwane), w tym również dyski 16MB &lt;br /&gt;
* Możliwość równoleglej obsługi 8 stacji (do wersji 2007.02.08 tylko 4 stacje: D1-D4) &lt;br /&gt;
* Możliwość konfigurowania z poziomu ATARI (możliwe ładowanie programu konfiguracyjnego bezpośrednio z urządzenia, bez potrzeby nagrywania na kartę SD) &lt;br /&gt;
&lt;br /&gt;
==Wydajność==&lt;br /&gt;
&lt;br /&gt;
Prędkość zmierzona programem [[RW-Test]] pod [[SpartaDOS X]]:&lt;br /&gt;
&lt;br /&gt;
* DOS Reading: 1719,8 B/sek.&lt;br /&gt;
* DOS Writing: 5137,8 B/sek.&lt;br /&gt;
* DOS Average: 3428,8 B/sek.&lt;br /&gt;
&lt;br /&gt;
Użyto RW-Test w wersji 3.0 i karty SD Pretec Highspeed 60x.&lt;br /&gt;
&lt;br /&gt;
==Lista elementów==&lt;br /&gt;
&lt;br /&gt;
Poniżej przedstawiona jest lista elementów elektronicznych potrzebnych do budowy układu.&lt;br /&gt;
&lt;br /&gt;
    Lp  Ilość   Nazwa Elementu         Wartość          Oznaczenie elementu&lt;br /&gt;
     1     2    Rezystor                10k                 R1,R3&lt;br /&gt;
     2     1    Potencjometr            2.2k                R2&lt;br /&gt;
     3     3    Rezystor                1.8k                R4,R5,R6&lt;br /&gt;
     4     3    Rezystor                3.3k                R7,R8,R9&lt;br /&gt;
     5     1    Rezystor                27R                 R10&lt;br /&gt;
     6     3    Rezystor                220R                R11,R12,R13&lt;br /&gt;
     7     1    Kondensator tantalowy   10uF                C4&lt;br /&gt;
     8     2    Kondensator ceramiczny  22pF                C1,C2&lt;br /&gt;
     9     4    Kondensator ceramiczny  100nF               C3,C12,C10,C11&lt;br /&gt;
    10     5    Kondensator ceramiczny  22nF                C5,C6,C7,C8,C9&lt;br /&gt;
    11     1    Kwarc                   7.3728 lub 14MHz    Q1&lt;br /&gt;
    12     1    Dioda Schottkiego       BAT85               opcjonalnie&lt;br /&gt;
    13     1    Procesor ATMEGA32-16PI (lub Atmega 32L-8PU) IC1&lt;br /&gt;
    14     1    Stabilizator            3.3V                IC2&lt;br /&gt;
    15     3    Diody LED               3V                  LED1,LED2,LED3&lt;br /&gt;
    16     5    Mikrostyki                -                 S1,S2,S3,S4,S5&lt;br /&gt;
    17     1    Gniazdo SD                -                 SD&lt;br /&gt;
    18     1    Wyświetlacz 2x16 LED      -                 JP3&lt;br /&gt;
&lt;br /&gt;
==Porady dotyczące uruchomienia układu==&lt;br /&gt;
&lt;br /&gt;
* Dla kwarca 7.3728 MHz fuse procesora Atmel ustawiamy na (H:0xD1 ; L:0xFF)&lt;br /&gt;
* Dla kwarca 14.3118 MHz fuse procesora Atmel ustawiamy na (H:0xC3 ; L:0xFF)&lt;br /&gt;
* Jeżeli podczas wyboru plików ATR na wyświetlaczu pojawiają się śmieci - należy wymienić stabilizator napięcia 3.3V (na np. precyzyjny stabilizator napięcia 1.0A w obudowie TO-220)&lt;br /&gt;
* Komunikat &#039;Błąd odczytu karty SD&#039; - gdy jest włożona do slotu - przyczyną jest brak styku przy kondensatorze C12 lub stabilizatorze napięcia 3.3V. PCB jest dwustronne, dlatego zaleca się poprawić lutowanie z obu stron płytki dla tych elementów.&lt;br /&gt;
&lt;br /&gt;
==Programowanie, obsługa SIO==&lt;br /&gt;
&lt;br /&gt;
Sio2SD jest urządzeniem [[SIO]] z którym możemy się komunikować. Wykorzystuje tę możliwość dedykowany przez autora Sio2SD.com albo grupy MadTeam [[Atari Commander]] od wersji 1.7&amp;lt;br&amp;gt; &lt;br /&gt;
Poniżej nieoficjalne dane zebrane przez [[Pajero]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz urządzeń===&lt;br /&gt;
&lt;br /&gt;
* $73 - zgłasza się jako urządzenie numer 3, widocznie no.1 to [[SIO2IDE|Sio2Ide]], a no.2 to [[SIO2PC|Sio2pc]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
* $300 DDEVIC = $70 lub $73 +deviceID&lt;br /&gt;
* $301 DUNIT  = $03 lub $00 +deviceID&lt;br /&gt;
* $306 DTIMLO = $7f minimum, optymalnie $90&lt;br /&gt;
* $307 DUNUSE = $00 zawsze&lt;br /&gt;
* $30B DAUX2  = $00 zawsze&lt;br /&gt;
&lt;br /&gt;
DeviceID znajduje się w konfiguracji Sio2SD. Wartości 0-3. Pozwala podłączyć do 4 urzadzeń do Atari jednocześnie.&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;$0302 &amp;lt;b&amp;gt;DCMND&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0303 &amp;lt;b&amp;gt;DSTATS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0304/5 &amp;lt;b&amp;gt;DBUFA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0308/9 &amp;lt;b&amp;gt;DBYT&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030A &amp;lt;b&amp;gt;DAUX1&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;$00 get status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bufor jednobajtowy. Odczytana wartość:&amp;lt;br&amp;gt;00 = brak karty&amp;lt;br&amp;gt;01 = OK &amp;lt;br&amp;gt;02 = OK zmieniono kartę na inną&amp;lt;br&amp;gt;03 = OK zmiany w D1-D8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$01&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$01 get drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$02 mount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$03 unmount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$04 get name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla nazwy wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$05 select directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą katalogu &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$06 up directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$10 lcd set&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z linią do wyświetlenia&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$28&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00 = linia górna&amp;lt;br&amp;gt;$01 = linia dolna&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oczywiście obowiązuje zawsze sprawdzenie czy komenda została poprawnie wykonana. &lt;br /&gt;
&lt;br /&gt;
Czyli mamy możliwość sprawdzenia czy urządzenie jest włączone do gniazda SIO - get status; możemy odczytać co jest podpięte do jednego z ośmiu urządzeń - get drive; zmienić to podpięcie - mount drive; lub je wyłączyć (tzw. --OFF-- ) - unmount drive; odczytać zawartość bierzącego katalogu - get name; wejść do wybranego katalogu - select directory; przejść o katalog wyżej (do nadrzędnego) - up directory; a także wysłać tekst na wyświetlacz.&lt;br /&gt;
&lt;br /&gt;
Niestety w tej wersji urządzenia nie można ustawiać dowolnie ścieżki katalogów (nalezy po nich &amp;quot;skakać&amp;quot; krokowo), odczytywać dowolnego wpisu z katalogu - zawsze przekazywany jest wpis po wpisie.&lt;br /&gt;
Największym bólem jest brak możliwości zapisywania do samej karty. Czyli nie można założyć nowego [[ATR|Atr&#039;a]].&lt;br /&gt;
&lt;br /&gt;
===Wpis katalogu===&lt;br /&gt;
&lt;br /&gt;
Komunikacja odbywa się blokami po $36 bajtów. Zawartość:&lt;br /&gt;
* $00-$26 = nazwa wpisu do katalogu wypełniona do końca spacjami&lt;br /&gt;
* $27 = status wpisu: 01 katalog, 02 atr, 03 xfd, 04 inny &lt;br /&gt;
Jeśli pierwszy bajt równy 0 = koniec katalogu, potem znowu wszystko od początku.&lt;br /&gt;
&lt;br /&gt;
==Programowanie układu ATMEL==&lt;br /&gt;
&lt;br /&gt;
Aby zmienić firmware wystarczy wgrać program binarny [[BIN|*.BIN]] do katalogu karty SD i odpalić Sio2SD z Shift+K3. Ale przy błędzie takiej operacji, lub jeśli rozprogramuje się układ Atmel możemy tylko wykonać operacje programowania procesora.&lt;br /&gt;
Do tego celu może posłużyć dowolny programator (np. STK 200/300 za 16PLN na Allegro) podłączany do portu LPT (drukarki) w PC&#039;ecie. Za pomocą programu (np. darmowy PonyProg) szybko odratujemy Atmela. &lt;br /&gt;
Podłączamy kable programatora do złącza JP2 w płytce Sio2SD. Oznaczenia pinów - widok na PCB od strony elementów - powyżej jest Atmel: &lt;br /&gt;
&lt;br /&gt;
 RESET  CLK  MISO&lt;br /&gt;
  GND  MOSI   VCC&lt;br /&gt;
&lt;br /&gt;
Włączamy PC (wtyk D-Sub 25 wpięty już jest do LPT), podłączamy Sio2SD do Atari i je włączamy!&lt;br /&gt;
Uruchamiamy program który wykona programowanie. Szczegóły obsługi programu dostępne są w sieci lub u sprzedawcy programatora!&lt;br /&gt;
&lt;br /&gt;
==Przydatne linki==&lt;br /&gt;
&lt;br /&gt;
Więcej informacji na [http://sio2sd.gucio.pl/ stronie] autora projektu.&lt;br /&gt;
Żródło Atari Commandera na [http://madteam.atari8.info/index.php?prod=uzytki  stronie MadTeamu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=24530</id>
		<title>SIO2SD</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=24530"/>
		<updated>2007-11-20T23:53:20Z</updated>

		<summary type="html">&lt;p&gt;Pajero: /* Wykaz komend */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Informacje Ogólne==&lt;br /&gt;
SIO2SD to interfejs autorstwa [[Jakub_Kruszona-Zawadzki|Jakuba Kruszony-Zawadzkiego]], pozwalający na wczytywanie gier/programów na Atari 8-bit poprzez port SIO z kart SD/MMC. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:Sio2sd.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cechy urządzenia==&lt;br /&gt;
&lt;br /&gt;
* Obsługa kart SD/MMC (formaty FAT12,FAT16 i FAT32) &lt;br /&gt;
* Obsługa plików w formatach ATR (rw), XFD (ro) i COM/XEX (ro) &lt;br /&gt;
* Wyświetlacz 16x2 pokazujący aktualnie wybrany katalog i plik ATR/XEX podmapowany pod określony numer stacji dysków.&lt;br /&gt;
* Obsługa SIO z turbo (możliwość ustawienia prędkości - hsindex od 1 do 16, standardowo 6, co odpowiada prędkości ok. 69kb/s, do wersji 2007.02.18 była stała prędkość 51kb/s - hsindex 10) &lt;br /&gt;
* Wszystkie gęstości z sektorami 128B i 256B (TOMS&#039;owe 512B na razie nieobsługiwane), w tym również dyski 16MB &lt;br /&gt;
* Możliwość równoleglej obsługi 8 stacji (do wersji 2007.02.08 tylko 4 stacje: D1-D4) &lt;br /&gt;
* Możliwość konfigurowania z poziomu ATARI (możliwe ładowanie programu konfiguracyjnego bezpośrednio z urządzenia, bez potrzeby nagrywania na kartę SD) &lt;br /&gt;
&lt;br /&gt;
==Wydajność==&lt;br /&gt;
&lt;br /&gt;
Prędkość zmierzona programem [[RW-Test]] pod [[SpartaDOS X]]:&lt;br /&gt;
&lt;br /&gt;
* DOS Reading: 1719,8 B/sek.&lt;br /&gt;
* DOS Writing: 5137,8 B/sek.&lt;br /&gt;
* DOS Average: 3428,8 B/sek.&lt;br /&gt;
&lt;br /&gt;
Użyto RW-Test w wersji 3.0 i karty SD Pretec Highspeed 60x.&lt;br /&gt;
&lt;br /&gt;
==Lista elementów==&lt;br /&gt;
&lt;br /&gt;
Poniżej przedstawiona jest lista elementów elektronicznych potrzebnych do budowy układu.&lt;br /&gt;
&lt;br /&gt;
    Lp  Ilość   Nazwa Elementu         Wartość          Oznaczenie elementu&lt;br /&gt;
     1     2    Rezystor                10k                 R1,R3&lt;br /&gt;
     2     1    Potencjometr            2.2k                R2&lt;br /&gt;
     3     3    Rezystor                1.8k                R4,R5,R6&lt;br /&gt;
     4     3    Rezystor                3.3k                R7,R8,R9&lt;br /&gt;
     5     1    Rezystor                27R                 R10&lt;br /&gt;
     6     3    Rezystor                220R                R11,R12,R13&lt;br /&gt;
     7     1    Kondensator tantalowy   10uF                C4&lt;br /&gt;
     8     2    Kondensator ceramiczny  22pF                C1,C2&lt;br /&gt;
     9     4    Kondensator ceramiczny  100nF               C3,C12,C10,C11&lt;br /&gt;
    10     5    Kondensator ceramiczny  22nF                C5,C6,C7,C8,C9&lt;br /&gt;
    11     1    Kwarc                   7.3728 lub 14MHz    Q1&lt;br /&gt;
    12     1    Dioda Schottkiego       BAT85               opcjonalnie&lt;br /&gt;
    13     1    Procesor ATMEGA32-16PI (lub Atmega 32L-8PU) IC1&lt;br /&gt;
    14     1    Stabilizator            3.3V                IC2&lt;br /&gt;
    15     3    Diody LED               3V                  LED1,LED2,LED3&lt;br /&gt;
    16     5    Mikrostyki                -                 S1,S2,S3,S4,S5&lt;br /&gt;
    17     1    Gniazdo SD                -                 SD&lt;br /&gt;
    18     1    Wyświetlacz 2x16 LED      -                 JP3&lt;br /&gt;
&lt;br /&gt;
==Porady dotyczące uruchomienia układu==&lt;br /&gt;
&lt;br /&gt;
* Dla kwarca 7.3728 MHz fuse procesora Atmel ustawiamy na (H:0xD1 ; L:0xFF)&lt;br /&gt;
* Dla kwarca 14.3118 MHz fuse procesora Atmel ustawiamy na (H:0xC3 ; L:0xFF)&lt;br /&gt;
* Jeżeli podczas wyboru plików ATR na wyświetlaczu pojawiają się śmieci - należy wymienić stabilizator napięcia 3.3V (na np. precyzyjny stabilizator napięcia 1.0A w obudowie TO-220)&lt;br /&gt;
* Komunikat &#039;Błąd odczytu karty SD&#039; - gdy jest włożona do slotu - przyczyną jest brak styku przy kondensatorze C12 lub stabilizatorze napięcia 3.3V. PCB jest dwustronne, dlatego zaleca się poprawić lutowanie z obu stron płytki dla tych elementów.&lt;br /&gt;
&lt;br /&gt;
==Programowanie, obsługa SIO==&lt;br /&gt;
&lt;br /&gt;
Sio2SD jest urządzeniem [[SIO]] z którym możemy się komunikować. Wykorzystuje tę możliwość dedykowany przez autora Sio2SD.com albo grupy MadTeam [[Atari Commander]] od wersji 1.7&amp;lt;br&amp;gt; &lt;br /&gt;
Poniżej nieoficjalne dane zebrane przez [[Pajero]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz urządzeń===&lt;br /&gt;
&lt;br /&gt;
* $73 - zgłasza się jako urządzenie numer 3, widocznie no.1 to [[SIO2IDE|Sio2Ide]], a no.2 to [[SIO2PC|Sio2pc]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
* $300 DDEVIC = $70 lub $73&lt;br /&gt;
* $301 DUNIT  = $03 lub $00&lt;br /&gt;
* $306 DTIMLO = $7f zawsze&lt;br /&gt;
* $307 DUNUSE = $00 zawsze&lt;br /&gt;
* $30B DAUX2  = $00 zawsze&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;$0302 &amp;lt;b&amp;gt;DCMND&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0303 &amp;lt;b&amp;gt;DSTATS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0304/5 &amp;lt;b&amp;gt;DBUFA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0308/9 &amp;lt;b&amp;gt;DBYT&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030A &amp;lt;b&amp;gt;DAUX1&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;$00 get status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bufor jednobajtowy. Odczytana wartość:&amp;lt;br&amp;gt;00 = brak karty&amp;lt;br&amp;gt;01 = OK &amp;lt;br&amp;gt;02 = OK zmieniono kartę na inną&amp;lt;br&amp;gt;03 = OK zmiany w D1-D8&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$01&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$01 get drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$02 mount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$03 unmount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$04 get name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla nazwy wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$05 select directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą katalogu &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$06 up directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$10 lcd set&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z linią do wyświetlenia&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$28&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00 = linia górna&amp;lt;br&amp;gt;$01 = linia dolna&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oczywiście obowiązuje zawsze sprawdzenie czy komenda została poprawnie wykonana. &lt;br /&gt;
&lt;br /&gt;
Czyli mamy możliwość sprawdzenia czy urządzenie jest włączone do gniazda SIO - get status; możemy odczytać co jest podpięte do jednego z ośmiu urządzeń - get drive; zmienić to podpięcie - mount drive; lub je wyłączyć (tzw. --OFF-- ) - unmount drive; odczytać zawartość bierzącego katalogu - get name; wejść do wybranego katalogu - select directory; przejść o katalog wyżej (do nadrzędnego) - up directory; a także wysłać tekst na wyświetlacz.&lt;br /&gt;
&lt;br /&gt;
Niestety w tej wersji urządzenia nie można ustawiać dowolnie ścieżki katalogów (nalezy po nich &amp;quot;skakać&amp;quot; krokowo), odczytywać dowolnego wpisu z katalogu - zawsze przekazywany jest wpis po wpisie.&lt;br /&gt;
Największym bólem jest brak możliwości zapisywania do samej karty. Czyli nie można założyć nowego [[ATR|Atr&#039;a]].&lt;br /&gt;
&lt;br /&gt;
===Wpis katalogu===&lt;br /&gt;
&lt;br /&gt;
Komunikacja odbywa się blokami po $36 bajtów. Zawartość:&lt;br /&gt;
* $00-$26 = nazwa wpisu do katalogu wypełniona do końca spacjami&lt;br /&gt;
* $27 = status wpisu: 01 katalog, 02 atr, 03 xfd, 04 inny &lt;br /&gt;
Jeśli pierwszy bajt równy 0 = koniec katalogu, potem znowu wszystko od początku.&lt;br /&gt;
&lt;br /&gt;
==Programowanie układu ATMEL==&lt;br /&gt;
&lt;br /&gt;
Aby zmienić firmware wystarczy wgrać program binarny [[BIN|*.BIN]] do katalogu karty SD i odpalić Sio2SD z Shift+K3. Ale przy błędzie takiej operacji, lub jeśli rozprogramuje się układ Atmel możemy tylko wykonać operacje programowania procesora.&lt;br /&gt;
Do tego celu może posłużyć dowolny programator (np. STK 200/300 za 16PLN na Allegro) podłączany do portu LPT (drukarki) w PC&#039;ecie. Za pomocą programu (np. darmowy PonyProg) szybko odratujemy Atmela. &lt;br /&gt;
Podłączamy kable programatora do złącza JP2 w płytce Sio2SD. Oznaczenia pinów - widok na PCB od strony elementów - powyżej jest Atmel: &lt;br /&gt;
&lt;br /&gt;
 RESET  CLK  MISO&lt;br /&gt;
  GND  MOSI   VCC&lt;br /&gt;
&lt;br /&gt;
Włączamy PC (wtyk D-Sub 25 wpięty już jest do LPT), podłączamy Sio2SD do Atari i je włączamy!&lt;br /&gt;
Uruchamiamy program który wykona programowanie. Szczegóły obsługi programu dostępne są w sieci lub u sprzedawcy programatora!&lt;br /&gt;
&lt;br /&gt;
==Przydatne linki==&lt;br /&gt;
&lt;br /&gt;
Więcej informacji na [http://sio2sd.gucio.pl/ stronie] autora projektu.&lt;br /&gt;
Żródło Atari Commandera na [http://madteam.atari8.info/index.php?prod=uzytki  stronie MadTeamu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=24205</id>
		<title>SIO2SD</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=24205"/>
		<updated>2007-10-18T22:08:25Z</updated>

		<summary type="html">&lt;p&gt;Pajero: /* Programowanie układu ATMEL */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Informacje Ogólne==&lt;br /&gt;
SIO2SD to interfejs autorstwa [[Jakub_Kruszona-Zawadzki|Jakuba Kruszony-Zawadzkiego]], pozwalający na wczytywanie gier/programów na Atari 8-bit poprzez port SIO z kart SD/MMC. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:Sio2sd.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cechy urządzenia==&lt;br /&gt;
&lt;br /&gt;
* Obsługa kart SD/MMC (formaty FAT12,FAT16 i FAT32) &lt;br /&gt;
* Obsługa plików w formatach ATR (rw), XFD (ro) i COM/XEX (ro) &lt;br /&gt;
* Wyświetlacz 16x2 pokazujący aktualnie wybrany katalog i plik ATR/XEX podmapowany pod określony numer stacji dysków.&lt;br /&gt;
* Obsługa SIO z turbo (możliwość ustawienia prędkości - hsindex od 1 do 16, standardowo 6, co odpowiada prędkości ok. 69kb/s, do wersji 2007.02.18 była stała prędkość 51kb/s - hsindex 10) &lt;br /&gt;
* Wszystkie gęstości z sektorami 128B i 256B (TOMS&#039;owe 512B na razie nieobsługiwane), w tym również dyski 16MB &lt;br /&gt;
* Możliwość równoleglej obsługi 8 stacji (do wersji 2007.02.08 tylko 4 stacje: D1-D4) &lt;br /&gt;
* Możliwość konfigurowania z poziomu ATARI (możliwe ładowanie programu konfiguracyjnego bezpośrednio z urządzenia, bez potrzeby nagrywania na kartę SD) &lt;br /&gt;
&lt;br /&gt;
==Wydajność==&lt;br /&gt;
&lt;br /&gt;
Prędkość zmierzona programem [[RW-Test]] pod [[SpartaDOS X]]:&lt;br /&gt;
&lt;br /&gt;
* DOS Reading: 1719,8 B/sek.&lt;br /&gt;
* DOS Writing: 5137,8 B/sek.&lt;br /&gt;
* DOS Average: 3428,8 B/sek.&lt;br /&gt;
&lt;br /&gt;
Użyto RW-Test w wersji 3.0 i karty SD Pretec Highspeed 60x.&lt;br /&gt;
&lt;br /&gt;
==Lista elementów==&lt;br /&gt;
&lt;br /&gt;
Poniżej przedstawiona jest lista elementów elektronicznych potrzebnych do budowy układu.&lt;br /&gt;
&lt;br /&gt;
    Lp  Ilość   Nazwa Elementu         Wartość          Oznaczenie elementu&lt;br /&gt;
     1     2    Rezystor                10k                 R1,R3&lt;br /&gt;
     2     1    Potencjometr            2.2k                R2&lt;br /&gt;
     3     3    Rezystor                1.8k                R4,R5,R6&lt;br /&gt;
     4     3    Rezystor                3.3k                R7,R8,R9&lt;br /&gt;
     5     1    Rezystor                27R                 R10&lt;br /&gt;
     6     3    Rezystor                220R                R11,R12,R13&lt;br /&gt;
     7     1    Kondensator tantalowy   10uF                C4&lt;br /&gt;
     8     2    Kondensator ceramiczny  22pF                C1,C2&lt;br /&gt;
     9     4    Kondensator ceramiczny  100nF               C3,C12,C10,C11&lt;br /&gt;
    10     5    Kondensator ceramiczny  22nF                C5,C6,C7,C8,C9&lt;br /&gt;
    11     1    Kwarc                   7.3728 lub 14MHz    Q1&lt;br /&gt;
    12     1    Dioda Schottkiego       BAT85               opcjonalnie&lt;br /&gt;
    13     1    Procesor ATMEGA32-16PI (lub Atmega 32L-8PU) IC1&lt;br /&gt;
    14     1    Stabilizator            3.3V                IC2&lt;br /&gt;
    15     3    Diody LED               3V                  LED1,LED2,LED3&lt;br /&gt;
    16     5    Mikrostyki                -                 S1,S2,S3,S4,S5&lt;br /&gt;
    17     1    Gniazdo SD                -                 SD&lt;br /&gt;
    18     1    Wyświetlacz 2x16 LED      -                 JP3&lt;br /&gt;
&lt;br /&gt;
==Porady dotyczące uruchomienia układu==&lt;br /&gt;
&lt;br /&gt;
* Dla kwarca 7.3728 MHz fuse procesora Atmel ustawiamy na (H:0xD1 ; L:0xFF)&lt;br /&gt;
* Dla kwarca 14.3118 MHz fuse procesora Atmel ustawiamy na (H:0xC3 ; L:0xFF)&lt;br /&gt;
* Jeżeli podczas wyboru plików ATR na wyświetlaczu pojawiają się śmieci - należy wymienić stabilizator napięcia 3.3V (na np. precyzyjny stabilizator napięcia 1.0A w obudowie TO-220)&lt;br /&gt;
* Komunikat &#039;Błąd odczytu karty SD&#039; - gdy jest włożona do slotu - przyczyną jest brak styku przy kondensatorze C12 lub stabilizatorze napięcia 3.3V. PCB jest dwustronne, dlatego zaleca się poprawić lutowanie z obu stron płytki dla tych elementów.&lt;br /&gt;
&lt;br /&gt;
==Programowanie, obsługa SIO==&lt;br /&gt;
&lt;br /&gt;
Sio2SD jest urządzeniem [[SIO]] z którym możemy się komunikować. Wykorzystuje tę możliwość dedykowany przez autora Sio2SD.com albo grupy MadTeam [[Atari Commander]] od wersji 1.7&amp;lt;br&amp;gt; &lt;br /&gt;
Poniżej nieoficjalne dane zebrane przez [[Pajero]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz urządzeń===&lt;br /&gt;
&lt;br /&gt;
* $73 - zgłasza się jako urządzenie numer 3, widocznie no.1 to [[SIO2IDE|Sio2Ide]], a no.2 to [[SIO2PC|Sio2pc]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
* $300 DDEVIC = $70 lub $73&lt;br /&gt;
* $301 DUNIT  = $03 lub $00&lt;br /&gt;
* $306 DTIMLO = $7f zawsze&lt;br /&gt;
* $307 DUNUSE = $00 zawsze&lt;br /&gt;
* $30B DAUX2  = $00 zawsze&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;$0302 &amp;lt;b&amp;gt;DCMND&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0303 &amp;lt;b&amp;gt;DSTATS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0304/5 &amp;lt;b&amp;gt;DBUFA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0308/9 &amp;lt;b&amp;gt;DBYT&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030A &amp;lt;b&amp;gt;DAUX1&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;$00 get status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bufor jednobajtowy. Odczytana wartość:&amp;lt;br&amp;gt;00 = brak karty&amp;lt;br&amp;gt;01 = OK &amp;lt;br&amp;gt;02 = OK zmieniono kartę na inną&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$01&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$01 get drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$02 mount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$03 unmount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$04 get name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla nazwy wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$05 select directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą katalogu &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$06 up directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$10 lcd set&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z linią do wyświetlenia&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$28&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00 = linia górna&amp;lt;br&amp;gt;$01 = linia dolna&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oczywiście obowiązuje zawsze sprawdzenie czy komenda została poprawnie wykonana. &lt;br /&gt;
&lt;br /&gt;
Czyli mamy możliwość sprawdzenia czy urządzenie jest włączone do gniazda SIO - get status; możemy odczytać co jest podpięte do jednego z ośmiu urządzeń - get drive; zmienić to podpięcie - mount drive; lub je wyłączyć (tzw. --OFF-- ) - unmount drive; odczytać zawartość bierzącego katalogu - get name; wejść do wybranego katalogu - select directory; przejść o katalog wyżej (do nadrzędnego) - up directory; a także wysłać tekst na wyświetlacz.&lt;br /&gt;
&lt;br /&gt;
Niestety w tej wersji urządzenia nie można ustawiać dowolnie ścieżki katalogów (nalezy po nich &amp;quot;skakać&amp;quot; krokowo), odczytywać dowolnego wpisu z katalogu - zawsze przekazywany jest wpis po wpisie.&lt;br /&gt;
Największym bólem jest brak możliwości zapisywania do samej karty. Czyli nie można założyć nowego [[ATR|Atr&#039;a]].&lt;br /&gt;
&lt;br /&gt;
===Wpis katalogu===&lt;br /&gt;
&lt;br /&gt;
Komunikacja odbywa się blokami po $36 bajtów. Zawartość:&lt;br /&gt;
* $00-$26 = nazwa wpisu do katalogu wypełniona do końca spacjami&lt;br /&gt;
* $27 = status wpisu: 01 katalog, 02 atr, 03 xfd, 04 inny &lt;br /&gt;
Jeśli pierwszy bajt równy 0 = koniec katalogu, potem znowu wszystko od początku.&lt;br /&gt;
&lt;br /&gt;
==Programowanie układu ATMEL==&lt;br /&gt;
&lt;br /&gt;
Aby zmienić firmware wystarczy wgrać program binarny [[BIN|*.BIN]] do katalogu karty SD i odpalić Sio2SD z Shift+K3. Ale przy błędzie takiej operacji, lub jeśli rozprogramuje się układ Atmel możemy tylko wykonać operacje programowania procesora.&lt;br /&gt;
Do tego celu może posłużyć dowolny programator (np. STK 200/300 za 16PLN na Allegro) podłączany do portu LPT (drukarki) w PC&#039;ecie. Za pomocą programu (np. darmowy PonyProg) szybko odratujemy Atmela. &lt;br /&gt;
Podłączamy kable programatora do złącza JP2 w płytce Sio2SD. Oznaczenia pinów - widok na PCB od strony elementów - powyżej jest Atmel: &lt;br /&gt;
&lt;br /&gt;
 RESET  CLK  MISO&lt;br /&gt;
  GND  MOSI   VCC&lt;br /&gt;
&lt;br /&gt;
Włączamy PC (wtyk D-Sub 25 wpięty już jest do LPT), podłączamy Sio2SD do Atari i je włączamy!&lt;br /&gt;
Uruchamiamy program który wykona programowanie. Szczegóły obaługi programu dostępne w sieci lub u sprzedacy programatora!&lt;br /&gt;
&lt;br /&gt;
==Przydatne linki==&lt;br /&gt;
&lt;br /&gt;
Więcej informacji na [http://sio2sd.gucio.pl/ stronie] autora projektu.&lt;br /&gt;
Żródło Atari Commandera na [http://madteam.atari8.info/index.php?prod=uzytki  stronie MadTeamu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=24204</id>
		<title>SIO2SD</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=24204"/>
		<updated>2007-10-18T22:05:55Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Programowanie Atmela&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Informacje Ogólne==&lt;br /&gt;
SIO2SD to interfejs autorstwa [[Jakub_Kruszona-Zawadzki|Jakuba Kruszony-Zawadzkiego]], pozwalający na wczytywanie gier/programów na Atari 8-bit poprzez port SIO z kart SD/MMC. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:Sio2sd.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cechy urządzenia==&lt;br /&gt;
&lt;br /&gt;
* Obsługa kart SD/MMC (formaty FAT12,FAT16 i FAT32) &lt;br /&gt;
* Obsługa plików w formatach ATR (rw), XFD (ro) i COM/XEX (ro) &lt;br /&gt;
* Wyświetlacz 16x2 pokazujący aktualnie wybrany katalog i plik ATR/XEX podmapowany pod określony numer stacji dysków.&lt;br /&gt;
* Obsługa SIO z turbo (możliwość ustawienia prędkości - hsindex od 1 do 16, standardowo 6, co odpowiada prędkości ok. 69kb/s, do wersji 2007.02.18 była stała prędkość 51kb/s - hsindex 10) &lt;br /&gt;
* Wszystkie gęstości z sektorami 128B i 256B (TOMS&#039;owe 512B na razie nieobsługiwane), w tym również dyski 16MB &lt;br /&gt;
* Możliwość równoleglej obsługi 8 stacji (do wersji 2007.02.08 tylko 4 stacje: D1-D4) &lt;br /&gt;
* Możliwość konfigurowania z poziomu ATARI (możliwe ładowanie programu konfiguracyjnego bezpośrednio z urządzenia, bez potrzeby nagrywania na kartę SD) &lt;br /&gt;
&lt;br /&gt;
==Wydajność==&lt;br /&gt;
&lt;br /&gt;
Prędkość zmierzona programem [[RW-Test]] pod [[SpartaDOS X]]:&lt;br /&gt;
&lt;br /&gt;
* DOS Reading: 1719,8 B/sek.&lt;br /&gt;
* DOS Writing: 5137,8 B/sek.&lt;br /&gt;
* DOS Average: 3428,8 B/sek.&lt;br /&gt;
&lt;br /&gt;
Użyto RW-Test w wersji 3.0 i karty SD Pretec Highspeed 60x.&lt;br /&gt;
&lt;br /&gt;
==Lista elementów==&lt;br /&gt;
&lt;br /&gt;
Poniżej przedstawiona jest lista elementów elektronicznych potrzebnych do budowy układu.&lt;br /&gt;
&lt;br /&gt;
    Lp  Ilość   Nazwa Elementu         Wartość          Oznaczenie elementu&lt;br /&gt;
     1     2    Rezystor                10k                 R1,R3&lt;br /&gt;
     2     1    Potencjometr            2.2k                R2&lt;br /&gt;
     3     3    Rezystor                1.8k                R4,R5,R6&lt;br /&gt;
     4     3    Rezystor                3.3k                R7,R8,R9&lt;br /&gt;
     5     1    Rezystor                27R                 R10&lt;br /&gt;
     6     3    Rezystor                220R                R11,R12,R13&lt;br /&gt;
     7     1    Kondensator tantalowy   10uF                C4&lt;br /&gt;
     8     2    Kondensator ceramiczny  22pF                C1,C2&lt;br /&gt;
     9     4    Kondensator ceramiczny  100nF               C3,C12,C10,C11&lt;br /&gt;
    10     5    Kondensator ceramiczny  22nF                C5,C6,C7,C8,C9&lt;br /&gt;
    11     1    Kwarc                   7.3728 lub 14MHz    Q1&lt;br /&gt;
    12     1    Dioda Schottkiego       BAT85               opcjonalnie&lt;br /&gt;
    13     1    Procesor ATMEGA32-16PI (lub Atmega 32L-8PU) IC1&lt;br /&gt;
    14     1    Stabilizator            3.3V                IC2&lt;br /&gt;
    15     3    Diody LED               3V                  LED1,LED2,LED3&lt;br /&gt;
    16     5    Mikrostyki                -                 S1,S2,S3,S4,S5&lt;br /&gt;
    17     1    Gniazdo SD                -                 SD&lt;br /&gt;
    18     1    Wyświetlacz 2x16 LED      -                 JP3&lt;br /&gt;
&lt;br /&gt;
==Porady dotyczące uruchomienia układu==&lt;br /&gt;
&lt;br /&gt;
* Dla kwarca 7.3728 MHz fuse procesora Atmel ustawiamy na (H:0xD1 ; L:0xFF)&lt;br /&gt;
* Dla kwarca 14.3118 MHz fuse procesora Atmel ustawiamy na (H:0xC3 ; L:0xFF)&lt;br /&gt;
* Jeżeli podczas wyboru plików ATR na wyświetlaczu pojawiają się śmieci - należy wymienić stabilizator napięcia 3.3V (na np. precyzyjny stabilizator napięcia 1.0A w obudowie TO-220)&lt;br /&gt;
* Komunikat &#039;Błąd odczytu karty SD&#039; - gdy jest włożona do slotu - przyczyną jest brak styku przy kondensatorze C12 lub stabilizatorze napięcia 3.3V. PCB jest dwustronne, dlatego zaleca się poprawić lutowanie z obu stron płytki dla tych elementów.&lt;br /&gt;
&lt;br /&gt;
==Programowanie, obsługa SIO==&lt;br /&gt;
&lt;br /&gt;
Sio2SD jest urządzeniem [[SIO]] z którym możemy się komunikować. Wykorzystuje tę możliwość dedykowany przez autora Sio2SD.com albo grupy MadTeam [[Atari Commander]] od wersji 1.7&amp;lt;br&amp;gt; &lt;br /&gt;
Poniżej nieoficjalne dane zebrane przez [[Pajero]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz urządzeń===&lt;br /&gt;
&lt;br /&gt;
* $73 - zgłasza się jako urządzenie numer 3, widocznie no.1 to [[SIO2IDE|Sio2Ide]], a no.2 to [[SIO2PC|Sio2pc]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
* $300 DDEVIC = $70 lub $73&lt;br /&gt;
* $301 DUNIT  = $03 lub $00&lt;br /&gt;
* $306 DTIMLO = $7f zawsze&lt;br /&gt;
* $307 DUNUSE = $00 zawsze&lt;br /&gt;
* $30B DAUX2  = $00 zawsze&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;$0302 &amp;lt;b&amp;gt;DCMND&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0303 &amp;lt;b&amp;gt;DSTATS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0304/5 &amp;lt;b&amp;gt;DBUFA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0308/9 &amp;lt;b&amp;gt;DBYT&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030A &amp;lt;b&amp;gt;DAUX1&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;$00 get status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bufor jednobajtowy. Odczytana wartość:&amp;lt;br&amp;gt;00 = brak karty&amp;lt;br&amp;gt;01 = OK &amp;lt;br&amp;gt;02 = OK zmieniono kartę na inną&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$01&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$01 get drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$02 mount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$03 unmount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$04 get name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla nazwy wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$05 select directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą katalogu &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$06 up directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$10 lcd set&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z linią do wyświetlenia&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$28&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00 = linia górna&amp;lt;br&amp;gt;$01 = linia dolna&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oczywiście obowiązuje zawsze sprawdzenie czy komenda została poprawnie wykonana. &lt;br /&gt;
&lt;br /&gt;
Czyli mamy możliwość sprawdzenia czy urządzenie jest włączone do gniazda SIO - get status; możemy odczytać co jest podpięte do jednego z ośmiu urządzeń - get drive; zmienić to podpięcie - mount drive; lub je wyłączyć (tzw. --OFF-- ) - unmount drive; odczytać zawartość bierzącego katalogu - get name; wejść do wybranego katalogu - select directory; przejść o katalog wyżej (do nadrzędnego) - up directory; a także wysłać tekst na wyświetlacz.&lt;br /&gt;
&lt;br /&gt;
Niestety w tej wersji urządzenia nie można ustawiać dowolnie ścieżki katalogów (nalezy po nich &amp;quot;skakać&amp;quot; krokowo), odczytywać dowolnego wpisu z katalogu - zawsze przekazywany jest wpis po wpisie.&lt;br /&gt;
Największym bólem jest brak możliwości zapisywania do samej karty. Czyli nie można założyć nowego [[ATR|Atr&#039;a]].&lt;br /&gt;
&lt;br /&gt;
===Wpis katalogu===&lt;br /&gt;
&lt;br /&gt;
Komunikacja odbywa się blokami po $36 bajtów. Zawartość:&lt;br /&gt;
* $00-$26 = nazwa wpisu do katalogu wypełniona do końca spacjami&lt;br /&gt;
* $27 = status wpisu: 01 katalog, 02 atr, 03 xfd, 04 inny &lt;br /&gt;
Jeśli pierwszy bajt równy 0 = koniec katalogu, potem znowu wszystko od początku.&lt;br /&gt;
&lt;br /&gt;
==Programowanie układu ATMEL==&lt;br /&gt;
&lt;br /&gt;
Aby zmienić firmware wystarczy wgrać program binarny [[BIN|*.BIN]] do katalogu karty SD i odpalić Sio2SD z Shift+K3. Ale przy błędzie takiej operacji, lub jeśli rozprogramuje się układ Atmel możemy tylko wykonać operacje programowania procesora.&lt;br /&gt;
Do tego celu może posłużyć dowolny programator (np. STK 200/300 za 16PLN na Allegro) podłączany do portu LPT (drukarki) w PC&#039;ecie. Za pomocą programu (np. darmowy PonyProg) szybko odratujemy Atmela. &lt;br /&gt;
Podłączamy kable programatora do złącza JP2 w płytce Sio2SD. Oznaczenia pinów - widok na PCB od strony elementów - powyżej jest Atmel: &lt;br /&gt;
&lt;br /&gt;
 RESET  CLK  MISO&lt;br /&gt;
  GND  MOSI   VCC&lt;br /&gt;
&lt;br /&gt;
Włączamy PC (wtyk D-Sub 25 wpięty już jest do LPT), włączamy Atari !&lt;br /&gt;
Uruchamiamy program który wykona programowanie.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Przydatne linki==&lt;br /&gt;
&lt;br /&gt;
Więcej informacji na [http://sio2sd.gucio.pl/ stronie] autora projektu.&lt;br /&gt;
Żródło Atari Commandera na [http://madteam.atari8.info/index.php?prod=uzytki  stronie MadTeamu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=24089</id>
		<title>SIO2SD</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=24089"/>
		<updated>2007-10-06T21:19:32Z</updated>

		<summary type="html">&lt;p&gt;Pajero: /* Wykaz komend */  dodanie obsługi wyświetlacza&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Informacje Ogólne==&lt;br /&gt;
SIO2SD to interfejs autorstwa [[Jakub_Kruszona-Zawadzki|Jakuba Kruszony-Zawadzkiego]], pozwalający na wczytywanie gier/programów na Atari 8-bit poprzez port SIO z kart SD/MMC. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:Sio2sd.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cechy urządzenia==&lt;br /&gt;
&lt;br /&gt;
* Obsługa kart SD/MMC (formaty FAT12,FAT16 i FAT32) &lt;br /&gt;
* Obsługa plików w formatach ATR (rw), XFD (ro) i COM/XEX (ro) &lt;br /&gt;
* Wyświetlacz 16x2 pokazujący aktualnie wybrany katalog i plik ATR/XEX podmapowany pod określony numer stacji dysków.&lt;br /&gt;
* Obsługa SIO z turbo (możliwość ustawienia prędkości - hsindex od 1 do 16, standardowo 6, co odpowiada prędkości ok. 69kb/s, do wersji 2007.02.18 była stała prędkość 51kb/s - hsindex 10) &lt;br /&gt;
* Wszystkie gęstości z sektorami 128B i 256B (TOMS&#039;owe 512B na razie nieobsługiwane), w tym również dyski 16MB &lt;br /&gt;
* Możliwość równoleglej obsługi 8 stacji (do wersji 2007.02.08 tylko 4 stacje: D1-D4) &lt;br /&gt;
* Możliwość konfigurowania z poziomu ATARI (możliwe ładowanie programu konfiguracyjnego bezpośrednio z urządzenia, bez potrzeby nagrywania na kartę SD) &lt;br /&gt;
&lt;br /&gt;
==Wydajność==&lt;br /&gt;
&lt;br /&gt;
Prędkość zmierzona programem [[RW-Test]] pod [[SpartaDOS X]]:&lt;br /&gt;
&lt;br /&gt;
* DOS Reading: 1719,8 B/sek.&lt;br /&gt;
* DOS Writing: 5137,8 B/sek.&lt;br /&gt;
* DOS Average: 3428,8 B/sek.&lt;br /&gt;
&lt;br /&gt;
Użyto RW-Test w wersji 3.0 i karty SD Pretec Highspeed 60x.&lt;br /&gt;
&lt;br /&gt;
==Lista elementów==&lt;br /&gt;
&lt;br /&gt;
Poniżej przedstawiona jest lista elementów elektronicznych potrzebnych do budowy układu.&lt;br /&gt;
&lt;br /&gt;
    Lp  Ilość   Nazwa Elementu         Wartość          Oznaczenie elementu&lt;br /&gt;
     1     2    Rezystor                10k                 R1,R3&lt;br /&gt;
     2     1    Potencjometr            2.2k                R2&lt;br /&gt;
     3     3    Rezystor                1.8k                R4,R5,R6&lt;br /&gt;
     4     3    Rezystor                3.3k                R7,R8,R9&lt;br /&gt;
     5     1    Rezystor                27R                 R10&lt;br /&gt;
     6     3    Rezystor                220R                R11,R12,R13&lt;br /&gt;
     7     1    Kondensator tantalowy   10uF                C4&lt;br /&gt;
     8     2    Kondensator ceramiczny  22pF                C1,C2&lt;br /&gt;
     9     4    Kondensator ceramiczny  100nF               C3,C12,C10,C11&lt;br /&gt;
    10     5    Kondensator ceramiczny  22nF                C5,C6,C7,C8,C9&lt;br /&gt;
    11     1    Kwarc                   7.3728 lub 14MHz    Q1&lt;br /&gt;
    12     1    Dioda Schottkiego       BAT85               opcjonalnie&lt;br /&gt;
    13     1    Procesor ATMEGA32-16PI (lub Atmega 32L-8PU) IC1&lt;br /&gt;
    14     1    Stabilizator            3.3V                IC2&lt;br /&gt;
    15     3    Diody LED               3V                  LED1,LED2,LED3&lt;br /&gt;
    16     5    Mikrostyki                -                 S1,S2,S3,S4,S5&lt;br /&gt;
    17     1    Gniazdo SD                -                 SD&lt;br /&gt;
    18     1    Wyświetlacz 2x16 LED      -                 JP3&lt;br /&gt;
&lt;br /&gt;
==Porady dotyczące uruchomienia układu==&lt;br /&gt;
&lt;br /&gt;
* Dla kwarca 7.3728 MHz fuse procesora Atmel ustawiamy na (H:0xD1 ; L:0xFF)&lt;br /&gt;
* Dla kwarca 14.3118 MHz fuse procesora Atmel ustawiamy na (H:0xC3 ; L:0xFF)&lt;br /&gt;
* Jeżeli podczas wyboru plików ATR na wyświetlaczu pojawiają się śmieci - należy wymienić stabilizator napięcia 3.3V (na np. precyzyjny stabilizator napięcia 1.0A w obudowie TO-220)&lt;br /&gt;
* Komunikat &#039;Błąd odczytu karty SD&#039; - gdy jest włożona do slotu - przyczyną jest brak styku przy kondensatorze C12 lub stabilizatorze napięcia 3.3V. PCB jest dwustronne, dlatego zaleca się poprawić lutowanie z obu stron płytki dla tych elementów.&lt;br /&gt;
&lt;br /&gt;
==Programowanie, obsługa SIO==&lt;br /&gt;
&lt;br /&gt;
Sio2SD jest urządzeniem [[SIO]] z którym możemy się komunikować. Wykorzystuje tę możliwość dedykowany przez autora Sio2SD.com albo grupy MadTeam [[Atari Commander]] od wersji 1.7&amp;lt;br&amp;gt; &lt;br /&gt;
Poniżej nieoficjalne dane zebrane przez [[Pajero]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz urządzeń===&lt;br /&gt;
&lt;br /&gt;
* $73 - zgłasza się jako urządzenie numer 3, widocznie no.1 to [[SIO2IDE|Sio2Ide]], a no.2 to [[SIO2PC|Sio2pc]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
* $300 DDEVIC = $70 lub $73&lt;br /&gt;
* $301 DUNIT  = $03 lub $00&lt;br /&gt;
* $306 DTIMLO = $7f zawsze&lt;br /&gt;
* $307 DUNUSE = $00 zawsze&lt;br /&gt;
* $30B DAUX2  = $00 zawsze&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;$0302 &amp;lt;b&amp;gt;DCMND&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0303 &amp;lt;b&amp;gt;DSTATS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0304/5 &amp;lt;b&amp;gt;DBUFA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0308/9 &amp;lt;b&amp;gt;DBYT&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030A &amp;lt;b&amp;gt;DAUX1&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;$00 get status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bufor jednobajtowy. Odczytana wartość:&amp;lt;br&amp;gt;00 = brak karty&amp;lt;br&amp;gt;01 = OK &amp;lt;br&amp;gt;02 = OK zmieniono kartę na inną&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$01&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$01 get drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$02 mount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$03 unmount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$04 get name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla nazwy wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$05 select directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą katalogu &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$06 up directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$10 lcd set&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z linią do wyświetlenia&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$28&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00 = linia górna&amp;lt;br&amp;gt;$01 = linia dolna&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Oczywiście obowiązuje zawsze sprawdzenie czy komenda została poprawnie wykonana. &lt;br /&gt;
&lt;br /&gt;
Czyli mamy możliwość sprawdzenia czy urządzenie jest włączone do gniazda SIO - get status; możemy odczytać co jest podpięte do jednego z ośmiu urządzeń - get drive; zmienić to podpięcie - mount drive; lub je wyłączyć (tzw. --OFF-- ) - unmount drive; odczytać zawartość bierzącego katalogu - get name; wejść do wybranego katalogu - select directory; przejść o katalog wyżej (do nadrzędnego) - up directory; a także wysłać tekst na wyświetlacz.&lt;br /&gt;
&lt;br /&gt;
Niestety w tej wersji urządzenia nie można ustawiać dowolnie ścieżki katalogów (nalezy po nich &amp;quot;skakać&amp;quot; krokowo), odczytywać dowolnego wpisu z katalogu - zawsze przekazywany jest wpis po wpisie.&lt;br /&gt;
Największym bólem jest brak możliwości zapisywania do samej karty. Czyli nie można założyć nowego [[ATR|Atr&#039;a]].&lt;br /&gt;
&lt;br /&gt;
===Wpis katalogu===&lt;br /&gt;
&lt;br /&gt;
Komunikacja odbywa się blokami po $36 bajtów. Zawartość:&lt;br /&gt;
* $00-$26 = nazwa wpisu do katalogu wypełniona do końca spacjami&lt;br /&gt;
* $27 = status wpisu: 01 katalog, 02 atr, 03 xfd, 04 inny &lt;br /&gt;
Jeśli pierwszy bajt równy 0 = koniec katalogu, potem znowu wszystko od początku.&lt;br /&gt;
&lt;br /&gt;
==Przydatne linki==&lt;br /&gt;
&lt;br /&gt;
Więcej informacji na [http://sio2sd.gucio.pl/ stronie] autora projektu.&lt;br /&gt;
Żródło Atari Commandera na [http://madteam.atari8.info/index.php?prod=uzytki  stronie MadTeamu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Atari_Commander&amp;diff=23827</id>
		<title>Atari Commander</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Atari_Commander&amp;diff=23827"/>
		<updated>2007-09-06T07:05:48Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Uaktulnienie&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Menedżer plików dla [[DOS II/D]], [[SpartaDOS X]], [[MyDOS]]. Umożliwia podstawowe operacje na plikach, takie jak Copy, Rename, Erase, MkDir.&amp;lt;br&amp;gt;&lt;br /&gt;
Od wersji 1.7 umożliwia obsługę [[SIO2SD | Sio2SD]]&lt;br /&gt;
&lt;br /&gt;
Autor: [[Tebe]]/[[Madteam]], [[Lewis]]/[[Blowjobb]], [[Pajero]]/[[Madteam]]&lt;br /&gt;
&lt;br /&gt;
Link do strony z programem [[http://madteam.atari8.info/index.php?prod=uzytki tu]]&lt;br /&gt;
{{stub}}&lt;br /&gt;
[[Kategoria:Oprogramowanie Atari 8-bit]]&lt;br /&gt;
[[Kategoria:Programy użytkowe]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=23826</id>
		<title>SIO2SD</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=23826"/>
		<updated>2007-09-06T07:00:22Z</updated>

		<summary type="html">&lt;p&gt;Pajero: /* Programowanie, obsługa SIO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Informacje Ogólne==&lt;br /&gt;
SIO2SD to interfejs autorstwa [[Jakub_Kruszona-Zawadzki|Jakuba Kruszony-Zawadzkiego]], pozwalający na wczytywanie gier/programów na Atari 8-bit poprzez port SIO z kart SD/MMC. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:Sio2sd.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cechy urządzenia==&lt;br /&gt;
&lt;br /&gt;
* Obsługa kart SD/MMC (formaty FAT12,FAT16 i FAT32) &lt;br /&gt;
* Obsługa plików w formatach ATR (rw), XFD (ro) i COM/XEX (ro) &lt;br /&gt;
* Wyświetlacz 16x2 pokazujący aktualnie wybrany katalog i plik ATR/XEX podmapowany pod określony numer stacji dysków.&lt;br /&gt;
* Obsługa SIO z turbo (możliwość ustawienia prędkości - hsindex od 1 do 16, standardowo 6, co odpowiada prędkości ok. 69kb/s, do wersji 2007.02.18 była stała prędkość 51kb/s - hsindex 10) &lt;br /&gt;
* Wszystkie gęstości z sektorami 128B i 256B (TOMS&#039;owe 512B na razie nieobsługiwane), w tym również dyski 16MB &lt;br /&gt;
* Możliwość równoleglej obsługi 8 stacji (do wersji 2007.02.08 tylko 4 stacje: D1-D4) &lt;br /&gt;
* Możliwość konfigurowania z poziomu ATARI (możliwe ładowanie programu konfiguracyjnego bezpośrednio z urządzenia, bez potrzeby nagrywania na kartę SD) &lt;br /&gt;
&lt;br /&gt;
==Wydajność==&lt;br /&gt;
&lt;br /&gt;
Prędkość zmierzona programem [[RW-Test]] pod [[SpartaDOS X]]:&lt;br /&gt;
&lt;br /&gt;
* DOS Reading: 1719,8 B/sek.&lt;br /&gt;
* DOS Writing: 5137,8 B/sek.&lt;br /&gt;
* DOS Average: 3428,8 B/sek.&lt;br /&gt;
&lt;br /&gt;
Użyto RW-Test w wersji 3.0 i karty SD Pretec Highspeed 60x.&lt;br /&gt;
&lt;br /&gt;
==Lista elementów==&lt;br /&gt;
&lt;br /&gt;
Poniżej przedstawiona jest lista elementów elektronicznych potrzebnych do budowy układu.&lt;br /&gt;
&lt;br /&gt;
    Lp  Ilość   Nazwa Elementu         Wartość          Oznaczenie elementu&lt;br /&gt;
     1     2    Rezystor                10k                 R1,R3&lt;br /&gt;
     2     1    Potencjometr            2.2k                R2&lt;br /&gt;
     3     3    Rezystor                1.8k                R4,R5,R6&lt;br /&gt;
     4     3    Rezystor                3.3k                R7,R8,R9&lt;br /&gt;
     5     1    Rezystor                27R                 R10&lt;br /&gt;
     6     3    Rezystor                220R                R11,R12,R13&lt;br /&gt;
     7     1    Kondensator tantalowy   10uF                C4&lt;br /&gt;
     8     2    Kondensator ceramiczny  22pF                C1,C2&lt;br /&gt;
     9     4    Kondensator ceramiczny  100nF               C3,C12,C10,C11&lt;br /&gt;
    10     5    Kondensator ceramiczny  22nF                C5,C6,C7,C8,C9&lt;br /&gt;
    11     1    Kwarc                   7.3728 lub 14MHz    Q1&lt;br /&gt;
    12     1    Dioda Schottkiego       BAT85               opcjonalnie&lt;br /&gt;
    13     1    Procesor ATMEGA32-16PI (lub Atmega 32L-8PU) IC1&lt;br /&gt;
    14     1    Stabilizator            3.3V                IC2&lt;br /&gt;
    15     3    Diody LED               3V                  LED1,LED2,LED3&lt;br /&gt;
    16     5    Mikrostyki                -                 S1,S2,S3,S4,S5&lt;br /&gt;
    17     1    Gniazdo SD                -                 SD&lt;br /&gt;
    18     1    Wyświetlacz 2x16 LED      -                 JP3&lt;br /&gt;
&lt;br /&gt;
==Porady dotyczące uruchomienia układu==&lt;br /&gt;
&lt;br /&gt;
* Dla kwarca 7.3728 MHz fuse procesora Atmel ustawiamy na (H:0xD1 ; L:0xFF)&lt;br /&gt;
* Dla kwarca 14.3118 MHz fuse procesora Atmel ustawiamy na (H:0xC3 ; L:0xFF)&lt;br /&gt;
* Jeżeli podczas wyboru plików ATR na wyświetlaczu pojawiają się śmieci - należy wymienić stabilizator napięcia 3.3V (na np. precyzyjny stabilizator napięcia 1.0A w obudowie TO-220)&lt;br /&gt;
* Komunikat &#039;Błąd odczytu karty SD&#039; - gdy jest włożona do slotu - przyczyną jest brak styku przy kondensatorze C12 lub stabilizatorze napięcia 3.3V. PCB jest dwustronne, dlatego zaleca się poprawić lutowanie z obu stron płytki dla tych elementów.&lt;br /&gt;
&lt;br /&gt;
==Programowanie, obsługa SIO==&lt;br /&gt;
&lt;br /&gt;
Sio2SD jest urządzeniem [[SIO]] z którym możemy się komunikować. Wykorzystuje tę możliwość dedykowany przez autora Sio2SD.com albo grupy MadTeam [[Atari Commander]] od wersji 1.7&amp;lt;br&amp;gt; &lt;br /&gt;
Poniżej nieoficjalne dane zebrane przez [[Pajero]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz urządzeń===&lt;br /&gt;
&lt;br /&gt;
* $73 - zgłasza się jako urządzenie numer 3, widocznie no.1 to [[SIO2IDE|Sio2Ide]], a no.2 to [[SIO2PC|Sio2pc]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
* $300 DDEVIC = $70 lub $73&lt;br /&gt;
* $301 DUNIT  = $03 lub $00&lt;br /&gt;
* $306 DTIMLO = $7f zawsze&lt;br /&gt;
* $307 DUNUSE = $00 zawsze&lt;br /&gt;
* $30B DAUX2  = $00 zawsze&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;$0302 &amp;lt;b&amp;gt;DCMND&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0303 &amp;lt;b&amp;gt;DSTATS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0304/5 &amp;lt;b&amp;gt;DBUFA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0308/9 &amp;lt;b&amp;gt;DBYT&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030A &amp;lt;b&amp;gt;DAUX1&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;$00 get status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bufor jednobajtowy. Odczytana wartość:&amp;lt;br&amp;gt;01 = OK&amp;lt;br&amp;gt;02 = brak karty w gnieździe&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$01&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$01 get drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$02 mount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$03 unmount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$04 get name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla nazwy wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$05 select directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą katalogu &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$06 up directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;
Oczywiście obowiązuje zawsze sprawdzenie czy komenda została poprawnie wykonana. &lt;br /&gt;
&lt;br /&gt;
Czyli mamy możliwość sprawdzenia czy urządzenie jest włączone do gniazda SIO - get status; możemy odczytać co jest podpięte do jednego z ośmiu urządzeń - get drive; zmienić to podpięcie - mount drive; lub je wyłączyć (tzw. --OFF-- ) - unmount drive; odczytać zawartość bierzącego katalogu - get name; wejść do wybranego katalogu - select directory; przejść o katalog wyżej (do nadrzędnego) - up directory;&lt;br /&gt;
&lt;br /&gt;
Niestety w tej wersji urządzenia nie można ustawiać dowolnie ścieżki katalogów (nalezy po nich &amp;quot;skakać&amp;quot; krokowo), odczytywać dowolnego wpisu z katalogu - zawsze przekazywany jest wpis po wpisie.&lt;br /&gt;
Największym bólem jest brak możliwości zapisywania do samej karty. Czyli nie można założyć nowego [[ATR|Atr&#039;a]].&lt;br /&gt;
&lt;br /&gt;
===Wpis katalogu===&lt;br /&gt;
&lt;br /&gt;
Komunikacja odbywa się blokami po $36 bajtów. Zawartość:&lt;br /&gt;
* $00-$26 = nazwa wpisu do katalogu wypełniona do końca spacjami&lt;br /&gt;
* $27 = status wpisu: 01 katalog, 02 atr, 03 xfd, 04 inny &lt;br /&gt;
Jeśli pierwszy bajt równy 0 = koniec katalogu, potem znowu wszystko od początku.&lt;br /&gt;
&lt;br /&gt;
==Przydatne linki==&lt;br /&gt;
&lt;br /&gt;
Więcej informacji na [http://sio2sd.gucio.pl/ stronie] autora projektu.&lt;br /&gt;
Żródło Atari Commandera na [http://madteam.atari8.info/index.php?prod=uzytki  stronie MadTeamu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=23825</id>
		<title>SIO2SD</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO2SD&amp;diff=23825"/>
		<updated>2007-09-06T06:55:52Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Programowanie Sio2SD&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Informacje Ogólne==&lt;br /&gt;
SIO2SD to interfejs autorstwa [[Jakub_Kruszona-Zawadzki|Jakuba Kruszony-Zawadzkiego]], pozwalający na wczytywanie gier/programów na Atari 8-bit poprzez port SIO z kart SD/MMC. &lt;br /&gt;
&amp;lt;center&amp;gt;[[Grafika:Sio2sd.jpg]]&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cechy urządzenia==&lt;br /&gt;
&lt;br /&gt;
* Obsługa kart SD/MMC (formaty FAT12,FAT16 i FAT32) &lt;br /&gt;
* Obsługa plików w formatach ATR (rw), XFD (ro) i COM/XEX (ro) &lt;br /&gt;
* Wyświetlacz 16x2 pokazujący aktualnie wybrany katalog i plik ATR/XEX podmapowany pod określony numer stacji dysków.&lt;br /&gt;
* Obsługa SIO z turbo (możliwość ustawienia prędkości - hsindex od 1 do 16, standardowo 6, co odpowiada prędkości ok. 69kb/s, do wersji 2007.02.18 była stała prędkość 51kb/s - hsindex 10) &lt;br /&gt;
* Wszystkie gęstości z sektorami 128B i 256B (TOMS&#039;owe 512B na razie nieobsługiwane), w tym również dyski 16MB &lt;br /&gt;
* Możliwość równoleglej obsługi 8 stacji (do wersji 2007.02.08 tylko 4 stacje: D1-D4) &lt;br /&gt;
* Możliwość konfigurowania z poziomu ATARI (możliwe ładowanie programu konfiguracyjnego bezpośrednio z urządzenia, bez potrzeby nagrywania na kartę SD) &lt;br /&gt;
&lt;br /&gt;
==Wydajność==&lt;br /&gt;
&lt;br /&gt;
Prędkość zmierzona programem [[RW-Test]] pod [[SpartaDOS X]]:&lt;br /&gt;
&lt;br /&gt;
* DOS Reading: 1719,8 B/sek.&lt;br /&gt;
* DOS Writing: 5137,8 B/sek.&lt;br /&gt;
* DOS Average: 3428,8 B/sek.&lt;br /&gt;
&lt;br /&gt;
Użyto RW-Test w wersji 3.0 i karty SD Pretec Highspeed 60x.&lt;br /&gt;
&lt;br /&gt;
==Lista elementów==&lt;br /&gt;
&lt;br /&gt;
Poniżej przedstawiona jest lista elementów elektronicznych potrzebnych do budowy układu.&lt;br /&gt;
&lt;br /&gt;
    Lp  Ilość   Nazwa Elementu         Wartość          Oznaczenie elementu&lt;br /&gt;
     1     2    Rezystor                10k                 R1,R3&lt;br /&gt;
     2     1    Potencjometr            2.2k                R2&lt;br /&gt;
     3     3    Rezystor                1.8k                R4,R5,R6&lt;br /&gt;
     4     3    Rezystor                3.3k                R7,R8,R9&lt;br /&gt;
     5     1    Rezystor                27R                 R10&lt;br /&gt;
     6     3    Rezystor                220R                R11,R12,R13&lt;br /&gt;
     7     1    Kondensator tantalowy   10uF                C4&lt;br /&gt;
     8     2    Kondensator ceramiczny  22pF                C1,C2&lt;br /&gt;
     9     4    Kondensator ceramiczny  100nF               C3,C12,C10,C11&lt;br /&gt;
    10     5    Kondensator ceramiczny  22nF                C5,C6,C7,C8,C9&lt;br /&gt;
    11     1    Kwarc                   7.3728 lub 14MHz    Q1&lt;br /&gt;
    12     1    Dioda Schottkiego       BAT85               opcjonalnie&lt;br /&gt;
    13     1    Procesor ATMEGA32-16PI (lub Atmega 32L-8PU) IC1&lt;br /&gt;
    14     1    Stabilizator            3.3V                IC2&lt;br /&gt;
    15     3    Diody LED               3V                  LED1,LED2,LED3&lt;br /&gt;
    16     5    Mikrostyki                -                 S1,S2,S3,S4,S5&lt;br /&gt;
    17     1    Gniazdo SD                -                 SD&lt;br /&gt;
    18     1    Wyświetlacz 2x16 LED      -                 JP3&lt;br /&gt;
&lt;br /&gt;
==Porady dotyczące uruchomienia układu==&lt;br /&gt;
&lt;br /&gt;
* Dla kwarca 7.3728 MHz fuse procesora Atmel ustawiamy na (H:0xD1 ; L:0xFF)&lt;br /&gt;
* Dla kwarca 14.3118 MHz fuse procesora Atmel ustawiamy na (H:0xC3 ; L:0xFF)&lt;br /&gt;
* Jeżeli podczas wyboru plików ATR na wyświetlaczu pojawiają się śmieci - należy wymienić stabilizator napięcia 3.3V (na np. precyzyjny stabilizator napięcia 1.0A w obudowie TO-220)&lt;br /&gt;
* Komunikat &#039;Błąd odczytu karty SD&#039; - gdy jest włożona do slotu - przyczyną jest brak styku przy kondensatorze C12 lub stabilizatorze napięcia 3.3V. PCB jest dwustronne, dlatego zaleca się poprawić lutowanie z obu stron płytki dla tych elementów.&lt;br /&gt;
&lt;br /&gt;
==Programowanie, obsługa SIO==&lt;br /&gt;
&lt;br /&gt;
Sio2SD jest urządzeniem [[SIO]] z którym możemy się komunikować. Wykorzystuje tę możliwość dedykowany przez autora Sio2SD.com albo grupy MadTeam [[Atari Commander]] od wersji 1.7 &lt;br /&gt;
Poniżej nieoficjalne dane zebrane przez [[Pajero]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz urządzeń===&lt;br /&gt;
&lt;br /&gt;
* $73 - zgłasza się jako urządzenie numer 3, widocznie no.1 to [[SIO2IDE|Sio2Ide]], a no.2 to [[SIO2PC|Sio2pc]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
* $300 DDEVIC = $70 lub $73&lt;br /&gt;
* $301 DUNIT  = $03 lub $00&lt;br /&gt;
* $306 DTIMLO = $7f zawsze&lt;br /&gt;
* $307 DUNUSE = $00 zawsze&lt;br /&gt;
* $30B DAUX2  = $00 zawsze&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;$0302 &amp;lt;b&amp;gt;DCMND&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0303 &amp;lt;b&amp;gt;DSTATS&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0304/5 &amp;lt;b&amp;gt;DBUFA&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$0308/9 &amp;lt;b&amp;gt;DBYT&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$030A &amp;lt;b&amp;gt;DAUX1&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;$00 get status&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Bufor jednobajtowy. Odczytana wartość:&amp;lt;br&amp;gt;01 = OK&amp;lt;br&amp;gt;02 = brak karty w gnieździe&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$01&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$01 get drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$02 mount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$03 unmount drive&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Numer urządzenia: 1 - 8&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;$04 get name&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$40&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora dla nazwy wpisu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$05 select directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$80&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Adres bufora z nazwą katalogu &amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$36&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;$06 up directory&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$00&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;
Oczywiście obowiązuje zawsze sprawdzenie czy komenda została poprawnie wykonana. &lt;br /&gt;
&lt;br /&gt;
Czyli mamy możliwość sprawdzenia czy urządzenie jest włączone do gniazda SIO - get status; możemy odczytać co jest podpięte do jednego z ośmiu urządzeń - get drive; zmienić to podpięcie - mount drive; lub je wyłączyć (tzw. --OFF-- ) - unmount drive; odczytać zawartość bierzącego katalogu - get name; wejść do wybranego katalogu - select directory; przejść o katalog wyżej (do nadrzędnego) - up directory;&lt;br /&gt;
&lt;br /&gt;
Niestety w tej wersji urządzenia nie można ustawiać dowolnie ścieżki katalogów (nalezy po nich &amp;quot;skakać&amp;quot; krokowo), odczytywać dowolnego wpisu z katalogu - zawsze przekazywany jest wpis po wpisie.&lt;br /&gt;
Największym bólem jest brak możliwości zapisywania do samej karty. Czyli nie można założyć nowego [[ATR|Atr&#039;a]].&lt;br /&gt;
&lt;br /&gt;
===Wpis katalogu===&lt;br /&gt;
&lt;br /&gt;
Komunikacja odbywa się blokami po $36 bajtów. Zawartość:&lt;br /&gt;
* $00-$26 = nazwa wpisu do katalogu wypełniona do końca spacjami&lt;br /&gt;
* $27 = status wpisu: 01 katalog, 02 atr, 03 xfd, 04 inny &lt;br /&gt;
Jeśli pierwszy bajt równy 0 = koniec katalogu, potem znowu wszystko od początku.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Przydatne linki==&lt;br /&gt;
&lt;br /&gt;
Więcej informacji na [http://sio2sd.gucio.pl/ stronie] autora projektu.&lt;br /&gt;
Żródło Atari Commandera na [http://madteam.atari8.info/index.php?prod=uzytki  stronie MadTeamu]&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Peryferia 8-bit]]&lt;br /&gt;
[[Kategoria:Schematy i specyfikacje]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO&amp;diff=23802</id>
		<title>SIO</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO&amp;diff=23802"/>
		<updated>2007-09-06T05:24:24Z</updated>

		<summary type="html">&lt;p&gt;Pajero: &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 nastepnie 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ę bezpośrednio po porcji danych przeznaczonych do zapisu (pod adresem DBUFA + DBYT).&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 nastepuje: 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:&lt;br /&gt;
&lt;br /&gt;
* $31: dyskowa pamięć masowa (stacja dysków, twardy dysk)&lt;br /&gt;
* $40: drukarka&lt;br /&gt;
* $4F: bus master (moduł [[1090]])&lt;br /&gt;
* $50: port szeregowy RS-232C&lt;br /&gt;
* $60: magnetofon kasetowy&lt;br /&gt;
&lt;br /&gt;
Właściwy identyfikator urządzenia 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. Przypisanie identyfikatorów do poszczególnych urządzeń jest niezbyt konsekwentne, np. $31 to stacja dysków numer 1, ale $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.&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;
* $5A:  [[ATR 8000]]&lt;br /&gt;
* $73:  [[SIO2SD|Sio2SD]].&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
====Podstawowy zestaw komend====&lt;br /&gt;
&lt;br /&gt;
Poniższa tabela wyszczególnia podstawowe minimum komend rozpoznawanych przez urządzenia peryferyjne Atari.&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;Kod&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Nazwa&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Urządzenie&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;R/W&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Ilość danych&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;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$21 (!)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;FORMAT DISK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$31 (stacja dysków)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Równa wielkości sektora danych na dysku&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Formatuje dyskietkę w wybranej uprzednio (komendami PERCOM) gęstości, lub w [[Formaty dyskietek|pojedynczej gęstości]] (90k), jeśli stacja nie jest konfigurowalna. Zwraca listę zawierającą numery wadliwych sektorów wykrytych w czasie formatowania, zakończoną wartością $FFFF. Niektóre stacje zwracają tu pustą listę ($FFFF, a dalej same zera), nawet jeśli na dyskietce są wadliwe sektory: po prostu dyskietki nie są już tak drogie, jak pod koniec lat siedemdziesiątych XX wieku...&amp;lt;br&amp;gt;&lt;br /&gt;
Kontroler [[KMK/JŻ IDE]] nie rozpoznaje tej komendy dla bezpieczeństwa danych na dysku (do partycjonowania i &amp;quot;formatowania&amp;quot; dysku służy oddzielny program).&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;$50 (P)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PUT SECTOR&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;$31 i $60 (stacja dysków i magnetofon)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;W&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;Zależna od urządzenia i trybu pracy.&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Zapisuje do urządzenia blok danych wskazany przez DBUFA, a zawierający DBYT bajtów. W przypadku stacji dysków jest to zapis bez weryfikacji.&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;$52 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;READ SECTOR&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Odczytuje z urządzenia blok danych o wielkości DBYT bajtów i zapisuje go w pamięci pod adresem wskazanym przez DBUFA.&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;$53 (S)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;READ STATUS&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wszystkie oprócz magnetofonu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Zależna od urządzenia&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Odczytuje z urządzenia blok statusu i zapisuje go pod adresem wskazanym przez DBUFA. Blok statusu dla RS-232 ma wielkość 2 bajtów, dla drukarki i stacji dysków - 4. Typowo komenda ta służy to stwierdzenia, czy urządzenie jest gotowe do pracy. W przypadku magnetofonu obowiązuje założenie, że jest on zawsze podłączony i gotów, nie ma więc potrzeby sprawdzania jego statusu.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td rowspan=3&amp;gt;$57 (W)&amp;lt;/td&amp;gt;&amp;lt;td rowspan=3&amp;gt;WRITE SECTOR&amp;lt;/td&amp;gt;&amp;lt;td rowspan=3&amp;gt;Wszystkie&amp;lt;/td&amp;gt;&amp;lt;td rowspan=3&amp;gt;W&amp;lt;/td&amp;gt;&amp;lt;td rowspan=3&amp;gt;Zależna od urządzenia i trybu pracy.&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;To samo, co PUT SECTOR ($50). W przypadku stacji dysków zapis przeprowadzany jest z weryfikacją.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;W przypadku drukarki długość bufora może wynosić 20, 29 albo 40 znaków (na ogół to ostatnie), a znaczenie DAUX2 jest jak następuje:&lt;br /&gt;
* $4E (N) drukowanie normalne&lt;br /&gt;
* $53 (S) druk obrócony o 90 stopni&lt;br /&gt;
* $44 (D) druk normalny z podwójną szerokością znaków&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;Dla interfejsu [[850|Atari 850]] wielkość bufora wynosi 64 bajty.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Komendy dodatkowe====&lt;br /&gt;
&lt;br /&gt;
Rozpoznawane przez urządzenia peryferyjne Atari komendy dodatkowe w stosunku do powyżej wspomnianego niezbędnego minimum.&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;Kod&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Nazwa&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Urządzenie&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;R/W&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Ilość danych&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;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$22 (&amp;quot;)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;FORMAT MEDIUM&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;$31 (stacja dysków)&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;128 bajtów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Analogicznie do FORMAT DISK ($21), z tym że formatowanie zawsze przeprowadzane jest w [[Formaty dyskietek|gęstości średniej]] (130k). Komenda wprowadzona razem ze stacją [[1050]]. Kontroler [[KMK/JŻ IDE]] nie rozpoznaje tej komendy dla bezpieczeństwa danych na dysku (do partycjonowania i &amp;quot;formatowania&amp;quot; dysku służy oddzielny program).&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;$23 (#)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;FORMAT DSDD&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;256 bajtów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Analogicznie do FORMAT DISK ($21), z tym że formatowanie zawsze przeprowadzane jest w [[Formaty dyskietek|gęstości podwójnej dwustronnej]] (360k). Komenda wprowadzona razem ze stacją [[XF551|Atari XF-551]]. Kontroler [[KMK/JŻ IDE]] nie rozpoznaje tej komendy dla bezpieczeństwa danych na dysku (do partycjonowania i &amp;quot;formatowania&amp;quot; dysku służy oddzielny program).&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;$41 (A)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;???&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;$50 (RS-232)&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;-&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;(brak)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Komenda aktywująca linie DTR, RTS i XMT (TX) wskazanego portu RS-232 interfejsu [[850|Atari 850]]. Odpowiada komendzie [[CIO]] XIO 34,#i,x,y,&amp;quot;Rn:&amp;quot;, przy czym parametry &#039;&#039;x&#039;&#039; i &#039;&#039;y&#039;&#039; wysyłane są odpowiednio jako DAUX1 i DAUX2. Wykonanie komendy nie pociąga za sobą transmisji danych.&amp;lt;/p&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;$42 (B)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;???&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Komenda ustawiająca różne parametry pracy (m.in. szybkość transmisji) wskazanego portu RS-232 interfejsu [[850|Atari 850]]. Odpowiada komendzie [[CIO]] XIO 36,#i,x,y,&amp;quot;Rn:&amp;quot;, przy czym parametry &#039;&#039;x&#039;&#039; i &#039;&#039;y&#039;&#039; wysyłane są odpowiednio jako DAUX1 i DAUX2. Wykonanie komendy nie pociąga za sobą transmisji danych.&amp;lt;/p&amp;gt;&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;
====Komendy PERCOM====&lt;br /&gt;
&lt;br /&gt;
Komendy PERCOM noszą nazwę od stacji dysków firmy [[Percom Data Corp.|PERCOM]], w których po raz pierwszy się pojawiły. Nie są rozpoznawane przez stacje dysków firmy Atari (z wyjątkiem [[XF551|Atari XF-551]]), są jednak zaimplementowane we wszystkich rozszerzeniach oraz stacjach innych producentów i stanowią de facto standard.&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;Kod&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Nazwa&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Urządzenie&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;R/W&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Ilość danych&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;$4E (N)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;READ PERCOM&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;$31 (stacja dysków)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;12 bajtów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Odczytuje z urządzenia dwunastobajtowy blok danych opisujący jego bieżącą konfigurację, tj. przede wszystkim format znajdującej się w stacji dyskietki.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$4F (O)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;WRITE PERCOM&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;W&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Zapisuje do urządzenia dwanaście bajtów opisujących żądaną konfigurację, tj. liczbę ścieżek, stron dyskietki, sektorów na ścieżkę, wielkość sektora, gęstość. Po pomyślnym wykonaniu tej operacji komenda FORMAT DISK ($21) sformatuje dykietkę zgodnie z zapisaną konfiguracją (o ile jest w stanie ją zrealizować). Kontroler [[KMK/JŻ]] IDE nie rozpoznaje tej komendy dla bezpieczeństwa danych na dysku (do definiowania wielkości partycji służy oddzielny program).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Komendy specjalne====&lt;br /&gt;
&lt;br /&gt;
Komendy wspomagające automatyczną instalację w systemie handlerów podłączonych urządzeń zewnętrznych.&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;Kod&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Nazwa&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Urządzenie&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;R/W&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Ilość danych&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;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$21 (!)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SEND RELOCATOR&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;$50 (RS-232)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wg odpowiedzi na komendę POLL ($3F)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Jest to komenda uzupełniająca do opisanego niżej POLL ($3F). Powoduje przesłanie przez urządzenie programu odpowiedzialnego za załadowanie (komendą SEND HANDLER) i relokację właściwego handlera. Wszystkie parametry transmisji dla SEND RELOCATOR przesyłane są na komendę POLL ($3F). Program relokatora - po jego załadowaniu - uruchamia się od adresu DBUFA + 6. Przejmuje on na siebie wykonanie reszty operacji, a w wypadku niepowodzenia sygnalizuje błąd przez ustawienie bitu Carry.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Komendę SEND RELOCATOR rozpoznaje moduł [[850|Atari 850]], a może dotyczyć też innych urządzeń, oprócz stacji dysków (gdzie kod operacyjny $21 oznacza formatowanie dyskietki).&amp;lt;/p&amp;gt;&lt;br /&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;$26 (&amp;amp;)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SEND HANDLER&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wg parametrów ustawionych przez relokator przesłany przez SEND RELOCATOR ($21) lub wg odpowiedzi na komendę POLL BUS ($40)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wg parametrów ustawionych przez relokator (przesłany przez urządzenie lub rezydujący)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Komenda SEND HANDLER służy do załadowania z urządzenia kodu programu obsługi (handlera) tego urządzenia. Może ona działać różnie w zależności od tego, czy transmisja została zainicjowana przez komendę POLL ($3F) czy POLL BUS ($40).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Komenda POLL ($3F) oznacza starszy protokół transmisji, w którym format strumienia danych przesłanych przez SEND HANDLER zależny jest od programu relokatora załadowanego wcześniej komendą SEND RELOCATOR ($21) i uruchomionego przez komputer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Komenda POLL BUS ($40) oznacza nowszy protokół transmisji. Format strumienia danych jest ustalony z góry, a relokator rezyduje w ROM-ie systemu operacyjnego komputera.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Po otrzymaniu pozytywnej odpowiedzi na POLL BUS ($40) komputer rozpoczyna ładowanie kolejnych, 128-bajtowych rekordów binarnych, w liczbie do 256 (czyli pojedynczy &amp;quot;handler&amp;quot; może mieć maximum 32k). Przesyłany strumień danych musi być w [[ACX|specjalnym formacie]], który zapewnia relokowalność kodu, oraz zawiera podany explicite znacznik końca pliku - wystąpienie błędu przed napotkaniem tego znacznika powoduje przerwanie procedury z [[kody błędów|kodem błędu]] INCOMPLETE EXECUTION.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Ustawienia zmiennych DCB dla komendy SEND HANDLER wyglądają następująco:&amp;lt;/p&amp;gt;&lt;br /&gt;
* DDEVIC - kod urządzenia przesłany przez urządzenie $4F na komendę POLL BUS.&lt;br /&gt;
* DUNIT - zawsze $01&lt;br /&gt;
* DCMND - $26 - SEND HANDLER&lt;br /&gt;
* DSTATS - $40 - odczyt&lt;br /&gt;
* DTIMLO - 30 sekund&lt;br /&gt;
* DBYT - 128 bajtów&lt;br /&gt;
* DAUX1 - numer kolejny rekordu danych&lt;br /&gt;
* DAUX2 - zawsze 0&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;$3F (?)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;POLL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$50 (RS-232)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;12 bajtów&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Komenda ta, zwana też TYPE 2 POLL, służy do zainicjowania transmisji mającej na celu automatyczne ściągnięcie z urządzenia i zainstalowanie odpowiedniego dlań programu obsługi (handlera). W odpowiedzi urządzenie przesyła 12 bajtów odpowiadających kolejnym wartościom, jakie należy ustawić w bloku DCB celem załadowania kodu wykonywalnego handlera. Jest to starszy protokół transmisji zaprojektowany dla komputerów serii [[400]] i [[800]].&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;W module [[850|Atari 850]] odpowiedzią na komendę POLL są wartości, jakie trzeba wstawić do DCB celem wykonania komendy SEND RELOCATOR ($21).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;W celu uniknięcia wielokrotnego załadowania tego samego programu obsługi urządzenie na komendę POLL ($3F) odpowiada tylko raz, potem wykonanie komendy jest zablokowane aż do wyłączenia zasilania.&amp;lt;/p&amp;gt;&lt;br /&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;$40 (@)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;POLL BUS&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$4F (bus master)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;4 bajty&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;W komputerach serii XL oraz XE komendę tę system operacyjny przesyła do interfejsu szeregowo-równoległego przy każdym zimnym starcie; w pewnych warunkach - ale z nieco innymi parametrami - może też zostać wykonana po zainicjowaniu systemu. Jest to odpowiednik komendy POLL ($3F), jednak protokół transmisji handlera jest zunifikowany i nie wymaga od urządzenia przesyłania relokatora (uniwersalny relokator rezyduje w ROM-ie systemu operacyjnego). Analogicznie do POLL ($3F), komenda POLL BUS jest przeznaczona do zapoczątkowania transmisji mającej na celu automatyczne ściągnięcie z urządzenia i zainstalowanie odpowiedniego dlań programu obsługi (handlera). Zasadniczym adresatem jest tu moduł [[1090]] działający jako bus master.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Istnieje kilka odmian komendy POLL BUS różniących się parametrami przesyłanymi w DAUX1 i DAUX2:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TYPE 3 POLL: DAUX1 = 0 i DAUX2 = 0.&lt;br /&gt;
* TYPE 4 POLL: zobacz niżej.&lt;br /&gt;
* RESET POLL: DAUX1 = $4F i DAUX2 = $4F (&amp;quot;OO&amp;quot;)&lt;br /&gt;
* NULL POLL: DAUX1 = $4E i DAUX2 = $4E (&amp;quot;NN&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Przy zimnym starcie na początku system wysyła RESET POLL. Komenda ta powinna odblokować rozpoznawanie komendy TYPE 3 POLL we wszystkich podłączonych urządzeniach. Na RESET POLL urządzenia, oprócz potwierdzenia wykonania, nie przesyłają żadnej odpowiedzi, a komputer jej nie oczekuje.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Następnie system wysyła komendę TYPE 3 POLL. Pozytywna odpowiedź oznacza, że urządzenie nadesłało 4 bajty, z czego dwa pierwsze to ilość pamięci potrzebna do przeprowadzenia całości transmisji (musi to być parzysta wielkość). Jeśli jest to więcej niż dostępna ilość pamięci pomiędzy MEMLO a MEMTOP, system odpowiada przez NULL POLL (podobnie jak w wypadku RESET POLL, urządzenie przesyła tylko potwierdzenie wykonania), a następnie ponownie wysyła TYPE 3 POLL. W przypadku braku pamięci byłaby to pętla nieskończona, ale pojedyncze urządzenie na komendę TYPE 3 POLL może odpowiedzieć tylko raz - pętla jest więc przerywana błędem, który wystąpi po przetestowaniu wszystkich urządzeń zarządzanych przez bus mastera. Ponowna odpowiedź na TYPE 3 POLL jest możliwa dopiero po przesłaniu urządzeniu komendy RESET POLL, inaczej TYPE 3 POLL zostanie zignorowana.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Trzeci przysłany bajt to identyfikator urządzenia (dla DDEVIC), które odpowiedziało na komendę i z którym będzie prowadzona dalsza komunikacja.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Po stwierdzeniu poprawności odpowiedzi komputer dokonuje rezerwacji pamięci nad wartością MEMLO zaokrągloną w górę do najbliższej granicy słowa i próbuje dokonać odczytu z urządzenia, które się zgłosiło, 128 bajtów pod adres $03FD, przy użyciu innej &amp;quot;nietypowej&amp;quot; komendy, a mianowicie $26 - SEND HANDLER. Po załadowaniu i zainicjowaniu handlera pętla wraca do początku i wykonuje się cyklicznie aż do wystąpienia błędu - czyli do załadowania wszystkich handlerów będących w dyspozycji bus mastera.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Procedura ładowania handlera wywoływana jest po procedurze bootowania DOS-u, ale niezależnie od jej wyniku; z czego wniosek, że &amp;quot;handler&amp;quot; może spełniać funkcję zarówno dodatku do DOS-u, jak i zostać załadowany &amp;lt;b&amp;gt;zamiast&amp;lt;/b&amp;gt; DOS-u.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Tą samą drogą można już po całkowitym uruchomieniu systemu, podczas pracy, załadować handler urządzenia &amp;lt;b&amp;gt;konkretnie wskazanego&amp;lt;/b&amp;gt;. Robi to [[CIO]] przy każdorazowej próbie otwarcia pliku na urządzeniu, którego system nie zna (nie ma takiego wpisu w tablicy handlerów).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Odpytanie bus mastera na okoliczność dysponowania takowym handlerem odbywa się za pomocą komendy TYPE 4 POLL. W DAUX1 ma się znajdować identyfikator urządzenia CIO, dla którego to urządzenia potrzebujemy handlera (np. dla magnetofonu $43, czyli &amp;quot;C&amp;quot;), w DAUX2 natomiast przesyła się numer wywoływanego urządzenia (np. dla &amp;quot;C1:&amp;quot; będzie to $01).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&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;
====Pozostałe komendy====&lt;br /&gt;
&lt;br /&gt;
Komendy zdefiniowane przez Atari, na których temat brak bliższych danych.&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;Kod&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Nazwa&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Urządzenie&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;R/W&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Ilość danych&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;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$20 ( )&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;DOWNLOAD&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;???&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;W (?)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;???&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Komenda wymieniana przez niektóre źrodła. Szczegóły nieznane.&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;$23 (#)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;DIAG1&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;$31 (stacja dysków)&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;R/W&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;128&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Komenda diagnostyczna stacji [[1050|Atari 1050]]. Wymaga przesłania 128-bajtowego bloku danych, w którym dwa pierwsze bajty decydują o tym, co stacja będzie robić (DAUX1/2 są ignorowane):&amp;lt;/p&amp;gt;&lt;br /&gt;
* $02 - test przejścia głowicy między ścieżkami&lt;br /&gt;
* $03 - przesuw głowicy za pomocą silnika krokowego o jeden krok w przód lub w tył; o kierunku decyduje następny bajt, wartość dodatnia (np. $01) powoduje przesuw w przód - czyli w kierunku ścieżki 39 - a wartość ujemna (np. $FF) przesuw wstecz, czyli w kierunku ścieżki 0. &amp;quot;Krok&amp;quot; silnika krokowego w tym wypadku to połowa odległości między ścieżkami, żeby więc tą komendą przesunąć głowicę na sąsiednią ścieżkę, trzeba zrobić to dwa razy. Uwaga: możliwe jest cofnięcie głowicy wstecz od ścieżki 0 (na tzw. ścieżkę -1).&lt;br /&gt;
* $04 - test zapisu i odczytu dyskietki; formatuje znajdującą się w stacji dyskietkę w średniej gęstości.&lt;br /&gt;
* $05 - przesuw główicy do ścieżki o numerze podanym w następnym bajcie. &lt;br /&gt;
&amp;lt;p&amp;gt;&#039;&#039;&#039;UWAGA: kod operacyjny ($23) jest taki sam, jak kod komendy formatowania w stacji [[XF551|Atari XF-551]]!&#039;&#039;&#039;&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;$24 ($)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;DIAG2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Komenda diagnostyczna stacji [[1050]], służy do pomiaru prędkości obrotowej dyskietki. W zależności od wartości dwóch pierwszych bajtów przesłanego bloku danych ($00, $00 lub $00, $01) stacja przesyła czas jednego obrotu dyskietki lub wartość prędkości obrotowej w obrotach na minutę.&amp;lt;/p&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;$51 (Q)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;READ SPIN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=3&amp;gt;$31 (stacja dysków)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=2&amp;gt;R (?)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=2&amp;gt;?&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=3&amp;gt;Komendy te występują jako komendy dyskowe na liście rozkazów SIO w dokumentacji sporządzonej przez Atari. Nie znam jednak stacji, która by na nie reagowała. Mogą to być komendy stacji [[810]], jakieś komendy diagnostyczne jej prototypu, albo komendy planowane, lecz nie zaimplementowane. Dostępna dokumentacja nie zawiera ich opisu.&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;$54 (T)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;READ ADDRESS&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$55 (U)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MOTOR ON&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;(brak)&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;$56 (V)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;VERIFY SECTOR&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$31 (stacja dysków)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;(brak)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Stacja odczytuje sektor wskazany przez DAUX1/2 i zwraca komputerowi informację, czy da się on odczytać bez błędów. Dane zawarte w sektorze nie są transmitowane do komputera. Komenda ta występuje w dokumentacji SIO sporządzonej przez Atari, ale żadna ze stacji marki Atari jej nie rozpoznaje.&amp;lt;/p&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;$58 (X)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;???&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$50 (RS-232)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;9 bajtów&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Interfejs [[850|Atari 850]] w odpowiedzi na tę komendę zwraca następującą sekwencję liczb: $A0, $A0, $0B, $A0, $A0, $A0, $0B, $A0, $78. Pierwsze cztery pary stanowią zapewne jakieś parametry czterech portów RS-232 modułu [[850]], ostatnia natomiast odnosi się do portu Centronics.&amp;lt;/p&amp;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;
==== Komendy sprzętu innych firm ====&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;Kod&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Nazwa&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Urządzenie&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;R/W&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Ilość danych&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;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$3F (?)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SEND HIGH SPEED INDEX&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$31&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Stacje kompatybilne z US Doubler w odpowiedzi na tę komendę przesyłają wartość rejestru POKEY-a służącą do ustawienia częstotliwości nośnej dla przyspieszonej transmisji.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$47 (G)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;GO TO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$5A ([[ATR 8000]])&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Komenda pozwala na wywoływanie funkcji zdefiniowanych w ROM-ie modułu [[ATR 8000]] (q.v.).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$58 (X)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;DOWNLOAD/EXECUTE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$31&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R/W&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Różna&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Komenda zaimplementowana w stacjach [[LDW Super 2000]] i [[CA-2001]], pozwalająca na przesyłanie do stacji programów użytkownika i uruchamianie ich. Szczegóły: patrz [[Programowanie stacji LDW Super 2000 i CA-2001]].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&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;Bajt statusu kontrolera WD 1772, 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 nastarszy 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 na ścieżce numerowane są od 0, a nie od 1.&lt;br /&gt;
* bit 1 = 1, sektory logiczne 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-ściezkowy 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;
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 sumą kontrolną; czas pomiędzy ustawieniem linii COMMAND a wysłaniem 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 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 numere), 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). Odpowiedź urządzenia musi nastąpić w czasie od 0 do 16 msec. od skasowania linii COMMAND przez komputer;&lt;br /&gt;
&lt;br /&gt;
6) jeśli komenda jest wykonalna i jest to odczyt 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) i na tym transmisja się kończy; w przeciwnym wypadku przesyłany jest kod $43 (&amp;quot;C&amp;quot;, jak Complete), a następnie blok danych zakończony sumą kontrolną i na tym transmisja się kończy; po przesłaniu potwierdzenia (&amp;quot;C&amp;quot;) blok danych po musi nadejść nie wcześniej niż w ciągu 1000 usec. i nie później niż w ciągu 1800 usec.;&lt;br /&gt;
&lt;br /&gt;
7) jeśli to jest zapis danych, komputer przesyła blok danych plus sumę kontrolną do urządzenia. Po jego przyjęciu i stwierdzeniu poprawności urządzenie odpowiada kodem $41 (&amp;quot;A&amp;quot;) i przystępuje do np. zapisania danych na nośnik. Po zapisie urządzenie informuje komputer 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 danych po potwierdzeniu (&amp;quot;A&amp;quot;) musi nastąpić nie wcześniej niż w ciągu 1000 usec. i nie później niż w ciągu 1800 usec. Przesłanie potwierdzenia końcowego (&amp;quot;C&amp;quot; lub &amp;quot;E&amp;quot;) musi nastąpić w czasie od 850 usec. do 16 msec. po przesłaniu bloku danych.&lt;br /&gt;
&lt;br /&gt;
Ogólnie potwierdzenie końcowe (&amp;quot;C&amp;quot; lub &amp;quot;E&amp;quot;) musi nadejść z urządzenia nie wcześniej niż po 250 usec. i nie później niż po 255 sekundach - czyli po 4 minutach i 15 sekundach - od nadesłania potwierdzenia komendy (&amp;quot;A&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Ogólnie schemat wymiany danych przy odczycie jest następujący:&lt;br /&gt;
&lt;br /&gt;
* komputer --&amp;gt; komenda 4 B + CRC --&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 + CRC &amp;lt;-- urządzenie&lt;br /&gt;
* koniec.&lt;br /&gt;
&lt;br /&gt;
Natomiast zapis wygląda tak:&lt;br /&gt;
&lt;br /&gt;
* komputer --&amp;gt; komenda 4 B + CRC --&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 + CRC --&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;
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 (CRC).&lt;br /&gt;
&lt;br /&gt;
====Magnetofon====&lt;br /&gt;
&lt;br /&gt;
Opisany schemat dotyczy 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;Atari Home Computer System: Serial Input Output Interface, User&#039;s Handbook&#039;&#039;&lt;br /&gt;
* Harry B. Stewart, &#039;&#039;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>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=SIO&amp;diff=23801</id>
		<title>SIO</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=SIO&amp;diff=23801"/>
		<updated>2007-09-06T05:12:29Z</updated>

		<summary type="html">&lt;p&gt;Pajero: Dodano wpis o urządzeniu $73 - Sio2SD&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 nastepnie 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ę bezpośrednio po porcji danych przeznaczonych do zapisu (pod adresem DBUFA + DBYT).&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 nastepuje: 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:&lt;br /&gt;
&lt;br /&gt;
* $31: dyskowa pamięć masowa (stacja dysków, twardy dysk)&lt;br /&gt;
* $40: drukarka&lt;br /&gt;
* $4F: bus master (moduł [[1090]])&lt;br /&gt;
* $50: port szeregowy RS-232C&lt;br /&gt;
* $60: magnetofon kasetowy&lt;br /&gt;
&lt;br /&gt;
Właściwy identyfikator urządzenia 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. Przypisanie identyfikatorów do poszczególnych urządzeń jest niezbyt konsekwentne, np. $31 to stacja dysków numer 1, ale $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.&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;
* $5A: [[ATR 8000]]&lt;br /&gt;
&lt;br /&gt;
===Wykaz komend===&lt;br /&gt;
&lt;br /&gt;
====Podstawowy zestaw komend====&lt;br /&gt;
&lt;br /&gt;
Poniższa tabela wyszczególnia podstawowe minimum komend rozpoznawanych przez urządzenia peryferyjne Atari.&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;Kod&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Nazwa&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Urządzenie&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;R/W&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Ilość danych&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;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$21 (!)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;FORMAT DISK&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$31 (stacja dysków)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Równa wielkości sektora danych na dysku&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Formatuje dyskietkę w wybranej uprzednio (komendami PERCOM) gęstości, lub w [[Formaty dyskietek|pojedynczej gęstości]] (90k), jeśli stacja nie jest konfigurowalna. Zwraca listę zawierającą numery wadliwych sektorów wykrytych w czasie formatowania, zakończoną wartością $FFFF. Niektóre stacje zwracają tu pustą listę ($FFFF, a dalej same zera), nawet jeśli na dyskietce są wadliwe sektory: po prostu dyskietki nie są już tak drogie, jak pod koniec lat siedemdziesiątych XX wieku...&amp;lt;br&amp;gt;&lt;br /&gt;
Kontroler [[KMK/JŻ IDE]] nie rozpoznaje tej komendy dla bezpieczeństwa danych na dysku (do partycjonowania i &amp;quot;formatowania&amp;quot; dysku służy oddzielny program).&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;$50 (P)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;PUT SECTOR&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;$31 i $60 (stacja dysków i magnetofon)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;W&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;Zależna od urządzenia i trybu pracy.&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Zapisuje do urządzenia blok danych wskazany przez DBUFA, a zawierający DBYT bajtów. W przypadku stacji dysków jest to zapis bez weryfikacji.&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;$52 (R)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;READ SECTOR&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Odczytuje z urządzenia blok danych o wielkości DBYT bajtów i zapisuje go w pamięci pod adresem wskazanym przez DBUFA.&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;$53 (S)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;READ STATUS&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wszystkie oprócz magnetofonu&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Zależna od urządzenia&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Odczytuje z urządzenia blok statusu i zapisuje go pod adresem wskazanym przez DBUFA. Blok statusu dla RS-232 ma wielkość 2 bajtów, dla drukarki i stacji dysków - 4. Typowo komenda ta służy to stwierdzenia, czy urządzenie jest gotowe do pracy. W przypadku magnetofonu obowiązuje założenie, że jest on zawsze podłączony i gotów, nie ma więc potrzeby sprawdzania jego statusu.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td rowspan=3&amp;gt;$57 (W)&amp;lt;/td&amp;gt;&amp;lt;td rowspan=3&amp;gt;WRITE SECTOR&amp;lt;/td&amp;gt;&amp;lt;td rowspan=3&amp;gt;Wszystkie&amp;lt;/td&amp;gt;&amp;lt;td rowspan=3&amp;gt;W&amp;lt;/td&amp;gt;&amp;lt;td rowspan=3&amp;gt;Zależna od urządzenia i trybu pracy.&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;To samo, co PUT SECTOR ($50). W przypadku stacji dysków zapis przeprowadzany jest z weryfikacją.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;W przypadku drukarki długość bufora może wynosić 20, 29 albo 40 znaków (na ogół to ostatnie), a znaczenie DAUX2 jest jak następuje:&lt;br /&gt;
* $4E (N) drukowanie normalne&lt;br /&gt;
* $53 (S) druk obrócony o 90 stopni&lt;br /&gt;
* $44 (D) druk normalny z podwójną szerokością znaków&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;Dla interfejsu [[850|Atari 850]] wielkość bufora wynosi 64 bajty.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Komendy dodatkowe====&lt;br /&gt;
&lt;br /&gt;
Rozpoznawane przez urządzenia peryferyjne Atari komendy dodatkowe w stosunku do powyżej wspomnianego niezbędnego minimum.&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;Kod&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Nazwa&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Urządzenie&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;R/W&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Ilość danych&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;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$22 (&amp;quot;)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;FORMAT MEDIUM&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;$31 (stacja dysków)&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;128 bajtów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Analogicznie do FORMAT DISK ($21), z tym że formatowanie zawsze przeprowadzane jest w [[Formaty dyskietek|gęstości średniej]] (130k). Komenda wprowadzona razem ze stacją [[1050]]. Kontroler [[KMK/JŻ IDE]] nie rozpoznaje tej komendy dla bezpieczeństwa danych na dysku (do partycjonowania i &amp;quot;formatowania&amp;quot; dysku służy oddzielny program).&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;$23 (#)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;FORMAT DSDD&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;256 bajtów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Analogicznie do FORMAT DISK ($21), z tym że formatowanie zawsze przeprowadzane jest w [[Formaty dyskietek|gęstości podwójnej dwustronnej]] (360k). Komenda wprowadzona razem ze stacją [[XF551|Atari XF-551]]. Kontroler [[KMK/JŻ IDE]] nie rozpoznaje tej komendy dla bezpieczeństwa danych na dysku (do partycjonowania i &amp;quot;formatowania&amp;quot; dysku służy oddzielny program).&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;$41 (A)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;???&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;$50 (RS-232)&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;-&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;(brak)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Komenda aktywująca linie DTR, RTS i XMT (TX) wskazanego portu RS-232 interfejsu [[850|Atari 850]]. Odpowiada komendzie [[CIO]] XIO 34,#i,x,y,&amp;quot;Rn:&amp;quot;, przy czym parametry &#039;&#039;x&#039;&#039; i &#039;&#039;y&#039;&#039; wysyłane są odpowiednio jako DAUX1 i DAUX2. Wykonanie komendy nie pociąga za sobą transmisji danych.&amp;lt;/p&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;$42 (B)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;???&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Komenda ustawiająca różne parametry pracy (m.in. szybkość transmisji) wskazanego portu RS-232 interfejsu [[850|Atari 850]]. Odpowiada komendzie [[CIO]] XIO 36,#i,x,y,&amp;quot;Rn:&amp;quot;, przy czym parametry &#039;&#039;x&#039;&#039; i &#039;&#039;y&#039;&#039; wysyłane są odpowiednio jako DAUX1 i DAUX2. Wykonanie komendy nie pociąga za sobą transmisji danych.&amp;lt;/p&amp;gt;&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;
====Komendy PERCOM====&lt;br /&gt;
&lt;br /&gt;
Komendy PERCOM noszą nazwę od stacji dysków firmy [[Percom Data Corp.|PERCOM]], w których po raz pierwszy się pojawiły. Nie są rozpoznawane przez stacje dysków firmy Atari (z wyjątkiem [[XF551|Atari XF-551]]), są jednak zaimplementowane we wszystkich rozszerzeniach oraz stacjach innych producentów i stanowią de facto standard.&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;Kod&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Nazwa&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Urządzenie&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;R/W&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Ilość danych&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;$4E (N)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;READ PERCOM&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;$31 (stacja dysków)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;12 bajtów&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Odczytuje z urządzenia dwunastobajtowy blok danych opisujący jego bieżącą konfigurację, tj. przede wszystkim format znajdującej się w stacji dyskietki.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$4F (O)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;WRITE PERCOM&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;W&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;Zapisuje do urządzenia dwanaście bajtów opisujących żądaną konfigurację, tj. liczbę ścieżek, stron dyskietki, sektorów na ścieżkę, wielkość sektora, gęstość. Po pomyślnym wykonaniu tej operacji komenda FORMAT DISK ($21) sformatuje dykietkę zgodnie z zapisaną konfiguracją (o ile jest w stanie ją zrealizować). Kontroler [[KMK/JŻ]] IDE nie rozpoznaje tej komendy dla bezpieczeństwa danych na dysku (do definiowania wielkości partycji służy oddzielny program).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Komendy specjalne====&lt;br /&gt;
&lt;br /&gt;
Komendy wspomagające automatyczną instalację w systemie handlerów podłączonych urządzeń zewnętrznych.&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;Kod&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Nazwa&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Urządzenie&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;R/W&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Ilość danych&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;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$21 (!)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SEND RELOCATOR&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;$50 (RS-232)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wg odpowiedzi na komendę POLL ($3F)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Jest to komenda uzupełniająca do opisanego niżej POLL ($3F). Powoduje przesłanie przez urządzenie programu odpowiedzialnego za załadowanie (komendą SEND HANDLER) i relokację właściwego handlera. Wszystkie parametry transmisji dla SEND RELOCATOR przesyłane są na komendę POLL ($3F). Program relokatora - po jego załadowaniu - uruchamia się od adresu DBUFA + 6. Przejmuje on na siebie wykonanie reszty operacji, a w wypadku niepowodzenia sygnalizuje błąd przez ustawienie bitu Carry.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Komendę SEND RELOCATOR rozpoznaje moduł [[850|Atari 850]], a może dotyczyć też innych urządzeń, oprócz stacji dysków (gdzie kod operacyjny $21 oznacza formatowanie dyskietki).&amp;lt;/p&amp;gt;&lt;br /&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;$26 (&amp;amp;)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SEND HANDLER&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wg parametrów ustawionych przez relokator przesłany przez SEND RELOCATOR ($21) lub wg odpowiedzi na komendę POLL BUS ($40)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Wg parametrów ustawionych przez relokator (przesłany przez urządzenie lub rezydujący)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Komenda SEND HANDLER służy do załadowania z urządzenia kodu programu obsługi (handlera) tego urządzenia. Może ona działać różnie w zależności od tego, czy transmisja została zainicjowana przez komendę POLL ($3F) czy POLL BUS ($40).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Komenda POLL ($3F) oznacza starszy protokół transmisji, w którym format strumienia danych przesłanych przez SEND HANDLER zależny jest od programu relokatora załadowanego wcześniej komendą SEND RELOCATOR ($21) i uruchomionego przez komputer.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Komenda POLL BUS ($40) oznacza nowszy protokół transmisji. Format strumienia danych jest ustalony z góry, a relokator rezyduje w ROM-ie systemu operacyjnego komputera.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Po otrzymaniu pozytywnej odpowiedzi na POLL BUS ($40) komputer rozpoczyna ładowanie kolejnych, 128-bajtowych rekordów binarnych, w liczbie do 256 (czyli pojedynczy &amp;quot;handler&amp;quot; może mieć maximum 32k). Przesyłany strumień danych musi być w [[ACX|specjalnym formacie]], który zapewnia relokowalność kodu, oraz zawiera podany explicite znacznik końca pliku - wystąpienie błędu przed napotkaniem tego znacznika powoduje przerwanie procedury z [[kody błędów|kodem błędu]] INCOMPLETE EXECUTION.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Ustawienia zmiennych DCB dla komendy SEND HANDLER wyglądają następująco:&amp;lt;/p&amp;gt;&lt;br /&gt;
* DDEVIC - kod urządzenia przesłany przez urządzenie $4F na komendę POLL BUS.&lt;br /&gt;
* DUNIT - zawsze $01&lt;br /&gt;
* DCMND - $26 - SEND HANDLER&lt;br /&gt;
* DSTATS - $40 - odczyt&lt;br /&gt;
* DTIMLO - 30 sekund&lt;br /&gt;
* DBYT - 128 bajtów&lt;br /&gt;
* DAUX1 - numer kolejny rekordu danych&lt;br /&gt;
* DAUX2 - zawsze 0&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;$3F (?)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;POLL&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$50 (RS-232)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;12 bajtów&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Komenda ta, zwana też TYPE 2 POLL, służy do zainicjowania transmisji mającej na celu automatyczne ściągnięcie z urządzenia i zainstalowanie odpowiedniego dlań programu obsługi (handlera). W odpowiedzi urządzenie przesyła 12 bajtów odpowiadających kolejnym wartościom, jakie należy ustawić w bloku DCB celem załadowania kodu wykonywalnego handlera. Jest to starszy protokół transmisji zaprojektowany dla komputerów serii [[400]] i [[800]].&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;W module [[850|Atari 850]] odpowiedzią na komendę POLL są wartości, jakie trzeba wstawić do DCB celem wykonania komendy SEND RELOCATOR ($21).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;W celu uniknięcia wielokrotnego załadowania tego samego programu obsługi urządzenie na komendę POLL ($3F) odpowiada tylko raz, potem wykonanie komendy jest zablokowane aż do wyłączenia zasilania.&amp;lt;/p&amp;gt;&lt;br /&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;$40 (@)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;POLL BUS&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$4F (bus master)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;4 bajty&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;W komputerach serii XL oraz XE komendę tę system operacyjny przesyła do interfejsu szeregowo-równoległego przy każdym zimnym starcie; w pewnych warunkach - ale z nieco innymi parametrami - może też zostać wykonana po zainicjowaniu systemu. Jest to odpowiednik komendy POLL ($3F), jednak protokół transmisji handlera jest zunifikowany i nie wymaga od urządzenia przesyłania relokatora (uniwersalny relokator rezyduje w ROM-ie systemu operacyjnego). Analogicznie do POLL ($3F), komenda POLL BUS jest przeznaczona do zapoczątkowania transmisji mającej na celu automatyczne ściągnięcie z urządzenia i zainstalowanie odpowiedniego dlań programu obsługi (handlera). Zasadniczym adresatem jest tu moduł [[1090]] działający jako bus master.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Istnieje kilka odmian komendy POLL BUS różniących się parametrami przesyłanymi w DAUX1 i DAUX2:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* TYPE 3 POLL: DAUX1 = 0 i DAUX2 = 0.&lt;br /&gt;
* TYPE 4 POLL: zobacz niżej.&lt;br /&gt;
* RESET POLL: DAUX1 = $4F i DAUX2 = $4F (&amp;quot;OO&amp;quot;)&lt;br /&gt;
* NULL POLL: DAUX1 = $4E i DAUX2 = $4E (&amp;quot;NN&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Przy zimnym starcie na początku system wysyła RESET POLL. Komenda ta powinna odblokować rozpoznawanie komendy TYPE 3 POLL we wszystkich podłączonych urządzeniach. Na RESET POLL urządzenia, oprócz potwierdzenia wykonania, nie przesyłają żadnej odpowiedzi, a komputer jej nie oczekuje.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Następnie system wysyła komendę TYPE 3 POLL. Pozytywna odpowiedź oznacza, że urządzenie nadesłało 4 bajty, z czego dwa pierwsze to ilość pamięci potrzebna do przeprowadzenia całości transmisji (musi to być parzysta wielkość). Jeśli jest to więcej niż dostępna ilość pamięci pomiędzy MEMLO a MEMTOP, system odpowiada przez NULL POLL (podobnie jak w wypadku RESET POLL, urządzenie przesyła tylko potwierdzenie wykonania), a następnie ponownie wysyła TYPE 3 POLL. W przypadku braku pamięci byłaby to pętla nieskończona, ale pojedyncze urządzenie na komendę TYPE 3 POLL może odpowiedzieć tylko raz - pętla jest więc przerywana błędem, który wystąpi po przetestowaniu wszystkich urządzeń zarządzanych przez bus mastera. Ponowna odpowiedź na TYPE 3 POLL jest możliwa dopiero po przesłaniu urządzeniu komendy RESET POLL, inaczej TYPE 3 POLL zostanie zignorowana.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Trzeci przysłany bajt to identyfikator urządzenia (dla DDEVIC), które odpowiedziało na komendę i z którym będzie prowadzona dalsza komunikacja.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Po stwierdzeniu poprawności odpowiedzi komputer dokonuje rezerwacji pamięci nad wartością MEMLO zaokrągloną w górę do najbliższej granicy słowa i próbuje dokonać odczytu z urządzenia, które się zgłosiło, 128 bajtów pod adres $03FD, przy użyciu innej &amp;quot;nietypowej&amp;quot; komendy, a mianowicie $26 - SEND HANDLER. Po załadowaniu i zainicjowaniu handlera pętla wraca do początku i wykonuje się cyklicznie aż do wystąpienia błędu - czyli do załadowania wszystkich handlerów będących w dyspozycji bus mastera.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Procedura ładowania handlera wywoływana jest po procedurze bootowania DOS-u, ale niezależnie od jej wyniku; z czego wniosek, że &amp;quot;handler&amp;quot; może spełniać funkcję zarówno dodatku do DOS-u, jak i zostać załadowany &amp;lt;b&amp;gt;zamiast&amp;lt;/b&amp;gt; DOS-u.&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Tą samą drogą można już po całkowitym uruchomieniu systemu, podczas pracy, załadować handler urządzenia &amp;lt;b&amp;gt;konkretnie wskazanego&amp;lt;/b&amp;gt;. Robi to [[CIO]] przy każdorazowej próbie otwarcia pliku na urządzeniu, którego system nie zna (nie ma takiego wpisu w tablicy handlerów).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Odpytanie bus mastera na okoliczność dysponowania takowym handlerem odbywa się za pomocą komendy TYPE 4 POLL. W DAUX1 ma się znajdować identyfikator urządzenia CIO, dla którego to urządzenia potrzebujemy handlera (np. dla magnetofonu $43, czyli &amp;quot;C&amp;quot;), w DAUX2 natomiast przesyła się numer wywoływanego urządzenia (np. dla &amp;quot;C1:&amp;quot; będzie to $01).&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&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;
====Pozostałe komendy====&lt;br /&gt;
&lt;br /&gt;
Komendy zdefiniowane przez Atari, na których temat brak bliższych danych.&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;Kod&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Nazwa&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Urządzenie&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;R/W&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Ilość danych&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;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$20 ( )&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;DOWNLOAD&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;???&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;W (?)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;???&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Komenda wymieniana przez niektóre źrodła. Szczegóły nieznane.&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;$23 (#)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;DIAG1&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;$31 (stacja dysków)&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;R/W&amp;lt;/td&amp;gt;&amp;lt;td rowspan = 2&amp;gt;128&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Komenda diagnostyczna stacji [[1050|Atari 1050]]. Wymaga przesłania 128-bajtowego bloku danych, w którym dwa pierwsze bajty decydują o tym, co stacja będzie robić (DAUX1/2 są ignorowane):&amp;lt;/p&amp;gt;&lt;br /&gt;
* $02 - test przejścia głowicy między ścieżkami&lt;br /&gt;
* $03 - przesuw głowicy za pomocą silnika krokowego o jeden krok w przód lub w tył; o kierunku decyduje następny bajt, wartość dodatnia (np. $01) powoduje przesuw w przód - czyli w kierunku ścieżki 39 - a wartość ujemna (np. $FF) przesuw wstecz, czyli w kierunku ścieżki 0. &amp;quot;Krok&amp;quot; silnika krokowego w tym wypadku to połowa odległości między ścieżkami, żeby więc tą komendą przesunąć głowicę na sąsiednią ścieżkę, trzeba zrobić to dwa razy. Uwaga: możliwe jest cofnięcie głowicy wstecz od ścieżki 0 (na tzw. ścieżkę -1).&lt;br /&gt;
* $04 - test zapisu i odczytu dyskietki; formatuje znajdującą się w stacji dyskietkę w średniej gęstości.&lt;br /&gt;
* $05 - przesuw główicy do ścieżki o numerze podanym w następnym bajcie. &lt;br /&gt;
&amp;lt;p&amp;gt;&#039;&#039;&#039;UWAGA: kod operacyjny ($23) jest taki sam, jak kod komendy formatowania w stacji [[XF551|Atari XF-551]]!&#039;&#039;&#039;&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;$24 ($)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;DIAG2&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Komenda diagnostyczna stacji [[1050]], służy do pomiaru prędkości obrotowej dyskietki. W zależności od wartości dwóch pierwszych bajtów przesłanego bloku danych ($00, $00 lub $00, $01) stacja przesyła czas jednego obrotu dyskietki lub wartość prędkości obrotowej w obrotach na minutę.&amp;lt;/p&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;$51 (Q)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;READ SPIN&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=3&amp;gt;$31 (stacja dysków)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=2&amp;gt;R (?)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=2&amp;gt;?&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td rowspan=3&amp;gt;Komendy te występują jako komendy dyskowe na liście rozkazów SIO w dokumentacji sporządzonej przez Atari. Nie znam jednak stacji, która by na nie reagowała. Mogą to być komendy stacji [[810]], jakieś komendy diagnostyczne jej prototypu, albo komendy planowane, lecz nie zaimplementowane. Dostępna dokumentacja nie zawiera ich opisu.&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;$54 (T)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;READ ADDRESS&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$55 (U)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;MOTOR ON&amp;lt;/td&amp;gt; &amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;(brak)&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;$56 (V)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;VERIFY SECTOR&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$31 (stacja dysków)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;(brak)&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Stacja odczytuje sektor wskazany przez DAUX1/2 i zwraca komputerowi informację, czy da się on odczytać bez błędów. Dane zawarte w sektorze nie są transmitowane do komputera. Komenda ta występuje w dokumentacji SIO sporządzonej przez Atari, ale żadna ze stacji marki Atari jej nie rozpoznaje.&amp;lt;/p&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;$58 (X)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;???&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$50 (RS-232)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;9 bajtów&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;p&amp;gt;Interfejs [[850|Atari 850]] w odpowiedzi na tę komendę zwraca następującą sekwencję liczb: $A0, $A0, $0B, $A0, $A0, $A0, $0B, $A0, $78. Pierwsze cztery pary stanowią zapewne jakieś parametry czterech portów RS-232 modułu [[850]], ostatnia natomiast odnosi się do portu Centronics.&amp;lt;/p&amp;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;
==== Komendy sprzętu innych firm ====&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;Kod&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Nazwa&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Urządzenie&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;R/W&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;b&amp;gt;Ilość danych&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;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$3F (?)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;SEND HIGH SPEED INDEX&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$31&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;1&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Stacje kompatybilne z US Doubler w odpowiedzi na tę komendę przesyłają wartość rejestru POKEY-a służącą do ustawienia częstotliwości nośnej dla przyspieszonej transmisji.&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$47 (G)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;GO TO&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$5A ([[ATR 8000]])&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;-&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;0&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Komenda pozwala na wywoływanie funkcji zdefiniowanych w ROM-ie modułu [[ATR 8000]] (q.v.).&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;$58 (X)&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;DOWNLOAD/EXECUTE&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;$31&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;R/W&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Różna&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;Komenda zaimplementowana w stacjach [[LDW Super 2000]] i [[CA-2001]], pozwalająca na przesyłanie do stacji programów użytkownika i uruchamianie ich. Szczegóły: patrz [[Programowanie stacji LDW Super 2000 i CA-2001]].&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&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;Bajt statusu kontrolera WD 1772, 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 nastarszy 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 na ścieżce numerowane są od 0, a nie od 1.&lt;br /&gt;
* bit 1 = 1, sektory logiczne 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-ściezkowy 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;
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 sumą kontrolną; czas pomiędzy ustawieniem linii COMMAND a wysłaniem 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 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 numere), 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). Odpowiedź urządzenia musi nastąpić w czasie od 0 do 16 msec. od skasowania linii COMMAND przez komputer;&lt;br /&gt;
&lt;br /&gt;
6) jeśli komenda jest wykonalna i jest to odczyt 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) i na tym transmisja się kończy; w przeciwnym wypadku przesyłany jest kod $43 (&amp;quot;C&amp;quot;, jak Complete), a następnie blok danych zakończony sumą kontrolną i na tym transmisja się kończy; po przesłaniu potwierdzenia (&amp;quot;C&amp;quot;) blok danych po musi nadejść nie wcześniej niż w ciągu 1000 usec. i nie później niż w ciągu 1800 usec.;&lt;br /&gt;
&lt;br /&gt;
7) jeśli to jest zapis danych, komputer przesyła blok danych plus sumę kontrolną do urządzenia. Po jego przyjęciu i stwierdzeniu poprawności urządzenie odpowiada kodem $41 (&amp;quot;A&amp;quot;) i przystępuje do np. zapisania danych na nośnik. Po zapisie urządzenie informuje komputer 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 danych po potwierdzeniu (&amp;quot;A&amp;quot;) musi nastąpić nie wcześniej niż w ciągu 1000 usec. i nie później niż w ciągu 1800 usec. Przesłanie potwierdzenia końcowego (&amp;quot;C&amp;quot; lub &amp;quot;E&amp;quot;) musi nastąpić w czasie od 850 usec. do 16 msec. po przesłaniu bloku danych.&lt;br /&gt;
&lt;br /&gt;
Ogólnie potwierdzenie końcowe (&amp;quot;C&amp;quot; lub &amp;quot;E&amp;quot;) musi nadejść z urządzenia nie wcześniej niż po 250 usec. i nie później niż po 255 sekundach - czyli po 4 minutach i 15 sekundach - od nadesłania potwierdzenia komendy (&amp;quot;A&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Ogólnie schemat wymiany danych przy odczycie jest następujący:&lt;br /&gt;
&lt;br /&gt;
* komputer --&amp;gt; komenda 4 B + CRC --&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 + CRC &amp;lt;-- urządzenie&lt;br /&gt;
* koniec.&lt;br /&gt;
&lt;br /&gt;
Natomiast zapis wygląda tak:&lt;br /&gt;
&lt;br /&gt;
* komputer --&amp;gt; komenda 4 B + CRC --&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 + CRC --&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;
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 (CRC).&lt;br /&gt;
&lt;br /&gt;
====Magnetofon====&lt;br /&gt;
&lt;br /&gt;
Opisany schemat dotyczy 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;
===Czytnik kart pamięci Sio2SD===&lt;br /&gt;
* $73 - nowe urządzenie, szczegóły w opisie czytnika [[SIO2SD|Sio2SD]].&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;Atari Home Computer System: Serial Input Output Interface, User&#039;s Handbook&#039;&#039;&lt;br /&gt;
* Harry B. Stewart, &#039;&#039;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>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Pajero&amp;diff=23506</id>
		<title>Pajero</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Pajero&amp;diff=23506"/>
		<updated>2007-07-06T21:43:35Z</updated>

		<summary type="html">&lt;p&gt;Pajero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Paweł &#039;Pajero&#039; Nowak. Przybrał ksywkę Pajero na cześć pewnego modelu samochodu terenowego :) Niektórzy mieszkańcy Hiszpanii mogą kojarzyć jego ksywkę z &amp;quot;handlarzem słomy&amp;quot;. Zamieszkuje w Wielkopolsce, w miejscowości pod Poznaniem - Swarzędz. Żonaty i dzieciaty.&lt;br /&gt;
&lt;br /&gt;
Jego status na scenie to [[koder]]. Koduje w większości programy użytkowe zarówno na platformę Atari XE/XL jak i PC. Uwielbia atarowskie magnetofony, cały czas rozwija program użytkowy do obsługi formatu [[CAS]].&lt;br /&gt;
&lt;br /&gt;
Należał do atarowskiej sekcji Samaru, po jej rozpadzie przygarnął go Madteam. :)&lt;br /&gt;
&lt;br /&gt;
Członek grup: [[Samar]], [[Madteam]]&lt;br /&gt;
&lt;br /&gt;
Produkcje:&lt;br /&gt;
* [[Kuwerty Gfx Collection]] - kolekcja graficzna&lt;br /&gt;
* [[Via Copy]] - użytek&lt;br /&gt;
* [[Total Commander ATR Plugin]] - użytek PC (obsługa formatu [[ATR]] dla PC)&lt;br /&gt;
* [[MagoTrans]]&lt;br /&gt;
* [[UAMedytor]] - edytor POI dla AutoMapy&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Kontakt:&lt;br /&gt;
&lt;br /&gt;
e-mail: pajero_pn [ at ] poczta.onet.pl&lt;br /&gt;
&lt;br /&gt;
GG: 8993153&lt;br /&gt;
&lt;br /&gt;
[[Kategoria:Ludzie]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Pajero&amp;diff=1190</id>
		<title>Pajero</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Pajero&amp;diff=1190"/>
		<updated>2004-12-15T19:17:51Z</updated>

		<summary type="html">&lt;p&gt;Pajero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Paweł &#039;Pajero&#039; Nowak&lt;br /&gt;
&lt;br /&gt;
Przybrał ksywkę Pajero na cześć pewnego modelu samochodu terenowego :) Niektórzy mieszkańcy Hiszpani mogą kojarzyć jego ksywkę z &amp;quot;handlarzem słomy&amp;quot;. Zamieszkuje w Wielkopolsce, w miejscowości pod Poznaniem - Swarzędz. Żonaty i dzieciaty.&lt;br /&gt;
&lt;br /&gt;
Jego status na scenie to koder. Koduje w większości programy użytkowe zarówno na platformę Atari XE/XL jak i PC.&lt;br /&gt;
&lt;br /&gt;
Należał do atarowskiej sekcji Samar&#039;u, po jej rozpadzie przygarnął go Madteam :)&lt;br /&gt;
&lt;br /&gt;
Członek grup: [[Samar]], [[Madteam]]&lt;br /&gt;
&lt;br /&gt;
Produkcje:&lt;br /&gt;
* [[Kuwerty Gfx Collection]] - kolekcja graficzna&lt;br /&gt;
* [[Via Copy]] - użytek&lt;br /&gt;
* [[Total Commander ATR Plugin]] - użytek PC&lt;br /&gt;
&lt;br /&gt;
e-mail: pajero_pn@poczta.onet.pl&lt;br /&gt;
&lt;br /&gt;
gg: 6491502&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Turbo_Blizzard&amp;diff=3006</id>
		<title>Turbo Blizzard</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Turbo_Blizzard&amp;diff=3006"/>
		<updated>2004-12-15T19:12:32Z</updated>

		<summary type="html">&lt;p&gt;Pajero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;System turbo do magnetofonów rozpowszechniony na południowej części naszej krainki. Najlepszy (wg [[Pajero]]) system przyspieszania transmisji, nadaje się nie tylko do gier - dobrze znosi programy dos-owe.&lt;br /&gt;
&lt;br /&gt;
Nagranie składa sie z bloku nazwy pliku i bloków (rekordów) danych. Rekord nazwy to: 2 bajty długosci ($50), 80 znaków [[Atascii]] nazwy (dowolne znaki wyświetlane na urządzenie E: ), 1 bajt sumy kontrolnej. Natomiast rekord danych to: 2 bajty długości rekordu ($400), 1024b danych, 1b sumy kontrolnej. Ostatni rekord jest krótszy niż 1024b.&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Turbo_Blizzard&amp;diff=1097</id>
		<title>Turbo Blizzard</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Turbo_Blizzard&amp;diff=1097"/>
		<updated>2004-12-15T18:36:21Z</updated>

		<summary type="html">&lt;p&gt;Pajero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;System turbo do magnetofonów rozpowszechniony na południo naszej krainki. Najlepszy (wg [[Pajero]]) system przyspieszania transmisji, nadaje się nie tylko do gier - dobrze znosi programy dos-owe.&lt;br /&gt;
&lt;br /&gt;
Nagranie składa sie z bloku nazwy pliku i bloków (rekordów) danych. Rekord nazwy to: 2 bajty długosci ($50), 80 znaków [[Atascii]] nazwy (dowolne znaki wyświetlane na urządzenie E: ), 1 bajt sumy kontrolnej. Natomiast rekord danych to: 2 bajty długości rekordu ($400), 1024b danych, 1b sumy kontrolnej. Ostatni rekord jest krótszy niż 1024b.&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Turbo_Blizzard&amp;diff=1096</id>
		<title>Turbo Blizzard</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Turbo_Blizzard&amp;diff=1096"/>
		<updated>2004-12-15T18:35:22Z</updated>

		<summary type="html">&lt;p&gt;Pajero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;System turbo do magnetofonów rozpowszechniony na południo naszej krainki. Najlepszy (wg Pajero) system przyspieszania transmisji, nadaje się nie tylko do gier - dobrze znosi programy dos-owe.&lt;br /&gt;
&lt;br /&gt;
Nagranie składa sie z bloku nazwy pliku i bloków (rekordów) danych. Rekord nazwy to: 2 bajty długosci ($50), 80 znaków Atascii nazwy (dowolne znaki wyświetlane na urządzenie E: ), 1 bajt sumy kontrolnej. Natomiast rekord danych to: 2 bajty długości rekordu ($400), 1024b danych, 1b sumy kontrolnej. Ostatni rekord jest krótszy niż 1024b.&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Akcesoria_i_rozszerzenia&amp;diff=1188</id>
		<title>Akcesoria i rozszerzenia</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Akcesoria_i_rozszerzenia&amp;diff=1188"/>
		<updated>2004-12-15T18:23:56Z</updated>

		<summary type="html">&lt;p&gt;Pajero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Atari XL/XE ==&lt;br /&gt;
&lt;br /&gt;
* [[65C816]]&lt;br /&gt;
* [[Stereo]]&lt;br /&gt;
* [[SpartaDOS X]]&lt;br /&gt;
* [[AKI]]&lt;br /&gt;
* [[Warp4]]&lt;br /&gt;
* [[Covox]]&lt;br /&gt;
* [[1MB SIMM RAM Extension]]&lt;br /&gt;
* [[Tight Tools Packed]]&lt;br /&gt;
* [[ARC]]&lt;br /&gt;
* [[Slight SID]]&lt;br /&gt;
* [[Tight Freezer]]&lt;br /&gt;
&lt;br /&gt;
== Magnetofony XL/XE ==&lt;br /&gt;
&lt;br /&gt;
* [[KSO Turbo 2000]]&lt;br /&gt;
* [[Atari Super Turbo]]&lt;br /&gt;
* [[Turbo Blizzard]]&lt;br /&gt;
&lt;br /&gt;
== Stacje XL/XE ==&lt;br /&gt;
&lt;br /&gt;
* [[Toms Turbo Drive]]&lt;br /&gt;
* [[Toms Multi Drive]]&lt;br /&gt;
* [[Happy Warp]]&lt;br /&gt;
&lt;br /&gt;
== Kontrolery IDE ==&lt;br /&gt;
&lt;br /&gt;
* [[IDE JZ/KMK]]&lt;br /&gt;
* [[IDEa/Pasiu]]&lt;br /&gt;
* [[SIO2IDE]]&lt;br /&gt;
* [[MyIDE]]&lt;br /&gt;
&lt;br /&gt;
== Kontrolery SCSI ==&lt;br /&gt;
&lt;br /&gt;
* [[BlackBox]]&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
	<entry>
		<id>https://atariki.krap.pl/index.php?title=Madteam&amp;diff=380</id>
		<title>Madteam</title>
		<link rel="alternate" type="text/html" href="https://atariki.krap.pl/index.php?title=Madteam&amp;diff=380"/>
		<updated>2004-12-08T18:29:23Z</updated>

		<summary type="html">&lt;p&gt;Pajero: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Grupa w składzie:&#039;&#039;&#039; Madman+TeBe/coder,  Pajero/coder, Rocky/graphic&lt;/div&gt;</summary>
		<author><name>Pajero</name></author>
	</entry>
</feed>