Microsoft KB Archive/34682

From BetaArchive Wiki
Knowledge Base

Communications (COM1: , COM2:) Receive Buffer Lost During CHAIN

Article ID: 34682

Article Last Modified on 11/21/2006


  • 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

This article was previously published under Q34682


The communications receive buffer is cleared when chaining to another module; at this point, data can be lost. This problem occurs only in a compiled .EXE program, and does not occur in the QB.EXE editor. Compiling with the BC /d (debug) option does not help. Data received at the communications port after the CHAIN operation is received normally.


Microsoft has confirmed this to be a bug in Microsoft QuickBasic Versions 4.00, 4.00b, and 4.50, and in Microsoft Basic Compiler Versions 6.00 and 6.00b for MS-DOS and MS OS/2 (buglist6.00, buglist6.00b). This problem was corrected in Microsoft Basic Professional Development System (PDS) Version 7.00 (fixlist7.00).


The programs below demonstrate the problem:

    ' File: P1.BAS
   OPEN "com1:1200,e,7,1,cs,ds" FOR RANDOM AS #2
   for x=1 to 10000 :next
   print y;
   CHAIN "p2"    'Chain to second program and print out buffer size

   ' File: P2.BAS
   print a$;

   ' File:P.bas
   'This program will send the characters
   open "com1:1200,e,7,1,cs,ds" for random as #1
   print "start"
   for x=1 to 10000
   print #1, x;
   next x
   close #1

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

Keywords: KB34682