C-Compiler für OS-9/68K

  • OK, wie Ralf vorgeschlagen hat, erstelle ich hier ein neues Thema zur Sache: C-Compiler für OS-9/68K


    Hallo,

    ich bin neu hier in diesem Forum, ich befasse mich seit einigen Wochen mit dem Betriebssystem OS-9/68K, das bei mir auf einem Industrie-Rechner (B&R-MAESTRO) läuft.

    Bin momentan "verzweifelt" auf der Suche nach dem Ultra C-Compiler, speziell den Files: cpp, c68, o68, cc, r68 und l68.

    Es kann aber auch ein alternativer C-Compiler sein, der auf OS-9/68K läuft.

    Wichtig wäre mir, das ich aus einem C-Programm einen lauffähigen Code generieren kann nicht "nur" einen Assembler-Code (.a - File)

    Kann mir hier jemand weiterhelfen bzw. hat jemand diesen Compiler-Kit?

    Wäre sehr erfreut darüber :sunny:

    Schöne Grüße
    Reinhard


  • Du hast einen original microware C-Kompiler, welcher Assembler Source erzeugt?

    Dann hast Du sicherlich auch den Assembler und Linker dazu.

  • J

    Du hast einen original microware C-Kompiler, welcher Assembler Source erzeugt?

    Dann hast Du sicherlich auch den Assembler und Linker dazu.

    Ja ich habe eine ur-alte IDE-Festplatte mit 40MB wo viele Files im /DD/CMDS Verzeichnis drinnen sind (Siehe Bilder).
    Allerdings fehlen die Dateien "cc" (compiler executive program), "r68" (assembler) und "l68" (linker).


    Die C-Bibliotheken und die Header Dateien habe ich so weit (/DD/LIB Verzeichnis).


  • Ja ich habe eine ur-alte IDE-Festplatte mit 40MB wo viele Files im /DD/CMDS Verzeichnis drinnen sind (Siehe Bilder).

    Das klingt nach einem OS-9/68k 2.3 oder 2.4. Welche Version ist es denn tatsächlich? Hilfsweise: welche Edition hat der Kernel?


    Bzgl. der Header-Dateien: die stehen in /dd/DEFS


    Gruß, Ralf

  • Ja richtig ist eine OS-9/68k 2.4 Version. In den Dateien kann ich aktuell nicht nachsehen, da ich noch QRL (in der Arbeit) bin. Aber der Aufkleber am B&R-MAESTRO sagt V2.4 --> Siehe Foto:

  • Hier noch zum Thema gcc von Ralf noch im anderen Forum-Thema: Ein paar Informationen zu OS-9


    Es gab den gcc wie auf vielen anderen Plattformen auch. Der ersetzt allerdings nur den Compiler und nicht Assembler, Linker oder Bibliotheken.


    Weiterhin ist von Bedeutung, welche Version vom OS-9/68k Du vor Dir hast.


    Wie an anderer Stelle erwähnt, tauchte vor geraumer Zeit eine OS-9-Umgebung auf Github auf. Das entspricht der OS9/68k-Version 3.0.3. Die C-Umgebung läuft auf allen 3er-Versionen, möglicherweise auch auf 2.4.


    Gruß, Ralf


    Ja den gcc für OS-9 habe ich auf https://microware.com/index.ph…hive-new/category/112-gcc gefunden, der erzeugt mir aber nur den Assembler-Code und kein lauffähiges Programm X(

  • Aber der Aufkleber am B&R-MAESTRO sagt V2.4 --> Siehe Foto:

    Da steht, daß das ROM Teile von V2.4 enthalten würde. Das muß nicht mit dem übereinstimmen, was von Massenspeicher gestartet wird. Daher: entweder die Kernel-Edition (weil die die zuverlässigste Angabe ist) oder die Versionsangaben aus dem Init-Modul (die nur stimmen können, aber nicht müssen).

  • Aber der Aufkleber am B&R-MAESTRO sagt V2.4 --> Siehe Foto:

    Da steht, daß das ROM Teile von V2.4 enthalten würde. Das muß nicht mit dem übereinstimmen, was von Massenspeicher gestartet wird. Daher: entweder die Kernel-Edition (weil die die zuverlässigste Angabe ist) oder die Versionsangaben aus dem Init-Modul (die nur stimmen können, aber nicht müssen).

    Ich starte mit dem ROM, da ich von der Festplatte gar nicht starten kann, da dies nur von einer SCSI Festplatte mit diesem MAESTRO-System geht und ich "nur" eine IDE Festplatte habe. Auf die kann ich zwar zugreifen über "/h0" aber nicht booten.
    Aber was ich so sehe ist im ROM alles drinnen, was ich grundsätzlich brauche zum booten, auch der Kernel geh ich mal davon aus :/.

  • Ja den gcc für OS-9 habe ich auf https://microware.com/index.ph…hive-new/category/112-gcc gefunden, der erzeugt mir aber nur den Assembler-Code und kein lauffähiges Programm X(

    Eben. Der gcc ersetzt lediglich den C-Compiler.


    Hole Dir von der Github-Kopie die allgemeinen DEFS- und LIB-Verzeichnisse inkl. Unterverzeichnisse. Kopiere diese auf die Festplatte, aber nicht direkt auf /h0/DEFS und /h0/LIB, sondern in z.B. DEFS2 und LIB2, damit Du keine alten Dateien, die zur aktuellen Installation gehören, überschreibst.


    Du hast noch nicht verraten, welche CPU auf diesem Rechner aktiv ist. Es gibt ein paar kleine Unterschiede bei den Bibliotheken zwischen 68000 und den größeren CPUs. Mit 68000-Code sollte alles laufen, aber meist etwas gemütlicher.


    Wenn Du Code erzeugst, mußt Du beim Linken angeben, ob Du die Laufzeitbibliothek csl (bzw. csl020) verwenden möchtest, oder ob Dein Programm etwas größer wird und die csl nicht benutzt. Bei der csl kann es natürlich vorkommen, daß die, die jetzt auf Deinem Rechner ist, nicht zu den Bibliotheken vom ggf. neueren Compiler paßt. Die aktuelle csl auf Deinem Rechner solltest Du keinesfalls austauschen, weil sonst ggf. die üblichen OS-9-Hilfsprogramme nicht mehr funktionieren. Inkl. Login!

  • Aber was ich so sehe ist im ROM alles drinnen, was ich grundsätzlich brauche zum booten, auch der Kernel geh ich mal davon aus :/.

    Das wird eine "lustige" Installation der Entwicklungsumgebung, wenn Du Pfade nicht ändern oder erweitern kannst. Soll heißen, daß Du eine OS-9-Installation vor Dir hast, die nie dafür vorgesehen war gleichzeitig Entwicklungsumgebung zu sein.

  • Das wird eine "lustige" Installation der Entwicklungsumgebung, wenn Du Pfade nicht ändern oder erweitern kannst. Soll heißen, daß Du eine OS-9-Installation vor Dir hast, die nie dafür vorgesehen war gleichzeitig Entwicklungsumgebung zu sein.

    Ja korrekt, das sehe ich auch so, die Festplatte diente in erster Linie scheinbar nur als Vorradspeicher ...

  • Hole Dir von der Github-Kopie die allgemeinen DEFS- und LIB-Verzeichnisse inkl. Unterverzeichnisse. Kopiere diese auf die Festplatte, aber nicht direkt auf /h0/DEFS und /h0/LIB, sondern in z.B. DEFS2 und LIB2, damit Du keine alten Dateien, die zur aktuellen Installation gehören, überschreibst.

    Finde ich hier https://github.com/HoldcroftJ/os9_68k_sdk_v12 den C-Compiler selbst auch :/? Vielleicht bin ich aber auch schon OS-9 blind :S

  • Ist ein 68000er --> Siehe Bild

    Ein kleines Embedded System. Wenn dort tatsächlich nur 512kB RAM drinstecken, kannst Du jegliche Entwicklungssachen vergessen. Damit läuft nicht mal der alte C-Compiler, da ich davon ausgehe, daß die 512kB nicht vollständig zur Verfügung stehe , weil bereits ein paar andere Prozesse laufen.


    Den modernen Ultra-C-Compiler aus dem V3.0 vom OS-9/68k kann man ab 4MB RAM-Ausbau verwenden, besser mit 8MB. Selbst wenn Du diese Speichermenge neben der 68000-CPU hättest, hättest Du große Rechenleistungsdefizite. Der moderne Ultra-C-Compiler aus dem Jahr 1995 kann viele tolle Sachen hinsichtlich Code-Erzeugung, ist aber nicht gerade ein Laufzeitwunder. Den lasse ich nicht mal auf der 68060-CPU bei allen Programmen mit voller Optimierung laufen, weil er zuviel Rechenleistung (und RAM) braucht.


    Beschaffe Dir einen separaten OS-9-Entwicklungsrechner! Mit dem, was dort auf Github liegt, kannst Du einen MS-DOS-PC mit dem Stand der späten 1990er nehmen, weil diese OS-9-Entwicklungsumgebung unter Windows 1995 und 1998 läuft.

  • Ein kleines Embedded System. Wenn dort tatsächlich nur 512kB RAM drinstecken, kannst Du jegliche Entwicklungssachen vergessen. Damit läuft nicht mal der alte C-Compiler, da ich davon ausgehe, daß die 512kB nicht vollständig zur Verfügung stehe , weil bereits ein paar andere Prozesse laufen.

    Lach... Ja, das ist die Basis, ich habe ja weitere Module stecken, mit RAM-Erweiterungen auf zusätzlich 8MB. Ist ein Rack-basiertes System.

  • Beschaffe Dir einen separaten OS-9-Entwicklungsrechner! Mit dem, was dort auf Github liegt, kannst Du einen MS-DOS-PC mit dem Stand der späten 1990er nehmen, weil diese OS-9-Entwicklungsumgebung unter Windows 1995 und 1998 läuft.

    OK ... d.h. ich kann auch unter MS-DOS/Windows C-Code compilieren, dessen erzeugtes File dann auf dem OS-9 System läuft ???

  • Beschaffe Dir einen separaten OS-9-Entwicklungsrechner! Mit dem, was dort auf Github liegt, kannst Du einen MS-DOS-PC mit dem Stand der späten 1990er nehmen, weil diese OS-9-Entwicklungsumgebung unter Windows 1995 und 1998 läuft.

    OK ... d.h. ich kann auch unter MS-DOS/Windows C-Code compilieren, dessen erzeugtes File dann auf dem OS-9 System läuft ???

    Ja. Diese Version auf Github ist die erste Cross-Entwicklungsumgebung für OS-9/68k von Microware, AFAIK. Auf einem Windows-PC der späten 1990er Jahre hast Du erheblich mehr Rechenleistung als auf dem kleinen 68000.

  • Ja. Diese Version auf Github ist die erste Cross-Entwicklungsumgebung für OS-9/68k von Microware, AFAIK. Auf einem Windows-PC der späten 1990er Jahre hast Du erheblich mehr Rechenleistung als auf dem kleinen 68000.

    Wow... das nenne ich mal einen wertvollen Tipp. Vielen Dank Ralf :thumbup::thumbup::thumbup: :sunny:

    Jetzt kann ich mit dem Wort "Cross-Compiler" auch was anfangen, das ich dort und da gelesen habe :fp: :D

  • Kleiner Tip beim Umgang mit Quelltexten zwischen Windows und OS-9: OS-9 verwendet die normale Zeilenendekennung, also CR, MS-DOS und Windows nicht. Wenn Du Textdateien hin- und herschiebst und das nicht z.B. vom FTP implizit konvertiert wird, dann funktionieren diverse OS-9-Programme nicht mit der flaschen Zeilenendekennung LF.


    Dafür empfehle ich Dir mein kleines Helferlein CTAB.

  • in Deinen Bildern oben (was für ein Terminalprogramm (?) ist das eigentlich) gibt es aber durchaus (erstes Bild) einen "cpp".

    Vielleicht einfach mal direkt aufrufen ?.

    Das Terminal ist vom B&R-ProSys, das normalerweise zur Programmierung der "schwarzen" B&R-SPS dient. Dieses ProSys stellt unter anderem auch ein Terminal für den MAESTRO zur Verfügung. Ich verwende allerdings auch den Norton-Commander (V5.51), der hat auch einen Terminal-Emulator dabei.

    Den "cpp" habe ich schon probiert, das ist leider nur der Makro-Präprozessor ...