Chciałbym zadać w tym temacie pare dręczących mnie pytań. Mam nadzieje, że ktoś mi to wszystko rozjaśni...

W czym programować?
Zastanawiam się w czym powstają takie świetne prace scenowe. Zakładam, że nie jest to BASIC (przynajmniej ten standardowy). Czy bardziej zaawansowani tworzą swoje cuda pod emulowanym Atari czy normalnym szarym 8-mio bitowcu. Widziałem na stronie głównej Atari Area, że jest dostępny kompilator C++, ale jak to w praktyce zastosować - nie mam pojęcia. Mógłby ktoś mi wypisać w czym najłatwiej pisać?

I w Windowsie i w Linuxie.
Jak już ktoś by się pokusił o podanie programów, to może też wymienić alternatywe, dla jednego i drugiego sysemu. Gdyż jestem użytkownikiem "zmiennosystemowym" ;)

Assembler - jak?
Z wielu książek, które przeczytałem wynika, że programować, to tylko w ASM. Co prawda książki nie za nowe i może coś się w tej kwestii zmieniło. Jakieś podstawy na ten temat mam. Ale paru rzeczy nie rozumiem.
Teoretycznie wiem, jak napisać coś, ale praktycznie nie wiem nic. Jak można np. napisać banalną funkcję FOR czy IF, które są dostępne w większości języków programowania.

Na koniec.
Mam nadzieje, że ktoś odpowie na chociaż jedno pytanie. Naprawdę chciałbym napisać coś na Atari i mieć satysfakcję (chodźby dla samego siebie), ale musze mieć jakieś pojęcie. Jestem chyba jednym z najmłodszych fanatyków Atarynki (na karku mija 19 rok życia) i napewno dzięki czemu mam więcej czasu.

Take A Look To The Sky Just Before You Die...

2

pifarek napisał/a:

W czym programować?

Na początek, jeżeli dopiero zaczynasz - jakiś Turbo Basic XL, darmowy, a o wiele szybszy osd standardowego. Assembler może i będzie dla ciebie za trudny, jak na  razie - musisz najpierw poznać sprzęt.

pifarek napisał/a:

I w Windowsie i w Linuxie.

google Twoim przykjacielem jest...  Poszukaj:
cc65 - język C
xasm - cross asembler...
poza tym - popatrz w bazie plików na stronie głównejAtariArea...

pifarek napisał/a:

Assembler - jak?

Teoretycznie wiem, jak napisać coś, ale praktycznie nie wiem nic. Jak można np. napisać banalną funkcję FOR czy IF, które są dostępne w większości języków programowania.

do tego długa droga przed Tobą, ale życzę powodzenia. I warto pojawić się na jakimś zlocie - na pewno uzyskasz pomoc. Jest też kurs TeBego na aa, ale zawiera błędy ;)
Poza tym - skąd pochodzisz, może ktoś jest z Twego sąsiedzztwa i pomoże ;)

pifarek napisał/a:

Na koniec.
Mam nadzieje, że ktoś odpowie na chociaż jedno pytanie. Naprawdę chciałbym napisać coś na Atari i mieć satysfakcję (chodźby dla samego siebie), ale musze mieć jakieś pojęcie. Jestem chyba jednym z najmłodszych fanatyków Atarynki (na karku mija 19 rok życia) i napewno dzięki czemu mam więcej czasu.

Hmm, na pewno powinien odpowiedzieć ktoś z większym doświadczeniem. Albo z małym, abyście razem si ę uczyli - może Grzybson...? On jest coprawda młodszy od Ciebie, ale nic to ;) Powodzenia!!

Sikor umarł...

3

Hej!
Jesli chodzi o jezyk programowania to polecam asemblera, jest to jedyny sensowny jezyk w jakim mozna programowac na atari i wcale nie taki trudny jak niektorzy mowia. Jesli masz juz jakies doswiadczenie/pojecie o programowaniu to nie trac czasu i nie zawracaj sobie glowy Turbo Basic'em, Action! itp. Asembler naprawde nie jest taki trudny na jaki wyglada, poprostu trzeba miec troche inne podejscie.
Jesli chodzi o kompilatory to pod Windowsa polecam xasm (bardzo szybki i dobry kompilator) oraz MADS, ktorego sam ostatnio uzywam (o wiele wolniejszy ale za to ma to czego nie ma xasm a co bardzo upraszcza sprawe w duzych projektach - MAKRA! wiedz jesli nie masz takiego trupa jak ja tylko jakis szybszy komp to nie powinno ci to robic problemu), jest jeszcze hardcore assembler Epiego, ktory jest mega szybki i posiada tez makra itp (niestety narazie nie kojarze aby byl dostepny publicznie :( ). Co do linuxa to jest pewien crossasembler ale nie pamietam nazwy ^__^
wszystkie wyzej wymienione programy sa to crossasemblery i mysle ,ze o wiele wygodniej i lepiej jest pisac na PC+emulator niz siedziec przy Atari (sam kiedys wolalem siedziec i programowac na real Atari, ale teraz poprostu wiem ,ze napisanie wiekszego projektu bylo by prawie nie mozliwe, w najlepszym przypadku bardzo utrudnione), pod Emulcem masz swietny Debuger oraz nieporownywalna wygode pracy.

Co do petli FOR to najprostrza wyglada mniej wiecej tak w C++:

  for (char i=0; i<64; i++)
  {
    tmp=tmp+i;
  }

natomiast w Asemblerze 6502 tak:

  ldx #0 ; int i=0
loop
  txa
  clc
  adc tmp
  sta tmp ; tmp=tmp+i
  inx ; i++
  cpx #64
  bne loop ; skoczy gdy X<64 (dokladniej gdy nie rowne 64)

instrukcja IF to tez prosta sprawa

C++
  if (A==B)
    ...


Asm6502:
  lda A
  cmp B
  bne endif
; A=B
  ...

endif

i drugi przyklad

C++
  if (A>=B || A<C)
  {
    ...
  }
  ...


Asm6502:
  lda A
  cmp B
  bcs warunekspelniony ; skocz gdy A>=B
  lda A
  cmp C
  bcc warunekniespelniony ; skocz gdy A>=C
warunekspelniony
  ...

warunekniespelniony
  ...

a co do ogolnego programowania to wcale nie musisz znac na poczatku sprzetu ;) w praktyce (bynajmniej jesli chodzi o prace "scenowe") wystarczy podstawowa znajomosc ANTIC'a + wiadomoci o organizacji pamieci ekranu oraz w jaki sposob dane sa przechowywane w pamieci komputera. Jesli miales juz stycznosc z programowaniem to po zalapaniu tego nie powinno byc klopotow (no dopoki nie bedzie ci potrzebne szybkie mnozenie lub inne "nienaturalne" operacje matematyczne ;> ale to juz troche inny temat)

pifarek napisał/a:

Mam nadzieje, że ktoś odpowie na chociaż jedno pytanie. Naprawdę chciałbym napisać coś na Atari i mieć satysfakcję (chodźby dla samego siebie), ale musze mieć jakieś pojęcie. Jestem chyba jednym z najmłodszych fanatyków Atarynki (na karku mija 19 rok życia) i napewno dzięki czemu mam więcej czasu.

No ja tez mam jeszcze 19lat ;P
A co do wolnego czasu to roznie ale i tak nie narzekam...
jak bys mial jakies pytania/problemy to wal do mnie na GG:2342303 z checia pomoge

4 Ostatnio edytowany przez Pin (2005-10-14 22:38:41)

:) - Sikor - kolega pochodzi z Włocławka - jak sam zresztą w profilu napisał :D

Pr0be - "to nie trac czasu i nie zawracaj sobie glowy Turbo Basic'em".. ja wiem??

w kwestii poznania sprzętu - to raczej przydać się moze; od Turbo-basica też warto zacząć, a i przy okazji można swoje wypociny skompilować i sprowadzić do bardziej "cywilizowanej" postaci wykonywalnej juz pod dosem. :). O czym pisze - proponuje jutro (w dzień) zajżeć na atari8.info. Jutrzejszy news opiera sie o program kompilowany spod TB :)

Kontakt: pin@usdk.pl

5

Sikor napisał/a:

Na początek, jeżeli dopiero zaczynasz - jakiś Turbo Basic XL, darmowy, a o wiele szybszy osd standardowego. Assembler może i będzie dla ciebie za trudny, jak na  razie - musisz najpierw poznać sprzęt.

Miałem chyba go nawet kiedyś na cartridge-u. (jeżeli o tym myśle) Po za tym to Basic jest w miare prosty, a i AMS-a używałem, aby wzbogacić swoje Basicowe gry i programy. (ASM - w stopniu mało zaawansowanym :P )

pr0be napisał/a:

wystarczy podstawowa znajomosc ANTIC'a + wiadomoci o organizacji pamieci ekranu oraz w jaki sposob dane sa przechowywane w pamieci komputera. Jesli miales juz stycznosc z programowaniem to po zalapaniu tego nie powinno byc klopotow (no dopoki nie bedzie ci potrzebne szybkie mnozenie lub inne "nienaturalne" operacje matematyczne ;> ale to juz troche inny temat)

Conieco na ten temat wiem, bo j.w. napisałem używałem trochę ASM do rzeczy w czym Basic był za wolny. Z programowaniem mam styczność na codzień, gdyż pasjonuje sie tworzeniem rozmaitych aplikacji sieciowych w PHP. :P

pr0be napisał/a:

No ja tez mam jeszcze 19lat ;P

Już myślałem, że tu sami "starzy wyjadacze" (to taki dowcip sytuacyjny :P ), jak wszedłem poraz pierwszy na to forum, zastanawiałem się czy per Pan nie pisać. :D

pr0be - przeanalizuje kody - może się czegoś naucze. :)

Pin napisał/a:

:) - Sikor - kolega pochodzi z Włocławka - jak sam zresztą w profilu napisał :D

Tak było! :)

Thx for the info.

Take A Look To The Sky Just Before You Die...

6 Ostatnio edytowany przez drac030 (2005-10-15 00:00:22)

pr0be napisał/a:

Co do petli FOR to najprostsza wyglada mniej wiecej tak w C++:

  for (char i=0; i<64; i++)
  {
    tmp=tmp+i;
  }

natomiast w Asemblerze 6502 tak:

  ldx #0 ; int i=0
loop
  txa
  clc
  adc tmp
  sta tmp ; tmp=tmp+i
  inx ; i++
  cpx #64
  bne loop ; skoczy gdy X<64 (dokladniej gdy nie rowne 64)

'bcc loop' twoim przyjacielem (skok gdy X<64).

KMK
? HEX$(6670358)

7

basic lub lepiej turbo basic jest dobrze znac nawet z prostej przyczyny: np aby wygenerowac sobie jaka tablice z danymi lub cos w tym stylu, do dalszego wykorzystania w assie.

8

Jest też kurs TeBego na aa, ale zawiera błędy

Przepraszam Sikor, ale sądzę, że raczej nie jesteś na tyle kompetentny żeby taką opinię wyrażać :)

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

9

.. hehe - a jak praktyka wykazuje; nawet w turbobasicu powstało kilka demek :)

Kontakt: pin@usdk.pl

10

swego czasu w turbo basicu _plynnego_ skrola napisalem :)

btw: crossasmy pod linuxa (generalnie posixa) to zooey (zgodny z qa) i atasm (zgodny z mac65)
oba do znalezienia na source-forge

MM: A bana za cytowanie chce?

11

dely napisał/a:

Jest też kurs TeBego na aa, ale zawiera błędy

Przepraszam Sikor, ale sądzę, że raczej nie jesteś na tyle kompetentny żeby taką opinię wyrażać :)

Niestety, Dely, jesteś w błędzie... Jeden z programów tam zawartych (dotyczących Antica) się wywala przy kompilacji ;( A jak ktoś nie zna asma (np. Sikor ;) ), to może mu to zając sporo czasu, zanim zrozunmie, dlaczego ;( Tymniemniej, wielkie brawa dla TeBego, że mu się chciało... Tylko kilka drobnych poprawek  - i gra gitarrra... ;)

Sikor umarł...

12 Ostatnio edytowany przez śmigło .::. (2005-10-15 19:51:47)

"pod Emulcem masz swietny Debuger"

Może błędnie przypisuję swój odchył początkującym koderom, ale chyba spora część stawiających wczesne kroki w asmie olewa debuggera, choć to najważniejszy obok książki przewodnik. Polecam pobawić się tym narzędziem, bo jest przydatne tak na początku, gdy trzeba zaznajomić się z podstawowymi "kaprysami" 6502, jak i w późniejszej drodze, kiedy będziesz pisał słupki kodu po 1000km długości i wystąpią pierwsze trudności z ogarnięciem tego całego bałaganu. :)

Nie wspominam już o tak oczywistych tipsach jak modlitwa do Ducha Św... ;)

BTW: Gdy już nie będzie wątpliwości "Assembler - jak", ale "Assembler - co", to warto zajrzeć tutaj:

http://www.ffd2.com/fridge/chacking/

Mag jest o C64, ale jako że i Commodor i Atarka posiadają procesor z tej samej rodziny i natrafia się na te same problemy pisząć np. wektorówkę, polecam serię artykułów od numeru #8. Wcześniej warto byłoby jednak zaprzyjaźnić się z ANTICiem (http://www.s-direktnet.de/homepages/k_nadj/main.html) i wykonać kilka prostych programików dla nabrania wprawy i oswojenia się z asmem, np:

-generowanie xor-tekstury i przerzucenie na ekran w postaci kwadratu
-stawianie pikseli o określonych współrzędnych
-przenikanie bitmap
-rozmycie bitmapy (tudzież efekt ognia)
-wykres sin/cos
-plasma
-rysowanie linii wg Bresenhama

To kilka propozycji wg których ja rozpocząłem swoją naukę w praktyce, i przy których zobaczyłem pewne rezultaty.

Happy coding i pozdro :)

13

Sikor napisał/a:

Niestety, Dely, jesteś w błędzie... Jeden z programów tam zawartych (dotyczących Antica) się wywala przy kompilacji ;( A jak ktoś nie zna asma (np. Sikor ;) ), to może mu to zając sporo czasu, zanim zrozunmie, dlaczego ;( Tymniemniej, wielkie brawa dla TeBego, że mu się chciało... Tylko kilka drobnych poprawek  - i gra gitarrra... ;)

Tyle, ze Dely'emy nie chodzilo o to czy tam sa bledy czy nie, tylko raczej o to iz nie jestes kompetentna osoba ktora mogla by wydawac opinie na ten temat. Wlasnie z postej przyczyny, czyli nieznajomosci ass'a do ktorej sam zreszta sie otwarcie przyznajesz.

Chyba mam racje ???

14

Przyjmijmy jednak hipotezę, że Sikor, utartą metodą "napisz se", chce skorzystać z niniejszego kursu, wpisuje kod i dupajasiu - jest błąd. Więc może zamiast budować dwa fronty (zjeżdżającego i zjeżdżanego), dogadać się czy i gdzie jest ten błąd, poprawić go i po sprawie.

A w ogóle to dema pisać! ;)

I Ty zostaniesz big endianem...

15

Ooo, właśnie, Miker ma rację.  Poza tym, Monsoft, załóżmy, nie znam asemblera, chce się go nauczyć. Biorę kurs TeBego, zalecane narzędzia, piszę, kompiluję jeden program, drugi, jest o.k.. Potem biorę kolejny, a tu dupa - nie idzie. Nie wiem co jest grane (wszak nie znam asma), zaczynam szukać, i nadal kiła. Robi co innego niż wynika z opisu kursu, który powoli roboi się zawiły (bo prowadzący znając temat idzie pewnymi skrótami myślowymi, i nie chodzi tu o TeBego, bo każdytak ma). Więc jako osoba nie znająca tematu powoli się zniechęcam i tyle.
O to chodziło w mojej wypowiedzi.

Sikor umarł...

16

Zamiast się pienić to powiedz, który kod nie działa.

Czy możecie wyjaśnić, Stirlitz, dlaczego wasz służbowy adres stirlitz@rsha.gov.de ma aliasa justas@gru.su?
Nie czytam PM. Proszę używać e-mail.

17

Sikor, nic tak dobrze nie uczy jak analiza dzudzej pracy. ;) Już wiesz, że jest błąd, i wiesz, że jest to błą skłądni (nie komiluje się), więc bierzesz manuala do asma i sprawdzasz. Asembler to nie Windows, gdzie wystarczy poklikać tak jak napisano. Trzeba trochę pomyśleć. :P

Zawsze mam rację, tylko nikt mnie nie słucha.

18

W procedurze scrolla, o ile dobrze pamiętam.

Sikor umarł...

19

Sikor ja sie ogolnie z Toba zgadzam i fakt iz ktos kto sie uczy assa powinien bazowac w nauce na dzialajacym kodzie.

20

najpewniej aa zjadlo jakies znaczki typu <,>, albo i całe linie, stad problemy, trudno napisac program bez tychze znaczkow

*- TeBe/Madteam
3x Atari 130XE, SDX, CPU 65816, 2x VBXE, 2x IDE Plus rev. C

21

TeBe, spox, i tak frasunek za to, że Ci się chciało. Tylko zauważyłem fakt, więc lepiej niech ktoś to sprawdzi i poprawi, bo kogoś, kto się nie zna - może to zniechęcić...

Sikor umarł...

22

Jeśli chcesz mieć szybko satysfakcję, proponuję zacząć od BASICa - tego wbudowanego.

Można na prawde wiele rzeczy zrobić m.in. chyba nawet wspomniany scrolling też robiłem w tym (sprzęt wspomaga).  Do dem się nie nadaje oczywiście (chociaż w BASICu pisałem haha, ale bieda to była nieziemska), ale można coś z matematyki policzyć i z tematów pokrewnych - statystyka i takie tam.

Jeśli chcesz koniecznie pisać dema lub natrafisz na miejsce które ewidentnie zwalnia program, możesz dodać "zaszywki" w ASM jako dodatek do programu w BASICu. W Atari robi się to w postaci HEX (patrz Tajemnice Atari) albo w formie serduszek (takie łańcuchy z danymi - zdaje się było to w Bajtku). A jak już będziesz poprawiał zaszywki bezpośrednio w blokach hexa, to znaczy że możesz przejść na ASM, bo tam jest tylko 56 rozkazów zwyczajowo, więc nauka zajmie ci co najwyżej dwa tygodnie (żeby zrobić Hello World :)

Od cholery o grafice w Atari i programowaniu znajdziesz na:
http://www.atariarchives.org/

Tajemnice Atari - takie dobre czasopismo było...
http://tajemnice.atari8.info/

Pozdro

I'm not so bad, once you get to know me.