
{"id":389,"date":"2010-09-18T12:25:51","date_gmt":"2010-09-18T10:25:51","guid":{"rendered":"http:\/\/matosimi.websupport.sk\/atari\/?p=389"},"modified":"2018-02-16T15:13:11","modified_gmt":"2018-02-16T14:13:11","slug":"cc65-v-prostredi-netbeans-resp-ms-visual-studio-cast-2","status":"publish","type":"post","link":"http:\/\/matosimi.websupport.sk\/atari\/2010\/09\/cc65-v-prostredi-netbeans-resp-ms-visual-studio-cast-2\/","title":{"rendered":"CC65 v prostred\u00ed NetBeans resp. MS Visual Studio &#8211; \u010das\u0165 2"},"content":{"rendered":"<p><em>Tento pr\u00edspevok je pokra\u010dovan\u00edm <a href=\"http:\/\/matosimi.websupport.sk\/atari\/2010\/09\/cc65-v-prostredi-netbeans-resp-ms-visual-studio-cast-1\/\">prvej \u010dasti<\/a> pokecu o rozchoden\u00ed CC65 kompil\u00e1tora v IDE:<\/em><\/p>\n<p>Au.<\/p>\n<p>Ozvala sa \u0161kared\u00e1 hl\u00e1\u0161ka, \u017ee compiler nevie n\u00e1js\u0165 stdio.h kni\u017enicu. <!--more-->Pobl\u00fadil som po str\u00e1nke <a href=\"http:\/\/www.cc65.org\">www.cc65.org<\/a>, kde som vo FAQ na\u0161iel, \u017ee je potrebn\u00e9 nastavi\u0165 environment variables, aby compiler vediel n\u00e1js\u0165 svoje includes. Veselo som teda nastavil parameter CC65_HOME a na moje po\u010dudovanie mi compiler vyhl\u00e1sil rovnak\u00fa chybu. Na to som zatia\u013e prdel, tak som si povedal, \u017ee sk\u00fasim medzit\u00fdm rozchodi\u0165 includy precompilera, aby mi nepod\u010diarkoval v\u0161etky funkcie na \u010derveno. Nasetoval som teda include directories v parametroch projektu a st\u00e1le to bolo \u010derven\u00e9. Ono mi aj bolo divn\u00e9, \u017ee je ten include riadok zap\u00edsan\u00fd takto:<\/p>\n<p>#include &#8221; stdio.h &#8221;<\/p>\n<p>A\u017e ke\u010f som to dal zase skompilova\u0165 CC65kou som si v\u0161imol, \u017ee ten chud\u00e1k tam tie medzery nem\u00e1 ma\u0165. Toto by sa mi samozrejme nestalo, keby som nekop\u010dil tento example priamo z atarionline.pl, kde Jakub nap\u00edsal, \u017ee tam musel da\u0165 medzery preto\u017ee mu to ich CMSko nevedelo zo\u017era\u0165. Samozrejme ako \u010dlovek nehovoriaci po polsky som tento fakt v texte prehliadol a hne\u010f bol probl\u00e9m na svete.<br \/>\nTak som teda tie pekeln\u00e9 medzery praskol do P\u00e9\u010dka (ako sa u n\u00e1s vrav\u00ed) a \u010duduj sa svete, CC65 mi \u00faspe\u0161ne skompiloval tento pr\u00edklad. No napar\u00e1du napar\u00e1du, ale ako je mo\u017en\u00e9, \u017ee precompiler st\u00e1le pod\u010diarkuje funkcie \u010dervenou?<br \/>\nMo\u017ee za to direkt\u00edva preklada\u010da __fastcall__. T\u00e1to sa nach\u00e1dza pred ka\u017ed\u00fdm n\u00e1zvom funkcie a chud\u00e1k (NetBeansovsk\u00fd \u0161tandardn\u00fd C\u010dkov\u00fd) precompiler netu\u0161\u00ed o \u010do kr\u00e1\u010da.<br \/>\nPo nieko\u013ek\u00fdch testoch a ne\u00faspe\u0161nom pokuse zisti\u0165 info na NetBeans f\u00f3re a ich IRC\u010dku (ako\u017ee shitovej\u0161\u00ed community support som e\u0161te neza\u017eil).. som to zrie\u0161il tak, \u017ee prid\u00e1m pred v\u0161etky includes pr\u00e1zdnu defin\u00edciu __fastcall__:<\/p>\n<p>#define __fastcall__<\/p>\n<p>Super fasa, precompiler o\u017eil, NetBeans mi veselo za\u010dal podhadzova\u0165 funkcie.<\/p>\n<p>Ke\u010f som v\u0161ak porovnal v\u00fdstupn\u00fa bin\u00e1rku, bola o nieko\u013eko bytov va\u010d\u0161ia ako t\u00e1, kde som __fastcall__ nedefinoval. Povedal som si, \u017ee dlabem na to, budem p\u00edsa\u0165 program norm\u00e1lne a a\u017e ke\u010f ho budem releasova\u0165 tak zakomentujem vy\u0161\u0161ie spom\u00ednan\u00fd define a bude to ok. <\/p>\n<p>Tak\u017ee p\u00edsa\u0165 k\u00f3d sa d\u00e1 pekne aj s podhadzovan\u00edm, kompilova\u0165 tie\u017e ide, teraz e\u0161te nejako rozchodi\u0165 spustenie bin\u00e1rky v emul\u00e1tore cez nejak\u00e9 tla\u010dko v r\u00e1mci IDE.<\/p>\n<p>Au.<\/p>\n<p>Ako h\u013ead\u00e1m tak h\u013ead\u00e1m, \u017eiadna mo\u017enos\u0165 vola\u0165 external command. Ako\u017ee cho\u010fte mi do prdele. Nakoniec som sa zase googlen\u00edm dostal k tomu, \u017ee mus\u00edm v NetBeans nap\u00edsa\u0165 nejak\u00fd NetBeans module, ktor\u00fd mi tak\u00e9to nie\u010do umo\u017en\u00ed. Teda videl som u\u017e v\u0161eli\u010do, ale toto u\u017e bolo na m\u0148a prive\u013ea, h\u00e1d\u017eem bobek na cel\u00fd NetBeans&#8230; to aby sa \u010dlovek tri dni sral z rozchoden\u00edm IDE nie je norm\u00e1lne.<\/p>\n<p>Tak som si povedal, \u017ee sk\u00fasim predsa in\u0161taln\u00fa\u0165 to Microsoft Visual C++ 2010 Express aj napriek tomu, \u017ee m\u00e1m u\u017e na kompe nain\u0161talovan\u00fd Microsoft Visual C# 2010 Express. V \u00favode prvej \u010dasti tohto \u010dl\u00e1nku som predpokladal, \u017ee nem\u00f4\u017eem ma\u0165 dve Express ed\u00edcie na jednom hoste a teraz som sa po pekelnej sk\u00fasenosti s NetBeans rozhodol overi\u0165 tento fakt.<\/p>\n<p>Zbehol som teda na Microsof\u0165\u00e1cky web, kde som sa preklikal k Express editions a na\u0165ahal som si in\u0161tala\u010dku. Pustil som sa do in\u0161tal\u00e1cie s obavami, \u017ee sa to s t\u00fdm C# bude bi\u0165, ale v\u0161etko prebehlo \u00faspe\u0161ne a naozaj to fr\u010d\u00ed fas\u00e1cky. \u0160pecifikum je akur\u00e1t to, \u017ee obe ed\u00edcie maj\u00fa separ\u00e1tnu bin\u00e1rku, ktorou spust\u00edm dan\u00e9 prostredie.<br \/>\nT\u00fdm chcem poveda\u0165, \u017ee sa to jav\u00ed \u00faplne oddelene a ke\u010f spust\u00edm C# tak m\u00f4\u017eem vytvori\u0165 len C# projekt, rovnako to plat\u00ed aj pre C++. (len pre info: vo Visual Studio Professional je jedno prostredie, kde m\u00f4\u017eem vytv\u00e1ra\u0165 projekty v ktoromko\u013evek z nain\u0161talovan\u00fdch jazykov).<\/p>\n<p>Okey, nastavil som si prostredie za pomoci Jakubov\u00fdch screenov, ale nastal zase z\u00e1drhel. V Express ed\u00edcii nem\u00f4\u017eem debugova\u0165 ne\u0161tandardn\u00fd code type definovan\u00fd projektom. T\u00e1to veta znie mierne odveci, ale fakt to zobrazilo tak\u00fato hl\u00e1\u0161ku. Probl\u00e9m bol v tom, \u017ee som mu nastavil, \u017ee ke\u010f kliknem na tla\u010dko debug\/run, m\u00e1 sa spusti\u0165:<\/p>\n<p>C:\\Program Files\\Atari800WinPLus\\Atari800Win.exe -run x.xex<\/p>\n<p>Smola teda, musel som to spravi\u0165 in\u00e1\u010d.<\/p>\n<p><em>hehehe, po\u010das p\u00edsania tohto \u010dl\u00e1nku sa mi to podarilo rozbeha\u0165 \ud83d\ude00<br \/>\nNevad\u00ed, aj tak pop\u00ed\u0161em ako som to predt\u00fdm obi\u0161iel&#8230;<\/em><\/p>\n<p>Tak\u017ee som si povedal, \u017ee to sprav\u00edm tak, \u017ee si vytvor\u00edm vlastn\u00fd toolpanel a na neho si prihod\u00edm dva external tooly a to &#8220;Build&#8221; a &#8220;Atari800win&#8221;. Na\u0161\u0165astie vo VS nie s\u00fa tak\u00e9 ob\u0161trukcie ako v NB, tak\u017ee to nebolo ve\u013emi zlo\u017eit\u00e9.<br \/>\nTreba si otvori\u0165 Tools->External Commands, zadefinova\u0165 oba commandy (v mojom pr\u00edpade boli na 4. a 5. mieste v zozname). Potom klikn\u00fa\u0165 prav\u00fdm tla\u010d\u00edtkom na n\u00e1strojov\u00fa li\u0161tu a zvoli\u0165 Customize&#8230; V prvej z\u00e1lo\u017eke som si vytvoril Atari toolbar a v druhej z\u00e1lo\u017eke som si zaklikol toolbar Atari a vlo\u017eil do neho External Command 4 a External Command 5 zo skupiny Tools. Nastavenia som potvrdil a BUM, toolbar je na svete a e\u0161te aj funguje :).<\/p>\n<p>Sk\u00fasil som prida\u0165 nejak\u00e9 Atari specific pr\u00edkazy, aby som odsk\u00fa\u0161al, \u010di v\u0161etko funguje ako m\u00e1, preto\u017ee doteraz som robil len &#8220;tr\u00e1pny&#8221; v\u00fdpis textu na obrazovku. Ke\u010f som ale program doplnil o &#8220;vysokoak\u010dn\u00fd&#8221; pr\u00edkaz _setcolor(2,4,4); zistil som, \u017ee sa mi program so zadefinovan\u00fdm __fastcall__ nevygeneruje spr\u00e1vne, resp. setcolor nebude fungova\u0165 tak ako m\u00e1.<\/p>\n<p>No do rite, \u010do s t\u00fdm?<\/p>\n<p>Na\u0161\u0165astie rie\u0161enie nebolo zlo\u017eit\u00e9. Pre IDE je d\u00f4le\u017eit\u00e9 aby bola direkt\u00edva __fastcall__ zadefinovan\u00e1, lebo in\u00e1\u010d nefr\u010d\u00ed podhadzovanie k\u00f3du. Na druhej strane pre CC65 compiler je zas d\u00f4le\u017eit\u00e9 aby som __fastcall__ nedefinoval.<br \/>\nFinta je v tom, \u017ee ke\u010f d\u00e1m kompilova\u0165 program a cez parameter -t (target platform) podhod\u00edm atari, compiler si zadefinuje direkt\u00edvu __ATARI__. To je fasa, preto\u017ee t\u00fato direkt\u00edvu v IDE nasetovan\u00fa nem\u00e1m, tak\u017ee som to vyrie\u0161il tak\u00fdmto code snippetom, ktor\u00fd treba vlo\u017ei\u0165 \u00faplne navrch main.c, e\u0161te pred includes:<\/p>\n<p>#ifndef __ATARI__<br \/>\n#define __fastcall__<br \/>\n#endif<\/p>\n<p>V podstate sa to potom zaspr\u00e1va tak, \u017ee prekompiler zadefinuje __fastcall__ a kompiler ho nezadefinuje. Savenem teda m\u00f4j main.c, pust\u00edm Build, na\u0161tarujem emul\u00e1tor&#8230;<\/p>\n<p>Tarirarir\u00e1\u00e1, fi\u010d\u00ed to!<\/p>\n<p>T\u00e1\u00e1\u00e1k\u017ee pr\u00edbeh o kompil\u00e1tore CC65 a IDE\u010dkach sa \u00faspe\u0161ne kon\u010d\u00ed, to ale neznamen\u00e1, \u017ee na m\u0148a nie\u010do,o \u010dom by som mal nap\u00edsa\u0165, po\u010das pou\u017e\u00edvania nevybehne. Samozrejme, \u017ee sa potom podel\u00edm o dojmy tu na blogu.<\/p>\n<p>Na z\u00e1ver e\u0161te to\u013eko, \u017ee chyst\u00e1m pr\u00edspevok, kde bude popis a screenshoty ako nastavi\u0165 Microsoft Visual C++ Express 2010 pre CC65, nech si to m\u00f4\u017ee niekto sk\u00fasi\u0165 bez ve\u013ek\u00e9ho b\u00e1dania, ktor\u00fdm som musel prejs\u0165 ja.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tento pr\u00edspevok je pokra\u010dovan\u00edm prvej \u010dasti pokecu o rozchoden\u00ed CC65 kompil\u00e1tora v IDE: Au. Ozvala sa \u0161kared\u00e1 hl\u00e1\u0161ka, \u017ee compiler [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3,56],"tags":[100,57,60,61],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>CC65 v prostred\u00ed NetBeans resp. MS Visual Studio - \u010das\u0165 2 - MatoSimi<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/matosimi.websupport.sk\/atari\/2010\/09\/cc65-v-prostredi-netbeans-resp-ms-visual-studio-cast-2\/\" \/>\n<meta property=\"og:locale\" content=\"sk_SK\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CC65 v prostred\u00ed NetBeans resp. MS Visual Studio - \u010das\u0165 2 - MatoSimi\" \/>\n<meta property=\"og:description\" content=\"Tento pr\u00edspevok je pokra\u010dovan\u00edm prvej \u010dasti pokecu o rozchoden\u00ed CC65 kompil\u00e1tora v IDE: Au. Ozvala sa \u0161kared\u00e1 hl\u00e1\u0161ka, \u017ee compiler [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"http:\/\/matosimi.websupport.sk\/atari\/2010\/09\/cc65-v-prostredi-netbeans-resp-ms-visual-studio-cast-2\/\" \/>\n<meta property=\"og:site_name\" content=\"MatoSimi\" \/>\n<meta property=\"article:published_time\" content=\"2010-09-18T10:25:51+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2018-02-16T14:13:11+00:00\" \/>\n<meta name=\"author\" content=\"MatoSimi\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"MatoSimi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"http:\/\/matosimi.websupport.sk\/atari\/2010\/09\/cc65-v-prostredi-netbeans-resp-ms-visual-studio-cast-2\/\",\"url\":\"http:\/\/matosimi.websupport.sk\/atari\/2010\/09\/cc65-v-prostredi-netbeans-resp-ms-visual-studio-cast-2\/\",\"name\":\"CC65 v prostred\u00ed NetBeans resp. MS Visual Studio - \u010das\u0165 2 - MatoSimi\",\"isPartOf\":{\"@id\":\"http:\/\/matosimi.websupport.sk\/atari\/#website\"},\"datePublished\":\"2010-09-18T10:25:51+00:00\",\"dateModified\":\"2018-02-16T14:13:11+00:00\",\"author\":{\"@id\":\"http:\/\/matosimi.websupport.sk\/atari\/#\/schema\/person\/2ff9bfa973a868c31914b5b1b659b697\"},\"inLanguage\":\"sk\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\/\/matosimi.websupport.sk\/atari\/2010\/09\/cc65-v-prostredi-netbeans-resp-ms-visual-studio-cast-2\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/matosimi.websupport.sk\/atari\/#website\",\"url\":\"http:\/\/matosimi.websupport.sk\/atari\/\",\"name\":\"MatoSimi\",\"description\":\"8-bit Atari and other stuff\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/matosimi.websupport.sk\/atari\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"sk\"},{\"@type\":\"Person\",\"@id\":\"http:\/\/matosimi.websupport.sk\/atari\/#\/schema\/person\/2ff9bfa973a868c31914b5b1b659b697\",\"name\":\"MatoSimi\",\"url\":\"http:\/\/matosimi.websupport.sk\/atari\/author\/matosimi\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"CC65 v prostred\u00ed NetBeans resp. MS Visual Studio - \u010das\u0165 2 - MatoSimi","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/matosimi.websupport.sk\/atari\/2010\/09\/cc65-v-prostredi-netbeans-resp-ms-visual-studio-cast-2\/","og_locale":"sk_SK","og_type":"article","og_title":"CC65 v prostred\u00ed NetBeans resp. MS Visual Studio - \u010das\u0165 2 - MatoSimi","og_description":"Tento pr\u00edspevok je pokra\u010dovan\u00edm prvej \u010dasti pokecu o rozchoden\u00ed CC65 kompil\u00e1tora v IDE: Au. Ozvala sa \u0161kared\u00e1 hl\u00e1\u0161ka, \u017ee compiler [&hellip;]","og_url":"http:\/\/matosimi.websupport.sk\/atari\/2010\/09\/cc65-v-prostredi-netbeans-resp-ms-visual-studio-cast-2\/","og_site_name":"MatoSimi","article_published_time":"2010-09-18T10:25:51+00:00","article_modified_time":"2018-02-16T14:13:11+00:00","author":"MatoSimi","twitter_misc":{"Written by":"MatoSimi","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"http:\/\/matosimi.websupport.sk\/atari\/2010\/09\/cc65-v-prostredi-netbeans-resp-ms-visual-studio-cast-2\/","url":"http:\/\/matosimi.websupport.sk\/atari\/2010\/09\/cc65-v-prostredi-netbeans-resp-ms-visual-studio-cast-2\/","name":"CC65 v prostred\u00ed NetBeans resp. MS Visual Studio - \u010das\u0165 2 - MatoSimi","isPartOf":{"@id":"http:\/\/matosimi.websupport.sk\/atari\/#website"},"datePublished":"2010-09-18T10:25:51+00:00","dateModified":"2018-02-16T14:13:11+00:00","author":{"@id":"http:\/\/matosimi.websupport.sk\/atari\/#\/schema\/person\/2ff9bfa973a868c31914b5b1b659b697"},"inLanguage":"sk","potentialAction":[{"@type":"ReadAction","target":["http:\/\/matosimi.websupport.sk\/atari\/2010\/09\/cc65-v-prostredi-netbeans-resp-ms-visual-studio-cast-2\/"]}]},{"@type":"WebSite","@id":"http:\/\/matosimi.websupport.sk\/atari\/#website","url":"http:\/\/matosimi.websupport.sk\/atari\/","name":"MatoSimi","description":"8-bit Atari and other stuff","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/matosimi.websupport.sk\/atari\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"sk"},{"@type":"Person","@id":"http:\/\/matosimi.websupport.sk\/atari\/#\/schema\/person\/2ff9bfa973a868c31914b5b1b659b697","name":"MatoSimi","url":"http:\/\/matosimi.websupport.sk\/atari\/author\/matosimi\/"}]}},"_links":{"self":[{"href":"http:\/\/matosimi.websupport.sk\/atari\/wp-json\/wp\/v2\/posts\/389"}],"collection":[{"href":"http:\/\/matosimi.websupport.sk\/atari\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/matosimi.websupport.sk\/atari\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/matosimi.websupport.sk\/atari\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"http:\/\/matosimi.websupport.sk\/atari\/wp-json\/wp\/v2\/comments?post=389"}],"version-history":[{"count":10,"href":"http:\/\/matosimi.websupport.sk\/atari\/wp-json\/wp\/v2\/posts\/389\/revisions"}],"predecessor-version":[{"id":1313,"href":"http:\/\/matosimi.websupport.sk\/atari\/wp-json\/wp\/v2\/posts\/389\/revisions\/1313"}],"wp:attachment":[{"href":"http:\/\/matosimi.websupport.sk\/atari\/wp-json\/wp\/v2\/media?parent=389"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/matosimi.websupport.sk\/atari\/wp-json\/wp\/v2\/categories?post=389"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/matosimi.websupport.sk\/atari\/wp-json\/wp\/v2\/tags?post=389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}