mirror of
https://github.com/a2-4am/4cade.git
synced 2024-11-19 02:10:39 +00:00
factor out more FX routines
This commit is contained in:
parent
d75c1cc039
commit
7ea8a0624d
@ -159,14 +159,17 @@ gGlobalPrefsStore
|
||||
; be set to $55 as part of the 64K memory test,
|
||||
; which is apparently one of the acceptable values)
|
||||
|
||||
+DEFINE_INDIRECT_VECTOR iHGRPrecomputed3Bit, HGRPrecomputed3Bit
|
||||
+DEFINE_INDIRECT_VECTOR iRippleCoordinates3Bit, RippleCoordinates3Bit
|
||||
+DEFINE_INDIRECT_VECTOR iReverseCoordinates3Bit, ReverseCoordinates3Bit
|
||||
+DEFINE_INDIRECT_VECTOR iSetupPrecomputed3Bit, SetupPrecomputed3Bit
|
||||
+DEFINE_INDIRECT_VECTOR iDHGRPrecomputed2Bit, DHGRPrecomputed2Bit
|
||||
+DEFINE_INDIRECT_VECTOR iHGRPrecomputed2Bit, HGRPrecomputed2Bit
|
||||
+DEFINE_INDIRECT_VECTOR iRippleCoordinates2Bit, RippleCoordinates2Bit
|
||||
+DEFINE_INDIRECT_VECTOR iReverseCoordinates2Bit, ReverseCoordinates2Bit
|
||||
+DEFINE_INDIRECT_VECTOR iBuildDHGRSparseBitmasks2Bit, BuildDHGRSparseBitmasks2Bit
|
||||
+DEFINE_INDIRECT_VECTOR iBuildHGRSparseBitmasks2Bit, BuildHGRSparseBitmasks2Bit
|
||||
+DEFINE_INDIRECT_VECTOR iDHGRPrecomputed1Bit, DHGRPrecomputed1Bit
|
||||
+DEFINE_INDIRECT_VECTOR iHGRPrecomputed1Bit, HGRPrecomputed1Bit
|
||||
+DEFINE_INDIRECT_VECTOR iBuildDHGRSparseBitmasks1Bit, BuildDHGRSparseBitmasks1Bit
|
||||
+DEFINE_INDIRECT_VECTOR iBuildHGRSparseBitmasks1Bit, BuildHGRSparseBitmasks1Bit
|
||||
@ -251,5 +254,8 @@ EvenLasterMover
|
||||
!warn "OKVS CACHE at ", OKVS_CACHE
|
||||
!warn "LCRAM2 ends at ", LCRAM2_END
|
||||
!warn "RELBASE = ", $10000 - (LastMover - FirstMover)
|
||||
!if ($10000 - (LastMover - FirstMover) < $D500) { ; end of font data
|
||||
!serious "code is too large, RELBASE overlaps with font data"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -193,14 +193,17 @@ iRippleCoordinates1Bit4 = iRippleCoordinates1Bit3-3
|
||||
iBuildHGRSparseBitmasks1Bit = iRippleCoordinates1Bit4-3
|
||||
iBuildDHGRSparseBitmasks1Bit = iBuildHGRSparseBitmasks1Bit-3
|
||||
iHGRPrecomputed1Bit = iBuildDHGRSparseBitmasks1Bit-3
|
||||
iBuildHGRSparseBitmasks2Bit = iHGRPrecomputed1Bit-3
|
||||
iDHGRPrecomputed1Bit = iHGRPrecomputed1Bit-3
|
||||
iBuildHGRSparseBitmasks2Bit = iDHGRPrecomputed1Bit-3
|
||||
iBuildDHGRSparseBitmasks2Bit = iBuildHGRSparseBitmasks2Bit-3
|
||||
iReverseCoordinates2Bit = iBuildDHGRSparseBitmasks2Bit-3
|
||||
iRippleCoordinates2Bit = iReverseCoordinates2Bit-3
|
||||
iHGRPrecomputed2Bit = iRippleCoordinates2Bit-3
|
||||
iSetupPrecomputed3Bit = iHGRPrecomputed2Bit-3
|
||||
iDHGRPrecomputed2Bit = iHGRPrecomputed2Bit-3
|
||||
iSetupPrecomputed3Bit = iDHGRPrecomputed2Bit-3
|
||||
iReverseCoordinates3Bit = iSetupPrecomputed3Bit-3
|
||||
iRippleCoordinates3Bit = iReverseCoordinates3Bit-3
|
||||
iHGRPrecomputed3Bit = iRippleCoordinates3Bit-3
|
||||
|
||||
MockingboardStuff = $FFF8 ; bit 7 = 1 if SC-01 speech chip present (Speech I)
|
||||
; bit 6 = 1 if SSI-263 speech chip present (Mockingboard "B"-"D")
|
||||
|
232
src/fx.lib.a
232
src/fx.lib.a
@ -25,16 +25,19 @@
|
||||
; - RippleCoordinates1Bit3
|
||||
; - RippleCoordinates1Bit4
|
||||
; - HGRPrecomputed1Bit
|
||||
; - DHGRPrecomputed1Bit
|
||||
|
||||
; - BuildHGRSparseBitmasks2Bit
|
||||
; - BuildDHGRSparseBitmasks2Bit
|
||||
; - ReverseCoordinates2Bit
|
||||
; - RippleCoordinates2Bit
|
||||
; - HGRPrecomputed2Bit
|
||||
; - DHGRPrecomputed2Bit
|
||||
|
||||
; - SetupPrecomputed3Bit
|
||||
; - ReverseCoordinates3Bit
|
||||
; - RippleCoordinates3Bit
|
||||
; - HGRPrecomputed3Bit
|
||||
|
||||
!source "src/fx/macros.hgr.a"
|
||||
!source "src/fx/macros.dhgr.a"
|
||||
@ -495,6 +498,98 @@ HGRPrecomputed1Bit
|
||||
.end
|
||||
}
|
||||
|
||||
!zone {
|
||||
DHGRPrecomputed1Bit
|
||||
jsr BuildDHGRSparseBitmasks1Bit
|
||||
jsr BuildHGRTables
|
||||
jsr BuildHGRMirrorTables
|
||||
jsr BuildDHGRMirrorCols
|
||||
+COPY_TO_0 .start, .end
|
||||
jmp .InputLoop
|
||||
.start
|
||||
!pseudopc 0 {
|
||||
.Exit1Bit rts
|
||||
.InputLoop
|
||||
ldy #0
|
||||
.input=*+1
|
||||
ldx Coordinates1Bit ; 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 .src1, .src2, .dest1, .dest2
|
||||
+ROW_X_TO_MIRROR_ADDRESSES .mirror_src1, .mirror_src2, .mirror_dest1, .mirror_dest2
|
||||
|
||||
inc .input
|
||||
lda (.input), y
|
||||
+HIGH_3_LOW_5 .input
|
||||
sty <.y
|
||||
clc
|
||||
.bankloop
|
||||
lda copymasks1bit, x
|
||||
beq +
|
||||
sta <.copymask
|
||||
|
||||
; main 1x2 block in top-left quadrant
|
||||
.src1=*+1
|
||||
lda $FDFD, y
|
||||
eor (<.dest1), y
|
||||
.copymask=*+1
|
||||
and #$FD ; SMC
|
||||
eor (<.dest1), y
|
||||
.dest1=*+1
|
||||
sta $FDFD, y
|
||||
.src2=*+1
|
||||
lda $FDFD, y
|
||||
eor (<.dest2), y
|
||||
and <.copymask
|
||||
eor (<.dest2), y
|
||||
.dest2=*+1
|
||||
sta $FDFD, y
|
||||
|
||||
; corresponding 1x2 block in bottom-left quadrant (opposite row, original column)
|
||||
+COPY_BIT_ZP .mirror_src1, .mirror_dest1, .copymask
|
||||
+COPY_BIT_ZP .mirror_src2, .mirror_dest2, .copymask
|
||||
|
||||
+
|
||||
lda mirror_copymasks1bit, x ; exists at the same address in mainmem and auxmem but each is different
|
||||
beq +
|
||||
sta <.mirror_copymask
|
||||
; corresponding 1x2 block in bottom-right quadrant (opposite row, opposite column)
|
||||
lda mirror_cols, y ; duplicated in mainmem and auxmem
|
||||
tay
|
||||
.mirror_src1=*+1
|
||||
lda $FDFD, y
|
||||
eor (<.mirror_dest1), y
|
||||
.mirror_copymask=*+1
|
||||
and #$FD ; SMC
|
||||
eor (<.mirror_dest1), y
|
||||
.mirror_dest1=*+1
|
||||
sta $FDFD, y
|
||||
.mirror_src2=*+1
|
||||
lda $FDFD, y
|
||||
eor (<.mirror_dest2), y
|
||||
and <.mirror_copymask
|
||||
eor (<.mirror_dest2), y
|
||||
.mirror_dest2=*+1
|
||||
sta $FDFD, y
|
||||
|
||||
; corresponding 1x2 block in top-right quadrant (same row, opposite column)
|
||||
+COPY_BIT_ZP .src1, .dest1, .mirror_copymask
|
||||
+COPY_BIT_ZP .src2, .dest2, .mirror_copymask
|
||||
+
|
||||
bcs +
|
||||
sta $C003
|
||||
sta $C005
|
||||
.y=*+1
|
||||
ldy #$FD
|
||||
sec
|
||||
bcs .bankloop
|
||||
+ sta $C002
|
||||
sta $C004
|
||||
|
||||
+INC_INPUT_AND_LOOP .input, .InputLoop
|
||||
}
|
||||
.end
|
||||
}
|
||||
|
||||
BuildHGRSparseBitmasks2Bit
|
||||
lda #%10000011
|
||||
sta copymasks2bit
|
||||
@ -791,6 +886,81 @@ HGRPrecomputed2Bit
|
||||
.end
|
||||
}
|
||||
|
||||
!zone {
|
||||
DHGRPrecomputed2Bit
|
||||
jsr BuildDHGRSparseBitmasks2Bit
|
||||
jsr BuildHGRTables
|
||||
jsr BuildDHGRMirrorCols
|
||||
+COPY_TO_0 .start, .end
|
||||
jmp .InputLoop
|
||||
|
||||
.start
|
||||
!pseudopc 0 {
|
||||
.Exit2Bit rts
|
||||
.InputLoop
|
||||
ldy #0
|
||||
.input=*+1
|
||||
ldx Coordinates2Bit ; first value: HGR row + 1
|
||||
beq .Exit2Bit ; if 0 then we're done
|
||||
+ROW_X_TO_2BIT_BASE_ADDRESSES .src1, .src2, .dest1, .dest2
|
||||
|
||||
inc <.input
|
||||
lda (<.input), y
|
||||
+HIGH_3_LOW_5 .input
|
||||
|
||||
; main 2x2 block in left half
|
||||
clc
|
||||
- lda copymasks2bit, x
|
||||
beq +
|
||||
.src1=*+1
|
||||
lda $FDFD, y
|
||||
eor (<.dest1), y
|
||||
and copymasks2bit, x
|
||||
eor (<.dest1), y
|
||||
.dest1=*+1
|
||||
sta $FDFD, y
|
||||
.src2=*+1
|
||||
lda $FDFD, y
|
||||
eor (<.dest2), y
|
||||
and copymasks2bit, x
|
||||
eor (<.dest2), y
|
||||
.dest2=*+1
|
||||
sta $FDFD, y
|
||||
+ bcs +
|
||||
sta $C003
|
||||
sta $C005
|
||||
sec
|
||||
bcs -
|
||||
+ sta $C002
|
||||
sta $C004
|
||||
|
||||
; corresponding 2x2 block in right half (same row, opposite column)
|
||||
lda mirror_cols, y
|
||||
tay
|
||||
clc
|
||||
- lda mirror_copymasks2bit, x
|
||||
beq +
|
||||
+COPY_BIT .src1, .dest1, mirror_copymasks2bit
|
||||
+COPY_BIT .src2, .dest2, mirror_copymasks2bit
|
||||
+ bcs +
|
||||
sta $C003
|
||||
sta $C005
|
||||
sec
|
||||
bcs -
|
||||
+ sta $C002
|
||||
sta $C004
|
||||
|
||||
inc <.input
|
||||
+LBNE .InputLoop
|
||||
bit $c000
|
||||
bmi +
|
||||
inc <.input+1
|
||||
jmp .InputLoop
|
||||
+ rts
|
||||
}
|
||||
.end
|
||||
}
|
||||
|
||||
SetupPrecomputed3Bit
|
||||
; build regular HGR lookup tables, then split them
|
||||
jsr BuildHGRTables
|
||||
@ -951,3 +1121,65 @@ RippleCoordinates3Bit
|
||||
!byte $1E,$F3,$1F,$54,$00,$00,$AA,$06
|
||||
!byte $02,$00,$04,$00,$06,$00,$0C,$00
|
||||
!byte $16,$00,$1A,$00
|
||||
|
||||
!zone {
|
||||
HGRPrecomputed3Bit
|
||||
jsr SetupPrecomputed3Bit
|
||||
+COPY_TO_0 .start, .end
|
||||
jmp .InputLoop
|
||||
.start
|
||||
!pseudopc 0 {
|
||||
.Exit3Bit rts
|
||||
.InputLoop
|
||||
ldy #0
|
||||
.input=*+1
|
||||
lda Coordinates3Bit
|
||||
bmi .Exit3Bit ; if high bit is 1 then we're done
|
||||
cmp #$40
|
||||
php
|
||||
tax
|
||||
+ROW_X_TO_3BIT_BASE_ADDRESSES .src1, .src2, .src3, .dest1, .dest2, .dest3
|
||||
|
||||
inc <.input
|
||||
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 copymasks3bit, x
|
||||
eor (<.dest1), y
|
||||
.dest1=*+1
|
||||
sta $FDFD, y
|
||||
.src2=*+1
|
||||
lda $FDFD, y
|
||||
eor (<.dest2), y
|
||||
and copymasks3bit, x
|
||||
eor (<.dest2), y
|
||||
.dest2=*+1
|
||||
sta $FDFD, y
|
||||
.src3=*+1
|
||||
lda $FDFD, y
|
||||
eor (<.dest3), y
|
||||
and copymasks3bit, x
|
||||
eor (<.dest3), y
|
||||
.dest3=*+1
|
||||
sta $FDFD, y
|
||||
|
||||
inc <.input
|
||||
bne .InputLoop
|
||||
bit KBD
|
||||
bmi .Exit3Bit
|
||||
inc <.input+1
|
||||
bne .InputLoop ; always branches
|
||||
}
|
||||
.end
|
||||
}
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
+FX_INITONCE_1BIT CoordinatesFile, Start
|
||||
Start
|
||||
+FX_PRECOMPUTED_1BIT_DHGR Coordinates1Bit
|
||||
jmp iDHGRPrecomputed1Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "BUBBLES.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_1BIT CoordinatesFile, Start
|
||||
jsr iReverseCoordinates1Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_1BIT_DHGR Coordinates1Bit
|
||||
jmp iDHGRPrecomputed1Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "BUBBLES.DATA"
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "BUTTERFLY.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
jsr iReverseCoordinates2Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "BUTTERFLY.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
jsr iRippleCoordinates2Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "BUTTERFLY.DATA"
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
+FX_INITONCE_1BIT CoordinatesFile, Start
|
||||
Start
|
||||
+FX_PRECOMPUTED_1BIT_DHGR Coordinates1Bit
|
||||
jmp iDHGRPrecomputed1Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "CORNER4.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_1BIT CoordinatesFile, Start
|
||||
jsr iReverseCoordinates1Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_1BIT_DHGR Coordinates1Bit
|
||||
jmp iDHGRPrecomputed1Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "CORNER4.DATA"
|
||||
|
@ -11,7 +11,7 @@
|
||||
jsr iRippleCoordinates1Bit2
|
||||
|
||||
Start
|
||||
+FX_PRECOMPUTED_1BIT_DHGR Coordinates1Bit
|
||||
jmp iDHGRPrecomputed1Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "CORNER4.DATA"
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "HEART.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
jsr iReverseCoordinates2Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "HEART.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
jsr iRippleCoordinates2Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "HEART.DATA"
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
+FX_INITONCE_1BIT CoordinatesFile, Start
|
||||
Start
|
||||
+FX_PRECOMPUTED_1BIT_DHGR Coordinates1Bit
|
||||
jmp iDHGRPrecomputed1Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "IRIS.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_1BIT CoordinatesFile, Start
|
||||
jsr iReverseCoordinates1Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_1BIT_DHGR Coordinates1Bit
|
||||
jmp iDHGRPrecomputed1Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "IRIS.DATA"
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "MAPLE.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
jsr iReverseCoordinates2Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "MAPLE.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
jsr iRippleCoordinates2Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "MAPLE.DATA"
|
||||
|
@ -4,97 +4,6 @@
|
||||
|
||||
!source "src/fx/fx.hgr.precomputed.1bit.a"
|
||||
|
||||
!macro FX_PRECOMPUTED_1BIT_DHGR .coords {
|
||||
jsr iBuildDHGRSparseBitmasks1Bit
|
||||
jsr iBuildHGRTables
|
||||
jsr iBuildHGRMirrorTables
|
||||
jsr iBuildDHGRMirrorCols
|
||||
+COPY_TO_0 start, end
|
||||
jmp InputLoop
|
||||
start
|
||||
!pseudopc 0 {
|
||||
Exit1Bit rts
|
||||
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 src1, src2, dest1, dest2
|
||||
+ROW_X_TO_MIRROR_ADDRESSES mirror_src1, mirror_src2, mirror_dest1, mirror_dest2
|
||||
|
||||
inc input
|
||||
lda (input), y
|
||||
+HIGH_3_LOW_5 input
|
||||
sty <y
|
||||
clc
|
||||
bankloop
|
||||
lda copymasks1bit, x
|
||||
beq +
|
||||
sta <copymask
|
||||
|
||||
; main 1x2 block in top-left quadrant
|
||||
src1=*+1
|
||||
lda $FDFD, y
|
||||
eor (<dest1), y
|
||||
copymask=*+1
|
||||
and #$FD ; SMC
|
||||
eor (<dest1), y
|
||||
dest1=*+1
|
||||
sta $FDFD, y
|
||||
src2=*+1
|
||||
lda $FDFD, y
|
||||
eor (<dest2), y
|
||||
and <copymask
|
||||
eor (<dest2), y
|
||||
dest2=*+1
|
||||
sta $FDFD, y
|
||||
|
||||
; corresponding 1x2 block in bottom-left quadrant (opposite row, original column)
|
||||
+COPY_BIT_ZP mirror_src1, mirror_dest1, copymask
|
||||
+COPY_BIT_ZP mirror_src2, mirror_dest2, copymask
|
||||
|
||||
+
|
||||
lda mirror_copymasks1bit, x ; exists at the same address in mainmem and auxmem but each is different
|
||||
beq +
|
||||
sta <mirror_copymask
|
||||
; corresponding 1x2 block in bottom-right quadrant (opposite row, opposite column)
|
||||
lda mirror_cols, y ; duplicated in mainmem and auxmem
|
||||
tay
|
||||
mirror_src1=*+1
|
||||
lda $FDFD, y
|
||||
eor (<mirror_dest1), y
|
||||
mirror_copymask=*+1
|
||||
and #$FD ; SMC
|
||||
eor (<mirror_dest1), y
|
||||
mirror_dest1=*+1
|
||||
sta $FDFD, y
|
||||
mirror_src2=*+1
|
||||
lda $FDFD, y
|
||||
eor (<mirror_dest2), y
|
||||
and <mirror_copymask
|
||||
eor (<mirror_dest2), y
|
||||
mirror_dest2=*+1
|
||||
sta $FDFD, y
|
||||
|
||||
; corresponding 1x2 block in top-right quadrant (same row, opposite column)
|
||||
+COPY_BIT_ZP src1, dest1, mirror_copymask
|
||||
+COPY_BIT_ZP src2, dest2, mirror_copymask
|
||||
+
|
||||
bcs +
|
||||
sta $C003
|
||||
sta $C005
|
||||
y=*+1
|
||||
ldy #$FD
|
||||
sec
|
||||
bcs bankloop
|
||||
+ sta $C002
|
||||
sta $C004
|
||||
|
||||
+INC_INPUT_AND_LOOP input, InputLoop
|
||||
}
|
||||
end
|
||||
}
|
||||
|
||||
!macro FX_PRECOMPUTED_1BIT_DHGR_DITHER .coords, .endcoords {
|
||||
jsr iBuildDHGRDitherMasks
|
||||
jsr iBuildDHGRSparseBitmasks1Bit
|
||||
|
@ -3,80 +3,6 @@
|
||||
;
|
||||
!source "src/fx/fx.hgr.precomputed.2bit.a"
|
||||
|
||||
!macro FX_PRECOMPUTED_2BIT_DHGR .coords {
|
||||
jsr iBuildDHGRSparseBitmasks2Bit
|
||||
jsr iBuildHGRTables
|
||||
jsr iBuildDHGRMirrorCols
|
||||
+COPY_TO_0 start, end
|
||||
jmp InputLoop
|
||||
|
||||
start
|
||||
!pseudopc 0 {
|
||||
Exit2Bit rts
|
||||
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 src1, src2, dest1, dest2
|
||||
|
||||
inc <input
|
||||
lda (<input), y
|
||||
+HIGH_3_LOW_5 input
|
||||
|
||||
; main 2x2 block in left half
|
||||
clc
|
||||
- lda copymasks2bit, x
|
||||
beq +
|
||||
src1=*+1
|
||||
lda $FDFD, y
|
||||
eor (<dest1), y
|
||||
and copymasks2bit, x
|
||||
eor (<dest1), y
|
||||
dest1=*+1
|
||||
sta $FDFD, y
|
||||
src2=*+1
|
||||
lda $FDFD, y
|
||||
eor (<dest2), y
|
||||
and copymasks2bit, x
|
||||
eor (<dest2), y
|
||||
dest2=*+1
|
||||
sta $FDFD, y
|
||||
+ bcs +
|
||||
sta $C003
|
||||
sta $C005
|
||||
sec
|
||||
bcs -
|
||||
+ sta $C002
|
||||
sta $C004
|
||||
|
||||
; corresponding 2x2 block in right half (same row, opposite column)
|
||||
lda mirror_cols, y
|
||||
tay
|
||||
clc
|
||||
- lda mirror_copymasks2bit, x
|
||||
beq +
|
||||
+COPY_BIT src1, dest1, mirror_copymasks2bit
|
||||
+COPY_BIT src2, dest2, mirror_copymasks2bit
|
||||
+ bcs +
|
||||
sta $C003
|
||||
sta $C005
|
||||
sec
|
||||
bcs -
|
||||
+ sta $C002
|
||||
sta $C004
|
||||
|
||||
inc <input
|
||||
+LBNE InputLoop
|
||||
bit $c000
|
||||
bmi +
|
||||
inc <input+1
|
||||
jmp InputLoop
|
||||
+ rts
|
||||
}
|
||||
end
|
||||
}
|
||||
|
||||
!macro FX_PRECOMPUTED_2BIT_DHGR_DITHER .coords, .endcoords {
|
||||
jsr iBuildDHGRDitherMasks
|
||||
jsr iBuildDHGRSparseBitmasks2Bit
|
||||
|
@ -11,7 +11,7 @@
|
||||
jsr iRippleCoordinates1Bit2
|
||||
|
||||
Start
|
||||
+FX_PRECOMPUTED_1BIT_DHGR Coordinates1Bit
|
||||
jmp iDHGRPrecomputed1Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "IRIS.DATA"
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
+FX_INITONCE_1BIT CoordinatesFile, Start
|
||||
Start
|
||||
+FX_PRECOMPUTED_1BIT_DHGR Coordinates1Bit
|
||||
jmp iDHGRPrecomputed1Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "SLOW.STAR.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_1BIT CoordinatesFile, Start
|
||||
jsr iReverseCoordinates1Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_1BIT_DHGR Coordinates1Bit
|
||||
jmp iDHGRPrecomputed1Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "SLOW.STAR.DATA"
|
||||
|
@ -11,7 +11,7 @@
|
||||
jsr iRippleCoordinates1Bit2
|
||||
|
||||
Start
|
||||
+FX_PRECOMPUTED_1BIT_DHGR Coordinates1Bit
|
||||
jmp iDHGRPrecomputed1Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "SLOW.STAR.DATA"
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
+FX_INITONCE_1BIT CoordinatesFile, Start
|
||||
Start
|
||||
+FX_PRECOMPUTED_1BIT_DHGR Coordinates1Bit
|
||||
jmp iDHGRPrecomputed1Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "SNOWFLAKE.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_1BIT CoordinatesFile, Start
|
||||
jsr iReverseCoordinates1Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_1BIT_DHGR Coordinates1Bit
|
||||
jmp iDHGRPrecomputed1Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "SNOWFLAKE.DATA"
|
||||
|
@ -11,7 +11,7 @@
|
||||
jsr iRippleCoordinates1Bit2
|
||||
|
||||
Start
|
||||
+FX_PRECOMPUTED_1BIT_DHGR Coordinates1Bit
|
||||
jmp iDHGRPrecomputed1Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "SNOWFLAKE.DATA"
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "SOFT.IRIS.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
jsr iReverseCoordinates2Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "SOFT.IRIS.DATA"
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "STAR.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
jsr iReverseCoordinates2Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "STAR.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
jsr iRippleCoordinates2Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "STAR.DATA"
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "STAR7.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
jsr iReverseCoordinates2Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "STAR7.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
jsr iRippleCoordinates2Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "STAR7.DATA"
|
||||
|
@ -11,7 +11,7 @@
|
||||
jsr iRippleCoordinates1Bit4
|
||||
|
||||
Start
|
||||
+FX_PRECOMPUTED_1BIT_DHGR Coordinates1Bit
|
||||
jmp iDHGRPrecomputed1Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "CORNER4.DATA"
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "WAVY.IRIS.DATA"
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "W.IR.BLOOM.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
jsr iReverseCoordinates2Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "W.IR.BLOOM.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
jsr iReverseCoordinates2Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "WAVY.IRIS.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
jsr iRippleCoordinates2Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "WAVY.IRIS.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_2BIT CoordinatesFile, Start
|
||||
jsr iRippleCoordinates2Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_2BIT_DHGR Coordinates2Bit
|
||||
jmp iDHGRPrecomputed2Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "W.IR.BLOOM.DATA"
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||
Start
|
||||
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||
jmp iHGRPrecomputed3Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "APPLE.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||
jsr iReverseCoordinates3Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||
jmp iHGRPrecomputed3Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "APPLE.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||
jsr iRippleCoordinates3Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||
jmp iHGRPrecomputed3Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "APPLE.DATA"
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||
Start
|
||||
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||
jmp iHGRPrecomputed3Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "BOLT.DATA"
|
||||
|
@ -13,7 +13,7 @@
|
||||
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||
jsr iReverseCoordinates3Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||
jmp iHGRPrecomputed3Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "BOLT.DATA"
|
||||
|
@ -13,7 +13,7 @@
|
||||
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||
jsr iRippleCoordinates3Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||
jmp iHGRPrecomputed3Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "BOLT.DATA"
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||
Start
|
||||
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||
jmp iHGRPrecomputed3Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "FLOWER.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||
jsr iReverseCoordinates3Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||
jmp iHGRPrecomputed3Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "FLOWER.DATA"
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||
Start
|
||||
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||
jmp iHGRPrecomputed3Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "FLOWER.RAD.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||
jsr iReverseCoordinates3Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||
jmp iHGRPrecomputed3Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "FLOWER.RAD.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||
jsr iRippleCoordinates3Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||
jmp iHGRPrecomputed3Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "FLOWER.RAD.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||
jsr iRippleCoordinates3Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||
jmp iHGRPrecomputed3Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "FLOWER.DATA"
|
||||
|
@ -9,7 +9,7 @@
|
||||
|
||||
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||
Start
|
||||
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||
jmp iHGRPrecomputed3Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "MANDELBROT.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||
jsr iReverseCoordinates3Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||
jmp iHGRPrecomputed3Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "MANDELBROT.DATA"
|
||||
|
@ -10,7 +10,7 @@
|
||||
+FX_INITONCE_3BIT CoordinatesFile, Start
|
||||
jsr iRippleCoordinates3Bit
|
||||
Start
|
||||
+FX_PRECOMPUTED_3BIT Coordinates3Bit
|
||||
jmp iHGRPrecomputed3Bit
|
||||
|
||||
CoordinatesFile
|
||||
+PSTRING "MANDELBROT.DATA"
|
||||
|
@ -28,31 +28,6 @@ dither3_lo = $6980 ; $80 bytes
|
||||
|
||||
!source "src/fx/macros.a"
|
||||
|
||||
!macro ROW_X_TO_3BIT_BASE_ADDRESSES {
|
||||
; X = $00..$3F, mapping to row 0, 3, 6, 9, 12, ... 189
|
||||
lda hgrlo3a, x
|
||||
sta <dest1
|
||||
sta <src1
|
||||
lda hgrhi3a, x
|
||||
sta <dest1+1
|
||||
eor #$60
|
||||
sta <src1+1
|
||||
lda hgrlo3b, x
|
||||
sta <dest2
|
||||
sta <src2
|
||||
lda hgrhi3b, x
|
||||
sta <dest2+1
|
||||
eor #$60
|
||||
sta <src2+1
|
||||
lda hgrlo3c, x
|
||||
sta <dest3
|
||||
sta <src3
|
||||
lda hgrhi3c, x
|
||||
sta <dest3+1
|
||||
eor #$60
|
||||
sta <src3+1
|
||||
}
|
||||
|
||||
!macro FX_INITONCE_3BIT .CoordinatesFile, .Start {
|
||||
InitOnce
|
||||
bit .Start
|
||||
@ -67,67 +42,6 @@ InitOnce
|
||||
ror EndCoordinates3Bit
|
||||
}
|
||||
|
||||
!macro FX_PRECOMPUTED_3BIT .coords {
|
||||
jsr iSetupPrecomputed3Bit
|
||||
+COPY_TO_0 start, end
|
||||
jmp InputLoop
|
||||
start
|
||||
!pseudopc 0 {
|
||||
Exit3Bit rts
|
||||
InputLoop
|
||||
ldy #0
|
||||
input=*+1
|
||||
lda .coords
|
||||
bmi Exit3Bit ; if high bit is 1 then we're done
|
||||
cmp #$40
|
||||
php
|
||||
tax
|
||||
+ROW_X_TO_3BIT_BASE_ADDRESSES
|
||||
|
||||
inc <input
|
||||
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 copymasks3bit, x
|
||||
eor (<dest1), y
|
||||
dest1=*+1
|
||||
sta $FDFD, y
|
||||
src2=*+1
|
||||
lda $FDFD, y
|
||||
eor (<dest2), y
|
||||
and copymasks3bit, x
|
||||
eor (<dest2), y
|
||||
dest2=*+1
|
||||
sta $FDFD, y
|
||||
src3=*+1
|
||||
lda $FDFD, y
|
||||
eor (<dest3), y
|
||||
and copymasks3bit, x
|
||||
eor (<dest3), y
|
||||
dest3=*+1
|
||||
sta $FDFD, y
|
||||
|
||||
inc <input
|
||||
bne InputLoop
|
||||
bit KBD
|
||||
bmi Exit3Bit
|
||||
inc <input+1
|
||||
bne InputLoop ; always branches
|
||||
}
|
||||
end
|
||||
}
|
||||
|
||||
!macro FX_PRECOMPUTED_3BIT_DITHER .coords, .endcoords {
|
||||
jsr iBuildHGRDitherMasks
|
||||
jsr iSetupPrecomputed3Bit
|
||||
@ -204,7 +118,7 @@ input=*+1
|
||||
sta dither2_ptr
|
||||
lda dither3_lo, x
|
||||
sta dither3_ptr
|
||||
+ROW_X_TO_3BIT_BASE_ADDRESSES
|
||||
+ROW_X_TO_3BIT_BASE_ADDRESSES src1, src2, src3, dest1, dest2, dest3
|
||||
|
||||
iny
|
||||
lda (<input), y
|
||||
|
@ -119,6 +119,31 @@
|
||||
sta <.src2+1
|
||||
}
|
||||
|
||||
!macro ROW_X_TO_3BIT_BASE_ADDRESSES .src1, .src2, .src3, .dest1, .dest2, .dest3 {
|
||||
; X = $00..$3F, mapping to row 0, 3, 6, 9, 12, ... 189
|
||||
lda hgrlo3a, x
|
||||
sta <.dest1
|
||||
sta <.src1
|
||||
lda hgrhi3a, x
|
||||
sta <.dest1+1
|
||||
eor #$60
|
||||
sta <.src1+1
|
||||
lda hgrlo3b, x
|
||||
sta <.dest2
|
||||
sta <.src2
|
||||
lda hgrhi3b, x
|
||||
sta <.dest2+1
|
||||
eor #$60
|
||||
sta <.src2+1
|
||||
lda hgrlo3c, x
|
||||
sta <.dest3
|
||||
sta <.src3
|
||||
lda hgrhi3c, x
|
||||
sta <.dest3+1
|
||||
eor #$60
|
||||
sta <.src3+1
|
||||
}
|
||||
|
||||
!macro HGR_CALC_ROUTINES {
|
||||
HGRCalc
|
||||
; in: A = HGR row (0x00..0xBF)
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15903445
|
||||
!be24 15893310
|
||||
!le16 5130
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15848103
|
||||
!be24 15837968
|
||||
!le16 5732
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15779870
|
||||
!be24 15769735
|
||||
!le16 4194
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15794584
|
||||
!be24 15784449
|
||||
!le16 4652
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15813299
|
||||
!be24 15803164
|
||||
!le16 5621
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15834340
|
||||
!be24 15824205
|
||||
!le16 6199
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15908575
|
||||
!be24 15898440
|
||||
!le16 410
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15909329
|
||||
!be24 15899194
|
||||
!le16 449
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15909778
|
||||
!be24 15899643
|
||||
!le16 303
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 12676088
|
||||
!be24 12665953
|
||||
!le16 1652
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15856475
|
||||
!be24 15846340
|
||||
!le16 1640
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15909061
|
||||
!be24 15898926
|
||||
!le16 67
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15903386
|
||||
!be24 15893251
|
||||
!le16 59
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15901806
|
||||
!be24 15891671
|
||||
!le16 1426
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15886572
|
||||
!be24 15876437
|
||||
!le16 557
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15853835
|
||||
!be24 15843700
|
||||
!le16 2640
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15858473
|
||||
!be24 15848338
|
||||
!le16 473
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15858946
|
||||
!be24 15848811
|
||||
!le16 7564
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15908985
|
||||
!be24 15898850
|
||||
!le16 76
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15903232
|
||||
!be24 15893097
|
||||
!le16 154
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15909128
|
||||
!be24 15898993
|
||||
!le16 201
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15887129
|
||||
!be24 15876994
|
||||
!le16 4334
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15891463
|
||||
!be24 15881328
|
||||
!le16 1733
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15893196
|
||||
!be24 15883061
|
||||
!le16 1181
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15894377
|
||||
!be24 15884242
|
||||
!le16 3394
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15897771
|
||||
!be24 15887636
|
||||
!le16 3429
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15901200
|
||||
!be24 15891065
|
||||
!le16 479
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15901679
|
||||
!be24 15891544
|
||||
!le16 127
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15910081
|
||||
!be24 15899946
|
||||
!le16 2370
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15871915
|
||||
!be24 15861780
|
||||
!le16 5083
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15876998
|
||||
!be24 15866863
|
||||
!le16 2485
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15840539
|
||||
!be24 15830404
|
||||
!le16 7564
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15770287
|
||||
!be24 15760152
|
||||
!le16 9583
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15784064
|
||||
!be24 15773929
|
||||
!le16 10520
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15799236
|
||||
!be24 15789101
|
||||
!le16 14063
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15818920
|
||||
!be24 15808785
|
||||
!le16 15420
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15858115
|
||||
!be24 15847980
|
||||
!le16 358
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15866510
|
||||
!be24 15856375
|
||||
!le16 5405
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15879483
|
||||
!be24 15869348
|
||||
!le16 7089
|
||||
|
@ -4,5 +4,5 @@
|
||||
; This file is automatically generated
|
||||
;
|
||||
!byte 0
|
||||
!be24 15765939
|
||||
!be24 15755804
|
||||
!le16 4348
|
||||
|
Loading…
Reference in New Issue
Block a user