Serwis Edukacyjny
Nauczycieli

w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

Autor artykułu: mgr Jerzy Wałaszek
Współpraca: mgr inż. Janusz Wałaszek

©2026 mgr Jerzy Wałaszek

SPIS TREŚCI

Parametry techniczne komputera ZX81

obrazek
Producent: Sinclair Research Ltd
Kraj pochodzenia: Anglia
Rok powstania: 1981
Procesor: kompatybilny z ZiLOG Z80A mikroprocesor
NEC P1X108-144 D780C-1
, pracujący
z zegarem 3,25MHz. Częstotliwość zegarowa
była otrzymywana przez podział częstotliwości
generatora kwarcowego 6,5MHz, który jednakże
nie pracował zbyt precyzyjnie. Komputer działał
w dwóch trybach:
SLOW – obliczenia i generacja obrazu,
efektywna szybkość procesora 0,82MHz
FAST – tylko obliczenia, procesor pracujący
z pełną prędkością
Układy pomocnicze: ULA (Uncommitted Logic Array) 2C184E 8147
produkcji firmy FERRANTI – dzisiaj nie do
dostania. Układ ULA, zwany czasami SCL
(Sinclair Custom Logic)
zawierał część
elektroniki odpowiedzialnej za tworzenie obrazu
oraz generator przerwań niemaskowanych NMI,
który był niezbędny do wykonywania programu
użytkownika w czasie tworzenie górnego
i dolnego marginesu obrazu – tzw. tryb SLOW.
Pamięć RAM: 1KB wbudowanej pamięci statycznej RAM
rozszerzalnej za pomocą zewnętrznych
modułów 16, 32, 48 i 64KB. Najpopularniejszym
rozszerzeniem było 16KB i to należy przyjąć za
standard dla ZX81. Większość programów
powstawała właśnie dla tej konfiguracji.
Pamięć ROM: 8KB z systemem ZX81 BASIC umożliwiającym
programowanie ZX81 w niestandardowym
dialekcie języka BASIC. System posiadał prosty
edytor wierszowy z analizą składni poleceń.
Obraz: wyjście antenowe na odbiornik TV – 36 kanał
VHF
. Obraz czarnobiały, standardowo
występował tylko tryb tekstowy 24 wiersze na
32 kolumny. Za pomocą odpowiednich
programów oraz drobnej przebudowy sprzętu
można było uzyskiwać grafikę zwaną dumnie
hires, czyli 192 linie po 256 pikseli w każdej.
Z grafiki korzystały głównie gry zręcznościowe.
Ciekawostką jest to, iż obraz był tworzony
programowo przez mikroprocesor Z80
współpracujący ściśle z układem ULA. Oprócz
liter, cyfr i znaków interpunkcyjnych ZX81 mógł
również wyświetlać tzw. grafikę znakową
o rozdzielczości 48 x 64 piksele. Znaki mogły
być wyświetlane w trybie normalnym oraz
negatywowym. Dostępne tylko dwa kolory
– biały i czarny.
Dźwięk: tylko to, co wyśpiewał użytkownik. Istnieje
jednakże program, który wykorzystuje interfejs
magnetofonu do odtwarzania muzyki. Również
można było zakupić przystawki do ZX81
z układem dźwiękowym i głośnikiem, ale nigdy
nie stały się one bardzo popularne i mało
programów je wspiera.
Nośnik danych: kaseta magnetofonowa. Komputer ZX81
wykorzystywał w charakterze pamięci masowej
zwykły magnetofon kasetowy – jak najprostszy,
bez automatyki poziomu zapisu. Szybkość
transmisji nie była imponująca i wynosiła około
38 bitów na sekundę. Zatem program o długości
2KB wczytywał się do komputera przez około
1 minutę. Zapis i odczyt programu sterowany
był z poziomu języka ZX81 BASIC za pomocą
poleceń SAVELOAD.
Klawiatura: foliowa z nadrukowanymi klawiszami, niezbyt
wygodna w użyciu, ale za to tania w produkcji.
Klawisze posiadały do 5 różnych znaczeń
w zależności od aktualnego trybu pracy
komputera. Zainteresowanych obsługą
klawiatury odsyłam do  instrukcji użytkownika
ZX81, której autorem jest jeden z twórców
oprogramowania – Steven Vickers.
Urządzenie zewnętrzne: czarnobiały odbiornik telewizyjny do
wyświetlania obrazu
magnetofon do zapisu i odczytu programów
drukarka ZX81 Printer drukująca na
specjalnym, foliowanym papierze. Pojawiały
się również inne urządzenia, np. interfejs do 
oysticka czy stacji dysków, lecz jako
niestandardowe nie posiadały odpowiednio
dużego wsparcia w oprogramowaniu.
Zasilanie: wewnętrznie 5V, zasilacz zewnętrzny ZX81
Power Supply
dostarcza niestabilizowanego
napięcia stałego 9V, które wewnętrznie jest
stabilizowane przez układ 7805 i zmniejszane
do napięcia 5V. Ciekawostką jest fakt, iż
radiator stabilizatora umieszczono pod
klawiaturą, co powodowało ogrzewanie
klawiszy.

obrazek

Komputer ZX81 powstał jako następca wcześniejszego modelu ZX80. W stosunku do swojego poprzednika ZX81 posiadał tryb SLOW, w którym komputer mógł jednocześnie wykonywać program użytkownika oraz wyświetlać stabilny obraz na ekranie telewizora. ZX80 albo wyświetlał obraz, albo wygaszał go i zajmował się wykonaniem programu. Dzisiaj wydaje się to nam dziwne. Musimy jednak wziąć pod uwagę prosty fakt:

Konstruując swoje komputery Sir Clive Sinclair starał się zejść jak najniżej z kosztami wytwarzania. W ZX81 znajdowały się tylko 4 układy scalone (w owym czasie niesamowite osiągnięcie technologiczne):

Prawdziwy sterownik obrazu podrażałby koszty oraz komplikowałby sam system, dlatego Sir Sinclair zdecydował się na genialne i niestandardowe wykorzystanie mikroprocesora Z80A, który współuczestniczył w wyświetlaniu obrazu telewizyjnego pobierając dane z pamięci dla układu ULA. Całość jest dokładnie opisana w artykule dotyczącym generacji obrazu na ZX81 oraz dalej w tym artykule. W komputerze ZX81 zastosowano generator przerwań niemaskowanych NMI, dzięki któremu komputer potrafił jednocześnie wykonywać program i wyświetlać obraz telewizyjny. Stworzyło to możliwość powstania interaktywnych gier komputerowych.

Wadą trybu SLOW było jednak wolne wykonywanie programu. Dlatego ZX81 posiadał również tryb szybki – FAST, w którym porzucał tworzenie obrazu i zajmował się wykonywaniem tylko programu użytkownika dając w efekcie około czterokrotny wzrost prędkości. Programy w języku ZX81 BASIC były niestety koszmarnie wolne. Spowodowane to było po pierwsze przez programowe tworzenie obrazu, czym głównie zajmował się mikroprocesor Z80, a po drugie przez przyjęcie w ZX81 BASIC kodowania liczb w systemie zmiennoprzecinkowym. System zmiennoprzecinkowy pozwala co prawda wykonywać skomplikowane obliczenia naukowe, lecz nie jest natywnym systemem kodowania liczb dla mikroprocesora Z80A. Wszelkie rachunki musiały być wykonywane za pomocą skomplikowanych i czasochłonnych procedur zmiennoprzecinkowych. Spowalniało to znacznie wykonywanie instrukcji, w których występowały jakieś liczby, np. PRINT liczba, GOTO liczba, itp.

Pętle nie zapamiętywały położenia swojego początku w pamięci, tylko numer wiersza programu, do którego pętla musiała powrócić. Znalezienie tego wiersza wymagało przejścia za każdym razem przez wszystkie poprzedzające go wiersze w programie. Zatem pętla umieszczona na końcu dużego programu wykonywała się znacząco wolniej niż ta sama pętla na początku. To samo dotyczyło wywołań podprogramów GOSUB oraz skoków GOTO. Wymuszało to na programiście umieszczanie często wykonywanych podprogramów na początku kodu – wtedy program działał nieco szybciej, ale i tak było to zbyt wolno. Przekonałem się o tym po napisaniu kilku prostych gier – wynik nie był zbyt zachęcający. Dlatego szybko zainteresowałem się kodem maszynowym mikroprocesora Z80. Przyspieszenie w stosunku do języka BASIC było ogromne – kilkaset razy! Gry napisane w kodzie maszynowym musiały być wręcz spowalniane, aby dało się w nie efektywnie grać.

Oprócz kodu maszynowego stosowane były kompilatory języka ZX81 BASIC. Zasada działania tych kompilatorów była następująca: programista pisał program w zubożonym języku ZX81 BASIC, który akceptował kompilator. Następnie program był tłumaczony na odpowiadający mu kod maszynowy dla mikroprocesora Z80. Kod wynikowy działał kilkadziesiąt razy szybciej od oryginału. Dla wielu zastosowań (czytaj gier) wzrost szybkości był zupełnie wystarczający. Niektóre gry musiały być nawet sztucznie spowalniane poleceniem PAUSE. Po kompilacji program w języku BASIC nie był już potrzebny i można go było wykasować, uzyskując w ten prosty sposób dodatkowe miejsce w pamięci. Po tej operacji skompilowany program zapisywany był na taśmie i mieliśmy produkt gotowy do użycia.


do podrozdziału  do strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2026 mgr Jerzy Wałaszek

Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email: i-lo@eduinf.waw.pl
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.

Informacje dodatkowe.