Konference: Počítač SHARP MZ-800 a emulátory
Od: | Anonym |
Datum: | 18.9.2003 09:47 |
Předmět: | Re: MZIX-proveditelnost-vyvojove nastroje |
Zdar, zhruba pred mesicem jsem hledal slusny C compiler, ktery by hodne pohodlne generoval kod pro MZ.. Chystal jsem se (a stale jsem to jeste nezavrhnul) preportovat Sarien na Sharpa... Vybiral jsem mezi SDCC a z88dk (oba volne dostupne) a zvolil z88dk. Ma v sobe implementovany zaklad LIBC pro CP/M, dokonce i pro MZ-700 (vcetne klavesnice), takze pripadny port zakladni LIBC do modu 800 by nemusel byt takovy problem. Ale narazil jsem.. z88dk nepodporuje dost veci, z hlavniho mi uvizlo v pameti: 1) adresace pomocí &proměnná (IMHO velmi závažné) 2) nemožnost vytváření statických polí uvnitř metod (lze obejít deklarací mimo metody, tj. nic důležitého) 3) žádná podpora vícerozměrných polí (lze obejít, nicméně trochu složitěji) Takže při překladu Sarienu jsem si hrál skoro s každým céčkovým souborem zvlášť a nebylo to nic povzbudivého. Nakonec jsem toho zhruba někde v půlce zanechal a odložil Sarien na neurčito. Takže moje stanoviska: - nepoužívat komerční C, aby bylo výsledné prostředí snadno kýmkoli překompilovatelné - poučit se ze z88dk, ale nepoužít ho jako primární C kompiler - zvolit LIBC, kterou budeme používat a najít céčko, kterým by šla přeložit. Vzhledem k tomu, že jako jediná pořádná LIBC mne napadá jen RedHat NewLib, začal bych s ní (o LIBC ze z88dk moc neuvažuji).. Možná se tedy jako jediná logická alternativa jeví SDCC.. Můžeme se na něj zkusit podívat.. Taky jsem se pral s GCC s patchi pro Z80. Kdyby se podařilo, jsme za vodou.. GCC + NewLib nám zpřístupní většinu zdrojáků pro konzolové ulitility z Linuxu (samozřejmě odhlížím od velikosti, tj. je možné, že se nám toho moc do paměti nevejde). Nehledě na C++ ;-)) Ale GCC prý umí dělat velmi kvalitní a optimalizovaný kód (není o moc horší než čistý kód psaný v assembleru), takže kdo ví.. Zatím jsem se dostal do 2. compile stage.. Kdyžtak budu informovat, pokud se mi podaří rozběhat funkční cross-platform GCC pro Z80.. tak později, Roman P.S.: FYI: Sarien je interpretr grafických adventur od Sierry - Leisure Suit Larry, Police Quest, King Quest, Space Quest a plno dalších.. Samozřejmě nevím, zda by se pracovní prostor Sarienu vešel do 64kB RAM Sharpa, ale možná to není úplně nereálné ;-) |---------+---------------------------> | | "Fuzzy | | | (sharpemu tu byla ta zakroucena vec pandor| | | a.cz)" | | | <martin.matyas | | | 18.09.2003 10:06| | | Odpovězte prosím| | | uživateli | | | "Konference | | | "Počítač SHARP | | | MZ-800 a | | | emulátory"" | | | | |---------+---------------------------> >------------------------------------------------------------------------------- ------------------------------------------------| | | | Komu: "Konference "Počítač SHARP MZ-800 a emulátory"" <sharpemu tu byla ta zakroucena vec pandora.cz> | | Kopie: | | Předmět: MZIX-proveditelnost-vyvojove nastroje | | | | | >------------------------------------------------------------------------------- ------------------------------------------------| Cau, Dovolil bych si nastolit 1. tema co se tyka proveditelnosti MZIXu: Jsou k dispozici odpovidajici vyvojove nastroje - bez nich by to prece neslo, ne? Potrebujeme minimalne: 1. Pro vyvoj MZIX samotneho : prekladac C + assembler 2. Pro preklad (popr. vyvoj) UNIXovskych aplikaci pro MZIX: prekladac C + prislusne nastroje potrebne pro vytvoreni binarky v urcitem formatu akceptovatelnem pro MZIX predpokladam, ze bysme pro oba dva ucely mohli pouzivat do znacne miry stejne vyvojove nastroje. S assemblery nebo cross-assemblery by nemely byt zadne problemy, zameril bych se na C prekladace. Pokud sahaji moje znalosti, tak mame na vyber z nasledujiciho: ============================================= 1. Hitech Z80 C cross-compiler ($$$) http://www.htsoft.com je to vyvojove prostredi (prekladac C, z80 assembler, linker) pod msdos pro vyvoj aplikaci na Z80. Dle meho nazoru nejpropracovanejsi a nejvice kompatibilni s ANSI-C z tech, co jsem nasel. Ma ale jednu (asi velkou, mozna neprekonatelnou) nevyhodu - je to komercni produkt. 2. Hitech CP/M C compiler http://www.htsoft.com varianta (1.) pro CPM. Hitech ji prestal podporovat a uvolnil jako free. Obsahuje podmnozinu funkcnosti (1.), ale stale je to (myslim) kvalitni reseni. 3. SDCC http://sdcc.sourceforge.net/ Small Device C Compiler - tvrdi o sobe, ze je ANSI C kompatibilni, jinak o nem zatim nic moc nevim. Open Source. 4. z88dk http://z88dk.sourceforge.net/ jde o OpenSource development kit pro Sinclair Z88 (postaven na z80, a o to nam jde). Jde o Small C+ a assembler/linker. Small C+ je subset ANSI C - jsou jista omezeni. Velmi uzitecna feature assembleru/linkeru je, ze umi vyprodukovat binarku s relokacni tabulkou - a to nejspis budeme potrebovat. Open Source. 5. ZCC ($$$) http://www.softools.com/ ma byt 100% ANSI C kompatibilni. Jinak o nem nic moc nevim, ale jsou na nej velmi dobre reference. Komercni produkt. 6. Lattice C ($$$) www.lattice.com opet ma byt 100% ANSI C kompatibilni. Opet komercni. ============================================= UZI byl prelozen pod Q/C Compilerem (o tom nic nevim) zatimco UZIX pod Hitech C (asi ta komercni cross-varianta) nebo Turbo C (Broland? o tom jsem taky nic nezjistil) Dovolil bych si tedy tvrdit, ze na urovni vyvojovych nastroju nebude nejaky fatalni problem. V teto fazi bych nechtel definitivne rozhodovat, co se vlastne skutecne pouzije, nechal bych na to jeste nejaky cas; mozna to bude nejaka kombinace vyse uvedenych. Doufam, ze bude mozno zustat ve svete free produktu. Co vy na to? Mate zkusenosti s nekterymi z uvedenych vyvojovych nastroju? Nebo vite o necem co jsem opomenul? Fuzzy --
Ostatní příspěvky vlákna:
[2003/1 (22)] [2003/2 (25)] [2003/3 (14)] [2003/4 (20)] [2003/5 (73)] [2003/6 (108)] [2003/7 (88)] [2003/8 (81)] [2003/9 (146)] [2003/10 (60)] [2003/11 (12)] [2003/12 (5)]
[1999 (1)]
[2000 (168)]
[2001 (733)]
[2002 (459)]
[2003 (654)]
[2004 (224)]
[2005 (105)]
[2006 (182)]
[2007 (201)]
[2008 (294)]
[2009 (363)]
[2010 (782)]
[2011 (522)]
[2012 (642)]
[2013 (442)]