diff --git a/xmas_2018/Makefile b/xmas_2018/Makefile index b4c2740b..ccda0bb6 100644 --- a/xmas_2018/Makefile +++ b/xmas_2018/Makefile @@ -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 diff --git a/xmas_2018/ball.s b/xmas_2018/ball.s index 9d601a19..6e6c108a 100644 --- a/xmas_2018/ball.s +++ b/xmas_2018/ball.s @@ -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" diff --git a/xmas_2018/reflection.s b/xmas_2018/reflection.s new file mode 100644 index 00000000..55f72fd9 --- /dev/null +++ b/xmas_2018/reflection.s @@ -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