|
Serwis Edukacyjny w I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor: Steven Vickers |
©2026 mgr Jerzy Wałaszek
|
| SPIS TREŚCI |
|
ROZDZIAŁ 1 Przygotowanie
ROZDZIAŁ 2 Wydawanie poleceń ROZDZIAŁ 3 Lekcja historii ROZDZIAŁ 4 Kalkulator ROZDZIAŁ 5 Funkcje ROZDZIAŁ 6 Zmienne ROZDZIAŁ 7 Teksty ROZDZIAŁ 8 Programowanie I ROZDZIAŁ 9 Programowanie II ROZDZIAŁ 10 Jeśli ... ROZDZIAŁ 11 Znaki ROZDZIAŁ 12 Pętle ROZDZIAŁ 13 Wolno i Szybko ROZDZIAŁ 14 Podprogramy ROZDZIAŁ 15 Programy ROZDZIAŁ 16 Pamięć taśmowa ROZDZIAŁ 17 Wyświetlanie ROZDZIAŁ 18 Grafika ROZDZIAŁ 19 Czas i ruch ROZDZIAŁ 20 Drukarka ROZDZIAŁ 21 Podłańcuchy ROZDZIAŁ 22 Tablice ROZDZIAŁ 23 Pamięć ROZDZIAŁ 24 Liczenie ROZDZIAŁ 25 Praca komputera ROZDZIAŁ 26 Kod maszynowy ROZDZIAŁ 27 Organizacja pamięci ROZDZIAŁ 28 Zmienne systemowe A Zestaw znaków B Numery komunikatów C ZX81 dla znających BASIC |
Bajty w pamięci od adresu 16384 do 16508 są przeznaczone na użytek systemu. Możesz pobierać ich zawartość, aby dowiedzieć się wielu różnych rzeczy o systemie, a niektóre z nich mogą być dla ciebie użyteczne. Zostały tutaj przedstawione wraz ze swoim zastosowaniem. Noszą nazwę zmiennych systemowych i posiadają nazwy, lecz nie myl ich ze zmiennymi języka BASIC. Komputer nie rozpozna tych nazw jako odwołań do zmiennych systemowych, ponieważ nazwy te służą jedynie jako hasła pamięciowe dla nas ludzi.
Skróty w kolumnie 1 posiadają następujące znaczenia:
X - tej zmiennej nie powinno się zmieniać, ponieważ system może się załamać.
N - wpisanie wartości do tej zmiennej nie będzie miało trwałego efektu.
S - zmienna jest zachowywana przez SAVE.
Liczba w kolumnie 1 określa liczbę bajtów zajmowanych przez daną zmienną. Dla zmiennych dwubajtowych pierwszy bajt jest mniej znaczący - na odwrót niż mógłbyś się spodziewać. Zatem wstawienie wartości v do zmiennej dwubajtowej pod adresem n wymaga poniższych rozkazów języka BASIC:
| POKE n,v-256*INT (v/256) POKE n+1,INT (v/256) |
a do odczytania wartości zmiennej użyj wyrażenia:
| PEEK n + 256*PEEK (n+1) |
| Uwagi | Adres | Nazwa | Zawartość |
| 1 | 16384 | ERR_NR | 1 mniej niż kod komunikatu. Zaczyna się od 255 (dla -1), zatem PEEK 16384, jeśli w ogóle działa, daje 255. wymuszenia zatrzymania z błędem: a |
| X1 | 16385 | FLAGS | Różne znaczniki sterujące systemem BASIC. |
| X2 | 16386 | ERR_SP | Adres pierwszego elementu na stosie maszynowym (po powrocie z GOSUB). |
| 2 | 16388 | RAMTOP | Adres pierwszego bajtu ponad obszarem systemu BASIC. Możesz zmieniać zawartość w celu zarezerwowania przez NEW przestrzeni ponad tym obszarem (zobacz do rozdziału 26) lub do oszukiwania CLS, aby ustawiło minimalny bufor wyświetlania (rozdział 27). Zmiana zawartości RAMTOP nie przynosi efektu aż do zastosowania jednego z tych dwóch poleceń. |
| N1 | 16390 | MODE | Określa kursor K , L , F lub G . |
| N2 | 16391 | PPC | Numer wiersza obecnie wykonywanego polecenia. Zmiana zawartości nie ma trwałych efektów, jedynie w ostatnim wierszu programu. |
| S1 | 16393 | VERSN | 0 identyfikuje ZX81 BASIC w zapisanych na taśmie programach. |
| S2 | 16394 | E_PPC | Numer bieżącego wiersza (z kursorem programu). |
| SX2 | 16396 | D_FILE | Zobacz do rozdziału 27 |
| S2 | 16398 | DF_CC | Adres pozycji wydruku dla polecenia PRINT w buforze wyświetlania. Można zmienić w celu wysłania wyjścia z PRINT gdzieś indziej. |
| SX2 | 16400 | VARS | Zobacz do rozdziału 27 |
| SN2 | 16402 | DEST | Adres zmiennej, której przypisuje się wartość. |
| SX2 | 16404 | E_LINE | Zobacz do rozdziału 27 |
| SX2 | 16406 | CH_ADD | Adres następnego znaku do zinterpretowania: znaku za argumentem PEEK lub NEWLINE na końcu polecenia POKE. |
| S2 | 16408 | X_PTR | Adres znaku poprzedzającego znacznik S . |
| SX2 | 16410 | STKBOT | Zobacz do rozdziału 27 |
| SX2 | 16412 | STKEND | Zobacz do rozdziału 27 |
| SN1 | 16414 | BERG | Rejestr b kalkulatora |
| SN2 | 16415 | MEM | Adres obszaru pamięci wykorzystywanego przez kalkulator (zwykle MEMBOT, lecz nie zawsze). |
| S1 | 16417 | wolne | |
| SX1 | 16418 | DF_SZ | Liczba wierszy (łącznie z jednym pustym wierszem) w dolnej części ekranu. |
| S2 | 16419 | S_TOP | Numer górnego wiersza programu na automatycznych listingach. |
| SN2 | 16421 | LAST_K | Pokazuje naciśnięty klawisz |
| SN1 | 16423 | Stan filtrowania drgań klawiatury | |
| SN1 | 16424 | MARGIN | Liczba pustych linii ponad i poniżej obrazka na ekranie telewizyjnym: w Polsce 55, 31 w Ameryce. |
| SX2 | 16425 | NXTLIN | Adres następnego wiersza programu do wykonania. |
| S2 | 16427 | OLDPPC | Numer wiersza, do którego wykona skok rozkaz CONT. |
| SN1 | 16429 | FLAGX | Różne znaczniki. |
| SN2 | 16430 | STRLEN | Długość łańcucha przy przypisaniu tekstowym. |
| SN2 | 16432 | T_ADDR | Adres następnego elementu w tablicy składniowej (mało prawdopodobne, aby było użyteczne) |
| S2 | 16434 | SEED | Ziarno dla funkcji RND. To jest zmienna ustawiana przez rozkaz RAND. |
| S2 | 16436 | FRAMES | Zlicza ramki obrazu telewizyjnego. Bit 15 jest 1. Bity od 0 do 14 są zmniejszane przy każdej ramce obrazowej wysłanej do telewizora. Można ją wykorzystać do mierzenia czasu, lecz polecenie PAUSE również jej używa. PAUSE zeruje bit 15, a w bitach od 0 do 14 umieszcza długość przerwy. Gdy zostanie ona zliczona do 0, pauza kończy się. Jeśli pauza przerywa się z powodu naciśnięcia klawisza, bit 15 jest ponownie ustawiany na 1. |
| S1 | 16438 | COORDS | Współrzędna x ostatnio narysowanego punktu graficznego przez polecenie PLOT lub UNPLOT. |
| S1 | 16439 | Współrzędna y ostatnio narysowanego punktu graficznego przez polecenie PLOT lub UNPLOT. |
|
| S1 | 16440 | PR_CC | Najmniej znaczący bajt adresu następnej pozycji dla LPRINT przy wydruku (w PRBUFF). |
| SX1 | 16441 | S_POSN | Numer kolumny dla pozycji wydruku przez PRINT. |
| SX1 | 16442 | Numer wiersza dla pozycji wydruku przez PRINT. | |
| S1 | 16443 | CDFLAG | Różne znaczniki. Bit 7 jest ustawiony (1)
podczas obliczeń i wyświetlania obrazu. |
| S33 | 16444 | PRBUFF | Bufor drukarki (33-ci znak to NEWLINE). |
| SN30 | 16477 | MEMBOT | Obszar pamięci kalkulatora; wykorzystywany do przechowywania liczb, które nie można wygodnie umieścić na stosie kalkulatora. |
| S2 | 16507 | wolne |
|
10 FOR N=0 TO 21 20 PRINT PEEK (PEEK 16400+256*PEEK 16401+N) 30 NEXT N |
Wyświetla on pierwsze 22 bajty obszaru zmiennych systemowych; spróbuj dopasować zmienną sterującą N z opisem w rozdziale 27.
W programie powyżej zmień wiersz 20 na:
| 20 PRINT PEEK (16509+N) |
Teraz otrzymasz wartości pierwszych 22 bajtów z obszaru programu. Dopasuj je do samego programu.
![]() |
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:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.