home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HAM Radio 1
/
HamRadio.cdr
/
cw
/
kam-car
/
kam-aux.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1989-08-25
|
8KB
|
377 lines
procedure show_time;
begin
status_color;
gotoxy(66,status_line);
write(' ',date,' ',time);
gotoxy(xin,yin);
end;
procedure disp_time;
begin
if time <> old_time then
begin
old_time := time;
show_time;
end;
end;
procedure disp_xmt_wpm;
begin
gotoxy(6,status_line);
status_color;
write(xmt_wpm:2);
gotoxy(xin,yin);
end;
procedure disp_rcv_wpm;
begin
gotoxy(16,status_line);
status_color;
write(rcv_wpm:2);
gotoxy(xin,yin);
end;
procedure cw_status_line;
begin
write('CW xmt, rcv ');
disp_xmt_wpm;
disp_rcv_wpm;
end;
procedure rtty_ascii_line;
begin
write(baud_rate[baud]:3,' baud, ',rtty_shift[shift]:5,' shift ');
gotoxy(55,status_line);
case invert of
TRUE : write(' INVERT ');
FALSE : write(' NORMAL ');
end;
gotoxy(xin,yin);
end;
procedure rtty_status_line;
begin
write('RTTY ');
rtty_ascii_line;
end;
procedure ascii_status_line;
begin
write('ASCII ');
rtty_ascii_line;
end;
procedure packet_status_line;
begin
case band of
HF : write(' HF ');
VHF : write('VHF ');
end;
write('PACKET');
gotoxy(30,status_line);
write('Call: ',PKCall);
end;
procedure sho_status;
begin
gotoxy(1,status_line);
status_color; ClrEol;
case mode of
CW : cw_status_line;
RTTY : rtty_status_line;
ASCII : ascii_status_line;
PACKET: packet_status_line;
end;
if mode in [CW,RTTY,ASCII] then
begin
Gotoxy(33,status_line);
case state of
transmit : write(' TRANSMIT ');
receive : write(' RECEIVE ');
end;
case auto_switch of
TRUE : write('AUTO T/R ');
FALSE : write('MAN T/R ');
end;
end;
show_time;
gotoxy(1,aux_line); aux_color; ClrEol;
write('Msgs:',msg_file_name:14);
if (capture = TRUE) then
begin
gotoxy(70,aux_line);
write('CAPTURE ON');
end;
gotoxy(xin,yin);
end;
procedure check_if_in_help;
begin
if viewing_help then
begin
restore_screen;
viewing_help := FALSE;
end;
end;
procedure new_rtty_baud;
begin
check_if_in_help;
baud := baud + 1;
if baud = 9 then
case mode of
RTTY : baud := 0;
ASCII : baud := 5;
end;
set_rtty_baud;
sho_status;
end;
procedure new_rtty_shift;
begin
check_if_in_help;
shift := shift + 1;
if shift = 4 then shift := 0;
set_rtty_shift;
sho_status;
end;
procedure flip_invert;
begin
mod_rtty_invert;
sho_status;
end;
procedure change_speed;
var err, old_wpm: integer;
begin
check_if_in_help;
xmt_wpm := rcv_wpm;
val(xmt_wpm, int_wpm, err);
if err <> 0 then
begin
int_wpm := old_wpm;
str(int_wpm, xmt_wpm);
end;
kam_xmt_wpm;
sho_status;
end;
procedure set_speed;
begin
check_if_in_help;
prompt_color;
{$I-}
repeat
gotoxy(5,status_line);
write(' <==');
gotoxy(6,status_line);
read(int_wpm);
until (IOresult = 0) AND (int_wpm > 4) and (int_wpm < 81);
str(int_wpm,xmt_wpm);
kam_xmt_wpm;
sho_status;
end;
procedure clear_transmit_screen;
begin
check_if_in_help;
window(1,out_start_line,80,out_end_line);
transmit_color; clrscr;
full_window;
xkbd := 1; ykbd := out_start_line;
attr_pos := ((80*(yout - 1) + xout) SHL 1) - 1;
halt_xmt;
end;
procedure clear_receive_screen;
begin
check_if_in_help;
window(1,inp_start_line,80,inp_end_line);
receive_color; clrscr;
xin := 1; yin := inp_start_line;
full_window;
end;
procedure clear_screen;
begin
check_if_in_help;
clear_receive_screen;
clear_transmit_screen;
sho_status;
gotoxy(1,25); aux_color; ClrEol;
case mode of
CW : write(
' ^P pause AS % AR + <<< F1 for Help >>> BT = SK # KN ( ^T T/R ');
RTTY, ASCII :write(
' ^P pause <<< F1 for Help >>> ^T T/R ');
PACKET : write(
' ALT <D>is<K>onnect <L>calllist <H>f <V>hf <I>id <Z>cmd <X>exit <F1> help');
AMTOR :write(
' <<< F1 for Help >>> ');
end;
gotoxy(xout,yout);
end;
procedure msg_load;
var i : integer;
msgfile: text;
begin
check_if_in_help;
assign(msgfile,msg_file_name);
{$I-}
reset(msgfile);
{$I+}
if (IOresult = 0) then
begin
for i := 0 to 9 do
readln(msgfile,msg[i]);
close(msgfile);
end
else
begin
msg_file_name := '';
for i := 0 to 9 do
msg[i] := '';
end;
end;
procedure save_buffer;
label save_fault;
var i : integer;
rcv_file_name : file_type;
rcvfile: text;
begin
rcv_file_name := '';
if state = transmit then halt_xmt;
check_if_in_help;
prompt_color;
Set_PickWindow_To(10,5,25,22,SingleLine,'Files');
SayGet(20,aux_line,'Receive (or ?) ',rcv_file_name,_S,24,1);
WatchKeys := ['?'];
ReadGets;
if LastKey = '?' then rcv_file_name := PickFile('*.*');
if (rcv_file_name <> '') then
begin
assign(rcvfile,rcv_file_name);
{$I-}
rewrite(rcvfile);
if (IOresult = 0)
then
for i := 0 to max_rcv_buffers do
begin
if rcv_buffer[i]^[0] <> #0 then
write(rcvfile,rcv_buffer[i]^);
if (IOresult <> 0) then goto save_fault;
end
else
begin
gotoxy(20,aux_line); ClrEol;
write('ERROR');
delay(2000);
end;
save_fault:
close(rcvfile);
end;
sho_status;
end;
procedure view_modify_msgs;
var i : integer;
nbr, index : integer;
input_str : string[79];
nbr_chr : char;
begin
if state = transmit then halt_xmt;
check_if_in_help;
save_screen;
transmit_color;
clrscr;
writeln('Contents of message file: ',msg_file_name);
writeln;
for i := 0 to 9 do
begin
writeln('Buffer # ',i:1);
writeln;
end;
sayget(1,4,'',msg[0],_S,80,1);
sayget(1,6,'',msg[1],_S,80,1);
sayget(1,8,'',msg[2],_S,80,1);
sayget(1,10,'',msg[3],_S,80,1);
sayget(1,12,'',msg[4],_S,80,1);
sayget(1,14,'',msg[5],_S,80,1);
sayget(1,16,'',msg[6],_S,80,1);
sayget(1,18,'',msg[7],_S,80,1);
sayget(1,20,'',msg[8],_S,80,1);
sayget(1,22,'',msg[9],_S,80,1);
readgets;
restore_screen;
end;
procedure load_messages;
begin
if state = transmit then halt_xmt;
check_if_in_help;
prompt_color;
Set_PickWindow_To(10,5,25,22,SingleLine,'Files');
SayGet(20,aux_line,'Message File (or ?) ',msg_file_name,_S,24,1);
WatchKeys := ['?'];
ReadGets;
if LastKey = '?' then msg_file_name := PickFile('*.*');
if (msg_file_name <> '') then msg_load;
sho_status;
end;
procedure save_messages;
label save_fault;
var i : integer;
msgfile: text;
begin
if state = transmit then halt_xmt;
check_if_in_help;
prompt_color;
Set_PickWindow_To(10,5,25,22,SingleLine,'Files');
SayGet(20,aux_line,'Message File (or ?) ',msg_file_name,_S,24,1);
WatchKeys := ['?'];
ReadGets;
if LastKey = '?' then msg_file_name := PickFile('*.*');
if (msg_file_name <> '') then
begin
assign(msgfile,msg_file_name);
{$I-}
rewrite(msgfile);
if (IOresult = 0)
then
begin
for i := 0 to 9 do
begin
writeln(msgfile,msg[i]);
if (IOresult <> 0) then goto save_fault;
end;
save_fault:
close(msgfile);
end
else
begin
gotoxy(20,aux_line); ClrEol;
write('ERROR');
delay(2000);
end;
end;
sho_status;
end;
procedure exit_request;
begin
save_screen;
prompt_color;
window(6,6,29,8);
clrscr;
gotoxy(1,2);
write('Exit to DOS <Y/N> ..');
repeat key := readkey until key in ['y','n','Y','N'];
if key in ['y','Y'] then
quit_flag := true;
restore_screen;
end;