[Back to GRAPHICS SWAG index] [Back to Main SWAG index] [Original]
Procedure GetImage (X1,Y1,X2,Y2:Integer;P:Pointer); assembler;
asm
mov bx,320
push ds
les di,P
mov ax,0A000h
mov ds,ax
mov ax,Y1
mov dx,320
mul dx
add ax,X1
mov si,ax
mov ax,X2
sub ax,X1
inc ax
mov dx,ax
stosw
mov ax,Y2
sub ax,Y1
inc ax
stosw
mov cx,ax
@@1:
mov cx,dx
shr cx,1
cld
rep movsw
test dx,1
jz @@2
movsb
@@2:
add si,bx
sub si,dx
dec ax
jnz @@1
pop ds
end;
Procedure PutImage (X1,Y1:Integer;P:Pointer); assembler;
asm
mov bx,320
push ds
lds si,P
mov ax,0A000h
mov es,ax
mov ax,Y1
mov dx,320
mul dx
add ax,X1
mov di,ax
lodsw
mov dx,ax
lodsw
@@1:
mov cx,dx
shr cx,1
cld
rep movsw
test dx,1
jz @@2
movsb
@@2:
add di,bx
sub di,dx
dec ax
jnz @@1
pop ds
end;
Procedure Init;
begin
GetMem (Buf1,64000);
GetMem(Buf2,64000);
end;
begin
init;
dographicstuff;
GetImage( 0,0,319,199,Buf1); {store page 1}
domoregraphicstuff;
GetImage( 0,0,319,199,Buf2); {store page 2}
PutImage (0,0, Buf1); {restore page 1}
end.
[Back to GRAPHICS SWAG index] [Back to Main SWAG index] [Original]