Hello, Guest the thread was called4.2k times and contains 26 replays

last post from GoDot at the

Grafik und Sound beim BASIC

  • Geht das? Sicherlich alles zeitintensiver als vielleicht ASS oder C, aber geht das theoretisch und praktisch?
    Wikipedia behauptet dies sei nicht möglich, zumindestens mit der Version 2 von BASIC. Und da der C64 ja BASIC 2.0 nutzt, frage ich mich ob das korrekt ist:


    "Das eingebaute Commodore Basic V2 bietet keinerlei Befehle, um die Grafik- und Soundmöglichkeiten des C64 anzusprechen, da diese beim VC20, von dem der Code übernommen worden war, noch nicht vorhanden waren."


    Quelle: http://de.wikipedia.org/wiki/Commodore_64


    PS: Bin Anfänger in BASIC und möchte wissen, ob es sich lohnt in die Materie hineinzuschauen.

  • Doch, doch das geht schon. Du mußt halt kräftig poken und peeken...


    "Zum direkten Zugriff auf die Hardware, insbesondere den Speicher, werden die Befehle POKE und die Funktion PEEK(x) bereitgestellt."


    Lies dich doch mal hier ein:


    http://www.c64-wiki.de/index.php/Grafikmodus


    Das C64-Handbuch ist für einen Einstieg auch geeignet.


    Und: lohnt sich auf alle Fälle!

  • Geht das? Sicherlich alles zeitintensiver als vielleicht ASS oder C, aber geht das theoretisch und praktisch?


    Für einen Anfänger würde ich aber dann eher Simons' Basic ausprobieren. Oder eine andere Basic Erweiterung, die Grafik-Befehle enthält.
    Wenn ich mich richtig erinnere, gab es mal ein 64er Sonderheft zum Thema Grafik-Programmierung.

  • Mal ne Frage nebenbei (da ich gerne für 'nen tollen Speedgewinn Compiler am C64 benutze) : Kann man mit Simon's Basic geschriebene Programme, also Listings, die dessen Befehle enthalten ebenso mit Bitzcompiler, etc. compilieren ? Oder muss dafür der Basiccode im C64 Basic V2 sein, um vom Compiler etc. interpretiert werden zu können ?

  • Kann man mit Simon's Basic geschriebene Programme, also Listings, die dessen Befehle enthalten ebenso mit Bitzcompiler, etc. compilieren ?


    Kenn jetzt selbst keinen SB Sourcecode Compiler, aber ein Thread zum SB Compiler Thema ist hier:
    http://www.forum64.de/wbb3/boa…24-simons-basic-compiler/


    EDIT:
    Anscheinend kann das der BASIC-64 Compiler von Abacus/Data Becker mit Einschränkungen. Grafik-Befehle sollten aber gehen.

  • Quote

    Mal ne Frage nebenbei (da ich gerne für 'nen tollen Speedgewinn Compiler am C64 benutze) : Kann man mit Simon's Basic geschriebene Programme, also Listings, die dessen Befehle enthalten ebenso mit Bitzcompiler, etc. compilieren ? Oder muss dafür der Basiccode im C64 Basic V2 sein, um vom Compiler etc. interpretiert werden zu können ?


    eher nein ... zumindest ist das nicht trivial und erfordert immer frickelei. ich würde da eher auf eine erweiterung zurückgreifen wo die "befehle" dann per SYS aufgerufen werden (in der input64 war zb mal eine recht gute/schnelle derartige grafikerweiterung) - die lassen sich idr einfacher in kompilate reinfummeln. davon ab können manche compiler aber durchaus mit basic erweiterungen umgehen (blitz! zb, austro-comp glaube ich auch) ... die kompilate funktionieren dann idr aber nur wenn die entsprechende erweiterung vorher geladen wurde (bzw bei simons basic wenn das modul vorhanden ist).

  • im c64 handbuch gibts doch sogar ein beispiel (malt eine sinuswelle). ist allerdings unendlich langsam :)


    es GIBT sogar auf der Demodisk ein paar Beispiele für Musik, wo man nur noch die Tabellen ummodeln muss. Wenn man etwas wirklich WILL, geht fast alles, Enthusi (IIRC) hat auch mal in Basic ganz schön satte Mucke rausgehauen. Aber wie Sauhund richtig schrub, ist in BASIC dann stets das Problem, dass man außer einer Tastenabfrage nix anderes mehr machen kann, deshalb würde ich auch dringend raten einen Musik-Player in eine Assembler-IRQ auszulagern und per SYS aufzurufen bzw. zu schließen.


    Den Bereich ab $C000 kann man auch ohne Compiler als BASIC-Coder bequem für alles mögliche an ASM nehmen, ferner bietet sich natürlich der Bereich unterm BASIC-ROM an, also $A000 bis $BFFF. Schau Dir einfach mal eine listbare (also unkompilierte) Version vom Spiel Mafia an, dort wird genau das gemacht, wenn ich mich halbwegs richtig erinnere.


    Mit Compiler ist man natürlich deutlich flexibler und kann sich einiges wie Relocating von Musik sparen und hat allgemein ne bessere Performance, wenn auch z.T. auf Kosten von RAM-Fraß.

  • C64-fan: Besorge Dir das C64-Handbuch und arbeite es durch. Das soll jetzt kein blöder 'RTFM-Kommentar' sein, sondern ein ernstgemeinter Tip. Das Handbuch führt einen mit anschaulichen Beispielen in die Möglichkeiten der Programmierung ein.

  • What I say, viele Schnipsel von der Demo-Disk kann man echt gut klauen und modifizieren, aber noch besser ist, wenn man sie mit dem Handbuch oder http://www.c64-wiki.de/index.php/Kategorie:BASIC-Befehl (Schleichwerbung präsentiert von TheRyk, aber kein Witz, ich habe zuletzt in den 80s ins Handbuch geschaut und mir meine BASIC-Kenntnisse nahezu komplett mit Wiki angeeignet) auch versteht, das erleichtert das "Customizen" der Codes für eigene Zwecke.

  • Ist Simons Basic normal für den C64 anwendbar? Ich meine irgendwo gelesen zu haben in diesem Forum, dass Simons Basic einen Nachteil hat.


    Also im Vergleich normales Basic v2 gegen Simons Basic, welches ist besser? Und kann man beide Versionen überhaupt miteinander vergleichen? Lassen sich die gemachten Programme in SB auch auf dem C64 lesen?

  • Kommt immer darauf an, worauf es einem ankommt.


    Auch Simons Basic ist sehr gut online dokumentiert inzwischen
    http://www.c64-wiki.de/index.php/Simons_Basic


    Hauptproblem imho:

    Quote

    Leider gibt es keinen Compiler, der ein allein laufendes Simons' BASIC - Compilat erzeugen kann.


    Mir persönlich war das bisher immer zu verschroben, finde schon Compiled Basic etwas over the top, WENN schon Basic, dann V2 oder bestenfalls Boss/etwas, was ein "allein laufendes Compilat" erzeugt, alles, was darüber hinausgeht, ist meta-Hochsprachen-huppyfluppy, womit außer einem Haufen Eierköppe nix anfangen können. Die Zeit, die man in das Erlernen solcher Sprachen investiert, ist besser angelegt für Studium des Speicherbelegungsplans oder gleich Lernen von Assembler


    Quote

    Ich glaube jedes Basic ist besser als das C64 Basic

    Schon was dran, aber siehe oben, was bringt es, in einem Dialekt zu schreiben, mit dessen Kompilaten kein Mensch etwas anfangen kann. Die Aussage würde ich am ehesten unterschreiben, wenn man Vanilla Basic von 8bit Systemen vergleicht, Atari800XL Basic ist DEUTLICH mächtiger als C= V2.0, gerade was Sound und Grafik angeht. Am C64 peekt und poket und syst man sich dermaßen einen ab, wenn man was halbwegs vernünftiges erreichen will, dass man auch gleich Assembler lernen kann (mit LDA/STA/JMP kann man schon viel machen, wenn man den Speicherbelegungsplan kennt, was auch für BASIC unabdingbar ist).

  • die Software für Simon´s Basic war von jeher sehr eingeschränkt, obwohl man sagen muss, dass Simon´s Basic sehr einfach und komfortabel ist.


    Ich fand Simon´s Basic schon immer klasse. Für mich das am meisten unterschätzte Basic.

  • Dann ist aber das C64 Basic besser. Weil das generell installiert ist. Und Simons Basic nicht jeder besitzt. Warum soll ich dann ein Programm schreiben, wenn es kaum jemand benutzen kann?


    Vielleicht solltest Du zunächst mal klar abstecken, was Deine Anforderungen sind, bevor man philosophiert, was "besser" ist:

    • wenn Du Deine Programme weitergeben willst --> dann sind Basic-Erweiterungen wohl nicht so die erste Wahl
    • wenn es Dir darum geht, schnell Resultate nur für Deinen Rechner zu erstellen --> Dann sind Basic-Erweiterungen nicht so schlecht (IMHO)


    Prinzipiell gilt das Gleiche für ASM Routinen, die Du per SYS aufrufst: Auch die musst du mal auf einem Fremdrechner haben, wenn Du diese nicht selbst schreibst und auslieferst.
    Dann musst Du abstecken, welche Art von Ergebnis (z.B. Art der Grafiken und Sound etc) Du erstellen willst. Eine fertige Grafik ab Disk anzuzeigen, ist etwas anderes als mathematische Formen on-demand zu zeichnen, die auf Zahlenwerte basieren.
    Erst dann kann man eine vernünftige Aussage machen, mit welchem Tool die Umsetzung erfolgen kann. Und bedenke: ASM hat man auch nicht in 2 Wochen "einfach mal so gelernt"..

  • Prinzipiell gilt das Gleiche für ASM Routinen, die Du per SYS aufrufst: Auch die musst du mal auf einem Fremdrechner haben, wenn Du diese nicht selbst schreibst und auslieferst.


    Naja, wer immerhin schon weiß, wie man BASIC mit ASM kombiniert, der wird auch hinkriegen, die ASM Routinen in das Enderegebnis, was dem User serviert wird, einzubinden - und sei es notfalls via KERNEL-Load wie in Mafia.

  • Und Simons Basic nicht jeder besitzt. Warum soll ich dann ein Programm schreiben, wenn es kaum jemand benutzen kann?


    "Simons Basic" gibt es auch als Software zum Laden von Tape oder Disk, man muss also nicht unbedingt ein Simons-Basic-Modul haben um damit zu arbeiten bzw. wenn man es nutzen will:


    Siehe:
    http://www.c64-wiki.de/index.php/Simons_Basic#Download