Dziś na warsztacie kolejny cart z serii "Blizzard", tym razem to cartridge "dwa w jednym", nazwany przez wykonawcę "Blizzard II", zapewne jest to jakiś klon lub giełdowy pirat, wskazują na to usunięte wszystkie informacje o firmie KNS, o której informacji znajdowały się w innych wersjach tego samego oprogramowania. Cartridge tak naprawdę zawiera w sobie dwa zestawy oprogramowania, wyboru oprogramowania które zostanie uruchomione dokonuje się przełącznikiem umieszczonym na obudowie cartridge-a.

Tak naprawdę catridge zawiera w swojej pamięci EPROM dwa niezależne cartridge, jeden zawiera starszy zestaw oprogramowania, czyli:
Tubro KOS
Micro Loader 2.2
Tubro Blizzard Copy
Tape Test


Skoro już dotarłem do prezentacji screen-shotów, to pozwolę sobie na małą dygresję i w związku z jednym ze screenshot-ów należą się dwa słowa wyjaśnienia... robiłem je używając emulatora Altirra w wersji 3.10 ... w tej wersji została dodana eksperymentalna obsługa systemów Turbo dla magnetofonu... sprawdziłem że emulacja działa bez problemu dla systemów z serii Turbo 2000(F) w różnych wersjach... wszystkie systemy które do odmierzania czasu impulsów używają procesora wydają się działać poprawnie.. jednak w przypadku Turbo Blizzard jest inaczej, ten system używa liczników zawartych w układzie POKEY do odmierzenia czasu i pomiaru długości impulsów... niestety pod emulatorem Altirra oprogramowanie systemu Blizzard nie działa poprawnie... a dlaczego nie działa poprawnie widać dokładnie na ostatnim zrzucie ekranu (z programu Tape Test) ... wychodzi na to że emulacja timerów POKEY-a lub czegoś z nimi związanego mocno szwankuje, sygnał pokazywany przez "Tape Test" ukazuje bardzo małą dokładność pomiaru, sygnał jest postrzępiony i niejednokrotnie przekracza wyznaczone granice dla poszczególnych długości impulsów (0,1 oraz SYNC). Oczywiście ten sam test uruchomiony na realnym sprzęcie daje bardzo spójne i precyzyjne odczyty. Wniosek... na chwilę obecną pod emulatorem Altirra 3.10 system Turbo Blizzard nie jest poprawnie obsługiwany.
Wracając do głównego tematu... drugi zestaw oprogramowania zawiera:
Tubro KOS 2.0
Micro Loader 2.7
Short KOS 1.0
Looking


Z tego zestawu programów również usunięto wszystkie informacje o autorstwie czy pochodzeniu programów (miejsca w których prawdopodobnie znajdowały się takie informacje zostały wypełnione spacjami). Wersję z informacjami o autorach/firmie jednego z sub-cartów umieszczonego w tym zestawie możemy znaleźć w tym poście o carcie: Turbo Blizzard. Jak widać w tamtej wersji widniały informacje o firmie KNS. A autor tego klona usunął informacje o autorach nawet z programu kopiującego. Wygląda na to że taka była rzeczywistość tamtych czasów... ale, ale... nie ma co dywagować, więc przechodząc już do konkretów:
1) Zawartość pamięci EPROM:
Blizzard2.bin.7z - obraz całego cartridge
Blizzard2_cart1.bin.7z - wyekstrahowany obraz zawierający oprogramowanie "Blizzard Cartridge"
Blizzard2_cart1.bin.7z - wyekstrahowany obraz zawierający oprogramowanie "Turbo Blizzard".
MD5 : adc47ce3c46d9c97ed4f3ab8c733c055
SHA256: 2faa7671b7a827b3027a22293cd9439f85a9de9fef1b1b053b05348fbf7429aa
blizzard2_cart1.bin:
MD5 : c6f1f0c5d9b1ec197c9af9f02e044454
SHA256: ecce531f1463651f96e2361b5a67a831ff3b7d814c5028cc29394e9e9c4c2516
blizzard2_cart2.bin:
MD5 : 0920fce3b154368b4e5fcacb9ccda841
SHA256: 47d7c9a6f3f60e116b1f26cd014bb60af6fca4d6ecdebccf76e0d8deccd9a4ee
2) wersja XEX dająca się uruchomić spod DOS-a lub dowolnego loadera plików binarnych: Blizzard2.xex.zip
Jak już wspominałem wcześniej, ten cart to tak naprawdę dwa niezależne karty, a wyporu uruchamianego "obrazu" dokonuje się w rzeczywistości przełącznikiem... robiąc wersję XEX należało zapewnić również możliwość wyboru uruchamianego softwareu, dodałem proste menu pozwalające taki wybór uczynić:

Wyboru dokonujemy klawiszem SELECT, a zatwierdzamy go klawiszem START. W przypadku oprogramowania z pozycji #1 menu, czyli "Blizzard II", jeżeli chcemy wyłączyć BASIC należy wraz z klawiszem START przytrzymać klawisz OPTION. To nie mój wymysł, lecz autorów oprogramowania :) klawisz OPTION jest sprawdzany przy starcie obrazu cartridge i na tej podstawie podejmowana jest decyzja czy BASIC zostanie włączony (dzieje się to niezależnie od systemu operacyjnego)
3) Schemat: wektor (PDF), raster color (PNG), raster grayscale (PNG).
Jest to standardowa konstrukcja tego typu carta, mapowany jest w obszarze $A000-$BFFF, z możliwością programowego odłączenia przez dowolne odwołanie (odczyt/zapis) do dowolnej komórki z przedziału $D500-$D5FF. Układ odłączenia zrealizowano na prostym przerzutniku RS, zbudowanym z bramek NAND. Dowolne odwołanie do $D5xx powoduje aktywność sygnały ~CCTL, a co za tym idzie wyzerowanie przerzutnika i ustawienie sygnału RD5 w stan 0, co przez system i sprzęt jest postrzegane jako odłączenie cartridge. Ponowne włączenie może nastąpić gdy użytkownik wciśnie przycisk RESET umieszczony w cartridge.
Cartridge zawiera przełącznik umożliwiający zmianę staniu linii A13, a co za tym idzie wybór jednej z połówek pamięci EPROM widocznej w obszarze $A000-$BFFF, co skutkuje wyborem jednego z dwóch 8KB obszarów mapowanych w przestrzeni adresowej Atari (Pamięć EPROM ma pojemność 16KB).
Dodatkowo w cartridge zawarto sprzętowy "układ zabezpieczenia antypirackiego". identyczny z tym umieszczonym w BIG 2.0 by KNS - Blizzard Cartridge. Przejrzałem kod obu zestawów oprogramowania i nie znalazłem fragmentów kodu sprawdzających to "zabezpieczanie". Zrobiłem to jednak dość pobieżnie nie przykładając się zbytnio... potem uruchomiłem kod na emulatorze z ustawioną pułapką (breakpoint) na odczyt z obszaru $D500-$D5FF, jednak takie odwołania nie nastąpiły. Aby mieć pewność że całość działa bez owego układu (a co za tym idzie np. czy wersja XEX będzie działać poprawnie), sprawdziłem całość na realnym hardware... udało mi się wczytać różne gry z każdego z loaderów, KOS-a, i short KOS-a. Przyznam że nie testowałem zapisu, ale tą część pozostawię już osobom zainteresowanym tematem.
Co prawda zastanawia mnie sens stosowania takiego zabezpieczenia, skoro piraci/handlarze/klonerzy kopiowali również układ "zabezpieczający", ale widać robili to dla "świętego spokoju". O ile w kodzie KNS BIG 2.0, można było znaleźć fragmenty sprawdzające obecność układu "zabezpieczającego" to tutaj ich nie widać... być może "piraci" je usunęli razem z napisami, a być może ich nie było wcale. Aby mieć pewność należałoby dokładnie przejrzeć cały kod, w szczególności ten który zawiera nowszą wersję KOS-a (2.0). Należy dodać iż ten KOS 2.0 może zainstalować również RAM-dysk wykorzystujący dodatkowe banki pamięci, jak i również pamięć od OS-em czy też w przypadku użycia BASIC-a pomięć RAM pod BASIC-em.
Ponieważ oryginalny dump (ten mający rozmiar 16KB) trudno w oczywisty sposób uruchomić pod emulatorem, przygotowałem dwa oddziele obrazy pozwalające uruchomić je pod emulatorem wybierając jako typ cartridge "Phoenix 8K".
I na koniec prezentacja wyglądu owego cartridge:

płytka drukowana, góra:

płytka drukowana, spód:

EDIT: zauważyłem że na schemacie jest różnica w stosunku co do oryginalnego carta, tzn. zamiast oryginalnie zastosowanego 7403 (wyjścia open collector) oznaczyłem bramki jako 7400 (push-pull)... na szczęście w tym wypadku nie ma to większego znaczenia (układ wyprowadzeń ten sam) a w powyższej konfiguracji układ będzie działał zarówno z 7400 jak i 7403. Oczywiście "zabezpieczenie sprzętowe" też będzie działać, bo dioda 1N4148 będzie symulowała wyjście open-collector nawet w przypadku zastosowania 7400. Poprawię to oczywiście w wolnej chwili.