home *** CD-ROM | disk | FTP | other *** search
- /*
- initial data for EP
- */
-
- #include <bdscio.h>
- /*#include <hardware.h>*/
-
- #include <ep.def>
- #define AUBS 0xC0
-
-
- main()
- {
- valtpset();
- valset();
- spchar();
- mode = 0;
- tabwid = 0;
- bendset();
- pmset();
- /* pmshow(0); */
- /* pmshow(128); */
- savei();
- }
-
-
- valtpset()
- { int i;
- setmem(valtp, 27*27, 0);
-
- valtp['A'-'@']['D'-'@'] = HZNUM | BRK;/* adjust, or left margin */
- valtp['L'-'@']['I'-'@'] = HZNUM | BRK;/* left inside margin */
- valtp['L'-'@']['O'-'@'] = HZNUM | BRK;/* left outside margin */
- valtp['L'-'@']['L'-'@'] = HZNUM | BRK;/* line length */
- valtp['C'-'@']['O'-'@'] = BRK ; /* concatenation (Boolean) */
- valtp['J'-'@']['U'-'@'] = BRK ; /* justification (Boolean) */
-
- valtp['H'-'@']['I'-'@'] = HZNUM | BRK;/* hanging indent */
- valtp['O'-'@']['F'-'@'] = HZNUM | BRK;/* offset */
- valtp['P'-'@']['I'-'@'] = HZNUM | BRK;/* paragraph indent */
-
-
- valtp['C'-'@']['S'-'@'] = HZNUM; /* character spacing */
- valtp['C'-'@']['W'-'@'] = HZNUM | BRK; /* character width */
- valtp['W'-'@']['F'-'@'] = BRK; /* width factor */
- valtp['C'-'@']['L'-'@'] = HZNUM; /* goto column */
- valtp['H'-'@']['S'-'@'] = HZNUM; /* horizontal space */
- valtp['S'-'@']['L'-'@'] = VTNUM | BRK; /* set leading */
- valtp['C'-'@']['H'-'@'] = VTNUM | BRK; /* character height */
- valtp['P'-'@']['L'-'@'] = VTNUM; /* page length */
- valtp['R'-'@']['O'-'@'] = VTNUM; /* room */
- valtp['B'-'@']['R'-'@'] = BRK | FLAGCH;/* break */
- valtp['S'-'@']['A'-'@'] = BRK; /* save */
- valtp['R'-'@']['E'-'@'] = BRK; /* restore */
- valtp['P'-'@']['P'-'@'] = BRK | ARGTRUE;/* paragraph */
- valtp['D'-'@']['R'-'@'] = BRK | ARGTRUE;/* draw */
- valtp['T'-'@']['W'-'@'] = HZNUM; /* tab width */
-
- valtp['C'-'@']['T'-'@'] = ARGTRUE; /* clear tabs */
-
- valtp['N'-'@']['F'-'@'] = BRK; /* new fonts */
- valtp['C'-'@']['C'-'@'] = BRK; /* current column */
- valtp['N'-'@']['C'-'@'] = BRK; /* number columns */
- valtp['G'-'@']['U'-'@'] = HZNUM | BRK; /* gutter */
-
- valtp['R'-'@']['H'-'@'] = BRK; /* rule hpattern */
- valtp['R'-'@']['V'-'@'] = BRK; /* rule vpattern */
-
-
- valtp['T'-'@']['M'-'@'] = VTNUM; /* top margin */
- valtp['B'-'@']['M'-'@'] = VTNUM; /* bottom margin */
- valtp['H'-'@']['M'-'@'] = VTNUM; /* heading margin */
- valtp['F'-'@']['M'-'@'] = VTNUM; /* footing margin */
- valtp['S'-'@']['K'-'@'] = VTNUM | BRK; /* skip */
- valtp['S'-'@']['U'-'@'] = VTNUM | BRK; /* skip up */
- valtp['P'-'@']['S'-'@'] = VTNUM; /* paragraph spacing */
- valtp['W'-'@']['I'-'@'] = VTNUM; /* widow */
-
- valtp['I'-'@']['N'-'@'] = HZNUM | BRK; /* indent */
- valtp['I'-'@']['R'-'@'] = HZNUM | BRK; /* indent right */
- valtp['I'-'@']['L'-'@'] = HZNUM | BRK; /* indent line */
- valtp['U'-'@']['N'-'@'] = HZNUM | BRK; /* undent */
-
- /* synonyms of Epson commands */
- valtp['E'-'@']['L'-'@'] = EPSSYN; /* elite */
- valtp['C'-'@']['P'-'@'] = EPSSYN; /* com-pressed */
- valtp['E'-'@']['M'-'@'] = EPSSYN; /* emphasized */
- valtp['D'-'@']['S'-'@'] = EPSSYN; /* double strike */
- valtp['E'-'@']['X'-'@'] = EPSSYN; /* expanded */
- valtp['P'-'@']['R'-'@'] = EPSSYN; /* proportional */
- valtp['I'-'@']['T'-'@'] = EPSSYN; /* italic */
- valtp['S'-'@']['P'-'@'] = EPSSYN; /* su-perscript */
- valtp['S'-'@']['B'-'@'] = EPSSYN; /* su-bscript */
- valtp['U'-'@']['L'-'@'] = EPSSYN; /* under-line */
-
- valtp['C'-'@']['E'-'@'] = FLAGCH | BRKAFT; /* center */
- valtp['R'-'@']['A'-'@'] = FLAGCH | BRKAFT; /* right adjust */
- valtp['O'-'@']['A'-'@'] = FLAGCH | BRKAFT; /* out adjust */
- valtp['I'-'@']['A'-'@'] = FLAGCH | BRKAFT; /* in adjust */
- valtp['P'-'@']['A'-'@'] = FLAGCH; /* pause */
- valtp['H'-'@']['F'-'@'] = FLAGCH; /* horizontal fill */
- valtp['L'-'@']['A'-'@'] = BRK | ARGTRUE;
- /* left adjust */
- valtp['R'-'@']['B'-'@'] = CHARG; /* required blank */
- valtp['E'-'@']['C'-'@'] = CHARG; /* escape character */
- valtp['D'-'@']['C'-'@'] = CHARG; /* dot character */
- valtp['C'-'@']['M'-'@'] = CHARG; /* comment character */
- valtp['T'-'@']['C'-'@'] = CHARG; /* tab character */
-
- valtp['G'-'@']['T'-'@'] = ARGTRUE;/* get-terminal */
- valtp['R'-'@']['N'-'@'] = ARGTRUE;/* Roman-numeral */
-
- }
-
- spchar()
- {
- valtp['T'-'@']['I'-'@'] = FLAGCH; /* tic */
- val['T'-'@']['I'-'@'] = 'A' & 31;
- valtp['G'-'@']['R'-'@'] = FLAGCH; /* grave */
- val['G'-'@']['R'-'@'] = ('B' & 31) | AUBS;
- valtp['A'-'@']['C'-'@'] = FLAGCH; /* acute */
- val['A'-'@']['C'-'@'] = ('C' & 31) | AUBS;
- valtp['C'-'@']['I'-'@'] = FLAGCH; /* circumflex */
- val['C'-'@']['I'-'@'] = ('D' & 31) | AUBS;
- valtp['H'-'@']['A'-'@'] = FLAGCH; /* hachek */
- val['H'-'@']['A'-'@'] = ('E' & 31) | AUBS;
- valtp['M'-'@']['A'-'@'] = FLAGCH; /* macron */
- val['M'-'@']['A'-'@'] = ('F' & 31) | AUBS;
- valtp['U'-'@']['M'-'@'] = FLAGCH; /* umlaut */
- val['U'-'@']['M'-'@'] = ('G' & 31) | AUBS;
- valtp['B'-'@']['S'-'@'] = FLAGCH; /* back space */
- val['B'-'@']['S'-'@'] = BCKFLAG;
- valtp['V'-'@']['L'-'@'] = FLAGCH; /* voice-less */
- val['V'-'@']['L'-'@'] = ('H' & 31) | AUBS;
- valtp['U'-'@']['D'-'@'] = FLAGCH; /* under-dot */
- val['U'-'@']['D'-'@'] = ('I' & 31) | AUBS;
- valtp['B'-'@']['U'-'@'] = FLAGCH; /* bullet */
- val['B'-'@']['U'-'@'] = 'J' & 31;
- valtp['D'-'@']['A'-'@'] = FLAGCH; /* dagger */
- val['D'-'@']['A'-'@'] = 'K' & 31;
- valtp['D'-'@']['D'-'@'] = FLAGCH; /* double-dagger */
- val['D'-'@']['D'-'@'] = 'L' & 31;
- valtp['S'-'@']['E'-'@'] = FLAGCH; /* section */
- val['S'-'@']['E'-'@'] = 'M' & 31;
- valtp['Q'-'@']['U'-'@'] = FLAGCH; /* quad */
- val['Q'-'@']['U'-'@'] = 'N' & 31;
- valtp['M'-'@']['D'-'@'] = FLAGCH; /* mdash */
- val['M'-'@']['D'-'@'] = 'O' & 31;
- valtp['N'-'@']['D'-'@'] = FLAGCH; /* ndash */
- val['N'-'@']['D'-'@'] = 'P' & 31;
- valtp['D'-'@']['G'-'@'] = FLAGCH; /* di-graph */
- val['D'-'@']['G'-'@'] = 'Q' & 31;
- valtp['D'-'@']['O'-'@'] = FLAGCH; /* digraph-o */
- val['D'-'@']['O'-'@'] = 'R' & 31;
- valtp['B'-'@']['V'-'@'] = FLAGCH; /* bre-ve */
- val['B'-'@']['V'-'@'] = ('S' & 31) | AUBS;
- valtp['S'-'@']['Y'-'@'] = FLAGCH; /* syllabic */
- val['S'-'@']['Y'-'@'] = ('T' & 31) | AUBS;
- valtp['N'-'@']['S'-'@'] = FLAGCH; /* non-syllabic */
- val['N'-'@']['S'-'@'] = ('U' & 31) | AUBS;
- valtp['C'-'@']['D'-'@'] = FLAGCH; /* ce-dilla */
- val['C'-'@']['D'-'@'] = ('V' & 31) | AUBS;
- valtp['U'-'@']['T'-'@'] = FLAGCH; /* under-tie */
- val['U'-'@']['T'-'@'] = ('W' & 31) | AUBS;
- valtp['O'-'@']['T'-'@'] = FLAGCH; /* over-tie */
- val['O'-'@']['T'-'@'] = ('X' & 31) | AUBS;
- valtp['O'-'@']['D'-'@'] = FLAGCH; /* over-dot */
- val['O'-'@']['D'-'@'] = ('Y' & 31) | AUBS;
- valtp['N'-'@']['A'-'@'] = FLAGCH; /* nasal */
- val['N'-'@']['A'-'@'] = ('Z' & 31) | AUBS;
-
- valtp['B'-'@']['L'-'@'] = FLAGCH; /* blank */
- val['B'-'@']['L'-'@'] = ' ';
- }
-
-
- valset()
- { int i, m;
-
- strcpy(editname,"e");
-
- setmem(val, 2*27*27, 0);
- ll = 8 * INCH;
- sl = 2 * POINT;
- pl = 11 * VINCH;
- cs = 3;
-
- tm = 1 * VINCH;
- bm = 1 * VINCH;
- hm = 0; /* was PICA + 2 * POINT, but this would
- now give a page number at the top */
- fm = PICA + 2 * POINT;
-
- rb = '_';
- ec = '\\';
-
- el = 'M';
- cp = 15;
- em = 'E';
- ds = 'G';
- ex = 'W';
- pr = 'p';
- it = 4;
- sp = 'S';
- sb = '0';
- ul = '-';
-
- val['D'-'@']['C'-'@'] = '.'; /* dot character */
- val['C'-'@']['M'-'@'] = 'F'&31; /* comment character */
-
- val['C'-'@']['E'-'@'] = CEFLAG; /* center */
- val['R'-'@']['A'-'@'] = RAFLAG; /* right adjust */
- val['O'-'@']['A'-'@'] = RAFLAG; /* out adjust */
- val['I'-'@']['A'-'@'] = RAFLAG; /* in adjust */
- val['P'-'@']['A'-'@'] = PAFLAG; /* pause */
- val['H'-'@']['F'-'@'] = FRFLAG; /* horizontal fill */
- val['C'-'@']['H'-'@'] = PICA; /* char. height */
- val['P'-'@']['S'-'@'] = PICA + 2*POINT;/* paragraph spacing */
- val['W'-'@']['I'-'@'] = 2*(PICA + 2*POINT); /* widow */
- val['P'-'@']['F'-'@'] = 6; /* punctuation factor */
- val['L'-'@']['F'-'@'] = 4; /* looseness factor */
- val['S'-'@']['C'-'@'] = 2; /* space capitals */
- val['R'-'@']['H'-'@'] = 0x10; /* rule hpattern */
- val['R'-'@']['V'-'@'] = 0; /* rule vpattern */
-
-
- for (i = 0; i < 64; i++)
- { m = PICA; /* Pica */
- if (i & CMPRSSD) m = 14; /* Compressed */
- if (i & EMPHSZD) m = 24; /* Emphasized */
- if (i & PRPTNL) m = 0; /* Proportional */
- if (i & ELITE) m = 20; /* Elite */
- if (i & EXPNDD) m *= 2; /* Expanded */
- modelen[i] = m;
- }
- }
-
- bendset()
- { int row;
-
- setmem(bending, 7*24, 0);
-
- for (row = 0; row < 24; row++)
- {
- if (row < 12)
- {
- /* backslant with slope = 2 */
- bending[0][ixrow(row)] = row / 2;
- /* slant with slope = 2 */
- bending[1][ixrow(row)] = 11 - row / 2;
- }
- else
- {
- /* slant with slope = 2 */
- bending[0][ixrow(row)] = 11 - row / 2;
- /* backslant with slope = 2 */
- bending[1][ixrow(row)] = row / 2;
- }
-
- /* backhand with slope 1/3 */
- /* bending[2][ixrow(row)] = row / 3; */
-
- /* thicken verticals toward top */
- if (row < 8)
- bending[2][ixrow(row)] = (row % 2) ? 0 : 3;
- else if (row < 16)
- bending[2][ixrow(row)] = (row % 2) ? 0 : 2;
- }
-
- /* bulge left */
- bending[3][ixrow( 0)] = 6;
- bending[3][ixrow( 1)] = 4;
- bending[3][ixrow( 2)] = 3;
- bending[3][ixrow( 3)] = 2;
- bending[3][ixrow( 4)] = 2;
- bending[3][ixrow( 5)] = 1;
- bending[3][ixrow( 6)] = 1;
- bending[3][ixrow( 7)] = 0;
- bending[3][ixrow( 8)] = 0;
- bending[3][ixrow( 9)] = 0;
- bending[3][ixrow(10)] = 0;
- bending[3][ixrow(11)] = 1;
- bending[3][ixrow(12)] = 1;
- bending[3][ixrow(13)] = 2;
- bending[3][ixrow(14)] = 2;
- bending[3][ixrow(15)] = 3;
- bending[3][ixrow(16)] = 4;
- bending[3][ixrow(17)] = 6;
- bending[3][ixrow(18)] = 6;
- bending[3][ixrow(19)] = 6;
- bending[3][ixrow(20)] = 6;
- bending[3][ixrow(21)] = 6;
- bending[3][ixrow(22)] = 6;
- bending[3][ixrow(23)] = 6;
-
- /* bulge right */
- bending[4][ixrow( 0)] = 0;
- bending[4][ixrow( 1)] = 2;
- bending[4][ixrow( 2)] = 3;
- bending[4][ixrow( 3)] = 4;
- bending[4][ixrow( 4)] = 4;
- bending[4][ixrow( 5)] = 5;
- bending[4][ixrow( 6)] = 5;
- bending[4][ixrow( 7)] = 6;
- bending[4][ixrow( 8)] = 6;
- bending[4][ixrow( 9)] = 6;
- bending[4][ixrow(10)] = 6;
- bending[4][ixrow(11)] = 5;
- bending[4][ixrow(12)] = 5;
- bending[4][ixrow(13)] = 4;
- bending[4][ixrow(14)] = 4;
- bending[4][ixrow(15)] = 3;
- bending[4][ixrow(16)] = 2;
- bending[4][ixrow(17)] = 0;
- bending[4][ixrow(18)] = 0;
- bending[4][ixrow(19)] = 0;
- bending[4][ixrow(20)] = 0;
- bending[4][ixrow(21)] = 0;
- bending[4][ixrow(22)] = 0;
- bending[4][ixrow(23)] = 0;
-
- /* sweep ascenders left */
- bending[5][ixrow( 0)] = 0;
- bending[5][ixrow( 1)] = 2;
- bending[5][ixrow( 2)] = 3;
- bending[5][ixrow( 3)] = 4;
- bending[5][ixrow( 4)] = 4;
- bending[5][ixrow( 5)] = 5;
- bending[5][ixrow( 6)] = 5;
- bending[5][ixrow( 7)] = 5;
- bending[5][ixrow( 8)] = 5;
- bending[5][ixrow( 9)] = 5;
- bending[5][ixrow(10)] = 5;
- bending[5][ixrow(11)] = 5;
- bending[5][ixrow(12)] = 5;
- bending[5][ixrow(13)] = 5;
- bending[5][ixrow(14)] = 5;
- bending[5][ixrow(15)] = 5;
- bending[5][ixrow(16)] = 5;
- bending[5][ixrow(17)] = 5;
- bending[5][ixrow(18)] = 5;
- bending[5][ixrow(19)] = 5;
- bending[5][ixrow(20)] = 5;
- bending[5][ixrow(21)] = 5;
- bending[5][ixrow(22)] = 5;
- bending[5][ixrow(23)] = 5;
-
-
- /* sweep descenders left */
- bending[6][ixrow( 0)] = 5;
- bending[6][ixrow( 1)] = 5;
- bending[6][ixrow( 2)] = 5;
- bending[6][ixrow( 3)] = 5;
- bending[6][ixrow( 4)] = 5;
- bending[6][ixrow( 5)] = 5;
- bending[6][ixrow( 6)] = 5;
- bending[6][ixrow( 7)] = 5;
- bending[6][ixrow( 8)] = 5;
- bending[6][ixrow( 9)] = 5;
- bending[6][ixrow(10)] = 5;
- bending[6][ixrow(11)] = 5;
- bending[6][ixrow(12)] = 5;
- bending[6][ixrow(13)] = 5;
- bending[6][ixrow(14)] = 5;
- bending[6][ixrow(15)] = 5;
- bending[6][ixrow(16)] = 5;
- bending[6][ixrow(17)] = 5;
- bending[6][ixrow(18)] = 5;
- bending[6][ixrow(19)] = 4;
- bending[6][ixrow(20)] = 4;
- bending[6][ixrow(21)] = 3;
- bending[6][ixrow(22)] = 2;
- bending[6][ixrow(23)] = 0;
-
- }
-
- ixrow(row)
- int row;
- {
- return((row % 3)*8 + (7 - row / 3));
- }
-
-
- pmset()
- { int i;
-
- for (i = 0; i < 256; i++) pmlen[i] = PICA;
- pms("!'`|",5,0);
- pms("().:;",6,0);
- pms(",",7,0);
- pmlen[34] = 8 * 2;
- pms("1I[]il",8,0);
- pms("j{}",9,0);
- pms("/<>XZ\\fkxz",10,0);
- pms("Jbcdghnpqrt",11,0);
-
- pms("'`",5,128);
- pms(".\\",7,128);
- pmlen[34+128] = 10 * 2;
- pms("(),:",8,128);
- pms("1;>il|",9,128);
- pms("!/<IL^jnrtv{}",10,128);
- pms("$69=?V[]abceghkmopqsuy",11,128);
- }
-
- pmshow(o)
- int o;
- { int i;
- char c;
- for (i = 32; i < 48; i++)
- printf("\n#%3d %c = %2d", i+o, i, pmlen[i+o]/2);
- getchar(c);
- for (i = 48; i < 64; i++)
- printf("\n#%3d %c = %2d", i+o, i, pmlen[i+o]/2);
- getchar(c);
- for (i = 64; i < 80; i++)
- printf("\n#%3d %c = %2d", i+o, i, pmlen[i+o]/2);
- getchar(c);
- for (i = 80; i < 96; i++)
- printf("\n#%3d %c = %2d", i+o, i, pmlen[i+o]/2);
- getchar(c);
- for (i = 96; i <112; i++)
- printf("\n#%3d %c = %2d", i+o, i, pmlen[i+o]/2);
- getchar(c);
- for (i =112; i <127; i++)
- printf("\n#%3d %c = %2d", i+o, i, pmlen[i+o]/2);
- getchar(c);
- }
-
- pms(s,l,o)
- char *s, l, o;
- { while(*s) pmlen[o + *s++] = l * 2;
- }
-
- v(s)
- char *s;
- { return(val[*s - '@'][*(s+1) - '@']);
- }
-
- savei()
- {
- int fd, i;
-
- if ((fd = creat("ep.ini")) == ERROR)
- {printf("\ncan't save"); exit(ERROR);}
- if (write(fd, val, 21) != 21)
- {printf("\nbad save"); exit(ERROR);}
- if (close(fd) == ERROR)
- {printf("\nbad save"); exit(ERROR);}
-
- }
-