Byte soll über den Bildschirm wandern

  • Hallo, ich finde keinen Anfang.
    Ich möchte das 1 Byte(129) im Modus 2 an irgendeiner Pixeladresse gesetzt wird zb (30,30) und dann soll es nach rechts wandern pixelweise.


    Byte kann ich schon mit ASM auf die festen Adressen setzen, aber ich möchte es jetzt Pixelweise setzen.
    Da es ja auch beim schieben 2Byte in anspruch nimmt, pack ich das nicht mit dem Schieberoutinen in ASM. Auch soll das Byte wo es reingeschrieben wird nicht verschwinden, soll dann mit "oder" verknüpft werden.


    Wer kann mal helfen?
    Wenn ich diese Byteroutine habe, dann pack ich es mit den anderen auch.


    Also nur eine Byteübung bitte in ASM.
    Für den Fachmann evtl eine kleine Sache.


    Danke.


    mfg

  • Ahoi,


    puh es ist viele Jahre her, dass ich mit Z80 gespielt habe... In etwa so:


    Code
    LD  hl, C000   ; z.B. - Start vom Bildschirmspeicher (falls nicht gescrollt)
    SRL (hl)       ; shift right logical (unterstes Bit geht in carry, von oben 0)
    INC hl         ; hl=hl+1
    RR  (hl)       ; Rotate right (geht uebers Carry-Bit, d.h. vorheriges Carry geht ins neue Bit7)
    ret            ; fertig; flags und hl veraendert.


    Das schiebt in der obersten Pixelzeile (falls nach mode 2 noch nicht gescrollt wurde) die linkesten 16 Pixel (zwei Byte eben) nach rechts. Von links werden Hintergrundpixel reingeschoben, was beim 2. Byte rechts rausfaellt ist weg.


    Meintest Du sowas?


    Gruesse,
    Mordrak


    PS: Siehe auch Z80 Syntax