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;