/* Copyright (C) Magna Carta Software, Inc. 1990, 1991. All Rights Reserved. C COMMUNICATIONS TOOLKIT VT52.C -- VT52 terminal emulation routines. */ #if (defined(CCTW) || defined(_WINDOWS)) #include #endif #include #include #include #include /* VT52_INIT -- Memory initialization of DEC VT52. */ void vt52_init(TERMINAL *t) { t->type = DEC_VT52; t->att = 7; t->csi = 0X1B; t->cur_pos = ansi_cursor_; t->d_att = 7; t->d_rows = 24; t->d_cols = 80; t->delim1 = ';'; t->dispatch_ctrl = vt_dispatch_ctrl_; t->erase = ansi_erase_; t->mode = DECANM; t->offset = 1; t->parse_cmd = ansi_parse_cmd_; t->parse_parms = term_ascii_parse_parms_; t->reset_mode = vt_reset_mode_; t->set_mode = vt_set_mode_; t->sgr = ansi_sgr_; /* KEYSTROKES */ term_assign_key(t, BACKSPACE, 0, "\x7F"); term_assign_key(t, MINUS, 0, "\x1BOm"); term_assign_key(t, UP_ARROW, 0, "\x1B" "A"); term_assign_key(t, DOWN_ARROW, 0, "\x1B" "B"); term_assign_key(t, RIGHT_ARROW, 0, "\x1B" "C"); term_assign_key(t, LEFT_ARROW, 0, "\x1B" "D"); term_assign_key(t, F1, 0, "\x1BP"); term_assign_key(t, F2, 0, "\x1BQ"); term_assign_key(t, F3, 0, "\x1BR"); term_assign_key(t, F4, 0, "\x1BS"); /* RECEIVED COMMAND STRINGS */ term_assign_cmd(t, CUU, "\x1B" "A", ansi_cursor_, NULL); term_assign_cmd(t, CUD, "\x1B" "B", ansi_cursor_, NULL); term_assign_cmd(t, CUF, "\x1B" "C", ansi_cursor_, NULL); term_assign_cmd(t, CUB, "\x1B" "D", ansi_cursor_, NULL); term_assign_cmd(t, CUU, "\x1BH", ansi_cursor_, NULL); term_assign_cmd(t, TRI, "\x1BI", ansi_cursor_, NULL); term_assign_cmd(t, EED0, "\x1BJ", ansi_erase_, NULL); term_assign_cmd(t, EEL0, "\x1BK", ansi_erase_, NULL); term_assign_cmd(t, EEL0, "\x1BY", ansi_cursor_, NULL); term_assign_cmd(t, TERMID,"\x1BZ", (void (*)(TERMINAL *, short)) NULL, "\x1B/Z"); term_assign_cmd(t, MODE_DECKPAM,"\x1B=", vt100_private_, NULL); term_assign_cmd(t, MODE_DECKPNM,"\x1B>", vt100_private_, NULL); /* strcpy(t->tr[MODE_DECANM].sh2t, "\x1B<"); */ }