;license:MIT ;(c) 2019 by 4am ; !cpu 6502 !to "build/FX.INDEXED/R.BY.2",plain *=$6000 maskindex = $fd row = $fe col = $ff !source "src/fx/macros.a" !source "src/constants.a" lda #0 sta col ColLoop lda #0 sta row jsr WaitForVBL RowLoop lda row +HGR_ROW_CALC lda col ror bcs OddCol ldx #7 ldy col - lda ($26),y eor ($3c),y and copymask_even eor ($26),y sta ($26),y clc +HGR_INC_WITHIN_BLOCK dex bpl - bmi NextRow ; always branches OddCol ldx #7 ldy col - lda ($26),y eor ($3c),y and copymask_odd eor ($26),y sta ($26),y clc +HGR_INC_WITHIN_BLOCK dex bpl - NextRow inc row lda row cmp #24 +LBNE RowLoop lda $c000 bmi Exit inc col lda col cmp #40 +LBNE ColLoop beq Phase2 Exit jmp UnwaitForVBL Phase2 lda #0 sta col ColLoop2 lda #0 sta row jsr WaitForVBL RowLoop2 lda row +HGR_ROW_CALC ldx #7 ldy col - lda ($3c),y sta ($26),y clc +HGR_INC_WITHIN_BLOCK dex bpl - inc row lda row cmp #24 +LBNE RowLoop2 lda $c000 bmi Exit2 inc col lda col cmp #40 +LBNE ColLoop2 Exit2 jmp UnwaitForVBL copymask_even !byte %11001100 copymask_odd !byte %10110011