Przyszła pora na Telesfora...
...a tak naprawdę na obiecaną kontynuację tematu magnetofonu z Blizzardem o którym pisałem wyżej, a dokładnej chodzi o cartridge dołączony do tegoż magnetofonu:
Z zewnątrz cart nie prezentuje się jakoś odmiennie od reszty kartów prezentowanych w tym wątku. Na tylnej krawędzi posiada dwa przełączniki umożliwiające wybór typu cartridge (jeden przełącza tryb pracy pomiędzy 16KB a 8KB), z drugi z przełączników umożliwia wybór jednego z dwóch 8-kilobajtowych banków. A także przycisk RESET umożliwiających ponowne uruchomienie cartridge bez potrzeby wyłączania komputera.
Cart ów zawiera kompilację oprogramowania dla systemu blizzard, dokładnie 3 cartów istniejących już wcześniej na rynku, a na jego zawartość składają się:
1) cartridge Phoenix 1.0 opracowany przez Hurka:
2) cartridge zawierający zestaw programów nazwany "Turbo Blizzrard":
3) cartridge zawierający zestaw programów nazwany "Blizzrard Cartridge":
Jak widać na powyższych screen-ach jest to "piracka" kompilacja, z podmienionymi napisami. Niejaki "SHOGUN", gdzie mógł i potrafił podmienił informacje o autorach/pochodzeniu oryginalnego softu, zastępując je swoim pseudonimem. Zmiany te zostały poczynione również w loaderach, KOS-ie czy poszczególnych programach.
Zajrzymy zatem do środka owego "stwora":
Płytka drukowana, widok od góry:
Płytka drukowana, widok od dołu:
Niestety zapomniałem zrobić zdjęć w oryginalnej postaci carta którą zastałem, a o tym fakcie przypomniałem sobie, gdy już zacząłem poprawiać płytkę carta (biały kynar i kawałek taśmy kaptonowej to już moja ingerencja w płytkę), zatem widzicie stan po kliku poprawkach. Po otwarciu wszystkie dodatkowe połączenia były wykonane za pomocą nieizolowanej "srebrzanki", i aż dziw bierze że nie było żadnych zwarć, bo w przypadku niektórych połączeń srebrzanka mijała inne punkty lutownicze dosłownie o ułamki milimetra. Postanowiłem zamienić wszystkie połączenia na bardziej bezpieczne. Cartridge oparty na tej płytce drukowanej gościł już w tym wątku, również był sygnowany podpisem "SHOGUN", można się temu przyjrzeć wracając do tego posta, w tym wątku: Blizzard 8K cartridge (pirated by Shogun)
Tym razem ponieważ cart jest bardziej rozbudowany (zawiera EPROM o wielkości 32kB i możliwa jest zmiana konfiguracji typu cartridge), obsadzono na PCB dwa układy scalone, i dokonano całej masy przeróbek aby dostosować jak mniemam stare PCB do pracy w nowej konfiguracji. Nie tylko dodano nowe połączenia za pomocą srebrzanki, ale również dokonano licznych cięć ścieżek na płytce drukowanej.
Cartridge może pracować w dwóch trybach:
jako cartridge o rozmiarze 16KB, zajmujący obszar $8000-$BFFF
jako cartridge o rozmiarze 8KB, zajmujący obszar $A000-$BFFF
Jeden z przełączników wybiera właśnie tryb pracy carta, tzn. 16kB lub 8kB,. Drugi z przełączników działa tylko i wyłącznie w trybie gdy wybrany jest tryb 8kB, i służy on do wyboru jednego z dwóch obrazów 8kB umieszczonych w pierwszej połowie pamięci EPROM. Także gdy cart pracuje w trybie 16kB położenie drugiego z przełączników nie ma żadnego znaczenia.
Gdy zacząłem rysować schemat tego carta i analizować jego pracę, szybko okazało się że ignorancja konstruktora sięgnęła zenitu i z niedowierzaniem analizowałem tę sytuację kilka razy, ale okazało się że gdy cart pracuje w trybie 8kB przełączenie przełącznika od wyboru 8-kilobajtowego banku powoduje zwarcie linii S4 do masy. Należy tu przypomnieć że linia S4 jest linią wyjściową z punktu widzenia Atari. W przypadku tego carta linia ta została podłączona do linii adresowej A13 pamięci EPROM. W sytuacji gdy cart pracuje w trybie 16kB, wszystko jest OK, w zależności od stanu tej linii zostaje zaadresowany odpowiedni kawałek pamięci EPROM, tak aby był on prawidłowo mapowany w obszar $8000-$9FFF lub $A000-$BFFF. Nie wiem co kierowało autorem tego rozwiązania ale wybór banku w trybie 8K jest realizowany właśnie przez przełączenie stanu linii A13 (przełącznikiem nr 2) i wszystko byłoby OK gdyby nie fakt że linia ta cały czas (mimo zmiany konf. na 8K) nadal zostaje podpięta do S4. Autor rozwiązania uznał że warcie przełącznikiem tejże linii to masy będzie wystarczające aby osiągnąć przełączenia banku. Nie sądzę by MMU w atari było w z tego powodu zadowolone.
Oczywiście nie mogłem pozwolić na pozostawienie tego w takim stanie, a ponieważ w carcie dodano drugi układ scalony (7403) i dwie bramki w nim nie były wykorzystane postanowiłem wykorzystać ten fakt i wykorzystać te bramki do bezpiecznej realizacji założonej przez autora funkcji. Oczywiście na schemacie który zamieszczam dodaję już tę modyfikację składającą się z bramek U1A, U1B oraz rezystora R1.
Dwie pozostałe bramki układu 7403 zostały wykorzystane do zbudowania układu zabezpieczającego przed klonowaniem cartów z oprogramowaniem firmy ATARES. Pirat powielił ten układ dla bezpieczeństwa. Oryginalne oprogramowanie od ATARES sprawdzało obecność tego układu i gdy nie był on obecny, loadery i procedury ładujące nie działały poprawnie. Nie wiem czy soft zawarty w tym carcie został pozbawiony zabezpieczeń tego typu, bo tego nie sprawdzałem, jednak tym razem układ został podłączony i dba o to aby bit D6 magistrali danych przy każdym odczycie z obszaru $D5xx był zawsze wyzerowany.
Po poprawkach płytka carta wygląda tak:
góra:
spód:
^^^ jak widać wszystkie połączenia wykonane srebrzanką zostały zastąpione połączeniami wykonanymi kynarem, zostały dodane kondensatory filtrujące przy układach TTL i wprowadzone poprawki związane z linią S4.
Pora zatem chyba zaprezentować już schemat carta z poprawkami o których pisałem wyżej:
^^^ Po otwarciu obrazka w nowej zakładce będzie on zaprezentowany w wyższej rozdzielczości. Jak zwykle do pobrania również wersja wektorowa (PDF): Shogun Blizzard 32K Multi Cart.
Cóż można jeszcze dodać w tym temacie? Na chwilę obecną wydaje mi się, że temat został wyczerpany, gdyby mi się coś przypomniało będę dokonywał edycji tego postu. Pozostało tylko udostępnić archiwum z zawartością pamięci EPROM tego carta: Shogun Blizzard 32K Multi Cart
co w środku archiwum?
shogun_blz32k.bin - cała zawartość pamięci EPROM (32kB)
shogun_phnx_16k.bin - wydzielona część (16kB) zawierająca obraz carta Phoenix 1.0 by Hurek
shogun_blz1_8k.bin - wydzielona część (8kB - bank #0) zawierająca obraz "Turbo Blizzard"
shogun_blz2_8k.bin - wydzielona cześć (8kB - bank #1) zawierająca obraz "Blizzard Cartridge"
Jak widać powyżej oprócz zawartości całej kostki wydzieliłem poszczególne obrazy cartów z całego obrazu, a to dlatego aby możliwe było uruchomienie tego pod emulatorem. Jako że żaden z emulatorów nie wspiera cartów tego typu (z manualnie przełączanymi wajchami i typami) poprawne uruchomienie pliku "shogun_blz32k.bin" nie jest możliwe, ale wydzielone pliki jak najbardziej można uruchomić, oczywiście w przypadku 16kB pliku wybieramy typ carta "Blizzard 16k", natomiast w przypadku plików 8kB wybieramy typ carta "Phoenix 8kB".
Na koniec jeszcze tylko hashe SHA256 plików z archiwum:
4b7dfb2f715a805f2a33ed6f0e9aedc9768c2dccf2561f3fa2065a8cb14113ac shogun_blz32k.bin
8c94594dcd7f350ba48fe90dcdc5ff194e9cc2c73c59d623137f7b30f3dfdab4 shogun_blz1_8k.bin
f978d9102cd361c737f61fa07b3c105ba8fc90dd1b4927de72e6a62cca03aa85 shogun_blz2_8k.bin
aa7a0f657cfb649d1841a84fff95a6ac5af0688b6b7e6742647040eef4618e8e shogun_phnx_16k.bin
EDIT1: nie wiem czy wydzielone pliki uruchomione pod emulatorem będą działać poprawnie, a to ze względu na to że nie mam pewności czy soft nie sprawdza obecności układu "zerującego" bit D6 w przypadku czytania z obszaru $D5xx. Wybaczcie ale nie miałem już siły, chęci ani czasu aby to dokładnie sprawdzić. Myślę że zainteresowani tematem będą w stanie to szybko zweryfikować.
EDIT2: Cart w trybie 8K tak naprawdę nadal działa jak cart 16K (linie RD4 i RD5 są zwarte, więc MMU w obszar $8000-$9FFF) zawsze mapuje zawartość "cartridge", jednak dekoder sygnału CS w przypadku pracy w trybie 8K nie generuje poprawnego sygnału CS w przypadku adresowania obszaru $8000-$9FFF, przez co w tym obszarze pojawiają się losowe śmieci (w serii XE, brak pull-up na magistrali danych). Tak naprawdę w niczym to nie przeszkadza bo cart po przepisaniu danych do niższych obszarów pamięci zostaje kompletnie odłączony. Można było to oczywiście rozwiązać, ale autor carta nie przejmował się bym, bo w niczym to nie przeszkadzało, a wymagałoby to od niego dodatkowego nakładu pracy.