[stella] The ol' Playfield Swap

Subject: [stella] The ol' Playfield Swap
From: Schwerin <schwerin@xxxxxxxx>
Date: Sun, 21 Feb 1999 21:18:17 -0500
Can you look at this code snippet for me from an ongoing project?

I have the Playfield in reflect mode, and I'm not using PF0.
I want to make sure the PF2 swap occurs on the right machine cycle.
I'm just about ready to run the full version on emulation.
Here is the snippet.....

Draw_Screen:

    lda  DrawH
    beq  V0         ;branch if DrawH = 0
H0:
                    ;            [70] from previous
    sta  WSYNC      ;            [70] + 3
                    ;            [73]
                    ;            sleep for 2 cycles.
    lda  FieldH00   ;[00] + 3
    sta  PF1        ;[03] + 3
    lda  FieldH01   ;[06] + 3
    sta  PF2        ;[09] + 3
    lda  FieldH02   ;[12] + 3
                    ;         kill some time
    pha             ;[15] + 3
    pla             ;[18] + 4
    pha             ;[22] + 3
    pla             ;[25] + 4
    pha             ;[29] + 3
    pla             ;[32] + 4
    pha             ;[36] + 3
    pla             ;[39] + 4
    lda  FieldH02   ;[43] + 3

                    ;[46]
    sta  PF2        ;[46] 46,47, *48* (swap on 3rd cycle of sta dp)
    lda  FieldH03   ;[49] + 3
    sta  PF1        ;[52] + 3

    dec  ScanLine   ;[55] + 5
    beq  Exit0      ;[60] stop drawing!
    dec  DrawH      ;+2 [62] + 5
    bne  H0         ;[67] + 3 {taken}

                    ;+ 2 {not taken)
                    ;[69]
                    ;DrawV is non-zero here...
V0:
    sta  WSYNC      ;[69] + 3
                    ;[72]
                    ;sleep for 3 cycles...
    lda  FieldV00   ;[00]

etc..................

-Andrew Schwerin



--
Archives (includes files) at http://www.biglist.com/lists/stella/archives/
Unsub & more at http://www.biglist.com/lists/stella/

Current Thread