Difference between revisions of "WAIT"

From QB64 Wiki
Jump to navigation Jump to search
imported>Clippy
m
imported>Stylin
(updated to keyword blueprint)
Line 1: Line 1:
The '''WAIT''' statement is often used to wait for the monitor's vertical retrace and either waits for the monitor's vertical retrace to begin or end.
+
The {{KW|WAIT}} statement waits until the value read from an I/O port has certain bits set.
  
  
 +
{{PageSyntax}}
 +
:<code>{{KW|WAIT}} {{Parameter|port%}}, {{Parameter|andMask%}}[, {{Parameter|xorMask%}}]</code>
  
:::''Syntax:'' WAIT port, and-expression[,xor expression]
 
  
 +
{{PageDescription}}
 +
* The {{KW|WAIT}} statement reads a value from {{Parameter|port%}} using {{KW|INP}}.
 +
* If {{Parameter|xorMask%}} is specified, the value is {{KW|XOR}}'d with {{Parameter|xorMask%}}. It has the effect of "toggle these bits".
 +
* The value is then {{KW|AND}}'d with {{Parameter|andMask%}}. It has the effect of "check if these bits are set".
 +
* If the final value is non-zero, {{KW|WAIT}} returns. Otherwise, another value is read from {{Parameter|port%}} and checked again.
 +
* The {{KW|WAIT}} statement returns immediately if {{Parameter|port%}} is not supported.
  
  
* The and-expression is combined with the data at the port using the operational AND and only if the result is non-zero is the next statement executed.
+
{{PageExamples}}
* If the xor-expression is used it is combined with the data from the port using the operational XOR, and then the result is combined using the value from the and-expression using operational AND, if (and only if) the result is non-zero after this process the program continues.
+
:Waiting for vertical retrace
 +
{{CodeStart}}' Either statement can be used to try to reduce screen flickering.
 +
' If both statements are used, try changing the order.
  
 +
WAIT &H3DA, 8 ' finishes whenever the screen isn't being written to
 +
WAIT &H3DA, 8, 8 ' finishes whenever the screen is being written to
 +
{{CodeEnd}}
  
''Syntax for vertical retrace:''
 
  
:WAIT &H3DA, 8 ' finishes whenever the screen isn't being written to
+
{{PageSeeAlso}}
:WAIT &H3DA, 8, 8 ' finishes whenever the screen is being written to
+
* {{KW|INP}}, {{KW|OUT}}
 +
* [[Scancodes]]
  
  
* Either statement can be used to try to reduce screen flickering.
+
{{PageNavigation}}
* If both statements are used, try changing the order.
 
 
 
 
 
''See also:'' [[Scancodes]](demo), [[INP]], [[OUT]]
 
 
 
 
 
 
 
==Navigation:==
 
 
 
[[Keyword_Reference_-_Alphabetical|Go to Keyword Reference - Alphabetical]]
 
 
 
[[Keyword Reference - By usage|Go to Keyword Reference - By usage]]
 

Revision as of 16:18, 24 February 2010

The WAIT statement waits until the value read from an I/O port has certain bits set.


Syntax

WAIT port%, andMask%[, xorMask%]


Description

  • The WAIT statement reads a value from port% using INP.
  • If xorMask% is specified, the value is XOR'd with xorMask%. It has the effect of "toggle these bits".
  • The value is then AND'd with andMask%. It has the effect of "check if these bits are set".
  • If the final value is non-zero, WAIT returns. Otherwise, another value is read from port% and checked again.
  • The WAIT statement returns immediately if port% is not supported.


Examples

Waiting for vertical retrace

' Either statement can be used to try to reduce screen flickering. ' If both statements are used, try changing the order. WAIT &H3DA, 8 ' finishes whenever the screen isn't being written to WAIT &H3DA, 8, 8 ' finishes whenever the screen is being written to


See also



Navigation:
Keyword Reference - Alphabetical
Keyword Reference - By Usage
Main Wiki Page