{ SEAN PALMER >I was looking threw a Turbo C++ manual and noted some >Procedures that deal With the Text screen, such as >Get/PutTextImage. I was wondering if anyone has created one >for Pascal to move/save Text images around the screen like >in C++. Copies a rectangular section from one video buffer (any size) to another } Procedure moveScr(Var srcBuf; srcX, srcY, width, height, srcBufW, srcBufH : Word; Var dstBuf; dstX, dstY, dstBufW, dstBufH : Word); Assembler; Asm cld push ds lds si, srcBuf {calc src adr} mov ax, srcBufW mul srcY add ax, srcX shl ax, 1 add si, ax les di, dstBuf {calc dst adr} mov ax, dstBufW mul dstY add ax, dstX shl ax, 1 add di, ax mov dx, height {num lines} mov ax, SrcBufW {calc ofs between src lines} sub ax, width shl ax, 1 mov bx, dstBufW {calc ofs between dst lines} sub bx, width shl bx, 1 @L: mov cx, width rep movsw add si, ax add di, bx dec dx jnz @L pop ds end; Var s : Array [0..24,0..79,0..1] of Char Absolute $B800 : 0; d : Array [0..11,0..39,0..1] of Char; i : Integer; begin For i := 1 to 25 * 10 do Write('(--)(--)'); moveScr(s,0,0,40,12,80,25,d,0,0,40,12); {copy 40x12 block to buf} readln; moveScr(d,0,0,38,10,40,12,s,5,5,80,25); {copy part back to screen} readln; end.