Forum: Compiler & IDEs C Compiler für 8080/8085


von Thomas Z. (usbman)


Lesenswert?

für ein Retro Projekt suche ich einen C Compiler für den 8085 als 
Crosscompiler unter Win. Ich habe schon etwas mit dem Small C Compiler 
gespielt, das funktioniert auch grundsätzlich. Der Syntax ist aber schon 
sehr gewöhnungsbedürftig.
Getestet habe ich https://github.com/ncb85/SmallC-85/tree/master/smallC
hier ein Beispiel;
1
foo (value) unsigned int value;
2
{
3
   return value >> 8;
4
}
sieht seltsam aus....

SDCC wäre vermutlich eine Möglichkeit, da könnte man ein zusätzliches 
Target einbauen und vom Z80 ableiten. Da scheitere ich aber momentan 
schon am Build unter Windows.

kennt jemand noch andere Comiler?

google hat noch diesen komerziellen Compiler ausgespuckt:
https://softools.com/scz180.htm

Da regiert aber keiner auf mails.

von KArl Fred M. (Gast)


Lesenswert?

Läuft Turbo C da noch nicht drauf?
https://de.wikipedia.org/wiki/Turbo_C

Ach so, hatte 8088 gelesen

von Thomas W. (Gast)


Lesenswert?

Moin, -

gucke mal:

https://www.bdsoft.com/resources/bdsc.html

Aber sicherlich 16Bit-Software.

Gruesse

Th.

P.S.: Es ist CP/M -Software. Thema verfehlt.... 40 Jahre zu spaet.

von Klaus S. (kseege)


Lesenswert?

Thomas Z. schrieb:
> kennt jemand noch andere Com(p)iler?

Mir fallen spontan Dave Dunfield (Dunfield Systems) und Walter Banks 
(Raisonance) ein, die damals C-Compiler verkauften. Ob 8080/8085 dabei 
waren, kann ich nicht sagen, sollte aber herauszukriegen sein.

Gruß Klaus (der soundsovielte)

von Max M. (Gast)


Lesenswert?

Thomas Z. schrieb:
> C Compiler für den 8085
Puh, den haben wir damals in ASM gequält.
Der 8085 ist in maximaler Geschwindigkeit ausgestorben als der 8051 und 
besseres kam. Zu Recht muss ich betonen.
Versuch Dein Glück mal in der MFA System Fangemeinde.
https://forum.classic-computing.de/forum/index.php?board/202-mfa-mikrocomputer-f%C3%BCr-ausbildung/

Thomas Z. schrieb:
> https://softools.com/scz180.htm
> Da regiert aber keiner auf mails.
Preisliste und Seite von 2004.
Das ist eine Netzleiche.

Thomas W. schrieb:
> https://www.bdsoft.com/resources/bdsc.html
Ein CPM 80 / DOS Programm von 2002.

von (prx) A. K. (prx)


Lesenswert?

Thomas Z. schrieb:
> SDCC wäre vermutlich eine Möglichkeit, da könnte man ein zusätzliches
> Target einbauen und vom Z80 ableiten.

Sollte der eines der Indexregister als Frame Pointer verwenden, wird das 
Arbeit.

von Thomas W. (Gast)


Lesenswert?

Moin, -

8080/8085 C-Compiler waren auch rar: Zum einen wurde die Entwicklung in 
Assembler gemacht, zum anderen kam dann die Z80 auf den Markt. Die war 
einfach besser. Und das C (K&R) war auch nicht so toll (so vor 40 
Jahren).

Vielleicht koenntest Du ueber CP/M (z.B. 
https://www.autometer.de/unix4fun/z80pack/) Dir einen 8085-C-Compiler 
suchen. Irgdendwie in Hex-Format und dann irgend wie weiter. Ist aber 
mehr von hinten ins Knie ins Auge...

Gruesse

Th.

von Klaus S. (kseege)


Lesenswert?

Gleich der erste Eintrag bei Google nach "dave dunfield C-Compiler" 
bringt
https://dunfield.themindfactory.com/dds/lang.htm
und darin:
"Possibly the best known of my tools, Micro-C is a complete compiler and 
development package for the C programming language. Marketed mainly as a 
cross development tool, versions of the compiler have been ported to: 
68HC08, 6809, 68HC11, 68HC12, 68HC16, 8051/52, 8080/85/Z80, 8086, 8096 
and AVR processor families."

Gruß Klaus (der soundsovielte)

von Thomas Z. (usbman)


Lesenswert?

(prx) A. K. schrieb:
> Thomas Z. schrieb:
>> SDCC wäre vermutlich eine Möglichkeit, da könnte man ein zusätzliches
>> Target einbauen und vom Z80 ableiten.
>
> Sollte der eines der Indexregister als Frame Pointer verwenden, wird das
> Arbeit.

Wie gesagt SDCC ist nur eine Theorie. Ich scheitere da schon an der 
Build Umgebung. Was natürlich auch an der mangelnden und veralteten Doku 
liegt. Zusätzlich befürchte ich dass mein Knowhow nicht ausreicht um in 
annehmbarer Zeit ein Ergebnis zu bekommen.

Max M. schrieb:
> Preisliste und Seite von 2004.
> Das ist eine Netzleiche.
Das denke ich auch.
Die Demo IDE hab ich malruntergeladen. Schon die Installation ein ein 
Krampf. Die Demolizenz funktioniert nur wenn nicht unter Programme 
installiert wird.
Bis jetzt hab ich es noch nicht geschafft eine simple main() korrekt zu 
übersetzen. Die Fehlermeldungen deuten auf eine kaputte Lizenz hin.

von Klaus S. (kseege)


Lesenswert?

Bei Walter Banks hat mich meine Erinnererung getrogen, sein Label war 
"Byte Craft" und nicht Raisonance. Er ist 2019 gestorben, die Webseite 
bytecraft.com ist zu kaufen. Da gibts wohl nichts mehr.

Gruß Klaus (der soundsovielte)

von Thomas Z. (usbman)


Lesenswert?

Klaus S. schrieb:
> Bei Walter Banks hat mich meine Erinnererung getrogen, sein Label war
> "Byte Craft" und nicht Raisonance. Er ist 2019 gestorben, die Webseite
> bytecraft.com ist zu kaufen. Da gibts wohl nichts mehr.

Dave Dunfield hatte 2019 einen schweren Unfall
https://dunfield.themindfactory.com/2019.htm

Der macht wohl auch nicht mehr viel.

von Philipp Klaus K. (pkk)


Lesenswert?

(prx) A. K. schrieb:
> Thomas Z. schrieb:
>> SDCC wäre vermutlich eine Möglichkeit, da könnte man ein zusätzliches
>> Target einbauen und vom Z80 ableiten.
>
> Sollte der eines der Indexregister als Frame Pointer verwenden, wird das
> Arbeit.

Macht er zwar, aber es gibt --fomit-frame-pointer, und auch das 
sm83-Backend (sm83 hat weder iy noch iy), so dass SDCC durchaus Code 
generieren kann, der kein Indesregister als Framepointer verwendet.

von Klaus S. (kseege)


Lesenswert?

Google bringt die erstaunlichsten Ergebnisse, hier z.B. Suche nach 
"CP/M-80 C-Compiler":
https://kevinboone.me/cpm-c.html
erwähnt, daß der Aztec C-Compiler frei aus dem Museum erhältlich ist. 
Der erzeugt 8080-Code, eventuelle 8085-Besonderheiten müßte man per 
Assembler einbauen. CPM-80-Emulatoren gab es früher für PC zuhauf, da 
sollte ebenfalls  noch was zu finden sein.

Mein ISIS-II Emulator für PLM85 und PLM51 ist in gelegentlicher Aktion 
und läuft auch noch unter Win10.

Gruß Klaus (der soundsovielte)

von Werner R. (werner_85)


Lesenswert?

hallo Thomas,

ein gangbarer Weg ist ein CP/M Emulator z.B. YAZE
(https://www.mathematik.uni-ulm.de/users/ag/yaze-ag/) und dann
den C-Compiler aus dieser Quelle
http://www.retroarchive.org/cpm/lang/lang.htm
nutzen

LG Werner

von Gerhard H. (ghf)


Lesenswert?

Es gab noch BDS-C, der war, gemessen an seinen Fußfesseln
garnicht so schlecht.

Von Turbo-Pascal gab es wohl eine 8080-Version. Ja, ist kein C.
IIRC war das deutlich besser als der Pascal-Compiler zum HP1600/
64000 Entwicklungssystem, der war einfach unbrauchbar.
Pascal-MT+ hatten wir auch, das hat nativ nach Z80 / 8080??? übersetzt.

Andrew Tanenbaum von der Frije Uni Amsterdam hatte eine Z80-Version
für seine EM (Experimental Machine, eine Stackmaschine) und auch
den passenden C-Compiler dazu, und auch einen minimalen Kernel
"Amoeba". Man weiß ja, dass er sich wegen des Kernel-Designs heftig
mit Linus Thorwalds gezofft hat. Davon waren die Quellen verfügbar,
der Z80 hat sich ganz wacker geschlagen, auch gegen die 16-Bitter.
Die Z80-Maschine könnte man wohl umschreiben.
Ob das Spass macht oder sinnvoll ist, das ist eine andere Frage.

Gruß, Gerhard

: Bearbeitet durch User
von Uwe B. (uwebre)


Lesenswert?

Thomas Z. schrieb:
> für ein Retro Projekt suche ich einen C Compiler für den 8085 als
> Crosscompiler unter Win.

Ich habe noch einen MI-C Crosscompiler für den Z80 unter DOS (läuft mit 
DosBox). Soll angeblich auch 8080 können, ich sehe aber nicht wie man 
dem Compiler erklärt welchen Code er erzeugen soll. Scheint keinen 
Schalter zu geben.
Mein Verdacht ist daß es verschiedene Programme waren. (Der Comliler 
heist ccz.exe) Vieleicht kann sich noch jemand erinnern?

Uwe

von Uwe B. (uwebre)


Lesenswert?

Uwe B. schrieb:

> Mein Verdacht ist daß es verschiedene Programme waren. (Der Comliler
> heist ccz.exe) Vieleicht kann sich noch jemand erinnern?

Habe es in der Doku gefunden. Ist so, der 8080-Compiler heißt cc.exe.
Leider habe ich den nicht, sorry.

Uwe

von Altteilesammler (Gast)


Lesenswert?

Ich hätte da vielleicht etwas passendes.
Interesse?

Unterstützt den 8085 nativ. U.a. z.B. 8080, Z80, Z180...

von Altteilesammler (Gast)


Lesenswert?

Achja, für PL/M51 muss man nun wirklich nicht ISIS2 bemühen.
Das braucht nur der PL/M80.

von Klaus S. (kseege)


Lesenswert?

Altteilesammler schrieb:
> Achja, für PL/M51 muss man nun wirklich nicht ISIS2 bemühen.
> Das braucht nur der PL/M80.

Und wo bekomme ich PL/M-51 sonst noch?

Gruß Klaus (der soundsovielte)

von Roland F. (rhf)


Lesenswert?

Hallo,
Thomas Z. schrieb:
> Der Syntax ist aber schon
> sehr gewöhnungsbedürftig.
> Getestet habe ich https://github.com/ncb85/SmallC-85/tree/master/smallC
> hier ein Beispiel;
>
1
 foo (value) unsigned int value;
2
 {
3
    return value >> 8;
4
 }
> sieht seltsam aus....

Nö, gar nicht, das ist "Ur"-K&R-C.

rhf

von Thomas Z. (usbman)


Lesenswert?

Roland F. schrieb:
> Nö, gar nicht, das ist "Ur"-K&R-C.

naja ich bin zwar alt aber so alt dann doch nicht. Diesen Syntax hab ich 
bisher noch nicht gesehen. Aztec C sagt mir noch was vom C64 bzw Apple2. 
Das ist sicher einen Blick wert.

Es sind doch erstaunlich viele Ansätze zusammengekommen. Mir war schon 
klar dass in der CPM Welt noch ein paar Dinge gibt.
Vielen Dank an alle Hinweisgeber.

von (prx) A. K. (prx)


Lesenswert?

Thomas Z. schrieb:
> Diesen Syntax hab ich bisher noch nicht gesehen.

Wenn man Compiler für eine uralte Plattform sucht, besteht natürlich das 
Risiko, dass man uralte Compiler für uralte Standards findet. ;-)

von Cartman (Gast)


Lesenswert?

Wer mit K&R-C angefangen hat, fand Ansi-C auch hoechst komisch...

von Dieter (Gast)


Lesenswert?

Was spricht gegen diesen Cross-Compiler?

http://www.aztecmuseum.ca/az80106d.zip
1
Manx Aztec C80
2
Version 1.06d
3
Developer System
4
for CP/M-80
5
Target: Z80 and 8080 Native Code
6
7
CP/M-80 development environment for Z80 and compatible computers. Preconfigured for cross-development under MS-DOS or Windows XP.

von rbx (Gast)


Lesenswert?

Vielleicht hat man mit Pascal mehr Glück?

(https://www.tramm.li/i8080/Intel%208080-8085%20Assembly%20Language%20Programming%201977%20Intel.pdf)

http://www.khk.net/s85/german.html

https://de.wikipedia.org/wiki/Intel_HEX

Thomas Z. schrieb:
> Der macht wohl auch nicht mehr viel.

Zumindest hatte er den Unfall + Hergang schon mal recht gut beschrieben. 
Leider sind die Plastizitätszeiten, welche auch große Motivation mit 
sich bringen, nur sehr kurz - oder aufgrund der Sachlage nicht nutzbar.

Selbsthilfegruppen sind ganz gut, wirken aber alleingelassen, es fehlt 
an Motivation, und passenden Vorbildern. Die Vorbilder (Musik, Tanzen, 
Turnen usw.) funktionieren recht gut. Aber da kommen die Betroffenen 
nicht von alleine drauf :( praktisch eine Selbshilfegruppe, die sich 
selbst am eigenen Schopf aus dem Schlammassel herausziehen muss.

So kann man dankbar sein, wenn entsprechend hoch engagierte Reha-Teams 
(wie z.B. in der Magdeburg-Reha) unterwegs sind. Aber die sind nicht 
selbstverständlich.
Auch die Abholung bei Unfall muss sehr schnell erfolgen, und da habe ich 
auch schon ziemliche (unpassende) Trödelworkflows gesehen.

von Klaus S. (kseege)


Lesenswert?

Roland F. schrieb:
>> foo (value) unsigned int value;
>>  {
>>    return value >> 8;
>>  }
>> sieht seltsam aus....
>
> Nö, gar nicht, das ist "Ur"-K&R-C.

Nach meiner Erinnerung wurde das klammernlose "return mit Rückgabewert" 
erst mit ANSI-C eingeführt. Bei K&R-C mußte m.E.n. die Klammer nach 
return immer benutzt werden, wenn man etwas zurückgeben wollte.
Weiß es jemand "ganz" genau? Mein K&R-C-Buch hat den Verleihvorgang 
nicht überlebt. In den Beispieltexten für K&R-C, die ich im Internet 
gefunden habe, ist die Klammer auch immer vorhanden.

Gruß Klaus (der soundsovielte)

P.S. Entschuldigt bitte die Besserwisserei, aber mikrocontroller.net 
zählt für mich zu den "besseren" Quellen und deshalb sollte Falsches 
nicht unkorrigiert stehen bleiben.

von (prx) A. K. (prx)


Lesenswert?

Klaus S. schrieb:
> Weiß es jemand "ganz" genau?

Dieser Beschreibung zufolge ist es unverändert:
https://cs.wmich.edu/~gupta/teaching/cs4850/sumII06/The%20syntax%20of%20C%20in%20Backus-Naur%20form.htm

return {<expression>}? ;

PS: Der damalige Referenzcompiler sieht das genauso:
https://github.com/AoiMoe/knrcc

: Bearbeitet durch User
von Jürgen Fiebig (Gast)


Lesenswert?

K&R (Deutsch 1983):
   return(Ausdruck mit Resultat Wert)

von Martin H. (horo)


Lesenswert?

Jürgen Fiebig schrieb:
> K&R (Deutsch 1983):
>    return(Ausdruck mit Resultat Wert)

K&R 1983 deutsch, Seite 27, Fußnote 4:
Die Klammern sind nicht syntaktisch notwendig. A.d.Ü.

von Andreas H (Gast)


Lesenswert?

Thomas Z. schrieb:
> Wie gesagt SDCC ist nur eine Theorie. Ich scheitere da schon an der
> Build Umgebung.

Komisch. Ich hab den SDCC seit einiger Zeit für STM8 am Start.
Installation & Betrieb absolut problemlos.
Und "Build Umgebung"? --> make.
Aber vermutlich könnte man sich auch sbt hinbasteln ;)

/regards

von Georg A. (georga)


Lesenswert?

Altteilesammler schrieb:
> Achja, für PL/M51 muss man nun wirklich nicht ISIS2 bemühen.

Boah, das gab jetzt ein heftiges Flashback an ein 8085-Unipraktikum in 
den frühen 90ern mit den Dingern. Schon da war das für uns 
prähistorisch. Zwei 8"-Floppy-Laufwerke die sich bei so gut wie jeder 
Aktion die Köpfe totgeklickt haben...

von Krause (Gast)


Lesenswert?

...und da wäre noch der PL/M-80 Compiler.

von DerEgon (Gast)


Lesenswert?

Welcher davon kann C?

von Luther B. (luther-blissett)


Lesenswert?

Z88DK unterstützt seit kurzem (wieder) 8080/8085.

https://github.com/z88dk/z88dk/wiki/Classic-8080

Der Compiler ist "nearly C90 compliant" immerhin.

Für SDCC gibt es ein experimentelles Backend für 8080:

https://hackaday.io/project/166827-targeting-sdcc-to-the-8080

Der Amsterdam Compiler, der weiter oben genannt wurde, existiert noch 
und ist von einigen Freiwilligen modernisiert worden. Das i80 Backend 
baut 8080 Code für CP/M.

https://github.com/davidgiven/ack

von Thomas Z. (usbman)


Lesenswert?

Luther B. schrieb:
> Für SDCC gibt es ein experimentelles Backend für 8080:
>
> https://hackaday.io/project/166827-targeting-sdcc-to-the-8080

ja das kenne ich. Das Gitrepro sagt aber ausdrücklich, dass das Ding 
nicht läuft. Es gab auch keinerlei Fortschritte mehr in den letzten 
Jahren. Trotzdem schaue ich mir das genauer an.

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.