mirror of
https://github.com/a2-4am/4cade.git
synced 2024-06-25 21:29:43 +00:00
new dither transition effects
This commit is contained in:
parent
07ac765e25
commit
0cf8c9c7ee
21
res/FX.CONF
21
res/FX.CONF
|
@ -28,83 +28,104 @@ MANDELBROT.IN
|
||||||
RADIAL
|
RADIAL
|
||||||
STAGGER.LR
|
STAGGER.LR
|
||||||
SOFT.UD
|
SOFT.UD
|
||||||
|
DITHER.IRIS
|
||||||
HEART.IN
|
HEART.IN
|
||||||
CRYSTAL
|
CRYSTAL
|
||||||
STAR.RIPPLE
|
STAR.RIPPLE
|
||||||
BIT2.FIZZLE
|
BIT2.FIZZLE
|
||||||
|
DITHER.HEART
|
||||||
MEETINTHEMIDDLE
|
MEETINTHEMIDDLE
|
||||||
BOXES48
|
BOXES48
|
||||||
APPLE.IN
|
APPLE.IN
|
||||||
FLOWER.RAD.RIP
|
FLOWER.RAD.RIP
|
||||||
|
DITHER.CORNER4
|
||||||
SOFT.IRIS
|
SOFT.IRIS
|
||||||
W.RIPPLE.BLOOM
|
W.RIPPLE.BLOOM
|
||||||
DIAGONAL
|
DIAGONAL
|
||||||
PINWHEELS
|
PINWHEELS
|
||||||
|
DITHER.SLOWSTAR
|
||||||
STAGGERWHITE.UD
|
STAGGERWHITE.UD
|
||||||
BOXES48.SYNCC
|
BOXES48.SYNCC
|
||||||
CORNER4.RIP
|
CORNER4.RIP
|
||||||
BOLT
|
BOLT
|
||||||
|
DITHER.SNOWFLAK
|
||||||
RADIAL2
|
RADIAL2
|
||||||
STAR
|
STAR
|
||||||
FLOWER.IN
|
FLOWER.IN
|
||||||
R.BY.PIXEL
|
R.BY.PIXEL
|
||||||
|
DITHER.BUTTERFL
|
||||||
WAVY.IRIS
|
WAVY.IRIS
|
||||||
BIT.FIZZLE
|
BIT.FIZZLE
|
||||||
STAR.IN
|
STAR.IN
|
||||||
BOXES48.PAGEC
|
BOXES48.PAGEC
|
||||||
|
DITHER.MAPLE
|
||||||
DIAG.STRIPES
|
DIAG.STRIPES
|
||||||
APPLE
|
APPLE
|
||||||
MANDELBROT.RIP
|
MANDELBROT.RIP
|
||||||
SOFT.L
|
SOFT.L
|
||||||
|
DITHER.SOFTIRIS
|
||||||
HEART.RIPPLE
|
HEART.RIPPLE
|
||||||
FLOWER.RAD
|
FLOWER.RAD
|
||||||
SLOW.STAR.IN
|
SLOW.STAR.IN
|
||||||
IRIS.IN
|
IRIS.IN
|
||||||
|
DITHER.STAR
|
||||||
BUTTERFLYRIPPLE
|
BUTTERFLYRIPPLE
|
||||||
BOXES48.SPIRALC
|
BOXES48.SPIRALC
|
||||||
W.IRIS.BLOOM.IN
|
W.IRIS.BLOOM.IN
|
||||||
CENTER.BY.PIXEL
|
CENTER.BY.PIXEL
|
||||||
|
DITHER.WAVYIRIS
|
||||||
RADBUBBLES
|
RADBUBBLES
|
||||||
SNOWFLAKE.IN
|
SNOWFLAKE.IN
|
||||||
FLOWER
|
FLOWER
|
||||||
APPLE.RIPPLE
|
APPLE.RIPPLE
|
||||||
|
DITHER.DISSOLVE
|
||||||
DIAGONAL2
|
DIAGONAL2
|
||||||
STAR.BLOOM
|
STAR.BLOOM
|
||||||
DIAMOND.STRIPES
|
DIAMOND.STRIPES
|
||||||
BOXES48.SYNC
|
BOXES48.SYNC
|
||||||
|
DITHER.RADIAL
|
||||||
|
THIN.DISSOLVE
|
||||||
PALETTE.FIZZLE
|
PALETTE.FIZZLE
|
||||||
BUTTERFLY
|
BUTTERFLY
|
||||||
BUBBLES
|
BUBBLES
|
||||||
|
DITHER.RADIAL2
|
||||||
FLOWER.RIPPLE
|
FLOWER.RIPPLE
|
||||||
SPLIT.UD.INTRO
|
SPLIT.UD.INTRO
|
||||||
WAVY.IRIS.IN
|
WAVY.IRIS.IN
|
||||||
R.BY.2
|
R.BY.2
|
||||||
|
DITHER.RADIAL4
|
||||||
HALF.FIZZLE
|
HALF.FIZZLE
|
||||||
BOXES48.LDIAGON
|
BOXES48.LDIAGON
|
||||||
SNOWFLAKE.RIP
|
SNOWFLAKE.RIP
|
||||||
RADIAL3
|
RADIAL3
|
||||||
HEART
|
HEART
|
||||||
BOLT.IN
|
BOLT.IN
|
||||||
|
DITHER.RADIAL5
|
||||||
FLOWER.RAD.IN
|
FLOWER.RAD.IN
|
||||||
DIAGONAL3
|
DIAGONAL3
|
||||||
MANDELBROT
|
MANDELBROT
|
||||||
BOXES48.SPIRAL
|
BOXES48.SPIRAL
|
||||||
|
DITHER.APPLE
|
||||||
WAVY.RIPPLE
|
WAVY.RIPPLE
|
||||||
CORNER4.OUT
|
CORNER4.OUT
|
||||||
LATTICE
|
LATTICE
|
||||||
BAR.DISSOLVE
|
BAR.DISSOLVE
|
||||||
|
DITHER.BOLT
|
||||||
R.BY.PALETTE
|
R.BY.PALETTE
|
||||||
FOURSPIRAL
|
FOURSPIRAL
|
||||||
SOFT.R
|
SOFT.R
|
||||||
MAPLE.IN
|
MAPLE.IN
|
||||||
|
DITHER.FLOWER
|
||||||
BOXES48.SNAKEC
|
BOXES48.SNAKEC
|
||||||
RADIAL4
|
RADIAL4
|
||||||
IRIS
|
IRIS
|
||||||
CASCADE
|
CASCADE
|
||||||
|
DITHER.FLOWERRD
|
||||||
SNOWFLAKE
|
SNOWFLAKE
|
||||||
VERTICAL.BLINDS
|
VERTICAL.BLINDS
|
||||||
BUTTERFLY.IN
|
BUTTERFLY.IN
|
||||||
LR.BY.PIXEL
|
LR.BY.PIXEL
|
||||||
|
DITHER.MANDEL
|
||||||
CHECKERB.FIZZLE
|
CHECKERB.FIZZLE
|
||||||
BOXES48.SIDES
|
BOXES48.SIDES
|
||||||
CIRCLE.STRIPES
|
CIRCLE.STRIPES
|
||||||
|
|
16
src/fx/fx.hgr.dither.apple.a
Normal file
16
src/fx/fx.hgr.dither.apple.a
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2019-2022 by 4am/qkumba
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.APPLE",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT_DITHER Coordinates3Bit, EndCoordinates3Bit
|
||||||
|
|
||||||
|
CoordinatesFile
|
||||||
|
!byte 13
|
||||||
|
!text "FX/APPLE.DATA"
|
19
src/fx/fx.hgr.dither.bolt.a
Normal file
19
src/fx/fx.hgr.dither.bolt.a
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2019-2022 by 4am/qkumba
|
||||||
|
;
|
||||||
|
; https://thenounproject.com/ArtZ91/collection/pure-lines/?i=550425
|
||||||
|
; Lightning Bolt by Arthur Shlain from the Noun Project
|
||||||
|
; CC-BY
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.BOLT",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT_DITHER Coordinates3Bit, EndCoordinates3Bit
|
||||||
|
|
||||||
|
CoordinatesFile
|
||||||
|
!byte 12
|
||||||
|
!text "FX/BOLT.DATA"
|
16
src/fx/fx.hgr.dither.butterfly.a
Normal file
16
src/fx/fx.hgr.dither.butterfly.a
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2019-2022 by 4am/qkumba
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.BUTTERFL",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
!source "src/fx/fx.hgr.precomputed.2bit.a"
|
||||||
|
|
||||||
|
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_2BIT_DITHER Coordinates2Bit, EndCoordinates2Bit
|
||||||
|
|
||||||
|
CoordinatesFile
|
||||||
|
!byte 17
|
||||||
|
!text "FX/BUTTERFLY.DATA"
|
16
src/fx/fx.hgr.dither.corner4.a
Normal file
16
src/fx/fx.hgr.dither.corner4.a
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2019-2022 by 4am/qkumba
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.CORNER4",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
!source "src/fx/fx.hgr.precomputed.1bit.a"
|
||||||
|
|
||||||
|
+FX_INITONCE_1BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_1BIT_DITHER Coordinates1Bit, EndCoordinates1Bit
|
||||||
|
|
||||||
|
CoordinatesFile
|
||||||
|
!byte 15
|
||||||
|
!text "FX/CORNER4.DATA"
|
68
src/fx/fx.hgr.dither.dissolve.a
Normal file
68
src/fx/fx.hgr.dither.dissolve.a
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2022 by 4am
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.DISSOLVE",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
row1 = $fe
|
||||||
|
row2 = $ff
|
||||||
|
src = $3c
|
||||||
|
dst = $26
|
||||||
|
|
||||||
|
lda #$00
|
||||||
|
sta row1
|
||||||
|
lda #$BF
|
||||||
|
sta row2
|
||||||
|
@loop lda row1
|
||||||
|
jsr HGRCalc
|
||||||
|
ldy #$27
|
||||||
|
- tya
|
||||||
|
and #$03
|
||||||
|
tax
|
||||||
|
lda (src),y
|
||||||
|
eor (dst),y ; merge source and destination bits
|
||||||
|
@amask and mask1,x ; isolate the bits to replace, zero the rest
|
||||||
|
eor (dst),y ; unmerge source and destination bits, leaves 'to keep' destination bits intact
|
||||||
|
sta (dst),y ; write the result
|
||||||
|
dey
|
||||||
|
bpl -
|
||||||
|
lda row2
|
||||||
|
jsr HGRCalc
|
||||||
|
ldy #$27
|
||||||
|
- tya
|
||||||
|
and #$03
|
||||||
|
tax
|
||||||
|
lda (src),y
|
||||||
|
eor (dst),y
|
||||||
|
@bmask and mask3,x
|
||||||
|
eor (dst),y
|
||||||
|
sta (dst),y
|
||||||
|
dey
|
||||||
|
bpl -
|
||||||
|
lda #$28
|
||||||
|
jsr WaitForKeyWithTimeout
|
||||||
|
bmi @exit
|
||||||
|
inc row1
|
||||||
|
dec row2
|
||||||
|
lda row1
|
||||||
|
cmp #$60
|
||||||
|
beq @loop
|
||||||
|
ldx @amask+1
|
||||||
|
ldy @bmask+1
|
||||||
|
stx @bmask+1
|
||||||
|
sty @amask+1
|
||||||
|
cmp #$C0
|
||||||
|
bne @loop
|
||||||
|
@exit rts
|
||||||
|
|
||||||
|
mask1 !byte %10110011
|
||||||
|
mask2 !byte %11100110
|
||||||
|
mask3 !byte %11001100
|
||||||
|
mask4 !byte %10011001
|
||||||
|
!byte %10110011
|
||||||
|
!byte %11100110
|
||||||
|
|
||||||
|
!source "src/wait.a"
|
||||||
|
!source "src/fx/fx.hgr.common.a"
|
||||||
|
+HGR_CALC_ROUTINES
|
16
src/fx/fx.hgr.dither.flower.a
Normal file
16
src/fx/fx.hgr.dither.flower.a
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2019-2022 by 4am/qkumba
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.FLOWER",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT_DITHER Coordinates3Bit, EndCoordinates3Bit
|
||||||
|
|
||||||
|
CoordinatesFile
|
||||||
|
!byte 14
|
||||||
|
!text "FX/FLOWER.DATA"
|
16
src/fx/fx.hgr.dither.flower.radial.a
Normal file
16
src/fx/fx.hgr.dither.flower.radial.a
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2019-2022 by 4am/qkumba
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.FLOWERRD",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT_DITHER Coordinates3Bit, EndCoordinates3Bit
|
||||||
|
|
||||||
|
CoordinatesFile
|
||||||
|
!byte 18
|
||||||
|
!text "FX/FLOWER.RAD.DATA"
|
16
src/fx/fx.hgr.dither.heart.a
Normal file
16
src/fx/fx.hgr.dither.heart.a
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2019-2022 by 4am/qkumba
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.HEART",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
!source "src/fx/fx.hgr.precomputed.2bit.a"
|
||||||
|
|
||||||
|
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_2BIT_DITHER Coordinates2Bit, EndCoordinates2Bit
|
||||||
|
|
||||||
|
CoordinatesFile
|
||||||
|
!byte 13
|
||||||
|
!text "FX/HEART.DATA"
|
16
src/fx/fx.hgr.dither.iris.a
Normal file
16
src/fx/fx.hgr.dither.iris.a
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2019-2022 by 4am/qkumba
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.IRIS",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
!source "src/fx/fx.hgr.precomputed.1bit.a"
|
||||||
|
|
||||||
|
+FX_INITONCE_1BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_1BIT_DITHER Coordinates1Bit, EndCoordinates1Bit
|
||||||
|
|
||||||
|
CoordinatesFile
|
||||||
|
!byte 12
|
||||||
|
!text "FX/IRIS.DATA"
|
16
src/fx/fx.hgr.dither.mandelbrot.a
Normal file
16
src/fx/fx.hgr.dither.mandelbrot.a
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2019-2022 by 4am/qkumba
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.MANDEL",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
!source "src/fx/fx.hgr.precomputed.3bit.a"
|
||||||
|
|
||||||
|
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_3BIT_DITHER Coordinates3Bit, EndCoordinates3Bit
|
||||||
|
|
||||||
|
CoordinatesFile
|
||||||
|
!byte 18
|
||||||
|
!text "FX/MANDELBROT.DATA"
|
16
src/fx/fx.hgr.dither.maple.a
Normal file
16
src/fx/fx.hgr.dither.maple.a
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2019-2022 by 4am/qkumba
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.MAPLE",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
!source "src/fx/fx.hgr.precomputed.2bit.a"
|
||||||
|
|
||||||
|
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_2BIT_DITHER Coordinates2Bit, EndCoordinates2Bit
|
||||||
|
|
||||||
|
CoordinatesFile
|
||||||
|
!byte 13
|
||||||
|
!text "FX/MAPLE.DATA"
|
117
src/fx/fx.hgr.dither.radial.a
Normal file
117
src/fx/fx.hgr.dither.radial.a
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2019-2022 by 4am/qkumba
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.RADIAL",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
evenrow_ptr = $E4 ; word
|
||||||
|
oddrow_ptr = $E6 ; word
|
||||||
|
mirror_src1 = $E8 ; word
|
||||||
|
mirror_dest1 = $EA ; word
|
||||||
|
mirror_src2 = $EC ; word
|
||||||
|
mirror_dest2 = $EE ; word
|
||||||
|
src1 = $F0 ; word
|
||||||
|
dest1 = $F2 ; word
|
||||||
|
src2 = $F4 ; word
|
||||||
|
dest2 = $F6 ; word
|
||||||
|
input = $FE ; word
|
||||||
|
|
||||||
|
!source "src/fx/fx.hgr.precomputed.1bit.a"
|
||||||
|
|
||||||
|
+FX_INITONCE_1BIT CoordinatesFile, Start
|
||||||
|
lda #$80
|
||||||
|
sta Coordinates1Bit-2
|
||||||
|
+BUILD_DITHER_MASKS dither_masks, evenrow_masks, oddrow_masks, no_masks
|
||||||
|
+BUILD_HGR_LOOKUP_TABLES hgrlo, hgr1hi
|
||||||
|
+BUILD_HGR_MIRROR_LOOKUP_TABLES hgrlomirror, hgr1himirror
|
||||||
|
+BUILD_MIRROR_COLS mirror_cols
|
||||||
|
+BUILD_SPARSE_BITMASKS copymasks, mirror_copymasks
|
||||||
|
Start
|
||||||
|
+LDADDR evenrow_masks
|
||||||
|
+ST16 evenrow_ptr
|
||||||
|
+LDADDR oddrow_masks
|
||||||
|
+ST16 oddrow_ptr
|
||||||
|
jsr FullRadial
|
||||||
|
bit KBD
|
||||||
|
bpl +
|
||||||
|
rts
|
||||||
|
+ lda #<no_masks
|
||||||
|
sta <evenrow_ptr
|
||||||
|
sta <oddrow_ptr
|
||||||
|
; /!\ execution falls through here
|
||||||
|
FullRadial
|
||||||
|
+LDADDR EndCoordinates1Bit-2
|
||||||
|
+ST16 input
|
||||||
|
LoopBL ; bottom-left quadrant (opposite row, original column, reverse input order)
|
||||||
|
ldy #0
|
||||||
|
lda (input),y
|
||||||
|
bmi DoneBL
|
||||||
|
tax
|
||||||
|
+ROW_X_TO_MIRROR_ADDRESSES
|
||||||
|
iny
|
||||||
|
lda (input),y
|
||||||
|
+HIGH_3_LOW_5 input
|
||||||
|
+COPY_BIT_DITHER mirror_src1, mirror_dest1, copymasks, oddrow_ptr
|
||||||
|
+COPY_BIT_DITHER mirror_src2, mirror_dest2, copymasks, evenrow_ptr
|
||||||
|
+DEC_INPUT_AND_LOOP LoopBL
|
||||||
|
DoneBL
|
||||||
|
|
||||||
|
+LDADDR Coordinates1Bit
|
||||||
|
+ST16 input
|
||||||
|
LoopTL ; top-left quadrant
|
||||||
|
ldy #0
|
||||||
|
lda (input),y
|
||||||
|
bmi DoneTL
|
||||||
|
tax
|
||||||
|
+ROW_X_TO_BASE_ADDRESSES
|
||||||
|
inc input
|
||||||
|
lda (input),y
|
||||||
|
+HIGH_3_LOW_5 input
|
||||||
|
+COPY_BIT_DITHER src1, dest1, copymasks, evenrow_ptr
|
||||||
|
+COPY_BIT_DITHER src2, dest2, copymasks, oddrow_ptr
|
||||||
|
+INC_INPUT_AND_LOOP LoopTL
|
||||||
|
DoneTL
|
||||||
|
|
||||||
|
+LDADDR EndCoordinates1Bit-2
|
||||||
|
+ST16 input
|
||||||
|
LoopTR ; top-right quadrant (same row, opposite column, reverse input order)
|
||||||
|
ldy #0
|
||||||
|
lda (input),y
|
||||||
|
bmi DoneTR
|
||||||
|
tax
|
||||||
|
+ROW_X_TO_BASE_ADDRESSES
|
||||||
|
iny
|
||||||
|
lda (input),y
|
||||||
|
+HIGH_3_LOW_5 input
|
||||||
|
lda mirror_cols,y
|
||||||
|
tay
|
||||||
|
+COPY_BIT_DITHER src1, dest1, mirror_copymasks, evenrow_ptr
|
||||||
|
+COPY_BIT_DITHER src2, dest2, mirror_copymasks, oddrow_ptr
|
||||||
|
+DEC_INPUT_AND_LOOP LoopTR
|
||||||
|
DoneTR
|
||||||
|
|
||||||
|
+LDADDR Coordinates1Bit
|
||||||
|
+ST16 input
|
||||||
|
LoopBR ; bottom-right quadrant (opposite row, opposite column, original input order)
|
||||||
|
ldy #0
|
||||||
|
lda (input),y
|
||||||
|
bmi DoneBR
|
||||||
|
tax
|
||||||
|
+ROW_X_TO_MIRROR_ADDRESSES
|
||||||
|
inc input
|
||||||
|
lda (input),y
|
||||||
|
+HIGH_3_LOW_5 input
|
||||||
|
lda mirror_cols,y
|
||||||
|
tay
|
||||||
|
+COPY_BIT_DITHER mirror_src1, mirror_dest1, mirror_copymasks, oddrow_ptr
|
||||||
|
+COPY_BIT_DITHER mirror_src2, mirror_dest2, mirror_copymasks, evenrow_ptr
|
||||||
|
+INC_INPUT_AND_LOOP LoopBR
|
||||||
|
DoneBR
|
||||||
|
rts
|
||||||
|
|
||||||
|
+DITHER_MASK_DATA
|
||||||
|
|
||||||
|
CoordinatesFile
|
||||||
|
!byte 14
|
||||||
|
!text "FX/RADIAL.DATA"
|
91
src/fx/fx.hgr.dither.radial.common.a
Normal file
91
src/fx/fx.hgr.dither.radial.common.a
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
evenrow_ptr = $E4 ; word
|
||||||
|
oddrow_ptr = $E6 ; word
|
||||||
|
mirror_src1 = $E8 ; word
|
||||||
|
mirror_dest1 = $EA ; word
|
||||||
|
mirror_src2 = $EC ; word
|
||||||
|
mirror_dest2 = $EE ; word
|
||||||
|
src1 = $F0 ; word
|
||||||
|
dest1 = $F2 ; word
|
||||||
|
src2 = $F4 ; word
|
||||||
|
dest2 = $F6 ; word
|
||||||
|
reverse_input = $FC ; word
|
||||||
|
input = $FE ; word
|
||||||
|
|
||||||
|
+BUILD_DITHER_MASKS dither_masks, evenrow_masks, oddrow_masks, no_masks
|
||||||
|
+BUILD_MIRROR_COLS mirror_cols
|
||||||
|
+BUILD_HGR_LOOKUP_TABLES_X_IS_ALREADY_0 hgrlo, hgr1hi
|
||||||
|
+BUILD_HGR_MIRROR_LOOKUP_TABLES hgrlomirror, hgr1himirror
|
||||||
|
+BUILD_SPARSE_BITMASKS copymasks, mirror_copymasks
|
||||||
|
+LDADDR evenrow_masks
|
||||||
|
+ST16 evenrow_ptr
|
||||||
|
+LDADDR oddrow_masks
|
||||||
|
+ST16 oddrow_ptr
|
||||||
|
jsr FullRadial
|
||||||
|
bit KBD
|
||||||
|
bmi Exit
|
||||||
|
lda #<no_masks
|
||||||
|
sta <evenrow_ptr
|
||||||
|
sta <oddrow_ptr
|
||||||
|
; /!\ execution falls through here
|
||||||
|
FullRadial
|
||||||
|
+LDADDR Coordinates
|
||||||
|
+ST16 input
|
||||||
|
+LDADDR EndCoordinates-2
|
||||||
|
+ST16 reverse_input
|
||||||
|
+HIDE_NEXT_BYTE
|
||||||
|
Exit rts
|
||||||
|
Loop ldy #0
|
||||||
|
lda (input),y
|
||||||
|
bmi Exit
|
||||||
|
tax
|
||||||
|
+ROW_X_TO_BASE_ADDRESSES
|
||||||
|
+ROW_X_TO_MIRROR_ADDRESSES
|
||||||
|
inc input
|
||||||
|
lda (input),y
|
||||||
|
+HIGH_3_LOW_5 input
|
||||||
|
|
||||||
|
; top-left quadrant (original row, original column, original input order)
|
||||||
|
+COPY_BIT_DITHER src1, dest1, copymasks, evenrow_ptr
|
||||||
|
+COPY_BIT_DITHER src2, dest2, copymasks, oddrow_ptr
|
||||||
|
|
||||||
|
; bottom-right quadrant (opposite row, opposite column, original input order)
|
||||||
|
lda mirror_cols,y
|
||||||
|
tay
|
||||||
|
+COPY_BIT_DITHER mirror_src1, mirror_dest1, mirror_copymasks, oddrow_ptr
|
||||||
|
+COPY_BIT_DITHER mirror_src2, mirror_dest2, mirror_copymasks, evenrow_ptr
|
||||||
|
|
||||||
|
ldy #0
|
||||||
|
lda (reverse_input),y
|
||||||
|
tax
|
||||||
|
+ROW_X_TO_BASE_ADDRESSES
|
||||||
|
+ROW_X_TO_MIRROR_ADDRESSES
|
||||||
|
iny
|
||||||
|
lda (reverse_input),y
|
||||||
|
+HIGH_3_LOW_5 reverse_input
|
||||||
|
|
||||||
|
; bottom-left quadrant (opposite row, original column, reverse input order)
|
||||||
|
+COPY_BIT_DITHER mirror_src1, mirror_dest1, copymasks, oddrow_ptr
|
||||||
|
+COPY_BIT_DITHER mirror_src2, mirror_dest2, copymasks, evenrow_ptr
|
||||||
|
|
||||||
|
; top-right quadrant (same row, opposite column, reverse input order)
|
||||||
|
lda mirror_cols,y
|
||||||
|
tay
|
||||||
|
+COPY_BIT_DITHER src1, dest1, mirror_copymasks, evenrow_ptr
|
||||||
|
+COPY_BIT_DITHER src2, dest2, mirror_copymasks, oddrow_ptr
|
||||||
|
|
||||||
|
inc input
|
||||||
|
bne +
|
||||||
|
inc input+1
|
||||||
|
+ lda reverse_input
|
||||||
|
php
|
||||||
|
dec reverse_input
|
||||||
|
dec reverse_input
|
||||||
|
plp
|
||||||
|
bne +
|
||||||
|
dec reverse_input+1
|
||||||
|
bit $c000
|
||||||
|
bmi ++
|
||||||
|
+ jmp Loop
|
||||||
|
++ rts
|
||||||
|
|
||||||
|
+DITHER_MASK_DATA
|
20
src/fx/fx.hgr.dither.radial2.a
Normal file
20
src/fx/fx.hgr.dither.radial2.a
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2019-2020 by 4am/qkumba
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.RADIAL2",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
!source "src/fx/fx.hgr.precomputed.1bit.a"
|
||||||
|
|
||||||
|
+FX_INITONCE_1BIT CoordinatesFile, Start
|
||||||
|
+FX_RIPPLE_1BIT aslmod
|
||||||
|
|
||||||
|
Start
|
||||||
|
!source "src/fx/fx.hgr.dither.radial.common.a"
|
||||||
|
|
||||||
|
CoordinatesFile
|
||||||
|
!byte 14
|
||||||
|
!text "FX/RADIAL.DATA"
|
||||||
|
Coordinates=Coordinates1Bit
|
||||||
|
EndCoordinates=EndCoordinates1Bit
|
20
src/fx/fx.hgr.dither.radial4.a
Normal file
20
src/fx/fx.hgr.dither.radial4.a
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2019-2022 by 4am/qkumba
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.RADIAL4",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
!source "src/fx/fx.hgr.precomputed.1bit.a"
|
||||||
|
|
||||||
|
+FX_INITONCE_1BIT CoordinatesFile, Start
|
||||||
|
jsr EndCoordinates1Bit+1
|
||||||
|
|
||||||
|
Start
|
||||||
|
!source "src/fx/fx.hgr.dither.radial.common.a"
|
||||||
|
|
||||||
|
CoordinatesFile
|
||||||
|
!byte 14
|
||||||
|
!text "FX/RADIAL.DATA"
|
||||||
|
Coordinates=Coordinates1Bit
|
||||||
|
EndCoordinates=EndCoordinates1Bit
|
20
src/fx/fx.hgr.dither.radial5.a
Normal file
20
src/fx/fx.hgr.dither.radial5.a
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2019-2020 by 4am/qkumba
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.RADIAL5",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
!source "src/fx/fx.hgr.precomputed.1bit.a"
|
||||||
|
|
||||||
|
+FX_INITONCE_1BIT CoordinatesFile, Start
|
||||||
|
+FX_RIPPLE_1BIT aslmod3
|
||||||
|
|
||||||
|
Start
|
||||||
|
!source "src/fx/fx.hgr.dither.radial.common.a"
|
||||||
|
|
||||||
|
CoordinatesFile
|
||||||
|
!byte 14
|
||||||
|
!text "FX/RADIAL.DATA"
|
||||||
|
Coordinates=Coordinates1Bit
|
||||||
|
EndCoordinates=EndCoordinates1Bit
|
16
src/fx/fx.hgr.dither.slow.star.a
Normal file
16
src/fx/fx.hgr.dither.slow.star.a
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2019-2022 by 4am/qkumba
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.SLOWSTAR",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
!source "src/fx/fx.hgr.precomputed.1bit.a"
|
||||||
|
|
||||||
|
+FX_INITONCE_1BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_1BIT_DITHER Coordinates1Bit, EndCoordinates1Bit
|
||||||
|
|
||||||
|
CoordinatesFile
|
||||||
|
!byte 17
|
||||||
|
!text "FX/SLOW.STAR.DATA"
|
16
src/fx/fx.hgr.dither.snowflake.a
Normal file
16
src/fx/fx.hgr.dither.snowflake.a
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2019-2022 by 4am/qkumba
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.SNOWFLAK",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
!source "src/fx/fx.hgr.precomputed.1bit.a"
|
||||||
|
|
||||||
|
+FX_INITONCE_1BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_1BIT_DITHER Coordinates1Bit, EndCoordinates1Bit
|
||||||
|
|
||||||
|
CoordinatesFile
|
||||||
|
!byte 17
|
||||||
|
!text "FX/SNOWFLAKE.DATA"
|
16
src/fx/fx.hgr.dither.soft.iris.a
Normal file
16
src/fx/fx.hgr.dither.soft.iris.a
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2019-2022 by 4am/qkumba
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.SOFTIRIS",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
!source "src/fx/fx.hgr.precomputed.2bit.a"
|
||||||
|
|
||||||
|
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_2BIT_DITHER Coordinates2Bit, EndCoordinates2Bit
|
||||||
|
|
||||||
|
CoordinatesFile
|
||||||
|
!byte 17
|
||||||
|
!text "FX/SOFT.IRIS.DATA"
|
16
src/fx/fx.hgr.dither.star.a
Normal file
16
src/fx/fx.hgr.dither.star.a
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2019-2022 by 4am/qkumba
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.STAR",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
!source "src/fx/fx.hgr.precomputed.2bit.a"
|
||||||
|
|
||||||
|
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_2BIT_DITHER Coordinates2Bit, EndCoordinates2Bit
|
||||||
|
|
||||||
|
CoordinatesFile
|
||||||
|
!byte 12
|
||||||
|
!text "FX/STAR.DATA"
|
16
src/fx/fx.hgr.dither.wavy.iris.a
Normal file
16
src/fx/fx.hgr.dither.wavy.iris.a
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2019-2022 by 4am/qkumba
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/DITHER.WAVYIRIS",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
!source "src/fx/fx.hgr.precomputed.2bit.a"
|
||||||
|
|
||||||
|
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||||
|
Start
|
||||||
|
+FX_PRECOMPUTED_2BIT_DITHER Coordinates2Bit, EndCoordinates2Bit
|
||||||
|
|
||||||
|
CoordinatesFile
|
||||||
|
!byte 17
|
||||||
|
!text "FX/WAVY.IRIS.DATA"
|
|
@ -1,5 +1,5 @@
|
||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019 by 4am
|
;(c) 2019-2022 by 4am
|
||||||
;
|
;
|
||||||
copymasks = $0200 ; $100 bytes but sparse, index is 0..6 but in high 3 bits, so $00, $20, $40, $60, $80, $A0, $C0
|
copymasks = $0200 ; $100 bytes but sparse, index is 0..6 but in high 3 bits, so $00, $20, $40, $60, $80, $A0, $C0
|
||||||
mirror_copymasks = $0201
|
mirror_copymasks = $0201
|
||||||
|
@ -8,6 +8,10 @@ hgrlomirror = $BD40 ; $C0 bytes
|
||||||
mirror_cols = $BE00 ; $28 bytes
|
mirror_cols = $BE00 ; $28 bytes
|
||||||
hgr1hi = $BE40 ; $C0 bytes
|
hgr1hi = $BE40 ; $C0 bytes
|
||||||
hgr1himirror = $BF40 ; $C0 bytes
|
hgr1himirror = $BF40 ; $C0 bytes
|
||||||
|
; the next 3 addresses should all be on the same page
|
||||||
|
evenrow_masks = $8500 ; $28 bytes (for dithering)
|
||||||
|
oddrow_masks = $8528 ; $28 bytes (for dithering)
|
||||||
|
no_masks = $8550 ; $28 bytes (for dithering)
|
||||||
Coordinates1Bit= $8600 ; $3481 bytes ($3480 on disk + 1 byte EOF marker)
|
Coordinates1Bit= $8600 ; $3481 bytes ($3480 on disk + 1 byte EOF marker)
|
||||||
EndCoordinates1Bit=Coordinates1Bit+$3480
|
EndCoordinates1Bit=Coordinates1Bit+$3480
|
||||||
|
|
||||||
|
@ -101,7 +105,7 @@ EndCoordinates1Bit=Coordinates1Bit+$3480
|
||||||
inc <input
|
inc <input
|
||||||
beq +
|
beq +
|
||||||
jmp .loop
|
jmp .loop
|
||||||
+ bit $c000
|
+ bit KBD
|
||||||
bmi +
|
bmi +
|
||||||
inc <input+1
|
inc <input+1
|
||||||
jmp .loop
|
jmp .loop
|
||||||
|
@ -116,7 +120,7 @@ EndCoordinates1Bit=Coordinates1Bit+$3480
|
||||||
plp
|
plp
|
||||||
bne +
|
bne +
|
||||||
dec input+1
|
dec input+1
|
||||||
bit $c000
|
bit KBD
|
||||||
bpl .loop
|
bpl .loop
|
||||||
bmi ++
|
bmi ++
|
||||||
+ jmp .loop
|
+ jmp .loop
|
||||||
|
@ -331,7 +335,142 @@ mirror_dest2=*+1
|
||||||
+INC_INPUT_AND_LOOP InputLoop
|
+INC_INPUT_AND_LOOP InputLoop
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
!if * and 1 {
|
|
||||||
!byte 0 ;align 2 but avoids the fake allocation bug if it was aligned already
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
!macro FX_PRECOMPUTED_1BIT_DITHER .coords, .endcoords {
|
||||||
|
+BUILD_DITHER_MASKS dither_masks, evenrow_masks, oddrow_masks, no_masks
|
||||||
|
+BUILD_HGR_LOOKUP_TABLES hgrlo, hgr1hi
|
||||||
|
+BUILD_HGR_MIRROR_LOOKUP_TABLES hgrlomirror, hgr1himirror
|
||||||
|
+BUILD_MIRROR_COLS mirror_cols
|
||||||
|
+BUILD_SPARSE_BITMASKS copymasks, mirror_copymasks
|
||||||
|
|
||||||
|
; phase 1 - in reverse, with additional masking
|
||||||
|
+COPY_TO_0 start, end
|
||||||
|
|
||||||
|
; set up starting coordinate for reading coordinates in reverse order
|
||||||
|
+LDADDR .endcoords-2
|
||||||
|
sta <input
|
||||||
|
sty <input+1
|
||||||
|
|
||||||
|
; set up EOF marker to stop reading coordinates in reverse order
|
||||||
|
lda #$80
|
||||||
|
sta .coords-2
|
||||||
|
|
||||||
|
; set up logic to advance to next coordinates in reverse order
|
||||||
|
ldx #(next2_end-next2_start-1)
|
||||||
|
- lda next2_start, x
|
||||||
|
sta <next, x
|
||||||
|
dex
|
||||||
|
bpl -
|
||||||
|
|
||||||
|
jsr InputLoop
|
||||||
|
|
||||||
|
bit KBD
|
||||||
|
bmi start
|
||||||
|
|
||||||
|
; phase 2 - in order, without additional masking
|
||||||
|
+COPY_TO_0 start, end
|
||||||
|
|
||||||
|
; redirect additional masking pointers to an array that contains #$FFs (so no masking)
|
||||||
|
lda #<no_masks
|
||||||
|
sta <evenrow_ptr
|
||||||
|
sta <oddrow_ptr
|
||||||
|
|
||||||
|
jmp InputLoop
|
||||||
|
start
|
||||||
|
!pseudopc 0 {
|
||||||
|
Exit1Bit rts
|
||||||
|
evenrow_ptr
|
||||||
|
!word evenrow_masks
|
||||||
|
oddrow_ptr
|
||||||
|
!word oddrow_masks
|
||||||
|
InputLoop
|
||||||
|
ldy #0
|
||||||
|
input=*+1
|
||||||
|
ldx .coords ; first value: HGR row (only 0..95 will be in input array)
|
||||||
|
bmi Exit1Bit ; if > 127 then we're done
|
||||||
|
+ROW_X_TO_BASE_ADDRESSES
|
||||||
|
+ROW_X_TO_MIRROR_ADDRESSES
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (<input), y
|
||||||
|
+HIGH_3_LOW_5 input
|
||||||
|
|
||||||
|
; main 1x2 block in top-left quadrant
|
||||||
|
src1=*+1
|
||||||
|
lda $FDFD, y
|
||||||
|
eor (<dest1), y
|
||||||
|
and copymasks, x
|
||||||
|
and (<evenrow_ptr), y
|
||||||
|
eor (<dest1), y
|
||||||
|
dest1=*+1
|
||||||
|
sta $FDFD, y
|
||||||
|
src2=*+1
|
||||||
|
lda $FDFD, y
|
||||||
|
eor (<dest2), y
|
||||||
|
and copymasks, x
|
||||||
|
and (<oddrow_ptr), y
|
||||||
|
eor (<dest2), y
|
||||||
|
dest2=*+1
|
||||||
|
sta $FDFD, y
|
||||||
|
|
||||||
|
; corresponding 1x2 block in top-right quadrant (same row, opposite column)
|
||||||
|
lda mirror_cols, y
|
||||||
|
tay
|
||||||
|
+COPY_BIT_DITHER src1, dest1, mirror_copymasks, evenrow_ptr
|
||||||
|
+COPY_BIT_DITHER src2, dest2, mirror_copymasks, oddrow_ptr
|
||||||
|
|
||||||
|
; corresponding 1x2 block in bottom-right quadrant (opposite row, opposite column)
|
||||||
|
mirror_src1=*+1
|
||||||
|
lda $FDFD, y
|
||||||
|
eor (<mirror_dest1), y
|
||||||
|
and mirror_copymasks, x
|
||||||
|
and (<oddrow_ptr), y
|
||||||
|
eor (<mirror_dest1), y
|
||||||
|
mirror_dest1=*+1
|
||||||
|
sta $FDFD, y
|
||||||
|
mirror_src2=*+1
|
||||||
|
lda $FDFD, y
|
||||||
|
eor (<mirror_dest2), y
|
||||||
|
and mirror_copymasks, x
|
||||||
|
and (<evenrow_ptr), y
|
||||||
|
eor (<mirror_dest2), y
|
||||||
|
mirror_dest2=*+1
|
||||||
|
sta $FDFD, y
|
||||||
|
|
||||||
|
; corresponding 1x2 block in bottom-left quadrant (opposite row, original column)
|
||||||
|
lda mirror_cols, y
|
||||||
|
tay
|
||||||
|
+COPY_BIT_DITHER mirror_src1, mirror_dest1, copymasks, oddrow_ptr
|
||||||
|
+COPY_BIT_DITHER mirror_src2, mirror_dest2, copymasks, evenrow_ptr
|
||||||
|
|
||||||
|
next
|
||||||
|
inc <input
|
||||||
|
inc <input
|
||||||
|
bne +
|
||||||
|
bit KBD
|
||||||
|
bmi ++
|
||||||
|
inc <input+1
|
||||||
|
+ jmp InputLoop
|
||||||
|
++ rts
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
next2_start
|
||||||
|
!pseudopc next {
|
||||||
|
lda <input
|
||||||
|
php
|
||||||
|
dec <input
|
||||||
|
dec <input
|
||||||
|
plp
|
||||||
|
bne +
|
||||||
|
dec <input+1
|
||||||
|
bit KBD
|
||||||
|
bmi ++
|
||||||
|
+ jmp InputLoop
|
||||||
|
++ rts
|
||||||
|
}
|
||||||
|
next2_end
|
||||||
|
|
||||||
|
+DITHER_MASK_DATA
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019-2020 by 4am
|
;(c) 2019-2022 by 4am
|
||||||
;
|
;
|
||||||
copymasks = $0200 ; $100 bytes but sparse, index is 0..4 but in high 3 bits, so $00, $20, $40, $60, $80
|
copymasks = $0200 ; $100 bytes but sparse, index is 0..4 but in high 3 bits, so $00, $20, $40, $60, $80
|
||||||
mirror_copymasks = $0201
|
mirror_copymasks = $0201
|
||||||
|
@ -8,7 +8,12 @@ hgrlomirror = $BD40 ; $C0 bytes
|
||||||
mirror_cols = $BE00 ; $28 bytes
|
mirror_cols = $BE00 ; $28 bytes
|
||||||
hgr1hi = $BE40 ; $C0 bytes
|
hgr1hi = $BE40 ; $C0 bytes
|
||||||
hgr1himirror = $BF40 ; $C0 bytes
|
hgr1himirror = $BF40 ; $C0 bytes
|
||||||
|
; the next 3 addresses should all be on the same page
|
||||||
|
evenrow_masks = $8000 ; $28 bytes (used for dithering)
|
||||||
|
oddrow_masks = $8028 ; $28 bytes (used for dithering)
|
||||||
|
no_masks = $8050 ; $28 bytes (used for dithering)
|
||||||
Coordinates2Bit= $8100 ; $3C01 bytes ($3C00 on disk + 1 byte as EOF)
|
Coordinates2Bit= $8100 ; $3C01 bytes ($3C00 on disk + 1 byte as EOF)
|
||||||
|
EndCoordinates2Bit = Coordinates2Bit + $3C00
|
||||||
|
|
||||||
!source "src/fx/macros.a"
|
!source "src/fx/macros.a"
|
||||||
|
|
||||||
|
@ -92,7 +97,7 @@ InitOnce
|
||||||
+LOAD_FILE_AT .CoordinatesFile, Coordinates2Bit
|
+LOAD_FILE_AT .CoordinatesFile, Coordinates2Bit
|
||||||
+READ_RAM1_WRITE_RAM1
|
+READ_RAM1_WRITE_RAM1
|
||||||
lda #$00
|
lda #$00
|
||||||
sta Coordinates2Bit + $3C00
|
sta EndCoordinates2Bit
|
||||||
}
|
}
|
||||||
|
|
||||||
!macro FX_REVERSE_2BIT {
|
!macro FX_REVERSE_2BIT {
|
||||||
|
@ -100,9 +105,9 @@ InitOnce
|
||||||
sty $f0
|
sty $f0
|
||||||
lda #>Coordinates2Bit
|
lda #>Coordinates2Bit
|
||||||
sta $f1
|
sta $f1
|
||||||
lda #<(Coordinates2Bit + $3C00 - 2)
|
lda #<(EndCoordinates2Bit - 2)
|
||||||
sta $f2
|
sta $f2
|
||||||
lda #>(Coordinates2Bit + $3C00 - 2)
|
lda #>(EndCoordinates2Bit - 2)
|
||||||
sta $f3
|
sta $f3
|
||||||
|
|
||||||
ldx #$1E ; #$3C/2
|
ldx #$1E ; #$3C/2
|
||||||
|
@ -305,13 +310,134 @@ dest2=*+1
|
||||||
|
|
||||||
inc <input
|
inc <input
|
||||||
bne InputLoop
|
bne InputLoop
|
||||||
bit $c000
|
bit KBD
|
||||||
bmi Exit2Bit
|
bmi Exit2Bit
|
||||||
inc <input+1
|
inc <input+1
|
||||||
bne InputLoop ; always branches
|
bne InputLoop ; always branches
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
!if * and 1 {
|
|
||||||
!byte 0 ;align 2 but avoids the fake allocation bug if it was aligned already
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
!macro FX_PRECOMPUTED_2BIT_DITHER .coords, .endcoords {
|
||||||
|
+BUILD_DITHER_MASKS dither_masks, evenrow_masks, oddrow_masks, no_masks
|
||||||
|
+BUILD_HGR_LOOKUP_TABLES hgrlo, hgr1hi
|
||||||
|
+BUILD_MIRROR_COLS mirror_cols
|
||||||
|
+BUILD_SPARSE_BITMASKS_2BIT copymasks, mirror_copymasks
|
||||||
|
|
||||||
|
; phase 1 - in reverse, with additional masking (dithering)
|
||||||
|
jsr copytozp
|
||||||
|
|
||||||
|
; set up starting coordinate for reading coordinates in reverse order
|
||||||
|
+LDADDR .endcoords-2
|
||||||
|
sta <input
|
||||||
|
sty <input+1
|
||||||
|
|
||||||
|
; set up EOF marker to stop reading coordinates in reverse order
|
||||||
|
lda #$00
|
||||||
|
sta .coords-2
|
||||||
|
|
||||||
|
; set up logic to advance to next coordinates in reverse order
|
||||||
|
ldx #(next2_end-next2_start-1)
|
||||||
|
- lda next2_start, x
|
||||||
|
sta <next, x
|
||||||
|
dex
|
||||||
|
bpl -
|
||||||
|
|
||||||
|
jsr InputLoop
|
||||||
|
|
||||||
|
bit KBD
|
||||||
|
bmi start
|
||||||
|
|
||||||
|
; phase 2 - in order, without additional masking
|
||||||
|
jsr copytozp
|
||||||
|
|
||||||
|
; redirect additional masking pointers to an array that contains #$FFs (so no dithering)
|
||||||
|
lda #<no_masks
|
||||||
|
sta <evenrow_ptr
|
||||||
|
sta <oddrow_ptr
|
||||||
|
|
||||||
|
jmp InputLoop
|
||||||
|
|
||||||
|
copytozp
|
||||||
|
+COPY_TO_0 start, end
|
||||||
|
start
|
||||||
|
!pseudopc 0 {
|
||||||
|
Exit2Bit rts
|
||||||
|
evenrow_ptr
|
||||||
|
!word evenrow_masks
|
||||||
|
oddrow_ptr
|
||||||
|
!word oddrow_masks
|
||||||
|
InputLoop
|
||||||
|
ldy #0
|
||||||
|
input=*+1
|
||||||
|
ldx .coords ; first value: HGR row + 1
|
||||||
|
beq Exit2Bit ; if 0 then we're done
|
||||||
|
+ROW_X_TO_2BIT_BASE_ADDRESSES
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (<input), y
|
||||||
|
+HIGH_3_LOW_5 input
|
||||||
|
|
||||||
|
; main 2x2 block in left half
|
||||||
|
src1=*+1
|
||||||
|
lda $FDFD, y
|
||||||
|
eor (<dest1), y
|
||||||
|
and copymasks, x
|
||||||
|
and (<evenrow_ptr), y
|
||||||
|
eor (<dest1), y
|
||||||
|
dest1=*+1
|
||||||
|
sta $FDFD, y
|
||||||
|
src2=*+1
|
||||||
|
lda $FDFD, y
|
||||||
|
eor (<dest2), y
|
||||||
|
and copymasks, x
|
||||||
|
and (<oddrow_ptr), y
|
||||||
|
eor (<dest2), y
|
||||||
|
dest2=*+1
|
||||||
|
sta $FDFD, y
|
||||||
|
|
||||||
|
; corresponding 2x2 block in right half (same row, opposite column)
|
||||||
|
lda mirror_cols, y
|
||||||
|
tay
|
||||||
|
lda (src1), y
|
||||||
|
eor (dest1), y
|
||||||
|
and mirror_copymasks, x
|
||||||
|
and (<evenrow_ptr), y
|
||||||
|
eor (dest1), y
|
||||||
|
sta (dest1), y
|
||||||
|
|
||||||
|
lda (src2), y
|
||||||
|
eor (dest2), y
|
||||||
|
and mirror_copymasks, x
|
||||||
|
and (<oddrow_ptr), y
|
||||||
|
eor (dest2), y
|
||||||
|
sta (dest2), y
|
||||||
|
|
||||||
|
next
|
||||||
|
inc <input
|
||||||
|
inc <input
|
||||||
|
bne InputLoop
|
||||||
|
bit KBD
|
||||||
|
bmi Exit2Bit
|
||||||
|
inc <input+1
|
||||||
|
bne InputLoop ; always branches
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
next2_start
|
||||||
|
!pseudopc next {
|
||||||
|
lda <input
|
||||||
|
php
|
||||||
|
dec <input
|
||||||
|
dec <input
|
||||||
|
plp
|
||||||
|
bne InputLoop
|
||||||
|
dec <input+1
|
||||||
|
bit KBD
|
||||||
|
bpl InputLoop
|
||||||
|
rts
|
||||||
|
}
|
||||||
|
next2_end
|
||||||
|
|
||||||
|
+DITHER_MASK_DATA
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
;license:MIT
|
;license:MIT
|
||||||
;(c) 2019-2020 by 4am
|
;(c) 2019-2022 by 4am
|
||||||
;
|
;
|
||||||
|
|
||||||
copymasks = $0200 ; $100 bytes but sparse, index is 0..7 but in high 3 bits, so $00, $20, $40...
|
copymasks = $0200 ; $100 bytes but sparse, index is 0..7 but in high 3 bits, so $00, $20, $40...
|
||||||
|
@ -12,10 +12,18 @@ hgrlo3c = $BD00 ; $80 bytes
|
||||||
hgrhi3a = $BD80 ; $80 bytes
|
hgrhi3a = $BD80 ; $80 bytes
|
||||||
hgrhi3b = $BE00 ; $80 bytes
|
hgrhi3b = $BE00 ; $80 bytes
|
||||||
hgrhi3c = $BE80 ; $80 bytes
|
hgrhi3c = $BE80 ; $80 bytes
|
||||||
|
dither1_lo = $6900 ; $80 bytes
|
||||||
|
dither2_lo = $6980 ; $80 bytes
|
||||||
|
dither3_lo = $6A00 ; $80 bytes
|
||||||
|
; the next 3 addresses should all be on the same page
|
||||||
|
evenrow_masks = $6A80 ; $28 bytes (for dithering)
|
||||||
|
oddrow_masks = $6AA8 ; $28 bytes (for dithering)
|
||||||
|
no_masks = $6AD0 ; $28 bytes (for dithering)
|
||||||
Coordinates3Bit= $6B00 ; pixel data is $5001 bytes ($5000 on disk + 1 byte as EOF marker)
|
Coordinates3Bit= $6B00 ; pixel data is $5001 bytes ($5000 on disk + 1 byte as EOF marker)
|
||||||
; and for optimization we only support loading external files page-aligned
|
; and for optimization we only support loading external files page-aligned
|
||||||
; and $BC00+ is used by the 3bit macros for data tables
|
; and $BC00+ is used by the 3bit macros for data tables
|
||||||
; so we load at $6B00 and waste $FF bytes at $BB01+ but it's okay
|
; so we load at $6B00 and waste $FF bytes at $BB01+ but it's okay
|
||||||
|
EndCoordinates3Bit = Coordinates3Bit + $5000
|
||||||
|
|
||||||
!source "src/fx/macros.a"
|
!source "src/fx/macros.a"
|
||||||
|
|
||||||
|
@ -279,13 +287,159 @@ dest3=*+1
|
||||||
|
|
||||||
inc <input
|
inc <input
|
||||||
bne InputLoop
|
bne InputLoop
|
||||||
bit $c000
|
bit KBD
|
||||||
bmi Exit3Bit
|
bmi Exit3Bit
|
||||||
inc <input+1
|
inc <input+1
|
||||||
bne InputLoop ; always branches
|
bne InputLoop ; always branches
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
!if * and 1 {
|
|
||||||
!byte 0 ;align 2 but avoids the fake allocation bug if it was aligned already
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
!macro FX_PRECOMPUTED_3BIT_DITHER .coords, .endcoords {
|
||||||
|
+BUILD_DITHER_MASKS dither_masks, evenrow_masks, oddrow_masks, no_masks
|
||||||
|
+BUILD_3BIT_HGR_LOOKUP_TABLES
|
||||||
|
+BUILD_EXTRA_COLS
|
||||||
|
+BUILD_SPARSE_BITMASKS_3BIT
|
||||||
|
|
||||||
|
; phase 1 - in reverse, with additional masking
|
||||||
|
+COPY_TO_0 start, end
|
||||||
|
|
||||||
|
; set up starting coordinate for reading coordinates in reverse order
|
||||||
|
+LDADDR .endcoords-2
|
||||||
|
sta <input
|
||||||
|
sty <input+1
|
||||||
|
|
||||||
|
; set up EOF marker to stop reading coordinates in reverse order
|
||||||
|
lda #$80
|
||||||
|
sta .coords-2
|
||||||
|
|
||||||
|
; set up logic to advance to next coordinates in reverse order
|
||||||
|
ldx #(next2_end-next2_start-1)
|
||||||
|
- lda next2_start, x
|
||||||
|
sta <next, x
|
||||||
|
dex
|
||||||
|
bpl -
|
||||||
|
|
||||||
|
; set up pointers to dither mask pointers so even rows do even-row dithering and odd rows do odd-row dithering
|
||||||
|
ldx #$7F
|
||||||
|
- lda #<evenrow_masks
|
||||||
|
sta dither1_lo, x
|
||||||
|
sta dither2_lo-1, x
|
||||||
|
sta dither3_lo, x
|
||||||
|
lda #<oddrow_masks
|
||||||
|
sta dither1_lo-1, x
|
||||||
|
sta dither2_lo, x
|
||||||
|
sta dither3_lo-1, x
|
||||||
|
dex
|
||||||
|
dex
|
||||||
|
bpl -
|
||||||
|
jsr InputLoop
|
||||||
|
|
||||||
|
bit KBD
|
||||||
|
bmi start
|
||||||
|
|
||||||
|
; phase 2 - in order, without additional masking
|
||||||
|
+COPY_TO_0 start, end
|
||||||
|
|
||||||
|
; set up pointers to dither mask pointers so all rows do no dithering
|
||||||
|
ldx #$7F
|
||||||
|
- lda #<no_masks
|
||||||
|
sta dither1_lo, x
|
||||||
|
sta dither2_lo, x
|
||||||
|
sta dither3_lo, x
|
||||||
|
dex
|
||||||
|
bpl -
|
||||||
|
jmp InputLoop
|
||||||
|
start
|
||||||
|
!pseudopc 0 {
|
||||||
|
Exit3Bit rts
|
||||||
|
dither1_ptr
|
||||||
|
!word evenrow_masks
|
||||||
|
dither2_ptr
|
||||||
|
!word oddrow_masks
|
||||||
|
dither3_ptr
|
||||||
|
!word evenrow_masks
|
||||||
|
InputLoop
|
||||||
|
ldy #0
|
||||||
|
input=*+1
|
||||||
|
lda .coords
|
||||||
|
bmi Exit3Bit ; if high bit is 1 then we're done
|
||||||
|
cmp #$40
|
||||||
|
php
|
||||||
|
tax
|
||||||
|
lda dither1_lo, x
|
||||||
|
sta dither1_ptr
|
||||||
|
lda dither2_lo, x
|
||||||
|
sta dither2_ptr
|
||||||
|
lda dither3_lo, x
|
||||||
|
sta dither3_ptr
|
||||||
|
+ROW_X_TO_3BIT_BASE_ADDRESSES
|
||||||
|
|
||||||
|
iny
|
||||||
|
lda (<input), y
|
||||||
|
and #%11100000
|
||||||
|
tax
|
||||||
|
eor (<input), y
|
||||||
|
plp
|
||||||
|
bcc +
|
||||||
|
tay
|
||||||
|
lda extra_cols, y
|
||||||
|
+ tay
|
||||||
|
|
||||||
|
; 2x3 block
|
||||||
|
src1=*+1
|
||||||
|
lda $FDFD, y
|
||||||
|
eor (<dest1), y
|
||||||
|
and copymasks, x
|
||||||
|
and (dither1_ptr), y
|
||||||
|
eor (<dest1), y
|
||||||
|
dest1=*+1
|
||||||
|
sta $FDFD, y
|
||||||
|
src2=*+1
|
||||||
|
lda $FDFD, y
|
||||||
|
eor (<dest2), y
|
||||||
|
and copymasks, x
|
||||||
|
and (dither2_ptr), y
|
||||||
|
eor (<dest2), y
|
||||||
|
dest2=*+1
|
||||||
|
sta $FDFD, y
|
||||||
|
src3=*+1
|
||||||
|
lda $FDFD, y
|
||||||
|
eor (<dest3), y
|
||||||
|
and copymasks, x
|
||||||
|
and (dither3_ptr), y
|
||||||
|
eor (<dest3), y
|
||||||
|
dest3=*+1
|
||||||
|
sta $FDFD, y
|
||||||
|
|
||||||
|
next
|
||||||
|
inc <input
|
||||||
|
inc <input
|
||||||
|
bne +
|
||||||
|
bit KBD
|
||||||
|
bmi ++
|
||||||
|
inc <input+1
|
||||||
|
+ jmp InputLoop
|
||||||
|
++ rts
|
||||||
|
|
||||||
|
}
|
||||||
|
end
|
||||||
|
|
||||||
|
next2_start
|
||||||
|
!pseudopc next {
|
||||||
|
lda <input
|
||||||
|
php
|
||||||
|
dec <input
|
||||||
|
dec <input
|
||||||
|
plp
|
||||||
|
bne +
|
||||||
|
dec <input+1
|
||||||
|
bit KBD
|
||||||
|
bmi ++
|
||||||
|
+ jmp InputLoop
|
||||||
|
++ rts
|
||||||
|
}
|
||||||
|
next2_end
|
||||||
|
|
||||||
|
+DITHER_MASK_DATA
|
||||||
}
|
}
|
||||||
|
|
72
src/fx/fx.hgr.thin.bar.dissolve.a
Normal file
72
src/fx/fx.hgr.thin.bar.dissolve.a
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
;license:MIT
|
||||||
|
;(c) 2022 by 4am
|
||||||
|
;
|
||||||
|
!cpu 6502
|
||||||
|
!to "build/FX.INDEXED/THIN.DISSOLVE",plain
|
||||||
|
*=$6000
|
||||||
|
|
||||||
|
row1 = $fe
|
||||||
|
row2 = $ff
|
||||||
|
src = $3c
|
||||||
|
dst = $26
|
||||||
|
|
||||||
|
lda #$00
|
||||||
|
sta row1
|
||||||
|
lda #$BF
|
||||||
|
sta row2
|
||||||
|
@loop lda row1
|
||||||
|
jsr HGRCalc
|
||||||
|
ldy #$27
|
||||||
|
- tya
|
||||||
|
and #$03
|
||||||
|
tax
|
||||||
|
lda (src),y
|
||||||
|
eor (dst),y ; merge source and destination bits
|
||||||
|
and mask1,x ; isolate the bits to replace, zero the rest
|
||||||
|
eor (dst),y ; unmerge source and destination bits, leaves 'to keep' destination bits intact
|
||||||
|
sta (dst),y ; write the result
|
||||||
|
dey
|
||||||
|
bpl -
|
||||||
|
lda row2
|
||||||
|
jsr HGRCalc
|
||||||
|
ldy #$27
|
||||||
|
- tya
|
||||||
|
and #$03
|
||||||
|
tax
|
||||||
|
lda (src),y
|
||||||
|
eor (dst),y
|
||||||
|
and mask3,x
|
||||||
|
eor (dst),y
|
||||||
|
sta (dst),y
|
||||||
|
dey
|
||||||
|
bpl -
|
||||||
|
lda #$30
|
||||||
|
jsr WaitForKeyWithTimeout
|
||||||
|
bmi @exit
|
||||||
|
!if 0 {
|
||||||
|
ldx mask1
|
||||||
|
ldy mask3
|
||||||
|
stx mask3
|
||||||
|
sty mask1
|
||||||
|
ldx mask2
|
||||||
|
ldy mask4
|
||||||
|
stx mask4
|
||||||
|
sty mask2
|
||||||
|
}
|
||||||
|
inc row1
|
||||||
|
dec row2
|
||||||
|
lda row1
|
||||||
|
cmp #$C0
|
||||||
|
bne @loop
|
||||||
|
@exit rts
|
||||||
|
|
||||||
|
!source "src/wait.a"
|
||||||
|
!source "src/fx/fx.hgr.common.a"
|
||||||
|
+HGR_CALC_ROUTINES
|
||||||
|
|
||||||
|
mask1 !byte %10110011
|
||||||
|
mask2 !byte %11100110
|
||||||
|
mask3 !byte %11001100
|
||||||
|
mask4 !byte %10011001
|
||||||
|
!byte %10110011
|
||||||
|
!byte %11100110
|
|
@ -62,6 +62,22 @@
|
||||||
bne -
|
bne -
|
||||||
}
|
}
|
||||||
|
|
||||||
|
!macro BUILD_DITHER_MASKS .dither_masks, .evenrow_masks, .oddrow_masks, .no_masks {
|
||||||
|
ldy #$28
|
||||||
|
-- ldx #$03
|
||||||
|
- dey
|
||||||
|
lda .dither_masks, x
|
||||||
|
sta .evenrow_masks, y
|
||||||
|
lda .dither_masks+2, x
|
||||||
|
sta .oddrow_masks, y
|
||||||
|
lda #$FF
|
||||||
|
sta .no_masks, y
|
||||||
|
dex
|
||||||
|
bpl -
|
||||||
|
tya
|
||||||
|
bne --
|
||||||
|
}
|
||||||
|
|
||||||
!macro HGR_CALC {
|
!macro HGR_CALC {
|
||||||
; in: A = HGR row (0x00..0xBF)
|
; in: A = HGR row (0x00..0xBF)
|
||||||
; out: A/X clobbered
|
; out: A/X clobbered
|
||||||
|
@ -126,6 +142,25 @@
|
||||||
sta (.dest1),y ; write the result
|
sta (.dest1),y ; write the result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
!macro COPY_BIT_DITHER .src1, .dest1, .copymasks, .dithermaskptr {
|
||||||
|
lda (.src1),y
|
||||||
|
eor (.dest1),y ; merge source and destination bits
|
||||||
|
and .copymasks,x ; isolate the bits to replace, zero the rest
|
||||||
|
and (.dithermaskptr),y
|
||||||
|
eor (.dest1),y ; unmerge source and destination bits, leaves 'to keep' destination bits intact
|
||||||
|
sta (.dest1),y ; write the result
|
||||||
|
}
|
||||||
|
|
||||||
|
!macro DITHER_MASK_DATA {
|
||||||
|
dither_masks
|
||||||
|
!byte %10110011
|
||||||
|
!byte %11100110
|
||||||
|
!byte %11001100
|
||||||
|
!byte %10011001
|
||||||
|
!byte %10110011
|
||||||
|
!byte %11100110
|
||||||
|
}
|
||||||
|
|
||||||
!macro COPY_BIT_ZP .src1, .dest1, .zpcopymask {
|
!macro COPY_BIT_ZP .src1, .dest1, .zpcopymask {
|
||||||
lda (.src1),y
|
lda (.src1),y
|
||||||
eor (.dest1),y ; merge source and destination bits
|
eor (.dest1),y ; merge source and destination bits
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11942238
|
!be24 11953057
|
||||||
!le16 5108
|
!le16 5108
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11892590
|
!be24 11902980
|
||||||
!le16 5405
|
!le16 5405
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11831498
|
!be24 11841888
|
||||||
!le16 3769
|
!le16 3769
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11844696
|
!be24 11855086
|
||||||
!le16 4189
|
!le16 4189
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11861141
|
!be24 11871531
|
||||||
!le16 5321
|
!le16 5321
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11880041
|
!be24 11890431
|
||||||
!le16 5949
|
!le16 5949
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11947346
|
!be24 11958165
|
||||||
!le16 410
|
!le16 410
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11948100
|
!be24 11958919
|
||||||
!le16 448
|
!le16 448
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11948548
|
!be24 11959367
|
||||||
!le16 303
|
!le16 303
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11900141
|
!be24 11910960
|
||||||
!le16 1242
|
!le16 1242
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11947832
|
!be24 11958651
|
||||||
!le16 67
|
!le16 67
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11942179
|
!be24 11952998
|
||||||
!le16 59
|
!le16 59
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11940645
|
!be24 11951464
|
||||||
!le16 1437
|
!le16 1437
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11926120
|
!be24 11936939
|
||||||
!le16 537
|
!le16 537
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11897995
|
!be24 11908385
|
||||||
!le16 2146
|
!le16 2575
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11901741
|
!be24 11912560
|
||||||
!le16 6600
|
!le16 6600
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11947756
|
!be24 11958575
|
||||||
!le16 76
|
!le16 76
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11942082
|
!be24 11952901
|
||||||
!le16 97
|
!le16 97
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11947899
|
!be24 11958718
|
||||||
!le16 201
|
!le16 201
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11926657
|
!be24 11937476
|
||||||
!le16 4436
|
!le16 4436
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11931093
|
!be24 11941912
|
||||||
!le16 1658
|
!le16 1658
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11932751
|
!be24 11943570
|
||||||
!le16 1053
|
!le16 1053
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11933804
|
!be24 11944623
|
||||||
!le16 3294
|
!le16 3294
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11937098
|
!be24 11947917
|
||||||
!le16 2954
|
!le16 2954
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11940052
|
!be24 11950871
|
||||||
!le16 479
|
!le16 479
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11940531
|
!be24 11951350
|
||||||
!le16 114
|
!le16 114
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11948851
|
!be24 11959670
|
||||||
!le16 2370
|
!le16 2370
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11913371
|
!be24 11924190
|
||||||
!le16 4383
|
!le16 4383
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11917754
|
!be24 11928573
|
||||||
!le16 2221
|
!le16 2221
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11885990
|
!be24 11896380
|
||||||
!le16 6600
|
!le16 6600
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11822943
|
!be24 11833333
|
||||||
!le16 8555
|
!le16 8555
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11835267
|
!be24 11845657
|
||||||
!le16 9429
|
!le16 9429
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11848885
|
!be24 11859275
|
||||||
!le16 12256
|
!le16 12256
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11866462
|
!be24 11876852
|
||||||
!le16 13579
|
!le16 13579
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11901383
|
!be24 11912202
|
||||||
!le16 358
|
!le16 358
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11908341
|
!be24 11919160
|
||||||
!le16 5030
|
!le16 5030
|
||||||
|
|
|
@ -4,5 +4,5 @@
|
||||||
; This file is automatically generated
|
; This file is automatically generated
|
||||||
;
|
;
|
||||||
!byte 0
|
!byte 0
|
||||||
!be24 11919975
|
!be24 11930794
|
||||||
!le16 6145
|
!le16 6145
|
||||||
|
|
Loading…
Reference in New Issue
Block a user