mirror of
https://github.com/a2-4am/4cade.git
synced 2025-02-21 03:29:24 +00:00
126 lines
2.3 KiB
Plaintext
126 lines
2.3 KiB
Plaintext
;license:MIT
|
|
;(c) 2019 by 4am
|
|
;
|
|
!cpu 6502
|
|
!to "build/FX/CENTER.BY.PIXEL",plain
|
|
*=$6000
|
|
|
|
copymask1 = $f2
|
|
copymask2 = $f3
|
|
skipcounter = $f7
|
|
top = $f9
|
|
bottom = $fa
|
|
counter = $fb
|
|
maskindex = $fc
|
|
row = $fd
|
|
col1 = $fe
|
|
col2 = $ff
|
|
|
|
!source "src/fx/macros.a"
|
|
!source "src/constants.a"
|
|
|
|
lda #44
|
|
sta skipcounter
|
|
lda #$5F
|
|
sta counter
|
|
lda #0
|
|
sta top
|
|
lda #$BF
|
|
sta bottom
|
|
lda #0
|
|
sta col1
|
|
lda #39
|
|
sta col2
|
|
ColLoop
|
|
lda #6
|
|
sta maskindex
|
|
jsr WaitForVBL
|
|
MaskLoop
|
|
ldx maskindex
|
|
lda copymasks1,x
|
|
sta copymask1
|
|
lda copymasks2,x
|
|
sta copymask2
|
|
|
|
lda #23
|
|
sta row
|
|
RowLoop
|
|
lda row
|
|
+HGR_ROW_CALC
|
|
ldx #8
|
|
BlockLoop
|
|
ldy col1
|
|
lda ($26),y
|
|
eor ($3c),y
|
|
and copymask1
|
|
eor ($26),y
|
|
sta ($26),y
|
|
|
|
ldy col2
|
|
lda ($26),y
|
|
eor ($3c),y
|
|
and copymask2
|
|
eor ($26),y
|
|
sta ($26),y
|
|
|
|
clc
|
|
+HGR_INC_WITHIN_BLOCK
|
|
dex
|
|
bne BlockLoop
|
|
|
|
dec row
|
|
bpl RowLoop
|
|
|
|
dec skipcounter
|
|
+LBPL SkipTopAndBottom
|
|
|
|
lda top
|
|
+HGR_CALC
|
|
ldy #39
|
|
- lda ($3c),y
|
|
sta ($26),y
|
|
dey
|
|
bpl -
|
|
inc top
|
|
|
|
lda bottom
|
|
+HGR_CALC
|
|
ldy #39
|
|
- lda ($3c),y
|
|
sta ($26),y
|
|
dey
|
|
bpl -
|
|
dec bottom
|
|
|
|
dec counter
|
|
bmi Exit
|
|
SkipTopAndBottom
|
|
lda $c000
|
|
bmi Exit
|
|
dec maskindex
|
|
+LBPL MaskLoop
|
|
inc col1
|
|
dec col2
|
|
+LBNE ColLoop
|
|
Exit jmp UnwaitForVBL
|
|
|
|
copymasks1
|
|
!byte %11111111
|
|
!byte %10111111
|
|
!byte %10011111
|
|
!byte %10001111
|
|
!byte %10000111
|
|
!byte %10000011
|
|
!byte %10000001
|
|
copymasks2
|
|
!byte %11111111
|
|
!byte %11111110
|
|
!byte %11111100
|
|
!byte %11111000
|
|
!byte %11110000
|
|
!byte %11100000
|
|
!byte %11000000
|
|
|
|
!source "src/wait.a"
|
|
!source "src/fx/fx.hgr.common.a"
|