Pararena2/Sources/RenderAsm4.c

1 line
218 KiB
C
Raw Normal View History

/*============================================================*/ /*============================================================*/ /*== ==*/ /*== Assembler Rendering Routines ==*/ /*== ==*/ /*============================================================*/ /*============================================================*/ /*======================================================== Includes */ #include "Globals.h" #include "UnivUtilities.h" #include "RenderAsm4.h" /*======================================================== Functions */ /*======================================================== DropDoorToWorkMapAsm4 */ void DropDoorToWorkMapAsm4 (void) { long srcAddress, destAddress; srcAddress = theDoor.srcAddrs[theDoor.doorOpen][theDoor.doorState]; destAddress = theDoor.workDestAddr[theDoor.doorOpen]; asm 68000 { move.l srcAddress, a0 ; src bitmap address move.l destAddress, a1 ; dest screen address ; 0 = source 1 = dest move.w partsRowBytes, d0 ; next row offset move.w workRowBytes, d1 ; next row offset subi.w #12, d0 ; compensate for (a0)+ increment subi.w #12, d1 ; compensate for (a1)+ increment move.l (a0)+,(a1)+ ; move row 1 move.l (a0)+,(a1)+ ; move row 1 move.l (a0)+,(a1)+ ; move row 1 move.l (a0),(a1) ; move row 1 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0)+,(a1)+ ; move row 2 move.l (a0)+,(a1)+ ; move row 2 move.l (a0)+,(a1)+ ; move row 2 move.l (a0),(a1) ; move row 2 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0)+,(a1)+ ; move row 3 move.l (a0)+,(a1)+ ; move row 3 move.l (a0)+,(a1)+ ; move row 3 move.l (a0),(a1) ; move row 3 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0)+,(a1)+ ; move row 4 move.l (a0)+,(a1)+ ; move row 4 move.l (a0)+,(a1)+ ; move row 4 move.l (a0),(a1) ; move row 4 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0)+,(a1)+ ; move row 5 move.l (a0)+,(a1)+ ; move row 5 move.l (a0)+,(a1)+ ; move row 5 move.l (a0),(a1) ; move row 5 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0)+,(a1)+ ; move row 6 move.l (a0)+,(a1)+ ; move row 6 move.l (a0)+,(a1)+ ; move row 6 move.l (a0),(a1) ; move row 6 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0)+,(a1)+ ; move row 7 move.l (a0)+,(a1)+ ; move row 7 move.l (a0)+,(a1)+ ; move row 7 move.l (a0),(a1) ; move row 7 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0)+,(a1)+ ; move row 8 move.l (a0)+,(a1)+ ; move row 8 move.l (a0)+,(a1)+ ; move row 8 move.l (a0),(a1) ; move row 8 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0)+,(a1)+ ; move row 9 move.l (a0)+,(a1)+ ; move row 9 move.l (a0)+,(a1)+ ; move row 9 move.l (a0),(a1) ; move row 9 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0)+,(a1)+ ; move row 10 move.l (a0)+,(a1)+ ; move row 10 move.l (a0)+,(a1)+ ; move row 10 move.l (a0),(a1) ; move row 10 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0)+,(a1)+ ; move row 11 move.l (a0)+,(a1)+ ; move row 11 move.l (a0)+,(a1)+ ; move row 11 move.l (a0),(a1) ; move row 11 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0)+,(a1)+ ; move row 12 move.l (a0)+,(a1)+ ; move row 12 move.l (a0)+,(a1)+ ; move row 12 move.l (a0),(a1) ; move row 12 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0)+,(a1)+ ; move row 13 move.l (a0)+,(a1)+