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