home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 22 gnu
/
22-gnu.zip
/
gp35emx.zip
/
gstring.c
< prev
next >
Wrap
C/C++ Source or Header
|
1994-08-26
|
6KB
|
155 lines
/* gstring.c (emx+gcc) -- Copyright (c) 1994 by David J. Liu */
#include <math.h>
#define Pi 3.14159265358979323
unsigned char font[128][8]={ /* 8x8 font */
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x7E,0x81,0xA5,0x81,0xBD,0x99,0x81,0x7E},
{0x7E,0xFF,0xDB,0xFF,0xC3,0xE7,0xFF,0x7E},
{0x6C,0xFE,0xFE,0xFE,0x7C,0x38,0x10,0x00},
{0x10,0x38,0x7C,0xFE,0x7C,0x38,0x10,0x00},
{0x38,0x7C,0x38,0xFE,0xFE,0x92,0x10,0x7C},
{0x00,0x10,0x38,0x7C,0xFE,0x7C,0x38,0x7C},
{0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00},
{0xFF,0xFF,0xE7,0xC3,0xC3,0xE7,0xFF,0xFF},
{0x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00},
{0xFF,0xC3,0x99,0xBD,0xBD,0x99,0xC3,0xFF},
{0x0F,0x07,0x0F,0x7D,0xCC,0xCC,0xCC,0x78},
{0x3C,0x66,0x66,0x66,0x3C,0x18,0x7E,0x18},
{0x3F,0x33,0x3F,0x30,0x30,0x70,0xF0,0xE0},
{0x7F,0x63,0x7F,0x63,0x63,0x67,0xE6,0xC0},
{0x99,0x5A,0x3C,0xE7,0xE7,0x3C,0x5A,0x99},
{0x80,0xE0,0xF8,0xFE,0xF8,0xE0,0x80,0x00},
{0x02,0x0E,0x3E,0xFE,0x3E,0x0E,0x02,0x00},
{0x18,0x3C,0x7E,0x18,0x18,0x7E,0x3C,0x18},
{0x66,0x66,0x66,0x66,0x66,0x00,0x66,0x00},
{0x7F,0xDB,0xDB,0x7B,0x1B,0x1B,0x1B,0x00},
{0x3E,0x63,0x38,0x6C,0x6C,0x38,0x86,0xFC},
{0x00,0x00,0x00,0x00,0x7E,0x7E,0x7E,0x00},
{0x18,0x3C,0x7E,0x18,0x7E,0x3C,0x18,0xFF},
{0x18,0x3C,0x7E,0x18,0x18,0x18,0x18,0x00},
{0x18,0x18,0x18,0x18,0x7E,0x3C,0x18,0x00},
{0x00,0x18,0x0C,0xFE,0x0C,0x18,0x00,0x00},
{0x00,0x30,0x60,0xFE,0x60,0x30,0x00,0x00},
{0x00,0x00,0xC0,0xC0,0xC0,0xFE,0x00,0x00},
{0x00,0x24,0x66,0xFF,0x66,0x24,0x00,0x00},
{0x00,0x18,0x3C,0x7E,0xFF,0xFF,0x00,0x00},
{0x00,0xFF,0xFF,0x7E,0x3C,0x18,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00},
{0x18,0x3C,0x3C,0x18,0x18,0x00,0x18,0x00},
{0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x00},
{0x6C,0x6C,0xFE,0x6C,0xFE,0x6C,0x6C,0x00},
{0x18,0x7E,0xC0,0x7C,0x06,0xFC,0x18,0x00},
{0x00,0xC6,0xCC,0x18,0x30,0x66,0xC6,0x00},
{0x38,0x6C,0x38,0x76,0xDC,0xCC,0x76,0x00},
{0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00},
{0x18,0x30,0x60,0x60,0x60,0x30,0x18,0x00},
{0x60,0x30,0x18,0x18,0x18,0x30,0x60,0x00},
{0x00,0x66,0x3C,0xFF,0x3C,0x66,0x00,0x00},
{0x00,0x18,0x18,0x7E,0x18,0x18,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x30},
{0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00},
{0x06,0x0C,0x18,0x30,0x60,0xC0,0x80,0x00},
{0x7C,0xCE,0xDE,0xF6,0xE6,0xC6,0x7C,0x00},
{0x30,0x70,0x30,0x30,0x30,0x30,0xFC,0x00},
{0x78,0xCC,0x0C,0x38,0x60,0xCC,0xFC,0x00},
{0x78,0xCC,0x0C,0x38,0x0C,0xCC,0x78,0x00},
{0x1C,0x3C,0x6C,0xCC,0xFE,0x0C,0x1E,0x00},
{0xFC,0xC0,0xF8,0x0C,0x0C,0xCC,0x78,0x00},
{0x38,0x60,0xC0,0xF8,0xCC,0xCC,0x78,0x00},
{0xFC,0xCC,0x0C,0x18,0x30,0x30,0x30,0x00},
{0x78,0xCC,0xCC,0x78,0xCC,0xCC,0x78,0x00},
{0x78,0xCC,0xCC,0x7C,0x0C,0x18,0x70,0x00},
{0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x00},
{0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x30},
{0x18,0x30,0x60,0xC0,0x60,0x30,0x18,0x00},
{0x00,0x00,0x7E,0x00,0x7E,0x00,0x00,0x00},
{0x60,0x30,0x18,0x0C,0x18,0x30,0x60,0x00},
{0x3C,0x66,0x0C,0x18,0x18,0x00,0x18,0x00},
{0x7C,0xC6,0xDE,0xDE,0xDC,0xC0,0x7C,0x00},
{0x30,0x78,0xCC,0xCC,0xFC,0xCC,0xCC,0x00},
{0xFC,0x66,0x66,0x7C,0x66,0x66,0xFC,0x00},
{0x3C,0x66,0xC0,0xC0,0xC0,0x66,0x3C,0x00},
{0xF8,0x6C,0x66,0x66,0x66,0x6C,0xF8,0x00},
{0xFE,0x62,0x68,0x78,0x68,0x62,0xFE,0x00},
{0xFE,0x62,0x68,0x78,0x68,0x60,0xF0,0x00},
{0x3C,0x66,0xC0,0xC0,0xCE,0x66,0x3A,0x00},
{0xCC,0xCC,0xCC,0xFC,0xCC,0xCC,0xCC,0x00},
{0x78,0x30,0x30,0x30,0x30,0x30,0x78,0x00},
{0x1E,0x0C,0x0C,0x0C,0xCC,0xCC,0x78,0x00},
{0xE6,0x66,0x6C,0x78,0x6C,0x66,0xE6,0x00},
{0xF0,0x60,0x60,0x60,0x62,0x66,0xFE,0x00},
{0xC6,0xEE,0xFE,0xFE,0xD6,0xC6,0xC6,0x00},
{0xC6,0xE6,0xF6,0xDE,0xCE,0xC6,0xC6,0x00},
{0x38,0x6C,0xC6,0xC6,0xC6,0x6C,0x38,0x00},
{0xFC,0x66,0x66,0x7C,0x60,0x60,0xF0,0x00},
{0x7C,0xC6,0xC6,0xC6,0xD6,0x7C,0x0E,0x00},
{0xFC,0x66,0x66,0x7C,0x6C,0x66,0xE6,0x00},
{0x7C,0xC6,0xE0,0x78,0x0E,0xC6,0x7C,0x00},
{0xFC,0xB4,0x30,0x30,0x30,0x30,0x78,0x00},
{0xCC,0xCC,0xCC,0xCC,0xCC,0xCC,0xFC,0x00},
{0xCC,0xCC,0xCC,0xCC,0xCC,0x78,0x30,0x00},
{0xC6,0xC6,0xC6,0xC6,0xD6,0xFE,0x6C,0x00},
{0xC6,0xC6,0x6C,0x38,0x6C,0xC6,0xC6,0x00},
{0xCC,0xCC,0xCC,0x78,0x30,0x30,0x78,0x00},
{0xFE,0xC6,0x8C,0x18,0x32,0x66,0xFE,0x00},
{0x78,0x60,0x60,0x60,0x60,0x60,0x78,0x00},
{0xC0,0x60,0x30,0x18,0x0C,0x06,0x02,0x00},
{0x78,0x18,0x18,0x18,0x18,0x18,0x78,0x00},
{0x10,0x38,0x6C,0xC6,0x00,0x00,0x00,0x00},
{0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF},
{0x30,0x30,0x18,0x00,0x00,0x00,0x00,0x00},
{0x00,0x00,0x78,0x0C,0x7C,0xCC,0x76,0x00},
{0xE0,0x60,0x60,0x7C,0x66,0x66,0xDC,0x00},
{0x00,0x00,0x78,0xCC,0xC0,0xCC,0x78,0x00},
{0x1C,0x0C,0x0C,0x7C,0xCC,0xCC,0x76,0x00},
{0x00,0x00,0x78,0xCC,0xFC,0xC0,0x78,0x00},
{0x38,0x6C,0x64,0xF0,0x60,0x60,0xF0,0x00},
{0x00,0x00,0x76,0xCC,0xCC,0x7C,0x0C,0xF8},
{0xE0,0x60,0x6C,0x76,0x66,0x66,0xE6,0x00},
{0x30,0x00,0x70,0x30,0x30,0x30,0x78,0x00},
{0x0C,0x00,0x1C,0x0C,0x0C,0xCC,0xCC,0x78},
{0xE0,0x60,0x66,0x6C,0x78,0x6C,0xE6,0x00},
{0x70,0x30,0x30,0x30,0x30,0x30,0x78,0x00},
{0x00,0x00,0xCC,0xFE,0xFE,0xD6,0xD6,0x00},
{0x00,0x00,0xB8,0xCC,0xCC,0xCC,0xCC,0x00},
{0x00,0x00,0x78,0xCC,0xCC,0xCC,0x78,0x00},
{0x00,0x00,0xDC,0x66,0x66,0x7C,0x60,0xF0},
{0x00,0x00,0x76,0xCC,0xCC,0x7C,0x0C,0x1E},
{0x00,0x00,0xDC,0x76,0x62,0x60,0xF0,0x00},
{0x00,0x00,0x7C,0xC0,0x70,0x1C,0xF8,0x00},
{0x10,0x30,0xFC,0x30,0x30,0x34,0x18,0x00},
{0x00,0x00,0xCC,0xCC,0xCC,0xCC,0x76,0x00},
{0x00,0x00,0xCC,0xCC,0xCC,0x78,0x30,0x00},
{0x00,0x00,0xC6,0xC6,0xD6,0xFE,0x6C,0x00},
{0x00,0x00,0xC6,0x6C,0x38,0x6C,0xC6,0x00},
{0x00,0x00,0xCC,0xCC,0xCC,0x7C,0x0C,0xF8},
{0x00,0x00,0xFC,0x98,0x30,0x64,0xFC,0x00},
{0x1C,0x30,0x30,0xE0,0x30,0x30,0x1C,0x00},
{0x18,0x18,0x18,0x00,0x18,0x18,0x18,0x00},
{0xE0,0x30,0x30,0x1C,0x30,0x30,0xE0,0x00},
{0x76,0xDC,0x00,0x00,0x00,0x00,0x00,0x00},
{0x00,0x10,0x38,0x6C,0xC6,0xC6,0xFE,0x00}} ;
void g_set ( int x, int y, int color ) ; /* part of SVGA */
void g_string (x0,y0,color,angle,s)
int x0,y0,color,angle ; /* upper left corner of text, color and angle */
char *s ;
{
int i,j,k ;
float sa,ca,x,y ;
k=0 ; x=0.5+x0 ; y=0.5+y0 ; sa=sin(-Pi*angle/180) ; ca=cos(Pi*angle/180) ;
while (s[k])
{
for (i=0;i<8;i++) for (j=0;j<8;j++)
g_set (x+ca*j-sa*i,y+ca*i+sa*j,(font[s[k]][i]&(1<<(7-j)))?color:0) ;
k++ ; x+=ca*8 ; y+=sa*8 ;
}
}