!

[Atari] AtariOnLine: FORTH rozgryziony!

[3] # 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: Przygody kolesia wydane!
    NOWSZY [Atari] AtariOnLine: Nowy Graph2Font!
    NOWSZY [Atari] AtariOnLine: Dalton robi grę na A2600
    NOWSZY [Atari] AtariOnLine: W końcu "Mikie" na Atari!
    NOWSZY [Atari] AtariOnLine: Oświadczenie w sprawie Piotra Kaczorowskiego
    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
    wstecz10/04/2024 22:20
    Inne treści związane z tematem
    [Atari] BigPEmu 1.13 5/5/2024 [Atari] BigPEmu 1.13 5/5/2024
    Doskonały na tle innych emulatorów konsoli ATARI JAGUAR BigPEmu (The World's Prefurred Large Pussycat Emulator™)  autorstwa Rich Whitehouse doczekał się świeżej aktualizacji. Sporo zmian i patrząc w changelog emulator idzie w calkiem ciekawym kierunku, to jeszcze by się przydało aby więcej nowych produkcji pojawiało się na ten miły atarowski wynalazek;) Koniecznie ...
    [Atari] AtariOnLine: Przygody kolesia wydane! [Atari] AtariOnLine: Przygody kolesia wydane!
    Kolega Mariusz "Mq" Ejchsztet ogłosił newsy w sprawie wydania swojej bardzo ładnej gry "Dude Story" (wątek o rozwoju gry i pliki darmowej wersji gry tutaj), nad którą pracował 4 lata!. Można już zamawiać wersję kolekcjonerską i wynagrodzić autora za trud i kawał dobrej roboty:"Kolejny raz ekipa Mq-workshop przygotowuje wydanie gry w wersji ...
    [Atari] AtariOnLine: Nowy Graph2Font! [Atari] AtariOnLine: Nowy Graph2Font!
    Mijały eony, mijały ery, mijały stulecia, a potem dziesięciolecia, a program graficzny Tomasza "TeBe" Bieli o nazwie Graph2Font wciąż nie miał aktualizacji, na które graficy go używający czekali z utęsknieniem. Aż do teraz!Program G2F jest genialny, bo powstały w nim setki współczesnych grafik Atari i właściwie zdominował ...
    [Atari] AtariOnLine: Dalton robi grę na A2600 [Atari] AtariOnLine: Dalton robi grę na A2600
    Kolega Sławomir "Dalton" Krysztowiak zajął się ciekawym projektem na platformie Atari 2600. Informację podesłano mi następującą: "Dalton właśnie mi klepnął takie info, że pracuje na tym. No i kurde szok, bo fajny temat robi i chętnie bym mu wysłał pada za free, w ramach wsparcia. Napisałem mu to, na co mi odpisał, że ...
    [Atari.Area] BigPEmu 1.12 [Atari.Area] BigPEmu 1.12
    Emulator konsoli Atari Jaguar BigPEmu, tworzony przez Richarda Whitehouse, doczekał się nowego publicznego wydania 1.12 Zmiany od ostatniego publicznego wydania: Port dla x64 Linux Port dla x64 Arm Plugin dla D3D12 usprawnienia dla twórców produkcji na Jaguara poprawki błędów Developer BigPEmu zaprezentował zmiany w filmie w serwisie Youtube. Rich mierzy się z poważnymi problemami ...
    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