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:
- Naťahať vývojové prostredie – skočíme na web Microsoftu a naťaháme si Visual C++ 2010 Express.
- 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).
- 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).
- 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).
- Rozpakovať Atari špecifické súbory CC65 – zipko uvedené v 2. kroku rozpakovať do adresára, kde je CC65 nainštalované.
- Spustíme VC++ 2010, v menu File->New->Project… Nastavíme projekt podľa obrázka:
- Naštartuje sa wizard, ktorý treba len protvrdiť cez Finish:
- 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).
- 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
- Vytvoriť ASM include (roxblox_data.asx). Obsah je napríklad takýto:
- Vytvoriť linker zdroják (roxblox.asx). Obsah je napríklad takýto:
- 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:
- Ď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.
One thought on “CC65 a Atari”