home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / progjour / 1991 / 04 / testterm.pas < prev    next >
Pascal/Delphi Source File  |  1991-05-13  |  1KB  |  78 lines

  1. program TestTerm;
  2.  
  3. uses DOS,CRT;
  4.  
  5. const
  6.   PORT = 0;
  7.  
  8. var
  9.   Regs : Registers;
  10.   inChar : Char;
  11.  
  12. function CharPresent : Boolean;
  13.   begin
  14.   with Regs do
  15.     begin
  16.     dx := PORT;
  17.     ah := 3;
  18.     Intr($14,Regs);
  19.     CharPresent := Odd(ah) and ((ax and $8000) = 0);
  20.     end
  21.   end; {CharPresent}
  22.  
  23. procedure SetParms;
  24.   begin
  25.   with Regs do
  26.     begin
  27.     dx := PORT;
  28.     ah := 0;
  29.     al := $A3; {2400,8,N,1}
  30.     Intr($14,Regs);
  31.     end;
  32.   end; {SetParms}
  33.  
  34.  
  35. function GetSerialChar : Char;
  36.   begin
  37.   with Regs do
  38.     begin
  39.     dx := PORT;
  40.     ah := 2;
  41.     Intr($14,Regs);
  42.     GetSerialChar := Char(al);
  43.     end;
  44.   end; {SetParms}
  45.  
  46.  
  47. procedure SendChar(inChar : Char);
  48.   begin
  49.   with Regs do
  50.     begin
  51.     dx := PORT;
  52.     ah := 1;
  53.     al := Byte(inChar);
  54.     Intr($14,Regs);
  55.     end;
  56.   end; {SendChar}
  57.  
  58. begin
  59. CheckBreak :=FALSE;
  60. DirectVideo := TRUE;
  61. SetParms;
  62. repeat
  63.    if CharPresent then
  64.      begin
  65.      Write(Char(Byte(GetSerialChar) and $7F));
  66.      end;
  67.    if KeyPressed then
  68.      begin
  69.      inChar := ReadKey;
  70.      if (inChar = #0) and KeyPressed and (ReadKey = #45) then
  71.        Halt; {Exit on Alt-X}
  72.      SendChar(inChar)
  73.      end
  74.    until FALSE;
  75.  end.
  76.  
  77. end. {TestTerm}
  78.