Pararena2/Sources/RenderAsm1.c

1 line
85 KiB
C
Raw Permalink Normal View History

/*============================================================*/ /*============================================================*/ /*== ==*/ /*== 1-Bit Assembler Rendering Routines ==*/ /*== ==*/ /*============================================================*/ /*============================================================*/ /*======================================================== Includes */ #include "Globals.h" #include "UnivUtilities.h" #include "RenderAsm1.h" /*======================================================== Functions */ /*======================================================== DropDoorToWorkMapAsm1 */ void DropDoorToWorkMapAsm1 (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 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 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 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 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 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 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 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 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 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 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 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 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 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0),(a1) ; move row 14 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0),(a1) ; move row 15 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0),(a1) ; move row 16 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0),(a1) ; move row 17 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0),(a1) ; move row 18 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0),(a1) ; move row 19 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0),(a1) ; move row 20 adda.w d0, a0 ; add row offset to src adda.w d1, a1 ; add row offset to dest move.l (a0),(a1) ; move row 21 } destAddress = theDoor.backDestAddr[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 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 adda.w