| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- DEFINITION MODULE microuiHelpers;
- (* Utility procedures for the microui Modula-2 port.
- Bitwise operations on CARDINAL (ISO M2 has none), real-to-string
- formatting for the widget labels, and a basic strtod replacement.
- Compilation (from modula2/):
- gm2 -fiso -I. -c microuiHelpers.mod
- *)
- FROM SYSTEM IMPORT ADDRESS, BYTE;
- PROCEDURE BITAND(a, b : CARDINAL) : CARDINAL;
- PROCEDURE BITOR(a, b : CARDINAL) : CARDINAL;
- PROCEDURE BITXOR(a, b : CARDINAL) : CARDINAL;
- PROCEDURE BITNOT(a : CARDINAL) : CARDINAL;
- PROCEDURE BITLSL(a, n : CARDINAL) : CARDINAL;
- PROCEDURE BITASR(a, n : CARDINAL) : CARDINAL;
- PROCEDURE HasFlag(val, flag : CARDINAL) : BOOLEAN;
- PROCEDURE HasNoFlag(val, flag : CARDINAL) : BOOLEAN;
- PROCEDURE StrLen(s : ARRAY OF CHAR) : CARDINAL;
- PROCEDURE CopyBytes(src, dst : ADDRESS; len : CARDINAL);
- (* Conversions from the integer types to SHORTREAL. GNU Modula-2 16.0.1
- miscompiles the type conversion SHORTREAL(x) for an integer x (it yields
- 0), so these helpers go through the standard FLOAT function and assign the
- result to a SHORTREAL. *)
- PROCEDURE IntToReal(n : INTEGER) : SHORTREAL;
- PROCEDURE CardToReal(n : CARDINAL) : SHORTREAL;
- (* Real-to-string: formats val into buf.
- prec < 0: %g style (prec = number of significant digits, up to 6).
- prec >= 0: fixed-point with prec decimal places.
- Returns the number of characters written (excluding NUL). *)
- PROCEDURE RealToStr(VAR buf : ARRAY OF CHAR; val : SHORTREAL; prec : INTEGER) : CARDINAL;
- (* Integer-to-string for "%d" style. *)
- PROCEDURE IntToStr(VAR buf : ARRAY OF CHAR; val : INTEGER) : CARDINAL;
- (* Hex to-string for "%02X" style (2-digit uppercase hex). *)
- PROCEDURE HexByte(VAR buf : ARRAY OF CHAR; val : CARDINAL) : CARDINAL;
- (* Minimal strtod: parses a decimal floating-point number from s.
- endptr receives the first character not consumed (may be NIL). *)
- PROCEDURE StrToReal(s : ARRAY OF CHAR; endptr : ADDRESS) : SHORTREAL;
- END microuiHelpers.
|