Serwis Edukacyjny
w I-LO w Tarnowie
obrazek

Materiały dla uczniów liceum

  Wyjście       Spis treści       Wstecz       Dalej  

obrazek

Autor: Steven Vickers
Tłumaczył: mgr Jerzy Wałaszek

©2021 mgr Jerzy Wałaszek
I LO w Tarnowie

ROZDZIAŁ 27 – Organizacja pamięci

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

ROZDZIAŁ 27 – Organizacja pamięci

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ół.

obrazek

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:

obrazek

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:

obrazek

Zmienna o nazwie dłuższej niż jeden znak:

obrazek

Tablica liczb:

obrazek

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:

obrazek

Łańcuch:

obrazek

Tablica znaków:

obrazek

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.

Na początek:  podrozdziału   strony 

Zespół Przedmiotowy
Chemii-Fizyki-Informatyki

w I Liceum Ogólnokształcącym
im. Kazimierza Brodzińskiego
w Tarnowie
ul. Piłsudskiego 4
©2021 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.