W dniu 29 grudnia 2013 r. otrzymałem wiadomość, która w zasadzie
zawierała tylko pytanie dotyczące możliwości śledzenia wykonywania
programu napisanego w Turbo-Basicu XL. Autorem e-maila był
Piotr „Amentes” Zyśk.
Amentes
Proste pytanie przekształciło się w sporą korespondencję, dzięki
której, jak się okazało, poznałem bardzo sympatycznego człowieka,
który już od wielu lat związany jest z naszym - choć nie tylko -
ukochanym komputerem Atari. Najlepiej jednak będzie, jak trochę o
tym opowie sam Piotr.
Arkadiusz Lubaszka (larek):
Piotrze, napisałeś
sporo programów na Atari, a Twoje pytanie dotyczące TBXL świadczy o
tym, że nie jesteś początkującym programistą.
Piotr Zyśk (Amentes):
Napisałem już proste
programiki w Forth, Action i maszynowym, troszkę lepsze w Basicu i
TurboBasicu. Poza tym pisałem w Delphi, Pascalu, C++, VB no i w
cudownym AMOSie i AMOS3D. Piszę dla siebie i mojej córeczki, bo
programowanie to moje któreś tam zainteresowanie, ja przy tym
odpoczywam. Nie jestem informatykiem, interesują mnie stare
komputery i języki programowania. Lubię oglądać czyjeś proste
programy, napisane nieprofesjonalnie, ale ambitnie. Moim pierwszym
komputerem był ZX81 (to był rok 1980~81, 6 klasa podstawówki) do
dziś go posiadam i chyba jeszcze działa :-)
larek:
6 klasa podstawówki… czyli jesteś
rocznik gdzieś 67-68… Ja jestem 70.
Amentes:
Tak, mój rocznik to 69, także
niewiele się pomyliłeś w obliczeniach. Rok czy dwa w tą, czy w tą
stronę - nie ma znaczenia - uznajmy, że jesteśmy rówieśnikami.
Według mnie różnica wieku zatraca się mniej więcej po 30-tce.
Widziałem na stronie, którą
opisałeś o sobie (przedwczoraj to odkryłem...) począwszy od lat
najmłodszych - fajnie to się czyta. Ja też miałem podobne
pragnienia związane z pierwszymi komputerami. Kurek i Kamiński byli
moimi idolami, a program w TV SONDA wchłaniałem jak młody kaszalot
- szczególnie te programy o grach na Spectrum, pragnąłem tego jak
głodny chleba a było tego jak na lekarstwo. Czasopisma: Bajtek,
IKS, Atari, i in. o komputerach czytałem ochoczo. Dziś, po
przeżyciu połowy, mam podobne jak Ty pragnienia uwiecznienia moich
przygód z m.in. Atari w jakimś medium. Robiłem program na Atari -
Bazę danych moich programów, opisywałem, co one robią, drukowałem
na drukarce opisy moich programów, robiłem w PowerPoint
prezentacje. Zastanawiałem się, co jeszcze można wymyślić i...
znalazłem Twoją stronkę w Internecie (widocznie słabo szukałem, bo
prowadzisz ją już od kilku dobrych lat).
larek:
Bardzo mocno zachęcam do podzielenia
się tym, co do tej pory zrobiłeś. Tym bardziej, że poświęciłeś
zapewne mnóstwo czasu na przygotowanie opisów i prezentacji. Z
doświadczenia wiem, że nie ma lepszej zapłaty za nasz trud jak to,
że ktoś doceni nasze starania.
Amentes:
Pisze się programy zwykle dla siebie,
potem dla potomstwa - a potem...? Chętnie podzielę się moimi
programami - będę mieć konkretny cel teraz. Pozbieram niezwłocznie
wszystkie moje wypociny i spróbuję gdzieś to podrzucić.
larek:
Wracając do śledzenia programu w
TBXL…
Amentes:
Próbowałem już pisać programik TRACE
dla Turbo Basica, ale jest on nieefektywny. Jego działanie polega
na wstawieniu między linie programu dodatkowych linii zawierających
dane o numerze linii poprzedzającej wraz z instrukcją STOP, która
jest wykrywana przez TRAP i obsługując podaje dane, które
próbowałem kontrolować (no to tak w skrócie...). Jednak zwiększa
się mocno objętość programu, pojawiały się pewne problemy i
zawiesiłem działanie w tym kierunku.
Natrafiłem niedawno na program TRACE w zwykłym Basicu dogrywany do
analizowanego programu przez ENTER. Przerzuca ROM do RAM i
podmienia pewną procedurkę. Jest w języku maszynowym i działa
pięknie. Przeanalizowałem ten program oraz procedury maszynowe w
nim zawarte i znalazłem skok JMP xxxx do procedurki w ROMie
[chyba], której zadaniem jest właśnie wyświetlenie linii, która
będzie wykonywana. To samo chciałem zrobić w TurboBasicu - i tam
znalazłem tą procedurę, ale niestety nie działa - zawiesza system.
Jeśli by ją "podrasować" na pewno by zadziałała - wiem, że jest to
możliwe. Ja słaby jeszcze jestem w języku maszynowym i tak sobie
pomyślałem, że może już ktoś kiedyś napisał program TRACE na
TurboBasic.
larek:
Obawiam się, że przerobienie tego
programu od zwykłego Basica nie będzie możliwe. Skoro program ten
przepisuje ROM do RAM i coś zmienia, to sam w sobie będzie
kolidował z TBXL, który zajmuje część pamięć RAM pod ROM. Turbo
Basic XL zajmuje dwa razy więcej pamięci niż Atari Basic. Sporo
kodu TBXL-a jest schowana właśnie pod ROM. Oczywiście nie twierdzę,
że na 100% nie da się tego zrobić, bo być może ktoś kiedyś nie
będzie wiedział, że się nie da i… to zrobi ;-)
Amentes:
No, prawie wybiłeś mi z głowy ten
TRACKING w TB ale ostatecznie trafił do mnie ten silny argument, że
może ktoś kiedyś zrobi taki program nie wiedząc, że jest to
niemożliwe - wówczas skorzystamy na tym my wszyscy :-). Ja jestem
uparty, ale nie z natury, szczególnie, jeśli chodzi o programowanie
- jak mi się coś zamani, to muszę to zrealizować.
No i wyszło na to, że Piotr nie uwierzył mojemu „tego się nie da” i
zaczął tworzyć program do śledzenia innych programów napisanych w
Turbo-Basicu XL.
Poniżej przedstawiam kolejne (choć nie wszystkie) wersje programu
Piotra. Celowo pominąłem szczegółowe opisy działania, gdyż zdaję
sobie sprawę, że nie każdego czytelnika takie technikalia
interesują.
Pierwsza wersja programu.
Film prezentujący działanie drugiej wersji
programu.
Spostrzegawczy oglądający z pewnością zwrócili uwagę na szybko
poruszający się kursor na ekranie. Zapytany przeze mnie o to Piotr
odpowiedział tak:
Amentes:
Kiedyś, dawno temu, posiadanie pióra
świetlnego do Atari było jak posiadanie Ferrari (o się zrymowało).
Dla mnie było to coś nieosiągalnego. A emulator - to cudowna
sprawa, który rozwiązuje wiele spraw posiadania wirtualnego
sprzętu. Stąd użycie pióra świetlnego sterowanego myszką w moim
programie - znacznie ułatwia pracę i przyspiesza tracking.
Jak widać, Piotr wykazuje się niezwykłymi pomysłami przy realizacji
swojego projektu. Ale to jeszcze nic! Kolejne wersje przynoszą
znacznie większe zmiany i niespodzianki. Piotr słusznie zauważył,
że aby analizować program innym programem, to oba muszą zmieścić
się w pamięci komputera. Przy krótkich programach nie jest to
przeszkodą, ale przy dłuższych już tak…
Amentes:
Chciałem z radością powiedzieć, że
udało mi się zrobić program TRACE TB, który pięknie analizuje
program w Turbo Basicu, pokazuje zmienne i ich wartości, działa bez
problemów w różnych trybach graficznych – jest kontynuacją
poprzednich wersji tego programu z ważną inowacją - drugim ekranem.
Sam zobacz…
larek:
Przyznam, że jestem pod wrażeniem.
Skoro jedno Atari to mało, to dlaczego by nie użyć dwóch
komputerów? Dobre. Bardzo dobre!
Też jesteście zaskoczeni pomysłem Piotra? To trzymajcie się
mocniej!
Amentes:
Wygospodarowałem trochę czasu i
wyściubiłem nową wersję programu TRACETB. Tym razem zaprzęgłem do
pracy Excel. Dzięki niemu można uwidocznić znacznie większy obszar
listingu Atari. Przy odpowiednim zmniejszeniu widoku ekranu Excela
łapie ze 3-4 pełne ekrany listingu Atari. Poza tym można
podświetlić wykonywane linie programu Atari. Każdorazowe
naciśnięcie klawisza F2 na emulatorze Atari powoduje oddźwięk w
arkuszu Excela. Cudem udało mi się połączyć te dwa programy.
Wykonałem do tego nową czcionkę o nazwie "Atarka", dzięki niej
można w pełnej krasie oglądać znaki Atari na Excelu. Wszystko jest,
jak zwykle, w powijakach a powinno działać po naciśnięciu
przysłowiowego jedynego przycisku – oczywiście zrobię tak, ale
muszę jeszcze troszkę popracować. Działanie, jeszcze gorącego
programu, chciałem uchwycić programem CamStudio. Wyszło mi to
troszkę nieporadnie, ale chciałem w ten sposób zamknąć pewien etap
procesu projektowania, teraz zajmę się już tylko kosmetyką. Gdy już
będzie gotowe zamknę moją pracę w jednej dyskietce systemowej. Rzuć
okiem na klip wideo, który przesyłam w załączeniu i daj ze trzy
słowa – co o tym sądzisz…
larek:
Właśnie wróciłem z pracy i pierwsze co,
to po zobaczeniu przesłanego filmu szukałem szczęki na podłodze ;).
Nie mam bladego pojęcia, jak to jest zrobione…
Prawda, że niezwykłe? Mam nadzieję, że Piotr będzie kontynuować
swoją pracę nad programem, bo pomysły (i umiejętności!) ma
zdecydowanie ponadprzeciętne. Przyznam, że liczę tu na całą
społeczność AtariOnline – wesprzyjmy Piotra w jego pracy
przynajmniej dobrym słowem!
W oczekiwaniu na kolejne wieści o programie TRACE przedstawiam
starsze programy Piotra z jego krótkimi komentarzami.
-
Cyfry_Liczby2.a8s - wpisuj liczby i patrz, co
się dzieje.
-
Ulamki.a8s - dodawanie ułamków, prosty program
dla córeczki (SPACJA i RETURN).
-
KodKaroli2.a8s - tajemniczy kod wyszukany w
książkach harcerskich przez moją córcię.
-
Morse.a8s - może się spodobać harcerzom, używa
się klawisza START.
-
Ogrodnik.a8s - to gierka. Jest wyłącznie dla
osób cierpliwych ze względu na szybkość działania (do poprawy w
przyszłości). Ma ona dla mnie wyjątkowe znaczenie, ponieważ była
przyczyną przegranej przeze mnie 50 zł. Kiedyś się założyłem z
bratem o taką kwotę, że gra jest na tyle trudna, że nie uda mu się
przejść 3-ego etapu. Niestety gra wyjątkowo się zbiesiła i
wygenerowała zbyt późno robale i mu się udało... :-). Steruje się
strzałkami i spacją.
-
Mamut – program do rysowania. Pliki ATR trzeba
zainstalować w slotach:
1-slot) RysowanieMoje.atr - tu cały program w TURBO BASICU, ładuje
się przez LOAD "D:RYSOWA16.TBA"
2-slot) DyskDoRysowania1.atr - program wykorzystuje go do depozycji
rysunków (tu jest ok 10-ciu)
Po uruchomieniu programu głównego naciskamy D a potem Esc - włączy
się pokaz slajdów. Do programu dołączona jest szczegółowa
instrukcja obsługi.
-
ForthSpiralaKwadrat2.a8s
-
OkragForth.a8s - programiki w Forth - takie moje
pierwsze ambitne kroki...
W [ForthSpiralaKwadrat2.a8s] piszemy np.:
15 10 7 SPIRALA
oraz
10 25 20 KWADRAT
Pamiętać trzeba o odstępach między liczbami i nazwami wymyślonych
komend
Można wpisać jeszcze JA KIEDY.
W [OkragForth.a8s]
115 100 40 OKRAG aby popatrzeć na jego słynną szybkość...? ;-)
-
ActionDrukarka.a8s - w Action! - jedyny dłuższy
mój programik zrobiony w ramach nauki języka - po uruchomieniu
pojawi się okno Action! z początkową częścią listingu (mile uderza
brak numeracji linii - ewenement!) - teraz należy nacisnąć
Shift+Ctrl i trzymając je wciśnięte nacisnąć M. Przejdziemy do
paska menu na gorę a tam należy napisać samą literę "C" oraz
wcisnąć Enter. Będzie kompilował mozolnie - dlatego można na chwilę
wcisnąć F7 (włączy się tryb turbo emulatora). U mnie kompiluje
10-15 sek. :-) Następnie należy napisać w tym samym miejscu samą
literę "R" oraz wcisnąć Enter. Ruszy! Używa się klawiszy strzałek
lewo lub prawo, Enter i Esc. Działa „Komputer” i „Drukarka”
-
ANIM14.ATR – program do projektowania znaków i
animacji. Dołączony jest obszerny opis w Wordzie.
-
Pole.a8s – program edukacyjny.
-
SymulatorCO.a8s – jak sama nazwa wskazuje jest
to symulator CO.
Wszystkie programy z opisami, które podesłał mi Piotr, zapakowałem
do jednego archiwum i udostępniłem tu:
Amentes_pliki.7z
larek:
Piotrze, serdecznie dziękuję, że
zechciałeś opowiedzieć parę słów o sobie i podzielić się z nami
swoim dorobkiem programistycznym. Mam nadzieję, że na tym się nie
skończy i usłyszymy jeszcze o Tobie i Twoich produkcjach. No i być
może do zobaczenia na jakimś zlocie…
Amentes:
Nie ukrywam, że chętnie wybiorę się
na jakiś zlot Atarowców - może w tym roku znów coś będzie
organizowane. Widziałem w Internecie filmiki reportażowe z takich
spotkań z lat poprzednich - aby w miarę blisko Białegostoku było -
jadę!
Serdecznie pozdrawiam – Piotr Zyśk.