home *** CD-ROM | disk | FTP | other *** search
/ Shareware Overload / ShartewareOverload.cdr / progm / flash-c1.zip / CH2_2.DOC < prev    next >
Text File  |  1990-02-11  |  28KB  |  1,236 lines

  1. ..pgno26
  2. ..foot63A2-##
  3. ..head02L──────────────────────────────────────────────────────────────────────
  4. ..head04L──────────────────────────────────────────────────────────────────────
  5. ..head03AGetScrn
  6. ■ Description
  7.  
  8.   Read the character and attribute bytes starting from specified
  9.   position on the screen into the buffer.
  10.  
  11.  
  12. ■ Declaration
  13.  
  14.   void FPENTRY GetScrn( INT x, INT y, INT NWords, CHAR PTR Buffer );
  15.  
  16.  
  17.   x           column to begin reading data from the screen.
  18.  
  19.   y           row to begin reading data from the screen.
  20.  
  21.   NWords      number of words to read from the display screen.
  22.  
  23.   Buffer      data area where the data from the display screen will be
  24.               placed.
  25.  
  26.  
  27. ■ Remarks
  28.  
  29.   This procedure provides additional checks for vertical and
  30.   horizontal retrace periods on a CGA video adapter.  This is to
  31.   eliminate the snow effect that is produced from direct moves to or
  32.   from the video display.  These checks may be turned off through the
  33.   global variable CheckSnow.
  34.  
  35.  
  36. ■ See Also
  37.  
  38.   PutScrn
  39.  
  40. ■ Example
  41.  
  42.   #include <fpclib.h>
  43.  
  44.   main()
  45.   {
  46.      char Buffer[160];
  47.  
  48.      VioInit();
  49.      GetScrn( 1, 1, 80, Buffer );
  50.   }
  51.  
  52.   In the above example the size of Buffer must be at least 160 bytes
  53.   long. A copy of row one on the screen will be placed into Buffer.
  54.   Buffer will contain both the character and attribute byte values for
  55.   each cell on the video display.
  56. ..page
  57. ..head03AGetVideoCols
  58. ■ Description
  59.  
  60.   Get the number of columns per line for the current display mode.
  61.  
  62.  
  63. ■ Declaration
  64.  
  65.   INT FPENTRY GetVideoCols( void );
  66.  
  67.  
  68. ■ See Also
  69.  
  70.   GetVideoInfo
  71.  
  72.  
  73. ■ Example
  74.  
  75.   #include <fpclib.h>
  76.  
  77.   main()
  78.   {
  79.      VioInit();
  80.      printf("Total number of columns = %d\n", GetVideoCols() );
  81.   }
  82.  
  83.   GetVidoCols should return either 40 or 80 depending on the video
  84.   mode the system is in.
  85. ..page
  86. ..head03AGetVideoInfo
  87. ■ Description
  88.  
  89.   Gets general video display informtion.
  90.  
  91.  
  92. ■ Declaration
  93.  
  94.   void FPENTRY GetVideoInfo( INT PTR BaseSeg, INT PTR Cols,
  95.                              INT PTR Pg,      INT PTR Mode );
  96.  
  97.   BaseSeg     returns the base segment address of the current video
  98.               page.
  99.  
  100.   Cols        returns the number of display columns available for the
  101.               current video mode.
  102.  
  103.   Pg          returns the active display page for the video display.
  104.               This will always be zero for the monochrome display
  105.               adapter.
  106.  
  107.   Mode        returns the current video display mode.
  108.  
  109.  
  110. ■ See Also
  111.  
  112.   GetVideoCols, GetVideoMode, GetVideoPage
  113.  
  114.  
  115. ■ Example
  116.  
  117.   #include <fpclib.h>
  118.  
  119.   main()
  120.   {
  121.      int BaseSeg, Mode, NCols, Pg;
  122.  
  123.      VioInit();
  124.      ClrWin( 1, 1, 80, 25, 7 );
  125.      GotoxyAbs( 1, 1 );
  126.  
  127.      GetVideoInfo( &BaseSeg, &NCols, &Pg, &Mode );
  128.  
  129.      printf("BaseSeg             = %4X\n", BaseSeg );
  130.      printf("Number of columns   = %u \n", NCols   );
  131.      printf("Active display page = %u \n", Pg      );
  132.      printf("Current video mode  = %u \n", Mode    );
  133.   }
  134.  
  135.   This example will display the video information to the screen.  The
  136.   current video mode should return a value from 0-15, the number of
  137.   columns will be either 40 or 80, and the active video display page
  138.   will be a value from 0-7.
  139. ..page
  140. ..head03AGetVideoMode
  141. ■ Description
  142.  
  143.   Gets the current video mode.
  144.  
  145.  
  146. ■ Declaration
  147.  
  148.   INT FPENTRY GetVideoMode( void );
  149.  
  150.  
  151. ■ Remarks
  152.  
  153.   Returns an integer giving the current video mode the system is in.
  154.   Use the guide on video modes under InitVideo.
  155.  
  156.  
  157. ■ See Also
  158.  
  159.   GetVideoInfo
  160.  
  161.  
  162. ■ Example
  163.  
  164.   #include <fpclib.h>
  165.  
  166.   main()
  167.   {
  168.      VioInit();
  169.      printf("Current video mode  = %u", GetVideoMode() );
  170.   }
  171.  
  172.   This example will display the current video mode the system is in.
  173. ..page
  174. ..head03AGetVideoPage
  175. ■ Description
  176.  
  177.   Gets the active display page currently in use.
  178.  
  179.  
  180. ■ Declaration
  181.  
  182.   INT FPENTRY GetVideoPage( void );
  183.  
  184.  
  185. ■ Remarks
  186.  
  187.   On monochrome displays GetVideoPage will always return a zero.
  188.  
  189.  
  190. ■ See Also
  191.  
  192.   GetVideoInfo
  193.  
  194.  
  195. ■ Example
  196.  
  197.   #include <fpclib.h>
  198.  
  199.   main()
  200.   {
  201.      VioInit();
  202.      printf("Current video page  = %u", GetVideoPage() );
  203.   }
  204.  
  205.   This example will display the current video page on the system.  It
  206.   should be a value in the range of 0-7.
  207. ..page
  208. ..head03AGotoxyAbs
  209. ■ Description
  210.  
  211.   Position the cursor at the specified position on the screen without
  212.   regards to the global variables WindMin and WindMax.
  213.  
  214.  
  215. ■ Declaration
  216.  
  217.   void FPENTRY GotoxyAbs( INT x, INT y );
  218.  
  219.   x           column number to place the cursor in.
  220.  
  221.   y           row number to place the cursor in.
  222.  
  223.  
  224. ■ Remarks
  225.  
  226.   This procedure will place the cursor at the specified x,y
  227.   coordinates on the screen.  GotoxyAbs is NOT sensitive to the global
  228.   variables WindMin and WindMax.
  229.  
  230. ■ See Also
  231.  
  232.   WhereXAbs, WhereYAbs
  233.  
  234.  
  235. ■ Example
  236.  
  237.   #include <fpclib.h>
  238.  
  239.   main()
  240.   {
  241.      VioInit();
  242.  
  243.      WindowFP( 10, 10, 50, 24 );
  244.      GotoxyAbs( 1, 1 );
  245.   }
  246.  
  247.   Even though the upper left corner of the defined window is row 10,
  248.   column 10, GotoxyAbs will still place the cursor in row 1 column 1
  249.   on the screen.
  250. ..page
  251. ..head03AHideCursor
  252. ■ Description
  253.  
  254.   Hides the cursor from view of the video display.
  255.  
  256.  
  257. ■ Declaration
  258.  
  259.   void FPENTRY HideCursor( void );
  260.  
  261.  
  262.  
  263. ■ Remarks
  264.  
  265.   This function turns on the fifth bit of the current cursor size.
  266.  
  267.  
  268. ■ Example
  269.  
  270.   #include <fpclib.h>
  271.  
  272.   main()
  273.   {
  274.      VioInit();
  275.      HideCursor();
  276.    }
  277.  
  278.   This example will hide the cursor from view of the video display.
  279. ..page
  280. ..head03AInitVideo
  281. ■ Description
  282.  
  283.   Initialize the video mode.
  284.  
  285.  
  286. ■ Declaration
  287.  
  288.   void FPENTRY InitVideo( INT Mode );
  289.  
  290.   Mode        gives the video mode to initialize.
  291.  
  292.  
  293. ■ Remarks
  294.  
  295.   To set the screen to the appropriate video mode use the following
  296.   table as a guide.
  297.  
  298.      Mode           Type            Colors   Adapter
  299.    ───────────────────────────────────────────────────
  300.   |    0  |  Text - 40 x 25 B/W   |  b/w   |   CGA    |
  301.   |    1  |  Text - 40 x 25 COLOR |  16    |   CGA    |
  302.   |    2  |  Text - 80 x 25 B/W   |  b/w   |   CGA    |
  303.   |    3  |  Text - 80 x 25 COLOR |  16    |   CGA    |
  304.   |    4  |  Graphics - 320 x 200 |   4    |   CGA    |
  305.   |    5  |  Graphics - 320 x 200 | 4 grey |   CGA    |
  306.   |    6  |  Graphics - 640 x 200 |  b/w   |   CGA    |
  307.   |    7  |  Text - 80 x 25       |  16    |   MDA    |
  308.   |    8  |  Graphics - 160 x 200 |  16    |   PCjr   |
  309.   |    9  |  Graphics - 320 x 200 |  4,64  |   PCjr   |
  310.   |   10  |  Graphics - 640 x 200 |  16    | PCjr,EGA |
  311.   |   13  |  Graphics - 320 x 200 |  16    |   EGA    |
  312.   |   14  |  Graphics - 640 x 200 |  16    |   EGA    |
  313.   |   15  |  Graphics - 640 x 350 |   4    |   EGA    |
  314.    ───────────────────────────────────────────────────
  315.  
  316.  
  317. ■ Example
  318.  
  319.   #include <fpclib.h>
  320.  
  321.   main()
  322.   {
  323.      VioInit();
  324.      InitVideo( 3 );
  325.    }
  326.  
  327.   This example will initialize the video mode to 80 x 25 color text.
  328. ..page
  329. ..head03APutFrameAttr
  330. ■ Description
  331.  
  332.   Write the data in the buffer to the attribute byte in the specified
  333.   area on the screen.
  334.  
  335.  
  336. ■ Declaration
  337.  
  338.   void FPENTRY PutFrameAttr( INT x1, INT y1,
  339.                              INT x2, INT y2, CHAR PTR Buffer );
  340.  
  341.   x1          left column of window.
  342.  
  343.   y1          top row of window.
  344.  
  345.   x2          right column of window.
  346.  
  347.   y2          bottom row of window.
  348.  
  349.   Buffer      data buffer that contains the information to display on
  350.               the screen.
  351.  
  352.  
  353. ■ See Also
  354.  
  355.   GetFrameAttr, PutFrameCell, PutFrameChar
  356.  
  357.  
  358. ■ Example
  359.  
  360.   #include <fpclib.h>
  361.  
  362.   main()
  363.   {
  364.      char buffer[2000];
  365.  
  366.      VioInit();
  367.  
  368.      memset( buffer, 7, sizeof( buffer ) );
  369.      PutFrameAttr( 1, 1, 80, 25, buffer );
  370.   }
  371.  
  372.   In this example the first statment fills the buffer array with the
  373.   value of 7.  This will be the attribute character placed on the
  374.   screen for each attribute position.  Then the PutFrameAttr statement
  375.   places each byte in the buffer on the display screen.
  376.  
  377.   Normally PutFrameAttr is used as the inverse or complement of the
  378.   procedure GetFrameAttr.  Using GetFrameAttr would save the attribute
  379.   bytes for a section of the screen to be later restored with
  380.   PutFrameAttr.
  381. ..page
  382. ..head03APutFrameCell
  383. ■ Description
  384.  
  385.   Write the data in the buffer to the character and attribute bytes in
  386.   the specified area on the screen.
  387.  
  388.  
  389. ■ Declaration
  390.  
  391.   void FPENTRY PutFrameCell( INT x1, INT y1,
  392.                              INT x2, INT y2, CHAR PTR Buffer );
  393.  
  394.   x1          left column of window.
  395.  
  396.   y1          top row of window.
  397.  
  398.   x2          right column of window.
  399.  
  400.   y2          bottom row of window.
  401.  
  402.   Buffer      data buffer that contains the information to display on
  403.               the screen.
  404.  
  405.  
  406. ■ See Also
  407.  
  408.   GetFrameCell, PutFrameAttr, PutFrameChar
  409.  
  410.  
  411. ■ Example
  412.  
  413.   #include <fpclib.h>
  414.  
  415.   main()
  416.   {
  417.      char buffer[2100];
  418.      int  i;
  419.  
  420.      VioInit();
  421.      for ( i = 1; i < 26; i++ ) {
  422.         FillRowCell( 1, i, 80, (i+64) << 8 + i );
  423.      GetFrameCell( 10, 10, 80, 25, Buffer );
  424.      ClrWin( 1, 1, 80, 25, 7 );
  425.      ColorMsg( 1, 1, 7, "Press any key to continue...");
  426.      GetKey();
  427.      PutFrameCell( 1, 1, 71, 16, Buffer );
  428.   }
  429.  
  430.   In this example the first statment retrieves a section of the
  431.   display screen and places 2100 bytes in the data variable Buffer.
  432.   The screen is then cleared to remove the display data from the
  433.   screen.  PutFrameCell restores the data saved from GetFrameCell and
  434.   places the data onto another portion of the display screen.
  435. ..page
  436. ..head03APutFrameChar
  437. ■ Description
  438.  
  439.   Write the data in the buffer to the character byte in the specified
  440.   area on the screen.
  441.  
  442.  
  443. ■ Declaration
  444.  
  445.   void FPENTRY PutFrameChar( INT x1, INT y1,
  446.                              INT x2, INT y2, CHAR PTR Buffer );
  447.  
  448.   x1          left column of window.
  449.  
  450.   y1          top row of window.
  451.  
  452.   x2          right column of window.
  453.  
  454.   y2          bottom row of window.
  455.  
  456.   Buffer      data buffer that contains the information to display on
  457.               the screen.
  458.  
  459.  
  460. ■ See Also
  461.  
  462.   GetFrameChar, PutFrameAttr, PutFrameChar
  463.  
  464.  
  465. ■ Example
  466.  
  467.   #include <fpclib.h>
  468.  
  469.   main()
  470.   {
  471.      char buffer[2000];
  472.  
  473.      VioInit();
  474.      memset( Buffer, 'A', sizeof( buffer ) );
  475.  
  476.      PutFrameChar( 1, 1, 80, 25, Buffer );
  477.   }
  478.  
  479.   In this example the first statment fills the buffer array with the
  480.   letter A.  This will be the character to be placed on the screen for
  481.   each character position. Then the PutFrameChar statement places each
  482.   character from the buffer to the display screen.
  483.  
  484.   Normally PutFrameChar is used as the inverse of the GetFrameChar
  485.   procedure.  Using GetFrameChar would allow the character bytes for a
  486.   section of the screen to be saved and later restored with
  487.   PutFrameChar.
  488. ..page
  489. ..head03APutScrn
  490. ■ Description
  491.  
  492.   Displays the data in the buffer to the specified screen position in
  493.   character attribute byte form.
  494.  
  495.  
  496. ■ Declaration
  497.  
  498.   void FPENTRY PutScrn( INT x, INT y, INT NWords, CHAR PTR Buffer );
  499.  
  500.   x           column to begin display of screen data.
  501.  
  502.   y           row to begin display of screen data.
  503.  
  504.   NWords      number of words to read from the display screen.
  505.  
  506.   Buffer      data buffer to place the screen information.
  507.  
  508.  
  509. ■ Remarks
  510.  
  511.   This procedure provides additional checks for vertical and
  512.   horizontal retrace periods on a CGA video adapter.  This is to
  513.   eliminate the snow effect that is produced from direct moves to or
  514.   from the video display.  These checks may be turned off through the
  515.   global variable CHECKSNOW.
  516.  
  517.  
  518. ■ See Also
  519.  
  520.   GetScrn
  521. ..page
  522. ■ Example
  523.  
  524.   #include <fpclib.h>
  525.  
  526.   main()
  527.   {
  528.      char buffer[1920];
  529.      int  i;
  530.  
  531.      VioInit();
  532.      ClrWin( 1, 1, 80, 25, 7 );
  533.  
  534.      /* place screen divider line in middle of screen */
  535.      FillRowChar( 1, 13, 80, '-' );
  536.  
  537.      /* place characters and attributes to the screen */
  538.      for ( i = 14; i < 26; i++ )
  539.         FillRowCell( 1, i, 80, (i+64) << 8 + i );
  540.  
  541.      /* save the screen data */
  542.      GetScrn( 1, 14, 960, Buffer );
  543.  
  544.      ColorMsg( 1, 1, 7, "Press any key to continue...");
  545.      GetKey();
  546.  
  547.      /* restore screen data to a different location */
  548.      PutScrn( 1, 1, 960, Buffer );
  549.   }
  550.  
  551.   In this example the size of Buffer is 1920 bytes long. The 960 words
  552.   in the lower half of the screen are placed into the data buffer with
  553.   the call to GetScrn.  The call PutScrn will then place the data
  554.   buffer information on the screen starting at row one column one.
  555.   Both the attribute and character bytes will be written to the
  556.   screen.  The Buffer variable may be subscripted to use a different
  557.   starting point for the buffers contents.
  558. ..page
  559. ..head03ARvsAttr
  560. ■ Description
  561.  
  562.   Reverses the video attribute byte passed.
  563.  
  564. ■ Declaration
  565.  
  566.   INT FPENTRY RvsAttr( INT Attr );
  567.  
  568.   Attr        value in the range 0-255 giving the screen color to be
  569.               reversed.
  570.  
  571.  
  572. ■ Remarks
  573.  
  574.   RvsAttr exchanges the three foreground and background attribute bits
  575.   of the parmaeter value passed in.  The blink and intensity bits of
  576.   the byte remain unchanged.
  577.  
  578.  
  579. ■ Example
  580.  
  581.   Foreground color --> white.
  582.   Background color --> black.
  583.  
  584.   If the above is true for the foreground and background colors then
  585.   after calling RvsAttr the foreground and background colors will be
  586.   as follows:
  587.  
  588.   Foreground color --> black.
  589.   Background color --> white.
  590.  
  591.  
  592.   #include <fpclib.h>
  593.  
  594.   main()
  595.   {
  596.      VioInit();
  597.      printf("Attribute value 7 reversed = %u\n", RvsAttr( 7 ) );
  598.   }
  599. ..page
  600. ..head03AScrollDown
  601. ■ Description
  602.  
  603.   Scroll the specified portion of the screen down N lines filling in
  604.   new lines with spaces and the specified attribute.
  605.  
  606.  
  607. ■ Declaration
  608.  
  609.   void FPENTRY ScrollDown( INT x1,   INT y1,
  610.                            INT x2,   INT y2,
  611.                            INT Attr, INT NRows );
  612.  
  613.   x1          left column of window.
  614.  
  615.   y1          top row of window.
  616.  
  617.   x2          right column of window.
  618.  
  619.   y2          bottom row of window.
  620.  
  621.   Attr        value in the range 0-255. It defines the display
  622.               attribute to be used when filling in the blank lines at
  623.               the top of the window.
  624.  
  625.   NRows       number of lines the specified portion of the screen is
  626.               to be scrolled.
  627.  
  628.  
  629. ■ Remarks
  630.  
  631.   If you use a value of zero for the number of lines to scroll, the
  632.   window area defined by the x1,y1,x2,y2 coordinates will be cleared
  633.   to the color defined by the Attribute variable.
  634.  
  635.  
  636. ■ See Also
  637.  
  638.   ScrollLeft, ScrollRight, ScrollUp
  639. ..page
  640. ■ Example
  641.  
  642.   #include <fpclib.h>
  643.  
  644.   main()
  645.   {
  646.      int i;
  647.  
  648.      VioInit();
  649.  
  650.      ClrWin( 1, 1, 80, 25, 7 );
  651.      for ( i = 1; i < 26; i++ )
  652.         FillRowChar( 1, i, 80, 64+i );
  653.  
  654.      ScrollDown( 4, 5, 15, 20, 48, 1 );
  655.   }
  656.  
  657.   In this example one line will be scrolled down in the window with
  658.   the top row being filled in with cyan on a Color/Graphics Adapter.
  659. ..page
  660. ..head03AScrollLeft
  661. ■ Description
  662.  
  663.   Scroll the specified portion of the screen left N columns filling in
  664.   new columns with spaces and the specified attribute.
  665.  
  666.  
  667. ■ Declaration
  668.  
  669.   void FPENTRY ScrollLeft( INT x1,   INT y1,
  670.                            INT x2,   INT y2,
  671.                            INT Attr, INT NCols );
  672.  
  673.   x1          left column of window.
  674.  
  675.   y1          top row of window.
  676.  
  677.   x2          right column of window.
  678.  
  679.   y2          bottom row of window.
  680.  
  681.   Attr        value in the range 0-255. It defines the display
  682.               attribute to be used when filling in the blank columns
  683.               on the right side of the window.
  684.  
  685.   NCols       number of columns the specified portion of the screen is
  686.               to be scrolled.
  687.  
  688.  
  689. ■ Remarks
  690.  
  691.   If you use a value of zero for the number of lines to scroll, the
  692.   window area defined by the x1,y1,x2,y2 coordinates will be cleared
  693.   to the color defined by the Attribute variable.
  694.  
  695.  
  696. ■ See Also
  697.  
  698.   ScrollDown, ScrollRight, ScrollUp
  699. ..page
  700. ■ Example
  701.  
  702.   #include <fpclib.h>
  703.  
  704.   main()
  705.   {
  706.      int i;
  707.  
  708.      VioInit();
  709.  
  710.      ClrWin( 1, 1, 80, 25, 7 );
  711.      for ( i = 1; i < 26; i++ )
  712.         FillRowChar( 1, i, 80, 64+i );
  713.  
  714.      ScrollLeft( 4, 5, 15, 20, 48, 1 );
  715.   }
  716.  
  717.   In this example one column will be scrolled left in the window with
  718.   the right column being filled in with cyan on a Color/Graphics
  719.   Adapter.
  720. ..page
  721. ..head03AScrollRight
  722. ■ Description
  723.  
  724.   Scroll the specified portion of the screen right N columns filling
  725.   in new columns with spaces and the specified attribute.
  726.  
  727.  
  728. ■ Declaration
  729.  
  730.   void FPENTRY ScrollRight( INT x1,   INT y1,
  731.                             INT x2,   INT y2,
  732.                             INT Attr, INT NCols );
  733.  
  734.   x1          left column of window.
  735.  
  736.   y1          top row of window.
  737.  
  738.   x2          right column of window.
  739.  
  740.   y2          bottom row of window.
  741.  
  742.   Attr        value in the range 0-255.  It defines the display
  743.               attribute to be used when filling in the blank columns
  744.               on the left side of the window.
  745.  
  746.   NCols       number of columns the specified portion of the screen is
  747.               to be scrolled.
  748.  
  749.  
  750. ■ Remarks
  751.  
  752.   If you use a value of zero for the number of lines to scroll, the
  753.   window area defined by the x1,y1,x2,y2 coordinates will be cleared
  754.   to the color defined by the Attribute variable.
  755.  
  756.  
  757. ■ See Also
  758.  
  759.   ScrollDown, ScrollLeft, ScrollUp
  760. ..page
  761. ■ Example
  762.  
  763.   #include <fpclib.h>
  764.  
  765.   main()
  766.   {
  767.      int i;
  768.  
  769.      VioInit();
  770.  
  771.      ClrWin( 1, 1, 80, 25, 7 );
  772.      for ( i = 1; i < 26; i++ )
  773.         FillRowChar( 1, i, 80, 64+i );
  774.  
  775.      ScrollRight( 4, 5, 15, 20, 48, 1 );
  776.   }
  777.  
  778.   In this example one column will be scrolled right in the window with
  779.   the left column being filled in with cyan on a Color/Graphics
  780.   Adapter.
  781. ..page
  782. ..head03AScrollUp
  783. ■ Description
  784.  
  785.   Scroll the specified portion of the screen up N lines filling in new
  786.   lines with spaces and the specified attribute.
  787.  
  788.  
  789. ■ Declaration
  790.  
  791.   void FPENTRY ScrollUp( INT x1,   INT y1,
  792.                          INT x2,   INT y2,
  793.                          INT Attr, INT NRows );
  794.  
  795.   x1          left column of window.
  796.  
  797.   y1          top row of window.
  798.  
  799.   x2          right column of window.
  800.  
  801.   y2          bottom row of window.
  802.  
  803.   Attr        value in the range 0-255. It defines the display
  804.               attribute to be used when filling in the blank lines at
  805.               the bottom of the window.
  806.  
  807.   NRows       number of lines the specified portion of the screen is
  808.               to be scrolled.
  809.  
  810.  
  811. ■ Remarks
  812.  
  813.   If you use a value of zero for the number of lines to scroll, the
  814.   window area defined by the x1,y1,x2,y2 coordinates will be cleared
  815.   to the color defined by the Attribute variable.
  816.  
  817.  
  818. ■ See Also
  819.  
  820.   ScrollDown, ScrollLeft, ScrollRight
  821. ..page
  822. ■ Example
  823.  
  824.   #include <fpclib.h>
  825.  
  826.   main()
  827.   {
  828.      int i;
  829.  
  830.      VioInit();
  831.  
  832.      ClrWin( 1, 1, 80, 25, 7 );
  833.      for ( i = 1; i < 26; i++ )
  834.         FillRowChar( 1, i, 80, 64+i );
  835.  
  836.      ScrollUp( 4, 5, 15, 20, 48, 1 );
  837.   }
  838.  
  839.   In this example one line will be scrolled up in the window with the
  840.   bottom row being filled in with cyan on a Color/Graphics Adapter.
  841. ..page
  842. ..head03ASetCursorSize
  843. ■ Description
  844.  
  845.   Set the size of the cursor.
  846.  
  847.  
  848. ■ Declaration
  849.  
  850.   void FPENTRY SetCursorSize( INT StScan, INT SpScan );
  851.  
  852.   StScan      starting scan line to be used for the cursor.
  853.  
  854.   SpScan      ending scan line to be used for the cursor.
  855.  
  856.  
  857. ■ Remarks
  858.  
  859.   The scan lines are numbered from zero at the top (StScan) to N at
  860.   the bottom (SpScan) where N applies to the following video adapters:
  861.  
  862.                 7 - Color/Graphics Adapter
  863.                14 - Monochrome Adapter
  864.  
  865.                - 0 --
  866.                - 1   |
  867.                - 2   |
  868.                - 3   |---> Scan lines for a Color/Graphics
  869.                - 4   |     display adapter.
  870.                - 5   |
  871.                - 6   |
  872.                - 7 --
  873.  
  874.  
  875. ■ See Also
  876.  
  877.   GetCursorSize
  878. ..page
  879. ■ Example
  880.  
  881.   The following examples are for the Color/Graphics Adapter:
  882.  
  883.  
  884.   #include <fpclib.h>
  885.  
  886.   main()
  887.   {
  888.      VioInit();
  889.      SetCursorSize( 32, 32 );    /* hides the cursor          */
  890.      SetCursorSize( 0 ,  7 );    /* cursor covers entire cell */
  891.      SetCursorSize( 6 ,  7 );    /* cursor size normal        */
  892.   }
  893.  
  894.   The first SetCursorSize statment makes the cursor invisible on the
  895.   screen.  The second SetCursorSize will cover the entire character
  896.   cell on a color/graphic display and will cover half of the cell on a
  897.   monochrome display.  If the display was a monochrome display and the
  898.   entire character cell was to be covered by the cursor then the
  899.   parameters should be (0,13).
  900. ..page
  901. ..head03ASetVideoPage
  902. ■ Description
  903.  
  904.   Set the active display page.
  905.  
  906.  
  907. ■ Declaration
  908.  
  909.   void FPENTRY SetVideoPage( INT PageNo );
  910.  
  911.   PageNo      active display page to use.
  912.  
  913.  
  914. ■ Remarks
  915.  
  916.   Active display pages available for various display cards.
  917.  
  918.      0    - Monochrome
  919.      0-7  - Color/Graphics 40 column text mode
  920.      0-3  - Color/Graphics 80 column text mode
  921.      0    - Color/Graphics Hi Resolution Graphics mode
  922.  
  923.  
  924. ■ See Also
  925.  
  926.   GetVideoPage
  927.  
  928.  
  929. ■ Example
  930.  
  931.   The following examples are for the Color/Graphics Adapter because
  932.   the monochrome display only has one page available.
  933.  
  934.   #include <fpclib.h>
  935.  
  936.   main()
  937.   {
  938.      int i;
  939.  
  940.      VioInit();
  941.  
  942.      SetVideoPage( 0 );  /* default video page - page 1 */
  943.      SetVideoPage( 1 );  /* another page       - page 2 */
  944.   }
  945.  
  946.   The first statement will set the video display to the default
  947.   display page and the second statement will switch the video
  948.   display to page one.  This function is not intended for use with a
  949.   monochrome display adapter.
  950. ..page
  951. ..head03AShowCursor
  952. ■ Description
  953.  
  954.   Shows the cursor on the video display.
  955.  
  956.  
  957. ■ Declaration
  958.  
  959.   void FPENTRY ShowCursor( void );
  960.  
  961.  
  962.  
  963. ■ Remarks
  964.  
  965.   This function turns off the fifth bit of the current cursor size.
  966.  
  967.  
  968. ■ Example
  969.  
  970.   #include <fpclib.h>
  971.  
  972.   main()
  973.   {
  974.      VioInit();
  975.      HideCursor();
  976.  
  977.      printf( "press any key to display the cursor\n" );
  978.      GetKey();
  979.  
  980.      ShowCursor();
  981.    }
  982.  
  983.   This example will hide the cursor from view of the video display
  984.   and then wait until the user presses a key.  Once a key has been
  985.   pressed the program will then turn the cursor back on.
  986. ..page
  987. ..head03AVioInit
  988. ■ Description
  989.  
  990.   Initializes the Video units global variables.
  991.  
  992.  
  993. ■ Declaration
  994.  
  995.   void FPENTRY VioInit( void );
  996.  
  997.  
  998. ■ Remarks
  999.  
  1000.   This function must be executed once before any video functions can
  1001.   be used.  If at some time you wish to reset the global variables to
  1002.   their default settings you may use this procedure to complete that
  1003.   task.
  1004.  
  1005.  
  1006. ■ Example
  1007.  
  1008.   #include <fpclib.h>
  1009.  
  1010.   main()
  1011.   {
  1012.      VioInit();
  1013.   }
  1014.  
  1015.   This example initializes the video display variables needed for the
  1016.   video library routines.
  1017. ..page
  1018. ..head03AWhereXAbs
  1019. ■ Description
  1020.  
  1021.   Returns the column the cursor is in.
  1022.  
  1023.  
  1024. ■ Declaration
  1025.  
  1026.   INT FPENTRY WhereXAbs( void );
  1027.  
  1028.  
  1029. ■ Remarks
  1030.  
  1031.   This function will return an integer giving the column number the
  1032.   cursor is on.  This routine is not sensitive to the currently
  1033.   defined window.
  1034.  
  1035.  
  1036. ■ See Also
  1037.  
  1038.   GotoxyAbs, WhereYAbs
  1039.  
  1040.  
  1041. ■ Example
  1042.  
  1043.   #include <fpclib.h>
  1044.  
  1045.   main()
  1046.   {
  1047.      VioInit();
  1048.  
  1049.      printf("The cursor is in column %u", WhereXAbs() );
  1050.   }
  1051.  
  1052.   The column number of the cursor when WhereXAbs was called will be
  1053.   displayed to the screen.
  1054. ..page
  1055. ..head03AWhereYAbs
  1056. ■ Description
  1057.  
  1058.   Returns the row the cursor is on.
  1059.  
  1060.  
  1061. ■ Declaration
  1062.  
  1063.   INT FPENTRY WhereYAbs( void );
  1064.  
  1065.  
  1066. ■ Remarks
  1067.  
  1068.   This function will return an integer giving the row number the
  1069.   cursor is on.  This routine is not sensitive to the currently
  1070.   defined window.
  1071.  
  1072.  
  1073. ■ See Also
  1074.  
  1075.   GotoxyXAbs, WhereXAbs
  1076.  
  1077.  
  1078. ■ Example
  1079.  
  1080.   #include <fpclib.h>
  1081.  
  1082.   main()
  1083.   {
  1084.      VioInit();
  1085.  
  1086.      printf("The cursor is in row %u", WhereYAbs() );
  1087.   }
  1088.  
  1089.   The row number of of the cursor when WhereYAbs was called will be
  1090.   displayed to the screen.
  1091. ..page
  1092. ..head03AWindowFP
  1093. ■ Description
  1094.  
  1095.   Set the window coordinate variables WindMin and WindMax.
  1096.  
  1097.  
  1098. ■ Declaration
  1099.  
  1100.   void FPENTRY WindowFP( INT x1, INT y1, INT x2, INT y2 );
  1101.  
  1102.   x1          left column of window.
  1103.  
  1104.   y1          top row of window.
  1105.  
  1106.   x2          right column of window.
  1107.  
  1108.   y2          bottom row of window.
  1109.  
  1110.  
  1111. ■ Remarks
  1112.  
  1113.   This function sets the window coordinates in the WindMin and WindMax
  1114.   global variables which FrameWin uses for framing windows on the
  1115.   display screen.
  1116.  
  1117.  
  1118. ■ See Also
  1119.  
  1120.   FrameWin
  1121.  
  1122.  
  1123. ■ Example
  1124.  
  1125.   #include <fpclib.h>
  1126.  
  1127.   main()
  1128.   {
  1129.      VioInit();
  1130.  
  1131.      WindowFP( 1, 1, 80, 25 );
  1132.      FrameWin( 'L', 'R', 'l', 'r', 'h', 'v', 7 );
  1133.   }
  1134.  
  1135.   This example will set the window coordinates to the upper left and
  1136.   lower right corners of the video display.
  1137. ..page
  1138. ..head03AWriteSt
  1139. ■ Description
  1140.  
  1141.   Display a string on the screen
  1142.  
  1143.  
  1144. ■ Declaration
  1145.  
  1146.   void FPENTRY WriteSt( CHAR PTR String );
  1147.  
  1148.   Sting       string expression to display on screen.
  1149.  
  1150.  
  1151. ■ Remarks
  1152.  
  1153.   WriteSt positions the cursor after the newly displayed string.
  1154.   WriteSt is NOT sensitive to the currently defined window and will
  1155.   wrap around to the next row of column one of the physical screen
  1156.   when necessary. WriteSt will not scroll the screen if the data to be
  1157.   displayed is to extend beyond the last row of the screen.  WriteSt
  1158.   uses the attribute byte defined by the global variable TextAttr.
  1159.  
  1160.  
  1161. ■ See Also
  1162.  
  1163.   WriteStLn
  1164.  
  1165.  
  1166. ■ Example
  1167.  
  1168.   #include <fpclib.h>
  1169.  
  1170.   main()
  1171.   {
  1172.      int i;
  1173.  
  1174.      VioInit();
  1175.  
  1176.      GotoxyAbs( 1, 1 );      /* position curor in upper left corner */
  1177.  
  1178.      for ( i = 1; i < 50; i++ )
  1179.         WriteSt("test string ");
  1180.   }
  1181.  
  1182.   This example will position the cursor in the upper left corner of
  1183.   the display screen and then will proceed to display the string "test
  1184.   string" fifty times.  Example of the intented output follows:
  1185.  
  1186.   test string test string test string test string ...
  1187. ..page
  1188. ..head03AWriteStln
  1189. ■ Description
  1190.  
  1191.   Display a string on the screen
  1192.  
  1193. ■ Declaration
  1194.  
  1195.   void FPENTRY WriteStln( CHAR PTR String );
  1196.  
  1197.   Sting       string expression to display on screen.
  1198.  
  1199.  
  1200. ■ Remarks
  1201.  
  1202.   WriteStln positions the cursor in column one on the next line of the
  1203.   display screen after the data has been displayed.  WriteStln is NOT
  1204.   sensitive to the currently defined window and will wrap around to
  1205.   the next row of column one of the physical screen when necessary.
  1206.   WriteStln will not scroll the screen if the data to be displayed is
  1207.   to extend beyond the last row of the screen.  WriteStln uses the
  1208.   attribute byte defined by the global variable TextAttr.
  1209.  
  1210.  
  1211. ■ See Also
  1212.  
  1213.   WriteSt
  1214.  
  1215.  
  1216. ■ Example
  1217.  
  1218.   #include <fpclib.h>
  1219.  
  1220.   main()
  1221.   {
  1222.      int i;
  1223.  
  1224.      VioInit();
  1225.  
  1226.      GotoxyAbs( 1, 1 );      /* position curor in upper left corner */
  1227.  
  1228.      for ( i = 1; i < 24; i++ )
  1229.         WriteSt("test string ");
  1230.   }
  1231.  
  1232.   This example will position the cursor in the upper left corner of
  1233.   the display screen and then on each line will display the string
  1234.   "test string" on the first 24 lines of the display.
  1235. ..page
  1236.