| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- Listing:
- 1 IMPLEMENTATION MODULE SysShim;
- 2 (* Binds the C shim (shim.c) directly. *)
- 3
- 4 FROM SYSTEM IMPORT ADDRESS;
- 5
- 6 PROCEDURE m2fopenread (VAR name : ARRAY OF CHAR) : ADDRESS;
- 7 EXTERNAL;
- 8 PROCEDURE m2fopenwrite (VAR name : ARRAY OF CHAR) : ADDRESS;
- 9 EXTERNAL;
- 10 PROCEDURE m2fclose (h : ADDRESS);
- 11 EXTERNAL;
- 12 PROCEDURE m2fread (h : ADDRESS; VAR buf : ARRAY OF CHAR;
- 13 max : CARDINAL) : CARDINAL;
- 14 EXTERNAL;
- 15 PROCEDURE m2fputc (h : ADDRESS; c : CHAR);
- 16 EXTERNAL;
- 17 PROCEDURE m2fputs (h : ADDRESS; VAR s : ARRAY OF CHAR);
- 18 EXTERNAL;
- 19 PROCEDURE m2fwriteln (h : ADDRESS);
- 20 EXTERNAL;
- 21 PROCEDURE m2fwriteintw (h : ADDRESS; v : INTEGER; wid : CARDINAL);
- 22 EXTERNAL;
- 23 PROCEDURE m2stdout () : ADDRESS;
- 24 EXTERNAL;
- 25 PROCEDURE m2stderr () : ADDRESS;
- 26 EXTERNAL;
- 27 PROCEDURE m2arg (i : CARDINAL; VAR s : ARRAY OF CHAR;
- 28 cap : CARDINAL) : BOOLEAN;
- 29 EXTERNAL;
- 30
- 31 PROCEDURE fopenread (VAR name : ARRAY OF CHAR) : ADDRESS;
- 32 BEGIN
- 33 RETURN m2fopenread(name)
- 34 END fopenread;
- 35
- 36 PROCEDURE fopenwrite (VAR name : ARRAY OF CHAR) : ADDRESS;
- 37 BEGIN
- 38 RETURN m2fopenwrite(name)
- 39 END fopenwrite;
- 40
- 41 PROCEDURE fclose (h : ADDRESS);
- 42 BEGIN
- 43 m2fclose(h)
- 44 END fclose;
- 45
- 46 PROCEDURE fread (h : ADDRESS; VAR buf : ARRAY OF CHAR;
- 47 max : CARDINAL) : CARDINAL;
- 48 BEGIN
- 49 RETURN m2fread(h, buf, max)
- 50 END fread;
- 51
- 52 PROCEDURE fputc (h : ADDRESS; c : CHAR);
- 53 BEGIN
- 54 m2fputc(h, c)
- 55 END fputc;
- 56
- 57 PROCEDURE fputs (h : ADDRESS; VAR s : ARRAY OF CHAR);
- 58 BEGIN
- 59 m2fputs(h, s)
- 60 END fputs;
- 61
- 62 PROCEDURE fwriteln (h : ADDRESS);
- 63 BEGIN
- 64 m2fwriteln(h)
- 65 END fwriteln;
- 66
- 67 PROCEDURE fwriteintw (h : ADDRESS; v : INTEGER; wid : CARDINAL);
- 68 BEGIN
- 69 m2fwriteintw(h, v, wid)
- 70 END fwriteintw;
- 71
- 72 PROCEDURE stdout () : ADDRESS;
- 73 BEGIN
- 74 RETURN m2stdout()
- 75 END stdout;
- 76
- 77 PROCEDURE stderr () : ADDRESS;
- 78 BEGIN
- 79 RETURN m2stderr()
- 80 END stderr;
- 81
- 82 PROCEDURE arg (i : CARDINAL; VAR s : ARRAY OF CHAR;
- 83 cap : CARDINAL) : BOOLEAN;
- 84 BEGIN
- 85 RETURN m2arg(i, s, cap)
- 86 END arg;
- 87
- 88 END SysShim.
- 0 errors
|