Cała historia zaczęła się pod koniec 1998 roku. W czasach tych Amiga była już u schyłku swojej świetności, chociaż wciąż jeszcze rzesza jej użytkowników była liczna. Niestety sprzęt amigowy coraz wyraźniej zaczynał odstawać od technologicznych standardów. Tymczasem sklepowe półki zaczęły uginać się od tanich kart PCI dla pecetów. Standard PCI liczył sobie wtedy 5 lat. Był jednakże technologią całkowicie obcą Amidze, co więcej wydawał się być o wiele bardziej złożony, niż amigowa szyna rozszerzeń Zorro III. Z drugiej strony tanie jak barszcz sieciówki, szybkie karty graficzne czy 16-bitowe karty dźwiękowe kusiły. W końcu pomyślałem, że może by jednak spróbować. Nie kto inny, a sam Albert Einstein powiedział wszak, że jeżeli coś wydaje się niemożliwe do zrobienia, to zawsze znajdzie się ktoś, kto o tej niemożliwości nie wie i to zrobi...
Z dziesięcioletniej perspektywy moje zmagania wyglądają nieco patetycznie, nie bez przyczyny, wszak projekt poległ. Stał się jednak podstawą do rozpoczęcia prac nad Prometeuszem, które, z inżynierskiego punktu widzenia, zakończyły się pełnym sukcesem. Z tego właśnie powodu, mimo że nikt nie lubi się specjalnie chwalić swoimi porażkami, postanowiłem napisać te kilka słów, zilustrowanych historycznymi już fotografiami prototypu.
Jak każdy inżynier, pracę zacząłem od czytania dokumentacji. O ile sama magistrala PCI jest precyzyjnie zdefiniowana w specyfikacji standardu, o tyle po stronie Amigi miałem kłopoty. Posiadałem wówczas Amigę 1200, planowałem więc, że mój mostek PCI będzie podłączany do złącza karty turbo, będzie przy tym przelotowy. To oczywiście implikowało przełożenie Amigi do obudowy typu „tower”. Niestety złącze rozszerzeń A1200 nie było nigdzie dokładnie opisane (w instrukcji do komputera są jedynie oznaczenia pinów). Powoli zdobywałem potrzebną wiedzę, buszując po sieci (co w epoce modemu i numeru dostępowego 0-202122 nie było ani szybkie, ani tanie), penetrując płytę „Amiga Developer CD”, czy wreszcie zdobywając na słynnym warszawskim Wolumenie instrukcję serwisową A1200 ze schematami. W końcu, gdy znałem potrzebne specyfikacje niemal na pamięć, doszedłem do wniosku, że rzecz cała jest wykonalna. Nie zdawałem sobie wówczas jeszcze sprawy z tego, jak długa będzie droga do sukcesu. Zacznijmy od tego, że nie miałem na AmiPCI prawie żadnych funduszy. Pozostawał mi do zainwestowania wolny czas i dużo cierpliwości. Z powodu zerowego prawie budżetu przyjąłem wiele upraszczających założeń. Pierwsza wersja mostka, służąca w zasadzie do zabawy z kartami PCI miała być wykonana na ukladach TTL z serii F, a wszystkie sygnały, łącznie z zegarami (!) miały być generowane programowo. Każdy, kto ma pojęcie o PCI, dojdzie do wniosku, że to nie ma prawa działać i będzie miał całkowitą rację. Za cały sprzęt pomiarowy służyły mi: stara, własnoręcznie wykonana sonda poziomów logicznych, oraz analogowy multimetr UM-207.
Pierwszym wyzwaniem, przed jakim stanąłem, było wykonanie złącza krawędziowego pasującego do złącza karty turbo w Amidze 1200. Zakup nowego złącza, jako niestandardowego, graniczył z cudem (150 pinów, rozstaw 1,27 mm). Zmasakrowanie jakiejś karty turbo byłoby lepszym pomysłem, ale albo trzebaby zdobyć uszkodzoną kartę, albo zepsuć sprawną. Pierwsze z rozwiązań było czasochłonne, drugie – za drogie. Na szczęście przyszedł mi do głowy inny pomysł. Gniazda PCI mają ten sam rozstaw i stosunkowo łatwo je pozyskać ze starych płyt komputerów PC nabytych za grosze na szrocie. Pozostała kwestia wylutowania złącz, a potem odpowiedniego przycięcia tak, aby z dwóch gniazd PCI uzyskać jedno złącze 150-pinowe. Najlepszym sposobem wylutowywania było zanurzanie w gorącej cynie. W tym celu wykonałem korytko z blachy stalowej o rozmiarach nieco większych, niż slot PCI. Za pomocą miedzianego płaskownika korytko było zaciskane na grocie lutownicy blacharskiej o mocy 500 W. Wystarczyło wypełnić je cyną, powierzchnię cyny posypywałem kalafonią i kładłem wycięty z płyty PC kawałek z gniazdem PCI. Po dwóch minutach wystarczyło delikatnie chwycić szczypcami za gniazdo i najzwyczajniej w świecie wyciągnąć je z pływającego po cynie fragmentu płytki drukowanej. Metoda okazała się nadzwyczaj skuteczna, szybka i zachowująca gniazda PCI w stanie niemalże fabrycznym. Wycięcie trzech fragmentów gniazd PCI i dopasowanie ich pilnikiem było już proste. Potrzebne były trzy fragmenty, bo oprócz uzyskania niezbędnej ilości pinów, należało w odpowiednim miejscu umieścić klucz pozycjonujący. Gotowe złącze widoczne jest na zdjęciu obok.
Płytka drukowana kątowej przelotki ze złączem została wykonana amatorską metodą fotochemiczną, z użyciem znanego środka „Positiv 20”. Po jednej stronie znajdowało się wyżej wspomniane złącze z 3 kawałków gniazd PCI. Po drugiej zaś w środek pól lutowniczych gniazda wlutowana była pod kątem prostym płytka będąca złączem dla karty turbo. Niestety nie miałem możliwości choćby posrebrzenia styków na tej płytce. Były one zwyczajnie pocynowane, co nie wpływało dodatnio na stabilność pracy Amigi po założeniu przelotki. Zaletą tej konstrukcji było utrzymanie karty turbo w tej samej osi pionowej, dzięki temu unikało się dodatkowych modyfikacji obudowy. Ze względu na złożoność głównej płytki AmiPCI, musiałem dla niej poszukać lepszej technologii. Płytka ta została zrobiona dość awangardową, jak na owe czasy, metodą frezowania. Nie było to tanie, ale bez problemu można było osiągnąć odpowiednią precyzję i metalizację otworów. Ze względu na rozmiary zdecydowałem się na użycie układów w obudowach SMD. Wszystkie użyte układy miały rozstaw nóżek 1,27 mm, co pozwalało na ręczny montaż.
Koncepcja układowa była bardzo prosta – wszystkie linie PCI (ze sterującymi i zegarem włącznie) miały być sterowane programowo, przez kilka rejestrów umieszczonych w przestrzeni adresowej Amigi, na początek na sztywno od adresu $E90000. Uczyniłem tu milczące założenie, że karty PCI zaakceptują pracę z zegarem o dowolnie niskiej częstotliwości, w dodatku zegarem nie biegnącym jednostajnie. W miarę rozwoju prac planowałem stopniowe oddanie linii zegarowych i sterujących PCI układom sprzętowym, oraz dodanie protokołu AutoConfig, pozwalającego Amidze na skonfigurowanie AmiPCI w czasie startu systemu. Znacznym ograniczeniem jest fakt, że przestrzenie adresowe kart PCI trzeba upchać w wolnych 8 MB 24-bitowej przestrzeni adresowej procesora 68EC020. Co prawda większość kart turbo dysponuje wewnętrznie pełną, 32-bitową przestrzenią adresową, ale najstarsze 8 linii adresowych nie jest wyprowadzone na złącze karty. Jedynym rozwiązaniem byłoby zdefiniowanie okna o wielkości 8 MB, przez które sterowniki miałyby dostęp do pamięci i rejestrów kart. Rozwiązanie takie zastosowała firma Elbox w produkcie Mediator 1200.
Cały projekt był od początku do końca finansowany z mojej prywatnej kieszeni. Już samo wykonanie płytki drukowanej było sporym wydatkiem. Pojawiły się co prawda pomysły wsparcia mnie jakąś „zrzutką”, ale po pierwsze idea bounties nie była jeszcze popularna w amigowym świecie, po drugie sam z ostrożnością podszedłem do tego rodzaju inicjatyw. Tym bardziej, że w miarę pracy nad projektem coraz lepiej widziałem, że nie obejdzie się bez porządnego (a co za tym idzie niestety drogiego) sprzętu pomiarowego, przede wszystkim wielokanałowego oscyloskopu. Było jasne, że na taki sprzęt nie będę sobie mógł pozwolić jako osoba prywatna. Pomimo zainteresowania z jakim spotkał się niedziałający prototyp na spotkaniu w Warszawie w 1999 roku, zdecydowałem koniec końców o zamknięciu projektu.
Pora na podsumowanie. Generalnie nie ulega wątpliwości, że projekt poległ. Był to w znacznej mierze atak z motyką na słońce. Z drugiej jednak strony wiele się przy nim nauczyłem, zdobyta wiedza stała się bazą do zaatakowania problemu „PCI i Amiga” już rok później, w znacznie skuteczniejszy, a co najważniejsze uwieńczony sukcesem, sposób. Ale o tym napiszę w oddzielnym artykule na temat projektu „Prometeusz”.
czerwiec 2009