Podczas pewnej pogawędki na discord zostałem wkręcony w projekt wykonania przełącznika TOS do STe programowalnego z poziomu Atari.
Projekt udało się doprowadzić do końca. Urządzenie jest bardzo kompaktowe, po zamontowaniu, ponad nim do stacji jest prawie 1cm luzu, praktycznie nie wystaje też poza podstawki po eprom z TOS.
Przełącznik posiada 4 sloty po 256kb każdy, aktywny slot jest sygnalizowany za pomocą buzzera w sposób binarny :), czyli 2 tony niskie oznaczają slot0, wysoki i niski slot1, niski i wysoki slot2, 2 wysokie slot3.
Montaż urządzenia polega na wyjęciu kości eprom z TOS i zainstalowaniu w nich TOSSTer'a. Dodatkowo do prawidłowej pracy zaleca się podłączenie przewodu od przycisku RESET (rezystor R100 na mojej płycie). Na przełączniku jest zamontowany golpin pozwalający podłączyć w/w przewód.
Jest możliwa praca urządzenia bez tego przewodu, ale wtedy po włączeniu oraz przełączeniu TOS (jest to możliwe programowo z poziomu Atari) po sygnale z buzzera konieczne będzie naciśnięcie RESET żeby układ prawidłowo się uruchomił.
Podłączenie RESET do TOSSTer'a eliminuje tą niedogodność dodatkowo pozwalając na przełączanie TOS poprzez naciśnięcie i przytrzymanie przycisku RESET dłużej niż około 3s, wtedy buzzer zacznie cyklicznie odliczać kolejne TOS, puszczenie przycisku po usłyszeniu żądanego TOS (numeru slotu) spowoduje restart i uruchomienie Atari z wybranym TOS.
Dodatkowo ostatnio wybrany TOS (slot) zapisywany jest w pamięci flash i przy kolejnym włączeniu Atari jest ładowany.
TOS'y są przechowywane w szeregowej pamięci flash, która służy również do przechowywania konfiguracji układu FPGA (co dodatkowo umożliwia w przyszłości upgrade tej konfiguracji, czyli wgrywanie nowego firmware), podczas włączenia/przełączenia slotu, TOS z szeregowego flash jest ładowany do równoległej pamięci SRAM a następnie ta pamięć jest "podstawiana" do Atari jako TOS ROM i wykonywany jest reset (jeżeli jest przewód do automatycznie, jeżeli go nie ma to należy go wykonać ręcznie).
Oprogramowanie do flashowania slotów i firmware wykonał laoo/ng.
Zrobił to w ekspresowym tempie i na dodatek bez fizycznego kontaktu z urządzaniem, tylko na podstawie dokumentacji.
Zanim Inpost dowiózł mu paczkę z TOSSTer'em ja już programowałem swój egzemplarz :)
Magia. Wielki szacun.
Źródła znajdują się tutaj: https://github.com/laoo/TossterCommander
Na PC uruchamiamy TossTosser.exe gdzie jako parametry podajemy obraz TOS (256kb) który chcemy sflashować oraz nazwę pliku wyjściowego.
Wygenerowany plik .tos zawiera w sobie flasher oraz obraz TOSu. Po uruchomieniu go na Atari flasher pyta do którego soltu chcemy wgrać nasz obraz. Wyboru dokonujemy cyframi od 1-4 co odpowiada slotom od 0-3.
Dodatkowo flasher wyświetla co aktualnie znajduje się w każdym ze slotów.
Obecnie projektuję wersję płytki do ST z 6 podstawkami pod TOS, będzie też ona dostosowywane do pozostałych płyt ST.
Gdyby ktoś był zainteresowany przełącznikiem to proszę o kontakt, uwzględnię to przy kolejnym zamawianiu PCB.
Poniżej wrzucam kilka zdjęć, oprogramowanie TossToser.exe oraz dwa gotowe emutos do przetestowania w językach czeskim i greckim :)