Q50896: If WIDTH 80,60 in SCREEN 12 Then PALETTE Can Give Wrong Color
Article: Q50896 Product(s): See article Version(s): 4.50 Operating System(s): MS-DOS Keyword(s): ENDUSER | buglist4.50 B_BasicCom | mspl13_basic Last Modified: 21-SEP-1990 In SCREEN 12, if the WIDTH 80, 60 statement is used to set the screen to 60-line mode and then the PALETTE statement is used to set attributes and colors, the palette can give erroneous colors. The problem can be worked around by changing the WIDTH statement to WIDTH , 30 to set the screen to 30-line mode instead of 60. The code fragment given below demonstrates the problem in QuickBASIC version 4.50. The same code fragment runs correctly in QuickBASIC versions 4.00 and 4.00b. Microsoft has confirmed this to be a problem in QuickBASIC version 4.50 and in Microsoft BASIC Professional Development System (PDS) version 7.00 (buglist7.00). This problem was corrected in BASIC PDS version 7.10 (fixlist7.10). The program below reproduces the problem on SCREEN 12, which requires a VGA. It should produce bands of shades of gray going from black to white across the screen. Instead, it produces bands of the same set of incorrect colors each time it is run. SCREEN 12 WIDTH 80, 60 'WIDTH 80, 30 gives correct results FOR X = 4 TO 60 STEP 4 A& = 65536 * X + 256 * X + X B = X / 4 PALETTE B, A& NEXT FOR X = 1 TO 16 LINE (X * 10, 0)-(X * 10 + 20, 350), X, BF NEXT
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.