Hallo Besucher, der Thread wurde 5,3k mal aufgerufen und enthält 28 Antworten

letzter Beitrag von schnucke am

Punkte und Linien in HiRes

  • Hier ist ein altes Listing (anscheinend von mir?) für den Profiass. Ich hatte das, glaube ich, dafür vorgesehen, dass man alles per Sys aus Basic heraus aufrufen kann. Daher die Sprungtabelle am Anfang. Leider, wie damals bei mir immer, ist nichts kommentiert. Immerhin kann man an den Labels erkennen um welche Routine es sich jeweils handelt. Die "plot"-Routine heißt auch so. Ansonsten sind noch Textausgabe, Scrollen, Umschalten auf Hi-Res und Bildschirmlöschen enthalten. Vielleicht kannst Du ja was damit anfangen. Übrigens ist das das Programm mit dem mir schon mal eine 6510-CPU abgeraucht ist. Ich hoffe da gibt es keinen ursächlichen Zusammenhang (-;


    @Edit: Der Code aus dem Link von Colt Seavers ist natürlich bedeutend einfacher und schneller.


    LIFE IS SHORT - Break the rules, do more, need less, smile often, be brave, stay true, dream big, forgive quickley, kiss slowly, love truly, laugh uncontrollably and never regret anything that made you smile.

    2 Mal editiert, zuletzt von hexagon ()

  • bresenham ist speziell für den c64 toll, weil er auch mit nur ganz wenigen registern gut zu implementieren ist.... es gibt noch nen andren algo der auf grösseren maschinen besser ist (nach "very fast line algorithmn" oder sowas googlen), aufm c64 dürfte der aber eher deutlich langsamer sein.

  • OK, mal was anderes:
    Ich möchte gerne 2 16-Bitzahlen voneinander subtrahieren und anschlißend
    auf <0 abfragen:


    Code
    1. sec
    2. lda termlo
    3. sbc sublo
    4. sta termlo
    5. lda termhi
    6. sbc subhi
    7. sta termhi


    Das Ergebnis steht ja nun in termlo/hi.
    Wie kann ich das jetzt auf <0 abfragen?
    Geht das irgendwie elegant mit dem V-Flag
    oder muß ich vorher prüfen, ob sub>term?

  • Mit BMI (branch on minus) bzw BPL (branch on plus).


    Ausserdem kann man das Carry-Flag nach der Subtraktion verwenden, um festzustellen, welche der beiden Zahlen grösser ist:


    BCC (branch on carry clear) verzweigt, wenn zahl1 < zahl2.
    BCS (branch on carry set) verzweigt, wenn zahl1 >= zahl2.