Kasia pracuje dla Atari by Kaz 2010-04-08 12:35:43

Powstał pomysł stworzenia FAQ dla osób, które chciałyby rozpocząć programowanie na Atari, ale w środowisku pecetowskim. Wiadomo - graficzny interfejs peceta, czy to Linux czy Windows, do tego ogrom miejsca w pamięci i na dysku oznaczają wygodniejszą, a zarazem szybszą pracę developerską nad programami dla naszego komputerka. Jednak nie ma uznanego i rozpowszechnionego standardu środowiska pracy dla Atarowców, praktycznie każdy koder sam sobie stworzył własny, czy to do programowania w Turbo Basicu XL czy asemblerze. FAQ prezentujące takie wynalazki mogłoby pomóc innym zaoszczędzić czas na ponowne "wymyślaniu prochu" i wybranie sobie najlepszego środowiska spośród prezentowanych.

Paweł "Cosi" Piątkowski przedstawia sposób, w jaki dostosować edytor "Kate" do potrzeb programisty Atari. Jeżeli uda się zebrać jeszcze kilka takich tekstów to zbiorę je i umieszczę w dziale dla początkujących jako "FAQ o tworzeniu środowiska pracy". Zapraszam więc do podsyłania swoich sposobów, opisanych w usystematyzowany sposób. A na razie oddaję głos Cosiemu:



"Kate" jako narzędzie dla programisty Atari

Wstęp

Edytor "Kate" jest ciekawym rozwiązaniem, jeżeli chcemy programować małe Atari wykorzystując do tego celu peceta. Opiszę w skrócie, jak przystosować go do współpracy z popularnymi cross-kompilatorami: "MADS", "cc65" i "Effectusem".

Instalacja

"Kate" jest częścią środowiska KDE, więc linuksowcy albo mają ten program domyślnie zainstalowany na swoim komputerze, albo mogą go doinstalować, wybierając paczki kdelibs i kdebase. Dla posiadaczy Windows jedynym sposobem na zdobycie edytora jest instalacja wersji KDE dla tego systemu.

Podświetlanie składni

"Kate" podświetla składnię ponad 150 języków programowania, w tym również assemblera 6502 (bez rozkazów 65C816 i mnemoników używanych np. przez "MADS"), Basica (bez poleceń typowych dla Atari) i oczywiście C.

Dość prosto (powiedzmy...) możemy dodać obsługę ulubionego języka do "Kate" – służą do tego celu pliki XML znajdujące się w katalogu ~/.kde/share/apps/katepart/syntax. Sposób tworzenia własnych plików jest opisany w artykule "Writing a Kate Highlighting XML File" na stronie programu "Kate". Dodam tylko, że nie trzeba pisać takiego pliku od zera, można posłużyć się gotowymi wzorcami, na przykład wykorzystując pascal.xml można dość łatwo stworzyć plik opisujący polecenia "Effectusa".

Kompilacja programów

Jedną z istotnych zalet "Kate" jest możliwość łatwej integracji z kompilatorem za pomocą skrótów klawiszowych, zewnętrznych skryptów i wbudowanej konsoli. W przypadku MADS-a wystarczy podpiąć wywołanie kompilatora pod jakiś skrót klawiszowy. Wchodzimy w menu "Ustawienia->Konfiguracja:Kate->Narzędzia zewnętrzne" i wybieramy "Nowy....". W polu "Skrypt" wpisujemy na przykład:

wine /katalog_kompilatora/mads.exe %directory/%filename > /katalog_domowy/output.txt



Oczywiście polecenie ma taką postać w przypadku windowsowej wersji MADS-a (której używam). Komunikaty kompilatora, zamiast na ekranie, zostają umieszczone w pliku output.txt. Nic nie stoi jednak na przeszkodzie napisać własny skrypt, wyświetlający wynik kompilacji przy pomocy polecenia kdialog, a następnie ustawić go jako narzędzie zewnętrzne "Kate". Ostatnim krokiem jest podpięcie naszego narzędzia pod skrót klawiszowy, który wybieramy w oknie "Ustawienia->Konfiguracja skrótów....".

"Effectus" umieszcza plik wynikowy w katalogu kompilatora. Rozwiązaniem jest napisanie prostego skryptu (przy założeniu, że mamy wersję dla Windows, a własne programy trzymamy w podkatalogu "programy"):

#!/bin/sh
wine effectus.exe programy/$1.eff
mv $1.* programy
cat output.txt
rm output.txt


umieszczenie go w katalogu kompilatora, ustawienie praw do wykonywania (chmod a+x), a następnie podpięcie jako narzędzie zewnętrzne.

Kompilator "cc65" wymaga dodatkowo ustawienia dwóch zmiennych systemowych:

#!/bin/bash
export CC65_INC=C:KATALOG_CC65INCLUDE
export CC65_LIB=C:KATALOG_CC65LIB
wine /katalog_cc65/bin/cl65.exe -O -t atari $1


Tak przygotowany skrypt ustawiamy jako narzędzie zewnętrzne "Kate", wpisując w polu "Skrypt":

/katalog_ze_skryptem/nazwa_skryptu %directory/%filename

Uruchamianie programów w emulatorze

W trakcie pisania programu pojawia się konieczność uruchomienia skompilowanego kodu. Najprościej zrobić to poprzez konsolę "Kate", wpisując w linii poleceń na przykład:

atari800 nazwa_pliku

(zakładając, że tego akurat emulatora używamy). Edytor automatycznie przechodzi do katalogu, w którym znajduje się aktualnie redagowany plik. Innym rozwiązaniem jest dodanie tego polecenia do skryptu uruchamiającego kompilator. Wtedy po każdej kompilacji będziemy mogli od razu zobaczyć gotowy program w działaniu.
jhusak 2010-04-08 14:27:07

Właśnie jakiś tydzień temu przyszedł mi do głowy taki pomysł, tylko bardziej ogólny, tzn. tzw. toolchain do tworzenia aplikacji na m. in. atari. Na taki toolchain składałyby się z grubsza:

- zasady tworzenia kodu i narzędzia typu edytor
- zasady tworzenia grafiki i narzędzia, a także sposób dostępu do grafiki (takie api)
- zasady tworzenia muzyki i narzędzia, a także sposób dostępu do muzyki
- składacz tego wszystkiego do postaci ATR bądź XEX.

Wtedy: poprawiamy grafikę, tekst, muzykę lub kod, piszemy make i odpala nam się w emulatorze ;)

Dodatkowo należało by to wszystko skonfigurować tak, aby tworzyło określoną strukturę w systemie plików, aby można było pracować zdalnie/grupowo, i trzymać repozytorium np. w subversion.

Krótko mówiąc: automatyzacja. W dzisiejszych czasach od wpisania "make" do zobaczenia efektu na emulatorze, to kilka sekund.

I teraz łyżka dziegciu.
Dlaczego G2F nie jest multiplatformowy?
Dlaczego RMT nie jest multiplatformowy?
DLACZEGO!!!?!??!?

Takie programy MUSZĄ!!!! być wieloplatformowe.

Więcej zdolnych ludzików by je rozwijało.

irwin 2010-04-08 15:05:47

No to pięknie, napisałem spory komentarz na forum a te postanowiło dać drapaka. Ech... te serwery...

bob_er 2010-04-08 15:24:20

moze by i byly multiplatform, ale musza miec otwarte zrodla. autorzy zapewne nie maja osobistego interesu, by te softy chodzily na innych platformach (podobnie zreszta ja mam), a przy otwartych zrodlach jest jakakolwiek szansa, ze znajdzie sie ktos, kto to przerobi, by zadzialalo.
g2f: program jest super do poprawiania kilku pikseli, ale jego obsluga jest jaka jest, i poki sie to nie zmieni - nie liczylbym na gosci z innych platform, przyzwyczajonych, ze program graficzny oferuje wiecej niz zwykle postawienie punktu. po prostu brakuje mu normalnego interface'u programu graficznego.
rmt: znam muzyka, ktory nie zdzierzy zadnego programu muzycznego na emulatorze. zdarzalo mu sie niejednokrotnie zawieszac emulator a800 swoimi zabawami dzwiekowymi i zadna jego muzyka na emulatorze (jakimkolwiek) nie brzmi tak jak na prawdziwym sprzecie.

lerek 2010-04-08 19:22:50

http://www.wudsn.com/

gregor 2010-04-08 20:03:43

G2F jest pisany w Delphi i dlatego nie jest multiplatformowy, kiedyś był Kylix.... ale to inna sprawa

zyga64 2010-04-08 20:31:25

Jeśli chodzi o Delphi o podobno FreePascal/Lazarus jest kompatybilny: http://pl.wikipedia.org/wiki/Lazarus

pajero 2010-04-08 23:26:41

Do MADSa idealnie nadaję się Code Genie (najlepiej 3.0)

[img]http://www.fotoszok.pl/upload/1d532e46.jpg[/img]

pajero 2010-04-08 23:27:17

http://www.fotoszok.pl/upload/1d532e46.jpg

tdc 2010-04-09 01:22:40

Fajny tekst.

Jeśli mam być szczery to jakoś dużo tego opisu, myślę że przydał by się opis mniej skomplikowany, dla tych co chcą w kilku ruchach już programować (i też warto aby był to opis uwzględniający najistotniejsze systemy operacyjne). To nie jest opis dla mnie bo ja jestem atarowym purystą, w mojej ocenie np. na klawiaturze małego Atari się znacznie lepiej programuje niż na pecetowej czy ST.

Co się zaś tyczy programowania to łatwo można coś podobnego zrobić z Action!, gdyż ten może includować naszą pracę z dysku pecetowego. Ma to swoje wady, ale jest szybkie, łatwe i doskonale się nadaje do prostych programów (czyli np. nie gier itp.).

xeen 2010-04-09 11:05:25

może kiedyś uda mi się skonfigurować Eclipse
do tego celu
http://www.eclipse.org/cdt/

nie wyobrażam sobie pracy bez tego narzędzia, nie znalazłem niczego lepszego (jestem subiektywny i może nie wszytsko widziałem)

niestety na razie nie odnalazłem na to czasu :(
może ktoś ma wprawę i przygotuje taki setupik?

Eclipse jest multiplatformowy, nie będzie porblemu pomiędzy mac/linux/win....
nie wiem jednak jak działają wtyki dla C/C++, ja używam go do javy

larek 2010-04-09 11:33:37

Xeen, nie ma co się męczyć. Ktoś już to zrobił i dostosował to narzędzie do programowania na Atari (no, chyba że się mylę i mówimy o czymś innym). Jeszcze raz dam link: http://www.wudsn.com

jep 2010-04-09 11:42:58

Bardzo popieram, więcej takich porad, w tym dla osób, które kiedyś dłubały na atarce, ale na pc już nie. Mając goowe fajne środowisko może podłubałby, po staremu w turbo beju, ale nie mam aż takiej motywacji żeby się bawić w tworzenie środowiska. Nawet nie wiem, jak.

Cosi 2010-04-09 12:23:05

jep: Bez problemów. Chciałem o tym też napisać, ale postanowiłem się skupić na cross-kompilatorach.
Praktycznie dla dowolnego atarowskiego języka możesz przygotowywać programy w Kate. Wystarczy napisać króciutki skrypcik, który zamieni znaki końca linii na ATASCII 155, wypluje wynik np. do pliku A.LST w katalogu, który masz podpięty pod emulator jako twardy dysk, i uruchomi emula, automatycznie wczytując TB.
Wtedy wystarczy tylko wpisać ENTER "H1:A.LST" i RUN :)

xeen 2010-04-09 12:26:05

heh, nie wiedziałem:)
ale to chyba tylko do ASM, a nie do C?

bob_er 2010-04-09 12:32:12

przekonani swoje wiedza, ale niezdecydowanym polecam ze swojej strony geany (ma wersje dla windows, linux). z rzeczy dodatkowych ma: lekkie projekty, podpowiadanie labeli (w asm) i malo zajmuje (na dysku i w ramie).

jell 2010-04-09 13:41:28

oidp kiedys madsa przekompilowywalem pod linuksem pod fpc. watpie by az tak tebe uzaleznil kod od borlanda by sie ponownie to nie udalo.
co do g2f... przemilcze
co do rtm - bob_er juz to dobrze opisal.
bob_er: ja polecam vim-a ;) (tez ma podpowiadanie np. labeli, a i latwo dokonfigurowac by z poziomu edytora wywolujac assemblacje - edytor przechodzil automatycznie do pierwszej (i pozwalal przejsc do kolejnej) linii zawierajacej wedlug assemblera blad). kolorowanie skladni tez latwo dokonfigurowac...

bob_er 2010-04-09 14:52:44

mads nadal sie kompiluje przy uzyciu fpc.

Amun-Ra 2010-04-10 20:57:28

Yyy... Skąd autor wpadł na pomysł uruchamiania cc65 za pomocą wine zamiast natywnej wersji?