mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-07 01:02:24 +00:00
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:
parent
f1cbbdba28
commit
22a4f8e263
92 changed files with 2752 additions and 2695 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue