SIO2BSD

From Atariki

(Różnice między wersjami)
Jump to: navigation, search
Wersja z dnia 12:04, 12 kwi 2009
KMK (Dyskusja | wkład)

← 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]].
-Obecna wersja pozwala na uzyskanie stabilnych zapisów i odczytów z prędkością 38400 bps przy zastosowaniu protokołu [[UltraSpeed]] (standardowe 19200 oczywiście również jest obsługiwane), co wypraktykowano na następującym zestawie:+== 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 * notebook Toshiba Satellite, 1200 MHz
-* konwerter COM2USB marki Prolific+* 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.
 + 
 +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 [[SpartaDOS X Toolkit|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:
 + 
 +<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 ==
 + 
 +Po rozpakowaniu programu w ustronnym miejscu należy wykonać <code>cd</code> do katalogu z rozpakowanymi plikami, a następnie wydać komendę <code>gmake install</code> z poziomu konta administratora. Gotowy plik binarny zostanie wkopiowany do katalogu <code>/usr/local/bin</code>
 + 
 +== 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#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.
-Uwaga: jeśli sa problemy ze stabilnością transmisji, to (pomijając przekalibrowanie programu) pomóc może podniesienie częstotliwości głównego zegara schedulera FreeBSD (kern_hz, u autora ma wartość 1600 Hz).+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.
-Dodatkowo program, uruchomiony jako ''mkatr'', potrafi tworzyć pliki ATR o zadanych parametrach (w tym też w gęstości [[DD 512]]).+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]]

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