Enabling CTRL+C and CTRL+BREAK by Using PeekcharQQ

ID: Q123687


The information in this article applies to:
  • Microsoft FORTRAN PowerStation for MS-DOS, versions 1.0, 1.0a


SUMMARY

To break out of a long running program, it is customary to use CTRL+C or CTRL+BREAK. However, MS-DOS only checks for CTRL+C or CTRL+BREAK when processing keyboard input. If there is no keyboard input in a loop (it contains only calculations), the program is likely to ignore CTRL+C and CTRL+BREAK.

The PeekcharQQ() function performs keyboard input processing and should not significantly slow down your program, if used cautiously.


MORE INFORMATION

When you call PeekcharQQ() in a long loop, MS-DOS checks the keyboard for input. If CTRL+C or CTRK+BREAK was pressed, the program terminates.

In the sample code in this article, PeekcharQQ() is called thousands of times a second. In an actual application, this would noticeably slow the program. It is usually sufficient to place calls to PeekcharQQ() so that it is called at most a few times a second.

NOTE: Sometimes the following simple code will break on a CTRL+C even without the call to PeekcharQQ(). However, more complex code will require adding calls to PeekcharQQ() to allow CTRL+C or CTRL+BREAK processing.

Sample Code


C Compile Options needed: none

      include'flib.fi'
      include'flib.fd'

      logical l

      do i=1,1000000
         x = sqrt(i)
         l = peekcharqq()
      end do
      end 

Additional query words: kbinf nofpsnt 1.00 1.00a

Keywords :
Version : :1.0,1.0a
Platform :
Issue type :


Last Reviewed: November 2, 1999
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.