/* * Driver file for Tektronix 4023 * - Use with UMIST.def */ tek_move(srow, scol) register int srow, scol; { /* FS, col+32, row+32 */ ttyout('\034'); ttyout(scol + 32); ttyout(srow + 32); } int tek_setup() { ictab[27] = ectab[27] = ENTERedit; } int tek_restore() { } tek_pad() { register int i; for (i=0; i<4; i++) ttyout('\0'); } int tek_special(typein,c) int typein; register char c; { register char ch; } struct TERMINAL tek_ter = { /* nrows, ncols - size of the screen */ TER_ROWS, TER_COLS, /* up, left, c_MODIFY, c_CONTROL, c_BLOB - single characters */ { 0, '\010', 0, 0200|'6', 0200|'=' }, /* onechar */ /* rollup, pushdown, pushup, pulldown, pullup STRINGS */ /* and hardscroll boolean */ /* you MUST have rollup */ { "\0\n", 0, 0, 0, 0, false }, /* scrseq */ /* scrollup, scrolldown PROCEDURES */ /* scr1_ is pushup, pulldown */ /* scr2_ is pushdown, pullup */ /* scr3_ is both */ /* scr0_ is neither (and in that case hardscroll is false) */ scr0_up, scr0_down, /* splitdown, splitup, joindown, joinup STRINGS */ { 0, 0, 0, 0 }, /* splitseq */ /* split_row, join_row PROCEDURES */ split0, join0, /* clearscreen, *clearhead, *cleartail STRINGS */ /* I assume ^L for clear screen, but it isn't important */ { "\0\033\014", 0, 0 }, /* clrseq */ /* clr_screen, clr_head, clr_tail PROCEDURES */ /* I assume hardware support for clear screen at least */ clrs1, clrh0, clrt0, /* inspace, makespace, rubout, erase STRINGS */ /* inspace puts a space and moves the cursor right, * makespace doesn't move it. Likewise rubout moves the * cursor left, erase doesn't move it */ { 0, 0, 0, 0 }, /* charseq */ /* ins_char, del_char PROCEDURES */ /* insc1 uses inspace, insc2 makespace */ /* delc1 uses rubout, delc2 erase */ /* insc0, delc0 use neither */ insc0, delc0, /* bright, normal STRINGS */ { "\016", "\017" }, /* vidseq */ /* in_two, out_two PROCEDURES */ no_char, no_char, /* move PROCEDURE and nmove integer */ tek_move, 3, /* setup, special, pad, restore PROCEDURES */ no_int, no_int, tek_pad, tek_restore };