LoadSpecialDynPLC: moveq #0,d0 move.b $1A(a0),d0 cmp.b ($FFFFF766).w,d0 beq.w locret_974FC move.b d0,($FFFFF766).w lea (TailsDynPLC).l,a2 add.w d0,d0 adda.w (a2,d0.w),a2 move.w (a2)+,d5 subq.w #1,d5 bmi.w locret_974FC moveq #0,d3 lea (RAM_Graphics_Translation_Tails+$FF000000).w,a3 lea byte_974FE,a4 loc_97402: moveq #0,d0 moveq #0,d1 move.w (a2)+,d1 move.w d1,d4 rol.w #4,d4 andi.w #$F,d4 addq.w #1,d3 add.w d4,d3 andi.w #$FFF,d1 lsl.l #5,d1 lea (Art_Tails).l,a1 adda.l d1,a1 loc_97422: rept $20 ; Repeat the following lines $20 times move.b (a1)+,d0 move.b (a4,d0.w),(a3)+ endr dbf d4,loc_97422 dbf d5,loc_97402 move.l #RAM_Graphics_Translation_Tails,d1 move.w #$F000,d2 lsl.w #4,d3 jmp (DMA_68KtoVRAM).w locret_974FC: rts loc2_97402: ; jsr Process_DMA loc2_97402_2: moveq #0,d0 moveq #0,d1 move.w (a2)+,d1 move.w d1,d4 rol.w #4,d4 andi.w #$F,d4 addq.w #1,d3 add.w d4,d3 andi.w #$FFF,d1 lsl.l #5,d1 lea (Art_Tails).l,a1 adda.l d1,a1 loc2_97422: rept $20 move.b (a1)+,d0 move.b (a4,d0.w),(a3)+ endr dbf d4,loc2_97422 dbf d5,loc2_97402_2 move.l #RAM_Graphics_Translation_Obj05,d1 move.w #$F200,d2 lsl.w #4,d3 jsr (DMA_68KtoVRAM).w rts ; Table which contains what indexes to switch to lookup_tbl macro dc.b \1+0, \1+1, \1+2, \1+$B, \1+$A, \1+$F, \1+6, \1+7, \1+8, \1+9, \1+$A, \1+$B, \1+$C, \1+$D, \1+$E, \1+$F endm ; Table which contains what indexes to switch to byte_974FE: ; dc.b 0, 1, 2, $B, $C, $F, 6, 7, 8, 9, $A, $B, $C, $D, $E, $F lookup_tbl 0 lookup_tbl $10 lookup_tbl $20 lookup_tbl $B0 lookup_tbl $A0 lookup_tbl $F0 lookup_tbl $60 lookup_tbl $70 lookup_tbl $80 lookup_tbl $90 lookup_tbl $A0 lookup_tbl $B0 lookup_tbl $C0 lookup_tbl $D0 lookup_tbl $E0 lookup_tbl $F0 even