Hobby lub zbieractwo
Jest sobie Amstrad CPC6128, taki 8-bitowy komputer z 1985r. To o nim od lat miało być tu mnóstwo postów, swoją drogą. To był mój pierwszy komputer, tata pozwalał mi z niego “korzystać” (na początku bardziej grać, bawić się metodą prób i błędów, później faktycznie sporo się z nim nauczyłem) gdy miałem kilka lat.
Amstrad jako firma zajmowała się produkcją elektroniki, głównie sprzętu RTV, między latami 1968 (założenie) a 2007 (przejęcie przez Sky) [1]. Schneider, który sprzedawał ich komputery pod swoją nazwą w Niemczech, działa do dziś (i produkuje raczej elektrykę niż elektronikę). Ja też mam wersję niemiecką… między innymi.
Po raz pierwszy usiadłem do niego jako kilkulatek. W relacji mojego taty trzy- albo czterolatek. Włączał mi jakieś gry, a ja się cieszyłem, wiadomo. Potem z kolei pamiętam, że zacząłem odkrywać, że niektóre przypadkowe kombinacje klawiszy powodują, że komputer robi rzeczy, np. zmienia tryb graficzny albo odwraca kolory tekstu i tła; szybko zorientowałem się, że muszą zaczynać się od `?"
. Tata na to odkrycie mnie pochwalił, co podobno było momentem determinującym całą resztę mojego życia – tak oto postanowiłem spędzać z komputerem więcej czasu, zrozumieć, co się dzieje, a w efekcie pokochałem to i zostałem programistą. Ale co dokładnie było tu do kochania? Tym właśnie chętnie się podzielę!
8-bitowe komputery miały pewną cechę wspólną. Witały użytkownika znakiem zachęty języka BASIC.<słaby żart>
Miały po osiem bitów.</słaby żart>
BASIC to język programowania stworzony dla początkujących (B jest od Beginners). Komunikat Ready
oznaczał, że komputer jest już gotowy na wydawane mu polecenia, a konkretniej właśnie na przyjęcie komend lub całego programu w języku BASIC. Można było po prostu załadować program/grę z dyskietki lub kasety magnetofonowej (jeśli nie masz pojęcia, jak można umieścić program na kasecie, daj znać, a rozwinę temat), zwykle poleceniami typu RUN"nazwa"
lub LOAD""
. Można było jednak też po prostu wpisać program. Jednym z najbardziej klasycznych przykładów, które każdy kiedyś wpisał, było:
10 PRINT"Hello, World"
20 GOTO 10
RUN
Co tu się dzieje? Te 10
i 20
to numery linii – jeśli wpisaliśmy coś zaczynającego się od liczby, to było to zapamiętywane jako podana linijka programu. Czemu 10 i 20 a nie 1 i 2? Była to konwencja pozwalająca łatwo potem “wcisnąć” pomiędzy dodatkowe linijki w ramach poprawek naszego programu. Ponieważ nie było edytora, wpisywało się linia po linii, a komputer każdą wykonywał lub zapamiętywał, jedyny sposób by dodać coś pomiędzy to dopisać np. 15 PRINT"Greetings from 2021"
. Idąc dalej: PRINT
to rozkaz “wypisz mi to na ekranie”, a GOTO
rozkazuje w linijce 20 natychmiastowy przeskok z powrotem do linijki 10. Tak oto powstaje nieskończona pętla (coś normalnego w latach 80., dziś potencjalnie marnowanie energii i obciążanie systemu). Ekran zapełnia się komunikatem “Hello, World” wypisywanym linia po linii.
Tak zostawałeś/-łaś programist(k)ą, w ciągu minuty. Komputer wykonał Twój program, a Ty widziałeś/-łaś od razu efekt swojej pracy. Czy to nie cudownie proste?
Co można z tym zrobić?
Masz zatem komputer i możesz napisać i uruchomić na nim program w kilkadziesiąt sekund od włączenia zasilania (czy wspominałem już, że w tamtych czasach komputer uruchamiał się szybciej niż jego monitor?), ale nie wiesz, jak zrobić coś poza Hello world
? Otwórz instrukcję.
Instrukcje obsługi komputerów 8-bitowych, w przeciwieństwie do dzisiejszych instrukcji obsługi dołączanych do komputera, po pierwsze istniały, po drugie były bardzo obszerne i obejmowały znacznie więcej niż wskazówki, gdzie wetknąć jaki przewód i jak włączyć urządzenie. Ta od Amstrada CPC 6128 była dla mnie wręcz fascynująca i wciągająca. Mało tego, nadal jest!
Oczywiście, dowiadywaliśmy się obowiązkowo, jak podłączyć sprzęt (spójrzcie, jakie ładne techniczne rysunki), przy czym w wypadku Amstrada ciekawym może być to, że jego zasilaczem był jego standardowy monitor:
Tu dygresja: charakterystyczne dla komputerów domowych tamtej ery jest też to, że monitor i klawiatura to jedyne dwa elementy zestawu – klawiatura zawierała faktycznie cały komputer (dlatego są to klawiatury zdecydowanie grubsze niż dzisiejsze).
Niespotykane jest natomiast, że w instrukcji znajdowaliśmy także informacje o tym, jak komputer programować, pisane w niebywale przystępny sposób, prowadząc użytkownika krok po kroku przez coraz bardziej rozbudowane przykłady.
Jeden z rozdziałów to wręcz szczegółowy opis wszystkich komend języka BASIC, a te obejmowały też obsługę kolorów, dźwięków (to też zaskakująco skomplikowany i wciągający temat), a nawet rysowania punktów i linii na ekranie.
Użytkownik takiego komputera ma więc do dyspozycji gry i programy, które udało mu się zdobyć (a przez pierwsze kilka, może 10, lat popularności tych sprzętów nie było w Polsce prawa zabraniającego kopiować oprogramowanie!), ale może też nauczyć się tworzyć własne – i nie potrzebuje do tego nic więcej niż sam komputer i jego podręcznik użytkownika, nie musi też wydawać żadnych dodatkowych pieniędzy! Możliwości są nieskończone! To daje niesamowite poczucie rozwoju, sprawczości (widzimy, jak rozwija i działa coś, co sami zrobiliśmy), odkrywania wciąż czegoś nowego, ogromnego pola do eksperymentów.
Każdy posiadacz komputera takiego jak Amstrad, Commodore, Atari czy ZX Spectrum mógł tego doświadczyć, a fakt, że komputery te wręcz zachęcały do nauki programowania witając użytkownika gotowością do programowania w BASICu, bardzo w tym pomagał. Podręcznik do Amstrada jest tak dobry, że niektórzy wciąż uczą podstaw programowania swoje dzieci na jego podstawie [2]. Co więcej, w czasopismach komputerowych z tamtego czasu (a niektóre zyskują teraz cudownie wierne reprodukcje – p. Bajtek [3]) typowe było zamieszczanie programów i gier do samodzielnego przepisania na komputer, więc wystarczyła jedynie gazeta i wolny czas, a człowiek zyskiwał coś całkiem nowego, często z wyjaśnieniem, jak działa, czasem bez:
Podejrzewam, że jest to jeden z powodów, dla których wiele osób dorastających w latach 80. i 90. zostało programistami lub elektronikami.
To dopiero początek
Jeśli to nie wydaje się wystarczająco ciekawe, wyobraźcie sobie, że sama instrukcja komputera sugeruje Wam już istnienie magicznych akcesoriów i urządzeń peryferyjnych, które możecie do niego podłączyć, chociaż być może nawet nigdy ich u nikogo nie widzieliście. Była tam mowa nie tylko o drukarkach, magnetofonach i stacjach dyskietek jako pamięci zewnętrznej (druga stacja dyskietek ma dużo sensu, kiedy Twój komputer ma 128kB RAM, a dyskietka mieści dwa razy po 180kB), ale i mitycznych urządzeniach takich jak ploter (wyobraź sobie coś w stylu dzisiejszej drukarki 3D z cienkopisem w miejscu głowicy – rysuje wektorowo, żadnych kropeczek i pikseli!) czy pióro świetlne – jest rok 1990, Ty masz wielki monitor z kineskopem i klawiaturę, a po zakupie tego urządzenia możesz… pisać odręcznie po ekranie! Od ojca słyszysz opowieści o syntezatorach mowy, dołączanych do gniazda rozszerzeń, a które sprawiają, że komputer jest w stanie mówić głosem podobnym do tego, z którym kojarzony był Stephen Hawking, lecz jeszcze bardziej mechanicznym. Podobno istnieją gry z pistoletem ekranowym, którym strzela się do postaci na monitorze, podobno istnieją programy i drukarki umiejące drukować tekst wieloma fontami. Podobno ktoś gdzieś podłączył do niego dysk twardy i ma niemal nieskończoną przestrzeń 30 megabajtów! To jakby 50 mieć dyskietek!
Komputery te były też dość proste elektrycznie, wszystkie elementy przylutowane do płyty głównej dało się (i wciąż większość się da) nabyć w najbliższym (ginącym już dziś) sklepie elektronicznym, wylutować i zastąpić samemu.
Port stacji dyskietek, czy magiczny EXPANSION PORT (port rozszerzeń) były wyprowadzone na zewnątrz komputera, a każdy jeden ich pin (drucik) był podpisany przynajmniej z nazwy/funkcji w intrukcji użytkownika. Co było w porcie rozszerzeń? Wszystko, każdy sygnał, jaki przechodził przez wnętrze komputera. W praktyce oznaczało to naprawdę nieskończone możliwości rozbudowy, które są wykorzystywane do dziś (tak, mówię o 2021) i opowiem o nich jeszcze nie raz. Wprawni elektronicy (czyt. ci, którzy bardziej niż ja nadążali na fizyce w szkole i/lub elektronice na studiach) sami bawili się w konstruowanie własnych urządzeń. Mój korespondencyjny znajomy z Łodzi budował na przykład sterownik silników do lasera, programując na Amstradzie własne rysowane przez niego kształty. Wtedy nie kupowało się do tego Arduino i gotowców, wtedy tworzenie oprogramowania było w standardzie, a sprzętu – jak z klocków LEGO, dostępnych przynajmniej w 10 sklepach każdego dużego miasta.
Magia nieustających odkryć
Te nieodgadnione wciąż możliwości, tajemnice skrywane przez komputer, a obnażane przez z trudem zdobyte od kolegów czasopisma (urodziłem się za późno by kupować je samemu) działały na mózg podobnie jak odkrywanie nowych postów na Facebooku czy Instagramie, z tą różnicą, że rozwijały wiedzę, wyobraźnię, zdolności logicznego myślenia i znajomość własnego komputera.
Pamiętam, jaką radość dawało odkrywanie, co jest na dyskietkach i jak to uruchomić. Nawet mozolne przepisywanie przykładowych programów i gier z podręcznika dawało mnóstwo satysfakcji, gdy po wpisaniu RUN
program okazywał się działać i robić coś, czego nigdy wcześniej na tym ekranie nie widzieliśmy.
Pamiętam, jak dostałem tę kolekcję “Bajtków” (czasopisma) od kolegi, który miał Atari 65XE, a w kilku numerach w niej był spis systemowych procedur Amstrada, czyli totalnie już magiczne zaklęcia typu “przygotuj takie dwie wartości i zrób skok pod systemowy adres 1234, a Twój napęd dyskietek się uruchomi, albo obraz na ekranie poszerzy się o 8 pikseli”. Fascynacja z odkrywania rzeczy wczoraj niemożliwych.
Pamiętam, jak w sklepie spółdzielni Społem na moim osiedlu wymieniono elektromechaniczne kasy na nowoczesne kasy fiskalne z bursztynowym monitorem. Omamiony technologicznym postępem jedenastolatek napisał wtedy w BASICu program symulujący działanie kasy fiskalnej. Z wpisanych na stałe produktów i kwot można było wybierać zakupy, a one wyświetlały się w okienkach, tabelkach, ramkach i sumowały kwoty. Byłem z siebie dziko zadowolony. Do dziś chciałbym znaleźć tę dyskietkę!
Pamiętam, gdy odkryłem instrukcję obsługi drukarki igłowej, którą miał tata, a w niej znowu opis magicznych komend! Gdy wyślesz odpowiednią sekwencję znaków, zmieniasz jakość druku, wysuwasz i cofasz papier o ile chcesz, drukujesz dowolną sekwencję graficzną, cofasz głowicę drukującą, czary, magia! Namacalne wyniki!
Co dziś jest w tym fajnego?
To samo!
Wciąż żyją społeczności wokół tych komputerów, wciąż są pełne pasjonatów i ekspertów. Jeśli Twój komputer potrzebuje emulowanej stacji dyskietek, na cały świat sprzedaje je z Polski Lotharek. Jeśli potrzebujesz sterownika dyskietek do CPC464 (który miał tylko wbudowany magnetofon), przy okazji będącego emulatorem stacji ORAZ rozszerzeniem pamięci z 64KB do 512KB – sprzeda Ci go równie międzynarodowo znany Zaxon z Częstochowy. Jeśli coś w komputerze umarło, na pewno pomoże Ci użytkownik CPCWiki o pseudonimie Bryce (z Niemiec), a o obsługę WiFi i zdalny upload plików i podmianę wbudowanego oprogramowania rozszerzy Twojego CPC niejaki Duke (z… Danii?) za pomocą karty M4.
Mało tego, nadal powstają gry na Amstrada czy C64, bijące na głowę wszystko to, co wyprodukowano w latach 80. i 90., robiące rzeczy uznawane na tych komputerach za technicznie niemożliwe, a do tego niesamowicie wciągające. Przykładem zwłaszcza tego ostatniego kryterium jest moim zdaniem zwycięski projekt konkursu CPCRetroDev 2017 – Baba’s Palace:
Tworzenie gier i oprogramowania na Amstrada jest też wyzwaniem dla tzw. demosceny – grona artystów i programistów uwielbiających wyzwania i ograniczenia. Tylko 64kB pamięci? Tylko 16 kolorów na raz w niskiej rozdzielczości? Tylko 3 dźwięki i 1 szum jednocześnie? Potrzymajcie mi piwo. Miłośnicy programowania i optymalizacji mogą zmierzyć się z wyciskaniem maksimum z każdego cyklu zegara tak, by gra czy demo chodziło płynnie mimo tego, że komputer ma procesor pracujący z częstotliwością tylko 4 MHz, a o megabajtach czegokolwiek nawet nie śnił. Zainteresowanym polecam poszukać demo i dzieła grupy “Batman Forever”.
Do tego dzięki temu, że komputery te mają stosunkowo prostą budowę, zawsze jest większa szansa przywrócić im pełną sprawność nawet gdy uległy uszkodzeniu, a znający się na elektronice mogą to zrobić samodzielnie – podobnie jak rozszerzyć funkcjonalność komputera o cuda-wianki (obsługę dysków twardych, radia FM, internetu, myszki, USB, telegazety, czego tylko chcecie).
Każdego dnia możesz odkryć coś nowego i czegoś nowego się nauczyć, a prasa z lat 80. pomoże Ci zrozumieć, jak tak naprawdę działają dzisiejsze (!) komputery i systemy operacyjne. Bo wtedy się to każdemu tłumaczyło, dziś rzadko się o aż tak niskopoziomową i fundamentalną wiedzę dba.
Co znaczy ośmiobitowy?
To pojęcie, podstawowy punkt odniesienia w tym tekście, jest równie często używane, co rzadko wyjaśniane. Wikipedia dość dobrze definiuje, czym jest procesor 8-bitowy:
Oznacza to, że za każdym odczytem lub zapisem do pamięci operacyjnej komputera oraz w wewnętrznych transferach procesora używa się 8-bitowych porcji informacji. W systemach 16-, 32- czy 64-bitowych używa się odpowiednio co najwyżej 16-, 32- i 64-bitowych porcji danych. 8 bitów pozwala na określenie do 28 = 256 różnych informacji, co jest stanowczo za mało przy adresowaniu pamięci komputera, dlatego procesory 8-bitowe, mają zazwyczaj 16-bitową szynę adresową (16-bitowy adres pamięci) – czyli każda z komórek ma adres wyrażony za pomocą 16 bitów (np. MOS 6502, Z80, 8080). Przy 16 bitach przestrzeń adresowa rośnie do 64 kilobajtów (216).
Architektura 8-bitowa – Wikipedia
Stąd tak popularne w nazwach tych komputerów liczby “64” oznaczające 64KiB pamięci (Commodore 64, Amstrad CPC464, Amstrad CPC664) lub zbliżone (Atari 65XE, ZX Spectrum 48).
Tak, dzisiaj w średnim telefonie mamy często sześćdziesiąć pięć i pół tysiąca razy więcej pamięci operacyjnej (4GiB), niż wtedy miały komputery zajmujące pół biurka.
Nagły, niespodziewany atak pasji kolecjonerskiej
W tym miejscu docieram do tytułowego dylematu posta – czy to moje hobby i nostalgia, coś, co wciąż mnie rozwija i bawi, czy niekontrolowane zbieractwo zakupowe?
- Do Schneidera CPC 6128 z dzieciństwa, odrestaurowanego przeze mnie w 2018 (chcecie wiedzieć, jak?) dołączył…
- brytyjski Amstrad z tego samego modelu w idealnym stanie (i idealnie zachowanym pudełku),
- jeszcze jeden Amstrad CPC6128, którego naprawię, wyczyszczę i wystawię na aukcji
- Schneider CPC464, którego kupiłem mając kikanaście lat głównie po to, by mieć kolorowy monitor (miałem tylko zielony)
- Amstrad CPC464, do wyczyszczenia i sprzedania (ew. sprzedam Schneidera, po porównaniu różnic),
- Chcę poznać też modele Plus…
- Zacząłem przepraszać się z Commodore 64 i ze Spectrum… za sprawą C64 Maxi…
ale to właściwie spoilery przyszłych tematów… 😉
Bibliografia
[1] https://en.wikipedia.org/wiki/Amstrad
[2] https://www.youtube.com/watch?v=KlPtOe4youc
[3] https://allegro.pl/uzytkownik/Retronics/stare-komputery-pozostale-77927
[4] https://lotharek.pl/
[5] https://www.sellmyretro.com/user/profile/zaxon