Hello, Guest the thread was viewed654 times and contains 16 replies

last post from SirGeldi at the

Kleine BASIC 65-Programme - Sammelthread

  • Ich will einfach mal einen Thread eröffnen, in dem "querbeet" kleine BASIC 65-Programme gesammelt werden können.


    Ich mache mal den Anfang mit einer Wochentagsberechnung nach Zellers Kongruenz.

    Zellers Kongruenz ist ein mathematischer Weg, um den Wochentag eines gegebenen Datums zu ermitteln. Der Mathematiker und Theologe Christian Zeller veröffentlichte dazu 1882 eine Formel.


    Hier die Formel von mir als einfaches BASIC 65-Programm gestaltet:



    Funktioniert! :thumbsup:



    Das D81-Image mit dem Programm im Anhang! :)

  • Da fehlt das 400-Ausschlusskriterium (Jahre, die ohne Rest durch 400 geteilt werden können, sind *keine* Schaltjahre, etwa das Jahr 2000)


    Arndt


    Edit: Andersherum: die 400er sind Schaltjahre, die 100er nicht. Fehlt aber dennoch!

  • Doch, die Schaltjahre werden mitberücksichtigt. Siehe auch den Abschnitt in der Erklärung der Formel:

    https://de.wikipedia.org/wiki/…ongruenz#Erl%C3%A4uterung


    Sonst würde die Berechnung des Wochentags auch gar nicht richtig funktionieren. Mir ist bislang kein Datum untergekommen, für das der falsche Wochentag ausgegeben wird. Selbst der 28.2., 29.2. und der 1.3.2024 funktionieren richtig:



    Ich habe diesen Algorithmus umgesetzt:


  • Mir ist bislang kein Datum untergekommen, für das der falsche Wochentag ausgegeben wird.

    Kannst du überprüfen mit dem 29. Februar 2000 (ein Dienstag). Wenn das ausgegeben wird, entschuldige ich mich für meine Voreiligkeit! :-)


    Arndt


    (Hab selber gerade keinen Zugriff auf meinen Mega)

  • Mir ist bislang kein Datum untergekommen, für das der falsche Wochentag ausgegeben wird.

    Kannst du überprüfen mit dem 29. Februar 2000 (ein Dienstag).


    Aber kein Grund, dich zurückzuhalten oder zu entschuldigen! Die Formel ist von 1882, also schon 143 Jahre alt, und Christian Zeller ist seit 1899 tot. ;)


    Ich bin ja selbst erstaunt, wie knapp und knackig man zielsicher die Wochentage errechnen kann. Aber es funktioniert erstaunlich gut! :)

  • Sehr gut. Kannst du da eine Funktion draus machen, damit man es in eigenen Programmen sinnvoll verwenden kann?

    =fktWochentag(datDatum)


    Und als Nächstes hätte ich gerne eine Funktion, die das Datum von Ostern für ein bestimmtes Jahr errechnet.

    =fktOstern(datJahr)


    Und eine Funktion, die zu einem bestimmten Datum eine bestimmte Anzahl Tage hnzurechnet oder abzieht.

    =fktDatumDiff(datDatum, intTage)


    Also z.B. fktDatumDiff("08.05.2025",-100) gibt das Datum vor 100 Tagen aus.

    Oder fktDatum("08.05.2025",99) gibt das Datum in 99 Tagen aus.


    Ich brauche das zwar nicht. Aber man wird ja mal Anforderungen stellen dürfen. :D

    Vielen Dank.

  • Ich finde die Idee, kleine Beispielprogramme für den MEGA65 zu sammeln, grundsätzlich super. Aus Erfahrung würde ich aber empfehlen, so eine Sammlung nicht ausschließlich im Forum zu führen. In einem längeren Thread gehen die Beiträge schnell zwischen Kommentaren, Rückfragen und Offtopic-Diskussionen unter. Und nach ein paar Wochen findet man kaum noch etwas wieder.


    Sinnvoller wäre es meiner Meinung nach, die Programme zusätzlich auf einer eigenen Webseite zu sammeln - ähnlich wie es z. B. bei der TSB-Webseite gemacht wird. Dort kann man sie thematisch ordnen, durchsuchen und besser pflegen.


    Außerdem fände ich es gut, wenn die Beiträge als eigenständige Funktionen mit kurzer Dokumentation veröffentlicht werden. Das erhöht die Übersichtlichkeit und macht es leichter, den Code später weiterzuverwenden oder zu verstehen.


    Mit ein bisschen Struktur und Pflege kann so eine Sammlung langfristig wirklich hilfreich für alle werden.

  • Hallo Leute,

    möchte auch mal mein Mini Progrämmchen vorstellen:



    Das ist jetzt nichts weltbewegendes. Es ist nur ein Rad wo sich dreht und von links nach recht fährt. Mit der Taste Q wird das Programm beendet.

    So weit die Erklärung zum Programm. Aber dahinter steckt ein kleiner Versuch ob man mit CHATGPT und Co Retroprogrammierung durchführen kann. Wenn ihr aber Denkt das das beim ersten Versuch so raus kam, liegt ihr total falsch.

    Meine erste Frage war ob er sich mit dem Basic von Mega65 auskennt.

    Und wie jede gute AI sagt er, das er natürlich die Basicbefehle kennt.


    OK, legen wir los. Bin richtig gespannt was da jetzt alles passiert


    Meine Angabe am Anfang für das kleine Basicprogramm war, das ich ein Rad mit sich drehende Speichen möchte programmiert habe möcht.

    Darauf hin überlegte er kurz und spukte dann denn Code auch schon aus.

    Ich möchte aber jetzt hier keinen Roman schreiben.

    Ich mußte im Laufe des Prozesses ziemlich viele Basicbefehle als falsch deklarieren wie z. B. WAIT 2 - er wollte damit eine Verzögerung für die Animation erstellen. Ich habe in das mitgeteilt das dieser Befehl für was anderes gemüntzt ist, er soll statt dessen den Befehl SLEEP nehmen soll. Und so ging das mit ziemlich vielen Basicbefehlen. Man muss sehr geduldig sein und man muss aber auch die Befehle selber kennen wie Sie funktionieren.

    Es mag bis jetzt noch nicht perfekt sein, aber warten wir noch ein paar Jahre, dann kann es sehr in­te­r­es­sant werden.


    Aber in Moment für kleine Programme nicht übel, aber für größere Programme nicht wirklich gut.

    Aber ich habe noch ein größeres Programm im Kopf, mal schauen in wie weit mir CHATGPT behilflich sein kann.

    Wenn es was wird, bekommt ihr es mit.


    Hat denn einer von euch auch schon mal so einen Versuch gestartet ?

  • Moin,


    ich faends cool wenn bei den bewegten RUN's

    vielleicht in kleines Video mitgeschickt werden kann um einen

    Eindruck davon zu bekommen.


    Drachen , eigentlich koenntest du daraus auch gleich eine

    coole analog Uhr zaubern. :-)

    Moin,

    64 und 128 er mag ich sehr, den CBM umso mehr. ;-)

    Ich bin eher auf der CBM Schiene unterwegs

    und trotzdem neugierig auch etwas ausserhalb vom CBM

    Aber in der Hauptsache Commodore ! ;-)

    Beste Gruesse von der Kuest auf diesem Weg....

  • ....wenn jetzt noch der Sekunden Zeige angezeigt wird, waere es Super Supi. :-))

    Die Skala ist uebrigens kaum zu erkennen. In Weiss waere es besser zu erkenn.

    Moin,

    64 und 128 er mag ich sehr, den CBM umso mehr. ;-)

    Ich bin eher auf der CBM Schiene unterwegs

    und trotzdem neugierig auch etwas ausserhalb vom CBM

    Aber in der Hauptsache Commodore ! ;-)

    Beste Gruesse von der Kuest auf diesem Weg....

  • Ah, Ok. Der Sekundenzeiger ist leider bei mir nicht sichtbar.

    Da ich noch keinen MEGA65 habe, kann ich das Programm nicht starten.

    und bin daher auf bewegte Bilder angewiesen.

    Moin,

    64 und 128 er mag ich sehr, den CBM umso mehr. ;-)

    Ich bin eher auf der CBM Schiene unterwegs

    und trotzdem neugierig auch etwas ausserhalb vom CBM

    Aber in der Hauptsache Commodore ! ;-)

    Beste Gruesse von der Kuest auf diesem Weg....

  • Und was ist mit dem EMU? :gruebel

    Darauf kannst du dann das Programm starten und anschauen.