einige fragen zu c64 programmierung in basic

  • Hallo an alle,


    ich habe einige fragen zur basic programmierung des c64 :


    wie kann ich in basic den bildschirm zu hälfte in einer bestimmten farbe färben ?


    giebt es da einen poke-befehl für ? in den büchern stehen nur allgemeine sachen und oben drein verstehe


    ich auch nur die hälfte davon ( bis ich das mit den Sprites zumindest etwas verstanden hatte... ... das hat gedauert ).




    ich werde noch ein paar mehr fragen stellen, für antworten wäre ich sehr dankbar.

  • Wie soll das genau aussehen? Ich glaube für das was Du möchtest gibt es keine BASIC Lösung. Der übliche und bei vielen Programmen/Spielen zu sehende Weg, daß z.B. Bildschirm und Rahmen oben eine andere Farbe wie unten haben, oder sogar in mehr Bereiche geteilt sind - bis hin zu zeilenweise geänderten Farben - geht in BASIC nicht. (oh, langer Satz). Das wird mit sogenannten Rasterzeileninterrupts gelöst, der Videochip des C64 hat ein besonderes Feature. Man kann Einstellen daß bei einer bestimmten Zeile des Bildaufbaus ein IRQ ausgelöst wird. In der IRQ-Routine (nur in Assembler machbar) kann man dann einfach die Farbregister umsetzen. Sind eigentlich sogar nur ziemlich wenige Codezeilen.


    Im Basic hab ich keine gescheite Idee. Wenn man die Rahmenfarbe ausser acht lässt und nur den Hintergrund ändern will gäbe es noch den TEC Modus - Three Extended Colors. Ich glaub das ist im Handbuch aber auch nur unzureichend beschrieben was das kann.


    Viele Grüße
    Andreas

  • Wenn man das in Basic mit einer FOR-NEXT Shcleife macht, ist es relativ langsam.
    Schneller dürfte es mit PRINT gehen, also in der PRINT-Anweisung Cursor Positionieren, Farbe auswählen, RVS-Modus aktivieren und soviele Spaces ausgeben wie erforderlich.

  • Der Farbspeicher speichert die Farbe des Zeichens, der macht nichts am Hintergrund. Im Bildschirmspeicher wird der ASCII Code des Zeichens abgelegt.


    Spaßiges Detail am Rande: Ein C64 hat genaugenommen 64,5 kB RAM... Der Farbspeicher geht extra, das ist ein zusätzlicher 2114 SRAM Baustein mit 1 kBit * 4.


    Viele Grüße
    Andreas

  • Das war auch mein ursprünglicher Ansatz, einfach CHAR$ zu printen und davon den halben Screen voll eben. Aber das ist irgendwie ziemlich umständlich, oder? Am CPC würden wir das mit nem gepflegten "FILL" umsetzen und vorher eine "Trennlinie" drawen.


    gibt es am C64 solche Grafik-Befehle?

  • Hust...


    Grafikbefehle am C64... Keinen einzigen!


    Das Basic 2.0 ist ziemlich rudimentär, das zwingt dich mehr oder wenig zum Assembler. Im Handbuch steht die Registerbelegung des VICII drin, und wenn Du in Basic den Grafikmodus benutzen willst muss man alles per POKE machen. Ne ganze Menge POKEs :-)


    Viele Grüße
    Andreas