SCREEN Function Returns 32 for ASCII Byte 196 in SCREEN 3 (37484)



The information in this article applies to:

  • Microsoft QuickBASIC 4.0
  • Microsoft QuickBASIC 4.0b
  • Microsoft QuickBASIC 4.5
  • Microsoft BASIC Compiler for MS-DOS and OS/2 6.0
  • Microsoft BASIC Compiler for MS-DOS and OS/2 6.0b
  • Microsoft Basic Professional Development System for MS-DOS 7.0
  • Microsoft Basic Professional Development System for MS-DOS 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)


Modification Type:MinorLast Reviewed:8/16/2005
Keywords:KB37484