# 2.11BSD#431 - /usr/src/ucb/window/tth19.c

##### Functions

    h19_clear         X
    h19_clreol        X
    h19_clreos        X
    h19_delchar       X
    h19_delline       X
    h19_end           X
    h19_init          X
    h19_insline       X
    h19_move          X
    h19_putc          X
    h19_setinsert     X
    h19_setmodes      X
    h19_write         X
    tt_h19            X

##### Variables

    h19_frame         X
    h19_msp10c        X

##### Macros

    G                 X
    H19_SETINSERT     X
    ICPAD             X
    ILPAD             X
    NCOL              X
    NROW              X
    PAD               X
    esc               X
    pc                X

       1: #ifndef lint
       2: static char sccsid[] = "@(#)tth19.c	3.17 5/2/86";
       3: #endif
       4:
       5: /*
       6:  * Copyright (c) 1983 Regents of the University of California,
       7:  * All rights reserved.  Redistribution permitted subject to
       8:  * the terms of the Berkeley Software License Agreement.
       9:  */
      10:
      11: #include "ww.h"
      12: #include "tt.h"
      13:
      14: /*
      15: kb|h19|heath|h19-b|h19b|heathkit|heath-19|z19|zenith:
      16: 	cr=^M:nl=^J:bl=^G:al=1*\EL:am:le=^H:bs:cd=\EJ:ce=\EK:
      17: 	cl=\EE:cm=\EY%+ %+ :co#80:dc=\EN:dl=1*\EM:do=\EB:
      18: 	ei=\EO:ho=\EH:im=\E@:li#24:mi:nd=\EC:as=\EF:ae=\EG:ms:
      19: 	ta=^I:pt:sr=\EI:se=\Eq:so=\Ep:up=\EA:vs=\Ex4:ve=\Ey4:
      20: 	kb=^h:ku=\EA:kd=\EB:kl=\ED:kr=\EC:kh=\EH:
      21: 	kn#8:k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:
      22: 	l6=blue:l7=red:l8=white:k6=\EP:k7=\EQ:k8=\ER:
      23: 	es:hs:ts=\Ej\Ex5\Ex1\EY8%+ \Eo:fs=\Ek\Ey5:ds=\Ey1:
      24: */
      25:
      26: #define NCOL    80
      27: #define NROW    24
      28:
      29: #define G (WWM_GRP << WWC_MSHIFT)
      30: short h19_frame[16] = {
      31:     ' ',    '`'|G,  'a'|G,  'e'|G,
      32:     '`'|G,  '`'|G,  'f'|G,  'v'|G,
      33:     'a'|G,  'd'|G,  'a'|G,  'u'|G,
      34:     'c'|G,  't'|G,  's'|G,  'b'|G
      35: };
      36:
      37: extern struct tt_str *gen_VS;
      38: extern struct tt_str *gen_VE;
      39: extern struct tt_str *gen_XS;
      40: extern struct tt_str *gen_XE;
      41:
      42: int h19_msp10c;
      43:
      44: #define pc(c)   ttputc('c')
      45: #define esc()   pc(\033)
      46: #define PAD(ms10) { \
      47:     register i; \
      48:     for (i = ((ms10) + 5) / h19_msp10c; --i >= 0;) \
      49:         pc(\0); \
      50: }
      51: #define ICPAD() PAD((NCOL - tt.tt_col) * 1) /* 0.1 ms per char */
      52: #define ILPAD() PAD((NROW - tt.tt_row) * 10)    /* 1 ms per char */
      53:
      54: #define H19_SETINSERT(m) (esc(), (tt.tt_insert = (m)) ? pc(@) : pc(O))
      55:
      56: h19_setinsert(new)
      57: {
      58:     H19_SETINSERT(new);
      59: }
      60:
      61: h19_setmodes(new)
      62: register new;
      63: {
      64:     register diff;
      65:
      66:     diff = new ^ tt.tt_modes;
      67:     if (diff & WWM_REV) {
      68:         esc();
      69:         if (new & WWM_REV)
      70:             pc(p);
      71:         else
      72:             pc(q);
      73:     }
      74:     if (diff & WWM_GRP) {
      75:         esc();
      76:         if (new & WWM_GRP)
      77:             pc(F);
      78:         else
      79:             pc(G);
      80:     }
      81:     if (diff & WWM_USR) {
      82:         if (new & WWM_USR) {
      83:             if (gen_XS)
      84:                 ttxputs(gen_XS);
      85:         } else
      86:             if (gen_XE)
      87:                 ttxputs(gen_XE);
      88:     }
      89:     tt.tt_modes = new;
      90: }
      91:
      92: h19_insline()
      93: {
      94:     esc();
      95:     pc(L);
      96:     ILPAD();
      97: }
      98:
      99: h19_delline()
     100: {
     101:     esc();
     102:     pc(M);
     103:     ILPAD();
     104: }
     105:
     106: h19_putc(c)
     107: register char c;
     108: {
     109:     if (tt.tt_nmodes != tt.tt_modes)
     110:         (*tt.tt_setmodes)(tt.tt_nmodes);
     111:     if (tt.tt_ninsert != tt.tt_insert)
     112:         H19_SETINSERT(tt.tt_ninsert);
     113:     ttputc(c);
     114:     if (tt.tt_insert)
     115:         ICPAD();
     116:     if (++tt.tt_col == NCOL)
     117:         tt.tt_col = NCOL - 1;
     118: }
     119:
     120: h19_write(p, n)
     121: register char *p;
     122: register n;
     123: {
     124:     if (tt.tt_nmodes != tt.tt_modes)
     125:         (*tt.tt_setmodes)(tt.tt_nmodes);
     126:     if (tt.tt_ninsert != tt.tt_insert)
     127:         H19_SETINSERT(tt.tt_ninsert);
     128:     if (tt.tt_insert) {
     129:         while (--n >= 0) {
     130:             ttputc(*p++);
     131:             ICPAD();
     132:             tt.tt_col++;
     133:         }
     134:     } else {
     135:         tt.tt_col += n;
     136:         ttwrite(p, n);
     137:     }
     138:     if (tt.tt_col == NCOL)
     139:         tt.tt_col = NCOL - 1;
     140: }
     141:
     142: h19_move(row, col)
     143: register char row, col;
     144: {
     145:     if (tt.tt_row == row) {
     146:         if (tt.tt_col == col)
     147:             return;
     148:         if (tt.tt_col == col - 1) {
     149:             esc();
     150:             pc(C);
     151:             goto out;
     152:         } else if (tt.tt_col == col + 1) {
     153:             pc(\b);
     154:             goto out;
     155:         }
     156:     }
     157:     if (tt.tt_col == col) {
     158:         if (tt.tt_row == row + 1) {
     159:             esc();
     160:             pc(A);
     161:             goto out;
     162:         } else if (tt.tt_row == row - 1) {
     163:             pc(\n);
     164:             goto out;
     165:         }
     166:     }
     167:     if (col == 0 && row == 0) {
     168:         esc();
     169:         pc(H);
     170:         goto out;
     171:     }
     172:     esc();
     173:     pc(Y);
     174:     ttputc(' ' + row);
     175:     ttputc(' ' + col);
     176: out:
     177:     tt.tt_col = col;
     178:     tt.tt_row = row;
     179: }
     180:
     181: h19_init()
     182: {
     183:     if (gen_VS)
     184:         ttxputs(gen_VS);
     185:     esc();
     186:     pc(w);
     187:     esc();
     188:     pc(E);
     189:     tt.tt_col = tt.tt_row = 0;
     190:     tt.tt_ninsert = tt.tt_insert = 0;
     191:     tt.tt_nmodes = tt.tt_modes = 0;
     192: }
     193:
     194: h19_end()
     195: {
     196:     if (gen_VE)
     197:         ttxputs(gen_VE);
     198:     esc();
     199:     pc(v);
     200: }
     201:
     202: h19_clreol()
     203: {
     204:     esc();
     205:     pc(K);
     206: }
     207:
     208: h19_clreos()
     209: {
     210:     esc();
     211:     pc(J);
     212: }
     213:
     214: h19_clear()
     215: {
     216:     esc();
     217:     pc(E);
     218: }
     219:
     220: h19_delchar()
     221: {
     222:     esc();
     223:     pc(N);
     224: }
     225:
     226: tt_h19()
     227: {
     228:     float cpms = (float) wwbaud / 10000;    /* char per ms */
     229:
     230:     h19_msp10c = 10 / cpms;         /* ms per 10 char */
     231:     gen_VS = ttxgetstr("vs");
     232:     gen_VE = ttxgetstr("ve");
     233:     gen_XS = ttxgetstr("XS");
     234:     gen_XE = ttxgetstr("XE");
     235:
     236:     tt.tt_init = h19_init;
     237:     tt.tt_end = h19_end;
     238:
     239:     tt.tt_insline = h19_insline;
     240:     tt.tt_delline = h19_delline;
     241:     tt.tt_delchar = h19_delchar;
     242:     tt.tt_clreol = h19_clreol;
     243:     tt.tt_clreos = h19_clreos;
     244:     tt.tt_clear = h19_clear;
     245:     tt.tt_move = h19_move;
     246:     tt.tt_write = h19_write;
     247:     tt.tt_putc = h19_putc;
     248:     tt.tt_setinsert = h19_setinsert;
     249:     tt.tt_setmodes = h19_setmodes;
     250:
     251:     tt.tt_ncol = NCOL;
     252:     tt.tt_nrow = NROW;
     253:     tt.tt_hasinsert = 1;
     254:     tt.tt_availmodes = WWM_REV|WWM_GRP;
     255:     if (gen_XS)
     256:         tt.tt_availmodes |= WWM_USR;
     257:     tt.tt_frame = h19_frame;
     258:     return 0;
     259: }

#### Defined functions

h19_clear defined in line 214; used 1 times

- in line 244

h19_clreol defined in line 202; used 1 times

- in line 242

h19_clreos defined in line 208; used 1 times

- in line 243

h19_delchar defined in line 220; used 1 times

- in line 241

h19_delline defined in line 99; used 1 times

- in line 240

h19_end defined in line 194; used 1 times

- in line 237

h19_init defined in line 181; used 1 times

- in line 236

h19_insline defined in line 92; used 1 times

- in line 239

h19_move defined in line 142; used 1 times

- in line 245

h19_putc defined in line 106; used 1 times

- in line 247

h19_setinsert defined in line 56; used 1 times

- in line 248

h19_setmodes defined in line 61; used 1 times

- in line 249

h19_write defined in line 120; used 1 times

- in line 246

tt_h19 defined in line 226; used 3 times

- in /usr/src/ucb/window/tth29.c line 62
- in /usr/src/ucb/window/ttinit.c line 14, 20

#### Defined variables

h19_frame defined in line 30; used 1 times

- in line 257

h19_msp10c defined in line 42; used 2 times

- in line 48, 230

sccsid defined in line 2; never used

#### Defined macros

G defined in line 29; used 16 times

- in line 31-34(15), 79

H19_SETINSERT defined in line 54; used 3 times

- in line 58, 112, 127

ICPAD defined in line 51; used 2 times

- in line 115, 131

ILPAD defined in line 52; used 2 times

- in line 96, 103

NCOL defined in line 26; used 6 times

- in line 51, 116-117(2), 138-139(2), 251

NROW defined in line 27; used 2 times

- in line 52, 252

PAD defined in line 46; used 2 times

- in line 51-52(2)

esc defined in line 45; used 16 times

- in line 54, 68, 75, 94, 101, 149, 159, 168-172(2), 185-187(2), 198, 204, 210, 216, 222

pc defined in line 44; used 22 times

- in line 45-54(3), 70-79(4), 95, 102, 150-153(2), 160-163(2), 169-173(2), 186-188(2), 199, 205, 211, 217, 223

Last modified: 1987-02-17 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 963 |