[ Pobierz całość w formacie PDF ]
gólne linie będą wyświetlane w rozmaitych trybach, łączyć
teksty z grafiką itd. Ważne jest tylko, by dane odpowiadały
zaprojektowanemu układowi. Aącznie, przy 24 pustych liniach
na początku, reszta powinna dawać w sumie 192 pełne linie ek-
ranowe. Do jednej listy obrazu można zbudować kilka zestawów
danych i przełączać je przez zmianę adresów rozkazów LMS.
ANTIC tworzy także wiele innych możliwości, których w
szczegółach nie sposób tu omówić. Możliwe jest zapewnienie
płynnego przewijania czyli przesuwania obrazu w kierunku pio-
nowym i poziomym. Można również tak budować dane obrazu, by
obejmowały obszar większy niż ekran. Ten ostatni staje się
wówczas jakby oknem, przez które oglądamy znacznie większe
całości. Przykładów takich dostarczają m.in. znane programy
użytkowe Synfile+ i Visicalc, a także liczne gry. Dodatkowe
możliwości wzbogacenia obrazu powstają przy wykorzystaniu
dwóch przerwań ANTIC-u, o których powiemy w punkcie 9.7.
9.5 Grafika graczy-pocisków
Jedną z właściwości Atari, która znacznie upraszcza pro-
gramowanie animacji obrazu i umożliwia osiągnięcie dużej szy-
bkości ruchu obiektów na ekranie jest grafika graczy-pocis-
ków. Ułatwienia w animacji, jakie zapewnia PMG, mogą być uży-
te także do poważnych zastosowań. W bardzo udany sposób
wykorzystano PMG w interpretatorze Logo, dzięki czemu dzieci
i młodzież, korzystająca z tego języka mogą posługiwać się aż
czterema żółwiami w tworzeniu grafiki, która jest ważną do-
meną Logo.
Jeżeli z pomocą kodu maszynowego spróbujemy uzyskać do-
stęp do pojedyńczego bajtu ekranowego o współrzędnych X i Y,
to okaże się, że potrzeba na to ponad 30 rozkazów. PMG umoż-
174
liwia uzyskanie znacznie szybszego ruchu na ekranie z pomocą
krótkich i prostych programów.
Grafika graczy-pocisków zakłada definiowanie obiektów o
dowolnej wysokości i szerokości 8 bitów. Ograniczenie szero-
kości złagodzić można łącząc paru graczy w jeden obiekt,
stosując szybką zmianę obrazu i innymi metodami. PMG rozpo-
rządza ponadto możliwością zdefiniowania, czy gracz lub po-
cisk ma przesuwać się za obiektami tła, czy przed nimi. Zape-
wnia kontrolę kolizji czyli ekranowych "zderzeń" pocisk-gracz,
pocisk-pole gry, gracz-gracz i gracz-pole gry. Możliwości te
szeroko wykorzystuje m.in. interpretator Logo na Atari.
9.6 System operacyjny
Głównym zadaniem systemu operacyjnego Atari jest zapew-
nienie wykorzystania wszystkich zasobów komputera, na które
składają się: 6502, RAM,i ROM i cztery wspomniane układy LSI,
a także zapewnienie współpracy komputera z licznymi urządze-
niami zewnętrznymi: telewizorem lub monitorem, klawiaturą,
joystickami, paddle, magnetofonem, stacją lub stacjami dys-
kietek, drukarką, modemem.
System operacyjny Atari 800XL został, jak powiedzieliś-
my, gruntownie zmieniony i znacznie rozbudowany w stosunku do
OS Atari 400/800. Zmianie uległy przy tym adresy wielu pod-
programów i rejestrów w ROM. Jest to główną przyczyną, że
część programów na dawne Atari "nie chodzi" na nowym. Często
stosowanym sposobem zaradzenia kłopotom jest zastępowanie
RAM-em obszaru OS i wpisywanie na to miejsce dawnego OS Ata-
ri 400/800. Wykonuje to wiele programów, m.in. Translator.
Walory nowego systemu operacyjnego są bezsporne. Jest
on logicznie przemyślanym i starannie uporządkowanym zbiorem
wielkiej liczby mniejszych i większych podprogramów, do któ-
rych możemy się odwoływać w naszych programach.
Jak to wykonać? OS rozporządza tysiącami adresów we wła-
snym obszarze, a także na zajętych do jego potrzeb częściach
stron 0-5.
Adresy rejestrów-cieni w Atari 800 XL nie uległy zmianie
w stosunku do wcześniejszych wersji. Rejestry te pełnią różne
175
funkcje. Czasem dla uzyskania pożądanego efektu trzeba do nich
wpisać d a n e. Np. do rejestrów-cieni możemy wpisywać
dane określające kolory poszczególnych elementów obrazu ekra-
nowego. Inne rejestry są słowami dwubajtowymi, które zawie-
rają a d r e s. Noszą one nazwę wskazników lub w e k t o -
r ó w. W wielu wypadkach do wektora, zwłaszcza wektora-cienia,
możemy wpisać adres naszego programu, co spowoduje, że będzie
on wykonywany zamiast programu OS. By umiejętnie posługiwać
możliwościami OS w asemblerze i JM, trzeba poznawać rozmiesz-
czenie i funkcje jego rejestrów.
Omówmy pokrótce podstawowe części składowe OS Atari.
Monitor. Jest to program systemowy wykonywany przy uru-
chomieniu komputera lub po naciśnięciu klawisza RESET. Moni-
tor inicjuje działanie systemu zarządzania pamięcią i układu
wejścia-wyjścia, nadaje początkowe wartości wektorom systemu
i sprawdza, czy jest on kompletny.
Monitor wykonuje po włączeniu komputera zimny start
skok do podprogramu pod adresem E477 , podczas którego zero-
wany jest cały RAM z wyjątkiem pierwszych 16 komórek. Naciś-
nięcie RESET powoduje gorący start (skok pod E474), przy któ-
rym pamięć nie jest zerowana, lecz następuje przypisanie po-
nownie wartości początkowych wektorom systemowym.
Głównym celem systemu zarządzania pamięcią jest właściwe
określenie przestrzeni adresowej, w tym górnej i dolnej gra-
nicy dostępnego RAM. Istnieje szereg wskazników dołu i szczy-
tu RAM, które pozwalają użytkownikowi wpływać na mechanizm
zarządzania pamięcią.
Struktura wywoływania przerwań. Strukturę przerwań 6502
wykorzystuje się do stosowania wielu rodzajów przerwań. Omó-
wimy je w następnym punkcie.
Wektory systemowe OS. Za ich pośrednictwem użytkownik
może wykorzystać do różnych celów podprogramy systemowe OS.
Najczęściej czyni się to w procedurach wejścia-wyjścia, pos-
ługiwaniu się zegarami i przekazywaniu sterowania innym prog-
ramom. Dostęp do podprogramów systemowych odbywa się na dwa
sposoby: za pośrednictwem skoków do adresów w ROM lub za poś-
rednictwem rejestrów-cieni w RAM.
176
Podsystem wejścia-wyjścia. OS zapewnia programiście szero-
kie możliwości korzystania z urządzeń zewnętrznych. Omówimy
je w punkcie 9.8.
Programowanie w czasie rzeczywistym. Wyposażenie OS skła-
da się tu przede wszystkim z zegarów systemowych, sprzętowych,
liczących czas w tempie od pół mikrosekundy do paru sekund,
oraz programowych odliczających pięćdziesiąte części sekundy.
Zbiory znaków. CHARSET1 i CHARSET2 można wykorzystać
bezpośrednio lub redefiniować w RAM.
Pakiet zmienno-pozycyjny. Podprogramy wykorzystują aryt-
metykę BCD do wykonywania wielu funkcji. Omówimy je w punkcie
9.9.
9.7 Przerwania
Podczas wykonywania programu zachodzą zdarzenia wymagają-
ce natychmiastowej reakcji 6502 i komputera. Należy do nich
wprowadzanie danych z klawiatury,współpraca ze stacją dyskie-
tek, odświeżanie ładunków w pamięci wykonywane co ułamek se-
kundy przez specjalny układ i wiele innych zdarzeń. Na wszyst-
kie takie sytuacje w 6502 przewidziano wywołanie p r z e r-
w a ń. W chwili przerwania wykonanie bieżącego programu ulega
czasowemu wstrzymaniu, a wywoływany jest specjalny program ob-
sługi przerwania. Po jego wykonaniu sterowanie przekazywane
jest na powrót programowi, który był wykonywany przed przerwa-
niem.
6502 przewiduje przerwania trzech typów:
- IRQ (interrupt request) - na żądanie użytkownika wek-
tor zawierający adres programu ich obsługi znajduje się pod
FFFE hex;
- NMI (non maskable interrupt) - niemaskowalne czyli w
zasadzie ustanawiane przez system. Wektor programu obsługi
znajduje się pod FFFA hex;
- RESET - przerwanie zimnego lub gorącego startu, wywoły-
wane w szczególności przez naciśnięcie klawisza RESET. Wektor
odczytujemy pod FFFC.
Duża część przerwań wywoływana jest przez układy wewnęt-
177 [ Pobierz całość w formacie PDF ]
zanotowane.pl doc.pisz.pl pdf.pisz.pl exclamation.htw.pl
gólne linie będą wyświetlane w rozmaitych trybach, łączyć
teksty z grafiką itd. Ważne jest tylko, by dane odpowiadały
zaprojektowanemu układowi. Aącznie, przy 24 pustych liniach
na początku, reszta powinna dawać w sumie 192 pełne linie ek-
ranowe. Do jednej listy obrazu można zbudować kilka zestawów
danych i przełączać je przez zmianę adresów rozkazów LMS.
ANTIC tworzy także wiele innych możliwości, których w
szczegółach nie sposób tu omówić. Możliwe jest zapewnienie
płynnego przewijania czyli przesuwania obrazu w kierunku pio-
nowym i poziomym. Można również tak budować dane obrazu, by
obejmowały obszar większy niż ekran. Ten ostatni staje się
wówczas jakby oknem, przez które oglądamy znacznie większe
całości. Przykładów takich dostarczają m.in. znane programy
użytkowe Synfile+ i Visicalc, a także liczne gry. Dodatkowe
możliwości wzbogacenia obrazu powstają przy wykorzystaniu
dwóch przerwań ANTIC-u, o których powiemy w punkcie 9.7.
9.5 Grafika graczy-pocisków
Jedną z właściwości Atari, która znacznie upraszcza pro-
gramowanie animacji obrazu i umożliwia osiągnięcie dużej szy-
bkości ruchu obiektów na ekranie jest grafika graczy-pocis-
ków. Ułatwienia w animacji, jakie zapewnia PMG, mogą być uży-
te także do poważnych zastosowań. W bardzo udany sposób
wykorzystano PMG w interpretatorze Logo, dzięki czemu dzieci
i młodzież, korzystająca z tego języka mogą posługiwać się aż
czterema żółwiami w tworzeniu grafiki, która jest ważną do-
meną Logo.
Jeżeli z pomocą kodu maszynowego spróbujemy uzyskać do-
stęp do pojedyńczego bajtu ekranowego o współrzędnych X i Y,
to okaże się, że potrzeba na to ponad 30 rozkazów. PMG umoż-
174
liwia uzyskanie znacznie szybszego ruchu na ekranie z pomocą
krótkich i prostych programów.
Grafika graczy-pocisków zakłada definiowanie obiektów o
dowolnej wysokości i szerokości 8 bitów. Ograniczenie szero-
kości złagodzić można łącząc paru graczy w jeden obiekt,
stosując szybką zmianę obrazu i innymi metodami. PMG rozpo-
rządza ponadto możliwością zdefiniowania, czy gracz lub po-
cisk ma przesuwać się za obiektami tła, czy przed nimi. Zape-
wnia kontrolę kolizji czyli ekranowych "zderzeń" pocisk-gracz,
pocisk-pole gry, gracz-gracz i gracz-pole gry. Możliwości te
szeroko wykorzystuje m.in. interpretator Logo na Atari.
9.6 System operacyjny
Głównym zadaniem systemu operacyjnego Atari jest zapew-
nienie wykorzystania wszystkich zasobów komputera, na które
składają się: 6502, RAM,i ROM i cztery wspomniane układy LSI,
a także zapewnienie współpracy komputera z licznymi urządze-
niami zewnętrznymi: telewizorem lub monitorem, klawiaturą,
joystickami, paddle, magnetofonem, stacją lub stacjami dys-
kietek, drukarką, modemem.
System operacyjny Atari 800XL został, jak powiedzieliś-
my, gruntownie zmieniony i znacznie rozbudowany w stosunku do
OS Atari 400/800. Zmianie uległy przy tym adresy wielu pod-
programów i rejestrów w ROM. Jest to główną przyczyną, że
część programów na dawne Atari "nie chodzi" na nowym. Często
stosowanym sposobem zaradzenia kłopotom jest zastępowanie
RAM-em obszaru OS i wpisywanie na to miejsce dawnego OS Ata-
ri 400/800. Wykonuje to wiele programów, m.in. Translator.
Walory nowego systemu operacyjnego są bezsporne. Jest
on logicznie przemyślanym i starannie uporządkowanym zbiorem
wielkiej liczby mniejszych i większych podprogramów, do któ-
rych możemy się odwoływać w naszych programach.
Jak to wykonać? OS rozporządza tysiącami adresów we wła-
snym obszarze, a także na zajętych do jego potrzeb częściach
stron 0-5.
Adresy rejestrów-cieni w Atari 800 XL nie uległy zmianie
w stosunku do wcześniejszych wersji. Rejestry te pełnią różne
175
funkcje. Czasem dla uzyskania pożądanego efektu trzeba do nich
wpisać d a n e. Np. do rejestrów-cieni możemy wpisywać
dane określające kolory poszczególnych elementów obrazu ekra-
nowego. Inne rejestry są słowami dwubajtowymi, które zawie-
rają a d r e s. Noszą one nazwę wskazników lub w e k t o -
r ó w. W wielu wypadkach do wektora, zwłaszcza wektora-cienia,
możemy wpisać adres naszego programu, co spowoduje, że będzie
on wykonywany zamiast programu OS. By umiejętnie posługiwać
możliwościami OS w asemblerze i JM, trzeba poznawać rozmiesz-
czenie i funkcje jego rejestrów.
Omówmy pokrótce podstawowe części składowe OS Atari.
Monitor. Jest to program systemowy wykonywany przy uru-
chomieniu komputera lub po naciśnięciu klawisza RESET. Moni-
tor inicjuje działanie systemu zarządzania pamięcią i układu
wejścia-wyjścia, nadaje początkowe wartości wektorom systemu
i sprawdza, czy jest on kompletny.
Monitor wykonuje po włączeniu komputera zimny start
skok do podprogramu pod adresem E477 , podczas którego zero-
wany jest cały RAM z wyjątkiem pierwszych 16 komórek. Naciś-
nięcie RESET powoduje gorący start (skok pod E474), przy któ-
rym pamięć nie jest zerowana, lecz następuje przypisanie po-
nownie wartości początkowych wektorom systemowym.
Głównym celem systemu zarządzania pamięcią jest właściwe
określenie przestrzeni adresowej, w tym górnej i dolnej gra-
nicy dostępnego RAM. Istnieje szereg wskazników dołu i szczy-
tu RAM, które pozwalają użytkownikowi wpływać na mechanizm
zarządzania pamięcią.
Struktura wywoływania przerwań. Strukturę przerwań 6502
wykorzystuje się do stosowania wielu rodzajów przerwań. Omó-
wimy je w następnym punkcie.
Wektory systemowe OS. Za ich pośrednictwem użytkownik
może wykorzystać do różnych celów podprogramy systemowe OS.
Najczęściej czyni się to w procedurach wejścia-wyjścia, pos-
ługiwaniu się zegarami i przekazywaniu sterowania innym prog-
ramom. Dostęp do podprogramów systemowych odbywa się na dwa
sposoby: za pośrednictwem skoków do adresów w ROM lub za poś-
rednictwem rejestrów-cieni w RAM.
176
Podsystem wejścia-wyjścia. OS zapewnia programiście szero-
kie możliwości korzystania z urządzeń zewnętrznych. Omówimy
je w punkcie 9.8.
Programowanie w czasie rzeczywistym. Wyposażenie OS skła-
da się tu przede wszystkim z zegarów systemowych, sprzętowych,
liczących czas w tempie od pół mikrosekundy do paru sekund,
oraz programowych odliczających pięćdziesiąte części sekundy.
Zbiory znaków. CHARSET1 i CHARSET2 można wykorzystać
bezpośrednio lub redefiniować w RAM.
Pakiet zmienno-pozycyjny. Podprogramy wykorzystują aryt-
metykę BCD do wykonywania wielu funkcji. Omówimy je w punkcie
9.9.
9.7 Przerwania
Podczas wykonywania programu zachodzą zdarzenia wymagają-
ce natychmiastowej reakcji 6502 i komputera. Należy do nich
wprowadzanie danych z klawiatury,współpraca ze stacją dyskie-
tek, odświeżanie ładunków w pamięci wykonywane co ułamek se-
kundy przez specjalny układ i wiele innych zdarzeń. Na wszyst-
kie takie sytuacje w 6502 przewidziano wywołanie p r z e r-
w a ń. W chwili przerwania wykonanie bieżącego programu ulega
czasowemu wstrzymaniu, a wywoływany jest specjalny program ob-
sługi przerwania. Po jego wykonaniu sterowanie przekazywane
jest na powrót programowi, który był wykonywany przed przerwa-
niem.
6502 przewiduje przerwania trzech typów:
- IRQ (interrupt request) - na żądanie użytkownika wek-
tor zawierający adres programu ich obsługi znajduje się pod
FFFE hex;
- NMI (non maskable interrupt) - niemaskowalne czyli w
zasadzie ustanawiane przez system. Wektor programu obsługi
znajduje się pod FFFA hex;
- RESET - przerwanie zimnego lub gorącego startu, wywoły-
wane w szczególności przez naciśnięcie klawisza RESET. Wektor
odczytujemy pod FFFC.
Duża część przerwań wywoływana jest przez układy wewnęt-
177 [ Pobierz całość w formacie PDF ]