nothing should work. just checking in.

This commit is contained in:
norayr 2016-02-23 17:57:58 +04:00
commit 4acd41201c
5 changed files with 242 additions and 0 deletions

38
types.Mod Normal file
View file

@ -0,0 +1,38 @@
MODULE types;
IMPORT SYS := SYSTEM;
TYPE
intarr64 = ARRAY 8 OF SYS.BYTE; (* to emulate int16 on x86_64; -- noch *)
intarr32 = ARRAY 4 OF SYS.BYTE;
intarr16 = ARRAY 2 OF SYS.BYTE;
Int16* = intarr16; (* INTEGER on 32 bit platform *)
Int32* = INTEGER;
Int64* = LONGINT;
String* = ARRAY 256 OF CHAR;
PROCEDURE LongintToInt16*(int: LONGINT; VAR int16: Int16);
VAR longintarr : intarr64;
BEGIN
(*RETURN SYS.VAL(Int16, int)*)
longintarr := SYS.VAL(intarr64, int);
int16[0] := longintarr[0];
int16[1] := longintarr[1]; (* this will work for little endian -- noch *)
END LongintToInt16;
PROCEDURE IntegerToInt16*(int: INTEGER; VAR int16: Int16);
VAR intarr : intarr32;
BEGIN
int16 := SYS.VAL(Int16, int)
(*intarr := SYS.VAL(intarr32, int);
int16[0] := intarr[0];
int16[1] := intarr[1];*) (* this will work for little endian -- noch *)
END IntegerToInt16;
PROCEDURE htons*(in: Int16; VAR out : Int16);
BEGIN
out[0] := in[1];
out[1] := in[0];
END htons;
END types.