Witajcie!
Dzięki uprzejmości naszego szanownego kolegi XXL-a stałem się posiadaczem cartridge-a dla systemu Blizzard "BIG 2.0 by KNS Corporation". Zgodnie z tradycją postanowiłem się z wami podzielić jego zawartością :) Na początek wygląd zewnętrzny i wewnętrzny wspominanego carta:
Góra obudowy wraz z naklejką:
Góra płytki drukowanej (PCB) wraz z elementami:
Spód PCB:
Cartridge składa się z 32 kilo-bajtowej pamięci EPROM, oraz logiki zapewniającej możliwość odłączenia tego cartridge poprzez dowolne odwołanie do obszaru $D500-$D5FF. Tak naprawdę, są to cztery 8 kilo-bajtowe cartridge upchnięte w jednej 32 kilo-bajtowej pamięci. Do wyboru zawartości którą chcemy uruchomić służą dwa przełączniki. W pamięci EPROM znalazły się cztery następujące obrazy:
1) Turbo DOS (wygląda to na modyfikację DOS 6.x Stefana Dorndorfa)
2) gra River Raid (opis na naklejce sugeruje iż umieszczono ją na cartridge jako test joysticka ;] )
3) Blizzard Super Cartridge 4.0
4) Blizzard Turbo 2.8
Zainteresowani mogą pobrać zawartość pamięci EPROM stąd. Dla chętnych którzy chcą się podjąć testowania zawartości pod emulatorem lub zbudowania sobie prostego pojedynczego 8K carta polecam zawartość tego archiwum. Znajdują się w nim cztery 8K pliki .rom które można uruchomić pod emulatorem Atari800 lub Atari800Win. Gdy emulator zapyta o typ cartridge, należy wybrać "Phoenix 8KB cartridge". Tych samych plików można użyć do zaprogramowania pamięci EPROM typu 27C64 aby potem z niej wykonać sobie prosty 8K cartridge.
Dla tych którzy jednak nie mają ochoty/umiejętności aby wykonywać sobie carta a mają magnetofony obsługujące blizzarda i chcieli by się pobawić software, który jest zawarty na cartridge przygotowałem mini niespodziankę :) Po zaciągnięciu i uruchomieniu tego pliku (usunięto link, ponieważ plik nie działał poprawnie, więcej informacji w poście #11 tego wątku), macie możliwość uruchomienia software umieszczonego na tym cartridge bez jego posiadania. Program jest po prostu "loaderem i uruchamiaczem" tego co znajdowało się w pamięci EPROM cartridge-a Big 2.0. Można powiedzieć iż jest to mini emulator symulujący zachowanie się elektroniki znajdującej się w cartridge. Po wyborze dokonanym przez użytkownika program przepisuje dane w odpowiedni obszar pamięci i dokonuje procedury uruchomienia cartridge. A wspominany program wygląda tak:
Obsługa programu jest bardzo prosta. Klawiszami 1-4 dokonujemy wyboru, który z obrazów chcemy uruchomić. Klawisz ESC powoduje WarmStart. Należy pamiętać iż po wciśnięciu 1-4 zawartość cartridge zostanie uruchomiona tak jak by to miało miejsce po włączeniu komputera. Tak wiec jeżeli chcemy wyłączyć BASIC warto przytrzymać klawisz OPTION w momencie kiedy program uruchamia obraz danego cartridge. W przeciwnym wypadku np. Blizzard Cartridge 4.0 będzie zakładam iż BASIC ma pozostać włączony :) I jeszcze jedna uwaga do Turbo DOS-a... podczas startu sprawdza on czy wciśnięto START lub SELECT jeżeli tak to umieszcza on procedurę szybkiej transmisji dla TOP DRIVE w lokacji $600 lub $100.
Dla dociekliwych i tych wytrwałych którzy dotrwali do tego miejsca, dołączam jeszcze schemat cartridge który udało mi się przerysować:
wersja PDF: schemat w formacie wektorowym PDF
wersja PNG: schemat w formacie wektorowym PNG
Jak widać ze schematu jest to praktycznie typowy 8KB cartridge z możliwością odłączenia go poprzez dowolne odwołanie do lokacji $D5xx. Wykorzystano jednak 32KB pamięć EPROM. Sygnały A0-A12 podpięte do pamięci EPROM zapewniają adresowanie 8KB widocznych w przestrzeni $A000-$BFFF. Wybór banku 8KB zapewniają przełączniki SW1, SW2 - a to wiąże się z wyborem 1 z 4 dostępnych banków, a co za tym idzie jednego z 4 umieszczonych w pamięci EPROM obrazów (Turbo DOS, River Raid, Blizzard 4.0, Blizzard 2.8). Przełącznik SW3 umożliwia ponowne włączenie cartridge bez wyłączenia komputera.
Przerzutnik RS zbudowany z bramek U2A, U2D umożliwia odłączenie cartridge poprzez dowolne odwołanie do lokacji $D5xx. Rezystor R4 zapewnia podciągnięcie wyjścia bramki U2D do +5V (ponieważ autor zastosował bramki NAND typu OpenCollector) i poprawne wysterowanie tranzystora Q1, który steruje sygnałem RD5 sygnalizującym obecność cartridge w gnieździe. Kondensator C3 służy do filtracji zasilania i wpięty jest w pobliżu układu U2. Elementy R3 i C2 tworzą prosty układ czasowy zapewniający ustawienie przerzutnika RS w stan aktywny po włączeniu zasilana.
Jednak ten cartridge kryje w sobie pewną ciekawostkę... Na początku dziwiło mnie zastosowanie bramek NAND typu OpenCollector i zastosowanie tylko jednego rezystora typu Pull-UP (R4). Jednak po dalszej analizie chyba możemy się domyśleć do czego dążył autor takiego a nie innego rozwiązania.
Gdy spojrzymy na bramki U2B i U2C widzimy dość zaskakujący układ :) W momencie gdy nastąpi dowolny odczyt z pod adresów $D500-$D5FF na wyjściu bramki U2C pojawi się zero logiczne, tym samym linia D6 magistrali danych przyjmie stan logiczny zero. W praktyce sprowadzi się to do tego iż odczyt z pod dowolnej komórki z przedziału adresowego $D500-$D5FF da wartość z zawsze wyzerowanym bitem D6. Stan pozostałych bitów D0-D5 oraz D7 będzie nieustalony. Co autor takiego rozwiązania miał na myśli? Szczerze mówiąc nie wiem... na początku przypuszczałem iż jest to swego rodzaju zabezpieczenie sprzętowe... np. inni kopiujący zawartość pamięci EPROM tego cartridge nie spodziewali się iż dołożono taką ciekawostkę i że potem software sprawdzał takie a nie inne zachowanie się cartridge. Jeżeli nie wykryto by ze linia D6 jest zawsze zerem przy odczycie dowolnej lokacji z przedziału $D5xx to software mógł robić jakieś nieprzewidywalne rzeczy... jednak po odpaleniu na emulatorze obrazów zrzuconych z pamięci EPROM nie zauważyłem jakiegoś niepoprawnego działania. Przypuszczam więc iż albo zastosowanie czegoś takiego było spowodowane albo możliwością wykrycia obecności takiego cartridge w gnieździe albo było to rozwiązanie przygotowane na przyszłość jego swego rodzaju zabezpieczenie lub możliwość identyfikacji cartridge danego typu.
To wszystko moje domysły i być może się mylę, ale tak mi podpowiadał rozsądek... a może ktoś z was wie lub spotkał się z podobnym rozwiązaniem?
Na koniec oczywiście WIELKIE DZIĘKI dla kolegi XXL-a za podarunek w postaci tego Carta :) Bez tego na pewno nie udałoby się dokonać analizy i dump-a tego carta :D A więc po raz kolejny WIELKIE DZIĘKI XXL! :D
pozdrawiam
Seban