
Click above to get retro games delivered to your door ever month!
X-Hacker.org- QWIKC20 & Multi-Level Virtual Windows - <b>video software</b>
[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
VIDEO SOFTWARE
Video Software Variables - These variables indicate the current video mode
and screen characteristics to which QWIK is writing and what is being
viewed on the CRT. There are several pointer macros listed that duplicate
some of the global variables, i.e., crtcolumns and crt_cols. It is
preferable to use the global ones, where the pointer macros are only needed
for handling exceptions.
Variable Description
------------ -----------------------------------------------------------
crt_cols (Type: macro) Defined as qscr.vcols (current virtual/actual
screen columns). qscr.vcols is initialized by
qinit/qreinit to the currently viewed number of CRT columns
for any card or video mode.
crtcolumns (Type: macro) Defined to directly access the 1-based
currently viewed number of CRT columns for any card or
video mode. This pseudo-variable may be assigned a value,
as well as evaluated.
crt_rows (Type: macro) Defined as qscr.vrows (current virtual/actual
screen rows). qscr.vrows is initialized by qinit/qreinit
to the currently viewed number of CRT rows for any card or
video mode.
egafontsize (Type: macro) Defined to directly access the 1-based number
of horizontal scan lines per character for EGA/MCGA/VGA.
This pseudo-variable may be assigned a value, as well as
evaluated.
egarows (Type: macro) Defined to directly access the 0-based number
of rows on the current screen for EGA, MCGA, and VGA. This
number is used to set crt_rows, which is done by qinit.
egarows may be assigned a value as well as evaluated.
inmultitask (Type: char) This flag indicates if MTVB is being used
for the screen in lieu of the normal screen. It defaults
to 0 and is possibly altered with setmultitask if the
multitasking software has be instructed to expect writing
direct to the MTVB (not direct screen).
page0seg (Type: unsigned int) Segment for the base page, page 0. In
multitasking environments, change this value to its video
display buffer. qscrseg and qscrofs should also be set.
qeosofs (Type: macro) Defined as vscr.veosofs, the 0-based offset
where q*eos functions will write.
qscrseg (Type: macro) Acesses the segment of vscr.vscrptr, the
segment for QWIKC writing which is altered when changing
pages. qscrseg=page0seg on page 0.
qscrofs (Type: unsigned int) Offset for QWIKC writing needed for
virtual screens. The usual value is 0 for the video pages.
qscrptr Combines qscrseg and qscrofs
qscr (Type: vscr_t) Structure containing essential variables for
QWIKC screen writing. This structure has several macros
that access its members:
Macro qscr member
-------- -----------
crt_rows vrows
crt_cols vcols
crt_size vsize
qsnow vsnow
qeosofs veosofs
qscrptr vscrptr
These macros are also described in this section. Since
they are part of a structure, qscr's members can be swapped
easily when writing to virtual screens. See the example
under qvscrtoscr.
qsnow (Type: macro) Set to 1 for wait-for-retrace (snow) while
QWIKC is writing.
qvideo_page (Type: char) Video page to which QWIKC is writing which is
set by qwritepage. It is initially 0.
qvideo_mode (Type: char) Video mode detected by qinit.
scroll_attr (Type: int) The attribute used to clear the blank row when
qeosln is used.
videomode (Type: macro) Defined to directly access the current video
mode in low memory. This pseudo-variable may be assigned
a value, as well as evaluated.
videopage (Type: macro) Defined to directly access the currently
viewed video page in low memory. This pseudo-variable may
be assigned a value, as well as evaluated.
vscr_t The typedef for the structure of essential variables for
QWIKC screen writing to virtual screens. This enables an
easy exchange of data between the CRT and virtual screens.
Online resources provided by: http://www.X-Hacker.org --- NG 2 HTML conversion by Dave Pearson