.p lister na Atari by Sikor 2013-02-16 19:55:52

Kilka dni temu poruszałem temat fontów z ZX81 na Atari - co mogliście "podziwiać" dzięki uprzejmości Xeena i umieszczeniu ich na atarionline.pl. Dzisiaj pójdę o jeden mały kroczek dalej - opiszę, jak przenieść program z ZX81 na Atari XL/XE - na razie w wersji 0.1. Oczywiście chodzi o programy w Basicu, bez odnośników maszynowych. A tak naprawdę - póki co jest to tylko lister (w ZX81 mogą być baaardzo długie printy - nieczytelne dla Atari) - przetwarzający plik tekstowy będący odpowiednikiem pliku .p (lub .81) stworzony przez konwersję na PC w konsoli (narzędzia załączyłem) - niestety, nie znalazłem dokładnego opisu formatu .p w sieci (oprócz tego, że jest to odpowiednik zapisu fizycznego na kasecie).



Teraz do rzeczy - okazało się, że jeden z programów z konkursu Yerzmieya na ZX81 chodzi bez żadnych przeróbek na Atari (sprawdzane pod Turbo Basiciem XL). Jest to program z semigrafiką nazwaną ODIE.P - więc ten dołączam na tapetę. Opiszę poszczególne etapy tworzenia:

1. Odpalamy w konsoli program ZX81LIST.EXE z nazwą pliku do konwersji i nazwą pliku wynikowego - w moim przypadku linia komend wyglądała tak: zx81list odie.p odie.txt

2. W wyniku tego otrzymujemy plik tekstowy - pod notatnikiem wycinam nadmiarowe informacje, pozostawiając tylko "listing" programu. Narzędzie na PeCe niestety semigrafikę wyświetla jako sekwencje znaków, ale najłatwiej mi to było obrobić na Atari. Całość zapisuję.

3. Konwertuję pod Atari800Win końce wiersza (ASCII2ATASCII EOL only) i zapisuję jako z rozszerzeniem TSL (taki mój wymysł - TuSiedziListing)

4. Wrzucam na atari i używam konwertera (uwaga! Wersja 0.1 - prosta do bólu, bez interfejsu) - konwerter pyta o plik wejściowy (podajemy na przykład: D:ODIE.TSL) oraz potem o plik wyjściowy (u mnie: D:ODIE.TLS
=>ToListingSurowy)

5. Po podaniu nazwy - na ekranie ukazuje się listing z ZX81, zapisując jednocześnie dane na plik wyjściowy (długość linii nie ma znaczenia - dlatego jako listing surowy)

To wszystko. W tym pliku akurat wystarczy wczytać jako ENTER"D:ODIE.TLS wraz z fontami z zx81, aby wyświetlić naszą semigrafikę. W wielu przypadkach wystarczą tylko drobne modyfikacje listingu, aby poszło z Atari.

Co zamierzam dalej? Pewnie najpierw jakiś prosty edytor do semigrafik ZX81 (wraz z eksportem do plików TSL - aby potem łatwo na ZX81 przetworzyć. Jak znajdę dokładną deskrypcję plików .p - może od razu do nich). Potem może jakiś prosty tłumacz ZX81 basic<=>Turbo Basic XL - aby na przykład poprawnie łamać długie linie. Oczywiście przy założeniu, że nie korzystamy z adresów maszynowych ZX81. Być może - jak mnie namówicie - także szybka przeglądarkę do semigrafik... Ale to pieśń przyszłości...

Niezbędne pliki do artykułu do ściągnięcia stąd.
smig 2013-02-16 22:52:45

beznadzieja, po co to komu?

jhusak 2013-02-17 00:08:24

No, na przykład mi. Przybliża obcą, nieznaną platformę.

Muffy 2013-02-17 02:15:54

No i na przykład mi. Przypomina czasy pierwszego komputerka :)

Czarny_faraon 2013-02-17 09:44:00

Fajna sprawa. Przypominają mi się czasy jak ręcznie przepisywałem programy z innych platform.

the fender 2013-02-17 13:43:26

Te semigrafiki przy ZX Spectrum nazywały się UDG (User Definied Graphics). Nie wiem jak przy ZX81, ale ciekawą sprawą przy ZX Spectrum był interface basica - wciśnięcie przycisku powodowało wypisanie komendy, ponadto interpreter po wciśnięciu Enter sprawdzał składnię komendy.
Co ciekawe, nie było to zawsze poczytywane przez użytkowników na plus. Kojarzę przez mgłę, że były sposoby na wyłączenie tej funkcji chyba.
Z podobnym sposobem programowania spotkałem się po wielu wielu latach dopiero przy okazji obrabiarek CNC i sterowania Heidenhain iTNC530. Sprawdza się to tam znakomicie i jest wyróżnikiem powodującym, że kosztuje więcej od konkurencji.
To tak apropos poznawania nowych platform ;)

Muffy 2013-02-19 02:21:15

@the fender
W zx81 jest dokładnie tak samo (a właściwie na odwrót - to ZX spectrum zachował tę właściwość edytora).
A pierwsze skojarzenie z tym sposobem edycji było dokładnie takie samo :) szczególnie przy wspominaniu jak w ZX81 kursor zmieniał się przykładowo z K na G.
Tylko w przeciwieństwie do Heidenhaina nic nam nie podpowiadało składni jak np po F= (max)
No i klawiatura dotykowa jak na panelach sterowniczych :)