MODULE TypeWriter; IMPORT Out; VAR sOn- : BOOLEAN; TYPE Register* = RECORD ch* : CHAR; str* : ARRAY 128 OF CHAR; END; VAR r* : Register; (* —- основные процедуры *) PROCEDURE Char*; BEGIN Out.Char(r.ch); END Char; PROCEDURE NewLine*; BEGIN Out.Ln; END NewLine; PROCEDURE String*; BEGIN Out.String(r.str); END String; (* —- процедуры изменения состояний и регистров *) PROCEDURE StateOn; BEGIN sOn := TRUE; END StateOn; PROCEDURE StateOff; BEGIN sOn := FALSE; END StateOff; PROCEDURE ResetRegister; BEGIN r.ch := 0X; r.str[0] := 0X; END ResetRegister; (* —- процедуры включения и выключения машины *) PROCEDURE On*; BEGIN StateOn; ResetRegister; END On; PROCEDURE Off*; BEGIN StateOff; ResetRegister; END Off; BEGIN On; END TypeWriter.