program DemoTest_1;
(***********************************)
(*Программа демонстрирует использование управляющих символов.*)
(* #07-^G — звонок (BEL);	*)
(* #08-^H —  (BS); *)
(* #10-^J — перевод строки (LF); *)
(* #13-^M — возврат каретки (CR). *)
(***********************************)
const
CR = #$0D;
LF = #$0A;
TempName = ?$$$$$$$$.$$$?;
type
StringType = string [80];
RegPack = record
case boolean of
False : (AX,BX,CX,DX,BP,SI,DI,DS,ES,Flags : integer);
True : (AL,AH,BL,BH,CL,CH,DL,DH : byte)
end;
var
C : char;
F : text;
L : StringType;
(*—————————————————————————————————————-*)
procedure PutLine (Line : StringType);
(**********************)
(* Печать с задержкой *)
(**********************)
const
Time = 150;
var
I : byte;
Regs : RegPack;
begin
for I := 1 to Length (Line) do begin
Regs.AH := $02; (* печать символа *)
Regs.DL := Ord (Line [I]);
MsDos (Regs);
Delay (Time) end;
WriteLn;
Exit
end; (* PutLine *)
(*—————————————————————————————————————-*)
begin
TextBackGround (Black);
TextColor (LightGray);
ClrScr;
for C := #00 to #31 do begin
Str (Ord (C) : 3, L);
L := L + ? —>? + C + ?<—?;
if C > #15 then GotoXY (40, WhereY);
PutLine (L);
if C = #15 then GotoXY (1, 1)
end;
GotoXY (1, 18);
Assign (F, TempName);
Rewrite (F);
WriteLn (F, ?Разорванная? + CR + LF + ?строка?);
WriteLn (F, ?Разорванная? + LF + CR + ?строка?);
WriteLn (F, ?Разорванная? + CR + ?строка?);
Close (F);
Reset (F);
while not Eof (F) do begin
ReadLn (F, L);
PutLine (L) end;
Close (F);
Erase (F);
Halt
end. (* DemoTest_1 *)
375