BASIC-WERKZEUGKASTEN

Es gibt 34 Antworten in diesem Thema, welches 4.119 mal aufgerufen wurde. Der letzte Beitrag (28. Mai 2025 um 01:59) ist von BIF.

  • Beim Thema Doppelpunkt kann ich nur auf den Doppelpunkt-Thread verweisen.
    Das das Thema ein Dauerbrenner ist, war mir schon damals klar, als ich den gestartet habe.
    Leider wurde der aber geschlossen, da das Thema nicht so gut bei jedem ankommt.
    Also keine weiteren Doppelpunktdiskussionen.

    Und zu POKE, PEEK, SYS und USR() sag ich mal, wer hier ein Tool ohne die genannten Befehle programmiert hat, kann das gerne in diesem Thread veröffentlichen oder soll schweigen. Also zeigen, wie es ohne geht.


    Schönen Gruß.

  • spart Rasterzeit 😌

    Wie? Das verstehe ich nicht. Kannst Du das etwas genauer erklären?

    Ironie und Sarkasmus versteht nicht jeder 😌

    Aber Hallo !

    Arcade: Twinliner, Fashion Vision,
    "Cosmic Guerilla" cocktail table
    Pins: Scared Stiff + Getaway
    C64, C65, C66, Gammel+Mist...

  • Ironie und Sarkasmus versteht nicht jeder 😌

    Naja, es gibt ja so viele Tricks die man anwenden kann. Hätte ja sein können, dass da tatsächlich irgendwas passiert (also nicht nur Speicherplatz und Zeit verschwendet wird).

  • Grundsätzlich spart der Doppelpunkt Speicherplatz und macht Programme besser lesbar und schneller.
    Eine Tool-Programmierung ohne POKE,PEEK,SYS und USR() geht wohl nur in Ausnahmefällen, bei rein mathematischen Sachen wie z.B. Wandlung DEZ-HEX-Zahlen.
    Mein Anspruch ist es funktionierende Programme zu schreiben mit den Mitteln, die das Basic bietet.

    Schönen Gruß.

  • Eben, ich hab mal im Fernsehen gesehen, daß die meisten Millionäre in den US Sparer sind.
    Für Basic gilt die Regel, je weniger Befehle, desto schneller das Programm im allgemeinen.
    Ich versuche hier meist eine gut vereinfachte, kurze und schnelle Lösung zu präsentieren.

    Nach dem Motto, besser gut für alles, als gut für nichts, listest das Programm alle Basic-Dateien und dazu auch noch das Direktory/Inhaltsverzeichnis. Da kann man nicht meckern.

    Schönen Gruß.

  • Grundsätzlich spart der Doppelpunkt Speicherplatz

    "Spare dich reich!" (TM)

    :?:

    Ist ein alter Trick. Wenn der Speicherplatz knapp wird, kann man sich mit ein paar Doppelpunkten etwas Luft verschaffen.

    Aber auch nicht übertreiben, das verursacht neue Probleme.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Der Doppelpunkt ist übrigens ein ganz normaler Bestandteil des BASIC-Sprachschatzes. Man kann auch das BASIC ins RAM kopieren und dort den Doppelpunkt durch einen einfachen Punkt ersetzen, dann bekommt man mehr Speicher pro Punkt.

    Bitte melde dich an, um diesen Link zu sehen. - Ratespiel • Bitte melde dich an, um diesen Link zu sehen. - BASIC-Erweiterung • Bitte melde dich an, um diesen Link zu sehen. - Sprite-Editor • Bitte melde dich an, um diesen Link zu sehen. - Zeichensatz-Editor Bitte melde dich an, um diesen Link zu sehen. - 2048 Blöcke

  • Wenn man also genügend Doppelpunkte setzt, ist das Ergebnis von

    10 ::::::::::::::::::::::::: PRINT "HALLO" ::::::::::::::::

    da, bevor man RUN eingibt?

    =O

    😂

    Arcade: Twinliner, Fashion Vision,
    "Cosmic Guerilla" cocktail table
    Pins: Scared Stiff + Getaway
    C64, C65, C66, Gammel+Mist...

  • Z10: PRINT-POKE-CODE:

    Bitte melde dich an, um diesen Anhang zu sehen.

    Hallo, und hier kommt wieder mal ein 10-Zeiler Tool.
    Und zwar, wie gewünscht, das Wandeln von Poke-Codes in Print-Anweisungen.

    Eingabe(z,a,e): Startzeile, Start-Adresse,End-Adresse

    Die Datenmenge sollte bei einem Schreibvorgang 3 Blocks=3*256 Bytes nicht übersteigen. Bei tab(0) bis zu 999 Bytes. Ein Bildschirm=1000 Bytes, dann setzt das Scrollen ein.

    Falls größere Mengen vorhanden sind, kann man natürlich auch mehrere Schreibvorgänge machen.

    In der Startzeile wird die Anfang und Endadresse geschrieben und dazu die Bildschirmadresse in 648 gesetzt. mit Tab() wird dann an die Startadresse gesprungen.
    Danach wird geprintet.
    Man sollte also nach dem Printen die Bildschirmadresse zurücksetzen z.B. mit :
    :poke648,4: rem--bildschirm ab 1024

    Natürlich kann man bei Prints mit einer Programmzeile(80) auch den bekannten Adress-Print-Trick anwenden:
    :poke209,lb:poke210,hb:poke211,.:print"code"
    Mit :poke213,255: kann man allerdings die Zeilelänge auch noch verlängern.

    Schönen Gruß.

  • Z10: PRINT-POKE-CODE: Update

    Bitte melde dich an, um diesen Anhang zu sehen.

    Hallo, ich hab noch mal überlegt, ob ich nicht einen Fehler eingebaut habe.

    Daher poste ich hier noch mal ein Update in dem ich in Zeile.7 chr$(20) durch chr$(157) ersetzt habe. Außerdem habe ich bei der Eingabe die Abfrage Z auf kleiner 10 gesezt, damit wird verhindert, daß man versehentlich das Programm überschreiben kann.

    Schönen Gruß.

  • Z10: PRINT-POKE-CODE: Update 2

    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.

    Und hier kommt noch mal ein weiteres Update:
    In dem ich noch eine automatische mathematische Begrenzung für e eingearbeitet habe.

    Außerdem ist das Programm jetzt Zeropage fähig, das heißt es kann komplett im Hintergrund in der Zeropage arbeiten. Mit :poke648,2: aktiviert.
    Mit Bild.2 kann man einen Blick in die Zeropage werfen und den String-Generator im Eingabepuffer(512) arbeiten sehen, wobei in der Folgezeile dann die Variablen Z,I,E gesetzt werden.
    Das Programm ist wieder mal ein tolles Beispiel für ein selbstmodifizierendes Programm, mit dem Speicherbereiche kompaktet und als Strings abgespeichert werden können.

    Aufbauend auf die FNSA() Formel mit der der Bildschirmcode nach ASCII-Code gewandelt wird.

    Schönen Gruß.