Word
Module with operations on WORD (machine word 32bit) for low-level routines.
Vars
randomSeed : WORD;
Procedures
PopCnt
1 Bit count operation
PROCEDURE PopCnt*(x : WORD): WORD;
LZCnt
Leading 0 bit count operation
PROCEDURE LZCnt*(x : WORD): WORD;
Swap
Swap bytes
PROCEDURE Swap* (x : WORD) : WORD;
FillByte
Fill WORD with BYTE value
PROCEDURE FillByte* (val : BYTE) : WORD;
Cast
Bit cast src to dst
PROCEDURE Cast*(VAR dst : ARRAY OF BYTE; src- : ARRAY OF BYTE);
CastConst
Bit cast src value to dst
PROCEDURE CastConst*(VAR dst : ARRAY OF BYTE; src : WORD);
RandomSeed
Reset random seed
PROCEDURE RandomSeed* (seed : WORD);
Random
Next psuedo random number : 0 -> range or 2^32 (XorShift)
PROCEDURE Random* (range := 0 : WORD): WORD;
Hash
Robert Jenkins’ 32 bit integer hash function
PROCEDURE Hash* (value : WORD): WORD;
FromString
Convert string str to WORD with optional base (10 by default) and optional start and length into str.
Return TRUE if success.
PROCEDURE FromString* (VAR result : WORD; str- : ARRAY OF CHAR; base := 10 : INTEGER; start := 0 : LONGINT ; length := -1 : LONGINT): BOOLEAN;