Wer programmiert Basic von Euch ?

Es gibt 362 Antworten in diesem Thema, welches 39.506 mal aufgerufen wurde. Der letzte Beitrag (29. September 2023 um 22:13) ist von Goodwell.

  • Das würde sich auch sehr gut als Kapitel in deiner Seite TSB Tricks machen.

    Ist eingebaut. (Bitte melde dich an, um diesen Link zu sehen.)

    Arndt

    GoDot C64 Image Processing
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.

  • Ich hatte mal in einer 64er-Ausgabe das Tool, Fast GOTO/GOSUB entdeckt. Getestet und siehe da, das Basic-Programm wurde dadurch schneller. Nicht viel, aber immerhin.

    Ich habe mal meine Disk mit den Basic Renumber- und Packtool angehangen.:)

    Wie funktioniert das Fast GOTO/GOSUB eigentlich?

  • Die künstliche Intelligenz ChatGPT ist jedenfalls der Meinung, dass mehr Leute einen Emulator verwenden. Und wer will der schon widersprechen?

    Ist das so? Bei mir sagt sie: "Es ist schwer zu sagen, wie viele Leute einen C64-Emulator verwenden im Vergleich zu denen, die ein Original verwenden. Es hängt davon ab, welche Zielgruppe man betrachtet und in welchem geografischen Gebiet man sich befindet. Einige Leute, die in der Retro-Computerszene aktiv sind, bevorzugen möglicherweise das Original, während andere einen Emulator verwenden, weil es einfacher ist und sie nicht über das Original verfügen."

    Hätte ein Politiker sagen können :D.

    ────────────────────────────────────────────────────────────
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    ────────────────────────────────────────────────────────────

  • Die künstliche Intelligenz ChatGPT ist jedenfalls der Meinung, dass mehr Leute einen Emulator verwenden. Und wer will der schon widersprechen?

    Ist das so? Bei mir sagt sie: "Es ist schwer zu sagen, wie viele Leute einen C64-Emulator verwenden im Vergleich zu denen, die ein Original verwenden. Es hängt davon ab, welche Zielgruppe man betrachtet und in welchem geografischen Gebiet man sich befindet. Einige Leute, die in der Retro-Computerszene aktiv sind, bevorzugen möglicherweise das Original, während andere einen Emulator verwenden, weil es einfacher ist und sie nicht über das Original verfügen."

    Hätte ein Politiker sagen können :D.

    Dass das Ding Politiker-Rhetorik benutzt, hat auch ein Professor für Spieltheorie auf YT bemerkt :D.

  • Aber falls es noch Fragen gibt: ChatGPT meint, dass ich im Zweifelsfall recht habe :D.

    Bitte melde dich an, um diesen Anhang zu sehen.

    ────────────────────────────────────────────────────────────
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    ────────────────────────────────────────────────────────────

  • wahre worte ....leider ! Ja das mit dem 6809 ist eine problematik für sich - denn dann bräuchte man einen 6502 wrapper und der macht das dann elendig langsam....

    Nein, es ist kein Motorola 6809 sondern ein MOS 6509, das ist ein 6502 mit besagter Banking-Fähigkeit ...
    Im Interpreter müsste man so oder mit JSR-Aufrufe die Kapselung der jeweiligen RAM-Zugriffe machen. Da ist die Banking-Methode eigentlich eh egal.
    Den Geschwindigkeitsunterschied merkt man eh auch ganz gut beim BASIC 7 eines C128 (wo halt noch die schwergewichtigere IRQ-Routine zusätzlich ins Gewicht fällt), aber der Overhead macht sich generell bemerkbar.

  • Ich hatte mal in einer 64er-Ausgabe das Tool, Fast GOTO/GOSUB entdeckt. Getestet und siehe da, das Basic-Programm wurde dadurch schneller. Nicht viel, aber immerhin.

    Das hängt halt davon ab, wie geschickt ein Programm strukturiert ist. Wenn man Schleifen generell mit FOR-NEXT realisiert, Rückwärtsbezüge verbmeidet bzw. häufig genutzte Routinen am Programmanfang platziert, wird von diesem Vorteil nicht sonderlich auskosten können.

  • also tools für Spieleentwicklung erst mal gebaut ? Warum ist da kein Spiel daraus geworden ?

    Solche Tools, Generatoren und Quasi-Treiber waren halt notwendig, um dieses umfangreiche Spiel SO entwickeln zu können, wie wir es uns vorstellten. Die Spielentwicklung selbst blieb aber durch das Befassen mit den Tools und den Hürden auf der Strecke. Wir hatten auch typische Anfängerfehler gemacht, wie z.B., nicht erst mal klein anzufangen, um darauf aufzubauen, sondern gleich mehrere große Baustellen ohne Integrität und Überblick, eine ganz schlechte Organisation, keine gescheite Planung, nicht einmal Zeitstempel an den Dateien, damit man weiß, was das letzte war. Grundsätzlich ist dieses Spiel für den C64 wohl machbar, insbesondere mit den heutigen Möglichkeiten, aber man sollte einiges anders und einfacher machen, z.B. einfach Multicolor nehmen anstatt dieses flimmernde SHR-Format. Das war alles doofe Spielerei, die nur aufhält, also ein weiterer Fehler: Endlos mit Tricks und technischen Krücken befassen, anstatt einfach das vorhandene System zu nutzen wie es ist und damit ein gutes Spiel zu programmieren.

    Schließlich bemerkten wir, dass es so nicht funktioniert, und ja, das Hauptproblem war der Speicherplatz - während der Entwicklung! - nicht für das fiktive Endprodukt. So war die isometrische Landschaft, auf der das Geschehen stattfinden sollte, durchaus sehr speichereffizient, bitstream-komprimierte isometrische Makros und Supermakros für diverses Terrain, Berge, Wald, Küsten und vor allem Burgen, mit 3D-Effekt durch den Aufbau von hinten nach vorn, und natürlich scrollbar. Inspiriert zu diesem Spiel wurden wir übrigens zum einen durch unsere DSA-Aktivitäten, zum anderen durch "Krieg um die Krone", nur dass letzteres sehr viel überschaubarer ist (und vermutlich deswegen auch fertig wurde, LOL). Man könnte es auch mit HoMM vergleichen, geht um irgendwelche sieben Urnen, die gefunden und/oder erkämpft werden müssen.

    Einiges von den Tools möchte ich gern noch mal als für jedermann brauchbares fertigstellen, sofern es die Zeit erlaubt, mindestens das Proportionalschriftsystem. Den Landschaftseditor würde ich heute gar nicht mehr nativ machen, sondern mit PC und damit nur noch die fertige Karte speichern. Vom Speeder, den ich für meine damalige größte Leistung auf dem C64 halte (einen ganzen Block zeitlich im unteren Rahmen per Raster-IRQ übertragen, je nach Interleave mit ca. 25Hz = 16x Speed) habe ich mich auch verabschiedet. Und jetzt programmiere ich für das Easy Flash, ungeachtet des Gejammers von Puristen.

    keinen Bock auf die Spieleentwicklung gehabt

    Oh doch, but hello, aber s.o. ... Schwerpunkte falsch gesetzt, zu groß angefangen, und schließlich trennten sich auch unsere Wege .. die Jungens fingen ernsthaft mit Frauen an; das war der Anfang vom Ende dieser schönen Zeit. :( Nachdem LEMURIA geschmissen war, begannen wir noch ein anderes Projekt, das überschaubarer ist, inspiriert durch "Wizard Of Wor". Daran arbeite ich noch heute ab und zu weiter, und immer noch so - um zurück zum Thema zu kommen - wie damals, also erst in BASIC und dann händisch in Asm umgesetzt.

    Blitzbasic High Level EMU ?

    "Emu" ist eigentlich nicht gerechtfertigt, eher "Simu". Nichts besonderes, einfach nur ein BASIC auf dem PC, aber die Umgebung nach Bedarf der C64-Umgebung angepasst, also Auflösung, Farben, Font, Sprites usw. mit den von diesem BASIC gebotenen Möglichkeiten nachgebildet (siehe Screenshot in Bitte melde dich an, um diesen Link zu sehen.). Damit lässt sich dann in BASIC ein Spiel oder auch eine Anwendung im C64-Stil entwickeln. Die Umsetzung in Asm für den wirklichen C64 anhand des PC-BASIC-Codes ist dann recht einfach. Natürlich sollte man beim Erstellen des Spiels die Konventionen des C64 im Hinterkopf behalten, also z.B. keine 9 Hardware-Sprites nebeneinander.


    Noch mal zu dem fiktiven C64-BASIC mit linearem Riesenspeicher: Ich bin absolut kein Teammensch, aber eine Anpassung des BASIC und KERNAL für Speichererweiterungen (tschüss Tape-Routines), das könnte man in einem eigenen Thread mal zusammen angehen. Ich glaube, an CHRGET würde ich überhaupt nichts ändern. Solange ein Speicherabschnitt nicht verlassen wird, kann man diesen wie üblich behandeln. Ich frage bei einem GOTO (und co.) 1x, ob das der Fall ist. Wenn nein, alles wie üblich, wenn ja, Bank holen, darin weitermachen, beim Erreichen eines Abschnitt-Endes natürlich auch.

  • Wie funktioniert das Fast GOTO/GOSUB eigentlich?

    Vermutlich wird da auch eine Tabelle für Zeilenadressen angelegt. Eine handvoll davon gleichmäßig verteilt reicht, um ab diesen die gewünschte Zeile zu suchen. In meinem QuickNum sind es maximal 32 Zeilenadressen, die (im Stack) gespeichert werden, sodass das Listing in bis zu 32 Teilen aufgeteilt wird. Dann wird durch Zeilenvergleich geprüft, in welchem Teil die gesuchte Zeilennummer liegt und ab der entsprechenden darunter liegenden Adresse gesucht. Man befindet sich also immer schon in der Nähe und muss nicht jedes Mal bei $0801 anfangen, zu suchen.

  • Hab diesen Thread nicht gelesen (sorry, wenig Zeit aktuell, musste mich mal schwind einloggen damit mein Account nicht gelöscht wird), bin mir aber fast sicher, dass bereits jemand dieses legendäre Zitat von Dijkstra hier gepostet hat:

    Zitat

    "Es ist praktisch unmöglich, einem Studenten gutes Programmieren beizubringen, wenn er vorher in BASIC programmiert hat. Als potenzielle Programmierer sind sie geistig verstümmelt ohne Hoffnung auf Besserung."

    Auch damit hat der gute Mann wie so oft recht :P

  • Hab diesen Thread nicht gelesen (sorry, wenig Zeit aktuell, musste mich mal schwind einloggen damit mein Account nicht gelöscht wird), bin mir aber fast sicher, dass bereits jemand dieses legendäre Zitat von Dijkstra hier gepostet hat:

    Zitat

    "Es ist praktisch unmöglich, einem Studenten gutes Programmieren beizubringen, wenn er vorher in BASIC programmiert hat. Als potenzielle Programmierer sind sie geistig verstümmelt ohne Hoffnung auf Besserung."

    Auch damit hat der gute Mann wie so oft recht :P

    Vor Dijkstra hab ich großen Respekt, diese Aussage ist aber völliger Blödsinn - falls man sie denn überhaupt ernst nehmen will.

    Wer bei Basic stehen bleibt, wird es tatsächlich schwer haben, große Sprünge zu machen.

    Das gilt aber für alle, die bei einer einzigen Programmiersprache stehen bleiben.

    Im Umkehrschluss gilt aber: wer ein guter Programmierer ist, wird auch in Basic gute Programme schreiben können (ich greife hier "gutes Programmieren" von Dijkstra wieder auf)

    Und C oder Assembler macht keinen guten Programmierer.

    Weil: Code zu schreiben, den ein Computer versteht, kann jeder Idiot.

    Die Kunst liegt darin, Code zu schreiben, den ein Mensch versteht.
    (und wer das gesagt hat, weiß ich nicht)

    YouTube Kanäle über Basic, den C128 und den VDC-Chip
    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.
    Commodore 8-Bit Projekte
    auf Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen. zu Commodore 8-bit Hardware
    auf printables.com
  • Hab diesen Thread nicht gelesen (sorry, wenig Zeit aktuell, musste mich mal schwind einloggen damit mein Account nicht gelöscht wird), bin mir aber fast sicher, dass bereits jemand dieses legendäre Zitat von Dijkstra hier gepostet hat:

    Zitat

    "Es ist praktisch unmöglich, einem Studenten gutes Programmieren beizubringen, wenn er vorher in BASIC programmiert hat. Als potenzielle Programmierer sind sie geistig verstümmelt ohne Hoffnung auf Besserung."

    Auch damit hat der gute Mann wie so oft recht :P

    Das ist auch meine persönliche Erfahrung. Mit Basic gewöhnt man sich eine Art und Weise der Programmierung an, die es sehr schwer macht, auf strukturierte Programmierung umzustellen. Unmöglich ist es nicht, ich habe es auch geschafft. Aber ohne Basic wäre ich vermutlich viel schneller bei OOP gelandet.

    Im Umkehrschluss gilt aber: wer ein guter Programmierer ist, wird auch in Basic gute Programme schreiben können (ich greife hier "gutes Programmieren" von Dijkstra wieder auf)

    Wenn ich das so lese, dann frage ich mich, ob du strukturiert Programmierung (zum Beispiel OOP) überhaupt kennst.

    Mit schlechtem Werkzeug bekommt auch der beste Handwerker nichts hin. Die Sprache muss schon zur Problemstellung passen.

  • Mit schlechtem Werkzeug bekommt auch der beste Handwerker nichts hin. Die Sprache muss schon zur Problemstellung passen.

    Genau.

    Und es gibt Problemstellungen zu denen Basic passt.

    Und ein guter Programmierer kann damit auch in Basic eine gute Lösung hinbekommen.

    YouTube Kanäle über Basic, den C128 und den VDC-Chip
    Bitte melde dich an, um diesen Link zu sehen. --- Bitte melde dich an, um diesen Link zu sehen.
    Commodore 8-Bit Projekte
    auf Bitte melde dich an, um diesen Link zu sehen.
    Bitte melde dich an, um diesen Link zu sehen. zu Commodore 8-bit Hardware
    auf printables.com
  • Es soll ja auch Leute geben, die auf dem C64 in BASIC programmieren, um ein bisschen Spaß- und ein nostalgische Erlebnis zu haben.

    Als Profi-Programmierer würde ich mir sowieso eine andere Plattform suchen. Es gibt heute nur noch so wenig Leute, die den C64 gewerblich nutzen. :D

  • Ich habe ja nichts gegen Basic-Programmierung auf dem C64er. Das mache ich ja auch. Und habe auch Spaß dabei.

    Aber darum ging es ja nicht. Es ging darum, dass es den Umstieg auf strukturierte Programmierung erschwert, wenn man auf dem 64er mit Basic begonnen hat. Das ist eben kein hilfreicher Einstieg, wie oft behauptet wird. Wenn man ausser auf dem 64er sowieso nie was anderes programmiert, dann ist es egal.

    In Assembler kann man zumindest ausführlich dokumentieren. Wenn man einen richtigen Assembler verwendet. ^^

    Strukturiert ist das natürlich genauso wenig.

  • Strukturiert ist das natürlich genauso wenig.

    Kann man schon machen, ich versuche so viel Struktur wie möglich in meine Programme zu bekommen. Mit Modulen mit public und private Symbolen, Scopes und im Zweifelsfall einer Subroutine mehr als linearem Spaghetti-Code. Was mein Assembler halt so her gibt (ca65). Ist nicht vergleichbar mit einer modernen Sprache, aber seeeehr viel strukturierter als Basic.

    ────────────────────────────────────────────────────────────
    Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen.
    ────────────────────────────────────────────────────────────

  • Nicht jede Aussage, die irgendein bekannter Mathematiker/Informatiker/Physiker oder sonstwas mal gesagt hat, muss auch immer 100% ernst gemeint gewesen sein ;)

    - neue Spiele für den C64 -
    Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.Bitte melde dich an, um diesen Link zu sehen.

  • Strukturiert ist das natürlich genauso wenig.

    Kann man schon machen, ich versuche so viel Struktur wie möglich in meine Programme zu bekommen.

    Das geht nicht. Nicht in dem Sinn, was man heute unter strukturierter Programmierung versteht.

    Ich dachte früher auch, dass ein bisschen Einrücken, viele GOSUB und schöne Kommentare strukturierte Programmierung ausmachen.

  • Nicht jede Aussage, die irgendein bekannter Mathematiker/Informatiker/Physiker oder sonstwas mal gesagt hat, muss auch immer 100% ernst gemeint gewesen sein ;)

    Natürlich sicher nicht wörtlich. Aber im Kern stimmt das eben.