Q60133: Description of How LOCATE Can Change the Cursor Size
Article: Q60133 Product(s): See article Version(s): 4.00 4.00b 4.50 Operating System(s): MS-DOS Keyword(s): ENDUSER | SR# S890714-76 B_BasicCom | mspl13_basic Last Modified: 3-APR-1990 The LOCATE statement provides the ability to change the cursor size in text mode (SCREEN 0). The number of scan lines varies depending on the video system and the operating system. This information applies to Microsoft QuickBASIC Versions 4.00, 4.00b and 4.50 for MS-DOS, Microsoft BASIC Compiler Versions 6.00 and 6.00b for MS-DOS and OS/2, and Microsoft BASIC Professional Development System (PDS) Version 7.00 for MS-DOS and OS/2. The following table shows the valid settings for most video systems: Video System | Op Sys | Scan lines -------------+--------+----------- Hercules | DOS | 12 CGA/EGA/VGA | DOS | 8 Any | OS/2 | 16 The cursor is a text mode feature and is not available for use with the LOCATE statement in graphics modes. INPUT is the only statement that automatically uses a cursor in graphics modes. The following information, taken from the QBX.EXE online help from BASIC PDS 7.00, is the description of the usage of the start and stop lines in the LOCATE statement: The start and stop lines are the CRT scan lines that specify the following: 1. Which pixels on the screen are lit. A wider range between the start and stop lines produces a taller cursor, such as one that occupies an entire character block. In OS/2 real mode and under DOS, LOCATE assumes there are eight lines (numbered 0 to 7) in the cursor. In OS/2 protected mode, there are 16 lines (numbered 0 to 15). 2. When start% is greater than stop%, LOCATE produces a two-part cursor. If the start line is given, but the stop line is omitted, stop% assumes the same value as start%. A value of 8 for both start% and stop% produces the underline cursor. The maximum cursor size is determined by the character block size of the screen mode in use. Setting start% greater than stop% displays a full-height cursor on VGA-equipped systems. Code Example ------------ The following code example prompts you for start and stop scan lines and displays the cursor: SCREEN 0 CLS LOCATE 8, 10 DO INPUT "Start line: ",StartLine% IF StartLine% = -1 THEN END 'Enter -1 to end LOCATE 9, 10 INPUT "Stop line: ",StopLine% CLS LOCATE 10, 10, 1, StartLine%, StopLine% LOOP
THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.
Copyright Microsoft Corporation 1986-2002.