# System Functions

CRC( ) | Cyclic-Redundancy-Check

## Format

CRC(chars$[,basis$][,type][,ERR=stmtref])
Where:

chars$ | String of characters on which to calculate a cyclic redundancy check.
basis$ | Optional initial value to be used as the basis of the CRC. It must be two characters long (CRC-16 ) or four characters long (CRC-32) if included in the statement. (Default: $0000$)
type | Optional numeric used to determine if a 16-bit (CRC-16) or 32-bit (CRC-32) cyclic redundancy checksum should be calculated. Only accepted values are 16 or 32. (Default: 16)
stmtref | Program line number or statement label to which to transfer control.

#### Note:
The CRC( ) function is used primarily for generating transmission checksums on synchronous communications.

## Returns

Cyclic redundancy checksum (in internal format).

## Description

The CRC( ) function returns the 16-bit or 32-bit cyclic redundancy checksum of a string of characters. The default is the 16-bit cyclic redundancy checksum.

Use the initial value (basis$) to generate an overall CRC( ) of multiple strings. See the Example below where CRC(B$) with an initial value of CRC(A$) will be the same as CRC(A$+B$).

If you omit the initial value, PxPlus uses the default value $0000$.

## Example

A$="Hello",B$="World"
0010 let C$=crc(A$)
0020 let C$=crc(B$,C$)
… yields the same result as:
0030 let C$=crc(A$+B$)

That is:

HTA(C$) | Value
After line 0010 | $F353$
After line 0020 | $6053$
After line 0030 | $6053$