Historia CA80.

  Przeznaczenie CA80.


Pan Stanisław Gardynik wymyślił system edukacyjny, który był samowystarczalny. Napisał też kompendium wiedzy elektronicznej umożliwiające samodzielną naukę nawet laikowi. W szkołach nie było ani sprzętu, ani nauczycieli, którzy mogliby przygotować przyszłych inżynierów automatyków. CA80 był systemem uruchomieniowym, odpowiednikiem dzisiejszych płytek deweloperskich.

 

CA80
Najstarsza wersja MIK90 z 1985 roku.

    Nie potrzebował jednak dodatkowego komputera, tak jak Arduino czy Nucleo firmy STM. Monitor systemowy zawierał wszystkie procedury potrzenbe do obsługi wyświetlacza i klawiatury, co umożliwiało skupienie się na algorytmie i szybsze pisanie programów. W monitorze był też debuger z pracą krokową i dwiema pułapkami. Można było wykonywać fragmenty kodu, sprawdzać i modyfikować zawartość wszystkich rejestrów procesora oraz pamięci. Podstawowa wersja komputera umożliwiała wpisywanie programu w postaci szesnastkowej za pomocą klawiatury. Wcześniej należało ręcznie asemblować napisany ołówkiem kod. Po uruchomieniu można było zapisać program na taśmie magnetofonowej, albo zaprogramować EPROM używając w tym celu przystawkę MIK86.

 

MIK86
MIK86 z 1989 roku.

    CA80 z nowym programem w EPROM-ie mógł być wykorzystany do sterowania dowolnym urządzeniem. Później powstała płytka CA82, która była uproszczoną wersją CA80, pozbawioną portu systemowego, klawiatury, wyświetlacza i interfejsu magnetofonowego. Służyła ona właśnie do sterowania urządzeń. Wystarczyło przenieść na nią uruchomiony na CA80 program.

CA82
CA82 (źródło Elektroda.pl)


Powstanie pierwszej wersji.


W połowie lat osiemdziesiątych dwudziestego wieku Polska nadal była krajem socjalistycznym. Sytuacja była trudna, bo oprócz niedoborów zwykłych dóbr, panowała inflacja. Zwłaszcza elektronika była zbyt droga dla większości mieszkańców. Nie wszyscy mieli w domu telefon. Nawet gdy było kogoś na niego stać, to musiał czekać wiele lat na upragniony numer. W domach były już telewizory, ale nie zawsze kolorowe i nie chodzi mi o kolor obudowy. Sprzęt audio również był bardzo drogi. Mimo to młodzież słuchała muzyki. Najczęściej z radia i z nagranych na taśmę audycji. W niektórych audycjach nadawano całe płyty, nie zważając na prawa autorskie. Części elektroniczne, zwłaszcza cyfrowe układy scalone, można było kupić jedynie na bazarze.

 

CA80 z 1985/1986 roku
Mój pierwszy CA80 z byle czego.

    Oczywiście ceny nie pozwalały na zbyt wiele. Właśnie w takich warunkach powstawał CA80 w wersji MIK90. Pan Stanisław Gardynik przewidział możliwe kłopoty związane z zakupem niektórych części, więc zaprojektował system tak, żeby działał mimo braków. Można było zastosować różne wersje pamięci RAM, nawet z zupełnie zabytkowych układów scalonych. Zamiast Z80 CTC, można było użyć przerzutnik 7474, żeby cieszyć się pracą krokową. Nawet zamiast systemowego portu 8255, można było zbudować układ zastępczy z bramek TTL. Można było też wykorzystać klawiaturę z dowolnego kalkulatora i dowolny wyświetlacz siedmiosegmentowy. Zapis na magnetofon jest tak odporny na zakłócenia, że dało się odczytać programy nagrane na najgorszych taśmach za pomocą najgorszych magnetofonów. Największą zaletą jednak była możliwość pisania i uruchamiania programów bez dodatkowych sprzętów. Nie trzeba było czekać na zakończenie programu telewizyjnego, żeby odbiornik posłużył za monitor. Wszystko dało się zrobić na tym niepozornym komputerze. Końcówka lat osiemdziesiątych przyniosła nowe rozwiązania w postaci płytki MIK191, na której znalazł się wyświetlacz VFD i klawiatura kontaktronowa. Moim zdaniem była to najlepsza wersja CA80.

CA80
MIK90 i MIK191 złożone "na kanapkę".


Dwa CA80
Prawdopodobnie najstarszy na świecie działający CA80.

Druga wersja.


Kilka lat później stopniowo znikały niedogodności, z którymi zmagaliśmy się w czasach pierwszego CA80. Po pierwszych wolnych wyborach dostępność elektroniki znacznie się poprawiła. Zarobki również wyprzedzały inflację, więc nie było już dylematu czy lepiej kupić większy RAM, czy Z80 CTC. Dublowanie układów straciło rację bytu, więc można było przyjąć jedno standardowe rozwiązanie. Projekt nowej wersji został dostosowany do obudowy kalkulatora biurowego. Zastosowano wyświetlacz VFD i klawiaturę z ELWRO 183, a cała elektronika zmieściła się na jednej płytce MIK290. Nadal była możliwość zastąpienia wyświetlacza VFD LED-owym, ale nie był to już komputer kryzysowy. Zamknięcie całości w obudowie spowodowało oddalenie użytkownika od sprzętu i sprzyjało bardziej programowaniu niż konstruowaniu nowej elektroniki.

Nowy CA80
Nowy CA80 (Wikipedia)


Rozszerzenia ułatwiające programowanie.


Kiedy dostępne stały się komputery domowe typu ZX81 czy ZX Spectrum, można było wykorzystać je do pisania i asemblacji programów, które można było przesyłać do CA80 za pomocą dodatkowej przystawki. Pan Gardynik opracował też kilka wersji MIKSID-a. Najpierw dla komputera Amstrad 464 lub 6128 podłączonego za pomocą dodatkowych portów równoległych, potem dla systemów CP/M, a na koniec dla klonów IBM. Miksid łączył możliwości systemów dyskowych z prostotą CA80. Wersja dla IBM była wymuszona wypieraniem komputerów ośmiobitowych przez azjatyckie klony PC. Oprogramowanie było takie samo jak wcześniej, tylko w maszynie szesnastobitowej trzeba było emulować CP/M. Najlepsze efekty dawało użycie IBM XT z procesorem NEC V20, który miał tryb pracy ośmiobitowej z zestawem rozkazów I8080. Do komunikacji CA80 z komputerem służyły tak zwane sondy MIK1 lub MIK2. Były to interfejsy szeregowe zbudowane na układach I8251 lub I8250. Pierwszą (MIK1) podłączało się do ZU50, a druga była podłączana klipsem pomiarowym bezpośrednio do mikroprocesora. Oprogramowanie było zabezpieczone przed zhakowaniem. W CA80 był umieszczony w systemowym ROM-ie mały program, który testował rejestry UART-a. Następnie wysyłał pytanie do Miksida. Jeżeli odpowiedź była właściwa, na wyświetlaczu CA80 wyświetlał się numer sondy "1" lub "2". Komunikat "3" oznaczał błąd połączenia. MIK1 miał na stałe ustawioną szybkość transmisji, a MIK2 rozpoczynał od ustalonej wcześniej (np. 9600 bodów), a po nawiązaniu połączenia możliwa była programowa zmiana. Po rozpoznaniu sondy i ewentualnym ustawieniu szybkości transmisji następowało przesłanie programu do RAM i przekazanie sterowania komputerowi nadrzędnemu - PC-towi. Od tej pory możliwa była praca z oprogramowaniem CP/M. Mogliśmy przesłać program z dyskietki do CA80 i uruchamiać go za pomocą pracy krokowej lub z użyciem pułapek. Możliwe było wyświetlanie stanu procesora, zawartości wyświetlacza, wierzchołka stosu, deasemblacja fragmentu programu z rozpoznaniem procedur systemowych i wiele innych przydatnych funkcji. Przekazanie sterowania systemem do CA80 zawsze kończyło się wymazaniem pamięci, w której był program komunikacyjny.


 

Próba rekonstrukcji emulatora MikSID.

 

Niestety nigdy nie miałem okazji pracować z Miksidem. Na podstawie opisu w MIK11 napisałem program, który udaje pracę z plikami demo. Jest to tylko wyświetlanie kolejnych komunikatów skopiowanych z podręcznika, ale daje lepsze odczucie niż tylko lektura. Kolejnym krokiem była próba rekonstrukcji programu. Wiele poleceń Miksida pokrywa się ze zleceniami monitora CA80, więc to wykorzystałem. Zamiast transmisji szeregowej, zastosowałem bezpośredni dostęp do szyny danych Z80. Wcześniej opracowałem bootloader z mikrokontrolerem ATmega32. Udoskonaliłem mechanizm poznany  w Z80-MBC2 i dodałem funkcje analogiczne do oryginalnych. Starałem się zachować układ danych wyświetlanych na monitorze. Ograniczyłem program do podstawowych funkcjonalności, ponieważ musiałbym zastosować większy mikrokontroler. Poza tym dzisiaj jest to tylko ciekawostka, bo Z80 używany jest tylko hobbystycznie. Mam nadzieję, że moja praca rozwieje magiczną aurę, która powstała wokół tego mało znanego, a jakże pożytecznego narzędzia.


 

Komentarze

Popularne posty z tego bloga

Uruchamiamy CA80 na RCbus.

Magnetofon CA80.