IMPLEMENTATION MODULE FileIO ; FROM SYSTEM IMPORT ADR ; FROM StreamFile IMPORT Open, Close ; FROM IOChan IMPORT ChanId, RawRead, RawWrite ; FROM ChanConsts IMPORT FlagSet, OpenResults, readFlag, writeFlag, oldFlag, rawFlag, opened ; VAR fs : FlagSet ; cid : ChanId ; res : OpenResults ; PROCEDURE ReadFile (name: ARRAY OF CHAR; VAR data: ARRAY OF CHAR; VAR got: CARDINAL) : BOOLEAN ; BEGIN fs := FlagSet {readFlag, oldFlag, rawFlag} ; Open (cid, name, fs, res) ; IF res # opened THEN RETURN FALSE ; END ; RawRead (cid, ADR (data), HIGH (data) + 1, got) ; Close (cid) ; RETURN TRUE ; END ReadFile ; PROCEDURE WriteFile (name: ARRAY OF CHAR; VAR data: ARRAY OF CHAR; n: CARDINAL) : BOOLEAN ; BEGIN fs := FlagSet {writeFlag, rawFlag} ; Open (cid, name, fs, res) ; IF res # opened THEN RETURN FALSE ; END ; RawWrite (cid, ADR (data), n) ; Close (cid) ; RETURN TRUE ; END WriteFile ; END FileIO.