Serwis Edukacyjny w I-LO w Tarnowie Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor: Steven Vickers |
©2024 mgr Jerzy Wałaszek |
Dzieją się dziwne rzeczy
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 |
ZX81 posiada ograniczoną ilość wewnętrznej pamięci, a nie trudno ją zapełnić. Najlepszym dowodem na to, iż to się właśnie dzieje jest zwykle komunikat 4, lecz mogą zdarzyć się również inne rzeczy, a niektóre z nich są raczej dziwne. Dokładne zachowanie się komputera uzależnione jest od tego, czy masz dołączone rozszerzenie pamięci, czy też nie, zatem najpierw załóżmy, iż nie masz. Jeśli masz, to je zdejmij (po wyłączeniu najpierw komputera).
Bufor wyświetlania, to jest obszar wewnątrz komputera, gdzie przechowuje on obraz telewizyjny, jest sprytnie zaprojektowany, tak aby zabierał tylko tyle miejsca w pamięci, ile jest potrzebne na to, co dotychczas zostało wydrukowane na ekranie: wiersz ekranowy może zawierać do 32 znaków plus znak NEWLINE. Oznacza to, iż może ci zabraknąć pamięci przy drukowaniu na ekranie, a najczęściej zdarza się to przy listowaniu programu. Wpisz
NEW
DIM A(150)
10 FOR N=1 TO 15
20 PRINT
N
Tu pojawia się pierwsza niespodzianka: wiersz 10 znika z listingu. Listing zostaje ograniczony do bieżącego wiersza 20 i nie ma miejsca na oba wiersze. Teraz wpisz:
30 NEXT N
Znów, na listingu jest tylko miejsce dla wiersza 30. Teraz wpisz:
40 REM X (bez NEWLINE)
a zobaczysz jak znika wiersz 30 i wiersz 40 skacze na górę ekranu. Nie został on wstawiony do programu - wciąż masz kursor L i możesz nim poruszać. Widziałeś jedynie w działaniu prosty mechanizm porzucania dolnych 24 wierszy ekranu w celu odzyskania nieco pamięci. Teraz wpisz:
XXXXXX (wciąż bez NEWLINE)
a kursor zniknie - nie ma miejsca na wyświetlenie go. Wpisz jeszcze jedno X, bez NEWLINE, a zniknie jedno z X. Teraz wpisz NEWLINE. Zniknie wszystko, lecz program wciąż jest w komputerze, co można udowodnić usuwając wiersz 10 i używając klawiszy i . Teraz wpisz:
10 FOR N=1 TO 15
znów - przesunie się na górę ekranu jak poprzednio zrobił to wiersz 40. Lecz gdy spróbujesz nacisnąć NEWLINE, wiersz nie zostanie wstawiony, chociaż nie będzie komunikatu o błędzie ani nie pojawi się znacznik S informujący, iż coś jest źle. Jest to wynikiem braku miejsca na sprawdzenie składni wiersza, co zwykle zdarza się wierszom zawierającym liczby (inne niż numery wiersza na początku).
Jedynym lekarstwem jest zrobienie nieco miejsca w jakiś sposób, lecz najpierw usuń wiersz 10, który nie chce wejść. Naciśnij EDIT: ekran stanie się pusty, ponieważ brakuje miejsca na sprowadzenie wiersza w dół do edycji.
Gdy EDIT nie działa, czasami udaje się zrobić nieco miejsca wpisując kilka spacji aż kursor pójdzie w górę ekranu.
Naciśnij NEWLINE, a otrzymasz z powrotem część listingu. Teraz usuń wiersz 40 (którego i tak przecież nie chciałeś mieć w programie) wpisując:
40 (oraz NEWLINE)
Teraz spróbuj ponownie wprowadzić wiersz 10 - wciąż się nie da. Wymaż go ponownie. Wciąż musisz znaleźć gdzieś nieco dodatkowego miejsca. Uświadom sobie, iż powodem odrzucenia wiersza 10 był prawdopodobnie brak pamięci dla sprawdzenia składni dwóch liczb, 1 i 15: zatem jeśli usuniesz chwilowo wiersz 20 z programu, to może będziesz miał miejsce na wprowadzenie wiersza 10 oraz ponowne wprowadzenie usuniętego wiersza 20 (który nie zawiera żadnych liczb). Wypróbuj poniższego sposobu.
Wpisz:
20
10 FOR N=1 TO 15
20 PRINT N
a program jest wprowadzony poprawnie.
Wpisz
GOTO 10
i znów wiersz zostaje odrzucony, ponieważ nie można sprawdzić jego składni, jednakże jeśli go wymażesz i wpiszesz:
RUN
to zadziała (RUN usuwa tablicę dając dużo wolnego miejsca).
Teraz wpisz jeszcze raz wszystko tak samo jak przedtem począwszy od NEW do wiersza 30, a następnie
40 REM XXXXXXXXXXXX
(12 liter X), co zakończy się wyglądając jak 40 RE. Gdy naciśniesz NEWLINE, listing będzie się składał tylko z wiersza 30, a wiersz 40 został zupełnie stracony. Stało się tak dlatego, iż po prostu był on zbyt długi, aby zmieścić się w programie. Efekt ten staje się gorszy, gdy wiersz jest wydłużoną wersją wiersza już znajdującego się w programie, ponieważ wtedy tracisz zarówno stary jak i nowy wiersz, który miał go zastąpić.
Ostatecznym rozwiązaniem tego problemu jest dokupienie modułu pamięci RAM, który wtyka się z tyłu komputera. Moduł Sinclair 16K RAM udostępnia ci szesnaście razy więcej pamięci niż w komputerze bez rozszerzenia.
Jeśli posiadasz stary moduł ZX80 3K RAM, to nie będzie on pracował z ZX81.
Zachowanie z rozszerzeniem pamięci jest trochę inne, ponieważ bufor wyświetlania jest wypełniony spacjami, aby utworzyć każdy wiersz długi na 32 znaki (zwróć uwagę, iż SCROLL zmienia te ustawienie - zobacz do rozdziału 27). Teraz drukowanie lub wyświetlanie listingu nie spowoduje braku pamięci w komputerze, a ty nie zobaczysz tych skróconych listingów i skaczących wierszy; lecz zobaczysz utknięte wiersze lub stracone, a jedynym ratunkiem będzie znalezienie nieco wolnego miejsca.
Jeśli posiadasz rozszerzenie pamięci, to podłącz je i przejdź do wpisywania w początkowej części tego rozdziału używając:
DIM A(3069)
zamiast
DIM A(150)
Podsumowując, to pogmatwana historia, której morał jest taki: unikaj całkowitego zapchania komputera, jeśli tylko możesz. Drugi morał jednakże pokazuje, iż nie wszystko jest takie złe, na jakie wygląda.
Dla wszystkich tych dziwności lekarstwo jest takie samo. Nie panikuj, lecz poszukaj wolnego miejsca.
Pierwszym do rozważenia jest polecenie CLEAR. Jeśli masz kilka zmiennych, na których ci nie zależy, to to należy zrobić.
Jeśli to nie rozwiąże sytuacji, poszukaj w programie zbędnych poleceń, takich jak polecenia REM i wykasuj kilka z nich.
Gdy pamięć się zapełnia, dzieją się dziwne rzeczy, lecz zwykle nie są one beznadziejne.
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2024 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.