xmas2018: reflections code, urgh that is a pain

running up to filesize limit too
This commit is contained in:
Vince Weaver 2018-12-21 14:45:01 -05:00
parent 2ebeb90d80
commit 751da01f90
3 changed files with 688 additions and 476 deletions

View File

@ -27,7 +27,7 @@ xmas2018.o: xmas2018.s \
vapor_lock.s delay_a.s wait_keypress.s gr_putsprite.s \
play_music.s mockingboard.s rts.s \
wreath.s wreath.img.lz4 sprites.inc \
ball.s ball.img.lz4 greets.raw.lz4t gr_scroll.s \
ball.s ball.img.lz4 greets.raw.lz4t gr_scroll.s reflection.s \
merry.s merry.img.lz4
ca65 -o xmas2018.o xmas2018.s -l xmas2018.lst

View File

@ -150,13 +150,13 @@ baloopF:dex ; 2
; do_nothing should be 4550
; -1023 music
; -1841 scroll/else
; -1844 scroll/else
; -18 frame adjust
; -10 keypress
; -8 pick which
; -7 check for end
; ===========
; 1643
; 1640
inc FRAME ; 5
lda FRAME ; 3
@ -196,39 +196,41 @@ done_framing:
do_something_else:
; -1
jsr do_reflection ; 6+678
jsr do_reflection ; 6+1836
; 1842 (+1 incoming)
; 1845 (+1 incoming)
; -3 jmp
; -684 do_reflection
;-1842 do_reflection
;===================
; 1155
; 0
; Try X=114 Y=2 cycles=1153 R2
; Try X=16 Y=1 cycles=87
nop
ldy #2 ; 2
baloopQ:ldx #114 ; 2
baloopR:dex ; 2
bne baloopR ; 2nt/3
dey ; 2
bne baloopQ ; 2nt/3
; ldy #1 ; 2
;baloopQ:ldx #16 ; 2
;baloopR:dex ; 2
; bne baloopR ; 2nt/3
; dey ; 2
; bne baloopQ ; 2nt/3
jmp done_actions ; 3
do_scrolling:
jsr scroll_loop ; 6+1835
lda $0 ; 3
;=========
; 1841
; 1844
done_actions:
; Try X=163 Y=2 cycles=1643
; Try X=16 Y=19 cycles=1635 R5
ldy #2 ; 2
baloop1:ldx #163 ; 2
nop
lda $0
ldy #19 ; 2
baloop1:ldx #16 ; 2
baloop2:dex ; 2
bne baloop2 ; 2nt/3
dey ; 2
@ -248,459 +250,4 @@ ball_done:
rts ; 6
;======================================
; First two = (30*4)*2 = 240
; Next two = (30*2+26*2) = 224
; Next two = (26*4)*2 = 208
; return 6
;======================================
; 678
do_reflection:
;20========================
;==========================
;==========================
;=============
; LORES 20x40 -> HIRES 126x156
lda $664 ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$aa ; 2
sta $51d0+(126/7) ; 4
sta $55d0+(126/7) ; 4
sta $59d0+(126/7) ; 4
sta $5dd0+(126/7) ; 4
;===========
; 30
;=============
; LORES 20x42 -> HIRES 126x152
lda $6E4 ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$aa ; 2
sta $5150+(126/7) ; 4
sta $5550+(126/7) ; 4
sta $5950+(126/7) ; 4
sta $5d50+(126/7) ; 4
;===========
; 30
;=============
; LORES 20x44 -> HIRES 126x148
lda $764 ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$aa ; 2
sta $41d0+(126/7) ; 4
sta $45d0+(126/7) ; 4
sta $49d0+(126/7) ; 4
sta $4dd0+(126/7) ; 4
;===========
; 30
;=============
; LORES 20x46 -> HIRES 126x144
lda $7E4 ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$aa ; 2
sta $4150+(126/7) ; 4
sta $4550+(126/7) ; 4
sta $4950+(126/7) ; 4
sta $4d50+(126/7) ; 4
;===========
; 30
;19========================
;==========================
;==========================
;=============
; LORES 19x40 -> HIRES 119x156
lda $663 ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$d5 ; 2
sta $51d0+(119/7) ; 4
sta $55d0+(119/7) ; 4
sta $59d0+(119/7) ; 4
sta $5dd0+(119/7) ; 4
;===========
; 30
;=============
; LORES 19x42 -> HIRES 119x152
lda $6E3 ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$d5 ; 2
sta $5150+(119/7) ; 4
sta $5550+(119/7) ; 4
sta $5950+(119/7) ; 4
sta $5d50+(119/7) ; 4
;===========
; 30
;=============
; LORES 19x44 -> HIRES 119x148
lda $763 ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$d5 ; 2
sta $41d0+(119/7) ; 4
sta $45d0+(119/7) ; 4
sta $49d0+(119/7) ; 4
sta $4dd0+(119/7) ; 4
;===========
; 30
;=============
; LORES 19x46 -> HIRES 119x144
lda $7E3 ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$d5 ; 2
sta $4150+(119/7) ; 4
sta $4550+(119/7) ; 4
sta $4950+(119/7) ; 4
sta $4d50+(119/7) ; 4
;===========
; 30
;18========================
;==========================
;==========================
;=============
; LORES 18x40 -> HIRES 112x153x4
lda $662 ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$aa ; 2
sta $5550+(112/7) ; 4
sta $5950+(112/7) ; 4
sta $5d50+(112/7) ; 4
sta $51d0+(112/7) ; 4
;===========
; 30
;=============
; LORES 18x42 -> HIRES 112x149x4
lda $6E2 ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$aa ; 2
sta $45d0+(112/7) ; 4
sta $49d0+(112/7) ; 4
sta $4dd0+(112/7) ; 4
sta $5150+(112/7) ; 4
;===========
; 30
;=============
; LORES 18x44 -> HIRES 112x146x3
lda $762 ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$aa ; 2
sta $4950+(112/7) ; 4
sta $4d50+(112/7) ; 4
sta $41d0+(112/7) ; 4
;===========
; 26
;=============
; LORES 18x46 -> HIRES 112x143x3
lda $7E2 ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$aa ; 2
sta $5cd0+(112/7) ; 4
sta $4150+(112/7) ; 4
sta $4550+(112/7) ; 4
;===========
; 26
;16========================
;==========================
;==========================
;=============
; LORES 16x40 -> HIRES 105x151x4
lda $660 ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$d5 ; 2
sta $4dd0+(105/7) ; 4
sta $5150+(105/7) ; 4
sta $5550+(105/7) ; 4
sta $5950+(105/7) ; 4
;===========
; 30
;=============
; LORES 16x42 -> HIRES 105x147x4
lda $6E0 ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$d5 ; 2
sta $4d50+(105/7) ; 4
sta $41d0+(105/7) ; 4
sta $45d0+(105/7) ; 4
sta $49d0+(105/7) ; 4
;===========
; 30
;=============
; LORES 16x44 -> HIRES 105x144x3
lda $760 ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$d5 ; 2
sta $4150+(105/7) ; 4
sta $4550+(105/7) ; 4
sta $4950+(105/7) ; 4
;===========
; 26
;=============
; LORES 16x46 -> HIRES 105x141x3
lda $7E0 ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$d5 ; 2
sta $54d0+(105/7) ; 4
sta $58d0+(105/7) ; 4
sta $5cd0+(105/7) ; 4
;===========
; 26
;13========================
;==========================
;==========================
;=============
; LORES 13x40 -> HIRES 98x149x3
lda $65d ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$aa ; 2
sta $45d0+(98/7) ; 4
sta $49d0+(98/7) ; 4
sta $4dd0+(98/7) ; 4
;===========
; 26
;=============
; LORES 13x42 -> HIRES 98x145x3
lda $6dd ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$aa ; 2
sta $4550+(98/7) ; 4
sta $4950+(98/7) ; 4
sta $4d50+(98/7) ; 4
;===========
; 26
;=============
; LORES 13x44 -> HIRES 98x142x3
lda $75d ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$aa ; 2
sta $58d0+(98/7) ; 4
sta $5cd0+(98/7) ; 4
sta $4150+(98/7) ; 4
;===========
; 26
;=============
; LORES 13x46 -> HIRES 98x139x3
lda $7dd ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$aa ; 2
sta $4c90+(98/7) ; 4
sta $50d0+(98/7) ; 4
sta $54d0+(98/7) ; 4
;===========
; 26
;10========================
;==========================
;==========================
;=============
; LORES 10x40 -> HIRES 91x145x3
lda $65a ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$d5 ; 2
sta $4550+(91/7) ; 4
sta $4950+(91/7) ; 4
sta $4d50+(91/7) ; 4
;===========
; 26
;=============
; LORES 10x42 -> HIRES 91x142x4
lda $6da ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$d5 ; 2
sta $58d0+(91/7) ; 4
sta $5cd0+(91/7) ; 4
sta $4150+(91/7) ; 4
;===========
; 26
;=============
; LORES 10x44 -> HIRES 91x139x3
lda $75a ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$d5 ; 2
sta $4cd0+(91/7) ; 4
sta $50d0+(91/7) ; 4
sta $54d0+(91/7) ; 4
;===========
; 26
;=============
; LORES 10x46 -> HIRES 91x136x3
lda $7da ; 4
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and #$d5 ; 2
sta $40d0+(91/7) ; 4
sta $44d0+(91/7) ; 4
sta $48d0+(91/7) ; 4
;===========
; 26
rts ; 6
.include "reflection.s"

665
xmas_2018/reflection.s Normal file
View File

@ -0,0 +1,665 @@
;=====================================
; XMAS2018 -- Ball Reflections
;=====================================
;======================================
; First two = (54+47+47+47)*2 = 390
; Next four = (54+47+42+42)*4 = 740
; Next two = (49+42+42+42)*4 = 700
; return 6
;======================================
; 1836
do_reflection:
;19========================
;==========================
;==========================
;=============
; LORES 19x40 -> HIRES 119x156
ldx #$d5 ; 2
stx MASK ; 3
ldy #(119/7) ; 2
lda $663 ; 4
jsr reflection11 ; 6+37
;===========
; 54
;=============
; LORES 19x42 -> HIRES 119x152
lda $6E3 ; 4
jsr reflection12 ; 6+37
;=============
; 47
;=============
; LORES 19x44 -> HIRES 119x148
lda $763 ; 4
jsr reflection13 ; 6+37
;=============
; 47
;=============
; LORES 19x46 -> HIRES 119x144
lda $7E3 ; 4
jsr reflection14 ; 6+37
;=============
; 47
;20========================
;==========================
;==========================
;=============
; LORES 20x40 -> HIRES 126x156
ldx #$aa ; 2
stx MASK ; 3
ldy #(126/7) ; 2
lda $664 ; 4
jsr reflection11 ;6+37
;============
; 49
;=============
; LORES 20x42 -> HIRES 126x152
lda $6E4 ; 4
jsr reflection12 ; 6+37
;=============
; 47
;=============
; LORES 20x44 -> HIRES 126x148
lda $764 ; 4
jsr reflection13 ; 6+37
;=============
; 47
;=============
; LORES 20x46 -> HIRES 126x144
lda $7E4 ; 4
jsr reflection14 ; 6+37
;=============
; 47
;18========================
;==========================
;==========================
;=============
; LORES 18x40 -> HIRES 112x153x4
ldx #$aa ; 2
stx MASK ; 3
ldy #(112/7) ; 2
lda $662 ; 4
jsr reflection21 ; 6+37
;=============
; 49
;=============
; LORES 18x42 -> HIRES 112x149x4
lda $6E2 ; 4
jsr reflection22 ; 6+37
;=============
; 47
;=============
; LORES 18x44 -> HIRES 112x146x3
lda $762 ; 4
jsr reflection23 ; 6+32
;=============
; 42
;=============
; LORES 18x46 -> HIRES 112x143x3
lda $7E2 ; 4
jsr reflection24 ; 6+32
;=============
; 42
;21========================
;==========================
;==========================
;=============
; LORES 21x40 -> HIRES 133x153x4
ldx #$d5 ; 2
stx MASK ; 3
ldy #(133/7) ; 2
lda $665 ; 4
jsr reflection21 ; 6+37
;=============
; 49
;=============
; LORES 21x42 -> HIRES 112x149x4
lda $6E5 ; 4
jsr reflection22 ; 6+37
;=============
; 47
;=============
; LORES 21x44 -> HIRES 112x146x3
lda $765 ; 4
jsr reflection23 ; 6+32
;=============
; 42
;=============
; LORES 21x46 -> HIRES 112x143x3
lda $7E5 ; 4
jsr reflection24 ; 6+32
;=============
; 42
;16========================
;==========================
;==========================
;=============
; LORES 16x40 -> HIRES 105x151x4
ldx #$d5 ; 2
stx MASK ; 3
ldy #(105/7) ; 2
lda $660 ; 4
jsr reflection31 ; 6+37
;=============
; 49
;=============
; LORES 16x42 -> HIRES 105x147x4
lda $6E0 ; 4
jsr reflection32 ; 6+37
;=============
; 47
;=============
; LORES 16x44 -> HIRES 105x144x3
lda $760 ; 4
jsr reflection33 ; 6+32
;=============
; 42
;=============
; LORES 16x46 -> HIRES 105x141x3
lda $7E0 ; 4
jsr reflection34 ; 6+32
;=============
; 42
;23========================
;==========================
;==========================
;=============
; LORES 23x40 -> HIRES 133x151x4
ldx #$aa ; 2
stx MASK ; 3
ldy #(140/7) ; 2
lda $667 ; 4
jsr reflection31 ; 6+37
;=============
; LORES 23x42 -> HIRES 133x147x4
lda $6E7 ; 4
jsr reflection32 ; 6+37
;=============
; LORES 23x44 -> HIRES 133x144x3
lda $767 ; 4
jsr reflection33 ; 6+32
;=============
; LORES 23x46 -> HIRES 133x141x3
lda $7E7 ; 4
jsr reflection34 ; 6+32
;13========================
;==========================
;==========================
;=============
; LORES 13x40 -> HIRES 98x149x3
ldx #$aa ; 2
stx MASK ; 3
ldy #(98/7) ; 2
lda $65d ; 4
jsr reflection41 ; 6+32
;============
; 44
;=============
; LORES 13x42 -> HIRES 98x145x3
lda $6dd ; 4
jsr reflection42 ; 6+32
;=============
; 42
;=============
; LORES 13x44 -> HIRES 98x142x3
lda $75d ; 4
jsr reflection43 ; 6+32
;=============
; 42
;=============
; LORES 13x46 -> HIRES 98x139x3
lda $7dd ; 4
jsr reflection44 ; 6+32
;=============
; 42
;26========================
;==========================
;==========================
;=============
; LORES 26x40 -> HIRES 147x149x3
ldx #$d5 ; 2
stx MASK ; 3
ldy #(147/7) ; 2
lda $66a ; 4
jsr reflection41 ; 6+32
;=============
; LORES 26x42 -> HIRES 147x145x3
lda $6ea ; 4
jsr reflection42 ; 6+32
;=============
; LORES 26x44 -> HIRES 147x142x3
lda $76a ; 4
jsr reflection43 ; 6+32
;=============
; LORES 26x46 -> HIRES 147x139x3
lda $7ea ; 4
jsr reflection44 ; 6+32
;10========================
;==========================
;==========================
;=============
; LORES 10x40 -> HIRES 91x145x3
ldx #$d5 ; 2
stx MASK ; 3
ldy #(91/7) ; 2
lda $65a ; 4
jsr reflection51 ; 6+32
;=============
; 44
;=============
; LORES 10x42 -> HIRES 91x142x4
lda $6da ; 4
jsr reflection52 ; 6+32
;=============
; 42
;=============
; LORES 10x44 -> HIRES 91x139x3
lda $75a ; 4
jsr reflection53 ; 6+32
;=============
; 42
;=============
; LORES 10x46 -> HIRES 91x136x3
lda $7da ; 4
jsr reflection54 ; 6+32
;=============
; 42
;29========================
;==========================
;==========================
;=============
; LORES 29x40 -> HIRES 154x145x3
ldx #$aa ; 2
stx MASK ; 3
ldy #(154/7)
lda $66d ; 4
jsr reflection51
;=============
; LORES 29x42 -> HIRES 154x142x4
lda $6ed ; 4
jsr reflection52
;=============
; LORES 29x44 -> HIRES 154x139x3
lda $76d ; 4
jsr reflection53
;=============
; LORES 29x46 -> HIRES 154x136x3
lda $7ed ; 4
jsr reflection54
rts ; 6
;==================================
;==================================
reflection11:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $51d0,Y ; 5
sta $55d0,Y ; 5
sta $59d0,Y ; 5
sta $5dd0,Y ; 5
rts ; 6
;===========
; 37
reflection12:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $5150,Y ; 5
sta $5550,Y ; 5
sta $5950,Y ; 5
sta $5d50,Y ; 5
rts ; 6
;===========
; 37
reflection13:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $41d0,Y ; 5
sta $45d0,Y ; 5
sta $49d0,Y ; 5
sta $4dd0,Y ; 5
rts ; 6
;===========
; 37
reflection14:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $4150,Y ; 5
sta $4550,Y ; 5
sta $4950,Y ; 5
sta $4d50,Y ; 5
rts ; 6
;===========
; 37
reflection21:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $5550,Y ; 5
sta $5950,Y ; 5
sta $5d50,Y ; 5
sta $51d0,Y ; 5
rts ; 6
;===========
; 37
reflection22:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $45d0,Y ; 5
sta $49d0,Y ; 5
sta $4dd0,Y ; 5
sta $5150,Y ; 5
rts ; 6
;===========
; 37
reflection23:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $4950,Y ; 5
sta $4d50,Y ; 5
sta $41d0,Y ; 5
rts ; 6
;===========
; 32
reflection24:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $5cd0,Y ; 5
sta $4150,Y ; 5
sta $4550,Y ; 5
rts ; 6
;===========
; 32
reflection31:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $4dd0,Y ; 5
sta $5150,Y ; 5
sta $5550,Y ; 5
sta $5950,Y ; 5
rts ; 6
;===========
; 37
reflection32:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $4d50,Y ; 5
sta $41d0,Y ; 5
sta $45d0,Y ; 5
sta $49d0,Y ; 5
rts ; 6
;===========
; 37
reflection33:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $4150,Y ; 5
sta $4550,Y ; 5
sta $4950,Y ; 5
rts ; 6
;===========
; 32
reflection34:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $54d0,Y ; 5
sta $58d0,Y ; 5
sta $5cd0,Y ; 5
rts ; 6
;===========
; 32
reflection41:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $45d0,Y ; 5
sta $49d0,Y ; 5
sta $4dd0,Y ; 5
rts ; 6
;===========
; 32
reflection42:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $4550,Y ; 5
sta $4950,Y ; 5
sta $4d50,Y ; 5
rts ; 6
;===========
; 32
reflection43:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $58d0,Y ; 5
sta $5cd0,Y ; 5
sta $4150,Y ; 5
rts ; 6
;===========
; 32
reflection44:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $4c90,Y ; 5
sta $50d0,Y ; 5
sta $54d0,Y ; 5
rts ; 6
;===========
; 32
reflection51:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $4550,Y ; 5
sta $4950,Y ; 5
sta $4d50,Y ; 5
rts ; 6
;===========
; 32
reflection52:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $58d0,Y ; 5
sta $5cd0,Y ; 5
sta $4150,Y ; 5
rts ; 6
;===========
; 32
reflection53:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $4cd0,Y ; 5
sta $50d0,Y ; 5
sta $54d0,Y ; 5
rts ; 6
;===========
; 32
reflection54:
; if 0 make 0, otherwise make FF
cmp #1 ; 2
lda #$00 ; 2
adc #$ff ; 2
eor #$ff ; 2
and MASK ; 3
sta $40d0,Y ; 5
sta $44d0,Y ; 5
sta $48d0,Y ; 5
rts ; 6
;===========
; 32