1*17411Sedward #ifndef lint 2*17411Sedward static char sccsid[] = "@(#)tth29.c 3.1 11/21/84"; 3*17411Sedward #endif 4*17411Sedward 5*17411Sedward #include "ww.h" 6*17411Sedward #include "tt.h" 7*17411Sedward 8*17411Sedward /* 9*17411Sedward kC|h29|heath-29|z29|zenith-29:\ 10*17411Sedward :am:bc=\ED:bt=\E-:cr=^M:do=^J:nl=^J:bl=^G:\ 11*17411Sedward :al=\EL:le=^H:bs:cd=\EJ:ce=\EK:cl=\EE:cm=\EY%+ %+ :co#80:dc=\EN:\ 12*17411Sedward :dl=1*\EM:do=\EB:ei=\EO:ho=\EH:im=\E@:li#24:mi:nd=\EC:as=\EF:ae=\EG:\ 13*17411Sedward :ms:ta=^I:pt:sr=\EI:se=\Eq:so=\Ep:up=\EA:vs=\Ex4:ve=\Ey4:\ 14*17411Sedward :kb=^H:ku=\EA:kd=\EB:kl=\ED:kr=\EC:kh=\EH:kn#1:k0=\E~:l0=HOME:\ 15*17411Sedward :k1=\ES:k2=\ET:k3=\EU:k4=\EV:k5=\EW:k6=\EP:k7=\EQ:k8=\ER:k9=\E01:\ 16*17411Sedward :es:hs:ts=\Ej\Ex5\Ex1\EY8%+ \Eo:fs=\Ek\Ey5:ds=\Ey1:us=\Es8:ue=\Es0: 17*17411Sedward */ 18*17411Sedward 19*17411Sedward #define NCOL 80 20*17411Sedward #define NROW 24 21*17411Sedward 22*17411Sedward extern char *gen_VS; 23*17411Sedward extern char *gen_VE; 24*17411Sedward 25*17411Sedward extern int h19_msp10c; 26*17411Sedward 27*17411Sedward #define pc(c) ttputc('c') 28*17411Sedward #define esc() pc(\033) 29*17411Sedward #define PAD(ms10) { \ 30*17411Sedward register i; \ 31*17411Sedward for (i = ((ms10) + 5) / h19_msp10c; --i >= 0;) \ 32*17411Sedward pc(\0); \ 33*17411Sedward } 34*17411Sedward #define ICPAD() PAD((NCOL - tt.tt_col) * 1) /* 0.1 ms per char */ 35*17411Sedward #define ILPAD() PAD((NROW - tt.tt_row) * 10) /* 1 ms per char */ 36*17411Sedward 37*17411Sedward #define h29_setinsert(m) (esc(), (tt.tt_insert = (m)) ? pc(@) : pc(O)) 38*17411Sedward 39*17411Sedward h29_setmodes(new) 40*17411Sedward register new; 41*17411Sedward { 42*17411Sedward register modes = '0'; 43*17411Sedward 44*17411Sedward if (new & WWM_REV) 45*17411Sedward modes |= 1; 46*17411Sedward if (new & WWM_BLK) 47*17411Sedward modes |= 2; 48*17411Sedward if (new & WWM_UL) 49*17411Sedward modes |= 8; 50*17411Sedward esc(); 51*17411Sedward pc(s); 52*17411Sedward ttputc(modes); 53*17411Sedward if (new & WWM_GRP) { 54*17411Sedward if ((tt.tt_modes & WWM_GRP) == 0) 55*17411Sedward esc(), pc(F); 56*17411Sedward } else 57*17411Sedward if (tt.tt_modes & WWM_GRP) 58*17411Sedward esc(), pc(G); 59*17411Sedward tt.tt_modes = new; 60*17411Sedward } 61*17411Sedward 62*17411Sedward h29_putc(c) 63*17411Sedward register char c; 64*17411Sedward { 65*17411Sedward if (tt.tt_nmodes != tt.tt_modes) 66*17411Sedward h29_setmodes(tt.tt_nmodes); 67*17411Sedward if (tt.tt_ninsert != tt.tt_insert) 68*17411Sedward h29_setinsert(tt.tt_ninsert); 69*17411Sedward ttputc(c); 70*17411Sedward if (tt.tt_insert) 71*17411Sedward ICPAD(); 72*17411Sedward if (++tt.tt_col == NCOL) 73*17411Sedward tt.tt_col = NCOL - 1; 74*17411Sedward } 75*17411Sedward 76*17411Sedward h29_write(p, n) 77*17411Sedward register char *p; 78*17411Sedward register n; 79*17411Sedward { 80*17411Sedward if (tt.tt_nmodes != tt.tt_modes) 81*17411Sedward h29_setmodes(tt.tt_nmodes); 82*17411Sedward if (tt.tt_ninsert != tt.tt_insert) 83*17411Sedward h29_setinsert(tt.tt_ninsert); 84*17411Sedward if (tt.tt_insert) { 85*17411Sedward while (--n >= 0) { 86*17411Sedward ttputc(*p++); 87*17411Sedward ICPAD(); 88*17411Sedward tt.tt_col++; 89*17411Sedward } 90*17411Sedward } else { 91*17411Sedward tt.tt_col += n; 92*17411Sedward while (--n >= 0) 93*17411Sedward ttputc(*p++); 94*17411Sedward } 95*17411Sedward if (tt.tt_col == NCOL) 96*17411Sedward tt.tt_col = NCOL - 1; 97*17411Sedward } 98*17411Sedward 99*17411Sedward h29_end() 100*17411Sedward { 101*17411Sedward h29_setmodes(0); 102*17411Sedward h29_setinsert(0); 103*17411Sedward if (gen_VE) 104*17411Sedward ttputs(gen_VE); 105*17411Sedward esc(); 106*17411Sedward pc(v); 107*17411Sedward } 108*17411Sedward 109*17411Sedward tt_h29() 110*17411Sedward { 111*17411Sedward if (tt_h19() < 0) 112*17411Sedward return -1; 113*17411Sedward tt.tt_putc = h29_putc; 114*17411Sedward tt.tt_write = h29_write; 115*17411Sedward tt.tt_end = h29_end; 116*17411Sedward tt.tt_availmodes = WWM_BLK|WWM_UL|WWM_REV|WWM_GRP; 117*17411Sedward return 0; 118*17411Sedward } 119