forked from KolibriOS/kolibrios
delete old files
git-svn-id: svn://kolibrios.org@7694 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
parent
c4dee82cbc
commit
fe240646ed
File diff suppressed because it is too large
Load Diff
@ -1,110 +0,0 @@
|
|||||||
(*
|
|
||||||
BSD 2-Clause License
|
|
||||||
|
|
||||||
Copyright (c) 2018, 2019, Anton Krotov
|
|
||||||
All rights reserved.
|
|
||||||
*)
|
|
||||||
|
|
||||||
MODULE MACHINE;
|
|
||||||
|
|
||||||
IMPORT UTILS;
|
|
||||||
|
|
||||||
|
|
||||||
CONST
|
|
||||||
|
|
||||||
min32* = -2147483647-1;
|
|
||||||
max32* = 2147483647;
|
|
||||||
|
|
||||||
|
|
||||||
VAR
|
|
||||||
|
|
||||||
target*:
|
|
||||||
|
|
||||||
RECORD
|
|
||||||
|
|
||||||
bit_depth*,
|
|
||||||
maxInt*,
|
|
||||||
minInt*,
|
|
||||||
maxSet*,
|
|
||||||
maxHex*: INTEGER;
|
|
||||||
|
|
||||||
maxReal*: REAL
|
|
||||||
|
|
||||||
END;
|
|
||||||
|
|
||||||
_64to32*: BOOLEAN;
|
|
||||||
|
|
||||||
|
|
||||||
PROCEDURE SetBitDepth* (pBitDepth: INTEGER);
|
|
||||||
BEGIN
|
|
||||||
ASSERT(pBitDepth <= UTILS.bit_depth);
|
|
||||||
ASSERT((pBitDepth = 32) OR (pBitDepth = 64));
|
|
||||||
|
|
||||||
_64to32 := (UTILS.bit_depth = 64) & (pBitDepth = 32);
|
|
||||||
|
|
||||||
target.bit_depth := pBitDepth;
|
|
||||||
target.maxSet := pBitDepth - 1;
|
|
||||||
target.maxHex := pBitDepth DIV 4;
|
|
||||||
target.minInt := ASR(UTILS.minint, UTILS.bit_depth - pBitDepth);
|
|
||||||
target.maxInt := ASR(UTILS.maxint, UTILS.bit_depth - pBitDepth);
|
|
||||||
target.maxReal := 1.9;
|
|
||||||
PACK(target.maxReal, 1023);
|
|
||||||
END SetBitDepth;
|
|
||||||
|
|
||||||
|
|
||||||
PROCEDURE Byte* (n: INTEGER; idx: INTEGER): BYTE;
|
|
||||||
BEGIN
|
|
||||||
WHILE idx > 0 DO
|
|
||||||
n := ASR(n, 8);
|
|
||||||
DEC(idx)
|
|
||||||
END
|
|
||||||
|
|
||||||
RETURN ORD(BITS(n) * {0..7})
|
|
||||||
END Byte;
|
|
||||||
|
|
||||||
|
|
||||||
PROCEDURE Align* (VAR bytes: INTEGER; align: INTEGER): BOOLEAN;
|
|
||||||
VAR
|
|
||||||
res: BOOLEAN;
|
|
||||||
|
|
||||||
BEGIN
|
|
||||||
IF bytes MOD align # 0 THEN
|
|
||||||
res := UTILS.maxint - bytes >= align - (bytes MOD align);
|
|
||||||
IF res THEN
|
|
||||||
bytes := bytes + align - (bytes MOD align)
|
|
||||||
END
|
|
||||||
ELSE
|
|
||||||
res := TRUE
|
|
||||||
END
|
|
||||||
|
|
||||||
RETURN res
|
|
||||||
END Align;
|
|
||||||
|
|
||||||
|
|
||||||
PROCEDURE Int32To64* (value: INTEGER): INTEGER;
|
|
||||||
BEGIN
|
|
||||||
IF UTILS.bit_depth = 64 THEN
|
|
||||||
value := LSL(value, 16);
|
|
||||||
value := LSL(value, 16);
|
|
||||||
value := ASR(value, 16);
|
|
||||||
value := ASR(value, 16)
|
|
||||||
END
|
|
||||||
|
|
||||||
RETURN value
|
|
||||||
END Int32To64;
|
|
||||||
|
|
||||||
|
|
||||||
PROCEDURE Int64To32* (value: INTEGER): INTEGER;
|
|
||||||
BEGIN
|
|
||||||
IF UTILS.bit_depth = 64 THEN
|
|
||||||
value := LSL(value, 16);
|
|
||||||
value := LSL(value, 16);
|
|
||||||
value := LSR(value, 16);
|
|
||||||
value := LSR(value, 16)
|
|
||||||
END
|
|
||||||
|
|
||||||
RETURN value
|
|
||||||
END Int64To32;
|
|
||||||
|
|
||||||
|
|
||||||
END MACHINE.
|
|
Loading…
Reference in New Issue
Block a user