;license:MIT ;(c) 2021 by 4am ; !cpu 6502 !to "build/FX.INDEXED/SHR.RADIAL",plain *=$A000 shrlo = $201 ; $C8 bytes CoordinatesFileCopy = $2C8; $11 bytes shrhi = $301 ; $C8 bytes mirror_cols = $1E29 ; $A0 bytes but clobbers $28 bytes before mirror_rows = $1F01 ; $C7 bytes coords = $9F00 ; $1F41 bytes last_coords = coords+$1F3E !source "src/fx/macros.a" !source "src/fx/fx.shr.common.a" +BUILD_SHR_MIRROR_ROWS_AND_COLS mirror_rows, mirror_cols ;X=0 +BUILD_SHR_LOOKUP_TABLES shrlo, shrhi ;X=0 +COPY_SCB_AND_PALETTES ;X=0 ;WRITEAUXMEM active +SHR_COPY_TO_STAGE_2 jmp stage2 !pseudopc *-$300 { stage2 +LOAD_SHR_COORDINATES_AT coords, CoordinatesFile, CoordinatesFileCopy ;WRITEMAINMEM active lda #$80 sta coords-2 +COPY_TO_0 startzp, endzp +WRITE_AUX jsr LoopBL +WRITE_MAIN +SHR_RESTORE_FROM_STAGE_2 +READ_RAM1_WRITE_RAM1 rts startzp !pseudopc 0 { ; bottom-left quadrant (opposite row, original column, reverse input order) LoopBL ldx last_coords ; SMC bmi LoopTL lda mirror_rows, x tax ldy #1 lda (LoopBL+1), y tay jsr copy lda