home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
POINT Software Programming
/
PPROG1.ISO
/
c
/
fli106c
/
blbvrvs.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
1992-03-11
|
1KB
|
71 lines
//
// The Fusion Library Interface for DOS
// Version 1.06c
// Copyright (C) 1990, 1991, 1992
// Software Dimensions
//
// BlazeClass
//
#ifndef __BCPLUSPLUS__
#pragma inline
#endif
#include "fli.h"
#ifdef __BCPLUSPLUS__
#pragma hdrstop
#endif
#define I asm
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
//
// BlockCopyVirtualToVisual()
//
// Copys a region from the virtual to visual screen
//
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
void BlazeClass::BlockCopyVirtualToVisual(int X,int Y,int Width,int Height,
void far *VIRTUAL)
{
if (Width<1 || Height<1)
return;
int ScreenWidth = BlazeClass::QuickWidth;
I push ds
void far *OUTPUT=BlazeClass::VIDEO;
I les di,OUTPUT
I lds si,VIRTUAL
_DX = ((Y*ScreenWidth)+(X*2));
_SI += _DX;
_DI += _DX;
I mov bx,[Width]
I mov dx,[Height]
I cld
looped:
I push si
I push di
I mov cx,bx
I rep movsw
I pop di
I pop si
I add si,ScreenWidth
I add di,ScreenWidth
I dec dx
I or dx,dx
I jne looped
I pop ds
}