4sports/src/fx/fx.dhgr.48boxes.common.unused.a
2021-02-16 01:01:22 -05:00

255 lines
13 KiB
Plaintext

!macro AUXMEM {
sta $C055
lda auxsrc_hgrhi, x
sta src+1
}
!macro MAINMEM {
sta $C054
}
!macro INX_AND_RECALC {
inx
lda hgrlo, x
sta src
sta dst
lda hgrhi, x
sta dst+1
eor #$60
sta src+1
}
!macro BITCOPY .copy, .mask {
!if .mask != %00000000 {
!if .mask = %11111111 {
!if .copy != 0 {
lda (src), y
} else {
lda #$00
}
sta (dst), y
} else {
lda (dst), y
!if .copy != 0 {
eor (src), y
} else {
bit src
}
and #.mask
eor (dst), y
sta (dst), y
}
}
}
!macro MIDDLE_STAGE_DHGR .copy, .rowcount, .firstrow, .edge_left_mask_main, .edge_right_mask_main, .left_mask_main, .right_mask_main, .edge_left_mask_aux, .edge_right_mask_aux, .left_mask_aux, .right_mask_aux {
lda #(.rowcount-2) ;k_set_row_count
sta rowcount
txa ;k_set_first_row
adc #(.firstrow-1)
tax
iny ;k_iny
sty tmpy ;k_save_y
jsr + ;k_middle_jsr, k_current_page
-
+INX_AND_RECALC ;k_inx_and_recalc
+BITCOPY .copy, .left_mask_main ;k_bitcopy, k_left_mask_main
iny ;k_iny
iny ;k_iny
+BITCOPY .copy, .right_mask_main ;k_bitcopy, k_right_mask_main
+AUXMEM ;k_switch_to_aux
+BITCOPY .copy, .right_mask_aux ;k_bitcopy, k_right_mask_aux
ldy tmpy ;k_restore_y
+BITCOPY .copy, .left_mask_aux ;k_bitcopy, k_left_mask_aux
+MAINMEM ;k_switch_to_main
dec rowcount ;k_middle_branch
bpl -
+
+INX_AND_RECALC ;k_inx_and_recalc
+BITCOPY .copy, .edge_left_mask_main ;k_bitcopy, k_edge_left_mask_main
iny ;k_iny
+BITCOPY .copy, %11111111 ;k_bitcopy, k_full_mask
iny ;k_iny
+BITCOPY .copy, .edge_right_mask_main ;k_bitcopy, k_edge_right_mask_main
+AUXMEM ;k_switch_to_aux
+BITCOPY .copy, .edge_right_mask_aux ;k_bitcopy, k_edge_right_mask_aux
dey ;k_dey
+BITCOPY .copy, %11111111 ;k_bitcopy, k_full_mask
dey ;k_dey
+BITCOPY .copy, .edge_left_mask_aux ;k_bitcopy, k_edge_left_mask_aux
+MAINMEM ;k_switch_to_main
rts
}
!macro OUTER_STAGE_DHGR .copy, .rowcount, .firstrow, .edge_left_mask_main, .edge_right_mask_main, .left_mask_main, .right_mask_main, .edge_left_mask_aux, .edge_right_mask_aux, .left_mask_aux, .right_mask_aux {
lda #(.rowcount-2) ;k_set_row_count
sta rowcount
txa ;k_set_first_row
adc #(.firstrow-1)
tax
sty tmpy ;k_save_y
jsr + ;k_outer_jsr
-
+INX_AND_RECALC ;k_inx_and_recalc
+BITCOPY .copy, .left_mask_main ;k_bitcopy, k_left_mask_main
iny ;k_iny
iny ;k_iny
iny ;k_iny
iny ;k_iny
+BITCOPY .copy, .right_mask_main ;k_bitcopy, k_right_mask_main
+AUXMEM ;k_switch_to_aux
+BITCOPY .copy, .right_mask_aux ;k_bitcopy, k_right_mask_aux
ldy tmpy ;k_restore_y
+BITCOPY .copy, .left_mask_aux ;k_bitcopy, k_left_mask_aux
+MAINMEM ;k_switch_to_main
dec rowcount ;k_outer_branch
bpl -
+
+INX_AND_RECALC ;k_inx_and_recalc
+BITCOPY .copy, .edge_left_mask_main ;k_bitcopy, k_edge_left_mask_main
iny ;k_iny
+BITCOPY .copy, %11111111 ;k_bitcopy, k_full_mask
iny ;k_iny
+BITCOPY .copy, %11111111 ;k_bitcopy, k_full_mask
iny ;k_iny
+BITCOPY .copy, %11111111 ;k_bitcopy, k_full_mask
iny ;k_iny
+BITCOPY .copy, .edge_right_mask_main ;k_bitcopy, k_edge_right_mask_main
+AUXMEM ;k_switch_to_aux
+BITCOPY .copy, .edge_right_mask_aux ;k_bitcopy, k_edge_right_mask_aux
dey ;k_dey
+BITCOPY .copy, %11111111 ;k_bitcopy, k_full_mask
dey ;k_dey
+BITCOPY .copy, %11111111 ;k_bitcopy, k_full_mask
dey ;k_dey
+BITCOPY .copy, %11111111 ;k_bitcopy, k_full_mask
dey ;k_dey
+BITCOPY .copy, .edge_left_mask_aux ;k_bitcopy, k_edge_left_mask_aux
+MAINMEM ;k_switch_to_main
rts
}
!macro STAGE0 .copy {
txa ;k_set_first_row
adc #($0F-1)
tax
iny ;k_iny
iny ;k_iny
+INX_AND_RECALC ;k_inx_and_recalc
+BITCOPY .copy, %00011111 ;k_bitcopy, k_left_mask_main
+AUXMEM ;k_switch_to_aux
+BITCOPY .copy, %01111100 ;k_bitcopy, k_left_mask_aux
+MAINMEM ;k_switch_to_main
+INX_AND_RECALC ;k_inx_and_recalc
+BITCOPY .copy, %00011111 ;k_bitcopy, k_left_mask_main
+AUXMEM ;k_switch_to_aux
+BITCOPY .copy, %01111100 ;k_bitcopy, k_left_mask_aux
+MAINMEM ;k_switch_to_main
rts
}
!macro STAGE1 .copy {
txa ;k_set_first_row
adc #($0E-1)
tax
iny ;k_iny
iny ;k_iny
+INX_AND_RECALC ;k_inx_and_recalc
+BITCOPY .copy, %11111111 ;k_bitcopy, k_full_mask
+AUXMEM ;k_switch_to_aux
+BITCOPY .copy, %11111111 ;k_bitcopy, k_full_mask
+MAINMEM ;k_switch_to_main
+INX_AND_RECALC ;k_inx_and_recalc
+BITCOPY .copy, %11111111 ;k_bitcopy, k_full_mask
+AUXMEM ;k_switch_to_aux
+BITCOPY .copy, %11111111 ;k_bitcopy, k_full_mask
+MAINMEM ;k_switch_to_main
+INX_AND_RECALC ;k_inx_and_recalc
+BITCOPY .copy, %11111111 ;k_bitcopy, k_full_mask
+AUXMEM ;k_switch_to_aux
+BITCOPY .copy, %11111111 ;k_bitcopy, k_full_mask
+MAINMEM ;k_switch_to_main
+INX_AND_RECALC ;k_inx_and_recalc
+BITCOPY .copy, %11111111 ;k_bitcopy, k_full_mask
+AUXMEM ;k_switch_to_aux
+BITCOPY .copy, %11111111 ;k_bitcopy, k_full_mask
+MAINMEM ;k_switch_to_main
rts
}
;clear00
*=$7000
+STAGE0 0
;clear01
*=$7100
+STAGE1 0
;clear02-0F
*=$7200
+MIDDLE_STAGE_DHGR 0, $05, $0D, %01100000, %00000000, %01100000, %00000000, %00000000, %00000011, %00000000, %00000011
*=$7300
+MIDDLE_STAGE_DHGR 0, $07, $0C, %01111000, %00000000, %00011000, %00000000, %00000000, %00001111, %00000000, %00001100
*=$7400
+MIDDLE_STAGE_DHGR 0, $09, $0B, %11111111, %00000000, %00000111, %00000000, %00000000, %11111111, %00000000, %01110000
*=$7500
+MIDDLE_STAGE_DHGR 0, $0B, $0A, %11111111, %00000001, %00000000, %00000001, %01000000, %11111111, %01000000, %00000000
*=$7600
+MIDDLE_STAGE_DHGR 0, $0D, $09, %11111111, %00000111, %00000000, %00000110, %01110000, %11111111, %00110000, %00000000
*=$7700
+MIDDLE_STAGE_DHGR 0, $0F, $08, %11111111, %00011111, %00000000, %00011000, %01111100, %11111111, %00001100, %00000000
*=$7800
+MIDDLE_STAGE_DHGR 0, $11, $07, %11111111, %11111111, %00000000, %01100000, %11111111, %11111111, %00000011, %00000000
*=$7900
+OUTER_STAGE_DHGR 0, $13, $06, %01100000, %00000000, %01100000, %00000000, %00000000, %00000011, %00000000, %00000011
*=$7A00
+OUTER_STAGE_DHGR 0, $15, $05, %01111000, %00000000, %00011000, %00000000, %00000000, %00001111, %00000000, %00001100
*=$7B00
+OUTER_STAGE_DHGR 0, $17, $04, %11111111, %00000000, %00000111, %00000000, %00000000, %11111111, %00000000, %01110000
*=$7C00
+OUTER_STAGE_DHGR 0, $19, $03, %11111111, %00000001, %00000000, %00000001, %01000000, %11111111, %01000000, %00000000
*=$7D00
+OUTER_STAGE_DHGR 0, $1B, $02, %11111111, %00000111, %00000000, %00000110, %01110000, %11111111, %00110000, %00000000
*=$7E00
+OUTER_STAGE_DHGR 0, $1D, $01, %11111111, %00011111, %00000000, %00011000, %01111100, %11111111, %00001100, %00000000
*=$7F00
+OUTER_STAGE_DHGR 0, $1F, $00, %11111111, %11111111, %00000000, %01100000, %11111111, %11111111, %00000011, %00000000
;copy02-08
; cp rowc frow edgeleft edgeright left right edgeltaux edgertaux leftaux rightaux
*=$A000
+MIDDLE_STAGE_DHGR 1, $05, $0D, %01100000, %00000000, %01100000, %00000000, %00000000, %00000011, %00000000, %00000011
*=$A100
+MIDDLE_STAGE_DHGR 1, $07, $0C, %01111000, %00000000, %00011000, %00000000, %00000000, %00001111, %00000000, %00001100
*=$A200
+MIDDLE_STAGE_DHGR 1, $09, $0B, %11111111, %00000000, %00000111, %00000000, %00000000, %11111111, %00000000, %01110000
*=$A300
+MIDDLE_STAGE_DHGR 1, $0B, $0A, %11111111, %00000001, %00000000, %00000001, %01000000, %11111111, %01000000, %00000000
*=$A400
+MIDDLE_STAGE_DHGR 1, $0D, $09, %11111111, %00000111, %00000000, %00000110, %01110000, %11111111, %00110000, %00000000
*=$A500
+MIDDLE_STAGE_DHGR 1, $0F, $08, %11111111, %00011111, %00000000, %00011000, %01111100, %11111111, %00001100, %00000000
*=$A600
+MIDDLE_STAGE_DHGR 1, $11, $07, %11111111, %11111111, %00000000, %01100000, %11111111, %11111111, %00000011, %00000000
;copy09-0F
*=$A700
+OUTER_STAGE_DHGR 1, $13, $06, %01100000, %00000000, %01100000, %00000000, %00000000, %00000011, %00000000, %00000011
*=$A800
+OUTER_STAGE_DHGR 1, $15, $05, %01111000, %00000000, %00011000, %00000000, %00000000, %00001111, %00000000, %00001100
*=$A900
+OUTER_STAGE_DHGR 1, $17, $04, %11111111, %00000000, %00000111, %00000000, %00000000, %11111111, %00000000, %01110000
*=$AA00
+OUTER_STAGE_DHGR 1, $19, $03, %11111111, %00000001, %00000000, %00000001, %01000000, %11111111, %01000000, %00000000
*=$AB00
+OUTER_STAGE_DHGR 1, $1B, $02, %11111111, %00000111, %00000000, %00000110, %01110000, %11111111, %00110000, %00000000
*=$AC00
+OUTER_STAGE_DHGR 1, $1D, $01, %11111111, %00011111, %00000000, %00011000, %01111100, %11111111, %00001100, %00000000
*=$AD00
+OUTER_STAGE_DHGR 1, $1F, $00, %11111111, %11111111, %00000000, %01100000, %11111111, %11111111, %00000011, %00000000
;copy00
*=$AE00
+STAGE0 1
;copy01
*=$AF00
+STAGE1 1