
Click above to get retro games delivered to your door ever month!
X-Hacker.org- QWIKC20 & Multi-Level Virtual Windows - <b>---------------------------------------------------------------------------</b>
[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
---------------------------------------------------------------------------
qscrtovscr QWIKC
---------------------------------------------------------------------------
Function Copies a rows-by-columns block on the current screen to
another location on a virtual screen.
Syntax void qscrtovscr( unsigned char row, unsigned char col,
unsigned char rows, unsigned char cols,
unsigned char vrow, unsigned char vcol,
unsigned char vwidth, void far *vscrptr );
Remarks row, col, rows, and cols locates the block on the current
screen (scr) as specified by qscr. This block will be
copied to the virtual screen (vscr) at the location of vrow
and vcol. But since vscr may have a different column width
than scr, vwidth sets the width. vscrptr is the base ad-
dress of the virtual screen. By changing qscr, you can even
copy blocks from one virtual screen to another! Only the
scr side checks for possible snow.
Return value None.
Screens All video pages and virtual screens.
EOS Unaltered.
Restrictions Stay within the screen limits. Not intended for copying
between video pages (esp. CGA).
Example Copy a 12x40 block from the CRT screen at (5,10) to a
virtual screen at (3,2) and look at the result on the CRT:
#include <stdio.h>
#include <conio.h>
#include "qwikc20.h"
#define vscrrows 20
#define vscrcols 60
/* Storage size in bytes required is: rows * cols << 1 */
int vscr[vscrrows][vscrcols]; /* 20 x 60 virtual screen */
vscr_t crt,myvscr;
main() {
qinit();
/* create specs for virtual screen */
myvscr.vrows=vscrrows;
myvscr.vcols=vscrcols;
myvscr.vsize=sizeof(vscr);
myvscr.vsnow=0; /* qwikest when 0 */
myvscr.veosofs=0;
myvscr.vscrptr=𝓋
qfill( 1, 1, crt_rows, crt_cols, WHITE+BLUE_BG, '*' ); /* Fill CRT */
crt=qscr; /* Save CRT specs */
qscr=myvscr; /* Set virtual specs */
qfill(1, 1, vscrrows, vscrcols, BLACK+BROWN_BG, '?'); /* Fill vscr */
qscr=crt; /* Restore CRT specs */
qscrtovscr( 5, 10, 12, 40, 3, 2, vscrcols, vscr ); /* Copy block */
qstoretoscr( 1, 1, vscrrows, vscrcols, vscr ); /* Take a look */
getch();
return;
}
See Also: qvscrtoscr()
Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson