home *** CD-ROM | disk | FTP | other *** search
/ Point Programming 1 / PPROG1.ISO / c / vlib107 / viewlib.man < prev    next >
Encoding:
Text File  |  1993-10-01  |  24.8 KB  |  868 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.                                        ViewLib
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.                                    Reference Manual
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.                          Copyright 1992, DB/Soft Publishing.
  31.                                  All rights reserved.
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.                                 Printed in the U.S.A.
  41.  
  42.                              Version 1.00, first printing
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.           Copyright________________________________________________________
  51.  
  52.           This software is protected under  United States Copyright Law and
  53.           International Treaty provisions.  DB/Soft Publishing reserves all
  54.           rights to ViewLib except for the following:
  55.  
  56.           A limited license is hereby granted allowing you use and evaluate
  57.           ViewLib for up  to 30 days.  You may also distribute unregistered
  58.           copies of  ViewLib  in its  entirety  to any  parties  interested
  59.           provided no  modification of  the  files in  the ViewLib  archive
  60.           occurs.    The  maximum  transaction  related  to  selling  media
  61.           containing unregistered copies of ViewLib  (eg Shareware vendors)
  62.           may not exceed $10.00.   Conversion to a more  convenient archive
  63.           format  is allowed.    All other  uses  of ViewLib  violate  this
  64.           license and are hereby expressly disallowed.
  65.  
  66.                         Copyright 1992, by DB/Soft Publishing,
  67.                                  All Rights Reserved.
  68.  
  69.                     3200 Truxel Rd #199, Sacramento, CA 95833 USA
  70.  
  71.                               Telephone: (916) 927-6951
  72.  
  73.                                  BBS: (916) 927-2349
  74.  
  75.           Limited Warranty_________________________________________________
  76.  
  77.           DB/Soft Publishing  grants no warranties, express  or implied, by
  78.           statute  or otherwise,  regarding this  software and  its related
  79.           materials, their fitness for any purpose, their quality, or their
  80.           merchantability.  In  no way shall  DB/Soft Publishing be  liable
  81.           for  any  special, consequential,  other  damages  for breach  of
  82.           warranty.
  83.  
  84.           This Statement  shall be  construed, interpreted and  governed by
  85.           the laws of the State of California.
  86.  
  87.           This  warranty will be replaced by a limited 90-day warranty that
  88.           covers the diskette, software and documentation upon registration
  89.           of ViewLib.
  90.  
  91.  
  92.           Registering ViewLib______________________________________________
  93.  
  94.           ViewLib  is an example  of software marketed  under the Shareware
  95.           concept.  The premise is simple:  you may evaluate  ViewLib for a
  96.           reasonable period  of time  (30 days  maximum)  during which  you
  97.           decide if  it is  a library  worth owning  and using  for viewing
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.           files  from within your applications.   If so,  you must register
  106.           ViewLib, using order.doc for  ordering information.  If, after  a
  107.           reasonable evaluation period, you decide not to register ViewLib,
  108.           you then must discontinue its use.
  109.  
  110.           This  provides me  with a way  to market  software with  very low
  111.           advertising  overhead, which  results in  a price  savings passed
  112.           directly on to you.  And, it provides you with a chance to 'play'
  113.           with my product and decide if it meets your needs. 
  114.  
  115.           As an incentive to speed the registration process, only the small
  116.           memory  model of  the MS-Dos  version ViewLib  is distributed  as
  117.           shareware.  Upon registration, you will receive all the available
  118.           memory models: small, medium, compact and large, for  Borland C++
  119.           and  Microsoft C (MS-Dos); OS/2 versions for IBM C Set/2 (32-bit)
  120.           and  Microsoft C 6.0  (16-bit).   The OS/2  versions are  for VIO
  121.           programming only, and behave identically to the MS-Dos versions.
  122.  
  123.  
  124.           Getting Help_____________________________________________________
  125.  
  126.           There are several ways of contacting the author, Jeff Dunlop, for
  127.           technical assistance if you get stuck.  From cheapest and slowest
  128.           to most expensive and fastest:
  129.  
  130.                - Fidonet's SHAREWRE echo
  131.  
  132.                - ILink's Shareware conference
  133.  
  134.                - Fidonet netmail at 1:203/16
  135.  
  136.                - Compuserve mail at 72147,3055
  137.  
  138.                - Internet at 72147.3055@compuserve.com
  139.  
  140.                - The DB/Soft Online at (916) 927-2349
  141.  
  142.                 - By mail at 3200 Truxel Rd #199 Sacramento CA 95833
  143.  
  144.           The best method of  contacting the author depends on  the type of
  145.           assistance you need.   If it's a rather complicated  problem, you
  146.           will probably  be far better served  if you prepare a  message in
  147.           advance  and upload  it  with a  source  example to  the  DB/Soft
  148.           Online.  We can then test it and offer suggestions.  If it's just
  149.           a question or suggestion about ViewLib capabilities, the ILink or
  150.           Fidonet conferences  will work best.   Fidonet netmail privileges
  151.           can be difficult to  get, but offer excellent timeliness  at very
  152.           low connect time.  Check your local Fidonet BBS if interested.
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.                                   Table of Contents
  161.  
  162.  
  163.                Chapter 1 Introduction .................................. 2
  164.                     Features ........................................... 2
  165.                     Requirements ....................................... 2
  166.                     Getting Started .................................... 3
  167.  
  168.                Chapter 2 Function Reference ............................ 4
  169.                     vlLister ........................................... 4
  170.                     vlGetVidMode ....................................... 7
  171.                     vlGetVidBase ....................................... 7
  172.                     vlGetCols .......................................... 8
  173.                     vlGetRows .......................................... 9
  174.                     vlIsDV ............................................. 9
  175.                     vlIsEgaVga ......................................... 10
  176.                     vlIsShift .......................................... 10
  177.                     vlIsRShift ......................................... 10
  178.                     vlIsLShift ......................................... 10
  179.                     vlIsMono ........................................... 11
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  
  190.  
  191.  
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.  
  203.  
  204.  
  205.  
  206.  
  207.                                           1
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.           Chapter 1 
  216.  
  217.           Introduction_____________________________________________________
  218.  
  219.  
  220.           Features_________________________________________________________
  221.  
  222.           ViewLib provides an excellent means  to providing report and file
  223.           viewing from  within  your C  applications.   Some  of  ViewLib's
  224.           features include:
  225.  
  226.               -     View any size file, whether it be on disk or in memory.
  227.  
  228.               -     Resize and move the view window at will
  229.  
  230.               -     Completely define the color of the text and border.  
  231.  
  232.               -     Completely  define  the  characters  that  compose  the
  233.                     border.
  234.  
  235.               -     Define the initial size of the View window.
  236.  
  237.               -     ViewLib can  operate with as  little as  30k free  ram,
  238.                     which  is  released  back   to  your  application  when
  239.                     finished.
  240.  
  241.               -     Desqview, EGA  and VGA  are all detected  and respected
  242.                     with the  MS-Dos version of ViewLib.   In DesqView, the
  243.                     shadow buffer  is used to avoid  bleed-through to other
  244.                     tasks.
  245.  
  246.           Requirements_____________________________________________________
  247.  
  248.           You must own either a Microsoft or Borland C compiler  if you are
  249.           using ViewLib  for MS-Dos.   You  must own an  IBM, or  Microsoft
  250.           compiler if you are  using ViewLib for OS/2.   ViewLib should  be
  251.           compatible  with most  if not  all of  the compilers  produced by
  252.           these two  companies, and with  any other companies  that produce
  253.           compatible compilers (Watcom and perhaps Borland for OS/2 come to
  254.           mind).     If  you   require  ViewLib's  functionality   with  an
  255.           unsupported compiler, the only solution is to purchase the source
  256.           code (please see order.doc for details).  It is quite likely that
  257.           ViewLib, written  in 100%  C, is  source-compatible or nearly  so
  258.           with with nearly all MS-Dos and OS/2 compilers.
  259.  
  260.  
  261.  
  262.                                           2
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269.  
  270.           Beginning  with version  1.10, ViewLib  supports Unix-style  text
  271.           files.
  272.  
  273.           Getting Started__________________________________________________
  274.  
  275.           ViewLib  can be linked into  any application just  like any other
  276.           library.   Therefore,  you  should copy  vl*.lib  into  the  same
  277.           directory  that you  keep your  other .lib  files in.   The files
  278.           vlibbc?.lib  are  for  Borland  compilers,  vlibm6?.lib  are  for
  279.           Microsoft  compilers,   and  vlibicp.lib  is  for   IBM  C  Set/2
  280.           compilers.
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.                                           3
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.           Chapter 2
  326.  
  327.           Function
  328.           Reference________________________________________________________
  329.  
  330.           vlBufLister
  331.           vlFileLister_____________________________________________________
  332.  
  333.              Usage: int vlBufLister(char *buf, int x1, int y1,  int x2, int
  334.                     y2, unsigned char Foreground, unsigned char Background,
  335.                     unsigned BufSize, BORDER *BorderInfo);
  336.  
  337.                     int vlFileLister(char  *FileSpec, int  x1, int y1,  int
  338.                     x2, int  y2,  unsigned char  Foreground, unsigned  char
  339.                     Background, unsigned BufSize, BORDER *BorderInfo);
  340.  
  341.              Prototype in:  vlib.h
  342.  
  343.              Desc:  As  the names  imply, there are  two entry  points into
  344.                     ViewLib.  One is for viewing text files from disk.  The
  345.                     other is for viewing reports generated in memory.  Both
  346.                     functions call the same internal data viewing routine.
  347.  
  348.                     vlLister displays in the coordinates x1, y1, x2, y2 the
  349.                     filename  or buffer  passed.   The  coordinates are  0-
  350.                     based.      If    a   border    is   specified    (with
  351.                     BorderInfo.b_enable),  it  is  displayed   OUTSIDE  the
  352.                     current view  window.  The minimum  allowed buffer size
  353.                     is eight kilobytes (8092 bytes).  The suggested optimum
  354.                     buffer size is also 8k.  The only time that it might be
  355.                     beneficial  to work with a larger buffer is in the case
  356.                     of reading a file on a floppy  drive.  The valid colors
  357.                     for Background (defined in vlib.h) are as follows:
  358.  
  359.                     VL_BLACK,    VL_BLUE,   VL_GREEN,    VL_CYAN,   VL_RED,
  360.                     VL_MAGENTA, VL_BROWN, VL_LIGHTGREY
  361.  
  362.  
  363.                     The valid colors  for Foreground are any  of the colors
  364.                     valid for Background, plus:
  365.  
  366.                     VL_DARKGREY, VL_LIGHTBLUE, VL_LIGHTGREEN, VL_LIGHTCYAN,
  367.                     VL_LIGHTRED, VL_LIGHTMAGENTA, VL_YELLOW, VL_WHITE
  368.  
  369.  
  370.                     The user-accessable fields of BorderInfo are:
  371.  
  372.                                           4
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.                     bd_enable:   Set  to   TRUE  if  a   border  is  to   be
  382.                                  displayed.   If  set  to FALSE,  all  other
  383.                                  values are ignored.
  384.  
  385.                     b_string: A  string describing the  characters that are
  386.                               used  to construct a  border.   Any character
  387.                               value in  the extended  IBM character  set is
  388.                               valid.  The string "┌─┐│└─┘" would make a box
  389.                               similar to:
  390.                                         ┌──────┐
  391.                                               │      │
  392.                                               └──────┘
  393.  
  394.                     Foreground:  The colors  valid for  text foreground  are
  395.                                  valid here as well.
  396.  
  397.                     Background:  The colors  valid for  text background  are
  398.                                  valid here as well.
  399.  
  400.  
  401.           Return:   Upon successful  completion, vlLister  returns 0.   The
  402.                     following error codes are defined in vlib.h:
  403.  
  404.                     VLIB_ARGERR: The screen coordinates passed were outside
  405.                     the range  of the current  text screen.   Remember that
  406.                     the coordinates  are  from 0  to  24, 0  to 79  on  CGA
  407.                     screens.
  408.  
  409.                     VLIB_DOSERR:  There  was  an  error  reading  the file.
  410.                     Usually this means the name passed wasn't found.
  411.  
  412.                     VLIB_ALLOCERR: A request for more memory was denied.
  413.  
  414.              Example:
  415.  
  416.              #include <vlib.h>
  417.  
  418.              void main(void)
  419.              {
  420.                char buf[LARGE];
  421.  
  422.                BORDER  BorderInfo  =  {{TRUE},   {"┌─┐│└─┘"},  {VL_YELLOW},
  423.                {VL_BLUE}};
  424.  
  425.  
  426.  
  427.                                           5
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.                vlFileLister("file.txt", 1, 1,  78, 23, VL_YELLOW,  VL_BLUE,
  436.                0x2000, &bd_info);
  437.                vlBufLister(buf, 1,  1, 78, 23, VL_YELLOW,  VL_BLUE, 0x2000,
  438.                &bd_info);
  439.              }
  440.  
  441.  
  442.           The behavior of vlLister  depends on whether BorderInfo.bd_enable
  443.           is TRUE or FALSE.   If the border is disabled, then it is assumed
  444.           that the calling  function has  prepared a custom  border and  so
  445.           border resizing/window moving is disabled as well.  If the border
  446.           is enabled, then the base of the border has the following  string
  447.           displayed:
  448.  
  449.                   PgUp PgDn Home End Esc
  450.  
  451.           These are a subset of the allowed keystrokes.  The  complete list
  452.           of legal keystrokes is:
  453.  
  454.           Home:   Display from the top of the file
  455.  
  456.           End:    Display the end of the file
  457.  
  458.           PgUp:   Display  the  previous  page  (varies  according  to   the
  459.                   current window size.
  460.  
  461.           PgDn:   Display the  next page  (varies according  to the  current
  462.                   window size
  463.  
  464.           Down:   Display the next line.
  465.  
  466.           Up:     Display the previous line.
  467.  
  468.           Right:  Shift the display left 10 columns.
  469.  
  470.           Left:   Shift the display right 10 columns.
  471.  
  472.           Ctl-Right*:
  473.           RShift-Right:  Lengthen the window to the right one column.
  474.  
  475.           Ctl-Left*:
  476.           RShift-Left:   Shorten the window to the left one column.
  477.  
  478.           Ctl-Dn*:
  479.           RShift-Dn:     Lengthen the window down one row.
  480.  
  481.  
  482.                                           6
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.           Ctl-Up*:
  491.           RShift-Up:     Shorten the window up one row.
  492.  
  493.           LShift-Right:  Move the window right one column.
  494.  
  495.           LShift-Up:     Move the window up one row.
  496.  
  497.           LShift-Left:   Move the window left one column.
  498.  
  499.           LShift-Dn:     Move the window down one row.
  500.  
  501.           * Only  supported on  101-key enhanced keyboards  with supporting
  502.           BIOS.
  503.  
  504.           vlGetVidMode_____________________________________________________
  505.  
  506.              Usage: unsigned char vlGetVidMode(void);
  507.  
  508.              Prototype in:  vlib.h
  509.  
  510.              Description:   vlGetVidMode returns  the current  video mode as
  511.                             reported by Bios.
  512.  
  513.              Return Value:  Refer  to  a  MS-Dos technical  reference manual
  514.                             for the  possible return  values  of Bios  video
  515.                             modes and their  meanings.  The OS/2 version  of
  516.                             ViewLib always returns zero.
  517.  
  518.              Example:
  519.  
  520.              #include <stdio.h>
  521.              #include <vlib.h>
  522.  
  523.              void main(void)
  524.              {
  525.                printf("Current video mode is %d\n", vlGetVidMode());
  526.              }
  527.  
  528.  
  529.           vlGetVidBase_____________________________________________________
  530.  
  531.              Usage: unsigned vlGetVidbase(void);
  532.  
  533.              Prototype in:  vlib.h
  534.  
  535.  
  536.  
  537.                                           7
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.              Description:   vlGetVidBase returns the segment  of the current
  546.                             video display buffer.
  547.  
  548.              Return Value:  Usually, b000  will be  returned for  monochrome
  549.                             display,  and  b800 for  all  others.   However,
  550.                             DesqView  shadow  buffers may  contain different
  551.                             addresses on  some platforms.   The OS/2 version
  552.                             of ViewLib always returns NULL.
  553.  
  554.              Example:
  555.  
  556.              #include <stdio.h>
  557.              #include <vlib.h>
  558.  
  559.              void main(void)
  560.              {
  561.                printf("The  current  video  ram  base  address  is  %xd\n",
  562.                vlGetVidBase());
  563.              }
  564.  
  565.  
  566.           vlGetCols________________________________________________________
  567.  
  568.              Usage: int vlGetCols(void);
  569.  
  570.              Prototype in:  vlib.h
  571.  
  572.              Description:   vlGetCols   determines  the  number  of  columns
  573.                             currently being displayed.
  574.  
  575.              Return Value:  Most systems will  return 80 columns.   However,
  576.                             DesqView windows  defined at unusual sizes  will
  577.                             be  detected,  as  will  132-column (and  other)
  578.                             displays.
  579.  
  580.              Example:
  581.  
  582.              #include <stdio.h>
  583.              #include <vlib.h>
  584.  
  585.              void main(void)
  586.              {
  587.                printf("The monitor is  currently displaying %d  columns\n",
  588.                vlGetCols());
  589.              }
  590.  
  591.  
  592.                                           8
  593.  
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.           vlGetRows________________________________________________________
  602.  
  603.              Usage: int vlGetRows(void);
  604.  
  605.              Prototype in:  vlib.h
  606.  
  607.              Description:   vlGetRows   determines   the  number   of   rows
  608.                             currently being displayed.
  609.  
  610.              Return Value:  Most  systems will  return  25  rows.   However,
  611.                             DesqView windows  defined at  unusual sizes will
  612.                             be detected, as will  43-column, 50-column  (and
  613.                             other) displays.
  614.  
  615.              Example:
  616.  
  617.              #include <stdio.h>
  618.              #include <vlib.h>
  619.  
  620.              void main(void)
  621.              {
  622.                printf("The  monitor  is  currently displaying  %d  rows\n",
  623.                vlGetRows());
  624.              }
  625.  
  626.  
  627.           vlIsDV___________________________________________________________
  628.  
  629.              Usage: int vlIsDV(void);
  630.  
  631.              Prototype in:  vlib.h
  632.  
  633.              Description:   vlIsDV  determines whether DesqView is installed
  634.                             and active.
  635.  
  636.              Return Value:  If DesqView  is  active,  vlIsDV  returns  TRUE;
  637.                             otherwise, FALSE is returned.
  638.  
  639.              Example:
  640.  
  641.              #include <stdio.h>
  642.              #include <vlib.h>
  643.  
  644.              void main(void)
  645.              {
  646.  
  647.                                           9
  648.  
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.                printf("DesqView %s active\n", vlIsDV() ? "is" : "is not");
  656.              }
  657.  
  658.  
  659.           vlIsEgaVga_______________________________________________________
  660.  
  661.              Usage: int vlIsEgaVga(void);
  662.  
  663.              Prototype in:  vlib.h
  664.  
  665.              Description:   vlIsEgaVga  determines whether an enhanced color
  666.                             adapter is installed.
  667.  
  668.              Return Value:  If  an   EGA  or   VGA  adapter  is   installed,
  669.                             vlIsEgaVga  returns  TRUE; otherwise,  FALSE  is
  670.                             returned.   The  OS/2 version  of ViewLib always
  671.                             returns FALSE.
  672.  
  673.              Example:
  674.  
  675.              #include <stdio.h>
  676.              #include <vlib.h>
  677.  
  678.              void main(void)
  679.              {
  680.                printf("An EGA or VGA monitor %s installed.\n", vlIsEgaVga()
  681.                ? "is" : "is not");
  682.              }
  683.  
  684.  
  685.           vlIsShift
  686.           vlIsRShift
  687.           vlIsLShift_______________________________________________________
  688.  
  689.              Usage: int vlIsLshift(void);
  690.                     int vlIsRshift(void);
  691.                     int vlIsShift(void);
  692.  
  693.              Prototype in:  vlib.h
  694.  
  695.              Description:   vlIsShift,  vlIsLShift and vlIsRShift return the
  696.                             status  of  the  shift keys  as  appropriate for
  697.                             each function.
  698.  
  699.  
  700.  
  701.  
  702.                                           10
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.              Return Value:  If the appropriate  shift key is being  pressed,
  711.                             the function returns  TRUE;  otherwise, FALSE is
  712.                             returned.
  713.  
  714.              Example:
  715.  
  716.              #include <stdio.h>
  717.              #include <vlib.h>
  718.  
  719.              void main(void)
  720.              {
  721.                printf("A shift key %s being pressed.\n", vlIsShift() ? "is"
  722.                : "is not"); 
  723.              }
  724.  
  725.  
  726.           vlIsMono_________________________________________________________
  727.  
  728.              Usage: int vlIsMono(void);
  729.  
  730.              Prototype in:  vlib.h
  731.  
  732.              Description:   vlIsMono determines  if the  current video  mode
  733.                             is monochrome.
  734.  
  735.              Return Value:  If  the   current  video  mode  is   monochrome,
  736.                             vlIsMono   returns  TRUE;  otherwise,  FALSE  is
  737.                             returned.   The OS/2  version of ViewLib  always
  738.                             returns FALSE.
  739.  
  740.              Example:
  741.  
  742.              #include <stdio.h>
  743.              #include <vlib.h>
  744.  
  745.              void main(void)
  746.              {
  747.                printf("The monitor %s monochrome video mode.\n", vlIsMono()
  748.                ? "is" : "is not");
  749.              }
  750.  
  751.           vlCursorOff_____________________________________________________
  752.  
  753.              Usage: void vlCursorOff(void);
  754.  
  755.              Prototype in:  vlib.h
  756.  
  757.                                           11
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.              Description:   Turns  off the  text mode  cursor.   Many  Bios'
  766.                             have bugs in  this area, especially when dealing
  767.                             with  very old  Hercules adapters  and many  EGA
  768.                             adapters.  No attempt to address these bugs  has
  769.                             been attempted in  ViewLib.  In the worst  case,
  770.                             the  cursor   won't  disappear.    This  routine
  771.                             automatically calls vlCursorSave.
  772.  
  773.              Example:
  774.  
  775.              #include <vlib.h>
  776.  
  777.              void main(void)
  778.              {
  779.                vlCursorOff();
  780.              }
  781.  
  782.           vlCursorSave____________________________________________________
  783.  
  784.              Usage: void vlCursorSave(void);
  785.  
  786.              Prototype in:  vlib.h
  787.  
  788.              Description:   Saves the  current cursor  information for later
  789.                             retrieval.  Only one cursor can be  saved.  Each
  790.                             call to vlCursorSave overwrites the last  cursor
  791.                             saved.   This information is  extracted from the
  792.                             Bios data  area, an  area which  is not  used by
  793.                             the rare video adapter.  
  794.  
  795.              Example:
  796.  
  797.              #include <vlib.h>
  798.  
  799.              void main(void)
  800.              {
  801.                vlCursorSave();
  802.              }
  803.  
  804.           vlCursorRestore_________________________________________________
  805.  
  806.              Usage: void vlCursorRestore(void);
  807.  
  808.              Prototype in:  vlib.h
  809.  
  810.  
  811.  
  812.                                           12
  813.  
  814.  
  815.  
  816.  
  817.  
  818.  
  819.  
  820.              Description:   Restores the last cursor information saved.   If
  821.                             vlCursorSave()  was  not previously  called, the
  822.                             cursor's contents are undefined.
  823.  
  824.              Example:
  825.  
  826.              #include <vlib.h>
  827.  
  828.              void main(void)
  829.              {
  830.                vlCursorRestore();
  831.              }
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.  
  855.  
  856.  
  857.  
  858.  
  859.  
  860.  
  861.  
  862.  
  863.  
  864.  
  865.  
  866.  
  867.                                           13
  868.