| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- DEFINITION MODULE SysShim;
- (* Low-level bridge from V3 Modula-2 to the C runtime shim
- (runtime/syslib/shim.c). Descriptor-aware: ARRAY OF CHAR is
- passed as its descriptor address, matching V3's string layout.
- This is the self-hosted counterpart of the host FileIO. *)
- FROM SYSTEM IMPORT ADDRESS;
- PROCEDURE fopenread (VAR name : ARRAY OF CHAR) : ADDRESS;
- (* Opens name for reading; NIL on failure. *)
- PROCEDURE fopenwrite (VAR name : ARRAY OF CHAR) : ADDRESS;
- (* Creates/truncates name for writing; NIL on failure. *)
- PROCEDURE fclose (h : ADDRESS);
- PROCEDURE fread (h : ADDRESS; VAR buf : ARRAY OF CHAR;
- max : CARDINAL) : CARDINAL;
- (* Reads up to max bytes into buf; buf's length is set to the
- number read, which is also returned. *)
- PROCEDURE fputc (h : ADDRESS; c : CHAR);
- PROCEDURE fputs (h : ADDRESS; VAR s : ARRAY OF CHAR);
- PROCEDURE fwriteln (h : ADDRESS);
- PROCEDURE fwriteintw (h : ADDRESS; v : INTEGER; wid : CARDINAL);
- PROCEDURE stdin () : ADDRESS;
- PROCEDURE stdout () : ADDRESS;
- PROCEDURE stderr () : ADDRESS;
- PROCEDURE fgetc (h : ADDRESS) : CHAR;
- (* Reads one byte from h; 0C at end of file. *)
- PROCEDURE fwriteint (h : ADDRESS; v : INTEGER);
- (* Writes v in decimal to h (no field width). *)
- PROCEDURE argc () : CARDINAL;
- (* Number of command-line words, including the program name. *)
- PROCEDURE arg (i : CARDINAL; VAR s : ARRAY OF CHAR;
- cap : CARDINAL) : BOOLEAN;
- (* Copies command-line argument i into s (capacity cap); FALSE when
- no such argument. *)
- END SysShim.
|