PACKET konvert DEFINES (* Copyright (C) 1986 *)
(* Frank Klapper *)
(* 28.10.86 *)
high byte,
low byte,
word,
change low byte,
change high byte,
dint,
high word,
low word:
INT PROC high byte (INT CONST value):
TEXT VAR x := " ";
replace (x, 1, value);
code (x SUB 2)
END PROC high byte;
INT PROC low byte (INT CONST value):
TEXT VAR x := " ";
replace (x, 1, value);
code (x SUB 1)
END PROC low byte;
INT PROC word (INT CONST low byte, high byte):
TEXT CONST x :: code (low byte) + code (high byte);
x ISUB 1
END PROC word;
PROC change low byte (INT VAR word, INT CONST low byte):
TEXT VAR x := " ";
replace (x, 1, word);
replace (x, 1, code (low byte));
word := x ISUB 1
END PROC change low byte;
PROC change high byte (INT VAR word, INT CONST high byte):
TEXT VAR x := " ";
replace (x, 1, word);
replace (x, 2, code (high byte));
word := x ISUB 1
END PROC change high byte;
REAL PROC dint (INT CONST low word, high word):
real low word + 65536.0 * real high word.
real low word:
real (low byte (low word)) + 256.0 * real (high byte (low word)).
real high word:
real (low byte (high word)) + 256.0 * real (high byte (high word)).
END PROC dint;
INT PROC high word (REAL CONST double precission int):
int (double precission int / 65536.0)
END PROC high word;
INT PROC low word (REAL CONST double precission int):
string of low bytes ISUB 1.
string of low bytes:
code (int (double precission int MOD 256.0)) +
code (int ((double precission int MOD 65536.0) / 256.0)).
END PROC low word;
END PACKET konvert;