Powrót do korzeni: Programowanie w języku BASIC na komputerze The Spectrum
Premiera urządzenia The Spectrum wywołała spore poruszenie w świecie miłośników retrokomputingu. Choć sieć zalała fala unboxingów i testów dołączonych gier, warto spojrzeć na ten sprzęt z innej perspektywy. The Spectrum, będący w rzeczywistości zaawansowanym emulatorem zamkniętym w nowoczesnej obudowie, to nie tylko konsola do gier, ale przede wszystkim narzędzie programistyczne. Dzięki pełnowymiarowej klawiaturze z naniesionymi komendami języka ZX BASIC, urządzenie to staje się idealną platformą do nauki podstaw programowania oraz tworzenia własnych gier i aplikacji.
Złota biblioteka programisty – literatura z epoki
Zanim przejdziemy do praktyki, warto pochylić się nad zasobami wiedzy, które kształtowały pokolenia programistów w latach 80. i 90. Literatura tamtego okresu jest niezwykle bogata i do dziś stanowi cenne źródło informacji.
Jedną z fundamentalnych pozycji jest wydana w 1987 roku książka „Pierwsze kontakty z mikrokomputerem ZX Spectrum”. To idealny podręcznik dla osób, które nigdy wcześniej nie miały styczności z tą architekturą. Autorzy w przystępny sposób wyjaśniają obsługę klawiatury oraz podstawowe komendy BASIC-a, a całość uzupełniają gotowe listingi programów do samodzielnego wpisania.
Kolejną, wręcz kultową pozycją, jest „Przewodnik po ZX Spectrum”. To kompendium wiedzy traktujące o komputerze w sposób całościowy. Znajdziemy tam nie tylko naukę BASIC-a, ale także wprowadzenie do Assemblera, opisy innych języków (takich jak C, Forth czy Logo) oraz szczegółowe aspekty sprzętowe, w tym rozpiskę szyny krawędziowej oryginalnego modelu.
Dla osób szukających wyzwań doskonałym wyborem będą publikacje Rolanda Wrocławka, który na łamach „Młodego Technika” prowadził kursy programowania, czy popularna seria „Wszystko o komputerze”, składająca się z 13 zeszytów tworzących kompleksowy kurs od podstaw do zaawansowanych technik maszynowych. Nie można też zapomnieć o prasie komputerowej, ze słynnym „Bajtkiem” na czele, gdzie rubryka „Klan Spectrum” dostarczała niezliczonych listingów, w tym tak użytecznych narzędzi, jak generatory polskich znaków.
Filozofia klawiatury i tryb edycji
Klawiatura The Spectrum na pierwszy rzut oka może wydawać się skomplikowana. Wynika to z faktu, że każdemu klawiszowi przypisano konkretne komendy języka BASIC. Zamiast wpisywać słowo „PRINT” litera po literze, wywołujemy je jednym naciśnięciem klawisza „P”.
System operuje na różnych typach kursora:
- Kursor L: Służy do wpisywania liter i kontynuowania komend.
- Kursor E (Extended): Wywoływany kombinacją klawiszy CAPS SHIFT i SYMBOL SHIFT. Pozwala na dostęp do komend oznaczonych na zielono, takich jak TAB czy funkcje matematyczne.
- Symbol Shift: Używany wraz z kursorem E, daje dostęp do poleceń oznaczonych kolorem czerwonym (np. CIRCLE, SCREEN).
Współczesna wersja komputera w trybie klasycznym wita nas ekranem powitalnym z datą zaktualizowaną na rok 2024, ale cała reszta – w tym logika edycji linii – pozostała wierna oryginałowi. Programowanie w BASIC-u wymaga numeracji linii (od 1 do 9999). Edycja istniejącej linii odbywa się poprzez najechanie na nią znakiem wyboru i użycie kombinacji CAPS SHIFT + 1, co przenosi kod do dolnej części ekranu, gdzie możemy dokonać zmian. Skasowanie linii jest jeszcze prostsze – wystarczy wpisać jej numer i nacisnąć ENTER.
Interakcja z użytkownikiem i logika programu
Podstawą każdego programu jest komunikacja. Komenda PRINT służy do wyświetlania treści na ekranie, natomiast BORDER pozwala zarządzać kolorem ramki (dostępna paleta obejmuje 8 podstawowych kolorów, choć w pełnej konfiguracji Spectrum obsługuje ich 15).
Prawdziwa zabawa zaczyna się jednak przy użyciu komendy INPUT, która wymusza interakcję. W BASIC-u kluczowe jest rozróżnienie typów zmiennych:
- Zmienna numeryczna (np. A) przechowuje liczby.
- Zmienna tekstowa (np. A$) przechowuje ciągi znaków.
Łącząc to z instrukcją warunkową IF…THEN oraz komendą skoku GOTO, możemy stworzyć prosty mechanizm „pseudo-chatu” lub gry tekstowej. Program może zadać pytanie, poczekać na odpowiedź użytkownika, porównać ją ze wzorcem i w zależności od wyniku – wyświetlić reakcję lub zapętlić się, prosząc o ponowne wprowadzenie danych. Tak budowane były dawne gry paragrafowe, które mimo braku grafiki, potrafiły wciągnąć gracza na długie godziny.
Grafika i proste animacje
ZX Spectrum, mimo rozdzielczości 256×192 piksele, oferuje ciekawe możliwości graficzne. Do dyspozycji programisty oddano trzy główne komendy:
- PLOT: Rysuje pojedynczy punkt o zadanych współrzędnych X i Y.
- DRAW: Rysuje linię od ostatniego punktu do zadanej lokalizacji.
- CIRCLE: Pozwala narysować okrąg, wymagając podania współrzędnych środka oraz promienia.
Zastosowanie pętli FOR…NEXT pozwala na automatyzację procesu rysowania. Przykładowo, tworząc pętlę wykonującą się 20 razy i zwiększając w każdym kroku promień okręgu o zmienną z licznika, otrzymamy efektowną grafikę interferencyjną. Należy jedynie pamiętać o granicach ekranu – wyjście poza obszar roboczy skutkuje przerwaniem programu i błędem raportowanym przez interpreter.
Budowa silnika gry na przykładzie „Węża”
Wykorzystując zdobytą wiedzę, możemy pokusić się o stworzenie fundamentów pod prostą grę zręcznościową. Kluczowym elementem jest tutaj instrukcja INKEY$, która w przeciwieństwie do INPUT, nie zatrzymuje programu, lecz sprawdza „w locie”, czy jakiś klawisz jest w danej chwili naciśnięty.
W prostym schemacie sterowania pikselem (analogicznym do gry „Wąż”) używamy klawiszy:
- Q / A: Ruch w pionie (góra/dół).
- O / P: Ruch w poziomie (lewo/prawo).
Program w pętli odczytuje stan klawiatury, aktualizuje współrzędne X i Y, a następnie rysuje punkt w nowym miejscu. Aby gra była grywalna, można dodać warunki sprawdzające, czy gracz nie dotknął krawędzi ekranu. Taki model programowania, oparty na ciągłym sprawdzaniu warunków i aktualizacji obrazu, jest podstawą tworzenia gier wideo od dziesięcioleci.
Podsumowanie
Programowanie na The Spectrum w języku ZX BASIC to fascynująca podróż do czasów, gdy zrozumienie działania komputera było na wyciągnięcie ręki. Choć dziś dysponujemy ogromną mocą obliczeniową i zaawansowanymi silnikami graficznymi, ograniczenia 8-bitowej architektury wciąż uczą dyscypliny, logicznego myślenia i kreatywności. Niezależnie od tego, czy chcesz odświeżyć sobie wspomnienia z młodości, czy po raz pierwszy spróbować swoich sił w retro-kodowaniu, świat 15 kolorów i 48 kilobajtów pamięci wciąż ma wiele do zaoferowania.
Zachęcamy do eksperymentowania z kodem i sięgania po starą literaturę – to najlepszy sposób, by w pełni wykorzystać potencjał drzemiący w tym niepozornym urządzeniu.
Warto wypróbować: Spróbuj napisać program, który zmienia kolory ramki w rytm naciśniętych klawiszy lub stwórz prosty labirynt tekstowy, korzystając wyłącznie z komend PRINT i INPUT.