/* use with QMC.def */

/************************************************************************
 *                                                                      *
 *                      copyright Richard Bornat 1981                   *
 *                                                                      *
 ************************************************************************/

/* translate difficult characters on input */
char itt_intwo(c)
register char c;
 { return (c=='{'?'(':
            c=='}'?')':
            c=='|'?'!':
            c=='~'?'^':
            c=='`'?'\'':
            c);
 }

/* translate difficult characters on output */
char itt_outtwo(c)
register char c;
 {  return (c=='('?'{':
            c==')'?'}':
            c=='!'?'|':
            c=='^'?'~':
            c=='\''?'`':
            c);
 }

/* #define TER_ROWS 18
 * #define TER_COLS 80
 */

struct TERMINAL itt_ter =
 {  /* nrows, ncols - size of the screen */
    18, 80,

    /* up, left, c_MODIFY, c_CONTROL, c_BLOB - single characters */
    { 0, 0, '@', 032, '{' },
        /* onechar */

    /* rollup, pushdown, pushup, pulldown, pullup STRINGS */
    /* and hardscroll boolean */
    { "\n", 0, 0, 0, 0, false },         /* scrseq */
        /* scrseq */

    /* scrollup, scrolldown PROCEDURES */
    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 */
    { "\014", 0, 0 },
        /* clrseq */

    /* clr_screen, clr_head, clr_tail PROCEDURES */
    clrs1, clrh0, clrt0,

    /* inspace, makespace, rubout, erase STRINGS */
    { 0, 0, 0, 0 },
        /* charseq */

    /* ins_char, del_char PROCEDURES */
    insc0, delc0,

    /* bright, normal STRINGS */
    { 0, 0 },
        /* vidseq */

    /* in_two, out_two PROCEDURES */
   itt_intwo, itt_outtwo,

    /* move PROCEDURE and nmove integer */
    qmc_move, 3,

    /* setup, special, pad PROCEDURES */
    no_int, no_int, no_int
 };
