!

[Atari] AtariOnLine: FORTH rozgryziony!

[1] # AtariOnLine | środa, 10 Kwietnia 2024 22:20CET

[Atari] AtariOnLine: FORTH rozgryziony!


Całkiem niedawno ukazało się wznowienie książki Jana Ruszczyca "Poznajemy FORTH". Pierwsze wydanie miało miejsce jeszcze w czasach PRL, w roku 1987, w okresie szalonej popularności ośmiobitowych Atari, które dopiero co pojawiły się w Pewexie (jesień 1985). Użytkownicy dostali sprzęt, za czym szło ogromne zapotrzebowanie na oprogramowanie i wiedzę o sprzęcie. Pisma komputerowe zaczęły się rozpisywać o Atari, a i rynek księgarski nie próżnował. Warszawskie wydawnictwo SOETO aktywnie szukało potencjalnych autorów, nawet z oczywistych względów takich, którzy dotychczas nie napisali żadnego podręcznika czy skryptu. Stawiano im niewielkie wymagania, o czym wspominali Wojtek Zientara i Klaudiusz Dybowski, z którymi przeprowadziłem wywiady - "żeby było o komputerach". Nakłady tych publikacji nie były wysokie jak na ówczesne czasy, bo maksymalnie kilka tysięcy sztuk, ale trzeba pamiętać, że nie obowiązywał wtedy rachunek ekonomiczny (im większe zapotrzebowanie tym większy nakład), a odgórnie ustalane limity przydziału papieru na druk danej książki. Nie wiadomo więc, jakie było faktyczne zapotrzebowanie na temat FORTH-a. Jak wiemy po latach, językiem tym interesowało się znacznie mniej osób niż asemblerem 6502, o którym Jan Ruszczyc również napisał książkę. Ale w świadomości społecznej, w tym wydawców i czytelników, było wrażenie, że FORTH to język stosunkowo popularny, wydajny i nawet przyszłościowy. Jak było naprawdę i skąd się wzięło to przeświadczenie?

O tym możecie poczytać we wstępie do reedycji tej książki. Bo jak zwykle właściciel wydawnictwa Retronics.eu, Jerzy Dudek nie poprzestał na wydrukowaniu oczyszczonej z błędów kopii tekstu z 1987 roku, ale aktywnie poszukiwał dodatków, o które można by książkę wzbogacić. Ponieważ poprosił mnie o napisanie czegoś, naświetliłem historię FORTH-a w polskiej prasie komputerowej, nieudaną próbę jego popularyzacji, a także powody, dla których książka "Poznajemy FORTH", teoretycznie przeznaczona dla użytkowników Atari, szeroko dostępna w niskiej cenie, tylko w bardzo znikomym stopniu przyczyniła się do powstania rodzimego oprogramowania dla naszej platformy.



Zaprosiliśmy też Bartka Gołdę, który na AtariOnline.pl wykazywał osamotnione zainteresowanie FORTH-em, do przedstawienia swojej wiedzy o praktycznym użytkowaniu atarowskiej implementacji tego języka. Bartek postanowił szczegółowo i systematycznie przebadać wszystko, co na naszych komputerach miało wspólnego z FORTH. Okazało się, że w kwestii FORTH na Atari panuje ogromny bałagan, krąży w sieci mnóstwo niesprawdzonych i nieprawdziwych informacji, a dostępne są wersje oprogramowania bez dokumentacji, dyskietki kalekie, popsute, a niektórych rzeczy po prostu nie ma, zaginęły zarówno one, jak i wiedza o nich. Bartek wykonał gigantyczną pracę archeologiczną i systematyzującą, którą prowadzimy i propagujemy w Polskim Towarzystwie Ochrony Dziedzictwa Technicznego (ptodt.org.pl), a której efektem jest znakomity i praktyczny dodatek do książki o implementacjach FORTH dla ośmiobitowego Atari. Praktyczny, ponieważ Bartek używał FORTH na Atari i poznał prawdziwe bolączki stworzenia sobie środowiska programistycznego, dzieli się nimi i ich rozwiązaniami z czytelnikami. Bartek w reedycji poprawił te listingi, które nie miały prawa działać, a nawet odkrył, analizując egzotyczne podręczniki FORTH z lat 80., że książka pana Jana nie jest w pełni oryginalna, udało się odnaleźć zapożyczenia.

Mniejszy objętościowo jest dodatek o kompilatorze Forth. Nazywa się foco65, a jego autorem jest Piotr Wiszowaty, który udzielił zgody na wykorzystanie w książce. Pierwotny tekst w języku angielskim został przez Bartka przetłumaczony z pomocą Piotra Fusika, a instrukcję uzupełnił krótkim opisem uruchamiania. Wisienką na tym książkowym torcie jest wywiad, który Bartek przeprowadził z Rolandem Pantołą, polskim twórcą gier w FORTH, a także autorem pamiętnego kursu FORTH, publikowanego w "Tajemnicach Atari".



To jest ta wartość dodana, o której zapominają albo której nie doceniają niektórzy komentatorzy, zadając pytanie "po co mam kupować książkę, skoro PDF jest za darmo w necie?". Faktycznie, jest nawet w naszej Bibliotece Atarowca tutaj. To nieco poprawiona wersja w stosunku do oryginalnej książki (o ile dobrze pamiętam, poprawki dokonał kolega Supaplex w 2009 roku). Ale wersja Retronics ma się tak do oryginału jak Porsche do Trabanta. Wersja SOETO to miałki papier, fatalny skład z błędami - utrudniające czytanie; niepoprawne listingi i braki, które poniekąd przekreślają sens dydaktyczny. W nowej wersji te wszystkie wady zostały wyeliminowane, a przejrzyste tabele, listingi, kolorowe ilustracje i wspomniane dodatki sprawiają, że jest to kompendium niezbędne każdemu, kto naprawdę chciałby na Atari stworzyć oprogramowanie w FORTH i ominąć zdradzieckie rafy, które czyhają na początkujących śmiałków. Bartek zbadał dla nas te odmęty, oznaczył na mapie niebezpieczne miejsca, dzięki współczesnemu wydaniu łatwiej będzie nawigować w świecie ciekawego, choć zapomnianego języka FORTH.



To nie koniec niespodzianek od Bartka i Retronics.eu. Jako ekstra dodatek do książki lub osobno można zakupić dyskietkę 5.25 cala (dwustronna, z jednej strony zabezpieczona przed zapisem, z drugiej odbezpieczona do pracy użytkownika). Bartek przygotował ją pod kątem programistów chcących się zmierzyć z tematem FORTH. Poniżej publikuję treść towarzyszącej jej ulotki, bo doskonale ilustruje, jaką uwagę Bartek przykłada do szczegółów i ile pracy wymagało przygotowanie wszystkiego. To nie jest dzieło robione na chybcika, byle jak. Ładnie sformatowany PDF jest dostępny u autora tutaj, a poniżej wersja www:

"Ta dyskietka zawiera źródła programów w Forth z książki "Poznajemy Forth" Jana Ruszczyca, przetestowane przy użyciu wersji języka "APX Extended fig-Forth Rev. 2". Na drugiej stronie (zabezpieczonej przed zapisem) znajduje się kopia zapasowa. Dobrym pomysłem jest wykonanie jeszcze jednej, dodatkowej, kopii. Trzeba do tego jednak wykorzystać właściwy kopier sektorowy. Sprawdzono, że prawidłowo zadziała m. in. aplikacja DISKCOPY oraz sprzętowa modyfikacja Atari "QMEG 4.0.4". Większość innych programów do kopiowania sektorowego nie poradzi sobie z tym zadaniem - format dyskietek fig-Forth nie jest zgodny z Atari DOS. Oprócz źródeł z samej książki (oraz powiązanych “ciekawostek”, w tym erraty do zastosowania FENCE/FORGET z rozdziału 7.3) załączono kod kilku programów, opublikowanych w czasopismach z lat 80. i 90. - są to m. in.:
  • świetne narzędzie SEARCH do wyszukiwania ciągów znaków na dyskietce (definicji słów, komentarzy itp.),
  • podzbiór edytora fig-Forth z usprawnieniami, np. zmianą koloru ramki po poleceniu HEX; podzbiór ten pozwala na dokonywanie typowych, drobnych zmian poleceniami “P”, “E”, “CLEAR”, “COPY” itp.,
  • polecenie .CC, wyświetlające nazwy aktualnych słowników CONTEXT i CURRENT,
  • rekurencyjny dekompilator Goes Into (alternatywa dla DECOMP),
  • EDYTOR-FORTH autorstwa Rolanda Pantoły (wraz z wymaganym "Ragsdale Assembler"), świetnie przemyślany edytor ekranów fig-Forth na Atari; opis w “Tajemnicach Atari”, nr 11-12/92 oraz 1-2/93,
  • EDIT autorstwa Mike'a Dougherty (z moimi usprawnieniami) - inny edytor, nieco wolniejszy, lecz łatwy do modyfikacji; pomoc została umieszczona na ekranie 59; uwaga, program potrzebuje niezabezpieczonej dyskietki, nie zawsze też zapisuje kod zmieniony na “drugiej połowie” ekranu (zachęcam do naprawy tej usterki); jest bardzo wygodnym narzędziem do przeglądania kodu i (ostrożnej, potrafi sam zapisać zmiany) edycji,
  • przykład użycia wstawki asemblerowej (miganie kursora; wymaga asemblera z "fabrycznej" dyskietki Forth i ekranu 39),
  • przykład użycia techniki "vectored execution", użytecznej do przekazywania parametrów lub zmiany funkcjonalności słowa w trakcie wykonywania programu;

    Początkowe ekrany są puste - jest to celowe, można tam zapisać (poleceniem SAVE) jądro Forth - również nieco rozszerzone, np. o słowa debuggera i "ulubiony" edytor. Ekrany 16 i 17 są "spisem treści", więc 16 LIST oraz 17 LIST pozwolą na dokładne zapoznanie się z zawartością dyskietki. Spis ten (nieco dziwaczny w formie, próbowałem bowiem “upchnąć” w nim jak najwięcej informacji) zawiera:
  • numer pierwszego ekranu z programem, np. #18 - kod załadujemy wykonując 18 LOAD,
  • nazwę programu i/lub opis zawartości grupy ekranów - często są to po prostu słowa, opisane w książce, np. "KOT, NAPIS, KWADRATY",
  • ilość ekranów - pozwala zgrubnie ocenić wielkość kodu (a więc również czas kompilacji), np. [1] oznacza, że cały kod przykładu lub programu zajmuje tylko jeden ekran; ostatni kod grupy ekranów wywołuje program lub zawiera słowo uruchamiające,
  • “miejsce pochodzenia” kodu wraz z ewentualnym numerem rozdziału/czasopisma/etc. ("pf" to "Poznajemy Forth", "apx" to "fabryczna" dyskietka Forth, "ta" to "Tajemnice Atari", "fd" to "Forth Dimension", "comp!" to "Compute!", “micro” to "Micro"),
  • informację o wymaganym kodzie ("prerequisites"), np.:
    ◦ DEBUG - słowa debuggera z "fabrycznego" FORTH, od ekranu 21 (21 LOAD),
    ◦ asmPM - słowa asemblera z "fabrycznego" FORTH (autor asemblera: P. Mullarky), od ekranu 39 (39 LOAD),
    ◦ asmWR - słowa asemblera z "fabrycznego" FORTH (autor asemblera: W. Ragsdale), od ekranu 75 (75 LOAD); ten sam kod zamieszczono również na TEJ dyskietce, od ekranu 70 (70 LOAD), dzięki temu łatwiej jest załadować program EDYTOR-FORTH.

    Część przykładów uruchamia się automatycznie po załadowaniu i kompilacji (np. TABLICZKA, ERATOS, HANOI), inne wymagają wywołania - zgodnie z instrukcjami, zawartymi w książce oraz w załączonym kodzie. Bardzo często na dyskietce umieszczone są przykłady zastosowania oraz dodatkowe komentarze, warto więc "eksplorować" ekrany z kodem przy pomocy LIST lub któregoś edytora. Numery ekranów mogą być inne niż te, opisane w książce (głównie dotyczy to programu PSY), czasem też kod jest ułożony w nieco innej kolejności. Nawet pobieżna lektura książki i dodatków znacząco ułatwi korzystanie z tych materiałów.

    Więcej informacji o dodatkowym kodzie (np. spis czasopism, w których został oryginalnie opublikowany), nowe wersje TEJ dyskietki i/lub dodatkowe informacje będą umieszczane w repozytorium https://github.com/BartGo/POZNAJEMY. Nazwa obrazu TEJ dyskietki to fantazyjne "PoznajemyFORTH (E6B43BB4-399559F-F62A4B40).ATR". Znajdziemy tam również skrypty, użyte do generowania obrazu dyskietki - kod można więc wykorzystać w emulatorze lub przenieść do własnego programu.

    Niezbędny do skorzystania z TEJ dyskietki jest oczywiście sam APX Forth. Najbardziej oficjalnym źródłem jest https://www.atariarchives.org/APX/showinfo.php?cat=20029 - można ściągnąć plik DCM (ATR jest uszkodzony!), skonwertować do poprawnego ATR i przenieść na Atari... Szybszym rozwiązaniem będzie ściągnięcie już poprawionego ATR (nazwijmy go “fabrycznym”, bo zapewne odpowiada oryginalnej dyskietce) z jednej z poniższych lokalizacji:
  • Atari Wiki -> https://atariwiki.org -> Forth -> Extended Atari FIG-Forth APX20029 -> Disks
  • Atari Online -> Użytki/Utils -> 4. Programowanie -> "Extended fig-FORTH 2.0 (v2).atr"
  • FujiNet -> apps.irata.online -> Atari_8-bit -> Languages -> FORTH -> APX Extended fig-FORTH -> "APX Extended Fig Forth.atr"

    Poprawny plik z obrazem Extended Fig-Forth będzie miał sumę kontrolną CRC-32 F64B50DA lub E6B43BB4. Do weryfikacji możemy użyć programu 7zip lub zrobić to online (wpisując w ulubioną wyszukiwarkę “online crc32 file check” i wgrywając lub upuszczając plik na jedną z wynikowych stron). Ten cenny plik wgrywamy na kartę SD lub w inny sposób "przekazujemy do Atari" i jego stacji D1: - poprzez SIO2SD, SIO2USB, SDRIVE Micro, Fujinet... Kiedy już Forth się uruchomi z D1: a dyskietka ze źródłami będzie umieszczona w stacji D2:, możemy przełączać się między nimi przy pomocy poleceń DR0 (dla D1:) i DR1 (dla D2:) i do woli korzystać z LIST, LOAD itd.

    Niezłym pomysłem jest skopiowanie Extended Fig-Forth na dodatkową fizyczną dyskietkę przy pomocy aplikacji DISKCOPY lub QMEG (może też zadziałać fortowe słowo DISKCOPY z “fabrycznych” ekranów 36-37 - żeby nie było łatwo, nie jest to wcześniej wspomniana aplikacja o tej samej nazwie). Łatwo dzięki temu będzie można korzystać z kodu z “fabrycznej” dyskietki Forth oraz uzupełnić dyskietkę ze źródłami przynajmniej o podstawowe jądro Forth. Uwaga - niezbędne polecenie SAVE działa tylko dla dyskietki D1: (DR0). Kopię dyskietki zabezpieczajmy ale egzemplarz do bieżącego użytku pozostawmy odbezpieczony - lub w przypadku błędów zapisu używajmy polecenia “EMPTY-BUFFERS”.

    Życzę wspaniałej przygody z językiem FORTH – “May the FORTH be with you!”

    P.S. Słowa do obsługi liczb podwójnych (rozdziały 9.2-9.3 oraz ekrany 31-32) nie działają zgodnie z oczekiwaniami i opisem z książki. Wyniki różnią się od przewidywanych. Przyczyny tego zjawiska są bardzo tajemnicze, pozostawiam analizę i naprawę tego defektu Czytelnikom!"


    Cena książki: 115 PLN
    Cena dyskietki: 59 PLN

    Istotne linki:
    Retronics (bezpośrednio do książki: tutaj).
    PTODT
    BartGo (GH)



    2024-04-10 22:20 by Kaz
    komentarzy: 0
  • NOWSZY [Atari] AtariOnLine: Michaś w końcu na Atari
    NOWSZY [Atari] AtariOnLine: RastaConverter – nowa wersja
    NOWSZY [Atari] AtariOnLine: Obudowa kombajnu XCF12
    NOWSZY [Atari] AtariOnLine: Time Wizard Deluxe + edytor poziomów
    → [Atari] AtariOnLine: Wyniki i stuff z Grawitacji 2024
    → [Atari] AtariOnLine: Grawitacja 2024 - zapraszamy!
    → [Atari] AtariOnLine: Zapowiedź konwersji "Rick Dangerous 2"
    → [Atari] AtariOnLine: Bardzo krótka relacja z KWAS #33
    → [Atari] AtariOnLine: KWAS #33 w Katowicach za moment!
    wstecz10/04/2024 22:20
    Inne treści związane z tematem
    [Atari.Area] FujiNET firmware v1.3.0 [Atari.Area] FujiNET firmware v1.3.0
    Ukazała się nowa wersja oprogramowania do interfejsu sieciowego FujiNET, największą zmianą jest umożliwienie łączenia się z zasobami sieci za pomocą protokołu TCP, co powinno wyeliminować niestabilności w połączeniu. TCP Support in TNFS Ability to mount from SMB and FTP hosts in CONFIG Option to select alternate CONFIG disk from WebUI Option to reset Fujinet from WebUI CONFIG bug ...
    [Atari] AtariOnLine: Michaś w końcu na Atari [Atari] AtariOnLine: Michaś w końcu na Atari
    Gra Mikie, o której dziś mowa, w 1985 roku podbijała serce graczy na całym świecie. Pierwotnie powstała tylko dla automatów arcade, ale gdy okazało się, że podoba się odbiorcom i wciąga ich w dłuższą rozgrywkę, namnożyły się wersje na rozliczne platformy komputerowe - np. systemu MSX, ZX Spectrum, BBC Micro/Acorn ...
    [Atari] AtariOnLine: RastaConverter – nowa wersja [Atari] AtariOnLine: RastaConverter – nowa wersja
    Dla porządku przypomnijmy: RastaConverter, po raz pierwszy upubliczniony w 2012 roku, potrafi konwertować dowolne obrazki czy zdjęcia na pliki wykonywalne XEX, które wyświetlą te obrazki na małym Atari. A że wykorzystuje przy tym w zaawansowany sposób możliwości sprzętu (w tym m.in. zmiany kolorów w trakcie rysowania linii czy multiplikowanie ...
    [Atari.Area] hatari 2.5.0 [Atari.Area] hatari 2.5.0
    Od dwóch dni dostępna jest najnowsza (2.5.0) wersja Hatari. Dla porządku przypomnę, że jest to emulator Atari 16/32bit dla GNU/Linux, BSD, Mac OS X, Windows oraz innych systemów wspierających bibliotekę SDL. Lista zmian (duża) dostępna jest tutaj. Natomiast emulator, jak również jego źródła, możemy pobrać stąd.
    [ATARI] ST/Falcon:Hatari 2.5.0 19/04/2024 [ATARI] ST/Falcon:Hatari 2.5.0 19/04/2024
    hATARI! świetny emulatora dużych, 16-bitowych komputerów ATARI - począwszy od modeli ATARI ST/TT a skończywszy na ATARI FALCON. Co prawda, strona oficjalna jeszcze śpi... ale...
    Komentarze
    ... bez komentarza
    Ostatnio dodane pliki
    Newsy Linkownia Emulatory na PC Wideoteka Screenshoty Bajtek Reduks Ready.Run

    © Try2emu 1999 - 2024 | Krzysztof 'Faust' Karkosza Kontakt Polityka Prywatności OWU