/* fmtdat.c */ #include #include #include "vt1xx.h" #include "fmtdat.h" int fmttab = 8; /* Tab spacing */ int fmtcol = 0; /* current column position */ int fmtrow = SCRNBT-SCRNTP; /* current row position */ char fmtbuf[(SCRNBT-SCRNTP+1)*SCRNW]; /* screen image buffer */ int findex[SCRNBT-SCRNTP+1]; /* screen index array */ /* fmtpos - Calculate screen column position for an arbitrary character position. */ int fmtpos(bf,n) char *bf; int n; { register char c,*p; register int i,j,k; i = n; j = k = 0; p = bf; while (j++ (SCRNW-1)) { break; } col += k; while ((k--)>0) { *p++ = ' ' | v; } } else if (c < 32) { if ((col+2) > (SCRNW-1)) { break; } col += 2; *p++ = '^' | v; *p++ = c+64 | v; } else { if ((col+1) > (SCRNW-1)) { break; } col += 1; *p++ = c | v; } } while (col++ < SCRNW) { *p++ = 0; } } /* fmtclr - Clear internal screen buffer. */ VOID fmtclr() { register char *p,*q; register int i,j,*r; p = &fmtbuf[0]; q = &outbuf[0]; r = &findex[0]; for (i=0; i<(SCRNBT-SCRNTP+1); i++) { *r++ = i*SCRNW; for (j=0; j