Scroll- und Type-Routinen in BASIC V2

Es gibt 66 Antworten in diesem Thema, welches 11.222 mal aufgerufen wurde. Der letzte Beitrag (4. März 2015 um 22:19) ist von BIF.

  • Hallo,

    ich habe landauf, landab nach Basic Listings gesucht mit denen man Scrolltexte und Type-Effekte (wie eine Schreibmaschine, langsames Print sozusagen) erstellen kann. Da ich nichts gefunden habe, machte ich mich an die Arbeit und schrieb mir selber etwas. Ich bin noch zu weit weg von Assembler und eines Tages will ich ein echtes Intro schreiben können mit Logo und Scroller und Sprites und SID-Sound und Rasterbars.

    Aber warum nicht erstmal mit einer "'Version für Arme" anfangen und überhaupt, warum sollte sowas Elementares wie ein Scroller nicht auch in Basic gehen? Ich habe natürlich keinen echten Scroller geschrieben sondern nur etwas, das wie ein Scroller aussieht. Trotzdem ist die Position frei wählbar und man kann auch längere Texte nach Belieben einbauen.

    Das einzige Manko am V2 Basic ist echt, dass man den Zeiger auf den DATA-Bereich nicht selber setzen kann, sondern nur starten und resetten. Dadurch gibt es keine flüssigen Schleifen wenn man im Data-Bereich z.B. noch Sprites hat, aber gut.

    Also für alle, die zu den echt krassen Assembler-Codern noch aufsehen und sich erstmal in Basic versuchen, zwei "Demo"-Listings mit Type- und Scrollroutinen.

    Bitte nicht stören am Loblied an meine Ehefrau im Text, sie leidet wirklich unter meinem Hobby (überalll alte Computer im Haus und ständig hat der Ehemann die Nase in irgendeinem alten Handbuch) und ich hatte keinen Nerv, den Text jetzt extra fürs Forum zu ändern, es ist ja nichts Verbotenes was da geschrieben steht. ;)

  • Nett. Und da soll nochmal einer sagen, das 64er BASIC taugt nix. ;)

    Bitte melde dich an, um diesen Anhang zu sehen. :verehr: .: Mit Bitte melde dich an, um dieses Bild zu sehen.wäre das nicht passiert! :. :prof:  Bitte melde dich an, um diesen Anhang zu sehen.

    :syshack: .: Meine 3D-Drucker Teile auf :. Bitte melde dich an, um diesen Link zu sehen. :strom:

  • Nicht schlecht :)

    Wenn erstmal Kinder im Haus sind, ist's eh vorbei mit der Zeit, also ausnutzen!

    C64Studio: Bitte melde dich an, um diesen Link zu sehen. - Bitte melde dich an, um diesen Link zu sehen. --- C64Studio WIP: 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.

  • @ Endurion

    Zu spät. ;)
    Ich hab schon zwei Stück, eins 3 Jahre und das andere 8 Monate alt. Es ist so ziemlich das schlechteste Zeitfenster für Männerhobbies überhaupt.

    Trotzdem habe ich vor, Dein Spieleprojekt zu lernen was Du hier ins Forum gestellt hast. :thumbsup:

  • Und da soll nochmal einer sagen, das 64er BASIC taugt nix. ;)

    Das 64er BASIC taugt nix. Das sage ich aber auch ohne Aufforderung. ;)

    Zum Thema:
    Sehr schön, weitermachen! :thumbsup:

    Hast Du die Sprite-DATAs nach der Handbuchmethode ausgerechnet?

    Yes, I'm the guy responsible for the Bitte melde dich an, um diesen Link zu sehen. cross assembler. And some Bitte melde dich an, um diesen Link zu sehen..


  • Wenn erstmal Kinder im Haus sind, ist's eh vorbei mit der Zeit, also ausnutzen!

    Pah! Ich hab' drei davon und es trotzdem hinbekommen, C64 Assembler neu zu lernen! ;)
    Aber heutzutage mit dem Internet als Lernhilfe und einer bedienerfreundlichen IDE ist das nicht mehr so schwierig, wie damals vor 25 Jahren! ^^ (Außerdem bin ich seither auch ein wenig nachgereift! :wink:
    Da lassen sich solche Dinge auch (in kleinen Scheibchen) nach und nach entwickeln.

    Bytebreaker: Ich hab' mich gleich gar nicht erst von Basic aufhalten lassen, sondern bin gleich mit Assembler wieder eingestiegen (konnte damals nur Beispielcodes abtippen, also war's ein Anfang von Null).

    Und das sag' ich jetzt nicht, um anzugeben, sondern nur um dich zu motivieren bzw. als Beweis, dass es ja wohl nicht so schwer sein kann! :anonym
    Man muss sich nur drüber trauen und mithilfe von Codebeispielen (z.B.: von Bitte melde dich an, um diesen Link zu sehen. anfangen. Wenn man glaubt, den Code zu verstehen, kann man dann an den Werten drehen! ;)

  • @ Endurion

    ...
    Trotzdem habe ich vor, Dein Spieleprojekt zu lernen was Du hier ins Forum gestellt hast. :thumbsup:

    Habe das gleiche Ziel vor! (Derzeit noch ohne Kinder)

    Wer schreit, denkt nicht !

    Bitte melde dich an, um diesen Link zu sehen.

  • Habe das gleiche Ziel vor! (Derzeit noch ohne Kinder)


    Dann sind wir ja schon drei.

    Bitte melde dich an, um diesen Anhang zu sehen. :verehr: .: Mit Bitte melde dich an, um dieses Bild zu sehen.wäre das nicht passiert! :. :prof:  Bitte melde dich an, um diesen Anhang zu sehen.

    :syshack: .: Meine 3D-Drucker Teile auf :. Bitte melde dich an, um diesen Link zu sehen. :strom:

  • Hi

    Zwei sehr schöne Programme. Ich persönlich finde es gut sich erst mit Basic auseinander zu setzten, damit man sich das Grundwissen aneignen an.
    So hat man es in Assembler etwas leichter, meine Meinung. Mir ist es auf jedenfall so ergangen. Zur Zeit prog ich auf den Game Maker um kleine Games zu erstellen. Wenn ich dann so in deren Forum unterwegs bin
    Habe ich schon ab zu zu schmuzeln müssen, wenn als Fragen aufgetaucht sind, was denn Variabel sind. Das hat mich dann an meine Zeit erinnert als ich mit Basic angefangen habe, nur war damals kein Internt vorhanden um nach zu fragen. ;)

    Aber mach weider so, ich habe auch eine 6 Jahre alte Tochter, die hin und wieder intrssiert zuschaut was ich denn da so tippe und frag auch nach was das denn sein soll.

    Gruss Drachen

  • Zwei sehr schöne Programme. Ich persönlich finde es gut sich erst mit Basic auseinander zu setzten, damit man sich das Grundwissen aneignen an.


    Ich werde beim 64er auch erst kurz den Weg über BASIC machen, um mich mit dem Rechner vertraut zu machen, dann sollte der Umstieg auf ein anderes System leichter fallen.

    Bitte melde dich an, um diesen Anhang zu sehen. :verehr: .: Mit Bitte melde dich an, um dieses Bild zu sehen.wäre das nicht passiert! :. :prof:  Bitte melde dich an, um diesen Anhang zu sehen.

    :syshack: .: Meine 3D-Drucker Teile auf :. Bitte melde dich an, um diesen Link zu sehen. :strom:

  • @ MacBacon

    Zitat

    Hast Du die Sprite-DATAs nach der Handbuchmethode ausgerechnet?

    Ja genau, nach Handbuch. Mit Karopapier aufgemalt und abgezählt. ^^
    Die CHR$-Nummern habe ich auch aus dem Handbuch abgelesen.

    Ich finde den Einstieg über BASIC gar nicht schlecht, denn das ROM und die POKEs und Adressen alle zu verstehen ist erstmal genug Gehirnfutter. Und es ist ja auch toll, dass man mit einer Hochsprache wie BASIC überhaupt direkt an die Hardware-Register drankommt. Wenn das richtig sitzt, dann werde ich anfangen, in Opcodes zu denken. ;)

    Außerdem habe ich noch einen CPC464 bei mir herumstehen und mir auch einen ZX- und Atari-Emulator angeschafft. Da weiß man das bessere BASIC auf den anderen Plattformen gleich viel mehr zu schätzen. ^^

    Ähnlich wird es mit Z80 Assembler sein. Der Prozessor ist ja in vielen Systemen verbaut gewesen da kommt man dann auch entsprechend schnell rein wenn man Z80 Assembler erstmal kann.


  • Ähnlich wird es mit Z80 Assembler sein. Der Prozessor ist ja in vielen Systemen verbaut gewesen da kommt man dann auch entsprechend schnell rein wenn man Z80 Assembler erstmal kann.


    :lol23:

    Bitte melde dich an, um diesen Anhang zu sehen. :verehr: .: Mit Bitte melde dich an, um dieses Bild zu sehen.wäre das nicht passiert! :. :prof:  Bitte melde dich an, um diesen Anhang zu sehen.

    :syshack: .: Meine 3D-Drucker Teile auf :. Bitte melde dich an, um diesen Link zu sehen. :strom:

  • Prima :) .

    Das einzige Manko am V2 Basic ist echt, dass man den Zeiger auf den DATA-Bereich nicht selber setzen kann, sondern nur starten und resetten. Dadurch gibt es keine flüssigen Schleifen wenn man im Data-Bereich z.B. noch Sprites hat, aber gut.


    Verbesserungsvorschlag zu 'val15':

    Du brauchst die DATAs nur einmal am Anfang einlesen und dann als N(I) ablegen. DIM N(23) nicht vergessen. Dann kannst du den ganzen READ/RESTORE-Kram hinten aus dem Code rausnehmen und die zweite DATA-Zeile weglassen (was mit einem zusätzlichen RESTORE ja eh schon ginge).

    Zu 'vintro':

    1) Statt der Leerstellen vorne mal mit TAB oder SPC versuchen.

    2) Statt der DATA-ASCII-Orgien würde ich mal über einen normalen Text-String und MID$(V$,I,40) nachdenken.

    Gruß

    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.

    Ex-TLI (The Level 99 Industries) & Ex-TNP (The New Patriots) & Ex-TEA (The East Agents) & ?

  • Zitat von Bytebreaker

    Das einzige Manko am V2 Basic ist echt, dass man den Zeiger auf den DATA-Bereich nicht selber setzen kann, sondern nur starten und resetten.


    BIF! BIF!! BIIIIIF!!!!!

  • @ Hexworx

    Danke für die Hinweise ich schaue es mir an.

    Falls auch BASIC Imperator Forum64 Zeit hat und sich die Mühe macht lerne ich gerne wieder von seiner Weisheit. :)

  • Das Problem wird sein, das BIF möglicherweise sogar etwas funktionierendes abliefert, aber das wird so konfus und undurchsichtig sein, dass Du davon nichts lernen kannst. Nichtmal Dumbledore könnte das!

  • @ Hexworx

    Zitat

    2) Statt der DATA-ASCII-Orgien würde ich mal über einen normalen Text-String und MID$(V$,I,40) nachdenken.

    Das hatte ich ursprünglich auch überlegt weil mich das PETSCII-Gehacke schon genervt hat. Aber Text-String-Variablen sind doch in der Länge begrenzt, ich müsste mit mehreren String-Variablen arbeiten. Technisch wäre das sicher möglich.

    Ich denke aktuell eher darüber nach, mir unter Windows ein Batch-Skript zu schreiben was mir einen ASCII-Text in passende DATA-Zeilen umwandelt, die ich dann in VICE copy-pasten kann.

    Dein Vorschlag, DATAs in ein Array zu überführen ist super. :thumbsup:

  • Coole Listings.....
    Für meinen Geschmack aber viiiiieeeeel zu wenig Doppelpunkte...
    Macht die Sache so unleserlich.... :anonym:bgdev

    Nur Spaß, absolut iO...


    lg, duke

  • @ Duke

    Danke das höre ich gern von einem C64 Scener. Das nächste Mal poste ich vielleicht eine Textdatei mit Tabs usw.
    Im BASIC-Code selber vermeide ich "Einrückungs"-Doppelpunkte, weil sie die Ausführung durch den Interpreter verlangsamen.