Welche Programmiersprache fürs Retro-Programmieren

  • Moin Moin in die Runde


    hatte gestern ein relativ interessantes Gespräch welche Sprache man denn zum schreiben von Tools, Spielen, Anwendungen denn am besten benutzen sollte....


    In der Schule hatte ich -zu meinem Glück- einen Informationslehrer der uns damals so gezeigt hat was es gab von Algol60 bis Lisp, Ada bis Modula2 sogar Cobol und PL/1 haben wir uns angesehen. Alles sehr interessant damals für mich (der Rest der klasse bis auf ein paar gleichgesinnte wars total langweilig).


    Doch nun zu meiner Frage was für eine "Sprache" benutze ich am besten wenn ich eine grosse Menge von Systemen abdecken will? Klar C kommt mir da in den Sinn und obwohl ich mehrere Jahre damit verbracht habe C Programme zu schreiben und meinen Lebensunterhalt zu bestreiten so war das nie eine "Freude"...

    In den 80/90ern war aber doch Pascal (TurboPascal) doch recht verbreitet. und ich muss sagen sogar mit cpc464 hatte unter cp/m einen Pascal Compiler. Mit Freepascal gibts pascal für fast jedes Unix und auch linux. Selbst für den c64 gibt es einen pascal compiler... so daher die Frage ... ist es Pascal das ich suche oder hat jemand noch gute ideen...

    Ach ja da ich grafisch eher eine niete bin würde ich sowieso alles text basierend (vielleicht noch ANSI) machen.


    Grüße

    Viva forever

  • Turbo Pascal.


    Um Basic würde ich ein großen Bogen machen. Diese Goto-Sprünge sind einfach ein Graus.

    Suche: Sun Ultra 45 | Dolch PAC 65

  • Evtl Basic, falls es auf die Ausführungsgeschwindigkeit nicht ankommt.

    Ja das hab ich mir auch gedacht aber ich kenne leider keine guten basic-compiler für die ganze unixe/cpm und der gleichen, bin aber für alles offen.

    Btw hate selber mit Basic auf meinem cpc angefangen und dann in der Dos-Welt mit Powerbasic weitergemacht. es sollte sogar mal ein Linux-Port geben grüchten zu folgen aber leider ist der Eigentümer und "Hauptentwickler" ja vor ein paar Jahren verstorben. Powerbasic Inc. ist seit längerem "under maintenance" und auch bei der Kirschbaum Software (dem deutschen distributer) ist nur eine "notfallnummer" auf der Website zu sehen....

    schade.

    Viva forever

  • Also wenn du wirklich viele unterschiedliche Systeme abdecken willst, dann führt an C eigentlich kein Weg vorbei. Schon gar nicht unter Unix.

    Das ist dank Kernighan & Ritchie einigermaßen gut standardisiert. Nur die Libraries unterscheiden sich meistens.


    Ich weiß, C ist keine Freude, wenn man mal komfortablere Programmiersprachen kennengelernt hat. Die Zeiger-Syntax ist eine Seuche. Aber ich bin damals unter DOS immer wieder von Turbo Pascal und QuickBasic zu C zurückgekeht - einfach aus Performance-Gründen.


    Bei allen anderen Sprachen wird man sich ärgern, weil die auf dem System, das man gerade programmieren möchte, eben nicht verfügbar ist.

    Selbst wenn es mal ein Basic oder Pascal gibt, ist das mit Sicherheit ein ganz anderer Dialekt.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Selbst für den c64 gibt es einen pascal compiler... so daher die Frage ... ist es Pascal das ich suche oder hat jemand noch gute ideen...

    Da stellt sich dann die Frage, ob du wirklich was programmieren willst. Also in dem Sinne, dass hinterher benutzbare Programme dabei rauskommen,

    Dann würde ich um sowas einen ganz weiten Bogen machen. Mit Turbo Pascal konnte man dagegen schon ganz gut arbeiten (unter CP/M oder DOS).


    Wenn du nur ein wenig mit Sprachen rumspielen willst, dann ist das egal.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Pascal mag ich auch gern, im Sinne von einfach lesbar, gut strukturiert.


    Und auf Amiga, Atari, PC, VAX und einigen Unixe (Ultrix, OSF/1 z.B) gibts gute Compiler.


    Wenn es darum geht hier fürs Hobby was zu zaubern sicher eine Überlegung wert.


    Leider gibts da keinen Standard. Turbo Pascal hat schon so seine Eigenarten und VAX Pascal z.B. auch.


    Sicher ist C verbreiteter.

    Telex 563140 goap d

  • Welche große Menge an Systemen willst Du denn abdecken? Retro-Systeme "Heimcomputer" von Dragon bis CPC?

    oder Minis/Mainframes von PDP8 bis SUN/UNIX oder modernes Zeugs?

    ja die "homecomputer" sind nicht gerade mein beuteschema, ggf noch cp/m maschienen aber das wars. ich mein eher dos, Unix, os2, Linux, Mac und ja da eher die "alten systeme"


    aus der wikipedia seite :

    In der Version 2.0.4 unterstützt Free Pascal folgende Architekturen:

    Folgende Betriebssysteme werden unterstützt:


    Aus eigener erfahrung weis ich das aix und solaris auch unterstützt werden (wurden) da ich damit schon mal experimentiert habe.



    und um vielleicht das auch klarzustellen, ich hab nicht vor irgendwelche superkomplexen dinge zu machen, mir gehts nur darum das ich mich auf eine sache einschiesse und wenn ich da mal ein kleines 100zeilen tool geschrieben habe ich es auch auf jeder anderen plattform die wir in der bytebarn haben auch compilieren kann.

    Viva forever

  • Ja das hab ich mir auch gedacht aber ich kenne leider keine guten basic-compiler für die ganze unixe/cpm und der gleichen,

    Basic ist nicht soweit standardisiert, so dass man es für beliebige Systeme durch nen Compiler jagen kann, Programmierung ist immer systemspezifisch wenn es über einfache Sachen hinaus geht.


    Wenn du eine möglichst breite Palette Altsysteme mit einer Sprache abdecken willst, bleibt eigentlich nur C.

  • Free Pascal hatte ich jetzt nicht zu den Retro-Sprachen gezählt. Das gab's zu Zeiten der Retro-Systeme, auf denen es angeblich läuft, noch gar nicht. ;)

    Aber ok, wenn das soviele Systeme unterstützt, dann probier' das doch einfach.


    Die Aufzählung der unterstützen Systeme macht mich etwas mißtrauisch. Da steht zum Beispiel einfach nur "Windows". Alle Versionen?

    Oder Novell Netware. Kann man damit wirklich NLMs erstellen?

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Die Aufzählung der unterstützen Systeme macht mich etwas mißtrauisch. Da steht zum Beispiel einfach nur "Windows". Alle Versionen?

    Oder Novell Netware. Kann man damit wirklich NLMs erstellen?

    sehr gute fragen auf die ich keine antwort weiss.. wobei windows und netware nicht unbedingt mein hauptthemengebiet sind.. aber ja k.a. und die sprache mussja nicht retro sein, nur die ziehlsysteme..

    Viva forever

  • 21.000 Leute... 42.000 Meinungen...

    -------------------------------------------------------------------------------
    Suche Rechentechnik aus Deutschland, bzw. Computer Deutscher Hersteller - z.B.

    ANKER, AKKORD, CTM (CTM 70, CTM 9000, CTM 9032), DIEHL/ DDS, DIETZ, FEILER, ISE,
    HOHNER GDC, KIENZLE, KRANTZ, NIXDORF, OLYMPIA, PCS/CADMUS, RUF, SALOTA, S.E.I.,
    SIEMAG, SIEMENS, TAYLORIX, TRIUMPH ADLER - TA, WAGNER, WALTHER, WANDERER,...

    -------------------------------------------------------------------------------

  • Für Deinen neuen C64er und Ähnliche willst Du bestimmt erstmal Assembler lernen.


    Ansonsten schau mal nach BBC und Bywater BASIC. Ersteres gibt es für allerlei Plattformen, das Zweite kommt als Sourcecode und kompiliert ohne großen Extrainstall.


    Prinzipiell ist PASCAL sowas wie eine Teilmenge von C nur in anderer Notation. Da kann man entweder gleich das C nehmen oder man schaut mal nach sowas wie p2c (pascal to c) und prüft, welche Kommandos da unterstützt werden und was nicht geht.


    TurboPascal hatte den großen Charmen des schönen Editors - das geht heut auch besser - und der guten Kommandos und Bibliotheken, die aber in vielen Dingen ur sich selbst gemocht haben. Das scheidet daher m.E. schonmal aus, weil es eben primär nur DOS und WIN bedient.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • FreePascal ist nicht schlecht. Erzeugt aber auch nicht immer soooo optimalen Code. Die erzeugten Programme sind grade für Retro-Maschinen auch eher auf der "fülligen Seite".


    Und die Liste der "unterstützten Plattformen" ist ein bißchen mit Vorsicht zu genießen und eher als "da hat mal jemand was mit für diese Plattform gemacht" zu verstehen. Sicher, die "gängigen" Plattformen Windows (das meint in erster Linie "aktuelles. Windows") und OS/2 sind praktisch perfekt - installieren und Programme schreiben. Wenn's aber ein bißchen exotischer wird, wird der notwendige Bastelaufwand hoch und die Aktualität geringer. Und einen Compiler, der wie Turbo Pascal für "plain DOS", was eigentlich eine sehr gängige Zielplattform wäre, übersetzt, gibt es auch nicht.


    Aber ich verstehe auch eure Abneigung gegen das gute alte C nicht - Murx kann man tatsächlich in jeder Sprache schreiben....


    Ich würde mir für jede zu unterstützende Plattform einen passenden C-Compiler suchen. Das scheint mir wirklich die beste Annäherung an das, was du willst, zu sein. Und auch viele 8-Bit-Plattformen wie CP/M sind damit zumindestens rudimentär gesegnet.


    Übrigens "auf denen es angeblich läuft" steht nirgends. FreePascal gibt es "nativ" für Linux, OS/2 und 32-bit Windows. Die anderen Plattformen sind praktisch alle Cross-Compiler.

  • 21.000 Leute... 42.000 Meinungen...


    Bis jetzt hat noch keiner Prolog oder LISP vorgeschlagen. :)


    Was aber evtl eine Option sein könnte, die immer so bißchen unbekannt geblieben ist, wäre FORTH. Wenn man das anfängt zu mögen, sollte das eigentlich ziemlich überall und ziemlich definiert und auch schnell laufen.

    -- 1982 gab es keinen Raspberry Pi , aber Pi und Raspberries

  • Da du für viele Systeme entwickeln möchtest, sollte die höchste Priorität auf die Wiederverwendbarkeit des Codes liegen. Bringt dir am Ende wenig, wenn dein Code hübsch aussieht, du aber für jedes System hier und da Änderungen vornehmen musst.

  • FreePascal ist nicht schlecht. Erzeugt aber auch nicht immer soooo optimalen Code. Die erzeugten Programme sind grade für Retro-Maschinen auch eher auf der "fülligen Seite".

    Und die Liste der "unterstützten Plattformen" ist ein bißchen mit Vorsicht zu genießen und eher als "da hat mal jemand was mit für diese Plattform gemacht" zu verstehen.

    Genau das war meine Vermutung, als ich die Liste der untersützen Systeme gesehen habe.


    Mir fehlen da die 8-Bit-Systeme komplett (CP/M) und selbst 16-Bit wird wohl nicht nativ unterstützt (DOS nur mit Extender), wobei da die Angaben widersprüchlich sind.


    Statt einem Compiler für alles, nehme ich lieber einen jeweils optimal angepassten Compiler. Und da ist C sicher am weitesten vebreitet.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Was aber evtl eine Option sein könnte, die immer so bißchen unbekannt geblieben ist, wäre FORTH. Wenn man das anfängt zu mögen,

    Das passiert aber eher selten. ;)


    Wenn jemand schon keine Lust auf C hat, ist es völlig sinnlos solche Sachen wie List, Forth und Prolog vorzuschlagen. Das sind außerdem hochspezialisierte Sprachen für bestimmt Anwendungen - zumindest Lisp und Prolog.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Prinzipiell ist PASCAL sowas wie eine Teilmenge von C nur in anderer Notation.

    Definitiv nicht.

    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."

  • Wie ist das denn mit C?


    Ich vermute, es ist genauso schlimm IBM-PC Turbo Pascal auf VAX Pascal zu portieren als

    ein Workbench Amiga-C Porgramm auf Unix/X11...


    Das kann man dann wahrscheinlich besser gleich neu schreiben, oder irre ich?

    Telex 563140 goap d

  • stimmt forth gibts auch für fast alles. aber irgendwie weis nicht. aber ich guck es mir mal an. das ist das schöne mit hobby projekten, man hat keinen zeitdruck und muss nicht auf "wirtschaftlichkeit" achten :)

    Viva forever

  • C hat den großen Charme, dass man gcc als Compiler nutzen kann, und der unterstützt von Haus aus schon viele CPU-Familien, denkbar wäre z.B. auf Windows oder Linux damit für 68000 oder PDP11 zu kompilieren. Aber unten herum, bei 8 Bit CPUs gibts auch da nichts.

    1ST1

  • Wenn man nur Eingabe von Tastatur nimmt und Ausgabe im Terminal macht, ist man wahrscheinlich sehr flexibel. Sobald es in Richtung Hardware/Grafik/Scrolling oder Window/GUI Gedöns geht wird es wahrscheinlich schwierig mit der Portabilität.

    Telex 563140 goap d

  • FORTH hat gerade in der alten 8-Bit Welt den Charme, dass man damit nativ auf praktisch jedem System entwickeln kann. Der erzeugte Code ist recht kompakt und die Performance ist auch auf den alten Systemen sehr gut. Die Programme lassen sich auch standalone, d.h. ohne die Entwicklungsumgebung ausführen. Und man kann unmittelbar auf die Hardware zugreifen.

    Die Programme sind sehr strukturiert und lassen sich sehr gut debuggen.

    Ich schreibe gerne experimentelle Treiber mit Forth, und setze das Ergebnis anschließend in Assembler um.

    Der große Nachteil ist die umgekehrte polnische Notation, an die man sich erst gewöhnen muß. Und das fällt am Anfang richtig schwer….


    Dietrich

    Meine Computer: Elektor Junior, EPSON HX-20, Robotron PC1715, Poly-Computer 880, Schneider CPC464, APPLE II+, VIKTOR V386PX

    Mein Betriebssystem: CPM-65

  • Also, wem C schon "zu kryptisch" ist, für den müsste eigentlich Forth ein völliges böhmisches Dorf sein und bleiben. Außerdem ist das (in den meisten Fällen) ein Interpreter, also für Cross-Entwicklung eher weniger geeignet.


    Weil das gefragt wurde: Wenn ein C-Programm mit dem Ziel "Portabilität" geschrieben ist (und dass bedeutet: kleinster gemeinsamer Nenner, also "Konsole"), kriegt man es auch relativ schnell auf anderen Systemen ans Laufen. Ist es das nicht, na dann halt nicht. Also Fensterchen und Icons in irgendeiner Weise portabel hinzukriegen, ist ein Ziel, an dem auch große Firmen mit riesigen Entwicklungsabteilungen gescheitert sind.....


    8-Bit-Plattformen haben halt den Nachteil, das sehr wenig Betriebssystem vorhanden ist, das ein C-Compiler verwenden könnte. Meistens beschränkt sich das auf EInzelzeichenausgabe und Tastatureingabe, und schon bei Dateisystemfunktionen wird es oft ziemlich eng. Deswegen kommen 8-Bit C-Compiler oft auch mit einem ziemlichen Overhead an Libraries und Runtimes daher, was die Programme jetzt nicht grade schlank macht. Mit einem SDCC-Compilat auf dem Sinclair Spectrum z.B. kommt man auch für einfachste Programme eher nicht unter 8k.

  • Auch da gilt: Wenn jemand beim Schreiben des Programms an Portabilität gedacht hat, ist es einfach.


    Wenn nicht, dann nicht.


    Also, ein VAX-Pascal-Programm auf Turbo Pascal oder FreePascal zu portieren, dürfte ziemlich einfach sein, weil VAX Pascal sich sehr an den Standard hält (und deswegen auch ziemlich eingeschränkt ist). Turbo Pascal macht aber massive Erweiterungen vom Standard, erlaubt z.B. Konstanten, die sich ändern dürfen, exotische Typumwandlungen, Zeiger auf "irgendwas" und direkten Hardware- und Speicherzugriff, bei denen sich dem VAX-Compiler die nicht vorhandenen Fußnägel aufrollen dürften - Hat die jemand intensiv genutzt, ja dann schreibt man's auf der VAX besser wirklich gleich neu.


    Und so ähnlich ist's auch bei C. Die meisten Eskapaden haben sich eigentlich traditionell die DOS-Compiler und -Programmierer geleistet. Deswegen ist ein für den PC in z.B. Turbo-C geschriebenes Programm eher schlecht auf Unix und VAX zu portieren, andersrum ist es erfahrungsgemäß normalerweise viel einfacher.

  • C hat den großen Charme, dass man gcc als Compiler nutzen kann, und der unterstützt von Haus aus schon viele CPU-Familien, denkbar wäre z.B. auf Windows oder Linux damit für 68000 oder PDP11 zu kompilieren. Aber unten herum, bei 8 Bit CPUs gibts auch da nichts.

    Klar doch. Die ganzen Atmel 8-Bit-Prozessoren werden mit GCC programmiert. Aber das ist jetzt nicht unbedingt retro.


    Aber für diese Targets gibt es den CC65 C-Compiler:


    • i-Telex 7822222 dege d

    • technikum29 in Kelkheim bei Frankfurt

    • Marburger Stammtisch

    Douglas Adams: "Everything, that is invented and exists at the time of your birth, is natural. Everything that is invented until you´re 35 is interesting, exciting and you can possibly make a career in it. Everything that is invented after you´re 35 is against the law of nature. Apply this list to movies, rock music, word processors and mobile phones to work out how old you are."