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:

  1. PLOT: Rysuje pojedynczy punkt o zadanych współrzędnych X i Y.
  2. DRAW: Rysuje linię od ostatniego punktu do zadanej lokalizacji.
  3. 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.