Ako na asm x51 v PSPade

Jan Waclawek konfera@efton.sk
Pondělí Prosinec 17 01:20:21 CET 2007


Slubeny popis pre prechod z "len DOS" prostredia na nieco o chlpok modernejsie, pre pracu v assembleri x51, pricom sa budeme pridrzat "nizkej ceny" (t.j. soft zadarmo).

Zacneme samotnym assemblerom, moj oblubeny je Metalink, takze si ho stiahneme z http://www.metaice.com/ASM51/ASM51.htm a rozbalime na nejakom prihodnom mieste, trebars 

Dalsi krok je editor. Je ich viacero, ale podporme domacu tvorbu, http://www.pspad.com . Ja si zasadne instalujem vsetko v anglickej mutacii, lebo jednoducho tym cesko-slovenskym popisom, menu atd. nerozumiem (to nie je machrovanie, naopak, v poslednom case je takmer vsade lokalizacia a pre mna to je dost problem). PSPad zrejme umoznuje menit jazyk aj za jazdy, ale to si uz musite vyskusat sami. Instaluje sa standardnym preklikanim sa cez vsetky okna, nemal by tam byt ziadny zadrhel. Dokonca sa hned po instalacii aj sam spusti, takze to usetri dva-tri kliky :-)

Rovno si v nom otvorime nejaky .a51 subor.

Teraz pride to hlavne - nakonfigurovat si PSPad pre pohodlnu robotu. Kedze ma asi poldruha miliona nastavovatok, sustredime sa len na tie relevantne pre nas pripad, ostatne hejblatka si mozete vyskusat v ramci cvicenia inokedy. Klucova polozka je Settings->Highlighter Settings, kde je toho podstatne viac nez len nastavenie zvyraznovania (to je taka historicky dana vec, nie je zrejme jednoduche danu polozku pomenovat jednoducho a vystizne). Ma to taku farebnu ikonu akoby lezatu osmicku a nad tym je drobnulinkym pismom napisane "C++". 

V lavom okienku zarolujeme nadol kde poslednych zopar poloziek je "<not assigned>", klikneme na jednu z nich, a v zalozke Specification si v kolonke "User Highlighters" vyberieme "Assembler x51". Mozno nie je uplne optimalny pre metalink, ale na uvod postaci, a ked pridete na to, co kde preco naco zaco a ako, tak si to uz prisposobite pre Vase potreby. Dame Apply/OK, zrejme sa nic navonok nestane, lebo toto sa na uz otvoreny subor neuplatni; a aj keby sme si teraz otvarali nejaky subor nanovo, tak ak je pripony .asm tak sa highlightne ako x86 asm, a ak je s priponou .a51, tak sa nehighlightne vobec. Toto sa da doladit aj neskor - zakazanim x86 highlightu a prip. pridanim pripony .a51 do zoznamu pripon pre '51 highlighter. Ale nie je to nevyhnutne - jednoducho si pre dany prave otvoreny subor mozeme nastavit lubovolny highlight manualne, cez View->Change Syntax (ma to taku istu ikonu s tym "C++"). Teraz uz mame subor zvyrazneny pekne pre '51 (konkretne farby, tucnotu klucovych slov atd. - to vsetko sa da tiez nastavit, ma to cas).

Teraz sa vratte do okna Settings->Highligher Settings, a vpravo si prepnite na zalozku Compiler. V polozke Compiler sa cez "..." preklikajte na ProgramFiles\metalink\asm51.exe, do okienka Parameters napiste "%File%" (pozor, aj s uvodzovkami, a zalezi na velkych/malych pismenach!), do polozky Log File napiste %Dir%%Name%.lst (odporucam este stlacit F1 a prestudovat si help pre tieto polozky). Este je dobre zakliknut "Save All Files...", ale nezaklikavajte "Capture Program Output Window", to by to potom takto nefungovalo. Teraz ked sa v editorovom okne stlaci CtrlF9, spusti sa automaticky prekladac s patricnym suborom, a vysledny log sa nacita do okna dole. Este sa da urobit to ze sa v Settings->Highlighter Settings->Compiler v polozke LOG parser zada *Line #%L, co sposobi ze ak sa clovek v log okne dole nastavi na popis chyby v zozname chyb na spodku, a stlaci CtrlV, tak sa v editorovom okne automaticky skoci na riadok kde je chyba; ale nefunguje to s tymto asemblerom ak su aj include subory, lebo on blbec rata do cisla riadku aj tie riadky v include...

Staci takto?

wek



PS. Najvacsi zadrhel v takomto prechode je - okrem zmeny stylu prace - najma v makrach. Tam bohuzial u vsetkych asemblerov prevlada volna tvorivost, takze je potrebne makra aj ich volania prepisat viacmenej rucne. U Metalinku je dodatocny problem v tom, ze nepodporuje "lokalne" symboly v makrach (aj ked sa to da obist automatickym generovanim suffixu k symbolom, co je naznacene aj v manuali). Asem sice lokalne symboly podporuje, ale kedze ho nemam rad, dalej som to neskumal... :-)




Další informace o konferenci Hw-list