Cartridge

Cartridge to najczęściej małe plastikowe pudełko wyposażone w łącze, które można po prostu „wcisnąć" w komputer. Po takim zabiegu nasz znajomy komputer zaczyna sie zachowywać zupełnie obco, lub przynajmniej nabiera nowych cech, o które go do tej pory zupełnie nie podejrzewaliśmy. Nie trzeba dodawać, że sa to zmiany na lepsze.

W takim razie, co to jest?

Odpowiedź jest prosta. Cartridge, to po prostu dodatkowa pamięć (najczęściej jest to EPROM 2732, 2764 lub 27128) zawierająca nowy program dla komputera, lub rozszerzenia językowe (np. BASIC-a). Tutaj powinien nastąpić sprzeciw tych, którzy czytali poprzednie odcinki cyklu „PODSTAWY". Jak to dodatkowa pamięć? Przecież większość komputerów posiada już całą pamięć, jaką może „obsłużyć" mikroprocesor.

Najłatwiej zrozumieć sposób instalacji cartridge'a w komputerach, w których przestrzeni adresowej pozostawione są „dziury" w adresacji. Cartridge po prostu wypełnia sobą te „puste” adresy, uzupełniając w ten sposób oprogramowanie podstawowe komputera (rys. 1). Są to przeważnie komputery szesnastobitowe o szerokiej magistrali adresowej (20 bitów lub więcej). Taki sposób jest zastosowany np. w komputerach Sinclair QL i w komputerach klasy IBM-PC. W tych ostatnich jako cartridge można traktować każdą dodatkową kartę rozszerzającą, wkładaną w jedno z kilku miejsc przygotowanych do tego celu.

W komputerach ośmiobitowych, rzecz jest trochę bardziej skomplikowana, nie ma miejsca na dodatkową pamięć. Omówię tu dwie metody, które mogą mieć zastosowanie.

Oprócz przestrzeni adresowej przeznaczonej na pamięć komputera niektóre procesory (INTEL, ZILOG) posiadają drugą, przeznaczoną na urządzenia wejścia/wyjścia. Nie może być ona wykorzystana jako przestrzeń dla pamięci programu, ale można zastosować mechanizm przepisywania zawartości ‚cartridge’a do obszaru normalnej pamięci (RAM) komputera, gdy zostanie stwierdzone, że jest on wetknięty do komputera. Sprawdzenie takie odbywa się najczęściej zaraz po włączeniu komputera do sieci poprzez odczytanie konkretnej komórki pamięci, a w tym przypadku konkretnego „Portu wej/wyj”. Jeżeli cartridge jest na swoim miejscu można uruchomić procedurę przepisującą jego zawartość do pamięci RAM. Taki sposób odczytywania cartridgea powoduje, że nawet gdyby się go nam udało wetknąć w działający już komputer bez spowodowania uszkodzenia, to i tak dodatkowe funkcje nie będą obecne bo komputer nawet nie będzie o tym wiedział.

Cartridge do Commodore 64. W celu zabezpieczenia przed kopiowaniem nie zastosowano typowego EPROM-u a układ scalony napylony jest bezpośrednio na płytkę.

 

O wiele bardziej popularna metoda to wbudowanie w komputer mechanizmu, który umożliwi „wycięcie” kawałka istniejącej pamięci komputera i w tak stworzoną lukę umieści tę dodatkową pamięć z modułu. Metoda ta jest bardzo prosta (przez co i tania), nie rezerwuje żadnych zasobów komputera (np. konkretnych portów wej/wyj) do wyłącznych celów obsługi cartridge’y i, co może najważniejsze, umożliwia podmienianie również pamięci stałej (ROM) komputera. Ta ostatnia możliwość daje szansę, aby komputer po włączeniu zgłosił się innym językiem programowania.

Taki cartridge jest bardzo prostym urządzeniem. Koszt jego wykonania we własnym zakresie nie przekracza zwykle ceny prostych interface’ów. Decydująca jest w tym przypadku cena pamięci EPROM rzędu 4—8 tys. zł.

Teraz bliżej o budowie samego cartridge’a i o jego dziwnych właściwościach usuwania sobie z drogi „niepotrzebnych” obszarów pamięci

Pamięci komputerowe są tak zbudowane, że istnieje wybrany sygnał, który umożliwia odczyt, lub zapis wybranego bajtu. Najczęściej sygnał ten nazywa się ‚CS’ (ang ‚chip seleckt’ — wybór układu) lub ‚CE’ (ang. ‚chip enable’ — uaktywnienie układu;. Mikroprocesor adresujący konkretny bajt musi wpierw uaktywnić układ pamięci, w którym się on znajduje. Jeżeli tego nie zrobi, lub jeśli mu się w tym przeszkodzi, będzie tak, jakby tej pamięci w ogóle nie było. Jest zatem sposób, aby unieruchamiać pamięć komputera.

Komputer po włączeniu do sieci bez cartridge’a ma aktywne wszystkie „kości” pamięci. Jeżeli cartridge jest obecny, musi dezaktywować odpowiedni obszar pamięci wewnętrznej, czyli wpływać na sygnał wyboru tych układów. Musi również wtedy sam być aktywny, no i swoją adresacją odpowiadać „dziurze” którą sam stworzył

Rys. 2 ilustruje jak może być to rozwiązane. Układy pamięci wybierane są przeważnie niskim sygnałem logicznym, tzn. 0V. Cartridge musi zmienić ten sygnał na jedynkę logiczną, tzn. 5 V. Realizuje to bramka B1 będąca integralną częścią komputera. Tak naprawdę, to jest to cały mechanizm umożliwiający podłączanie cartridge’y. Niewiele to i tanio. Prawda? Gdy cartridge nie jest podłączony, wyjście B1 jest w stanie niskim, aktywując pamięć M1. Gdy cartridge jest na swoim miejscu, wejście 2 bramki B1 jest wtedy zwarte do masy, a wyjście w stanie jeden, czyli Ml jest nieaktywne. Pierwsza część zdania wykonana. Drugim układem scalonym w cartridge’a jest najczęściej dekoder (komparator) adresu. Pamięć modułu dodatkowego jest zazwyczaj niewielka 4kB, 8kB rzadko 16kB. Do jego zaadresowania wystarczy odpowiednio 12, 13 lub 14 dolnych bitów adresowych. Pozostałe, górne bity służą do odpowiedniego umiejscowienia go w przestrzeni adresowej komputera, tzn. wpasowania w utworzoną „dziurę”. Do tego celu służy właśnie dekoder komparator. Gdy górne bity adresowe komputera będą miały określony stan wyjście dekodera/komparatora cartridge’a przyjmie wartość zero, uruchamiając tym samym pamięć M4 modułu.

Dwa układy scalone, jakiś rezystor, kilka kondensatorów w odpowiednich miejscach by tłumić przypadkowe przepięcia i to jest cały cartridge. Oczywiście wszystko można komplikować. Wyobraźmy sobie, że mamy wpływ na sygnał S1, możemy go dowolnie ustawiać. Oznacza to, że możemy odłączać i dołączać moduł w czasie pracy komputera przy pomocy odpowiednich procedur programowych, czyli korzystać zarówno z nowych funkcji jak i z odłączonych zasobów komputera. Prawda, że nie w tym samym momencie, no ale można się z tym jakoś pogodzić, przecież zyskujemy o wiele więcej.

Pozostaje jeszcze jeden problem. .Co jest w pamięci cartridge’a? Możemy sami napisać odpowiednie procedury i zaprogramować EPROM. Trzeba to robić zgodnie z wymaganiami dla danego komputera, podanymi w odpowiedniej dokumentacji, bardziej już profesjonalnej, ale przeważnie ogólnie dostępnej. Można również przekopiować cartridge fabryczny, ale to już nie jest zupełnie legalne.

Krzysztof Czernek