DEFINITION MODULE FileIO; (* Self-hosted V3 FileIO over the runtime shim (SysShim). Provides the subset used by the Coco/R-generated scanner/parser/driver, plus the classic string helpers. Stage-2 counterpart of the host-supplied FileIO used to bootstrap. *) FROM SYSTEM IMPORT ADDRESS; TYPE File = ADDRESS; INT32 = INTEGER; CONST EOF = CHR(0); EOL = CHR(10); ESC = CHR(27); CR = CHR(13); LF = CHR(10); BS = CHR(8); DEL = CHR(127); BitSetSize = 16; Long0 = 0; Long1 = 1; Long2 = 2; PathSep = ":"; DirSep = "/"; VAR Okay: BOOLEAN; con, err: File; StdIn, StdOut: File; PROCEDURE NextParameter (VAR s: ARRAY OF CHAR); PROCEDURE Open (VAR f: File; fileName: ARRAY OF CHAR; newFile: BOOLEAN); PROCEDURE Close (VAR f: File); PROCEDURE ReadBytes (f: File; VAR buf: ARRAY OF CHAR; VAR len: CARDINAL); PROCEDURE Write (f: File; ch: CHAR); PROCEDURE WriteLn (f: File); PROCEDURE WriteString (f: File; str: ARRAY OF CHAR); PROCEDURE WriteInt (f: File; int: INTEGER; wid: CARDINAL); PROCEDURE WriteCard (f: File; card, wid: CARDINAL); PROCEDURE SLENGTH (stringVal: ARRAY OF CHAR): CARDINAL; PROCEDURE Assign (source: ARRAY OF CHAR; VAR destination: ARRAY OF CHAR); PROCEDURE Extract (source: ARRAY OF CHAR; startIndex, numberToExtract: CARDINAL; VAR destination: ARRAY OF CHAR); PROCEDURE Concat (stringVal1, stringVal2: ARRAY OF CHAR; VAR destination: ARRAY OF CHAR); PROCEDURE Compare (stringVal1, stringVal2: ARRAY OF CHAR): INTEGER; END FileIO.