![]() ZBasic System Library
50
ZBasic Microcontrollers
Type
Subroutine
Invocation
BitCopy(destAddr, destBitOfst, srcAddr, srcBitOfst, bitCount)
Parameter
Method
Type
Description
dstAddr
ByVal
integral
The address to which to begin copying.
dstBitOfst
ByVal
integral
The bit offset to which to begin copying.
srcAddr
ByVal
integral
The address from which to begin copying.
srcBitOfst
ByVal
integral
The bit offset from which to begin copying.
bitCount
ByVal
integral
The number of bits to copy.
Discussion
This subroutine can be used to copy an arbitrary number of bits from one location in RAM to another.
The copy operation may begin and/or end in the middle of a byte if desired. An overlapping copy (when
the destination is in the midst of the data being copied) is handled correctly so that the data to be copied
is not overwritten.
For the purposes of this subroutine, RAM considered a sequence of bits with the least significant bits of
each byte preceding the more significant bits. This is the same model of RAM that is utilized by
GetBit() and PutBit(). The least significant bit of a byte is at offset zero and the most significant bit
is at offset 7.
Note that the bit offsets specified for the second and fourth parameters may have values greater than 7.
If a bit offset greater than 7 is given, the corresponding address component is adjusted internally to give
the same effect. For example, if an address of 200 and a bit offset of 19 are specified, these are
converted internally to 202 and 3, respectively.
All six parameters are converted internally to UnsignedInteger.
Caution
This subroutine should be used with care because it is possible to overwrite important data on the stack
or other areas of memory which may cause your program to malfunction.
Compatibility
This subroutine is not available on ZX models that are based on the ATmega32 processor (e.g. the ZX-
24). Moreover, it is not available in BasicX compatibility mode.
See Also
|