diff --git a/src/cp437.bmp b/src/cp437.bmp new file mode 100644 index 0000000..73981a9 Binary files /dev/null and b/src/cp437.bmp differ diff --git a/src/utils/bmp2font.c b/src/utils/bmp2font.c new file mode 100644 index 0000000..d9a2066 --- /dev/null +++ b/src/utils/bmp2font.c @@ -0,0 +1,45 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +FILE* in; +FILE* out; +void *addr; + +void copyline(int c) { + uint8_t *ptr = addr + 0x82 + (128/8)*(127 - c); + int i; + for (i=0; i<16; i++) { + fputc(*ptr++, out); + } +} + +int main(int argc, char** argv) { + struct stat sbuf; + + in = fopen(argv[1], "r+"); + out = fopen(argv[2], "w"); + + fstat(fileno(in), &sbuf); + + if (sbuf.st_size != 2178) { + printf("File must be a 128x128 pixel 1 bit monochrome bmp\n"); + exit(1); + } + + addr = mmap(NULL, sbuf.st_size, PROT_READ | PROT_WRITE, MAP_SHARED, fileno(in), 0); + + int i, j; + for(j=0; j<8; j++) { + for(i=0; i<16; i++) { + copyline(j+i*8); + } + } +}