mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-10-10 02:47:23 +00:00
Beginning adding -OC (large model) runtime library
This commit is contained in:
parent
9ffafc59b4
commit
212bcd58b9
23 changed files with 6183 additions and 169 deletions
55
src/runtime/Out.Mod
Normal file
55
src/runtime/Out.Mod
Normal file
|
|
@ -0,0 +1,55 @@
|
|||
MODULE Out; (* D C W Brown. 2016-09-27 *)
|
||||
|
||||
IMPORT SYSTEM, Platform;
|
||||
|
||||
PROCEDURE Open*;
|
||||
BEGIN
|
||||
END Open;
|
||||
|
||||
PROCEDURE Char*(ch: CHAR);
|
||||
VAR error: Platform.ErrorCode;
|
||||
BEGIN
|
||||
error := Platform.Write(Platform.StdOut, SYSTEM.ADR(ch), 1)
|
||||
END Char;
|
||||
|
||||
PROCEDURE String*(str: ARRAY OF CHAR);
|
||||
VAR l: LONGINT; error: Platform.ErrorCode;
|
||||
BEGIN
|
||||
l := 0; WHILE (l < LEN(str)) & (str[l] # 0X) DO INC(l) END;
|
||||
error := Platform.Write(Platform.StdOut, SYSTEM.ADR(str), l)
|
||||
END String;
|
||||
|
||||
PROCEDURE Int*(x: HUGEINT; n: LONGINT);
|
||||
CONST zero = ORD('0');
|
||||
VAR s: ARRAY 22 OF CHAR; i: INTEGER; negative: BOOLEAN;
|
||||
BEGIN
|
||||
negative := x < 0;
|
||||
IF x = MIN(HUGEINT) THEN
|
||||
s := "8085774586302733229"; i := 19
|
||||
ELSE
|
||||
IF x < 0 THEN x := - x END;
|
||||
s[0] := CHR(zero + (x MOD 10)); x := x DIV 10;
|
||||
i := 1; WHILE x # 0 DO
|
||||
s[i] := CHR(zero + (x MOD 10));
|
||||
x := x DIV 10;
|
||||
INC(i)
|
||||
END
|
||||
END;
|
||||
IF negative THEN s[i] := '-'; INC(i) END;
|
||||
WHILE n > i DO Char(' '); DEC(n) END;
|
||||
WHILE i > 0 DO DEC(i); Char(s[i]) END
|
||||
END Int;
|
||||
|
||||
PROCEDURE Real*(x: REAL; n: INTEGER);
|
||||
BEGIN
|
||||
END Real;
|
||||
|
||||
PROCEDURE LongReal*(x: LONGREAL; n: INTEGER);
|
||||
BEGIN
|
||||
END LongReal;
|
||||
|
||||
PROCEDURE Ln*;
|
||||
BEGIN String(Platform.NL)
|
||||
END Ln;
|
||||
|
||||
END Out.
|
||||
Loading…
Add table
Add a link
Reference in a new issue