+ case VT52_ESC:
+ termstate = TOPLEVEL;
+ seen_disp_event = TRUE;
+ switch (c) {
+ case 'A':
+ move (curs_x, curs_y - 1, 1);
+ break;
+ case 'B':
+ move (curs_x, curs_y + 1, 1);
+ break;
+ case 'C':
+ move (curs_x + 1, curs_y, 1);
+ break;
+ case 'D':
+ move (curs_x - 1, curs_y, 1);
+ break;
+ case 'F':
+ cset_attr[cset=0] = ATTR_LINEDRW;
+ break;
+ case 'G':
+ cset_attr[cset=0] = ATTR_ASCII;
+ break;
+ case 'H':
+ move (0, 0, 0);
+ break;
+ case 'I':
+ if (curs_y == 0)
+ scroll (0, rows-1, -1, TRUE);
+ else if (curs_y > 0)
+ curs_y--;
+ fix_cpos;
+ wrapnext = FALSE;
+ break;
+ case 'J':
+ erase_lots(FALSE, FALSE, TRUE);
+ disptop = scrtop;
+ break;
+ case 'K':
+ erase_lots(TRUE, FALSE, TRUE);
+ break;
+ case 'V':
+ /* XXX Print cursor line */
+ break;
+ case 'W':
+ /* XXX Start controller mode */
+ break;
+ case 'X':
+ /* XXX Stop controller mode */
+ break;
+ case 'Y':
+ termstate = VT52_Y1;
+ break;
+ case 'Z':
+ ldisc->send ("\033/Z", 3);
+ break;
+ case '=':
+ app_cursor_keys = TRUE;
+ break;
+ case '>':
+ app_cursor_keys = FALSE;
+ break;
+ case '<':
+ /* XXX This should switch to VT100 mode not current or default
+ * VT mode. But this will only have effect in a VT220+
+ * emulation.
+ */
+ vt52_mode = FALSE;
+ break;
+ case '^':
+ /* XXX Enter auto print mode */
+ break;
+ case '_':
+ /* XXX Exit auto print mode */
+ break;
+ case ']':
+ /* XXX Print screen */
+ break;
+ }
+ break;
+ case VT52_Y1:
+ termstate = VT52_Y2;
+ move(curs_x, c-' ', 0);
+ break;
+ case VT52_Y2:
+ termstate = TOPLEVEL;
+ move(c-' ', curs_y, 0);
+ break;