home *** CD-ROM | disk | FTP | other *** search
- 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;