C Compiler für 8080/8085

OP #7162835
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.
Gast #7162888
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.
Gast #7162934
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.
#7162943
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)
OP #7162950
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.
#7162966
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.
#7162970
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)
#7162979
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
#7163062
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
OP #7163278
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.
Gast #7163506
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.
#7163599
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.
Gast #7163792
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
#7164846
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren