mirror of
https://github.com/a2-4am/4sports.git
synced 2025-08-09 19:25:10 +00:00
76 lines
2.1 KiB
Plaintext
76 lines
2.1 KiB
Plaintext
!cpu 6502
|
|
!to "build/FXCODE/HGR1",plain
|
|
*=$6200
|
|
|
|
!source "src/fx/macros.a"
|
|
|
|
;HGRPrecomputed1Bit
|
|
jsr iBuildHGRTables
|
|
jsr iBuildHGRMirrorTables
|
|
jsr iBuildHGRMirrorCols
|
|
jsr iBuildHGRSparseBitmasks1Bit
|
|
+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
|
|
|
|
; main 1x2 block in top-left quadrant
|
|
.src1=*+1
|
|
lda $FDFD, y
|
|
eor (<.dest1), y
|
|
and copymasks1bit, x
|
|
eor (<.dest1), y
|
|
.dest1=*+1
|
|
sta $FDFD, y
|
|
.src2=*+1
|
|
lda $FDFD, y
|
|
eor (<.dest2), y
|
|
and copymasks1bit, x
|
|
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 .src1, .dest1, mirror_copymasks1bit
|
|
+COPY_BIT .src2, .dest2, mirror_copymasks1bit
|
|
|
|
; corresponding 1x2 block in bottom-right quadrant (opposite row, opposite column)
|
|
.mirror_src1=*+1
|
|
lda $FDFD, y
|
|
eor (<.mirror_dest1), y
|
|
and mirror_copymasks1bit, x
|
|
eor (<.mirror_dest1), y
|
|
.mirror_dest1=*+1
|
|
sta $FDFD, y
|
|
.mirror_src2=*+1
|
|
lda $FDFD, y
|
|
eor (<.mirror_dest2), y
|
|
and mirror_copymasks1bit, x
|
|
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 .mirror_src1, .mirror_dest1, copymasks1bit
|
|
+COPY_BIT .mirror_src2, .mirror_dest2, copymasks1bit
|
|
|
|
+INC_INPUT_AND_LOOP .input, .InputLoop
|
|
}
|
|
.end
|