Notatnik Fana Starych Komputerów
 


Meritum
 

Radioelektronik 05/86 - Mikrokomputer MERITUM

      W artykule przedstawiono popularny mikrokomputer MERITUM produkowany przez zakłady MERA-ELZAB w Zabrzu. Autor przedstawił kilka własnych spostrzeżeń i uwag, które pozwalają skorzystać z "ukrytych" możliwości mikrokomputera oraz uniknąć błędów w pewnych sytuacjach, źle opisanych w dokumentacji.
      Konstrukcja mikrokomputera MERITUM-I od strony sprzętowej i oprogramowania jest wzorowana na mikrokomputerze TRS-80/II produkowanym przez amerykańską firmę RADIO-SHACK (obecnie TANDY). Zmiany zostały podyktowane koniecznością dostosowania układu do podzespołów mikroprocesorowych dostępnych na polskim rynku. Mimo to większość programów napisanych dla TRS-80 działa poprawnie na MERITUM.
      MERITUM-I składa się z mikrokomputera zintegrowanego z klawiaturą, zasilacza sieciowego (dostarczającego napięć: +5 V/3 A. + 12V/1 A i -5 V/0,2 A) oraz monitora telewizyjnego typu NEPTUN 156. Przyłączenie telewizora jest możliwe jedynie poprzez adapter OTV - modulator pracujący w 1...6 kanale TV. W modulatorze zastosowano typowy układ scalony MC1374. We wrześniu 1985 r. rozpoczęto seryjną produkcję mikrokomputera MERITUM-II będącego "dyskową" wersją MERITUM-l. Podstawowy zestaw tej wersji tworzy mikrokomputer MERITUM-I model 2, jednostka dysków elastycznych 5 1/4" z dwoma napędami dysków i zasilaczem impulsowym (+5 V/10 A, +12 V/4 A, -12 V/1 A) oraz monitor telewizyjny. Model 2 różni się od modelu 1 zmianami w oprogramowaniu, zbiorem wyświetlanych znaków alfabetycznych, dodatkowym portem równoległym do współpracy ze stacją dysków elastycznych oraz udoskonaloną klawiaturą.
 
PROCESOR
 
      W mikrokomputerze zastosowano mikroprocesor U880D, odpowiednik mikroprocesora Z80 produkowany w NRD. Wszystkie linie adresowe i wyjściowe linie sterujące zostały wyposażone w bufor z układami UCY74S416 i SN74125. Zapobiega to nadmiernemu obciążeniu tych linii, co mogłoby doprowadzić do uszkodzenia mikroprocesora. Szynę danych pozostawiono bez bufora. Obciążają ją jedynie układy wykonane w technologii MOS i bufory klawiatury - UCY74S426. Układ zerowania (Reset) jest synchronizowany sygnałem Ml' procesora. Niewykorzystane wejściowe linie sterujące są dołączone poprzez rezystory do napięcia zasilającego +5 V.
      Do procesora jest doprowadzany sygnał zegarowy (FI) o czasie równym T = 600 ns.
 
PAMIĘĆ
 
      Oprogramowanie podstawowe MERITUM jest zapisane w pamięci EPROM typu K573RF2 (radziecki odpowiednik pamięci 2 kB typu 2716). 12 kB zajmuje rezydujący interpreter języka BASIC, a 2 kB zajmują procedury programowania portów we/wy, obsługi drukarki i przerwania NMI, które nie "zmieściły się" w 12kB. W modelu 1 MERITUM umieszczony jest poza tym program monitora. W modelu 2, w miejscu monitora, znajdują się procedury obsługi stacji dysków elastycznych poprzez dodatkowy port równoległy typu MCY7855.
      Pamięć operacyjna RAM mikrokomputera jest zbudowana z pamięci dynamicznych K565RU3 (radziecki odpowiednik pamięci 4116). Użytkownik ma do dyspozycji jedynie około 15 kB, gdyż część pamięci zajmują zmienne systemowe. Na życzenie użytkownika w MERA-ELZAB pamięć jest rozszerzana do 32 kB lub 48 kB. W pierwszym przypadku rozszerzenie tworzy osiem dodatkowych układów 4116. W drugim, zamiast pamięci 16kB montowana jest pamięć 64 kB, którą tworzą układy scalone 4164 odpowiednio zablokowane dla adresów zajętych przez pamięć EPROM.
      Trzecim rodzajem pamięci jest video-RAM zajmująca 1 kB i utworzona z dwóch układów scalonych typu 2114. Umożliwia ona wyświetlanie informacji na ekranie monitora w formie 15. wierszy po 64 lub 32 znaki. Oprócz znaków a1fanumerycznych możliwe jest wyświetlanie 64 znaków graficznych. W ten sposób stworzono pseudografikę 128 na 48 punktów, dostępnych programowo przy użyciu instrukcji: SET, RESET i POINT. Zbiór znaków alfanumerycznych i graficznych jest określony przez generator znaków, umieszczony w pamięci EPROM typu 2716 w modelu 1, a 2732 w modelu 2. Generator znaków nie jest dostępny od strony procesora. Znajduje się w układzie wytwarzania sygnału wizyjnego.
      W obszarze pamięci dostępnej od strony procesora, oprócz pamięci RAM i EPROM znajduje się klawiatura mikrokomputera. Tworzy ją matryca 8x8, której wiersze dołączone są poprzez negatory typu OC z liniami adresowymi, a kolumny przez bufory z liniami danych.
      Na rys. 1 przedstawiono rozmieszczenie znaków w matrycy klawiatury.
      Pamięci są dekodowane za pomocą układów: UCY14155, MH74188 (PROM) i SN7432. Mapa pamięci jest przedstawiona w tablicy 1.
 
UKŁADY WE/WY
 
      Mikrokomputer jest wyposażony w 5 różnych układów we/wy: port równoległy MCY7855, port szeregowy MCY7851, timer 8253, port dźwiękowy i interface magnetofonu. W modelu 2 MERITUM dodatkowy port równoległy MCY1855 jest przeznaczony do współpracy ze stacją dysków. Adresy tych układów są umieszczone w tablicy 2.
      Nie będę zajmował się sposobami programowania tych portów. Chciałbym jedynie podzielić się z użytkownikami MERITUM pewnymi spostrzeżeniami. Przy programowaniu portu równoległego MCY7855 należy pamiętać, żeby bit PC7 portu C pracował zawsze jako wyjście z wartością "0". Bit ten steruje przerwaniem niemaskowalnym NMI, które mogłoby "zaszkodzić" programowi użytkownika.
      Licznik L2 układu 8253 na wejściu zegarowym CLK2 ma doprowadzony sygnał zegara mikroprocesora 4. Pracuje w trybie zliczania impulsów. Służy do generowania sygnału NMI po naciśnięciu klawisza NMI lub podania "1" do wyjścia PC7 portu równoległego. Licznik L1 jest wykorzystany do generowania przerwania maskowalnego INT. Do wejścia zegarowego CLK1 jest doprowadzany sygnał o częstotliwości 1 MHz. Licznik L0 pracuje jako dzielnik częstotliwości 2 MHz. Dostarcza sygnałów zegarowych TxC i RxC do układu MCY7851. Aby zmienić szybkość transmisji przez interface RS232C, sterowany przez ten układ, należy wpisać do licznika L0 dane przedstawione w tablicy 3 w odpowiedniej kolejności.
      W porcie magnetofonowym nie są wykorzystane wszystkie bity danych. Przy odczycie aktywny jest tylko najstarszy bit D7. Przy zapisie bity D0 i Dl określają wielkość napięcia na wyjściu magnetofonowym, bit D2 określa liczbę kolumn wyświetlanych na ekranie monitora ("0" - 64 kolumny, "1" - 32 kolumny). Radzę, aby dane wpisywane do portu magnetofonu wpisywać do komórki pamięci o adresie dziesiętnym 16445, która odzwierciedla stan tego portu. Zapobiegnie to wielu niemiłym niespodziankom związanym ze sposobem wyświetlania informacji na ekranie.
      Użytkownik ma do dyspozycji także port dźwiękowy. Aby uzyskać dźwięk trzeba jednak wpisywać do niego na przemian "0" i "l" na najmłodszym bicie D0. A oto program w języku wewnętrznym procesora Z80, który można wpisać za pomocą programu monitora, a który umożliwia uzyskanie większej skali dźwięków niż program napisany w BASIC'u.
 

OE, czas LDC, czas
3E, 01lp: LD A, 1
D3, FE OUT (0FEH), A
06, dana 1 LD B, dana 1
10, FEp1: DJNZ p1
3E, 00  LD A, 0
D3, FE  OUT (0FEH), A
06, dana 2  LD B, dana 2
10, FEp2: DJNZ p2
0D  DEC C
20, ED  JR NZ, lp
C9   RET

      Dana 1 i dana 2 określają częstotliwość dźwięku wg wzoru:
f= 1/(56+13*(dana 1+dana 2))*600*l0E-9
 
      Czas określa długość dźwięku wg wzoru:
t=czas*(1/f)
 
      Jeżeli w komórce o adresie dziesiętnym 16526 umieścimy młodszą, a w komórce o adresie 16527 starszą część adresu procedury dźwiękowej, to będzie możliwe wywołanie jej z BASIC'a przy użyciu instrukcji USR (0).
      W MERITUM-1 modelu 2 przewidziane jest zastosowanie układu 8253 jako trójkanałowego generatora dźwiękowego. Trzy niezależne przebiegi prostokątne będą sumowane we wzmacniaczu operacyjnym mA741 razem z sygnałem dotychczasowego portu dźwiękowego.
 
PROGRAM MONITORA
 
      W oprogramowaniu MERITUM-l modelu 1 jest umieszczony program monitora, o którym producent nie informuje użytkowników. Jest to program bardzo pomocny przy uruchomianiu programów napisanych w języku wewnętrznym procesora. Aby go uruchomić należy wykorzystać instrukcję SYSTEM w następujący sposób:
 
> SYSTEM (ENTER)
* ?/12288 (ENTER)
*
 
      Pojawi się wówczas gwiazdka oznaczająca gotowość monitora. Do dyspozycji mamy 7 poleceń:
a) * D adr1, adr2 - Wyświetl pamięć od adresu adr1 do adresu adr2.
b) * T adr1, adr2;k - Testuj pamięć od adresu adr1 do adresu adr2 k-krotnie.
c) * M adr, (d) - Przeglądanie pamięci od adresu adr. Jeśli naciśniemy klawisz ENTER, to przechodzimy do zawartości komórki o następnym adresie. Możemy zmienić zawartość komórki pamięci wprowadzając daną d i naciskając klawisz ENTER. Wyjście z tego trybu przez naciśnięcie klawisza ".".
d) * PW adr, d - Zapis do portu o adresie adr danej d
e) * PR adr - Odczyt z portu o adresie adr
f) * X (r) - Wyświetlenie stanu rejestrów procesora lub modyfikacja, gdy pojawi się parametr r - nazwa rejestru: A, F, C, D, E, H, L, M – (HL), S - (SP), P - (PC).
g) * E pc., (adr) - Skok do procedury o adresie zawartym w rejestrze P lub pod adres adr. Rejestry pobierają wartości przedstawione za pomocą komendy X.
 
      Wszystkie adresy i dane należy podawać w układzie szesnastkowym. Program monitora wykorzystuje komórki od adresu 7F90H do adresu 7FD0H: dlatego programy uruchomiane nie powinny Zajmować tego obszaru.
      W mikrokomputerze ZX SPECTRUM i wielu innych, większość programów po wczytaniu z taśmy magnetofonowej do pamięci uruchomia się samoczynnie. Nie wszyscy użytkownicy MERITUM-I wiedzą, że jest to możliwe w ich mikrokomputerze.
      Samoczynnie uruchomiają się tylko programy napisane w języku wewnętrznym procesora przy użyciu programu ASSEMBLERA. Dla tych użytkowników, którzy nim dysponują, przedstawiamy sposób pisania podobnych programów. Na początku lub końcu tekstu źródłowego programu należy umieścić następującą deklaracją:
 
ORG 401EH
DEFW START
 
      START, to adres startowy naszego programu. W komórce o adresie 401EH i w komórce 401FH znajduje się adres procedury obsługi ekranu monitora.
      Jeżeli umieścimy tu adres START, to po zakończeniu wczytywania programu, mikrokomputer chcąc wyświetlić komunikat "*?" zacznie wykonywać nasz program.
Gdy w naszym programie wykorzystujemy procedurę obsługi ekranu, to musimy ustawiać poprzednią wartość pod tymi adresami w następujący sposób:
 
START: LD HL, 0458H
LD (401EH), HL
 
     
Powyższy fragment najlepiej umieścić na samym początku programu.
 
LITERATURA
 
[1] K. Badźmirowski, J. Pieńkos, W. Piestrzyński: Systemy mikroprocesorowe
[2] P. Misiurewicz: Układy mikroprocesorowe
[3] Praca zbiorowa pod przewodnictwem J. Baranowskiego: Modułowe systemy mikrokomputerowe
[4] Dokumentacja techniczno-ruchowa mikrokomputera MERITUM-l, nr ewidencyjny 44990000
[5] Podręcznik programowania i użytkowania BASIC MERITUM, nr ewidencyjny 4490001
 
      Jarosław Górny

Powiększenie
 
Powiększenie
 
Powiększenie
 
Powiększenie
 


Komputer 12/87 - Komputeryzujemy się

      Smutny koniec komputera Meritum obwieszcza "Gazeta Robotnicza". Zakład Elektroniki Użytkowej i Podzespołów w Płakowicach koło Lwówka, którą przejął w ubiegłym roku tę produkcję, zamierza wypuścić jeszcze tylko 300 sztuk i na tym skończyć. Kupiona niegdyś w Elzabie licencja na produkcję tego urządzenia okazała się nie najlepsza i trzeba było się z niej szybko wycofać.
      Już przypominaliśmy w tej rubryce, że w pierwszej połowie lat osiemdziesiątych zapowiadano przeprowadzenie za pomocą Meritum rewolucji mikrokomputerowej w polskich szkołach.
      W Płakowicach zamiast Meritum będzie produkowana klawiatura dla Juniora. Jak wszystkim wiadomo, rewolucję mikrokomputerową w polskich szkołach przeprowadzimy za pomocą Juniora właśnie.
      Zawiadomimy czytelników, gdy tylko rewolucja nastąpi.



Komputer 12/88 - Komputeryzujemy się

      "Dlaczego Meritum przegrało z Juniorem" – "Wa1ka Młodych".
      Odpowiedź na pytanie postawione w tytule brzmi: Naszym błędem (popełnionym na samym wstępie przygody z Meritum) było to, że oparliśmy konstrukcję urządzenia na amerykańskim wzorcu, który nie znalazł uznania w Europie. Stąd mizerna ilość gotowych programów rozrywkowych czy edukacyjnych, które można by zastosować w Meritum. Mówiąc inaczej, NASZ MIKROKOMPUTER ŚWIETNIE NADAJE SIĘ DO PRACY CZY NAUKI PROGRAMOWANIA, ALE NIE MOZE SŁUŻYĆ JAKO ZWYKŁA MASZYNKA DO GIER TELEWIZYJNYCH (podkr. nasze).
      I historyk już będzie wiedział, dlaczego Meritum nie trafiło do szkół. Zawiniła skłonność kierowników resortu Edukacji Narodowej (dawnej Oświaty i Wychowania) do rozrywki! Cóż począć, gdy nad pracę i naukę programowania przedkłada się grę w Zorro?