Code: Select all
MOVE.w $FFFF8002.w, D0 ; var indicating which processing to perform
; 0 will never overflow (so will skip all processing)
; 8000 will overflow once (and afterwards be 0)
; C000 will overflow twice (and afterwards be 0)
; E000 will overflow three times (and afterwards be 0)
; F000 will overflow four times (and afterwards be 0)
ADD.w D0, D0
BCC.w @skipPaletteFunc_000036C6 ; skip palette processing if D0 add didn't cause overflow
; palette processing here
@skipPaletteFunc_000036C6:
ADD.w D0, D0
BCC.w @loc_000036DC
; optional processing 2
@loc_000036DC:
ADD.w D0, D0
BCC.w @loc_000036F2
; optional processing 3
@loc_000036F2:
ADD.w D0, D0
BCC.w @loc_00003708
; optional processing 4
@loc_00003708:
RTS