To w zasadzie nie jest cały program, tylko coś poklejone na szybko, żeby działało. Miałem potrzebę uruchomienia połączenia Atari z pecetem przez SIO2PC pod FreeBSD; a okazało się, że nie ma żadnego oprogramowania. Wobec tego napisałem własny, bardzo prosty programik, który obsługuje transmisję. Program robi to, co od niego chcę, i nie będę już nad nim dalej pracował, ale może ktoś inny będzie chciał się pobawić, tak więc udostępniam niniejszym kod źrodłowy:
http://drac030.krap.pl/sio2bsd.tar.gz
Programiszcze kompiluje się i działa pod FreeBSD (sprawdzone pod 5.4) oraz, dzięki mikeyowi, pod Linuxem. Nie ma żadnego interfejsu sterującego ani plików konfiguracyjnych. Ścieżka dostępu do portu szeregowego jest zapisana na twardo w pliku sio2bsd.h (trzeba zmienić definicję stałej SERIAL). Poza tym do pracy w szybkiej transmisji niezbędne jest odpowiednie wykalibrowanie pętli opóźniającej; opis, jak to zrobić, jest w pliku sio2bsd.c, w komentarzach. Program jak widać jest niezbyt user-friendly.
Program działa z linii komend:
#./sio2bsd disk1.atr disk2.atr disk3.atr ... disk16.atr
Jeśli żaden parametr nie jest podany, program próbuje otworzyć plik 'test.atr' i przypisać go do D1.
Program działa w standardzie 19200, oraz ma 4 tryby turbo, z których można wybrać jeden w czasie kompilacji. Można też nie wybierać żadnego. Służą do tego flagi, które się wpisuje do Makefile:
1) bez flag - tylko standard 19200
2) -DXF551 - tryb XF551, 38400 bps. Ten tryb działa bardzo niestabilnie, w zasadzie tylko odczyt.
3) -DULTRA38400 - tryb UltraSpeed, 38400 bps. Działa dobrze (zapis/odczyt) pod SpartaDOS 3.2, moim OS-em dla 65c816, oraz QMEG-iem (jak twierdzi mikey).
4) -DULTRA57600 - tryb UltraSpeed, 57600 bps. Działa dobrze j/w oprócz SpartaDOS 3.2. Nie wiem w sumie, dlaczego pod SD 3.2 nie chodzi, ale nie chciało mi się w tym grzebać.
Pod SpartaDOS X jest oczywiście ten problem, że SIO tego DOS-u, mimo że pracuje w trybie Ultra, to ustawia zawsze na sztywno 52 kbps zamiast zapytać się stacji. Powiedziałbym, że jest to jedna z największych wad tego DOS-u. W takim układzie oczywiście Ultra nie będzie chodzić. Posiadacze QMEG-a oraz DracOS-a oraz SpartaDOS X 4.22 mogą oczywiście załadować sterownik SIO, który korzysta z SIO systemu operacyjnego. Wtedy powinno pójść gładko.
? HEX$(6670358)