diff --git a/src/fx/fx.hgr.block.fizzle.a b/src/fx/fx.hgr.block.fizzle.a index 260739b36..fc74073b8 100644 --- a/src/fx/fx.hgr.block.fizzle.a +++ b/src/fx/fx.hgr.block.fizzle.a @@ -1,17 +1,17 @@ ;license:MIT -;(c) 2018 by 4am +;(c) 2018-2020 by 4am/qkumba ; !cpu 6502 !to "build/FX/BLOCK.FIZZLE",plain *=$6000 -coord = $FE + !source "src/fx/fx.hgr.block.fizzle.common.a" - lda #<@coords - sta coord - lda #>@coords - sta coord+1 -@loop + +BUILD_BLOCK_FIZZLE_DATA + + +LDADDR Coordinates + +ST16 coord +@loop2 ldy #0 lda (coord),y bmi @exit @@ -30,12 +30,9 @@ coord = $FE + inc coord bne + inc coord+1 -+ bne @loop ++ bne @loop2 @exit rts -@coords - !source "src/fx/fx.hgr.block.fizzle.data.a" - !source "src/wait.a" !source "src/fx/fx.hgr.common.a" +HGR_BLOCK_COPY_ROUTINES diff --git a/src/fx/fx.hgr.block.fizzle.common.a b/src/fx/fx.hgr.block.fizzle.common.a new file mode 100644 index 000000000..69d626dc8 --- /dev/null +++ b/src/fx/fx.hgr.block.fizzle.common.a @@ -0,0 +1,91 @@ +;license:MIT +;(c) 2020 by qkumba +; + +coord = $FE +Coordinates = $7000 ; about $700 bytes, can be anywhere + + !source "src/fx/macros.a" + +!macro BUILD_BLOCK_FIZZLE_DATA { + lda #Coordinates + sta coord+1 + + ;init RNG + + ldx #1 + stx @rnd1+1 + dex + stx @rnd2+1 + + ;iterate + +@loop + ldy @rnd1+1 + ldx @rnd2+1 + lsr @rnd2+1 + ror @rnd1+1 + bcc + + + ;feedback polynomial forms #$204 for period of 1023 + + lda @rnd1+1 + eor #4 + sta @rnd1+1 + lda @rnd2+1 + eor #2 + sta @rnd2+1 + ++ tya + eor #$ff + ldy #0 +- cpx #0 + bne + + cmp #40 + bcc ++ ++ sbc #40 + pha + txa + sbc #0 + tax + pla + iny + bne - + +++ cpy #24 + bcs @rnd2 + tax + tya + jsr @stainc + txa + jsr @stainc + +@rnd2 lda #0 + bne @loop +@rnd1 lda #0 + cmp #1 + bne @loop + + ;include the missing point + + lda #6 + jsr @stainc + lda #15 + jsr @stainc + + lda #$ff + jsr @stainc + bne ++ ; always branches + +@stainc + ldy #0 + sta (coord), y + inc coord + bne + + inc coord+1 ++ rts + +++ +} diff --git a/src/fx/fx.hgr.block.fizzle.data.a b/src/fx/fx.hgr.block.fizzle.data.a deleted file mode 100644 index fd82fe74e..000000000 --- a/src/fx/fx.hgr.block.fizzle.data.a +++ /dev/null @@ -1,961 +0,0 @@ - !byte 0,0 - !byte 7,21 - !byte 9,21 - !byte 9,29 - !byte 13,39 - !byte 22,19 - !byte 18,28 - !byte 8,14 - !byte 3,39 - !byte 17,19 - !byte 18,30 - !byte 8,15 - !byte 19,39 - !byte 6,29 - !byte 18,14 - !byte 8,39 - !byte 13,30 - !byte 14,3 - !byte 22,33 - !byte 12,24 - !byte 5,12 - !byte 2,6 - !byte 0,35 - !byte 16,31 - !byte 23,15 - !byte 6,24 - !byte 2,12 - !byte 0,38 - !byte 14,24 - !byte 6,12 - !byte 2,38 - !byte 15,25 - !byte 11,22 - !byte 18,21 - !byte 11,37 - !byte 21,18 - !byte 9,26 - !byte 19,29 - !byte 12,23 - !byte 21,11 - !byte 10,28 - !byte 4,14 - !byte 1,39 - !byte 16,19 - !byte 23,9 - !byte 13,2 - !byte 6,1 - !byte 18,32 - !byte 3,24 - !byte 0,22 - !byte 15,5 - !byte 23,2 - !byte 11,1 - !byte 21,0 - !byte 10,0 - !byte 4,32 - !byte 23,21 - !byte 13,21 - !byte 20,26 - !byte 9,13 - !byte 20,6 - !byte 9,35 - !byte 20,17 - !byte 12,4 - !byte 5,34 - !byte 2,17 - !byte 16,8 - !byte 7,36 - !byte 3,18 - !byte 16,20 - !byte 7,10 - !byte 3,5 - !byte 17,2 - !byte 8,1 - !byte 19,32 - !byte 9,16 - !byte 7,23 - !byte 10,29 - !byte 20,14 - !byte 9,39 - !byte 20,19 - !byte 13,34 - !byte 6,17 - !byte 18,8 - !byte 8,36 - !byte 7,30 - !byte 17,23 - !byte 22,30 - !byte 10,15 - !byte 20,39 - !byte 18,27 - !byte 13,19 - !byte 12,26 - !byte 5,13 - !byte 18,6 - !byte 8,35 - !byte 5,30 - !byte 23,27 - !byte 12,13 - !byte 21,38 - !byte 10,19 - !byte 20,9 - !byte 12,18 - !byte 5,9 - !byte 18,4 - !byte 8,34 - !byte 3,30 - !byte 16,23 - !byte 23,11 - !byte 14,1 - !byte 22,32 - !byte 4,24 - !byte 1,12 - !byte 0,6 - !byte 15,17 - !byte 11,20 - !byte 2,21 - !byte 16,10 - !byte 7,37 - !byte 19,18 - !byte 20,20 - !byte 9,10 - !byte 4,5 - !byte 17,34 - !byte 8,17 - !byte 19,8 - !byte 9,4 - !byte 4,2 - !byte 1,33 - !byte 16,16 - !byte 7,8 - !byte 3,4 - !byte 1,2 - !byte 0,1 - !byte 15,32 - !byte 7,16 - !byte 1,20 - !byte 14,39 - !byte 13,38 - !byte 6,19 - !byte 18,9 - !byte 8,30 - !byte 3,15 - !byte 17,7 - !byte 2,26 - !byte 0,13 - !byte 15,38 - !byte 7,19 - !byte 8,29 - !byte 19,14 - !byte 9,7 - !byte 20,3 - !byte 13,8 - !byte 6,4 - !byte 2,34 - !byte 15,24 - !byte 3,22 - !byte 16,21 - !byte 23,10 - !byte 11,5 - !byte 21,2 - !byte 10,1 - !byte 20,32 - !byte 1,28 - !byte 6,25 - !byte 18,12 - !byte 8,38 - !byte 11,30 - !byte 18,23 - !byte 10,26 - !byte 4,13 - !byte 17,38 - !byte 8,19 - !byte 19,9 - !byte 12,2 - !byte 5,33 - !byte 18,16 - !byte 8,8 - !byte 3,36 - !byte 1,18 - !byte 19,31 - !byte 22,24 - !byte 10,12 - !byte 4,38 - !byte 23,28 - !byte 5,23 - !byte 22,22 - !byte 10,11 - !byte 20,37 - !byte 21,28 - !byte 17,27 - !byte 12,15 - !byte 21,39 - !byte 14,18 - !byte 6,9 - !byte 18,36 - !byte 3,25 - !byte 8,22 - !byte 3,11 - !byte 17,5 - !byte 11,33 - !byte 21,16 - !byte 1,26 - !byte 21,31 - !byte 14,27 - !byte 22,13 - !byte 21,25 - !byte 5,27 - !byte 11,27 - !byte 12,11 - !byte 21,37 - !byte 12,9 - !byte 21,36 - !byte 10,18 - !byte 4,9 - !byte 17,36 - !byte 8,18 - !byte 3,9 - !byte 17,4 - !byte 8,2 - !byte 3,33 - !byte 17,16 - !byte 15,30 - !byte 19,23 - !byte 14,5 - !byte 22,34 - !byte 20,24 - !byte 9,12 - !byte 4,6 - !byte 1,35 - !byte 16,17 - !byte 23,8 - !byte 11,4 - !byte 5,2 - !byte 2,1 - !byte 16,32 - !byte 23,23 - !byte 22,26 - !byte 10,13 - !byte 20,38 - !byte 13,7 - !byte 22,3 - !byte 13,24 - !byte 0,27 - !byte 15,13 - !byte 23,6 - !byte 11,3 - !byte 21,1 - !byte 12,32 - !byte 0,28 - !byte 15,3 - !byte 23,1 - !byte 13,0 - !byte 6,0 - !byte 2,32 - !byte 15,21 - !byte 11,21 - !byte 10,21 - !byte 20,10 - !byte 9,37 - !byte 20,18 - !byte 9,9 - !byte 20,4 - !byte 9,34 - !byte 4,17 - !byte 17,8 - !byte 8,4 - !byte 3,34 - !byte 1,17 - !byte 7,31 - !byte 14,29 - !byte 22,14 - !byte 10,39 - !byte 18,29 - !byte 11,39 - !byte 21,19 - !byte 13,26 - !byte 8,27 - !byte 19,13 - !byte 12,3 - !byte 21,33 - !byte 12,8 - !byte 5,36 - !byte 2,18 - !byte 0,9 - !byte 15,36 - !byte 7,18 - !byte 17,20 - !byte 19,30 - !byte 20,23 - !byte 14,17 - !byte 22,8 - !byte 10,36 - !byte 1,25 - !byte 11,31 - !byte 14,9 - !byte 22,36 - !byte 4,25 - !byte 17,12 - !byte 8,6 - !byte 3,35 - !byte 17,17 - !byte 16,30 - !byte 7,15 - !byte 19,7 - !byte 14,16 - !byte 6,8 - !byte 2,36 - !byte 7,22 - !byte 17,21 - !byte 20,30 - !byte 9,15 - !byte 20,7 - !byte 14,4 - !byte 6,34 - !byte 16,24 - !byte 7,12 - !byte 3,6 - !byte 1,3 - !byte 16,1 - !byte 23,32 - !byte 11,16 - !byte 2,20 - !byte 0,10 - !byte 15,18 - !byte 19,20 - !byte 4,21 - !byte 17,10 - !byte 8,5 - !byte 19,34 - !byte 9,17 - !byte 1,29 - !byte 13,31 - !byte 14,35 - !byte 12,12 - !byte 5,38 - !byte 2,19 - !byte 16,9 - !byte 23,36 - !byte 11,18 - !byte 18,20 - !byte 8,10 - !byte 3,37 - !byte 17,18 - !byte 17,30 - !byte 14,19 - !byte 22,9 - !byte 5,25 - !byte 3,27 - !byte 11,11 - !byte 21,5 - !byte 12,33 - !byte 4,28 - !byte 1,14 - !byte 0,7 - !byte 15,35 - !byte 23,17 - !byte 13,20 - !byte 16,26 - !byte 7,13 - !byte 19,6 - !byte 9,3 - !byte 20,1 - !byte 12,16 - !byte 5,8 - !byte 2,4 - !byte 0,34 - !byte 23,31 - !byte 14,13 - !byte 22,38 - !byte 20,25 - !byte 12,6 - !byte 5,35 - !byte 18,17 - !byte 11,36 - !byte 5,18 - !byte 7,26 - !byte 17,22 - !byte 21,30 - !byte 22,29 - !byte 12,39 - !byte 13,14 - !byte 6,7 - !byte 18,35 - !byte 6,22 - !byte 2,11 - !byte 16,37 - !byte 4,31 - !byte 17,15 - !byte 6,26 - !byte 2,13 - !byte 16,38 - !byte 5,31 - !byte 14,11 - !byte 22,37 - !byte 12,25 - !byte 21,12 - !byte 10,6 - !byte 4,35 - !byte 11,28 - !byte 2,23 - !byte 16,11 - !byte 23,37 - !byte 22,20 - !byte 10,10 - !byte 4,37 - !byte 19,28 - !byte 4,23 - !byte 17,11 - !byte 13,17 - !byte 4,26 - !byte 1,13 - !byte 16,6 - !byte 7,35 - !byte 19,17 - !byte 12,20 - !byte 5,10 - !byte 2,5 - !byte 16,34 - !byte 1,31 - !byte 14,31 - !byte 22,15 - !byte 6,27 - !byte 18,13 - !byte 12,30 - !byte 5,15 - !byte 18,7 - !byte 6,30 - !byte 2,15 - !byte 16,39 - !byte 6,31 - !byte 18,15 - !byte 14,30 - !byte 6,15 - !byte 18,39 - !byte 14,22 - !byte 6,11 - !byte 18,37 - !byte 11,25 - !byte 10,22 - !byte 4,11 - !byte 17,37 - !byte 11,9 - !byte 21,4 - !byte 10,2 - !byte 4,33 - !byte 3,28 - !byte 0,23 - !byte 15,11 - !byte 23,5 - !byte 13,1 - !byte 22,0 - !byte 10,32 - !byte 1,24 - !byte 14,12 - !byte 6,38 - !byte 16,25 - !byte 23,12 - !byte 11,6 - !byte 5,3 - !byte 18,1 - !byte 0,30 - !byte 15,7 - !byte 23,3 - !byte 14,0 - !byte 6,32 - !byte 0,24 - !byte 15,1 - !byte 23,0 - !byte 11,0 - !byte 5,0 - !byte 2,0 - !byte 0,32 - !byte 14,38 - !byte 18,25 - !byte 11,38 - !byte 5,19 - !byte 11,26 - !byte 18,22 - !byte 8,11 - !byte 19,37 - !byte 4,29 - !byte 17,14 - !byte 8,7 - !byte 19,35 - !byte 2,29 - !byte 16,14 - !byte 7,39 - !byte 19,19 - !byte 13,10 - !byte 6,5 - !byte 18,34 - !byte 19,24 - !byte 4,22 - !byte 1,11 - !byte 16,5 - !byte 23,34 - !byte 11,17 - !byte 10,20 - !byte 4,10 - !byte 1,37 - !byte 16,18 - !byte 7,9 - !byte 19,4 - !byte 9,2 - !byte 4,1 - !byte 17,32 - !byte 8,16 - !byte 3,8 - !byte 1,4 - !byte 0,2 - !byte 15,16 - !byte 3,20 - !byte 0,21 - !byte 15,10 - !byte 7,5 - !byte 19,2 - !byte 9,1 - !byte 20,0 - !byte 9,32 - !byte 4,16 - !byte 1,8 - !byte 0,4 - !byte 7,20 - !byte 1,21 - !byte 9,31 - !byte 22,27 - !byte 12,14 - !byte 5,39 - !byte 18,19 - !byte 13,18 - !byte 8,26 - !byte 3,13 - !byte 17,6 - !byte 8,3 - !byte 19,33 - !byte 0,29 - !byte 15,14 - !byte 7,7 - !byte 19,3 - !byte 13,32 - !byte 6,16 - !byte 2,8 - !byte 0,36 - !byte 14,25 - !byte 22,12 - !byte 10,38 - !byte 17,25 - !byte 11,15 - !byte 21,7 - !byte 6,28 - !byte 2,14 - !byte 0,39 - !byte 18,31 - !byte 14,26 - !byte 6,13 - !byte 18,38 - !byte 19,25 - !byte 12,22 - !byte 5,11 - !byte 18,5 - !byte 4,30 - !byte 1,15 - !byte 16,7 - !byte 23,35 - !byte 14,20 - !byte 6,10 - !byte 2,37 - !byte 7,25 - !byte 9,22 - !byte 11,29 - !byte 10,23 - !byte 20,11 - !byte 13,9 - !byte 22,4 - !byte 10,34 - !byte 17,24 - !byte 23,30 - !byte 21,23 - !byte 10,27 - !byte 20,13 - !byte 12,19 - !byte 21,9 - !byte 12,34 - !byte 8,28 - !byte 3,14 - !byte 1,7 - !byte 16,3 - !byte 23,33 - !byte 6,20 - !byte 2,10 - !byte 0,37 - !byte 17,31 - !byte 14,15 - !byte 22,39 - !byte 14,6 - !byte 6,35 - !byte 11,12 - !byte 5,6 - !byte 2,3 - !byte 16,33 - !byte 0,31 - !byte 15,15 - !byte 23,7 - !byte 14,32 - !byte 2,24 - !byte 0,12 - !byte 23,20 - !byte 5,21 - !byte 19,26 - !byte 20,22 - !byte 9,11 - !byte 20,5 - !byte 12,17 - !byte 21,8 - !byte 10,4 - !byte 4,34 - !byte 7,28 - !byte 1,23 - !byte 10,31 - !byte 20,15 - !byte 14,34 - !byte 18,24 - !byte 8,12 - !byte 3,38 - !byte 1,19 - !byte 8,31 - !byte 19,15 - !byte 14,8 - !byte 6,36 - !byte 0,25 - !byte 15,12 - !byte 7,6 - !byte 3,3 - !byte 17,1 - !byte 11,32 - !byte 5,16 - !byte 15,22 - !byte 19,21 - !byte 12,21 - !byte 21,10 - !byte 10,5 - !byte 20,34 - !byte 9,28 - !byte 23,29 - !byte 13,23 - !byte 13,13 - !byte 22,6 - !byte 10,35 - !byte 16,29 - !byte 23,14 - !byte 11,7 - !byte 21,3 - !byte 2,28 - !byte 0,14 - !byte 15,19 - !byte 6,21 - !byte 18,10 - !byte 8,37 - !byte 9,30 - !byte 14,23 - !byte 22,11 - !byte 13,25 - !byte 4,27 - !byte 17,13 - !byte 11,35 - !byte 21,17 - !byte 5,26 - !byte 7,27 - !byte 12,29 - !byte 21,14 - !byte 10,7 - !byte 20,35 - !byte 13,28 - !byte 16,27 - !byte 23,13 - !byte 13,3 - !byte 22,1 - !byte 5,24 - !byte 23,22 - !byte 21,21 - !byte 21,26 - !byte 9,27 - !byte 21,29 - !byte 21,27 - !byte 13,27 - !byte 12,27 - !byte 21,13 - !byte 12,35 - !byte 12,28 - !byte 5,14 - !byte 2,7 - !byte 16,35 - !byte 2,31 - !byte 16,15 - !byte 23,39 - !byte 14,10 - !byte 6,37 - !byte 8,25 - !byte 19,12 - !byte 9,6 - !byte 4,3 - !byte 17,33 - !byte 11,8 - !byte 5,4 - !byte 2,2 - !byte 0,33 - !byte 15,31 - !byte 14,37 - !byte 10,25 - !byte 20,12 - !byte 9,38 - !byte 4,19 - !byte 17,9 - !byte 11,34 - !byte 5,17 - !byte 3,26 - !byte 16,22 - !byte 7,11 - !byte 19,5 - !byte 12,1 - !byte 21,32 - !byte 10,16 - !byte 4,8 - !byte 1,36 - !byte 0,18 - !byte 15,4 - !byte 7,2 - !byte 3,1 - !byte 17,0 - !byte 8,0 - !byte 3,32 - !byte 1,16 - !byte 22,25 - !byte 12,38 - !byte 11,14 - !byte 5,7 - !byte 18,3 - !byte 2,30 - !byte 0,15 - !byte 15,39 - !byte 23,19 - !byte 18,26 - !byte 8,13 - !byte 19,38 - !byte 9,19 - !byte 5,29 - !byte 19,27 - !byte 13,11 - !byte 22,5 - !byte 21,24 - !byte 1,27 - !byte 12,31 - !byte 21,15 - !byte 14,28 - !byte 6,14 - !byte 2,39 - !byte 23,25 - !byte 13,22 - !byte 11,13 - !byte 21,6 - !byte 10,3 - !byte 20,33 - !byte 5,28 - !byte 15,27 - !byte 22,21 - !byte 12,37 - !byte 20,28 - !byte 9,14 - !byte 4,7 - !byte 17,35 - !byte 13,4 - !byte 6,2 - !byte 2,33 - !byte 7,24 - !byte 1,22 - !byte 20,31 - !byte 14,36 - !byte 2,25 - !byte 16,12 - !byte 7,38 - !byte 3,19 - !byte 11,10 - !byte 5,5 - !byte 18,2 - !byte 8,33 - !byte 1,30 - !byte 22,31 - !byte 14,14 - !byte 6,39 - !byte 13,6 - !byte 6,3 - !byte 18,33 - !byte 11,24 - !byte 2,22 - !byte 0,11 - !byte 15,37 - !byte 23,18 - !byte 21,20 - !byte 17,26 - !byte 14,7 - !byte 22,35 - !byte 13,12 - !byte 6,6 - !byte 2,35 - !byte 23,24 - !byte 5,22 - !byte 23,26 - !byte 21,22 - !byte 20,29 - !byte 12,7 - !byte 21,35 - !byte 13,36 - !byte 6,18 - !byte 2,9 - !byte 16,36 - !byte 3,31 - !byte 14,33 - !byte 10,24 - !byte 4,12 - !byte 1,38 - !byte 0,19 - !byte 15,9 - !byte 23,4 - !byte 11,2 - !byte 5,1 - !byte 18,0 - !byte 8,32 - !byte 15,23 - !byte 14,21 - !byte 22,10 - !byte 10,37 - !byte 9,25 - !byte 17,29 - !byte 13,15 - !byte 22,7 - !byte 2,27 - !byte 16,13 - !byte 23,38 - !byte 11,19 - !byte 12,10 - !byte 5,37 - !byte 18,18 - !byte 8,9 - !byte 19,36 - !byte 9,18 - !byte 3,29 - !byte 8,23 - !byte 19,11 - !byte 13,33 - !byte 22,16 - !byte 10,8 - !byte 4,36 - !byte 15,28 - !byte 3,23 - !byte 13,5 - !byte 22,2 - !byte 10,33 - !byte 9,24 - !byte 15,29 - !byte 11,23 - !byte 13,37 - !byte 22,18 - !byte 10,9 - !byte 20,36 - !byte 17,28 - !byte 22,23 - !byte 22,28 - !byte 10,14 - !byte 4,39 - !byte 6,23 - !byte 18,11 - !byte 10,30 - !byte 4,15 - !byte 17,39 - !byte 14,2 - !byte 6,33 - !byte 8,24 - !byte 3,12 - !byte 1,6 - !byte 0,3 - !byte 15,33 - !byte 23,16 - !byte 5,20 - !byte 15,26 - !byte 19,22 - !byte 20,21 - !byte 12,5 - !byte 21,34 - !byte 10,17 - !byte 20,8 - !byte 9,36 - !byte 4,18 - !byte 1,9 - !byte 16,4 - !byte 7,34 - !byte 3,17 - !byte 8,20 - !byte 3,10 - !byte 1,5 - !byte 16,2 - !byte 7,33 - !byte 19,16 - !byte 4,20 - !byte 1,10 - !byte 0,5 - !byte 15,34 - !byte 7,17 - !byte 9,20 - !byte 7,29 - !byte 9,23 - !byte 13,29 - !byte 20,27 - !byte 13,35 - !byte 22,17 - !byte 12,36 - !byte 16,28 - !byte 7,14 - !byte 3,7 - !byte 17,3 - !byte 13,16 - !byte 0,26 - !byte 15,6 - !byte 7,3 - !byte 19,1 - !byte 12,0 - !byte 5,32 - !byte 2,16 - !byte 0,8 - !byte 15,20 - !byte 3,21 - !byte 8,21 - !byte 19,10 - !byte 9,5 - !byte 20,2 - !byte 9,33 - !byte 20,16 - !byte 9,8 - !byte 4,4 - !byte 1,34 - !byte 0,17 - !byte 15,8 - !byte 7,4 - !byte 3,2 - !byte 1,1 - !byte 16,0 - !byte 7,32 - !byte 3,16 - !byte 0,20 - !byte 15,2 - !byte 7,1 - !byte 19,0 - !byte 9,0 - !byte 4,0 - !byte 1,32 - !byte 0,16 - !byte 15,0 - !byte 7,0 - !byte 3,0 - !byte 1,0 - !byte 255 diff --git a/src/fx/fx.hgr.block.fizzle.white.a b/src/fx/fx.hgr.block.fizzle.white.a index 9343efa28..cf29afd75 100644 --- a/src/fx/fx.hgr.block.fizzle.white.a +++ b/src/fx/fx.hgr.block.fizzle.white.a @@ -5,12 +5,12 @@ !to "build/FX/BLOCK.MOSAIC",plain *=$6000 -coord = $FE + !source "src/fx/fx.hgr.block.fizzle.common.a" - lda #<@coords - sta coord - lda #>@coords - sta coord+1 + +BUILD_BLOCK_FIZZLE_DATA + + +LDADDR Coordinates + +ST16 coord @whiteloop ldy #0 lda (coord),y @@ -32,10 +32,8 @@ coord = $FE inc coord+1 + bne @whiteloop @endwhite - lda #<@coords - sta coord - lda #>@coords - sta coord+1 + +LDADDR Coordinates + +ST16 coord @copyloop ldy #0 lda (coord),y @@ -58,9 +56,6 @@ coord = $FE + bne @copyloop @exit rts -@coords - !source "src/fx/fx.hgr.block.fizzle.data.a" - !source "src/wait.a" !source "src/fx/fx.hgr.common.a" +HGR_WHITE_ROUTINES diff --git a/src/fx/fx.hgr.color.fizzle.a b/src/fx/fx.hgr.color.fizzle.a index 2d5c7c9ac..2e68eb841 100644 --- a/src/fx/fx.hgr.color.fizzle.a +++ b/src/fx/fx.hgr.color.fizzle.a @@ -7,19 +7,18 @@ phase = $FC ; byte, $80 or $00 color = $FD ; byte -coord = $FE ; word - !source "src/fx/macros.a" + !source "src/fx/fx.hgr.block.fizzle.common.a" + + +BUILD_BLOCK_FIZZLE_DATA lda #$80 sta phase @outerloop lda #0 sta color - lda #Coordinates - sta coord+1 + +LDADDR Coordinates + +ST16 coord @loop dec color bpl + @@ -75,9 +74,6 @@ colors !byte %11010101 !byte %11111111 -Coordinates - !source "src/fx/fx.hgr.block.fizzle.data.a" - !source "src/wait.a" !source "src/fx/fx.hgr.common.a" +HGR_BLOCK_COPY_ROUTINES diff --git a/src/fx/fx.hgr.tri.fizzle.a b/src/fx/fx.hgr.tri.fizzle.a index 61e9b1bac..f83121100 100644 --- a/src/fx/fx.hgr.tri.fizzle.a +++ b/src/fx/fx.hgr.tri.fizzle.a @@ -7,17 +7,18 @@ phase = $FC ; byte, $80 or $00 maskindex = $FD ; byte -coord = $FE ; word + + !source "src/fx/fx.hgr.block.fizzle.common.a" + + +BUILD_BLOCK_FIZZLE_DATA lda #$80 sta phase lda #0 sta maskindex @outerloop - lda #Coordinates - sta coord+1 + +LDADDR Coordinates + +ST16 coord @loop dec maskindex bpl + @@ -106,10 +107,6 @@ mask4 !byte %11111110 !byte %11111111 - -Coordinates - !source "src/fx/fx.hgr.block.fizzle.data.a" - !source "src/wait.a" !source "src/fx/fx.hgr.common.a" +HGR_COPY_MASK_ROUTINES