DEADSOFTWARE

updated build scripts
[cpc.git] / src / posix / generic / Host / Mod / Console.cp
1 MODULE HostConsole;
3 IMPORT S := SYSTEM, Console, HostLang, unistd := C99unistd;
5 TYPE
6 Directory = POINTER TO RECORD (Console.Directory) END;
8 PROCEDURE (d: Directory) WriteChar (ch: CHAR);
9 VAR res: INTEGER; s: ARRAY 2 OF CHAR; ss: ARRAY 12 OF SHORTCHAR;
10 BEGIN
11 s[0] := ch; s[1] := 0X;
12 HostLang.StringToHost(s, ss, TRUE, res);
13 ASSERT(res = 0, 100);
14 res := unistd.write(1, S.ADR(ss[0]), LEN(ss$));
15 res := unistd.fsync(1)
16 END WriteChar;
18 PROCEDURE (d: Directory) WriteString (IN s: ARRAY OF CHAR);
19 VAR ss: POINTER TO ARRAY OF SHORTCHAR; res: INTEGER;
20 BEGIN
21 NEW(ss, LEN(s$) * 4 + 1);
22 HostLang.StringToHost(s, ss, TRUE, res);
23 ASSERT(res = 0, 100);
24 res := unistd.write(1, S.ADR(ss[0]), LEN(ss$));
25 res := unistd.fsync(1)
26 END WriteString;
28 PROCEDURE (d: Directory) WriteLn;
29 BEGIN
30 d.WriteChar(0AX)
31 END WriteLn;
33 PROCEDURE Init;
34 VAR d: Directory;
35 BEGIN
36 NEW(d); Console.SetDir(d)
37 END Init;
39 BEGIN
40 Init
41 END HostConsole.