Trochę odkopuję temat, bo właśnie uruchomiłem swoje pierwsze od lat małe Atari i potrzebowałem na szybko wykombinować coś do wgrywania programów (no dobra, gier i demek).
Złożyłem więc SIO2Arduino... i zaczęły się schody - to się nie kompiluje w nowym Arduino IDE. Pomijam już fakt, całkowitej przebudowy biblioteki FatSD dostępnej w repozytorium, bo akurat miałem wersję zgodną z sio2ard, ale sam kod jest napisany pod Arduino IDE 1.0 i brakuje w nim deklaracji używanych funkcji. Aby więc ułatwić potencjalnym zainteresowanym uruchomienie tego cudu techniki załączam poprawione źródła i właściwą wersję biblioteki FatSD.
Kolejna uwaga - przycisk SELECT, wbrew opisowi jest aktywny w stanie niskim, zatem ma zwierać do masy (i nie trzeba go podciągać rezystorem do plusa, bo w ATMedze jest wewnętrzny pull-up).
Swoją wersję wykonałem na Arduino Pro Mini, a właściwie na jego chińskim klonie, płytce z gniazdem SD i konwerterze poziomów logicznych 3.3V-5V (bardzo często się o nim zapomina, a karty SD "nie lubią" 5V na liniach SPI). Całość zmieściła się w obudowie KM57. Kabel z wtykiem SIO pozyskałem ze zdezolowanego magnetofonu XC12, który dostałem od kolegi. Prawdę powiedziawszy nawet nie sprawdziłem czy działał (nie mam kaset), ale poza brakiem klapki wyglądał na kompletny, nawet paski były całe, był za to paskudnie pożółkły i miał dołożoną jakąś płytkę z UL1111 i UCY74LS00.
Tak się to prezentuje:
Teraz krótko o obsłudze - SIO2Arduino wykorzystuje loader z projektu SDrive ale z pewnymi ograniczeniami. Obsadzić można do 4 stacji (D1 do D4), ale działa tylko D1:, można natomiast przekładać obrazy dyskietek przy pomocy sprzętowego przycisku. Jeśli przypisze się obrazy do D1 i D2, to po naciśnięciu przycisku w D1 wyląduje obraz ze "stacji" D2, kolejne naciśnięcie przywróci pierwotny układ. Niestety nie działa też wyświetlanie długich nazw plików ani wyszukiwanie.
Po obsadzeniu wirtualnych stacji obrazami dyskietek, trzeba wykonać reboot, można do tego użyć klawisza RESET lub INVERT. W przypadku gier nie korzystających z BASICa trzeba wcisnąć i przytrzymać OPTION (aż nie pokaże się kursor) po puszczeniu RESETu (w przeciwnym razie braknie pamięci i gra/demo nie uruchomi się).
Aby ponownie uruchomić loader trzeba na chwilę wyłączyć zasilanie (lub zresetować Arduino). Znów wbrew opisowi dołożony przycisk na pinie 3 nie pełni funkcji RESET (montującej obraz dysku z loaderem) lecz SELECT.