MODULE MasterDisk; IMPORT Disk, Cell, Hole, Cover, TextRider; TYPE P* = POINTER TO T; T* = RECORD ( Disk.T ) END; PROCEDURE ( d : P ) ReadCell* ( reader : TextRider.Reader ) : Cell.P; VAR cell1 : Cover.P; cell2 : Hole.P; number : INTEGER; BEGIN reader.ReadInt ( number ); IF reader.byteReader.res = TextRider.done THEN IF number > 0 THEN NEW ( cell1 ); RETURN cell1; ELSE NEW ( cell2 ); RETURN cell2; END; (* IF *) ELSE RETURN NIL; END; (* IF *) END ReadCell; PROCEDURE Init* ( d : P; next : Disk.P; fileName : ARRAY OF CHAR ); BEGIN Disk.Init ( d, next, fileName ); END Init; END MasterDisk.