Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ; ---------------------------------------------------------------------------
- ; Subroutine to fade out and fade in
- ; ---------------------------------------------------------------------------
- ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
- Pal_FadeTo:
- move.w #$3F,($FFFFF626).w
- Pal_FadeTo2:
- moveq #0,d0
- lea ($FFFFFB00).w,a0
- move.b ($FFFFF626).w,d0
- adda.w d0,a0
- moveq #0,d1
- move.b ($FFFFF627).w,d0
- Pal_ToBlack:
- move.w d1,(a0)+
- dbf d0,Pal_ToBlack ; fill pallet with $000 (black)
- move.w #$15,d4
- loc_1DCE:
- move.b #$12,($FFFFF62A).w
- bsr.w DelayProgram
- move.b #$12,($FFFFF62A).w
- bsr.w DelayProgram
- bsr.s Pal_FadeIn
- bsr.w RunPLC_RAM
- dbf d4,loc_1DCE
- rts
- ; End of function Pal_FadeTo
- ; ---------------------------------------------------------------------------
- ; Pallet fade-in subroutine
- ; ---------------------------------------------------------------------------
- ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
- Pal_FadeIn: ; XREF: Pal_FadeTo
- moveq #0,d0
- lea ($FFFFFB00).w,a0
- lea ($FFFFFB80).w,a1
- move.b ($FFFFF626).w,d0
- adda.w d0,a0
- adda.w d0,a1
- move.b ($FFFFF627).w,d0
- loc_1DFA:
- bsr.s Pal_AddColor
- dbf d0,loc_1DFA
- cmpi.b #1,($FFFFFE10).w
- bne.s locret_1E24
- moveq #0,d0
- lea ($FFFFFA80).w,a0
- lea ($FFFFFA00).w,a1
- move.b ($FFFFF626).w,d0
- adda.w d0,a0
- adda.w d0,a1
- move.b ($FFFFF627).w,d0
- loc_1E1E:
- bsr.s Pal_AddColor
- dbf d0,loc_1E1E
- locret_1E24:
- rts
- ; End of function Pal_FadeIn
- ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
- Pal_AddColor: ; XREF: Pal_FadeIn
- move.b (a0),d2 ; d2 = B (actual)
- cmp.b (a1)+,d2 ; B (actual) = B (taget)?
- beq.s @outB
- addq.b #2,d2
- @outB: move.b d2,(a0)+ ; output B'
- move.b (a0),d2 ; d2 = GR (actual)
- move.b (a1)+,d5 ; d5 = GR (target)
- move.b d2,d3
- move.b d5,d6
- andi.b #$E0,d3 ; d3 = G0
- andi.b #$E0,d6
- cmp.b d6,d3
- beq.s @endG
- addi.b #$20,d3
- @endG: andi.b #$E,d2 ; d2 = 0R
- andi.b #$E,d5
- cmp.b d2,d5
- beq.s @endR
- addq.b #2,d2
- @endR: or.b d3,d2
- move.b d2,(a0)+
- rts
- ; End of function Pal_AddColor
- ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
- Pal_FadeFrom:
- move.w #$3F,($FFFFF626).w
- move.w #$15,d4
- loc_1E5C:
- move.b #$12,($FFFFF62A).w
- bsr.w DelayProgram
- move.b #$12,($FFFFF62A).w
- bsr.w DelayProgram
- bsr.s Pal_FadeOut
- bsr.w RunPLC_RAM
- dbf d4,loc_1E5C
- rts
- ; End of function Pal_FadeFrom
- ; ---------------------------------------------------------------------------
- ; Pallet fade-out subroutine
- ; ---------------------------------------------------------------------------
- ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
- Pal_FadeOut: ; XREF: Pal_FadeFrom
- moveq #0,d0
- lea ($FFFFFB00).w,a0
- move.b ($FFFFF626).w,d0
- adda.w d0,a0
- move.b ($FFFFF627).w,d0
- loc_1E82:
- bsr.s Pal_DecColor
- dbf d0,loc_1E82
- moveq #0,d0
- lea ($FFFFFA80).w,a0
- move.b ($FFFFF626).w,d0
- adda.w d0,a0
- move.b ($FFFFF627).w,d0
- loc_1E98:
- bsr.s Pal_DecColor
- dbf d0,loc_1E98
- rts
- ; End of function Pal_FadeOut
- ; ||||||||||||||| S U B R O U T I N E |||||||||||||||||||||||||||||||||||||||
- Pal_DecColor: ; XREF: Pal_FadeOut
- tst.b (a0)+ ; is B zero?
- beq.s @Green ; if yes, branch
- subq.b #2,-1(a0) ; decrease B
- @Green: move.b (a0),d2 ; d2 -> GR
- move.b d2,d3
- andi.b #$E0,d2 ; d2 -> G0
- beq.s @Red
- subi.b #$20,d2
- @Red: andi.b #$E,d3 ; d3 -> 0R
- beq.s @GRout
- subq.b #2,d3
- @GRout: or.b d2,d3
- move.b d3,(a0)+
- rts
- ; End of function Pal_DecColor
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement