c2d/text2page.c

61 lines
1.2 KiB
C
Raw Normal View History

2017-04-09 02:58:11 +00:00
#include <stdio.h>
unsigned char holes[] = {
0x37,0xff,0x00,0x00,0xff,0xff,0x00,0x00,
0xff,0xff,0x00,0xff,0xff,0xff,0x00,0x00,
0xff,0xff,0x00,0xff,0xff,0xff,0x00,0x00,
0xff,0xff,0x00,0x17,0xff,0xff,0x00,0x00,
0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,
0xff,0xff,0x00,0x00,0xff,0xff,0x00,0x00,
0xff,0xff,0x00,0xd0,0xff,0xff,0x00,0x00,
0xc6,0xff,0x00,0x07,0xff,0xff,0x00,0x00
};
int main()
{
char c, highbit = 0x80;
2017-04-09 20:47:26 +00:00
int i, j, k, column = 0, line = 0, linemap[24];
2017-04-09 02:58:11 +00:00
unsigned char screen[24][40];
// build table
for(j=0,i=0;i<8;i++) {
linemap[ 0 + j]=0+3*j;
linemap[ 8 + j]=1+3*j;
linemap[16 + j]=2+3*j;
j++;
}
// clear screen
for(i=0;i<24;i++)
for(j=0;j<40;j++)
screen[linemap[i]][j] = ' ' | highbit;
while((c = getchar()) != EOF) {
if(c == '\r') // windows trash
continue;
if(c == '\n') { // end of line
2017-04-09 20:47:26 +00:00
column=0;
line++;
2017-04-09 02:58:11 +00:00
continue;
}
if(column > 39) // user didn't read the docs
continue;
if(line > 23) // ditto
break;
2017-04-09 02:58:11 +00:00
2017-04-09 20:47:26 +00:00
screen[linemap[line]][column] = c | highbit;
column++;
2017-04-09 02:58:11 +00:00
}
// dump to stdout
for(i=0;i<24;i++) {
for(j=0;j<40;j++)
putchar(screen[i][j]);
if((i + 1) % 3 == 0)
for(k=0;k<8;k++)
putchar(holes[(i/3)*8+k]);
}
return 0;
}