home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 11 Util
/
11-Util.zip
/
OS2UTIL.ZIP
/
MES.C
< prev
next >
Wrap
Text File
|
1990-05-21
|
18KB
|
437 lines
#define INCL_SUB 1
#define INCL_DOSPROCESS 1
#define INCL_DOSINFOSEG 1
#define INCL_DOSDEVICES 1
#include <os2.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "vio_util.h"
#include "vio_util.c"
#define FALSE 0
#define TRUE 1
#define SPACE 32
#define BLOCK 219
typedef struct {
unsigned long first, second, third;
unsigned char fourth;
} character;
int main(int argc, char* *argv);
main(argc, argv)
int argc;
char *argv[];
{
character symbol[95];
unsigned long bit[33];
int row, col, i, j, k, l, idx, ROW = 1;
VIOMODEINFO modedata;
if (argc == 1) {
puts("format: mes <message>");
exit(1);
}
cls();
symbol[ 0].first = 0x00000000; symbol[ 0].second = 0x00000000; /* blank */
symbol[ 0].third = 0x00000000; symbol[ 0].fourth = 0x00;
symbol[ 1].first = 0x1E0FC7FB; symbol[ 1].second = 0xFF7F8FC1; /* ! */
symbol[ 1].third = 0xE0001E07; symbol[ 1].fourth = 0x08;
symbol[ 2].first = 0x330CC120; symbol[ 2].second = 0x00000000; /* " */
symbol[ 2].third = 0x00000000; symbol[ 2].fourth = 0x00;
symbol[ 3].first = 0x330CC333; symbol[ 3].second = 0xFF330CCF; /* # */
symbol[ 3].third = 0xFCCC330C; symbol[ 3].fourth = 0x0C;
symbol[ 4].first = 0x0C1FECCF; symbol[ 4].second = 0x307C0700; /* $ */
symbol[ 4].third = 0xFB377F83; symbol[ 4].fourth = 0x00;
symbol[ 5].first = 0xF07C6030; symbol[ 5].second = 0x180C0603; /* % */
symbol[ 5].third = 0x0180C3E0; symbol[ 5].fourth = 0x0F;
symbol[ 6].first = 0x1E0CC610; symbol[ 6].second = 0xCC1E0F06; /* & */
symbol[ 6].third = 0x6F8CE79F; symbol[ 6].fourth = 0x03;
symbol[ 7].first = 0x0C030040; symbol[ 7].second = 0x20000000; /* ' */
symbol[ 7].third = 0x00000000; symbol[ 7].fourth = 0x00;
symbol[ 8].first = 0x06030180; symbol[ 8].second = 0xC0300C03; /* ( */
symbol[ 8].third = 0x00600C01; symbol[ 8].fourth = 0x08;
symbol[ 9].first = 0x18030060; symbol[ 9].second = 0x0C0300C0; /* ) */
symbol[ 9].third = 0x30180C06; symbol[ 9].fourth = 0x00;
symbol[10].first = 0x00303618; symbol[10].second = 0xCC0C3FF0; /* * */
symbol[10].third = 0xC0CC61B0; symbol[10].fourth = 0x03;
symbol[11].first = 0x000000C0; symbol[11].second = 0x30FFFFF0; /* + */
symbol[11].third = 0xC0300000; symbol[11].fourth = 0x00;
symbol[12].first = 0x00000000; symbol[12].second = 0x00000000; /* , */
symbol[12].third = 0xC0300402; symbol[12].fourth = 0x00;
symbol[13].first = 0x00000000; symbol[13].second = 0x00FFFFF0; /* - */
symbol[13].third = 0x00000000; symbol[13].fourth = 0x00;
symbol[14].first = 0x00000000; symbol[14].second = 0x00000000; /* . */
symbol[14].third = 0x00001E07; symbol[14].fourth = 0x08;
symbol[15].first = 0x00406030; symbol[15].second = 0x180C0603; /* / */
symbol[15].third = 0x0180C020; symbol[15].fourth = 0x00;
symbol[16].first = 0x7FBFFC1F; symbol[16].second = 0x0BC4F23D; /* 0 */
symbol[16].third = 0x0F83FFDF; symbol[16].fourth = 0x0E;
symbol[17].first = 0x0C0F00C0; symbol[17].second = 0x300C0300; /* 1 */
symbol[17].third = 0xC0300C3F; symbol[17].fourth = 0x0F;
symbol[18].first = 0x7FBFFC0C; symbol[18].second = 0x037FBF8C; /* 2 */
symbol[18].third = 0x0303FFFF; symbol[18].fourth = 0x0F;
symbol[19].first = 0x7FBFFC1C; symbol[19].second = 0x031FC7F0; /* 3 */
symbol[19].third = 0x0F07FFDF; symbol[19].fourth = 0x0E;
symbol[20].first = 0x0F07C331; symbol[20].second = 0x8CC33FF0; /* 4 */
symbol[20].third = 0x300C0300; symbol[20].fourth = 0x0C;
symbol[21].first = 0xFFFFFC03; symbol[21].second = 0x00FF3FF0; /* 5 */
symbol[21].third = 0x0C03E0FF; symbol[21].fourth = 0x0E;
symbol[22].first = 0xFF300C03; symbol[22].second = 0x00FE3FFC; /* 6 */
symbol[22].third = 0x0F03FFDF; symbol[22].fourth = 0x0E;
symbol[23].first = 0xFFF03018; symbol[23].second = 0x0C060301; /* 7 */
symbol[23].third = 0x80C06030; symbol[23].fourth = 0x00;
symbol[24].first = 0x3F387E1F; symbol[24].second = 0x877FB87E; /* 8 */
symbol[24].third = 0x1F87E1CF; symbol[24].fourth = 0x0C;
symbol[25].first = 0xFFF03C0F; symbol[25].second = 0x03FFC030; /* 9 */
symbol[25].third = 0x0C03C0FF; symbol[25].fourth = 0x0F;
symbol[26].first = 0x000000C0; symbol[26].second = 0x30000300; /* : */
symbol[26].third = 0xC0000000; symbol[26].fourth = 0x00;
symbol[27].first = 0x000000C0; symbol[27].second = 0x30000300; /* ; */
symbol[27].third = 0xC0100800; symbol[27].fourth = 0x00;
symbol[28].first = 0x00C0C0C0; symbol[28].second = 0xC0C03003; /* < */
symbol[28].third = 0x00300300; symbol[28].fourth = 0x03;
symbol[29].first = 0x00000FFF; symbol[29].second = 0xFF00000F; /* = */
symbol[29].third = 0xFFFF0000; symbol[29].fourth = 0x00;
symbol[30].first = 0xC00C00C0; symbol[30].second = 0x0C00C030; /* > */
symbol[30].third = 0x30303030; symbol[30].fourth = 0x00;
symbol[31].first = 0x7FA0180C; symbol[31].second = 0x03078300; /* ? */
symbol[31].third = 0xC0300003; symbol[31].fourth = 0x00;
symbol[32].first = 0x000007FA; symbol[32].second = 0x019E68DA; /* @ */
symbol[32].third = 0x367F805F; symbol[32].fourth = 0x0E;
symbol[33].first = 0x0C078331; symbol[33].second = 0x86E1FFFC; /* A */
symbol[33].third = 0x0F03C0F0; symbol[33].fourth = 0x03;
symbol[34].first = 0xFF306C0F; symbol[34].second = 0x07FFBFCC; /* B */
symbol[34].third = 0x1B03C0FF; symbol[34].fourth = 0x0E;
symbol[35].first = 0xFFFFFC0F; symbol[35].second = 0x00C0300C; /* C */
symbol[35].third = 0x0303FFFF; symbol[35].fourth = 0x0F;
symbol[36].first = 0xFF3FFC1F; symbol[36].second = 0x03C0F03C; /* D */
symbol[36].third = 0x0F07FFFF; symbol[36].fourth = 0x0C;
symbol[37].first = 0xFFFFFC03; symbol[37].second = 0x00FFFFFC; /* E */
symbol[37].third = 0x0300FFFF; symbol[37].fourth = 0x0F;
symbol[38].first = 0xFFFFFC03; symbol[38].second = 0x00FFFFFC; /* F */
symbol[38].third = 0x0300C030; symbol[38].fourth = 0x00;
symbol[39].first = 0xFFF03C0F; symbol[39].second = 0x00C7F1FC; /* G */
symbol[39].third = 0x0F03FFFF; symbol[39].fourth = 0x0F;
symbol[40].first = 0xC0F03C0F; symbol[40].second = 0x03FFFFFC; /* H */
symbol[40].third = 0x0F03C0F0; symbol[40].fourth = 0x03;
symbol[41].first = 0xFFC300C0; symbol[41].second = 0x300C0300; /* I */
symbol[41].third = 0xC0300C3F; symbol[41].fourth = 0x0F;
symbol[42].first = 0x00C0300C; symbol[42].second = 0x0300C030; /* J */
symbol[42].third = 0x0F03C0FF; symbol[42].fourth = 0x0F;
symbol[43].first = 0xC0F06C33; symbol[43].second = 0x18F8360C; /* K */
symbol[43].third = 0xC318C1B0; symbol[43].fourth = 0x03;
symbol[44].first = 0xC0300C03; symbol[44].second = 0x00C0300C; /* L */
symbol[44].third = 0x0300C03F; symbol[44].fourth = 0x0F;
symbol[45].first = 0xC0F03E1F; symbol[45].second = 0xCFFFF7BC; /* M */
symbol[45].third = 0xCF03C0F0; symbol[45].fourth = 0x03;
symbol[46].first = 0xC0F83F0F; symbol[46].second = 0x63CCF1BC; /* N */
symbol[46].third = 0x1F03C0F0; symbol[46].fourth = 0x03;
symbol[47].first = 0xFFFFFC0F; symbol[47].second = 0x03C0F03C; /* O */
symbol[47].third = 0x0F03FFFF; symbol[47].fourth = 0x0F;
symbol[48].first = 0xFFF03C0F; symbol[48].second = 0x03C0FFFC; /* P */
symbol[48].third = 0x0300C030; symbol[48].fourth = 0x00;
symbol[49].first = 0x7FBFFE1F; symbol[49].second = 0x03C0F03C; /* Q */
symbol[49].third = 0x2F86FF9F; symbol[49].fourth = 0x09;
symbol[50].first = 0xFFF03C0F; symbol[50].second = 0x03FF30CC; /* R */
symbol[50].third = 0x1B06C0F0; symbol[50].fourth = 0x03;
symbol[51].first = 0x3F3FFC0F; symbol[51].second = 0x00700700; /* S */
symbol[51].third = 0x3B07FFCF; symbol[51].fourth = 0x0C;
symbol[52].first = 0xFFFFF0C0; symbol[52].second = 0x300C0300; /* T */
symbol[52].third = 0xC0300C03; symbol[52].fourth = 0x00;
symbol[53].first = 0xC0F03C0F; symbol[53].second = 0x03C0F03C; /* U */
symbol[53].third = 0x0F03FFFF; symbol[53].fourth = 0x0F;
symbol[54].first = 0xC0F03C0F; symbol[54].second = 0x03C0F03E; /* V */
symbol[54].third = 0x1DCE1E03; symbol[54].fourth = 0x00;
symbol[55].first = 0xC0F03C0F; symbol[55].second = 0x33DEFFFF; /* W */
symbol[55].third = 0x3f87C0F0; symbol[55].fourth = 0x03;
symbol[56].first = 0xC0D86330; symbol[56].second = 0x480C0301; /* X */
symbol[56].third = 0x20CC61B0; symbol[56].fourth = 0x03;
symbol[57].first = 0xC0F03C0F; symbol[57].second = 0x03618780; /* Y */
symbol[57].third = 0xC0300C03; symbol[57].fourth = 0x00;
symbol[58].first = 0xFFF03018; symbol[58].second = 0x0C060301; /* Z */
symbol[58].third = 0x80C360FF; symbol[58].fourth = 0x0F;
symbol[59].first = 0xFFFFFC03; symbol[59].second = 0x00C0300C; /* [ */
symbol[59].third = 0x0300FFFF; symbol[59].fourth = 0x0F;
symbol[60].first = 0x80180300; symbol[60].second = 0x600C0180; /* \ */
symbol[60].third = 0x300600C0; symbol[60].fourth = 0x01;
symbol[61].first = 0xFFFFF00C; symbol[61].second = 0x0300C030; /* ] */
symbol[61].third = 0x0C03FFFF; symbol[61].fourth = 0x0F;
symbol[62].first = 0x0C078331; symbol[62].second = 0x86C0C000; /* ^ */
symbol[62].third = 0x00000000; symbol[62].fourth = 0x00;
symbol[63].first = 0x00000000; symbol[63].second = 0x00000000; /* _ */
symbol[63].third = 0x0000FFFF; symbol[63].fourth = 0x0F;
symbol[64].first = 0x0C030040; symbol[64].second = 0x00000000; /* ` */
symbol[64].third = 0x00000000; symbol[64].fourth = 0x00;
symbol[65].first = 0x00000000; symbol[65].second = 0x00003FF0; /* a */
symbol[65].third = 0x1FFFC3FF; symbol[65].fourth = 0x0D;
symbol[66].first = 0xC0300C03; symbol[66].second = 0x00C03FFC; /* b */
symbol[66].third = 0x0F03C0FF; symbol[66].fourth = 0x0F;
symbol[67].first = 0x00000000; symbol[67].second = 0x00003FFC; /* c */
symbol[67].third = 0x0700C07F; symbol[67].fourth = 0x0F;
symbol[68].first = 0x00C0300C; symbol[68].second = 0x0300FFFC; /* d */
symbol[68].third = 0x0F03C0FF; symbol[68].fourth = 0x0F;
symbol[69].first = 0x00000000; symbol[69].second = 0x00003FFC; /* e */
symbol[69].third = 0x0FFFC03F; symbol[69].fourth = 0x0F;
symbol[70].first = 0x0003F0CC; symbol[70].second = 0x300C1FE0; /* f */
symbol[70].third = 0xC0300C03; symbol[70].fourth = 0x00;
symbol[71].first = 0x00000000; symbol[71].second = 0x00000FF3; /* g */
symbol[71].third = 0x0CFF80FF; symbol[71].fourth = 0x0F;
symbol[72].first = 0xC0300C03; symbol[72].second = 0x00C03FFC; /* h */
symbol[72].third = 0x0F03C0F0; symbol[72].fourth = 0x03;
symbol[73].first = 0x00000000; symbol[73].second = 0x30000300; /* i */
symbol[73].third = 0xC0300C03; symbol[73].fourth = 0x00;
symbol[74].first = 0x00000000; symbol[74].second = 0x30000300; /* j */
symbol[74].third = 0xC0308C3F; symbol[74].fourth = 0x00;
symbol[75].first = 0xC0300C13; symbol[75].second = 0x08C4360E; /* k */
symbol[75].third = 0xC30CC1B0; symbol[75].fourth = 0x03;
symbol[76].first = 0x1C0300C0; symbol[76].second = 0x300C0300; /* l */
symbol[76].third = 0xC0300C07; symbol[76].fourth = 0x08;
symbol[77].first = 0x00000000; symbol[77].second = 0x0000303E; /* m */
symbol[77].third = 0x1FFFDEF3; symbol[77].fourth = 0x03;
symbol[78].first = 0x00000000; symbol[78].second = 0x00C03FFC; /* n */
symbol[78].third = 0x0F03C0F0; symbol[78].fourth = 0x03;
symbol[79].first = 0x00000000; symbol[79].second = 0x00003FFC; /* o */
symbol[79].third = 0x0F03C0FF; symbol[79].fourth = 0x0F;
symbol[80].first = 0x00000000; symbol[80].second = 0x00003FFE; /* p */
symbol[80].third = 0x1FFFC030; symbol[80].fourth = 0x00;
symbol[81].first = 0x00000000; symbol[81].second = 0x00003FFF; /* q */
symbol[81].third = 0x1FFF00C0; symbol[81].fourth = 0x03;
symbol[82].first = 0x00000000; symbol[82].second = 0x00C03FEC; /* r */
symbol[82].third = 0x0B00C030; symbol[82].fourth = 0x00;
symbol[83].first = 0x00000000; symbol[83].second = 0x00000FE7; /* s */
symbol[83].third = 0x0438839F; symbol[83].fourth = 0x0C;
symbol[84].first = 0x00000000; symbol[84].second = 0x000C1FE0; /* t */
symbol[84].third = 0xC0300C03; symbol[84].fourth = 0x08;
symbol[85].first = 0x00000000; symbol[85].second = 0x000030CC; /* u */
symbol[85].third = 0x330CC33F; symbol[85].fourth = 0x0F;
symbol[86].first = 0x00000000; symbol[86].second = 0x0000303C; /* v */
symbol[86].third = 0x0F877387; symbol[86].fourth = 0x08;
symbol[87].first = 0x00000000; symbol[87].second = 0x0000333C; /* w */
symbol[87].third = 0xCF7BF3F0; symbol[87].fourth = 0x03;
symbol[88].first = 0x00000000; symbol[88].second = 0x00002016; /* x */
symbol[88].third = 0x187861A0; symbol[88].fourth = 0x01;
symbol[89].first = 0x00000000; symbol[89].second = 0x00001836; /* y */
symbol[89].third = 0x0DFF00FF; symbol[89].fourth = 0x0F;
symbol[90].first = 0x00000000; symbol[90].second = 0x00003FF8; /* z */
symbol[90].third = 0x1830607F; symbol[90].fourth = 0x0F;
symbol[91].first = 0x0F040300; symbol[91].second = 0xC0802003; /* { */
symbol[91].third = 0x00C01003; symbol[91].fourth = 0x0C;
symbol[92].first = 0x0C0300C0; symbol[92].second = 0x300C0300; /* | */
symbol[92].third = 0xC0300C03; symbol[92].fourth = 0x00;
symbol[93].first = 0x3C008030; symbol[93].second = 0x0C004010; /* } */
symbol[93].third = 0x300C020F; symbol[93].fourth = 0x00;
symbol[94].first = 0x00000307; symbol[94].second = 0x33830000; /* ~ */
symbol[94].third = 0x00000000; symbol[94].fourth = 0x00;
bit[01] = 0x00000001; bit[02] = 0x00000002;
bit[03] = 0x00000004; bit[04] = 0x00000008;
bit[05] = 0x00000010; bit[06] = 0x00000020;
bit[07] = 0x00000040; bit[ 8] = 0x00000080;
bit[ 9] = 0x00000100; bit[10] = 0x00000200;
bit[11] = 0x00000400; bit[12] = 0x00000800;
bit[13] = 0x00001000; bit[14] = 0x00002000;
bit[15] = 0x00004000; bit[16] = 0x00008000;
bit[17] = 0x00010000; bit[18] = 0x00020000;
bit[19] = 0x00040000; bit[20] = 0x00080000;
bit[21] = 0x00100000; bit[22] = 0x00200000;
bit[23] = 0x00400000; bit[24] = 0x00800000;
bit[25] = 0x01000000; bit[26] = 0x02000000;
bit[27] = 0x04000000; bit[28] = 0x08000000;
bit[29] = 0x10000000; bit[30] = 0x20000000;
bit[31] = 0x40000000; bit[32] = 0x80000000;
row = col = 1;
for (i = 1; i < argc; i++) { /* word loop */
j = strlen(argv[i]);
for (k = 0; k < j; k++) { /* character loop */
idx = argv[i][k] - ' ';
curset(row, col);
for (l = 0; l < 32; l++) {
if (symbol[idx].first & bit[32-l])
wrtchr(BLOCK);
else
wrtchr(SPACE);
if (l % 10 == 9)
curset(++row, col);
}
for (l = 0; l < 32; l++) {
if (symbol[idx].second & bit[32-l])
wrtchr(BLOCK);
else
wrtchr(SPACE);
if (l % 10 == 7)
curset(++row, col);
}
for (l = 0; l < 32; l++) {
if (symbol[idx].third & bit[32-l])
wrtchr(BLOCK);
else
wrtchr(SPACE);
if (l % 10 == 5)
curset(++row, col);
}
for (l = 0; l < 4; l++)
if (symbol[idx].fourth & bit[4-l])
wrtchr(BLOCK);
else
wrtchr(SPACE);
col += 11;
if (col > 77) {
ROW++;
switch (ROW) {
case 1: row = 1;
break;
case 2: row = 12;
break;
case 3: row = 23;
break;
default:row = 34;
break;
}
col = 1;
}
else
switch (ROW) {
case 1: row = 1;
break;
case 2: row = 12;
break;
case 3: row = 23;
break;
default:row = 34;
break;
}
}
if (col != 1)
col +=11;
if (col > 77) {
ROW++;
switch (ROW) {
case 1: row = 1;
break;
case 2: row = 12;
break;
case 3: row = 23;
break;
default:row = 34;
break;
}
col = 1;
}
}
modedata.cb = sizeof( modedata );
VioGetMode( &modedata, 0 );
return(curset(modedata.row-1, 80));
}