You are here: Home DOCUMENTATION information SBASIC Manual - Page 37

Technological Arts Inc.

Your Shopping Cart

Your Cart is currently empty.

SBASIC Manual - Page 37

Article Index
Page 2
Page 3
Page 4
Page 5
Page 6
Page 7
Page 8
Page 9
Page 10
Page 11
Page 12
Page 13
Page 14
Page 15
Page 16
Page 17
Page 18
Page 19
Page 20
Page 21
Page 22
Page 23
Page 24
Page 25
Page 26
Page 27
Page 28
Page 29
Page 30
Page 31
Page 32
Page 33
Page 34
Page 35
Page 36
Page 37
Page 38
Page 39
Page 40
Page 41
Page 42
Page 43
Page 44
Page 45
Page 46
Page 47
Page 48
Page 49
Page 50
Page 51
Page 52
Page 53
Page 54
Page 55
Page 56
Page 57
Page 58
Page 59
Page 60
Table of Contents
All Pages

     SBasic User's Manual     SBasic Version 2.7             Page 37
     Printed:  December 5, 1999
     This statement repeatedly reads the 8-bit value at the address
     contained in variable J and ANDs that value with the low eight bits in
     variable N, until the result is not zero.  When the result is not
     zero, the loop terminates.

     You must be aware of a few characteristics of the WAIT loops.  The
     first argument is always treated as an address, even if you use a
     variable.  In the second example above, the loop does not test the
     value in J, it uses the value in J as the address to test.

     Second, the WAIT statements always test an 8-bit address; you cannot
     test a 16-bit I/O port with these statements.

     Also, the WAIT statements always use the low eight bits of the mask
     argument.  Thus, if you specify a variable as the mask value, the WAIT
     statements will automatically use just the low eight bits in the loop

     Finally, you can improve the speed of the generated code by using only
     constants, numbers, or variables as arguments to these statements.
     Using an argument that contains math or logical operations will
     generate larger, slower test loops.


          waitwhile j+4, n/q       ' this runs slowly

     will run slowly, since the two math operations will be performed
     inside each test loop.  A better way to write this is:

          adr = j+4                ' calc the address
          mask = n/q               ' calc the mask
          waitwhile  adr, mask     ' now do the loop

     The ADDR function returns the address of a specified label or


          a = addr(MyLabel)        ' put address of MyLabel in A

     You can use the ADDR() function to locate the first element in an
     array.  To do this, simply leave off the parentheses when supplying
     the array's name.  For example:

          declare  foo(5)

          a = addr(foo)

     causes A to contain the address of FOO(0).