Microsoft KB Archive/37484

From BetaArchive Wiki
Knowledge Base


SCREEN Function Returns 32 for ASCII Byte 196 in SCREEN 3

Article ID: 37484

Article Last Modified on 8/16/2005



APPLIES TO

  • Microsoft QuickBasic 4.0
  • Microsoft QuickBASIC 4.0b
  • Microsoft QuickBasic 4.5 for MS-DOS
  • Microsoft BASIC Compiler 6.0
  • Microsoft BASIC Compiler 6.0b
  • Microsoft BASIC Professional Development System 7.0
  • Microsoft BASIC Professional Development System 7.1



This article was previously published under Q37484

SYMPTOMS

The SCREEN function returns an ASCII value of 32 (a blank) for the character CHR$(196) in the Hercules graphics mode (SCREEN 3). The correct value (196) correctly returns in any other screen mode. The program below demonstrates the problem and gives a listing of other characters that the screen function will return 32.

STATUS

Microsoft has confirmed this to be a bug in Microsoft QuickBasic versions 4.00, 4.00b, and 4.50 for MS-DOS; in Microsoft Basic Compiler versions 6.00 and 6.00b for MS-DOS (buglist6.00, buglist6.00b); and in Microsoft Basic PDS versions 7.00 and 7.10 (buglist7.00, buglist7.10) for MS-DOS. We are researching this problem and will post new information here in the Microsoft Knowledge Base as it becomes available.

MORE INFORMATION

The following code example demonstrates the problem:

   CLS
   SCREEN 3
   OPEN "prints32.dat" FOR OUTPUT AS #1
   FOR x = 0 TO 255
   CLS
   PRINT CHR$(x)
   PRINT SCREEN(1, 1)
   WHILE INKEY$ = "": WEND
   IF SCREEN(1, 1) = 32 THEN PRINT #1, x
   NEXT x
   CLOSE
                

The SCREEN function returns an ASCII value of 32 (blank) for the following ASCII characters:

chr$(0)
chr$(7)
chr$(9)
chr$(10)
chr$(11)
chr$(12)
chr$(13)
chr$(28)
chr$(29)
chr$(30)
chr$(31)
chr$(32)
chr$(196) ' <<====== Returns ASCII 32 (blank) only in SCREEN 3
chr$(255)



Additional query words: QuickBas BasicCom buglist4.00 buglist4.00b buglist4.50

Keywords: KB37484