CC65 a Atari

Atari, Other Add comments

Ako som písal v predošlých článkoch ohľadom CC65 C-čkového kompilátora pre Atari, tu je spomínaný návod ako to celé rozbehať. Nechcem sa opakovať, takže len rýchlo zhrniem úvodné veci a potom prejdem k samotnému nastaveniu projektu.
Aktuálne mám rozrobenú gamesku s použitím CC65, áno, čítate správne, ďalšia hra je na ceste… takže niektoré príklady budú priamo z projektu gamesky “roxblox”.

Takže bez zbytočných kecov pome na to:

  1. Naťahať vývojové prostredie – skočíme na web Microsoftu a naťaháme si Visual C++ 2010 Express.
  2. Naťahať CC65 binárky – skočíme na CC65 web, prejdeme na download, vyberieme niektorý s mirrorov a naťaháme aktuálnu windowsovú inštalačku (cc65-2.13.2-1.exe) + includes a libky špecifické pre Atari (cc65-atari-2.13.2-1.zip).
  3. Nainštalovať Visual C++ 2010 Express – jednoduchá online inštalačka, nič extra sa nenastavuje. Následne si tušim do 14 dní treba prostredie online zaregistrovať a získate registračný kľúč, po ktorého zadaní môžete používať toto IDE dosmrti :). (Registrácia je free – zadara).
  4. Nainštalovať CC65 knižnicu, osobne to mám vo foldri C:\!atari\cc65, inštalačka to defaultne ponúka priamo do rootu disku C. Ak budete meniť cieľový adresár, treba skontrolovať či sedí cesta do home adresára CC65 (environment variable CC65_HOME).
  5. Rozpakovať Atari špecifické súbory CC65 – zipko uvedené v 2. kroku rozpakovať do adresára, kde je CC65 nainštalované.
  6. Spustíme VC++ 2010, v menu File->New->Project… Nastavíme projekt podľa obrázka:
  7. Naštartuje sa wizard, ktorý treba len protvrdiť cez Finish:
  8. Nastaviť parametre pojektu – Pravé tlačítko na názov projektu v Solution exploreri a vybrať voľbu Properties. Voľby nastaviť podľa nasledovných screenov:

    Command je cesta k binárke emulátora.
    Argument je -run s názvom výslednej Atari binárky.

    Include a library adresáre treba nastaviť podľa toho kde je CC65 nainštalované (2. krok).

  9. Vytvoriť batch file Build.bat – Build.bat sa spúšťa v momente keď dáme buildnúť náš projekt, alebo ho ideme spustiť (kvázi debugovať). Môj štandardný Build.bat sa skladá z troch commandov:

    • mads -hc:roxblox_data.h roxblox_data.asx – vytvorenie Cčkového header file z assemblerového includu, ktorý obsahuje data ako napr. DL, fonty, obrázky a potom aj rutiny VBI a DLI. Tento súbor potom následne includujem v samotnom CC65 projekte. Načo to je? Jednoducho v CC65 neviem spraviť všetko a obsluhu prerušení si musím napísať v ASM.
    • cl65 -C atari.cfg -t atari main.c -o main.obx – kompilácia a zlinkovanie main CC65 programu s výstupom main.obx. atari.cfg file slúži na zmenu konfiguračných nastavení pre compiler. V mojom prípade tam nemám žiadnu modifikáciu oproti defaultnému obsahu, takže -C atari.cfg kľúč tam vôbec nepotrebujem, každopádne viac info tu.
    • mads roxblox.asx -o:roxblox.xex – kompilácia drobného asm programu, ktorý mi zlinkuje dokopy výstupy predošlých dvoch krokov a vytvorí finálny spustiteľný roxblox.xex
  10. Vytvoriť ASM include (roxblox_data.asx). Obsah je napríklad takýto:
  11. Vytvoriť linker zdroják (roxblox.asx). Obsah je napríklad takýto:
  12. Pridať do main.c náš vytvorený header file + podmienenú definíciu __fastcall__ o ktorej som písal v predošlých článkoch. Výsledný main.c file by mal začínať nejako takto:
  13. Ďalej už “len” spraviť kompletnú implementáciu, skompilovať a spustiť stlačením klávesy F5.

Jedna dôležitá informácia: runtime debugging nie je možný, keďže neexistuje takýto debugger pre Atari emulátor, takže je občas dosť “veselé” hľadať chybu v programe a skúšať metódou pokus/omyl. Vygenerovaný ASM zdroják je čisté zverstvo, takže na úrovni ASM sa to debuguje tiež veľmi ťažko. Ideálne je zapisovať pri debugovaní sledované hodnoty niekam “ďalej” do pamäte a v emulátore si dumpovať túto pamäť cez monitor.

Dúfam, že sa nájde nejaký borec, ktorý sa pustí do tohto postupu a zmastí nejakú fasácku Atari produkciu.

Info

This post has been displayed 12567 times.

One Response to “CC65 a Atari”

  1. MatoSimi » Blog Archive » CC65 – volanie ASM subroutines SLOVAKIA WordPress 2.9.2 Says:

    […] napíšem do roxblox_data.asx z ktorej si labels prenášam do C (viď článok). Vstupné premenné vložím rovno do 0.stránky. Cčkový kód bude vyzerať […]

Leave a Reply

Wordpress Themes by Natty WP Powered By Wordpress - Theme Provided By Free Wordpress Themes - Online Paralegal Degree