home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / cw / kamrtty / kam-vid.pas < prev    next >
Pascal/Delphi Source File  |  1988-04-05  |  3KB  |  119 lines

  1. procedure clean_up_display;
  2. var start, finish : integer;
  3. begin
  4.    if (xkbd <= 1) AND (ykbd = out_start_line) then exit;
  5.    start := (80*(yout - 1) + xout) - 1;
  6.    finish := (80*(ykbd - 1) + xkbd) - 1;
  7.    while start <= finish do
  8.    begin
  9.      if (start > lead_attr) then
  10.      case vid_type of
  11.        0 : mono_screen[start].a := xmt_attrib;
  12.        1 : color_screen[start].a := xmt_attrib;
  13.      end;
  14.      start := start + 2;
  15.    end;
  16. end;
  17.  
  18. procedure del_char;
  19. begin
  20.   if (inp_ptr <> out_ptr) then
  21.   begin
  22.     if xkbd > 1 then
  23.     begin
  24.       inp_ptr := inp_ptr - 1;
  25.       if (inp_ptr < 0 ) then inp_ptr := buf_size;
  26.       xkbd := xkbd - 1;
  27.       gotoxy(xkbd,ykbd);
  28.       transmit_color;
  29.       write(' '^H);
  30.     end;
  31.   end;
  32. end;
  33.  
  34. procedure add_char(ch : char);
  35. begin
  36.   inp_ptr := (inp_ptr + 1) AND buf_size;
  37.   kbd_buffer[inp_ptr] := ch;
  38.   gotoxy(xkbd,ykbd);
  39.   case state  of
  40.     transmit  : transmit_color;
  41.     receive   : aux_color;
  42.   end;
  43.   if ch = #$0D
  44.   then begin
  45.          write(#31);
  46.          xkbd := 1;
  47.          ykbd := ykbd + 1;
  48.        end
  49.   else begin
  50.          case ch of
  51.            #07 : case mode of
  52.                    CW    : write(' ');
  53.                    RTTY  : write(#254);
  54.                    ASCII : write(#254);
  55.                  end;
  56.            else  write(ch);
  57.          end;
  58.          xkbd := xkbd + 1;
  59.          if xkbd > scrn_width then
  60.          begin
  61.            xkbd := 1;
  62.            ykbd := ykbd + 1;
  63.          end;
  64.        end;
  65.   if ykbd > out_end_line then
  66.     begin
  67.       transmit_color;
  68.       window(1,out_start_line,80,out_end_line);
  69.       gotoxy(1,1); DelLine;
  70.       window(1,1,80,25);
  71.       ykbd := ykbd - 1;
  72.       yout := yout - 1;
  73.     end;
  74.   gotoxy(xkbd,ykbd);
  75. end;
  76.  
  77. procedure RYs;
  78. var   i : integer;
  79.      RY : string[72];
  80. begin
  81.   RY := 'RYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRY';
  82.   add_char(#13);
  83.   for i := 1 to length(RY) do
  84.     add_char(RY[i]);
  85.   add_char(#13);
  86. end;
  87.  
  88. procedure xmt_msg( nbr : integer);
  89. var  index : integer;
  90.      size  : integer;
  91. begin
  92.   index := 1;
  93.   size := ord(msg[nbr][0])+1;
  94.   while (index < size) do
  95.     begin
  96.       add_char(msg[nbr][index]);
  97.       index := index + 1;
  98.     end;
  99. end;
  100.  
  101. procedure add_msg;
  102. var nbr, size, index : integer;
  103.     ch : char;
  104. begin
  105.   prompt_color;
  106.   gotoxy(20,aux_line); write('Select Msg (0..9) ...');
  107.   repeat
  108.     ch := readkey;
  109.   until (ch in [#0,'0'..'9']);
  110.   if ch = #0 then
  111.   begin
  112.     ch := readkey;
  113.     gotoxy(20,aux_line); aux_color; ClrEol;
  114.     exit;
  115.   end;
  116.   xmt_msg(ord(ch) - $30);
  117.   gotoxy(20,aux_line); aux_color; ClrEol;
  118. end;
  119.