home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HAM Radio 1
/
HamRadio.cdr
/
cw
/
kamrtty
/
kam-vid.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1988-04-05
|
3KB
|
119 lines
procedure clean_up_display;
var start, finish : integer;
begin
if (xkbd <= 1) AND (ykbd = out_start_line) then exit;
start := (80*(yout - 1) + xout) - 1;
finish := (80*(ykbd - 1) + xkbd) - 1;
while start <= finish do
begin
if (start > lead_attr) then
case vid_type of
0 : mono_screen[start].a := xmt_attrib;
1 : color_screen[start].a := xmt_attrib;
end;
start := start + 2;
end;
end;
procedure del_char;
begin
if (inp_ptr <> out_ptr) then
begin
if xkbd > 1 then
begin
inp_ptr := inp_ptr - 1;
if (inp_ptr < 0 ) then inp_ptr := buf_size;
xkbd := xkbd - 1;
gotoxy(xkbd,ykbd);
transmit_color;
write(' '^H);
end;
end;
end;
procedure add_char(ch : char);
begin
inp_ptr := (inp_ptr + 1) AND buf_size;
kbd_buffer[inp_ptr] := ch;
gotoxy(xkbd,ykbd);
case state of
transmit : transmit_color;
receive : aux_color;
end;
if ch = #$0D
then begin
write(#31);
xkbd := 1;
ykbd := ykbd + 1;
end
else begin
case ch of
#07 : case mode of
CW : write(' ');
RTTY : write(#254);
ASCII : write(#254);
end;
else write(ch);
end;
xkbd := xkbd + 1;
if xkbd > scrn_width then
begin
xkbd := 1;
ykbd := ykbd + 1;
end;
end;
if ykbd > out_end_line then
begin
transmit_color;
window(1,out_start_line,80,out_end_line);
gotoxy(1,1); DelLine;
window(1,1,80,25);
ykbd := ykbd - 1;
yout := yout - 1;
end;
gotoxy(xkbd,ykbd);
end;
procedure RYs;
var i : integer;
RY : string[72];
begin
RY := 'RYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRYRY';
add_char(#13);
for i := 1 to length(RY) do
add_char(RY[i]);
add_char(#13);
end;
procedure xmt_msg( nbr : integer);
var index : integer;
size : integer;
begin
index := 1;
size := ord(msg[nbr][0])+1;
while (index < size) do
begin
add_char(msg[nbr][index]);
index := index + 1;
end;
end;
procedure add_msg;
var nbr, size, index : integer;
ch : char;
begin
prompt_color;
gotoxy(20,aux_line); write('Select Msg (0..9) ...');
repeat
ch := readkey;
until (ch in [#0,'0'..'9']);
if ch = #0 then
begin
ch := readkey;
gotoxy(20,aux_line); aux_color; ClrEol;
exit;
end;
xmt_msg(ord(ch) - $30);
gotoxy(20,aux_line); aux_color; ClrEol;
end;