Temat: TOSSTer czyli programowalny przełącznik 4 TOS dla Atari STe
Hej!
MatGuru nie ma tu konta, a skoro też jestem w to lekko zaangażowany, to wklejam info od siebie.
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 :)
Od siebie mogę TOSSTERa gorąco polecić. Kawał dobrej inżynierii!
Instalacja prosta, jak tylko ktoś potrafi przylutować kabelek (mi to zajęło tylko jeden wieczór ;p), ale MatGuru wspominał coś o możliwej opcji z klipsem, żeby zaczepiać się o ten rezystor bez konieczności lutowania, więc wtedy to całkiem solderless lajcik.
Za flaszery odpowiadam ja, więc jakieś uwagi proszę zgłaszać jaki issue na githubie. Na razie kompiluje się na Windowsie, ale przy odrobinie samozaparcia można zrobić wersję na lin/mac trzeba tylko zrobić skrypt dla linkera, bo flaszer ma wbudowany obraz programu dla ST, który na Windowsie jest po prostu jako zasób. Albo można napisać prosty skrypt w pythonie czy czymkolwiek bo wszystko co program robi to zastępuje łatwo zauważalny ciąg 256k znaków na obraz TOSa oraz następne 32 bajty na opis.