Rasterbars und Spritemultiplexer in BASIC

Es gibt 27 Antworten in diesem Thema, welches 6.104 mal aufgerufen wurde. Der letzte Beitrag (21. Februar 2025 um 22:54) ist von daddlertl.

  • Hallo zusammen,

    angeregt durch die Kommentare zur 20 Zeilen Basic Compo habe ich mal versucht, in BASIC farbige Rasterbars und einen Spritemultiplexer zu basteln. Das geht tatsächlich! Als Dateianhang findet Ihr ein ZIP-Archiv mit zwei BASIC-Programmen "basicraster.prg" und "basicmultiplex.prg" plus Quelltexte.
    Bitte melde dich an, um diesen Anhang zu sehen.

    Bitte melde dich an, um diesen Anhang zu sehen.Bitte melde dich an, um diesen Anhang zu sehen.

    Wie funktioniert's?

    Allgemein bekannt ist, dass Rasterbars und Spritemultiplexer eigentlich ganz simpel sind: Man muss nur "schnell genug" verschiedene Farben nach 53280 schreiben bzw. die Sprite-X- und -Y-Koordinaten schnell genug neu setzen, und das immer wieder, 50 mal pro Sekunde, möglichst an genau derselben Rasterposition wie vorher, damit es nicht flackert. Das Schreiben der Farbe oder das Setzen der Sprite-Koordinaten macht man in BASIC natürlich mit POKE.

    Leider schafft BASIC in einer 1/50 Sekunde gerade mal 2 oder 3 POKE-Befehle. Was nun?

    Die Idee kam mir, als ich meinen Beitrag "B-Bert" zur 20 Zeilen Basic Compo programmiert habe: Man kann in BASIC mittels POKE648,x dem BASIC weismachen, dass die Zeichen des Textbildschirms nicht wie üblich ab 1024 im Speicher liegen, sondern an einer anderen Stelle. Als andere Stelle nehme ich nun 53248, d.h. die Adresse des VIC! Ab jetzt muss ich natürlich sehr vorsichtig sein, denn alle "Bildschirmausgaben" werden in den Speicherbereich ab 53248 geschrieben, d.h. in VIC-Register. Nun kann ich mit PRINT"{Home}A"; zum Beispiel eine 1 in die Adresse 53248 schreiben. (Das Zeichen "A" hat den Bildschirmcode 1.) Auf diese Weise kann ich mit PRINT natürlich auch gleich mehrere Zeichen hintereinander schreiben. Oder ich kann mit PRINT"A{Left}B{Left}C"; direkt nacheinander die Werte 1, 2 und 3 in dieselbe Speicherstelle schreiben.
    Schaut Euch mal die beiden Programm bzw. die Quelltexte an, um am Beispiel zu sehen, wie ich das meine.

    Wenn Ihr die Programme laufen lasst, könnt Ihr leider nicht mehr mit RUNSTOP+RESTORE zurück, denn dabei wird der veränderte Wert in 648 nicht zurückgesetzt. Das BASIC will dann also den Bildschirm löschen und "READY." ausgeben, schreibt dabei aber munter in VIC-Register, so dass man nur noch einen leeren Bildschirm erhält und quasi gar nichts mehr geht.

  • Ich kann Sauhund nur beipflichten! Muss ein irres Zeug sein, das Du da schluckst. Ne echt krank-geniale Idee! Respekt!

  • schöner testcase für petcat aber auch.... evtl fixe ich das mal, kann ja nicht angehen =)

  • AAAAAAAAAH, ich will das selbe zeug!!!!!!!!!!!

    Habe den Spritemultiplexer in Basic für einen Scherz gehalten, aber das du das wirklich umgesetzt hast finde ich einfach nur Wahnsinn.

  • Auf jeden Fall mal ne geile Idee, das so zu realisieren. Man müsste so doch auch n tollen Basic-SIDplayer basteln können, wenn man den Bildschirmstart nach d400 verlegt.
    Ich freu mich schon auf die Hörproben :D

  • Tolle Idee, endlich wird Assembler überflüssig :roll2: haha.

  • Auf den Trichter muss man erstmal kommen, wie geil ist das!

    Blog: Bitte melde dich an, um diesen Link zu sehen. - The Seventies Board: Bitte melde dich an, um diesen Link zu sehen. Bitte melde dich an, um diesen Link zu sehen.

    Ein Terminal und ein Z80 :D

  • Durch einen Fehler in Assembler hatte ich auch mal das "Vergnügen" das alle Ausgaben im I/O Addressbereich landeten wäre aber nicht auf die Idee gekommen das gezielt für schnelles BASIC I/O via PRINT zu nutzen.

    Respekt tolle Idee.

    Joshy

  • Achja, gleich mal bei den richtigen Leuten reklame laufen *g*
    Bitte melde dich an, um diesen Link zu sehen.

    (Engländer == Spectrum-Fanatiker ;) )

    Blog: Bitte melde dich an, um diesen Link zu sehen. - The Seventies Board: Bitte melde dich an, um diesen Link zu sehen. Bitte melde dich an, um diesen Link zu sehen.

    Ein Terminal und ein Z80 :D

  • Auf jeden Fall mal ne geile Idee, das so zu realisieren. Man müsste so doch auch n tollen Basic-SIDplayer basteln können, wenn man den Bildschirmstart nach d400 verlegt.
    Ich freu mich schon auf die Hörproben :D

    Einen Basic-Sidplayer hat A Life in Hell schon gebastelt - sogar teilweise mit Support für zwei SIDs:

    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.

  • Der sieht mir aber mehr nach Assembler als nach CBM-Basic aus. Hast du vielleicht die falschen Links erwischt?

  • Mh... keine Ahnung ... sollte ALIH da Quatsch gefaselt haben? [siehe Production Notes]:

    Zitat

    Production Info
    Submitted by \^_^/ on 27 February 2008
    This is what happens when you get drunk and decide to write a music player in basic

    Also ich dachte schon, das wäre Basic.

  • K.A. was die Produktionsnote bedeuten soll, ich hab n Blick im CCS Monitor draufgeworfen und nur Assemblercode+die dazugehörigen Daten, aber nix Basic-artiges gefunden. Das Basic Rom ist auch ausgeblendet.
    Aber ssdsa wird das schon hinkriegen *anstachel* :)

  • Das Programm hat es in ein Youtube-Video geschafft, nach mehr als 16 Jahren:

    Bitte melde dich an, um dieses Medienelement 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. ****

  • Das Programm hat es in ein Youtube-Video geschafft, nach mehr als 16 Jahren:

    Bitte melde dich an, um dieses Medienelement zu sehen.

    Ich mag keine Videos, wo ich 40 Minuten Hände sehen muss 8o, aber sehr schön, wenn Schätze ausgegraben werden :thumbup:

    "Was heute noch wie ein Märchen klingt,kann morgen Wirklichkeit sein.Hier ist ein Märchen von übermorgen.Es gibt keine Kupferka­bel mehr,es gibt nur noch die Glasfaser und Terminals in jedem Raum.Man siedelt auf fernen Rech­nern.Die Mailboxen sind als Wohnraum erschlossen.Mit heute noch unvorstellbaren Geschwindigkeiten durcheilen Computerclubs unser Da­tenverbundsystem.Einer dieser Com­puterclubs ist der CCC.Gigantischer Teil eines winzigen Sicher­heitssystems,das die Erde vor Bedrohungen durch den Gilb schützt.Begleiten wir den CCC und seine Mitglieder bei ihrem Patrouillendienst am Rande der Unkenntlich­keit. CCC'84 nach ORION'64"

  • Ich mag keine Videos, wo ich 40 Minuten Hände sehen muss 8o, ...

    Das kommt drauf an, welche Hände und wo diese arbeiten. :whistling:

    Ja Sierohpätsch... :rolleyes:

    "Was heute noch wie ein Märchen klingt,kann morgen Wirklichkeit sein.Hier ist ein Märchen von übermorgen.Es gibt keine Kupferka­bel mehr,es gibt nur noch die Glasfaser und Terminals in jedem Raum.Man siedelt auf fernen Rech­nern.Die Mailboxen sind als Wohnraum erschlossen.Mit heute noch unvorstellbaren Geschwindigkeiten durcheilen Computerclubs unser Da­tenverbundsystem.Einer dieser Com­puterclubs ist der CCC.Gigantischer Teil eines winzigen Sicher­heitssystems,das die Erde vor Bedrohungen durch den Gilb schützt.Begleiten wir den CCC und seine Mitglieder bei ihrem Patrouillendienst am Rande der Unkenntlich­keit. CCC'84 nach ORION'64"

  • Ich mag keine Videos, wo ich 40 Minuten Hände sehen muss 8o

    Hab ich auch mal gedacht, aber die Videos von Robin sind tatsächlich sehr informativ, unterhaltsam und gut erklärt. Ich schau mir das sehr gerne an inzwischen :thumbup:

    "Werter Pöbel, wertes Gesocks ... aus dem Arsche zieht euch den Stock ..."

  • Ich mag keine Videos, wo ich 40 Minuten Hände sehen muss 8o

    Hab ich auch mal gedacht, aber die Videos von Robin sind tatsächlich sehr informativ, unterhaltsam und gut erklärt. Ich schau mir das sehr gerne an inzwischen :thumbup:

    Da hast Du Recht, seine unaufgeregte und schlüssige Erklärweise ist sehr angenehm :thumbup:. Dennoch halte ich das keine 5 Minuten aus. Ich will immer sagen "... geh doch mal aus'm Bild!"

    "Was heute noch wie ein Märchen klingt,kann morgen Wirklichkeit sein.Hier ist ein Märchen von übermorgen.Es gibt keine Kupferka­bel mehr,es gibt nur noch die Glasfaser und Terminals in jedem Raum.Man siedelt auf fernen Rech­nern.Die Mailboxen sind als Wohnraum erschlossen.Mit heute noch unvorstellbaren Geschwindigkeiten durcheilen Computerclubs unser Da­tenverbundsystem.Einer dieser Com­puterclubs ist der CCC.Gigantischer Teil eines winzigen Sicher­heitssystems,das die Erde vor Bedrohungen durch den Gilb schützt.Begleiten wir den CCC und seine Mitglieder bei ihrem Patrouillendienst am Rande der Unkenntlich­keit. CCC'84 nach ORION'64"