#include #include #include #include #include #include #include /* #include */ #include #include #include #include "mfjterm.h" #include "inout.h" #include "misc.h" #include "timefuncs.h" void set_spd(int k) { char s[80]; int *spd = NULL; char *cmdstr = NULL; char **sstr = NULL; int limit = 0; if ((opmode != ASCII) && (opmode != RTTY) && (opmode != PACTOR)) return; switch (opmode) { case ASCII: spd = &ascii_spd; cmdstr = ascii_cmd_str[ascii_shift]; sstr = speed_str; limit = 8; break; case RTTY: spd = &rtty_spd; cmdstr = rtty_cmd_str[rtty_shift]; sstr = speed_str; limit = 8; break; case PACTOR: spd = &pactor_spd; sstr = pactspeed_str; limit = 1; } switch (k){ case KEY_LEFT: if ((--(*spd)) < 0) (*spd) = limit; break; case KEY_RIGHT: if ((++(*spd)) > limit) (*spd) = 0; } if (opmode != PACTOR) { write_tnc(0x03); zleep(20); write_tnc(0x0A); strcpy(s,""); strcat(s,cmdstr); strcat(s,speed_str[(*spd)]); send_string(s,1); send_string("CONV",1); } attrset(A_REVERSE); curs_set(0); move(0, 65); sprintf(s, "Speed: %-3s", sstr[*spd]); addstr(s); refresh(); move(tnc_y, tnc_x); curs_set(1); } void set_inv(void) { if ((opmode != AMTOR) && (opmode != RTTY) && (opmode != ASCII)) return; delta_inv = 0; switch (opmode) { case AMTOR: amtor_inv ^= 1; send_string(a_rinv_str[amtor_inv],1); send_string(a_tinv_str[amtor_inv],1); delta_inv = amtor_inv; break; case ASCII: ascii_inv ^= 1; write_tnc(0x03); zleep(20); write_tnc(0x0A); send_string(b_rinv_str[ascii_inv],1); send_string(b_tinv_str[ascii_inv],1); send_string("CONV",1); delta_inv = ascii_inv; break; case RTTY: rtty_inv ^= 1; write_tnc(0x03); zleep(20); write_tnc(0x0A); send_string(b_rinv_str[rtty_inv],1); send_string(b_tinv_str[rtty_inv],1); send_string("CONV",1); delta_inv = rtty_inv; } if (delta_inv) attrset(A_NORMAL); else attrset(A_REVERSE); curs_set(0); move(19, 75); addch(modesign[opmode]); if (! delta_shift) attrset(A_REVERSE); addch(shiftsign[delta_shift]); refresh(); move(tnc_y, tnc_x); curs_set(1); } void set_shift(void) { char s[50]; int spd; char *cmdstr; if ((opmode != RTTY) && (opmode != ASCII)) return; if (opmode == ASCII) { ascii_shift ^= 1; delta_shift = ascii_shift; spd = ascii_spd; cmdstr = ascii_cmd_str[ascii_shift]; } else { rtty_shift ^= 1; delta_shift = rtty_shift; spd = rtty_spd; cmdstr = rtty_cmd_str[rtty_shift]; } write_tnc(0x03); zleep(20); write_tnc(0x0A); strcpy(s,""); strcat(s,cmdstr); strcat(s,speed_str[spd]); send_string(s,1); send_string("CONV",1); if (delta_inv && delta_shift) attrset(A_NORMAL); else attrset(A_REVERSE); curs_set(0); move(19,76); addch(shiftsign[delta_shift]); refresh(); move(tnc_y, tnc_x); curs_set(1); } void set_usos(int on) { char s[80]; write_tnc(0x03); zleep(20); write_tnc(0x0A); send_string(usos_str[on], 1); send_string("CONV", 1); attrset(A_REVERSE); curs_set(0); move(0, 52); sprintf(s, "%s", usos_str2[usos]); addstr(s); refresh(); move(tnc_y, tnc_x); curs_set(1); } void switch_fec(int on) { switch(opmode){ case AMTOR: if (on) { send_string("FEC",1); zleep(20); send_string("K",1); transmit = TRUE; } else { transmit = FALSE; write_tnc(3); zleep(20); send_string("R",1); } break; case PACTOR: if (on) { send_string(pactor_fec_cmd[pactor_spd],1); transmit = TRUE; } else { transmit = FALSE; write_tnc(3); zleep(20); send_string("D",1); } } } void set_scancrit(void) { attrset(A_REVERSE); move(19, 1); addstr("String to scan for: "); edgets(stdscr, scancrit, 30, FALSE); move(19, 1); addstr(" "); if (strlen(scancrit)) { scan = TRUE; strcpy(scanstr," "); } else scan = FALSE; curs_set(0); move(0,78); addch(scansign[scan]); refresh(); move(tnc_y, tnc_x); curs_set(1); } void sound_alarm(void) { int i; #if 0 if (use_dsp_as_alarm) { sprintf(samp_name, "%s%s", lib_path, "/alarm.wav"); play_wav(samp_name); } else { for (i = 0; i < 10; i++) { putchar(7); zleep(10); } } #endif for (i = 0; i < 10; i++) { putchar(7); zleep(10); } strcpy(scanstr," "); } void show_help(void) { char cmd_str[161]; char amt_hlp_path[81]; static char pager_parms[31]; if (! pager[0]) return; attrset(A_REVERSE); move(19, 1); addstr("Optional parameters: "); refresh(); edgets(stdscr, pager_parms, 30, FALSE); move(19, 1); addstr(" "); refresh(); setscrreg(0, 24); attrset(A_NORMAL); endwin(); sprintf(amt_hlp_path, "%s%s", lib_path, "/mfjterm.hlp"); sprintf(cmd_str, "%s %s %s", pager, pager_parms, amt_hlp_path); system(cmd_str); old_min = 0xffff; move(tnc_y, tnc_x); refresh(); } void invoke_editor(void) { setscrreg(0, 24); attrset(A_NORMAL); endwin(); system(editor); old_min = 0xffff; move(tnc_y, tnc_x); refresh(); } void bbs_capture(void) { bbs_cap ^= 1; attrset(A_REVERSE); curs_set(0); move(0, 52); if (bbs_cap) { addstr("BBS capture"); } else addstr(" "); strcpy(scanstr," "); move(tnc_y, tnc_x); curs_set(1); } void open_bbs_capf(int mode) { static char *fname[2] = {"fbb.txt", "mail.txt"}; bbs_capf = fopen(fname[mode], "a"); bbs_capf_open = TRUE; } void close_bbs_capf() { fclose(bbs_capf); strcpy(scanstr," "); bbs_capf_open = FALSE; } .