SIO2BSD

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 13:20, 4 sty 2011
KMK (Dyskusja | wkład)
(Obsługa)
← Previous diff
Aktualna wersja
KMK (Dyskusja | wkład)
(red.)
Linia 1: Linia 1:
-Program umożliwiający wykorzystanie PC jako wirtualnych stacji dysków do Atari, działający na platformach unixopodobnych (BSD, Linux). Napisany zasadniczo dla FreeBSD. Korzysta z kabla [[SIO2PC]]. Autorem jest [[KMK]]. +Program umożliwiający wykorzystanie PC jako wirtualnych stacji dysków do Atari, działający na platformach unixopodobnych (BSD, Linux). Napisany zasadniczo dla FreeBSD. Korzysta z kabla [[SIO2PC]]. Autorem jest [[KMK]], przy programie współpracowali lub współpracują również [[Mikey]] i [[Mono]].
== Emulacja stacji dysków == == Emulacja stacji dysków ==
-Obecna wersja pozwala na otwieranie plików [[ATR]] oraz uzyskanie stabilnych zapisów i odczytów z prędkością 57600 bps przy zastosowaniu protokołu [[UltraSpeed]] (standardowe 19200 oczywiście również jest obsługiwane), co wypraktykowano na następującym zestawie:+ 
 +Obecna wersja pozwala na otwieranie plików [[ATR]] oraz uzyskanie stabilnych zapisów i odczytów z prędkością do 126 kbps bps przy zastosowaniu protokołu [[UltraSpeed]] (standardowe 19200 oczywiście również jest obsługiwane), co wypraktykowano na następującym zestawie:
* notebook Toshiba Satellite, 1200 MHz * notebook Toshiba Satellite, 1200 MHz
* konwerter COM2USB z układem FTDI * konwerter COM2USB z układem FTDI
-* FreeBSD 6.1+* FreeBSD 8.2 oraz Linux Ubuntu 10.04 (lucid)
 + 
 +Wykorzystano dostępną we FreeBSD i Linuksie dokładną kontrolę parametrów transmisji po stronie PC: w szczególności jest możliwe ustawienie dowolnej szybkości przesyłania danych, a tym samym dostrojenie jej do aktualnego [[HS Index]] układu [[POKEY]]. W ten sposób można na SIO2BSD uzyskać transfery do 126 kbps (przy HS Index równym 0). Autorem odpowiednich modyfikacji w kodzie SIO2BSD jest Mono.
Maksymalna szybkość transmisji może być uzależniona od marki (czyli jakości) konwertera COM2USB. Na przykład konwertery Prolific nie pozwalają uzyskać transmisji szybszej niż 38400 bps. Maksymalna szybkość transmisji może być uzależniona od marki (czyli jakości) konwertera COM2USB. Na przykład konwertery Prolific nie pozwalają uzyskać transmisji szybszej niż 38400 bps.
-Uwaga: jeśli są problemy ze stabilnością transmisji, to pomóc może podniesienie częstotliwości głównego zegara schedulera FreeBSD (sysctl kern.hz, u autora ma wartość 1600 Hz).+Uwaga: jeśli są problemy ze stabilnością transmisji, to na FreeBSD może pomóc podniesienie częstotliwości głównego zegara schedulera. W tym celu należy zmienić ustawienie sysctl kern.hz (u autora ma wartość 1600 Hz). Natomiast w Linuxie trzeba przekompilować jądro z ustawieniami CONFIG_HZ_1000=y oraz CONFIG_HZ=1000 (opcja "Timer frequency" w menu "Processor type and features" podczas konfiguracji w menuconfig).
== Emulacja drukarki == == Emulacja drukarki ==
Linia 19: Linia 22:
== Serwer plików == == Serwer plików ==
-Od wersji 1.06 program może działać jako serwer plików dla Atari. Wykorzystuje do tego protokół [[DOS2DOS]]. Sterownik dla Atari (konkretnie dla SpartaDOS X 4.4), który zostanie dołączony do dystrybucji SpartaDOS X 4.43, można chwilowo (grudzień 2010) dostać prywatnie od autora.+Od wersji 1.06 program może działać jako serwer plików dla Atari. Wykorzystuje do tego protokół [[DOS2DOS]]. Sterownik dla Atari (konkretnie dla SpartaDOS X 4.4) jest dostępny w dystrybucji SpartaDOS X od wersji 4.43 (w [[SpartaDOS X Toolkit|Toolkicie]]) w katalogu >DRIVERS>PCLINK.
== Inne == == Inne ==
-Dodatkowo program, uruchomiony jako ''mkatr'', potrafi tworzyć pliki ATR o zadanych parametrach (w tym też w gęstości [[DD 512]]).+ 
 +Dodatkowo program uruchomiony jako ''mkatr'', potrafi tworzyć pliki ATR o zadanych parametrach.
 + 
 +Sposób wywołania programu:
 + 
 + mkatr [opcje] filename.atr
 + 
 +Za pomocą opcji -d można podać typowy rozmiar obrazu:
 +* 90k lub ss/sd,
 +* 130k lub ss/ed,
 +* 180k lub ss/dd,
 +* 360k lub ds/dd,
 +* 720k lub ds/qd,
 +* 1440k lub ds/hd,
 +* 16m,
 +* 32m,
 +natomiast opcjami:
 +* -t tracks,
 +* -s sectors_per_track,
 +* -h heads,
 +* -b bytes_per_sector
 +zdefiniować konkretną geometrię dysku dla tworzonego obrazu przez podanie odpowiednio ilości ścieżek na stronę (-t), ilości sektorów na ścieżce (-s), ilości głowic (stron dysku -h), ilości bajtów w sektorze (-b).
 + 
 +Opcja -f pozwala na utworzenie obrazu z 256-bajtowymi sektorami, gdzie sektory 1..3 mają pełny rozmiar (a nie 128 bajtów, jak jest domyślnie).
 + 
 +Predefiniowane gęstości i odpowiednie parametry geometrii dysku:
 + 
 +<table BORDER="1" cellpadding="5" cellspacing="0">
 + 
 +<tr>
 +<td>-d</td>
 +<td>-t</td>
 +<td>-s</td>
 +<td>-h</td>
 +<td>-b</td>
 +</tr>
 + 
 +<tr>
 +<td>90k lub ss/sd</td>
 +<td>40</td>
 +<td>18</td>
 +<td>1</td>
 +<td>128</td>
 +</tr>
 + 
 +<tr>
 +<td>130k lub ss/ed</td>
 +<td>40</td>
 +<td>26</td>
 +<td>1</td>
 +<td>128</td>
 +</tr>
 + 
 +<tr>
 +<td>180k lub ss/dd</td>
 +<td>40</td>
 +<td>18</td>
 +<td>1</td>
 +<td>256</td>
 +</tr>
 + 
 +<tr>
 +<td>360k lub ds/dd</td>
 +<td>40</td>
 +<td>18</td>
 +<td>2</td>
 +<td>256</td>
 +</tr>
 + 
 +<tr>
 +<td>720k lub ds/qd</td>
 +<td>80</td>
 +<td>18</td>
 +<td>2</td>
 +<td>256</td>
 +</tr>
 + 
 +<tr>
 +<td>1440k lub ds/hd</td>
 +<td>80</td>
 +<td>36</td>
 +<td>2</td>
 +<td>256</td>
 +</tr>
 + 
 +<tr>
 +<td>16m</td>
 +<td>1</td>
 +<td>65534</td>
 +<td>1</td>
 +<td>256</td>
 +</tr>
 + 
 +<tr>
 +<td>32m</td>
 +<td>1</td>
 +<td>65534</td>
 +<td>1</td>
 +<td>512</td>
 +</tr>
 + 
 +</table>
== Instalacja == == Instalacja ==
Linia 50: Linia 154:
* -l - włącza dodatkowe komunikaty wyświetlane na konsoli (przydatne przy debugowaniu programu) * -l - włącza dodatkowe komunikaty wyświetlane na konsoli (przydatne przy debugowaniu programu)
* -s nazwa - podaje nazwę pliku portu szeregowego inną niż domyślna (np. /dev/ttyS0) * -s nazwa - podaje nazwę pliku portu szeregowego inną niż domyślna (np. /dev/ttyS0)
 +* -b n - ustawia prędkość transmisji na 19200*n. Dopuszczalne wartości 'n': 1, 2, 3, 4 (tylko FreeBSD), 6. Wartość 0 pozwala na dokładniejsze ustawienie prędkości transmisji za pomocą przełącznika -i, -q oraz -c.
* -p nazwa - podaje nazwę pliku, do którego mają zostać przekierowane dane zapisywane przez Atari na drukarkę * -p nazwa - podaje nazwę pliku, do którego mają zostać przekierowane dane zapisywane przez Atari na drukarkę
* -t - włącza translację ATASCII->ASCII dla drukarki * -t - włącza translację ATASCII->ASCII dla drukarki
* -u - serwer plików będzie "widział" tylko pliki z nazwami zapisanymi dużymi literami (od ang. uppercase) * -u - serwer plików będzie "widział" tylko pliki z nazwami zapisanymi dużymi literami (od ang. uppercase)
 +
 +Poniższe opcje pozwalają na ustawienie prędkości transmisji zgodnie z ustawieniami [[POKEY#Szybkość transmisji|POKEY]]-a:
 +
 +* -i n - ustawia HS Index na wartość 'n'. Uaktywnienie tej opcji wymaga też podania "-b 0"
 +* -q hz - częstotliwość zegara wejściowego do obliczenia szybkości transmisji. Dopuszczalne wartości:
 +** pal - wybiera 1773447 Hz
 +** ntsc - wybiera 1789790 Hz
 +** ntscf - wybiera 1789772.5 Hz
 +Brak opcji -q powoduje przyjęcie uśrednionej częstotliwości PAL i NTSC stosowanej w maszynach z układem [[FREDDIE]], czyli 1781610 Hz.
 +Można też podać konkretną częstotliwość taktowania układu POKEY np. -q 1789772.5.
 +* -c const - ustawia stałą korygującą nieliniowo [[POKEY#Szybkość transmisji|prędkość transmisji]] liczoną wg wzoru:
 +
 + F = q / (2 * (n + c))
 +
 +gdzie F to prędkość transmisji wyrażona w bitach/s, q to częstotliwość taktowania POKEY-a, n to wartość dzielnika częstotliwości tzw. [[HS Index]] a c to właśnie stała const.
 +
 +Domyślnie ustalona jest ona na 7.1861, co pozwala na bezproblemową komunikację z n=0.
 +Dokumentacja firmy ATARI ustala c=7, co pozwala na poprawne obliczenie prędkości transmisji dla większości wartości n.
 +Odchylenia od zakładanej prędkości związane są z obciążeniem i ilością urządzeń na magistrali SIO, oraz obecnością dodatkowych elementów pojemnościowych w niektórych modelach Atari.
== Download == == Download ==
-* [http://drac030.krap.pl/sio2bsd.tar.gz SIO2BSD]+* [http://drac030.krap.pl/pl-inne-pliki.php bieżąca wersja] na stronie autora
-{{stub}} 
[[Kategoria: Emulacja]] [[Kategoria: Emulacja]]
[[Kategoria: Polskie programy]] [[Kategoria: Polskie programy]]

Aktualna wersja

Program umożliwiający wykorzystanie PC jako wirtualnych stacji dysków do Atari, działający na platformach unixopodobnych (BSD, Linux). Napisany zasadniczo dla FreeBSD. Korzysta z kabla SIO2PC. Autorem jest KMK, przy programie współpracowali lub współpracują również Mikey i Mono.

Spis treści

Emulacja stacji dysków

Obecna wersja pozwala na otwieranie plików ATR oraz uzyskanie stabilnych zapisów i odczytów z prędkością do 126 kbps bps przy zastosowaniu protokołu UltraSpeed (standardowe 19200 oczywiście również jest obsługiwane), co wypraktykowano na następującym zestawie:

  • notebook Toshiba Satellite, 1200 MHz
  • konwerter COM2USB z układem FTDI
  • FreeBSD 8.2 oraz Linux Ubuntu 10.04 (lucid)

Wykorzystano dostępną we FreeBSD i Linuksie dokładną kontrolę parametrów transmisji po stronie PC: w szczególności jest możliwe ustawienie dowolnej szybkości przesyłania danych, a tym samym dostrojenie jej do aktualnego HS Index układu POKEY. W ten sposób można na SIO2BSD uzyskać transfery do 126 kbps (przy HS Index równym 0). Autorem odpowiednich modyfikacji w kodzie SIO2BSD jest Mono.

Maksymalna szybkość transmisji może być uzależniona od marki (czyli jakości) konwertera COM2USB. Na przykład konwertery Prolific nie pozwalają uzyskać transmisji szybszej niż 38400 bps.

Uwaga: jeśli są problemy ze stabilnością transmisji, to na FreeBSD może pomóc podniesienie częstotliwości głównego zegara schedulera. W tym celu należy zmienić ustawienie sysctl kern.hz (u autora ma wartość 1600 Hz). Natomiast w Linuxie trzeba przekompilować jądro z ustawieniami CONFIG_HZ_1000=y oraz CONFIG_HZ=1000 (opcja "Timer frequency" w menu "Processor type and features" podczas konfiguracji w menuconfig).

Emulacja drukarki

Program opcjonalnie emuluje też drukarkę (tzn. urządzenie "P:" CIO) pozwalając przesłać dane, wysłane przez Atari na drukarkę, do wskazanego pliku (lub urządzenia), z translacją ATASCII->ASCII lub bez.

Odczyt czasu i daty

Obsługiwany jest też protokół odczytu czasu APE Time - program APETIME.COM powinien działać bez problemu. W archiwum SIO2BSD znajduje się program APETIME.SYS przeznaczone dla SpartaDOS X, umożliwiające ustawienie bieżącego czasu i daty przy starcie systemu, jeśli brak jest sprzętowego zegarka (np. R-Time 8).

Serwer plików

Od wersji 1.06 program może działać jako serwer plików dla Atari. Wykorzystuje do tego protokół DOS2DOS. Sterownik dla Atari (konkretnie dla SpartaDOS X 4.4) jest dostępny w dystrybucji SpartaDOS X od wersji 4.43 (w Toolkicie) w katalogu >DRIVERS>PCLINK.

Inne

Dodatkowo program uruchomiony jako mkatr, potrafi tworzyć pliki ATR o zadanych parametrach.

Sposób wywołania programu:

mkatr [opcje] filename.atr

Za pomocą opcji -d można podać typowy rozmiar obrazu:

  • 90k lub ss/sd,
  • 130k lub ss/ed,
  • 180k lub ss/dd,
  • 360k lub ds/dd,
  • 720k lub ds/qd,
  • 1440k lub ds/hd,
  • 16m,
  • 32m,

natomiast opcjami:

  • -t tracks,
  • -s sectors_per_track,
  • -h heads,
  • -b bytes_per_sector

zdefiniować konkretną geometrię dysku dla tworzonego obrazu przez podanie odpowiednio ilości ścieżek na stronę (-t), ilości sektorów na ścieżce (-s), ilości głowic (stron dysku -h), ilości bajtów w sektorze (-b).

Opcja -f pozwala na utworzenie obrazu z 256-bajtowymi sektorami, gdzie sektory 1..3 mają pełny rozmiar (a nie 128 bajtów, jak jest domyślnie).

Predefiniowane gęstości i odpowiednie parametry geometrii dysku:

-d -t -s -h -b
90k lub ss/sd 40 18 1 128
130k lub ss/ed 40 26 1 128
180k lub ss/dd 40 18 1 256
360k lub ds/dd 40 18 2 256
720k lub ds/qd 80 18 2 256
1440k lub ds/hd 80 36 2 256
16m 1 65534 1 256
32m 1 65534 1 512

Instalacja

Po rozpakowaniu programu w ustronnym miejscu należy wykonać cd do katalogu z rozpakowanymi plikami, a następnie wydać komendę gmake install z poziomu konta administratora. Gotowy plik binarny zostanie wkopiowany do katalogu /usr/local/bin

Obsługa

SIO2BSD jest programem przeznaczonym do uruchomienia z konsoli. Parametry pracy użytkownik przekazuje w linii poleceń, np.

sio2bsd siala.atr baba.atr mak.atr

spowoduje przypisanie podanych plików ATR do napędów D1-D3. Gdy zachodzi potrzeba pominięcia napędu, należy zamiast nazwy pliku ATR podać znak "-" (minus), np.:

sio2bsd siala.atr - baba.atr mak.atr

Teraz pierwszy plik zostanie przypisany do D1, dwa ostatnie do D3 i D4, a D2 pozostanie wolne.

Żeby uaktywnić serwer plików, należy mu podać specyfikację katalogu:

sio2bsd siala.atr baba.atr mak

W tym przykładzie pliki ATR zostaną, jak wyżej, przypisane do D1 i D2, natomiast katalog mak - do pierwszego urządzenia plikowego (pod SpartaDOS X będzie to "PCL1:").

Ponadto dostępne są następujące opcje:

  • -l - włącza dodatkowe komunikaty wyświetlane na konsoli (przydatne przy debugowaniu programu)
  • -s nazwa - podaje nazwę pliku portu szeregowego inną niż domyślna (np. /dev/ttyS0)
  • -b n - ustawia prędkość transmisji na 19200*n. Dopuszczalne wartości 'n': 1, 2, 3, 4 (tylko FreeBSD), 6. Wartość 0 pozwala na dokładniejsze ustawienie prędkości transmisji za pomocą przełącznika -i, -q oraz -c.
  • -p nazwa - podaje nazwę pliku, do którego mają zostać przekierowane dane zapisywane przez Atari na drukarkę
  • -t - włącza translację ATASCII->ASCII dla drukarki
  • -u - serwer plików będzie "widział" tylko pliki z nazwami zapisanymi dużymi literami (od ang. uppercase)

Poniższe opcje pozwalają na ustawienie prędkości transmisji zgodnie z ustawieniami POKEY-a:

  • -i n - ustawia HS Index na wartość 'n'. Uaktywnienie tej opcji wymaga też podania "-b 0"
  • -q hz - częstotliwość zegara wejściowego do obliczenia szybkości transmisji. Dopuszczalne wartości:
    • pal - wybiera 1773447 Hz
    • ntsc - wybiera 1789790 Hz
    • ntscf - wybiera 1789772.5 Hz

Brak opcji -q powoduje przyjęcie uśrednionej częstotliwości PAL i NTSC stosowanej w maszynach z układem FREDDIE, czyli 1781610 Hz. Można też podać konkretną częstotliwość taktowania układu POKEY np. -q 1789772.5.

F = q / (2 * (n + c))

gdzie F to prędkość transmisji wyrażona w bitach/s, q to częstotliwość taktowania POKEY-a, n to wartość dzielnika częstotliwości tzw. HS Index a c to właśnie stała const.

Domyślnie ustalona jest ona na 7.1861, co pozwala na bezproblemową komunikację z n=0. Dokumentacja firmy ATARI ustala c=7, co pozwala na poprawne obliczenie prędkości transmisji dla większości wartości n. Odchylenia od zakładanej prędkości związane są z obciążeniem i ilością urządzeń na magistrali SIO, oraz obecnością dodatkowych elementów pojemnościowych w niektórych modelach Atari.

Download

Personal tools