Přejít na obsah
ARCHIVEKArchiv e-mailových konferencí o 8bitových počítačích Archiv Pandory 1999 až 2013

Zpět na zprávu

Celé vlákno · 10 zpráv

MZIX-proveditelnost-vyvojove nastroje

Fuzzy SHARP MZ-800

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

Re: MZIX-proveditelnost-vyvojove nastroje

Anonym SHARP MZ-800

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          |
|         |           (sharpemupandor|
|         |           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""
<sharpemupandora.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
--





Re: Re: MZIX-proveditelnost-vyvojove nastroje

Fuzzy SHARP MZ-800

Co se tyka LIBC:
Dalsi varianta je LIBC od Hitechu, je to public domain a pouziva ho i UZIX.

Komercni/nekomercni:
Pokud to bude jen trochu mozne, tak samozrejme zvolime nekomercni vyvojove
 prostredi.

Prekladac C:
Jestli by se podarilo napatchovat GNU C pro Z80, tak by to bylo uplne super.
Dal - pripominam, ze dost pouzitelna varianta je Hitech C pod CP/M.
Da se s nim delat tak, ze se pro preklad vola z dos/win/linuxu pod emulatorem
CP/M.

Jinak dik za zkusenosti se z88dk. Me se tam libil ten linker, co umi generovat
relokovatelny binarky.

V tehle fazi bych navrhoval jeste nic nerozhodovat co se tyka vyvojovych
nastroju,
muzeme zkouset a zjistovat.

Ale co si myslim ze muzeme rict - a snad se mnou, Romane, budes souhlasit -
ze otazka vyvojovych nastroju je realne resitelna a nebude predstavovat
neprekonatelny problem, a to by mel byt hlavni vysledek tehle diskuse v tomhle
threadu.

Kdo mate cas a chut, tak se please na nejake vyse uvedene free C compilery
podivejte.
Ja se zkusim podivat na SDCC.

Fuzzy

Re: Re: MZIX-proveditelnost-vyvojove nastroje

Anonym SHARP MZ-800

Kdyby to slo hlasoval bych pro variantu Hitech C pod CP/M
aby to nebylo zavisle na prekladacich pitomejch 16 a vicebitovych stroju
kdyz stylovej OS pro 8-bit tak na stylovem C pro Z80.

ale tohle neni racionalni duvod :-)))

Petr

Zobrazit citovaný text (3 řádky)
>
> Prekladac C:
> Jestli by se podarilo napatchovat GNU C pro Z80, tak by to bylo uplne
super.
Zobrazit citovaný text (2 řádky)
> Dal - pripominam, ze dost pouzitelna varianta je Hitech C pod CP/M.
> Da se s nim delat tak, ze se pro preklad vola z dos/win/linuxu pod
emulatorem CP/M.
Zobrazit citovaný text (2 řádky)
>
> Jinak dik za zkusenosti se z88dk. Me se tam libil ten linker, co umi
generovat



Re: Re: MZIX-proveditelnost-vyvojove nastroje

Anonym SHARP MZ-800

Nemyslim, ze to je neracionalni duvod. Pokud budeme chtit plne funkcni
Unix, mel by k nemu patrit i C compiler (integrovany v prostredi).
Hitech C pod CP/M je, IMHO, kvalitni volba. Jen by byl problem v tom, ze
nepodporuje adresarovou strukturu, coz by vyzadovalo u hodne zdrojaku praci
navic..

Kdyby se nekomu nakonec podarilo naportovat GCC pro Z80, neni uplne
vylouceno, ze by neslo prekompilovat primo GCC samo sebou, abychom ho měli
přímo na Sharpu. Jen jeste takova zajimavost: Jestli jsem spravne cetl
dokumentaci GCC, umi prekladany kod segmentovat do libovolne velkych kusu,
ktere se mezi sebou volaji co nejmene. Pro prechod mezi nimi je volan
system. Je tak mozne kompilovat libovolne velky kod, i kdyz umi samotná Z80
jen 64kB "paměťové okno".

R.

Zobrazit citovaný text (1 řádek)
>Dne 18.09.2003 13:14:40 "miksovsky[doména skryta] (sharpemupandora.cz)"
napsal:
Zobrazit citovaný text (20 řádků)
>
>Kdyby to slo hlasoval bych pro variantu Hitech C pod CP/M
>aby to nebylo zavisle na prekladacich pitomejch 16 a vicebitovych stroju
>kdyz stylovej OS pro 8-bit tak na stylovem C pro Z80.
>
>ale tohle neni racionalni duvod :-)))
>
>Petr
>
>>
>> Prekladac C:
>> Jestli by se podarilo napatchovat GNU C pro Z80, tak by to bylo uplne
>super.
>> Dal - pripominam, ze dost pouzitelna varianta je Hitech C pod CP/M.
>> Da se s nim delat tak, ze se pro preklad vola z dos/win/linuxu pod
>emulatorem CP/M.
>>
>> Jinak dik za zkusenosti se z88dk. Me se tam libil ten linker, co umi
>generovat
>


Re: Re: Re: MZIX-proveditelnost-vyvojove nastroje

Fuzzy SHARP MZ-800

C compiler v MZIXu by byl pekny, ale nebral bych to jako 'must' -
 cross-compilovat na jinem systemu se muze stejne dobre.

Roman: Jak je to s tim GCC na z80: dela na tom nekdo, mas o tom nejake
informace/odkazy?

Fuzzy

Re: Re: MZIX-proveditelnost-vyvojove nastroje

Feri SHARP MZ-800




v poslednej dobe (cca 6 rokov) som neskusal C kompilatory, ani v unixe, ani
v Z80 (kedysi davno som robil s Borlandom a DJCPP ako prve pokusy na UMZE).
ale podla toho co som o C cital, udajne prve unixove C bolo pisane
"sendvicovo" - jadro kompilatora cez assembler, akonahle bezal tak vsetky
dalsie casti kompilatora C/samotneho unixu boli dopisovane a
dokompilovavane v C. neslo by to takto nejako robit aj tu? tzn. jadro
napisat v assembleri, a v prvom rade napisat chodivy C kompilator priamo v
shelli, ktory by sa pouzil na pisanie dalsich utilit unixu (MZIXu).

to len ako napad, mozno nepreveditelny, ale za uvahu (ked uz nie za pokus)
to stoji, IMHO.

Feri.

Re: Re: MZIX-proveditelnost-vyvojove nastroje

Feri SHARP MZ-800




este som zabudol: moj predchadzajuci prispevok bol ako reakcia na uvahu o
pouziti CP/M kompilatora C. pripada mi to hlupe, pouzivat CP/M pre
kompilaciu, ked sucastou unixu ma byt (by mal byt) aj C kompilator.

Feri.

Re: Re: MZIX-proveditelnost-vyvojove nastroje

Anonym SHARP MZ-800

LIBC:
O tom Hitechu jsem neslyšel, ale mohlo by to být ono. Samozřejmě je
 otázka,
jak je to s podporou adresářových struktur a podobně. Mrknu se...

Prekladac C:
Na GCC se jeste podivam, to mi za to stoji ;-)
Ale i to Hitech C nezni spatne! Pokud by bylo spustitelne primo z Linuxu,
jsem v pohode. Nejak jsem si uz zvykl na komfortni editaci, takze bych
chtel vyvijet v prostredi, ktere znam ;-)

z88dk:
Ono neni tak spatne. Kdyby se podarilo vyresit nejake mouchy, bylo by hodne
pouzitelne.. Ten linker se mi taky libil, navic je hodne dobre citelny i
ASM generovany z ceckoveho zdrojaku.

Kazdopadne si taky nemyslim, ze bychom meli v teto fazi rozhodovat o
pouziti vyvojovych nastroju - proste neco vyzkousime a uvidime ;-)
Rozhodne souhlasim, ze nepujde o neprekonatelny problem..

R.

Zobrazit citovaný text (4 řádky)
>Dne 18.09.2003 13:01:25 "Fuzzy (sharpemupandora.cz)" napsal:
>
>Co se tyka LIBC:
>Dalsi varianta je LIBC od Hitechu, je to public domain a pouziva ho i
UZIX.
Zobrazit citovaný text (3 řádky)
>
>Komercni/nekomercni:
>Pokud to bude jen trochu mozne, tak samozrejme zvolime nekomercni vyvojove
Zobrazit citovaný text (4 řádky)
>prostredi.
>
>Prekladac C:
>Jestli by se podarilo napatchovat GNU C pro Z80, tak by to bylo uplne
super.
Zobrazit citovaný text (2 řádky)
>Dal - pripominam, ze dost pouzitelna varianta je Hitech C pod CP/M.
>Da se s nim delat tak, ze se pro preklad vola z dos/win/linuxu pod
emulatorem
Zobrazit citovaný text (3 řádky)
>CP/M.
>
>Jinak dik za zkusenosti se z88dk. Me se tam libil ten linker, co umi
generovat
Zobrazit citovaný text (7 řádků)
>relokovatelny binarky.
>
>V tehle fazi bych navrhoval jeste nic nerozhodovat co se tyka vyvojovych
>nastroju,
>muzeme zkouset a zjistovat.
>
>Ale co si myslim ze muzeme rict - a snad se mnou, Romane, budes souhlasit
-
Zobrazit citovaný text (2 řádky)
>ze otazka vyvojovych nastroju je realne resitelna a nebude predstavovat
>neprekonatelny problem, a to by mel byt hlavni vysledek tehle diskuse v
tomhle
Zobrazit citovaný text (3 řádky)
>threadu.
>
>Kdo mate cas a chut, tak se please na nejake vyse uvedene free C compilery
Zobrazit citovaný text (5 řádků)
>podivejte.
>Ja se zkusim podivat na SDCC.
>
>Fuzzy
>--

Re: Re: Re: MZIX-proveditelnost-vyvojove nastroje

Fuzzy SHARP MZ-800

Napsat C prekadac by byl velmi narocny projekt sam o sobe. Neni k tomu zadny
 duvod, kdyz mame jine moznosti - cross kompilace. Snad az budou aspon zaklady
MZIXu, tak by tam nekdo mohl nejaky C prekladac portovat.

Fuzzy