Serwis Edukacyjny w I-LO w Tarnowie ![]() Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor: Steven Vickers |
©2021 mgr Jerzy Wałaszek |
SPIS TREŚCI |
ROZDZIAŁ 1 Przygotowanie ZX81
ROZDZIAŁ 2 Wydawanie komputerowi poleceń ROZDZIAŁ 3 Lekcja historii ROZDZIAŁ 4 Sinclair ZX81 jako kalkulator kieszonkowy ROZDZIAŁ 5 Funkcje ROZDZIAŁ 6 Zmienne ROZDZIAŁ 7 Łańcuchy tekstowe ROZDZIAŁ 8 Programowanie komputera ROZDZIAŁ 9 Dalsze programowanie komputera ROZDZIAŁ 10 Jeśli ... ROZDZIAŁ 11 Zestaw znaków ROZDZIAŁ 12 Pętle ROZDZIAŁ 13 Wolno i Szybko ROZDZIAŁ 14 Podprogramy ROZDZIAŁ 15 Uruchamianie programów ROZDZIAŁ 16 Pamięć taśmowa ROZDZIAŁ 17 Wyświetlanie z bajerami ROZDZIAŁ 18 Grafika ROZDZIAŁ 19 Czas i ruch ROZDZIAŁ 20 Drukarka dla ZX81 ROZDZIAŁ 21 Podłańcuchy ROZDZIAŁ 22 Tablice ROZDZIAŁ 23 Gdy zaczyna brakować pamięci ROZDZIAŁ 24 Liczenie na palcach ROZDZIAŁ 25 Jak pracuje komputer ROZDZIAŁ 26 Stosowanie kodu maszynowego ROZDZIAŁ 27 Organizacja pamięci ROZDZIAŁ 28 Zmienne systemowe DODATKI A Zestaw znaków B Numery komunikatów C ZX81 dla znających język BASIC |
Pamięć dzieli się na różne obszary przechowujące różne rodzaje danych. Obszary te są tylko tak duże, aby mieściły się w nich dane, które w danym momencie przechowują, a jeśli wstawisz ich więcej w danym punkcie (na przykład przez dodanie wiersza programu lub zmiennej) to miejsce zostanie zrobione przez przesunięcie w górę wszystkiego ponad tym punktem. Odwrotnie, gdy usuwasz dane, wszystko nad tym punktem jest przesuwane w dół.
Zmienne systemowe zawierają różne elementy danych, które informują komputer o jego stanie. Zostały one w pełni opisane w następnym rozdziale, lecz na tę chwilę zwróć uwagę, iż niektóre z nich (zwane D_FILE, VARS, E_LINE itd.) zawierają adresy granic pomiędzy różnymi obszarami w pamięci. To nie są zmienne języka BASIC, a ich nazwy nie zostaną rozpoznane przez komputer.
Każdy wiersz w programie przechowywany jest jako:
Zwróć uwagę, iż w przeciwieństwie do wszystkich pozostałych przypadków dwubajtowych liczb w Z80 numer wiersza tutaj (a również w zmiennej sterującej pętli FOR-NEXT) jest przechowywany z najbardziej znaczącym bajtem jako pierwszym, tzn. w kolejności ich zapisu.
Stała liczbowa w programie jest zakończona swoją postacią binarną przy pomocy znaku CHR$ 126, za którym następuje pięć kolejnych bajtów jej reprezentacji zmiennoprzecinkowej.
Bufor wyświetlania jest kopią w pamięci obrazu telewizyjnego. Rozpoczyna się od znaku NEWLINE, a następnie zawiera dwadzieścia cztery wiersze tekstu, każdy zakończony za pomocą NEWLINE. System ten jest tak zaprojektowany, że wiersz nie wymaga przestrzeni dla pełnych trzydziestu dwóch znaków: końcowe spacje mogą zostać pominięte. Ma to na celu zaoszczędzenie pamięci, gdy jest jej mało.
Gdy całkowita ilość pamięci (zgodnie ze zmienną systemową RAMTOP) jest mniejsza od 3 1/4 K, wtedy pusty ekran - ustawiony na początku pracy komputera lub przez polecenie CLS - składa się jedynie z dwudziestu pięciu znaków NEWLINE. Gdy pamięć jest większa, pusty ekran jest rozwijany w pełni do 24*32 spacji i pozostaje przy tym rozmiarze; jednakże polecenie SCROLL w pewnych warunkach, gdy dolna część ekranu rozwija się na więcej niż dwa wiersze, może to zmienić wstawiając na spodzie skrócone wiersze.
Zmienne mają różne formaty zgodnie z ich różną naturą.
Zmienna liczbowa o nazwie zbudowanej tylko z jednej litery:
Zmienna o nazwie dłuższej niż jeden znak:
Tablica liczb:
Kolejność elementów jest następująca:
najpierw elementy o pierwszym indeksie równym 1
później elementy o pierwszym indeksie równym 2
później elementy o pierwszym indeksie równym 3
itd. dla wszystkich kolejnych wartości pierwszego indeksu.
Elementy o danym pierwszym indeksie są uporządkowane tak samo względem drugiego indeksu itd. aż do ostatniego indeksu.
Przykładowo elementy tablicy B o wymiarach 3 x 6 z rozdziału 22 są przechowywane w kolejności:
B(1,1),B(1,2),B(1,3),B(1,4),B(1,5),B(1,6),B(2,1),B(2,2),...,B(2,6),B(3,1),B(3,2),...,B(3,6).
Zmienna sterująca pętli FOR-NEXT:
Łańcuch:
Tablica znaków:
Obszar pod adresem E_LINE zawiera wpisywany wiersz (jako rozkaz, wiersz programu lub dane dla polecenia INPUT) jak również nieco obszaru roboczego.
Kalkulator jest częścią systemu BASIC zajmującą się arytmetyką, a przetwarzane liczby są w większości przechowywane na stosie kalkulatora.
Wolny obszar zawiera przestrzeń pamięci, która dotąd nie została jeszcze wykorzystana.
Stos maszynowy jest używany przez układ scalony mikroprocesora Z80 do przechowywania danych oraz adresów powrotnych z procedur.
Stos GOSUB był wspomniany w rozdziale 14.
Miejsce dla procedur USR musi być osobno ustawione przez ciebie przy wykorzystaniu rozkazu NEW, co opisano w ostatnim rozdziale.
![]() |
Zespół Przedmiotowy |
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.