void sendbuf(void) { extern int trxmode; extern int searchflg; extern char termbuf[]; extern char backgrnd_str[]; extern int cwkeyer; extern int digikeyer; extern int simulator; extern int simulator_mode; extern int sending_call; static char printlinebuffer[82] = ""; printlinebuffer[0] = '\0'; if ((trxmode == CWMODE && cwkeyer != NO_KEYER ) || (trxmode == DIGIMODE && digikeyer != NO_KEYER)) { ExpandMacro(); if ((strlen(buffer) + strlen(termbuf)) < 80) { if (simulator == 0) strcat(termbuf, buffer); // if (sending_call == 1) { // strcat (termbuf, " "); // sending_call = 0; // } } if (simulator == 0) strncat(printlinebuffer, termbuf, strlen(termbuf)); else strncat(printlinebuffer, termbuf, strlen(termbuf)); if (searchflg == 0 && simulator == 0) strncat(printlinebuffer, backgrnd_str, 80 - strlen(printlinebuffer)); else { int len = 40 - (int)strlen(printlinebuffer); if (len > 0) { strncat(printlinebuffer, backgrnd_str, len); } if (strlen(printlinebuffer) > 45) { printlinebuffer[42] = '.'; printlinebuffer[43] = '.'; printlinebuffer[44] = '.'; printlinebuffer[45] = '\0'; } } attron(COLOR_PAIR(C_LOG) | A_STANDOUT); if ((simulator_mode == 0)) { mvprintw(5, 0, printlinebuffer); refreshp(); } refreshp(); if (trxmode == DIGIMODE) { if (digikeyer == MFJ1278_KEYER) { int i = 0; for (i = 0; i < strlen(buffer); i++) if (buffer[i] == '\n') buffer[i] = 13; for (i = 0; i < strlen(buffer); i++) if (buffer[i] == 123) buffer[i] = 20; /* ctrl-t */ for (i = 0; i < strlen(buffer); i++) if (buffer[i] == 125) buffer[i] = 18; /* ctrl-r */ } keyer_append(buffer); } if (trxmode == CWMODE) { if (cwkeyer == MFJ1278_KEYER) { int i = 0; for (i = 0; i < strlen(buffer); i++) if (buffer[i] == '\n') buffer[i] = 13; } keyer_append(buffer); } if (simulator == 0) { if (sending_call == 0) displayit(); refreshp(); } buffer[0] = '\0'; } }
void sendbuf(void) { extern int trxmode; extern int searchflg; extern char termbuf[]; extern char backgrnd_str[]; extern char wkeyerbuffer[]; extern int data_ready; extern int keyerport; extern int simulator; extern int simulator_mode; extern int sending_call; static char printlinebuffer[82] = ""; printlinebuffer[0] = '\0'; if ((trxmode == CWMODE || trxmode == DIGIMODE) && (keyerport != NO_KEYER)) { ExpandMacro(); if ((strlen(buffer) + strlen(termbuf)) < 80) { if (simulator == 0) strcat(termbuf, buffer); // if (sending_call == 1) { // strcat (termbuf, " "); // sending_call = 0; // } } if (simulator == 0) strncat(printlinebuffer, termbuf, strlen(termbuf)); else strncat(printlinebuffer, termbuf, strlen(termbuf)); if (searchflg == 0 && simulator == 0) strncat(printlinebuffer, backgrnd_str, 80 - strlen(printlinebuffer)); else { int len = 40 - (int)strlen(printlinebuffer); if (len > 0) { strncat(printlinebuffer, backgrnd_str, len); } if (strlen(printlinebuffer) > 45) { printlinebuffer[42] = '.'; printlinebuffer[43] = '.'; printlinebuffer[44] = '.'; printlinebuffer[45] = '\0'; } } attron(COLOR_PAIR(C_LOG) | A_STANDOUT); if ((simulator_mode == 0)) { mvprintw(5, 0, printlinebuffer); refreshp(); } refreshp(); if (trxmode == DIGIMODE) { if (data_ready != 1) { if (keyerport == MFJ1278_KEYER) { int i = 0; for (i = 0; i < strlen(buffer); i++) if (buffer[i] == '\n') buffer[i] = 13; for (i = 0; i < strlen(buffer); i++) if (buffer[i] == 123) buffer[i] = 20; /* ctrl-t */ for (i = 0; i < strlen(buffer); i++) if (buffer[i] == 125) buffer[i] = 18; /* ctrl-r */ } strcat(wkeyerbuffer, buffer); buffer[0] = '\0'; data_ready = 1; } else buffer[0] = '\0'; } if (trxmode == CWMODE) { if (data_ready != 1) { if (keyerport == MFJ1278_KEYER) { int i = 0; for (i = 0; i < strlen(buffer); i++) if (buffer[i] == '\n') buffer[i] = 13; } strcat(wkeyerbuffer, buffer); if (keyerport == NET_KEYER) { netkeyer(K_MESSAGE, wkeyerbuffer); wkeyerbuffer[0] = '\0'; data_ready = 0; } else data_ready = 1; } else buffer[0] = '\0'; } if (simulator == 0) { if (sending_call == 0) displayit(); refreshp(); } buffer[0] = '\0'; } }
int keyer(void) { extern char mode[20]; extern int bufloc; extern char buffer[]; extern char termbuf[]; extern char message[15][80]; extern char wkeyerbuffer[]; extern int data_ready; extern int keyerport; extern int weight; int x = 0, i = 0, j = 0; int cury, curx; char nkbuffer[2]; char keyerstring[30] = " "; char weightbuf[15]; const char txcontrolstring[2] = { 20, '\0' }; const char rxcontrolstring[2] = { 18, '\0' }; const char crcontrolstring[2] = { 13, '\0' }; const char ctl_c_controlstring[2] = { 92, '\0' }; strcpy(mode, "Keyboard"); clear_display(); attron(COLOR_PAIR(C_LOG) | A_STANDOUT); if (keyerport == NO_KEYER) /* no keyer present */ return (1); if (keyerport == MFJ1278_KEYER) { buffer[0] = 20; // 1 char at the time ! buffer[1] = '\0'; if (data_ready != 1) { strcat(wkeyerbuffer, buffer); data_ready = 1; } buffer[0] = '\0'; } while (1) { x = onechar(); if (x == 34) { /* bug fix */// " x = 32; } if (x == '\n') x = 32; if (x == 27 || x == 11 || x == 235) { // esc, ctrl-k, alt-k if (keyerport == MFJ1278_KEYER) { buffer[0] = 18; // 1 char at the time ! buffer[1] = '\0'; if (data_ready != 1) { strcat(wkeyerbuffer, buffer); data_ready = 1; } } else { stoptx(); } buffer[0] = '\0'; break; } if (x >= 32 && x <= 125) { // display space ... } addch(x); refreshp(); i++; if ((i >= 40)) { i = 0; mvprintw(4, 0, " "); mvprintw(4, 0, ""); refreshp(); displayit(); } refreshp(); } if (x == 127 && (strlen(buffer) >= 1)) { /* erase */ getyx(stdscr, cury, curx); mvprintw(5, curx - 1, " "); mvprintw(5, curx - 1, ""); buffer[strlen(buffer) - 1] = '\0'; bufloc--; } if (x > 96 && x < 123) /* upper case only */ x = x - 32; if (x > 9 && x < 91) { if (bufloc >= 38) // maximum buffer = 39 { bufloc = 38; printw("\nBuffer overflow !, bufloc = %d\n", bufloc); refreshp(); } else { if (x > 31 || x == 10) { if (keyerport == MFJ1278_KEYER) { mfj1278_control(x); } else if (keyerport == NET_KEYER) { nkbuffer[0] = x; // 1 char at the time ! nkbuffer[1] = '\0'; netkeyer(K_MESSAGE, nkbuffer); nkbuffer[0] = '\0'; for (j = 0; j < 29; j++) { keyerstring[j] = keyerstring[j + 1]; } keyerstring[28] = x; keyerstring[29] = '\0'; attron(COLOR_PAIR(C_LOG) | A_STANDOUT); mvprintw(5, 0, "%s", keyerstring); refreshp(); } else if (keyerport == ORION_KEYER) { nkbuffer[0] = x; nkbuffer[1] = '\0'; strcat(wkeyerbuffer, nkbuffer); sendbuf(); nkbuffer[0] = '\0'; for (j = 0; j < 29; j++) { keyerstring[j] = keyerstring[j + 1]; } keyerstring[28] = x; keyerstring[29] = '\0'; attron(COLOR_PAIR(C_LOG) | A_STANDOUT); mvprintw(5, 0, "%s", keyerstring); refreshp(); } } else // control char... { if (data_ready != 1) { strcat(wkeyerbuffer, buffer); data_ready = 1; } else buffer[0] = '\0'; getyx(stdscr, cury, curx); attron(COLOR_PAIR(C_HEADER) | A_STANDOUT); mvaddstr(0, 0, " "); attron(COLOR_PAIR(C_LOG)); mvaddstr(cury, curx, ""); refreshp(); strcat(termbuf, buffer); strcat(termbuf, " "); mvprintw(5, 0, termbuf); refreshp(); if ((strlen(buffer) + strlen(termbuf) > 39) || x == '=') { i = 0; mvprintw(5, 0, " "); mvprintw(5, 0, ""); refreshp(); displayit(); } bufloc = 0; buffer[bufloc] = '\0'; } } } else { switch (x) { case 9: { bufloc = 0; buffer[bufloc] = '\0'; strcpy(mode, "Log "); clear_display(); return (2); } case '\n': case 13: { if (keyerport == MFJ1278_KEYER && strlen(buffer) < 39) { strcat(buffer, crcontrolstring); sendbuf(); bufloc = 0; } break; } case 27: case 11: { stoptx(); bufloc = 0; buffer[bufloc] = '\0'; strcpy(mode, "Log "); clear_display(); return (2); } case 123: { if (keyerport == MFJ1278_KEYER) { strcat(buffer, txcontrolstring); sendbuf(); } break; } case 125: { if (keyerport == MFJ1278_KEYER) { strcat(buffer, rxcontrolstring); sendbuf(); } break; } case 92: { if (keyerport == MFJ1278_KEYER) { strcat(buffer, ctl_c_controlstring); sendbuf(); } break; } case 247: // Alt-w, set weight { mvprintw(1, 0, "Weight= "); mvprintw(1, 7, ""); refreshp(); echo(); getnstr(weightbuf, 2); noecho(); weight = atoi(weightbuf); netkeyer(K_WEIGHT, weightbuf); break; } case 156: { speedup(); clear_display(); break; } case 157: { speeddown(); clear_display(); break; } case 129: { strcat(buffer, message[0]); /* F1 */ getyx(stdscr, cury, curx); mvprintw(5, 0, ""); sendbuf(); mvprintw(cury, curx, ""); break; } case 130: { strcat(buffer, message[1]); /* F2 */ sendbuf(); break; } case 131: { strcat(buffer, message[2]); /* F3 */ sendbuf(); break; } case 132: { strcat(buffer, message[3]); /* F4 */ sendbuf(); break; } case 133: { strcat(buffer, message[4]); /* F5 */ sendbuf(); break; } case 134: { strcat(buffer, message[5]); /* F6 */ sendbuf(); break; } case 135: { strcat(buffer, message[6]); /* F7 */ sendbuf(); break; } case 136: { strcat(buffer, message[7]); /* F8 */ sendbuf(); break; } case 137: { strcat(buffer, message[8]); /* F9 */ sendbuf(); break; } case 138: { strcat(buffer, message[9]); /* F10 */ sendbuf(); break; } case 140: { strcat(buffer, message[10]); /* F11 */ sendbuf(); break; } case 141: { strcat(buffer, message[11]); /* F12 */ sendbuf(); break; } default: x = x; } } } strcpy(mode, "Log "); clear_display(); return (2); /* show end of keyer routine */ }
void main(int argc, char *argv[]) { int v, i; #ifdef PLAN9 capxconv(); #endif dflag = 0; bflag = 0; iflag = 0; v = 0; fin = stdin; /* stdin */ for(i=1; i<argc; i++) { if(*argv[i] == '-') { argv[i]++; if(*argv[i] == 'i') { iflag = 1; continue; } if(*argv[i] == 'd') { dflag = 1; continue; } if(*argv[i] == 'v') { vflag = 1; continue; } if(*argv[i] == 'D') { Dflag = 1; continue; } if(*argv[i] == 'X') { yydebug = 2; continue; } if(*argv[i] == 'b') { bflag = 1; default_state = 1; continue; } if(*argv[i] == 'z') { zflag = 1; continue; } if(*argv[i] == 'l') { if (argv[++i]) library = argv[i]; else fprint(2, "library filename missing for -l\n"); continue; } if(*argv[i] == 't') { if (argv[++i]) extern_id = argv[i]; else fprint(2, "device type missing for -t\n"); continue; } if(*argv[i] == 'm') { if (argv[++i]) manufacturer = argv[i]; else fprint(2, "manufacturer missing for -m\n"); continue; } fprint(2, "%s: unknown option -%c\n", argv[0], *argv[i]); continue; } /* end if - */ if(v == 0) { filename = argv[i]; v++; continue; } if(v > 1) { fprint(2, "too many arguments\n"); exit(1); } v++; } /* end for */ if (v) { fin = fopen(filename, "r"); if(fin == 0) { fprint(2, "xpal: cannot open %s\n", filename); exit(1); } } if (extern_id && strlen(extern_id) > 0) (void) rdlibrary(); /* in case of -t */ readminterms(); if (Dflag) displayit(); exit(0); }