text/plain
•
8.68 KB
•
273 lines
#include "moon.h"
uint8_t font8[]={
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x3c,0x3c,0x18,0x18,0x0,0x18,0x18,
0x0,0x24,0x24,0x0,0x0,0x0,0x0,0x0,
0x0,0x24,0x24,0x7e,0x24,0x7e,0x24,0x24,
0x0,0x8,0x3c,0xa,0x1c,0x28,0x1e,0x8,
0x0,0x20,0x12,0x15,0xa,0x28,0x54,0x24,
0x0,0x8,0x14,0x4,0xc,0x52,0x22,0x5c,
0x0,0x8,0x8,0x0,0x0,0x0,0x0,0x0,
0x0,0x10,0x8,0x4,0x4,0x4,0x8,0x10,
0x0,0x4,0x8,0x10,0x10,0x10,0x8,0x4,
0x0,0x0,0x8,0x6b,0x1c,0x1c,0x6b,0x8,
0x0,0x0,0x8,0x8,0x3e,0x8,0x8,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x8,0x4,
0x0,0x0,0x0,0x0,0x3e,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0xc,0xc,
0x0,0x20,0x10,0x10,0x8,0x8,0x4,0x4,
0x0,0xe,0x11,0x19,0x15,0x13,0x11,0xe,
0x0,0x8,0xc,0x8,0x8,0x8,0x8,0x1c,
0x0,0x1c,0x22,0x20,0x10,0x8,0x4,0x3e,
0x0,0x1e,0x20,0x20,0x18,0x20,0x20,0x1e,
0x0,0x10,0x18,0x14,0x12,0x3e,0x10,0x10,
0x0,0x3e,0x2,0x2,0x1e,0x20,0x22,0x1c,
0x0,0x1c,0x22,0x2,0x1e,0x22,0x22,0x1c,
0x0,0x3e,0x20,0x20,0x10,0x10,0x8,0x8,
0x0,0x1c,0x22,0x22,0x1c,0x22,0x22,0x1c,
0x0,0x1c,0x22,0x22,0x3c,0x20,0x22,0x1c,
0x0,0x0,0x0,0xc,0xc,0x0,0xc,0xc,
0x0,0x0,0x0,0xc,0xc,0x0,0x8,0x4,
0x0,0x0,0x0,0x8,0x4,0x2,0x4,0x8,
0x0,0x0,0x0,0x0,0x1e,0x0,0x1e,0x0,
0x0,0x0,0x0,0x4,0x8,0x10,0x8,0x4,
0x0,0x1c,0x22,0x20,0x18,0x4,0x0,0x4,
0x0,0x1c,0x22,0x39,0x25,0x3d,0x1,0x3e,
0x0,0xc,0x12,0x12,0x1e,0x21,0x21,0x21,
0x0,0x1e,0x22,0x22,0x1e,0x22,0x22,0x1e,
0x0,0x3c,0x2,0x2,0x2,0x2,0x2,0x3c,
0x0,0xe,0x12,0x12,0x12,0x12,0x12,0xe,
0x0,0x1e,0x2,0x2,0xe,0x2,0x2,0x1e,
0x0,0x1e,0x2,0x2,0xe,0x2,0x2,0x2,
0x0,0x3c,0x2,0x2,0x3a,0x22,0x22,0x1c,
0x0,0x12,0x12,0x12,0x1e,0x12,0x12,0x12,
0x0,0x1c,0x8,0x8,0x8,0x8,0x8,0x1c,
0x0,0x3e,0x20,0x20,0x20,0x20,0x22,0x1c,
0x0,0x22,0x12,0xa,0x6,0xa,0x12,0x22,
0x0,0x2,0x2,0x2,0x2,0x2,0x2,0x3e,
0x0,0x22,0x36,0x2a,0x22,0x22,0x22,0x22,
0x0,0x22,0x26,0x2a,0x2a,0x2a,0x32,0x22,
0x0,0x1c,0x22,0x22,0x22,0x22,0x22,0x1c,
0x0,0xe,0x12,0x12,0xe,0x2,0x2,0x2,
0x0,0x1c,0x22,0x22,0x22,0x32,0x22,0x5c,
0x0,0xe,0x12,0x12,0xe,0x6,0xa,0x12,
0x0,0x1c,0x2,0x2,0xc,0x10,0x10,0xe,
0x0,0x3e,0x8,0x8,0x8,0x8,0x8,0x8,
0x0,0x22,0x22,0x22,0x22,0x22,0x22,0x1c,
0x0,0x41,0x41,0x22,0x22,0x14,0x14,0x8,
0x0,0x22,0x22,0x22,0x22,0x2a,0x36,0x22,
0x0,0x42,0x42,0x24,0x18,0x24,0x42,0x42,
0x0,0x22,0x14,0x8,0x8,0x8,0x8,0x8,
0x0,0x3f,0x20,0x10,0x8,0x4,0x2,0x3f,
0x0,0x1c,0x4,0x4,0x4,0x4,0x4,0x1c,
0x0,0x4,0x8,0x8,0x10,0x10,0x20,0x20,
0x0,0x1c,0x10,0x10,0x10,0x10,0x10,0x1c,
0x0,0x8,0x14,0x22,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,
0x0,0x4,0x8,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x1c,0x20,0x3c,0x22,0x3c,
0x0,0x0,0x2,0x2,0x2,0xe,0x12,0xe,
0x0,0x0,0x0,0x1c,0x2,0x2,0x2,0x1c,
0x0,0x0,0x10,0x10,0x10,0x1c,0x12,0x1c,
0x0,0x0,0x0,0x1c,0x22,0x3e,0x2,0x3c,
0x0,0x0,0x8,0x14,0x4,0xe,0x4,0x4,
0x0,0x0,0x0,0x38,0x24,0x38,0x20,0x1c,
0x0,0x0,0x2,0x2,0x2,0xe,0xa,0xa,
0x0,0x0,0x0,0x4,0x0,0x4,0x4,0x4,
0x0,0x0,0x0,0x8,0x0,0x8,0xa,0x4,
0x0,0x0,0x0,0x2,0xa,0x6,0xa,0xa,
0x0,0x0,0x0,0x4,0x4,0x4,0x4,0x4,
0x0,0x0,0x0,0x0,0x1e,0x2a,0x2a,0x2a,
0x0,0x0,0x0,0x0,0xc,0x14,0x14,0x14,
0x0,0x0,0x0,0x0,0xc,0x12,0x12,0xc,
0x0,0x0,0x0,0xe,0x12,0xe,0x2,0x2,
0x0,0x0,0x0,0x1c,0x12,0x1c,0x10,0x10,
0x0,0x0,0x0,0x0,0xa,0x16,0x2,0x2,
0x0,0x0,0x0,0x1c,0x2,0xc,0x10,0xe,
0x0,0x0,0x0,0x4,0xe,0x4,0x4,0xc,
0x0,0x0,0x0,0x0,0x12,0x12,0x12,0x1c,
0x0,0x0,0x0,0x0,0x22,0x22,0x14,0x8,
0x0,0x0,0x0,0x0,0x22,0x2a,0x2a,0x14,
0x0,0x0,0x0,0x22,0x14,0x8,0x14,0x22,
0x0,0x0,0x0,0x44,0x28,0x10,0x8,0x4,
0x0,0x0,0x0,0x3e,0x10,0x8,0x4,0x3e,
0x0,0x18,0x4,0x4,0x2,0x4,0x4,0x18,
0x0,0x8,0x8,0x8,0x0,0x8,0x8,0x8,
0x0,0xc,0x10,0x10,0x20,0x10,0x10,0xc,
0x0,0x0,0x0,0x4,0x2a,0x10,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x20,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0
};
void blit_char8(uint32_t *buf, int buf_width, unsigned char c, uint32_t fgc, uint32_t bgc) {
const uint8_t *glyph = &font8[((int)c)*8];
for(int y=0;y<8;y++){
uint32_t *line = buf + y * buf_width;
uint8_t data = glyph[y];
for(int x=0;x<8;x++){
if (data&1) {
*line = fgc;
} else if (bgc) {
*line = bgc;
}
line++;
data = data >> 1;
}
}
}
void puts8(uint32_t *buf, int buf_width, const char *s, uint32_t fgc, uint32_t bgc) {
unsigned char c = *s;
int x=0;
while (c) {
uint32_t *cBuf = &buf[x*8];
blit_char8(cBuf, buf_width, c, fgc, bgc);
s++;
x++;
c = *s;
}
}