| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- IMPLEMENTATION MODULE SysShim;
- (* Binds the C shim (shim.c) directly. *)
- FROM SYSTEM IMPORT ADDRESS;
- PROCEDURE m2fopenread (VAR name : ARRAY OF CHAR) : ADDRESS;
- EXTERNAL;
- PROCEDURE m2fopenwrite (VAR name : ARRAY OF CHAR) : ADDRESS;
- EXTERNAL;
- PROCEDURE m2fclose (h : ADDRESS);
- EXTERNAL;
- PROCEDURE m2fread (h : ADDRESS; VAR buf : ARRAY OF CHAR;
- max : CARDINAL) : CARDINAL;
- EXTERNAL;
- PROCEDURE m2freadline (h : ADDRESS; VAR buf : ARRAY OF CHAR;
- max : CARDINAL) : CARDINAL;
- EXTERNAL;
- PROCEDURE m2fputc (h : ADDRESS; c : CHAR);
- EXTERNAL;
- PROCEDURE m2fputs (h : ADDRESS; VAR s : ARRAY OF CHAR);
- EXTERNAL;
- PROCEDURE m2fwriteln (h : ADDRESS);
- EXTERNAL;
- PROCEDURE m2fwriteintw (h : ADDRESS; v : INTEGER; wid : CARDINAL);
- EXTERNAL;
- PROCEDURE m2stdout () : ADDRESS;
- EXTERNAL;
- PROCEDURE m2stderr () : ADDRESS;
- EXTERNAL;
- PROCEDURE m2stdin () : ADDRESS;
- EXTERNAL;
- PROCEDURE m2ftell (h : ADDRESS) : INTEGER;
- EXTERNAL;
- PROCEDURE m2fseek (h : ADDRESS; pos : INTEGER) : BOOLEAN;
- EXTERNAL;
- PROCEDURE m2fgetc (h : ADDRESS) : CHAR;
- EXTERNAL;
- PROCEDURE m2freadint (h : ADDRESS) : INTEGER;
- EXTERNAL;
- PROCEDURE m2fwriteint (h : ADDRESS; v : INTEGER);
- EXTERNAL;
- PROCEDURE m2argc () : CARDINAL;
- EXTERNAL;
- PROCEDURE m2arg (i : CARDINAL; VAR s : ARRAY OF CHAR;
- cap : CARDINAL) : BOOLEAN;
- EXTERNAL;
- PROCEDURE fopenread (VAR name : ARRAY OF CHAR) : ADDRESS;
- BEGIN
- RETURN m2fopenread(name)
- END fopenread;
- PROCEDURE fopenwrite (VAR name : ARRAY OF CHAR) : ADDRESS;
- BEGIN
- RETURN m2fopenwrite(name)
- END fopenwrite;
- PROCEDURE fclose (h : ADDRESS);
- BEGIN
- m2fclose(h)
- END fclose;
- PROCEDURE fread (h : ADDRESS; VAR buf : ARRAY OF CHAR;
- max : CARDINAL) : CARDINAL;
- BEGIN
- RETURN m2fread(h, buf, max)
- END fread;
- PROCEDURE freadline (h : ADDRESS; VAR buf : ARRAY OF CHAR;
- max : CARDINAL) : CARDINAL;
- BEGIN
- RETURN m2freadline(h, buf, max)
- END freadline;
- PROCEDURE fputc (h : ADDRESS; c : CHAR);
- BEGIN
- m2fputc(h, c)
- END fputc;
- PROCEDURE fputs (h : ADDRESS; VAR s : ARRAY OF CHAR);
- BEGIN
- m2fputs(h, s)
- END fputs;
- PROCEDURE fwriteln (h : ADDRESS);
- BEGIN
- m2fwriteln(h)
- END fwriteln;
- PROCEDURE fwriteintw (h : ADDRESS; v : INTEGER; wid : CARDINAL);
- BEGIN
- m2fwriteintw(h, v, wid)
- END fwriteintw;
- PROCEDURE stdout () : ADDRESS;
- BEGIN
- RETURN m2stdout()
- END stdout;
- PROCEDURE stderr () : ADDRESS;
- BEGIN
- RETURN m2stderr()
- END stderr;
- PROCEDURE stdin () : ADDRESS;
- BEGIN
- RETURN m2stdin()
- END stdin;
- PROCEDURE ftell (h : ADDRESS) : INTEGER;
- BEGIN
- RETURN m2ftell(h)
- END ftell;
- PROCEDURE fseek (h : ADDRESS; pos : INTEGER) : BOOLEAN;
- BEGIN
- RETURN m2fseek(h, pos)
- END fseek;
- PROCEDURE fgetc (h : ADDRESS) : CHAR;
- BEGIN
- RETURN m2fgetc(h)
- END fgetc;
- PROCEDURE freadint (h : ADDRESS) : INTEGER;
- BEGIN
- RETURN m2freadint(h)
- END freadint;
- PROCEDURE fwriteint (h : ADDRESS; v : INTEGER);
- BEGIN
- m2fwriteint(h, v)
- END fwriteint;
- PROCEDURE argc () : CARDINAL;
- BEGIN
- RETURN m2argc()
- END argc;
- PROCEDURE arg (i : CARDINAL; VAR s : ARRAY OF CHAR;
- cap : CARDINAL) : BOOLEAN;
- BEGIN
- RETURN m2arg(i, s, cap)
- END arg;
- END SysShim.
|