Hello, Guest the thread was called1.6k times and contains 13 replays

last post from ddb_ at the

Sinus Scroller in V2 BASIC :-)

  • Huhu!


    Neben dem Assembler lernen ist es mir eine Art Sport geworden, Demo Effekte in V2 BASIC abzubilden, auch wenn ich richtiges Demo Coding noch gar nicht wirklich kann.


    Tada.. nachdem wir gemeinsam einfaches Scrolling in V2 BASIC mittels missbrauchtem PRINT Befehl ermöglicht hatten, dachte ich mir, es ist Zeit für den nächsten Schritt.


    Bitte beachten wenn ihr den Sourcecode in VICE einkopiert: Ihr müsst Zeile 110 im C64 von Hand editieren und statt "Pi" die entsprechende C64 Taste für Pi einkopieren (Shift Entf in VICE). Sonst sieht man nur einen einfachen Scrolltext der auf Pokes beruht statt auf PRINTs.


    Die vorliegende Version ist mit dem Austro-Compiler beschleunigt worden, das Ergebnis sieht sogar recht weich aus. Der BasicBoss lässt das Scrolling dagegen eher hart aussehen, außerdem loopt unter BasicBoss der Scrolltext nicht und wirft einen Fehler. Mit Austro und mit unkompliertem Basic gibt es keine Fehler und sauberes Looping (bis auf einen Mini-Grafikfehler an dem ich mich jetzt nicht länger aufhalte).


    Wie immer bin ich für Verbesserungsvorschläge offen. Ich denke aber, Klartexte in den DATA-Zeilen gehen diesmal wirklich nicht. Oder etwa doch?!


    Viele Grüße,
    Byteb.

  • Bytebreaker : Das der BasicBoss damit Probleme hat dürfte am manipulieren der DATA-Zeiger per POKE liegen, denn davon bekommt das Kompilat nichts mit. Warum Du das in diesem Programm per POKE machst verstehe ich aber sowieso nicht, denn es gibt ja nur diese DATA-Zeilen und nicht noch irgendwelche anderen, also kann man einfach RESTORE verwenden um wieder von vorne zu READen.


    `n` würde ich nicht so weit von der Schleife entfernt initialisieren in der diese Variable dann letztendlich benutzt wird, sondern direkt davor. Ist sonst eine beliebte Fehlerquelle das man dazwischen noch Code schreibt der `n` benutzt und dann hat das bei der Schleife nicht mehr den Wert den man dort braucht. Ich würde auch eher das `n` als Schleifenvariable benutzen und `i` nicht für Gleitkommazahlen verwenden. Bei `i`, `j`, und `k` in Schleifen erwarten die meisten Programmierer gannzahlige Werte. In Verbindung mit einem Compiler wie dem BasicBoss ist es auch nicht ganz unwichtig einen Namen immer nur für einen Typ zu verwenden, denn dann kann man `i` als Integer, Word, oder vielleicht sogar als Byte deklarieren und damit effizienteren Maschinencode generieren lassen. Alleine wenn man `i` und `j` als Byte deklariert wird der compilierte Code schon so schnell das man keine Chance mehr hat den Text zu lesen!


    Die Anzahl der DATA-Werte hart in den Code zu schreiben ist unflexibel. Normalerweise löst man das durch einen Wert in den Daten der das Ende signalisiert. Dann kann man viel einfacher Daten hinzufügen oder lösche ohne ausrechnen/zählen zu müssen wieviele das nun sind.


    Ich habe mal eine geänderte Version (Quelltext und BasicBoss-Kompilat) erstellt und angehängt.

  • So what kind of name is BIF:
    Some call it BASIC-Informatik.


    Also hier ein Basic-Programmieransatz zum Sinus-Scroller, wenn auch noch kein Sinus.


    Code
    1. 10 :print"[weiß,clr,revers]ketten-roller:"
    2. 11 :i=200:dimj,a,a$(i),b$(i):c$(1)="[links,hoch]":c$(2)="[links,runter]"
    3. 12 :a$=" hallo, fans, wie geht es euch so oder so.":a=len(a$)
    4. 13 :b$="11111.....222....11111"
    5. 14 :c$="[home,10xrunter]---"
    6. 15 :fori=1toa:a$(i)=mid$(a$,i,1):a$(i+a)=a$(i):b$(i)=c$(val(mid$(b$,i,1))):next
    7. 16 :forj=1toa:printc$;:fori=1toa:printa$(i+j)b$(i);:next:next:goto16


    Schönen Gruß.

  • BIF : Das hat mit Intelligenz nichts zu tun zu erkennen das Du versuchst Begriffe umzudefinieren. Sorry, aber für mich hat ein Einzeiler nur eine Zeile. Und wenn der ”Einzeiler” zwischen anderen Zeilen steht, dann ist es kein Einzeiler mehr. Egal wie oft Du das behauptest und meine Intelligenz anzweifelst. Wenn man einen Sinus daraus basteln kann dann mach das doch. Hier gibt es ja schon einen tatsächlichen Sinus-Scroller zu sehen, genau wie im anderen Thema jemand einen tatsächlichen Einzeiler geliefert hatte.

  • BlackJack :
    -Also ich hatte nicht nur einen Einzeiler geliefert, sondern dazu ein Demoprogramm zum Einzeiler.
    -Das Nachladen selbst bleibt ein Einzeiler in Zeile-1.
    -Und ich hatte auch davon gesprochen, daß man das Nachladen als Einzeiler programmieren kann, nicht, daß mein Demoprogramm ein Einzeiler ist.


    Ansonsten steht bei mir als Überschrift beim anderen PRG "Kettenroller", von Sinus habe ich nur in so fern gesprochen, daß man damit auch einen Sinus zusammensetzen kann. Also die Kette könnte auch ein Sinus sein.



    Schönen Gruß.

  • Die PRG- oder TXT File des Sinus Scrollers ist nicht downloadbar ...

    Kann jemand die Textdatei als Beitrag copypasten ?

    Warum du das nicht downloaden kannst... verstehe ich zwar nicht! Aber hier die Listings...

    sinuswave4.txt



    sinuswave5.txt das ist für den Basic-Boss Compiler optimiert



    ciao Dirk