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 stdout () : ADDRESS; PROCEDURE stderr () : ADDRESS; 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.