Appearance
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 PROGRAMOutput: 8
SHR(x,n): Shift right.
vb
PROGRAM
PRINT SHR(8,3)
END PROGRAMOutput: 1
ROL(x,n): Rotate left.
vb
PROGRAM
PRINT ROL(1,1)
END PROGRAMROR(x,n): Rotate right.
vb
PROGRAM
PRINT ROR(2,1)
END PROGRAMExtended 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 PROGRAMOutput: 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 PROGRAMOutput: 100
MUX(sel,a,b): Selects based on condition.
vb
PROGRAM
DIM useB AS BOOL = TRUE
PRINT MUX(useB, 10, 20)
END PROGRAMOutput: 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 PROGRAMOutput: Sensor=25
Check bitmask:
vb
PROGRAM
DIM reg AS INT = 0x08
PRINT AND(reg,0x08) <> 0
END PROGRAMOutput: TRUE
Clamp temperature:
vb
PROGRAM
DIM temp AS INT = 120
PRINT LIMIT(0,temp,100)
END PROGRAMOutput: 100
Exercises with Solutions
Task 1: Get length of "Hello".
vb
PROGRAM
PRINT LEN("Hello")
END PROGRAMOutput: 5
Task 2: Create "Sensor=25".
vb
PROGRAM
DIM v AS INT = 25
PRINT CONCAT("Sensor=", TO_STRING(v))
END PROGRAMOutput: Sensor=25
Task 3: Shift value 1 left by 3 bits.
vb
PROGRAM
PRINT SHL(1,3)
END PROGRAMOutput: 8
Task 4: Clamp measurement to range 0‑10.
vb
PROGRAM
DIM m AS INT = 15
PRINT LIMIT(0,m,10)
END PROGRAMOutput: 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.