Welche Programmiersprache fürs Retro-Programmieren

  • Dazu fällt mir das ein:

    Code
    CLS:PRINT "Minimal Cave":x$="100Cannot doYou walk opened   closed    a sword  a key    nothing  a chest  a dragon a corpse ":REPeat loop:PRINT "You are in a ";"cavepit halllake"(x$(1)*4-3 TO x$(1)*4):INPUT u$:m=2*(u$=="NORTH")*(x$(1)<3)-2*(u$=="SOUTH")*(x$(1)>2)+((x$(1)&u$)=="2WEST")-((x$(1)&(u$)=="3EAST")):a=(3+x$(2)+2*(x$(3)=="2"))*((x$(1)&u$)=="2look chest")+(11+(x$(3)=="2"))*((x$(1)&u$)=="3kill dragon")+(m<>0):a = a+(5+x$(1))*(u$=="look")+ (6-(x$(3)))*(u$=="inventory")+(6-(x$(3)==0))*((x$(1)&u$)=="4look corpse"):a = a + 10 * ((x$(TO 3)&u$)=="400get key")+2*((x$(TO 3)&u$)=="201open chest")+10*((x$(TO 3)&u$)=="211get sword"):x$(TO 3)=(x$(1)+m)&(x$(2)+(a==2))&(x$(3)+(a==10) ):PRINT "> ";u$\ (x$&"taken    you died you won. ")(a*9+4 TO a*9+12):IF a > 10 THEN STOP:EXIT loop :ELSE END REPeat loop

    "Textadventure" in keiner Programmzeile für den Sinclair QL - Ist einfach eine Zeile im Direktmodus. 4 Räume, 4 Objekte, ein Endboss. Hab' ich mal irgendwann für einen Wettbewerb geschrieben (Inspiriert vom "10-Line-Adventure" von Einar Saukas).

    Vielleicht passt das auch zum Thema "mit BASIC kann man unheimlich übersichtliche Programme schreiben" :)

  • Ich programmiere gerne Sprites auf meinem C64, und dafür reicht mir eigentlich das Commodore BASIC v2 völlig aus.

    Das beamt mich wieder in meine Jugend

    Die Sprites zeichne ich auf Papier und berechne die Werte für die DATA-Zeilen von Hand.

    Außerdem habe ich mir Turbo Assembler besorgt, mit dem ich mich künftig beschäftigen möchte. Momentan besitze ich jedoch keine Datasette und kein Diskettenlaufwerk. Stattdessen plane ich, einen Floppy-Emulator und eine SD-Karte als Speichermedium zu verwenden.

    Natürlich könnte ich auch C64Studio nutzen, aber eigentlich ist es genau das, was ich will: direkt am C64 zu programmieren. :)

  • was für eine "Sprache" benutze ich am besten wenn ich eine grosse Menge von Systemen abdecken will?

    Um hier mal auf die originale Frage in Beitrag #1 zurück zu kommen:
    In neuerer Zeit hat Java mit dem Konzept einer 'Virtual Machine' diesen Spagat versucht und teilweise geschafft. Auf historischen System denke ich gibt es keine brauchbare Antwort zu dem Teil der Frage 'eine große Menge von Systemen abdecken'.
    Mit Basic kann man lahme Spiele schreiben, die sich mit einigem Aufwand auf einige Systeme portieren lassen. Aber wer will schon lahme Spiele? Gibt schon viel zu viele davon.
    Ich denke, es ergibt mehr Sinn, sich auf ein oder paar Systeme zu konzentriern.

    Beim C64 käme eigentlich nur Maschinen-Code (bzw. Assembler) in Frage. Bei einem MS-DOS-System z.B. ist die Auswahl dann schon ziemlich breit.


    Unterm Strich denk ich, man sollte sich sein Lieblings-System aussuchen, mit dem man Spaß hat, und dann die verfügbaren Sprachen ausprobieren.

  • Java ist Seuche, u.a. wegen dem Versionschaos. Da würde ich wahrscheinlich eher Python empfehlen, auch wenn die Programme für mich wie Spaghetticode aussehen. Die Schulen nehmen im Informatikunterricht inzwischen auch eher Python als Java, die werden schon wissen, warum. Python ist mitunter sehr sicherheitskritisch, weil sich da wohl eingebürgert hat, Code aus dem Internet nachladen zu können, ruckzuck hast du durch einen Tippfehler im Bibliotheksnamen einen Virus auf dem Rechner.

    BASIC ist nicht gleich BASIC, da gibts millionen Dialekte, zeilenorientiert und prozedural, und selbst ein GWBasic-Interpreter kann sehr schnell sein, ich meine guidol hatte da mal eine Alternative für Windows 10/11 verlinkt, die im Gegensatz zu PC-Basic ungebremst läuft.

    1ST1

  • Ich habe vor Jahren einmal mit FORTRAN begonnen und danach mit Pascal. Alles auf einer PDP11 an meiner damaligen Hochschule. Dann kam der Wunsch, diese Sprachen auch auf dem eigenen Computer umzusetzen. Ehe es soweit war, vergingen einige Jahre und zwischenzeitlich bin ich mit C in Berührung gekommen und dann mit C++ [alles unter DOS-Systemen]. Dann kam LINUX und so bin ich bei C geblieben. Wieder sind Jahre vergangen und dann kam Python dazu [DOS und LINUX - Systeme].

    Aktuell würde ich zu Pascal, C, CLISP und Python tendieren. Ich interessiere mich hierbei hauptsächliche für Fragen aus der Analysis und weniger für Spiele oder andere Anwendungen [wobei ich hier das Thema Messdatenerfassung nicht vergessen will - berufsbedingt und auch so].

  • Der Vollständigkeit halber sollte man vielleicht mal das BASICODE Projekt aus den 1980er Jahren erwähnen:

    BASICODE - Wikipedia
    en.wikipedia.org

    Das war ja so ein Versuch, einen kleinsten gemeinsamen Nenner zu etablieren, um für 8 Bit Heimcomputer portable Programme schreiben zu können.

    An sich eine gute Idee - nur die Zeit bzw. die Leistungsfähigkeit der Computer war noch nicht reif für sowas.

  • Ist auch woanders durchaus benutzt worden - Niederlande etc.

    Nur in Deutschland lief das BASICODE eher so unter der Überschrift - gibt es, braucht man nicht, kann weg.

    Wenn es eine schöne Variante in Basic geben würde neue Worte zu bilden (so ala Forth), dann hätte das bestimmt bessere Chancen gehabt. Die vielen GOSUBS zu kryptischen hohen Zeilennummern machen das Ganze nämlich wirklich nicht gut zu lesen/schreiben.

    Den Modus - also Sprache erweitern - gibt es allerdings woanders auch nicht wirklich, oder nur in rudimentärer Form als function o.ä.; man kann das daher der Sprache nicht vorwerfen - zumal man 1964 an sowas sicher auch nicht unbedingt gedacht hat.

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

  • Nur in Deutschland lief das BASICODE eher so unter der Überschrift - gibt es, braucht man nicht, kann weg.

    Naja, wenn's keiner brauchte oder wollte, dann war das eben so. Das kann man jetzt nicht den Anwendern anlasten. ;)

    Es gab vieles, was ganz nett, aber nicht praxistauglich war.

    So wie ich das verstanden habe, kam Basicode aus NL. Ist doch klar, dass das dann dort populärer war. Dort wurden auch Programme vertrieben und über Radio ausgesendet.

  • Naja, wenn's keiner brauchte oder wollte, dann war das eben so. Das kann man jetzt nicht den Anwendern anlasten. ;)

    Es gab vieles, was ganz nett, aber nicht praxistauglich war.


    So wie ich das verstanden habe, kam Basicode aus NL. Ist doch klar, dass das dann dort populärer war. Dort wurden auch Programme vertrieben und über Radio ausgesendet.

    Das "Problem" von Basicode war, dass es den kleinsten gemeinsamen Nenner aller 8-Bit-Rechner darstellen sollte. Das heißt: keine Grafik, kein Sound, aber auch z.B. keine Cursor-Steuerung, keine Farbe (die kam als Neuerung 1991 in Basicode 3...). Für 1980 mag das ok gewesen sein, aber gegenüber dem, was die meisten Heimcomputer Mitte der 80er konnten, waren das schon herbe Einschränkungen. Und da an rechnerspezifischer Software bei den meisten kein Mangel herrschte, brauchte man es in der Praxis eher weniger.

  • Das "Problem" von Basicode war, dass es den kleinsten gemeinsamen Nenner aller 8-Bit-Rechner darstellen sollte. Das heißt: keine Grafik, kein Sound, aber auch z.B. keine Cursor-Steuerung, keine Farbe (die kam als Neuerung 1991 in Basicode 3...). Für 1980 mag das ok gewesen sein, aber gegenüber dem, was die meisten Heimcomputer Mitte der 80er konnten, waren das schon herbe Einschränkungen. Und da an rechnerspezifischer Software bei den meisten kein Mangel herrschte, brauchte man es in der Praxis eher weniger.

    Keine Cursor-Steuerung? Das heisst, der geniale Editor vom C64 war nicht nutzbar? Den hatte ich 1980 ja schon 2 Jahre lang auf dem PET genutzt?

    Was hatte denn Basicode? Einen Zeileneditor? :fp:

    Und in den Programmen auch keine Curor-Steuerung? Also nur Programme mit zeilenweiser Ausgabe?

  • Das "Problem" von Basicode war, dass es den kleinsten gemeinsamen Nenner aller 8-Bit-Rechner darstellen sollte. Das heißt: keine Grafik, kein Sound, aber auch z.B. keine Cursor-Steuerung, keine Farbe (die kam als Neuerung 1991 in Basicode 3...). Für 1980 mag das ok gewesen sein, aber gegenüber dem, was die meisten Heimcomputer Mitte der 80er konnten, waren das schon herbe Einschränkungen. Und da an rechnerspezifischer Software bei den meisten kein Mangel herrschte, brauchte man es in der Praxis eher weniger.

    Keine Cursor-Steuerung? Das heisst, der geniale Editor vom C64 war nicht nutzbar? Den hatte ich 1980 ja schon 2 Jahre lang auf dem PET genutzt?

    Was hatte denn Basicode? Einen Zeileneditor? :fp:

    Und in den Programmen auch keine Curor-Steuerung? Also nur Programme mit zeilenweiser Ausgabe?

    Natürlich konnte man Programme so editieren, wie es die Plattformen vorgesehen hatten - Basicode hat nur zur Laufzeit eingegriffen und Unterprogramme für den "kleinsten gemeinsamen Nenner" bereitgestellt, die mit GOSUB aufgerufen wurden (Darf man sich so vorstellen, dass bei "GOSUB CLS" halt beim CeVi "PRINT <SHIFT/CLR/HOME> : RETURN" und beim Spectrum "CLS : RETURN" stand, z.B.)

    Außerdem gab es (logischerweise, da die Programme ja alle per Radio ausgestrahlt wurden) ein gemeinsames Tape-Format für alle unterstützten Plattformen.

    Die Spezifikation für BASICODE befindet sich heute z.B. hier.

  • Ist auch woanders durchaus benutzt worden - Niederlande etc.

    Nur in Deutschland lief das BASICODE eher so unter der Überschrift - gibt es, braucht man nicht, kann weg.

    Der WDR Computerclub hat das um 1984 mal beworben. Da war eine Heimcomputermesse, vielleicht war die sogar in Frankfurt. da hatten der Computerclub einen riesen Stand, und Basicode war das Thema. Es standen da alle erdenklichen Heimcomputer der damaligen Zeit und überall liefen die selben Basic-Programme. Man konnte auch für "sein" System eine Diskette mit Basicode mitnehmen, hab ich gemacht und später überformatiert, wozu braucht man das denn wohl, wenn man nur C64 hat... Und wirklich austauschbar waren die Programme ja auch nicht, weil der Atari die Disketten vom 64er nicht lesen konnte und die vom TI 99/4a auch nicht. Interessantes Konzept, aber zu früh.

    1ST1

  • Ich meinte: In den Programmen. Wobei ich das auch zurücknehmen muss, ab Basicode 2 gab es eine Subroutine zum Setzen der Cursorposition. Die anderen Einschränkungen blieben aber. Ebenso unterschiedlich lange Zeilen, die Beschränkung auf Textzeichen (weil jeder Rechner einen anderen Grafikzeichensatz hatte). Basicode-Programme sahen damit prinzipbedingt immer etwas altbacken aus.

  • Ist auch woanders durchaus benutzt worden - Niederlande etc.

    Nur in Deutschland lief das BASICODE eher so unter der Überschrift - gibt es, braucht man nicht, kann weg.

    Der WDR Computerclub hat das um 1984 mal beworben. Da war eine Heimcomputermesse, vielleicht war die sogar in Frankfurt. da hatten der Computerclub einen riesen Stand, und Basicode war das Thema. Es standen da alle erdenklichen Heimcomputer der damaligen Zeit und überall liefen die selben Basic-Programme. Man konnte auch für "sein" System eine Diskette mit Basicode mitnehmen, hab ich gemacht und später überformatiert, wozu braucht man das denn wohl, wenn man nur C64 hat... Und wirklich austauschbar waren die Programme ja auch nicht, weil der Atari die Disketten vom 64er nicht lesen konnte und die vom TI 99/4a auch nicht. Interessantes Konzept, aber zu früh.

    Die Diskette war ja auch nicht das "Austauschformat", sondern das Radio (meistens Mittelwelle).

    In der DDR haben Radiosender die Programme ausgestrahlt. Im Westen waren die Radiosender nicht so offen dafür - Aber der WDR Computerclub hat im Fernseh-Audiokanal ein paar mal Programme (Sonntags als "Hard-Bit-Rock", und später auch über Videodat in der Austastlücke - wofür man allerdings spezielle Decoder brauchte) übertragen, was natürlich ziemlicher Overkill war. Das niederländische Radio, wo Basicode herkam, und die BBC in GB hatten regelmäßige Ausstrahlungen.

    Tape-Eingang hatten eben alle (eben "kleinster gemeinsamer Nenner"), außer die, die es eben nicht hatten. z.B. der Sinclair QL - dem hat man die Radioprogramme über ein bißchen raffinierte Software in seinen Netzwerkport eingespeist.

  • Jo gut, aber wenn man heute vor der Frage steht denke ich .. lass dich von deinem Herzen leiten und mach was Dir Freude macht. Als Softwerker ist für mich das nutzen alter tools eine besondere Freude, Hardware muss nicht genau von 1980 sein :)

    751.619.276.800.000.001.073.741.803 +- 1

  • Jo gut, aber wenn man heute vor der Frage steht denke ich .. lass dich von deinem Herzen leiten und mach was Dir Freude macht. Als Softwerker ist für mich das nutzen alter tools eine besondere Freude, Hardware muss nicht genau von 1980 sein :)

    Interessant. Ist bei mir genau andersrum. Mir macht es Spaß mit leistungsfähigen Tools (jedenfalls besser, als das was man früher hatte) bequem am PC Software für die alten "Kisten" zu bauen. Aber die "Kiste" muss dann möglichst originale Hardware sein. Für Emulatoren programmier ich nix.

    Ich nutze gerne den CC65 für PETs/CBMs und für den C64. Man kann die Software auch für jede Menge andere Targets mit 6502 kompilieren (zum Beispiel Apple II oder Atari). Habe ich aber mangels passender Hardware noch nicht ausprobiert. Das praktische ist, dass man hardwarenahe und zeitkritische Sachen in Assembler programmieren kann und den Rest dann in C.

  • Ich würde noch die bei uns in der Schule gelehrten Sprachen Modula-2 und natürlich Turbo Pascal/Delphi in den Ring werfen.

    Gerade für Rapid Prototyping hat sich Delphi als hervorragend herausgestellt.

    Und den Moment, in dem ich nach jahrelanger Turbo Pascal programmiererei ein Array of String[1024,1024] aufmachen konnte ohne EMS/XMS herumgeschiebe, werde ich nie vergessen :love:

    SunFire v20z, V210, V240, V490, V890

    SGI o2, HP DL380p Gen8/Gen9

    Sun w2100x, 1500 Red, 2500 Silver, Blade 150

    SunRay 1, 2, 3, 3+, 170