Skip to content

Advanced Functions

The advanced functions provide tools for more complex tasks: string manipulation, bit operations, larger numeric types, and safety-oriented helpers. These functions are essential for applications that go beyond basic arithmetic.

Bit Operations

SHL(x,n): Shift left.

vb
PROGRAM  
    PRINT SHL(1,3)  
END PROGRAM

Output: 8

SHR(x,n): Shift right.

vb
PROGRAM  
    PRINT SHR(8,3)  
END PROGRAM

Output: 1

ROL(x,n): Rotate left.

vb
PROGRAM  
    PRINT ROL(1,1)  
END PROGRAM

ROR(x,n): Rotate right.

vb
PROGRAM  
    PRINT ROR(2,1)  
END PROGRAM

Extended Arithmetic

Coldwave Script supports larger integers (DINT, LINT) and floating-point types (REAL, LREAL). Saturating rules apply: overflow clamps to max/min, not wrap.

vb
PROGRAM  
    DIM a AS LINT = 9223372036854775807  
    PRINT a + 1  
END PROGRAM

Output: 9223372036854775807 (clamped)

Safety Functions

LIMIT(min,x,max): Clamp value to interval.

vb
PROGRAM  
    DIM temp AS INT = 120  
    PRINT LIMIT(0,temp,100)  
END PROGRAM

Output: 100

MUX(sel,a,b): Selects based on condition.

vb
PROGRAM  
    DIM useB AS BOOL = TRUE  
    PRINT MUX(useB, 10, 20)  
END PROGRAM

Output: 20

Saturating arithmetic prevents overflow and ensures deterministic behavior.

Examples

Building a string:

vb
PROGRAM  
    DIM value AS INT = 25  
    PRINT CONCAT("Sensor=", TO_STRING(value))  
END PROGRAM

Output: Sensor=25

Check bitmask:

vb
PROGRAM  
    DIM reg AS INT = 0x08  
    PRINT AND(reg,0x08) <> 0  
END PROGRAM

Output: TRUE

Clamp temperature:

vb
PROGRAM  
    DIM temp AS INT = 120  
    PRINT LIMIT(0,temp,100)  
END PROGRAM

Output: 100

Exercises with Solutions

Task 1: Get length of "Hello".

vb
PROGRAM  
    PRINT LEN("Hello")  
END PROGRAM

Output: 5

Task 2: Create "Sensor=25".

vb
PROGRAM  
    DIM v AS INT = 25  
    PRINT CONCAT("Sensor=", TO_STRING(v))  
END PROGRAM

Output: Sensor=25

Task 3: Shift value 1 left by 3 bits.

vb
PROGRAM  
    PRINT SHL(1,3)  
END PROGRAM

Output: 8

Task 4: Clamp measurement to range 0‑10.

vb
PROGRAM  
    DIM m AS INT = 15  
    PRINT LIMIT(0,m,10)  
END PROGRAM

Output: 10

Summary

  • String functions support manipulation and analysis.
  • Bit operations are important for flags and masks.
  • Extended arithmetic supports wide numeric ranges.
  • Safety functions like LIMIT and MUX ensure stable deterministic behavior.