Use SYSTEM.ADDRESS in libraries. Build all with -O2. Support INC(a,b) for any int a,b that support a:=a+b.

This commit is contained in:
David Brown 2016-09-23 13:04:24 +01:00
parent f1cbbdba28
commit 22a4f8e263
92 changed files with 2752 additions and 2695 deletions

View file

@ -1,6 +1,6 @@
MODULE ulmIO;
IMPORT SYS := ulmSYSTEM, SYSTEM;
IMPORT SYS := ulmSYSTEM, SYSTEM, Platform;
CONST nl = 0AX;
@ -118,6 +118,7 @@ MODULE ulmIO;
(* ========================= terminal ============================ *)
(*
PROCEDURE ReadChar(VAR ch: CHAR) : BOOLEAN;
CONST read = 3;
(*VAR r0, r1: INTEGER;*)
@ -125,7 +126,17 @@ MODULE ulmIO;
BEGIN
RETURN SYS.UNIXCALL(read, r0, r1, 0, SYSTEM.ADR(ch), 1) & (r0 > 0)
END ReadChar;
*)
PROCEDURE ReadChar(VAR ch: CHAR) : BOOLEAN;
(* Read one byte, returning success flag *)
VAR error: Platform.ErrorCode; readcount: LONGINT;
BEGIN
error := Platform.ReadBuf(Platform.StdIn, ch, readcount);
RETURN readcount > 0
END ReadChar;
(*
PROCEDURE WriteChar(ch: CHAR) : BOOLEAN;
CONST write = 4;
(*VAR r0, r1: INTEGER;*)
@ -133,6 +144,13 @@ MODULE ulmIO;
BEGIN
RETURN SYS.UNIXCALL(write, r0, r1, 1, SYSTEM.ADR(ch), 1)
END WriteChar;
*)
PROCEDURE WriteChar(ch: CHAR) : BOOLEAN;
(* Write one byte, returning success flag *)
BEGIN
RETURN Platform.Write(Platform.StdOut, SYSTEM.ADR(ch), 1) = 0
END WriteChar;
PROCEDURE Read*(VAR ch: CHAR);
BEGIN

View file

@ -49,6 +49,7 @@ TYPE pchar = POINTER TO ARRAY 1 OF CHAR;
RETURN oldflag;
END TAS;
(*
PROCEDURE UNIXCALL*(syscall: LONGINT; VAR d0, d1: LONGINT; (* in ulm version both LONGINT and INTEGER are 4 byte size *)
arg1, arg2, arg3: LONGINT) : BOOLEAN;
VAR
@ -122,7 +123,7 @@ TYPE pchar = POINTER TO ARRAY 1 OF CHAR;
END
END UNIXCALL;
*)
PROCEDURE UNIXFORK(VAR pid: LONGINT) : BOOLEAN;
BEGIN
@ -135,8 +136,7 @@ TYPE pchar = POINTER TO ARRAY 1 OF CHAR;
END UNIXSIGNAL;
PROCEDURE WMOVE*(from, to, n : LONGINT);
VAR l : LONGINT;
PROCEDURE WMOVE*(from, to, n : SYSTEM.ADDRESS);
BEGIN
SYSTEM.MOVE(from, to, n);
END WMOVE;