2019-10-15 03:37:29 +00:00
|
|
|
;license:MIT
|
2019-10-15 17:58:13 +00:00
|
|
|
;(c) 2019 by 4am
|
2019-10-15 03:37:29 +00:00
|
|
|
;
|
|
|
|
!cpu 6502
|
2021-10-16 01:34:39 +00:00
|
|
|
!to "build/FX.INDEXED/LR.BY.PIXEL",plain
|
2019-10-15 03:37:29 +00:00
|
|
|
*=$6000
|
|
|
|
|
|
|
|
maskindex = $fd
|
|
|
|
row = $fe
|
|
|
|
col = $ff
|
|
|
|
|
2022-08-26 01:56:15 +00:00
|
|
|
!source "src/fx/macros.a"
|
2020-03-17 22:30:20 +00:00
|
|
|
!source "src/constants.a"
|
|
|
|
|
2019-10-15 03:37:29 +00:00
|
|
|
@jump
|
|
|
|
jmp @copy ; skip clear the first time
|
|
|
|
|
|
|
|
;clear
|
|
|
|
lda #$27
|
|
|
|
sta col
|
|
|
|
@clearcolloop
|
|
|
|
lda #$06
|
|
|
|
sta maskindex
|
2019-10-20 00:30:48 +00:00
|
|
|
jsr WaitForVBL
|
2019-10-15 03:37:29 +00:00
|
|
|
@clearmaskloop
|
|
|
|
ldx maskindex
|
|
|
|
lda clearmasks,x
|
|
|
|
sta @clearmask
|
|
|
|
lda #$17
|
|
|
|
sta row
|
|
|
|
@clearrowloop
|
|
|
|
lda row
|
|
|
|
asl
|
|
|
|
asl
|
|
|
|
asl
|
|
|
|
jsr HGRCalc
|
|
|
|
clc
|
|
|
|
ldx #$08
|
|
|
|
ldy col
|
|
|
|
@clearblockloop
|
|
|
|
lda ($26),y
|
|
|
|
@clearmask=*+1
|
|
|
|
and #$FD ; SMC
|
|
|
|
sta ($26),y
|
|
|
|
lda $27
|
|
|
|
adc #4
|
|
|
|
sta $27
|
|
|
|
dex
|
|
|
|
bne @clearblockloop
|
|
|
|
dec row
|
|
|
|
bpl @clearrowloop
|
|
|
|
lda #8
|
|
|
|
jsr WaitForKeyWithTimeout
|
|
|
|
bmi @exit
|
|
|
|
dec maskindex
|
|
|
|
bpl @clearmaskloop
|
|
|
|
dec col
|
|
|
|
bpl @clearcolloop
|
|
|
|
|
|
|
|
@copy
|
|
|
|
lda #$2C ; BIT opcode
|
|
|
|
sta @jump ; don't skip clear after first time
|
|
|
|
|
|
|
|
; copy
|
|
|
|
lda #$00
|
|
|
|
sta col
|
|
|
|
@colloop
|
|
|
|
lda #$06
|
|
|
|
sta maskindex
|
2019-10-20 00:30:48 +00:00
|
|
|
jsr WaitForVBL
|
2019-10-15 03:37:29 +00:00
|
|
|
@maskloop
|
|
|
|
ldx maskindex
|
|
|
|
lda copymasks,x
|
|
|
|
sta @mask
|
|
|
|
lda #$17
|
|
|
|
sta row
|
|
|
|
@rowloop
|
|
|
|
lda row
|
|
|
|
asl
|
|
|
|
asl
|
|
|
|
asl
|
|
|
|
jsr HGRCalc
|
|
|
|
clc
|
|
|
|
ldx #$08
|
|
|
|
ldy col
|
|
|
|
@blockloop
|
|
|
|
lda ($3c),y
|
|
|
|
@mask=*+1
|
|
|
|
and #$FD ; SMC
|
|
|
|
sta ($26),y
|
|
|
|
lda $27
|
|
|
|
adc #4
|
|
|
|
sta $27
|
|
|
|
eor #$60
|
|
|
|
sta $3d
|
|
|
|
dex
|
|
|
|
bne @blockloop
|
|
|
|
dec row
|
|
|
|
bpl @rowloop
|
|
|
|
lda #8
|
|
|
|
jsr WaitForKeyWithTimeout
|
|
|
|
bmi @exit
|
|
|
|
dec maskindex
|
|
|
|
bpl @maskloop
|
|
|
|
inc col
|
|
|
|
lda col
|
|
|
|
cmp #40
|
|
|
|
bne @colloop
|
2019-11-20 05:55:33 +00:00
|
|
|
@exit jmp UnwaitForVBL
|
2019-10-15 03:37:29 +00:00
|
|
|
clearmasks
|
|
|
|
!byte $80,$81,$83,$87,$8F,$9F,$BF
|
|
|
|
copymasks
|
|
|
|
!byte $FF,$BF,$9F,$8F,$87,$83,$81
|
|
|
|
!source "src/wait.a"
|
2020-11-14 02:24:30 +00:00
|
|
|
+HGR_CALC_ROUTINES
|