forked from Apple-2-HW/arduino-vga
489 lines
7.2 KiB
C
489 lines
7.2 KiB
C
// Generate Encoded Font Glyph Table
|
|
// Apple II Character Set.
|
|
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
unsigned char glyphs[64][5][3] = {
|
|
// '@'
|
|
{{0,1,0},
|
|
{1,0,1},
|
|
{1,1,1},
|
|
{1,0,0},
|
|
{0,1,1}},
|
|
// 'A'
|
|
{{0,1,0},
|
|
{1,0,1},
|
|
{1,1,1},
|
|
{1,0,1},
|
|
{1,0,1}},
|
|
// 'B'
|
|
{{1,1,0},
|
|
{1,0,1},
|
|
{1,1,0},
|
|
{1,0,1},
|
|
{1,1,0}},
|
|
// 'C'
|
|
{{0,1,0},
|
|
{1,0,1},
|
|
{1,0,0},
|
|
{1,0,1},
|
|
{0,1,0}},
|
|
// 'D'
|
|
{{1,1,0},
|
|
{1,0,1},
|
|
{1,0,1},
|
|
{1,0,1},
|
|
{1,1,0}},
|
|
// 'E'
|
|
{{1,1,1},
|
|
{1,0,0},
|
|
{1,1,0},
|
|
{1,0,0},
|
|
{1,1,1}},
|
|
// 'F'
|
|
{{1,1,1},
|
|
{1,0,0},
|
|
{1,1,0},
|
|
{1,0,0},
|
|
{1,0,0}},
|
|
// 'G'
|
|
{{0,1,1},
|
|
{1,0,0},
|
|
{1,0,1},
|
|
{1,0,1},
|
|
{0,1,0}},
|
|
// 'H'
|
|
{{1,0,1},
|
|
{1,0,1},
|
|
{1,1,1},
|
|
{1,0,1},
|
|
{1,0,1}},
|
|
// 'I'
|
|
{{1,1,1},
|
|
{0,1,0},
|
|
{0,1,0},
|
|
{0,1,0},
|
|
{1,1,1}},
|
|
// 'J'
|
|
{{1,1,1},
|
|
{0,1,0},
|
|
{0,1,0},
|
|
{0,1,0},
|
|
{1,1,0}},
|
|
// 'K'
|
|
{{1,0,1},
|
|
{1,0,1},
|
|
{1,1,0},
|
|
{1,0,1},
|
|
{1,0,1}},
|
|
// 'L'
|
|
{{1,0,0},
|
|
{1,0,0},
|
|
{1,0,0},
|
|
{1,0,0},
|
|
{1,1,1}},
|
|
// 'M'
|
|
{{1,0,1},
|
|
{1,1,1},
|
|
{1,0,1},
|
|
{1,0,1},
|
|
{1,0,1}},
|
|
// 'N'
|
|
{{1,0,1},
|
|
{1,1,1},
|
|
{1,1,1},
|
|
{1,1,1},
|
|
{1,0,1}},
|
|
// 'O'
|
|
{{0,1,0},
|
|
{1,0,1},
|
|
{1,0,1},
|
|
{1,0,1},
|
|
{0,1,0}},
|
|
// 'P'
|
|
{{1,1,0},
|
|
{1,0,1},
|
|
{1,1,0},
|
|
{1,0,0},
|
|
{1,0,0}},
|
|
// 'Q'
|
|
{{0,1,0},
|
|
{1,0,1},
|
|
{1,0,1},
|
|
{0,1,0},
|
|
{0,0,1}},
|
|
// 'R'
|
|
{{1,1,0},
|
|
{1,0,1},
|
|
{1,1,0},
|
|
{1,0,1},
|
|
{1,0,1}},
|
|
// 'S'
|
|
{{0,1,1},
|
|
{1,0,0},
|
|
{0,1,0},
|
|
{0,0,1},
|
|
{1,1,0}},
|
|
// 'T'
|
|
{{1,1,1},
|
|
{0,1,0},
|
|
{0,1,0},
|
|
{0,1,0},
|
|
{0,1,0}},
|
|
// 'U'
|
|
{{1,0,1},
|
|
{1,0,1},
|
|
{1,0,1},
|
|
{1,0,1},
|
|
{0,1,0}},
|
|
// 'V'
|
|
{{1,0,1},
|
|
{1,0,1},
|
|
{1,0,1},
|
|
{0,1,0},
|
|
{0,1,0}},
|
|
// 'W'
|
|
{{1,0,1},
|
|
{1,0,1},
|
|
{1,1,1},
|
|
{1,1,1},
|
|
{0,1,0}},
|
|
// 'X'
|
|
{{1,0,1},
|
|
{1,0,1},
|
|
{0,1,0},
|
|
{1,0,1},
|
|
{1,0,1}},
|
|
// 'Y'
|
|
{{1,0,1},
|
|
{1,0,1},
|
|
{0,1,0},
|
|
{0,1,0},
|
|
{0,1,0}},
|
|
// 'Z'
|
|
{{1,1,1},
|
|
{0,0,1},
|
|
{0,1,0},
|
|
{1,0,0},
|
|
{1,1,1}},
|
|
// '['
|
|
{{0,1,1},
|
|
{0,1,0},
|
|
{0,1,0},
|
|
{0,1,0},
|
|
{0,1,1}},
|
|
// '\'
|
|
{{1,0,0},
|
|
{1,0,0},
|
|
{0,1,0},
|
|
{0,1,0},
|
|
{0,0,1}},
|
|
// ']'
|
|
{{1,1,0},
|
|
{0,1,0},
|
|
{0,1,0},
|
|
{0,1,0},
|
|
{1,1,0}},
|
|
// '^'
|
|
{{0,1,0},
|
|
{1,0,1},
|
|
{0,0,0},
|
|
{0,0,0},
|
|
{0,0,0}},
|
|
// '_'
|
|
{{0,0,0},
|
|
{0,0,0},
|
|
{0,0,0},
|
|
{0,0,0},
|
|
{1,1,1}},
|
|
// ' '
|
|
{{0,0,0},
|
|
{0,0,0},
|
|
{0,0,0},
|
|
{0,0,0},
|
|
{0,0,0}},
|
|
// '!'
|
|
{{0,1,0},
|
|
{0,1,0},
|
|
{0,1,0},
|
|
{0,0,0},
|
|
{0,1,0}},
|
|
// '"'
|
|
{{1,0,1},
|
|
{1,0,1},
|
|
{0,0,0},
|
|
{0,0,0},
|
|
{0,0,0}},
|
|
// '#'
|
|
{{1,0,1},
|
|
{1,1,1},
|
|
{1,0,1},
|
|
{1,1,1},
|
|
{1,0,1}},
|
|
// '$'
|
|
{{0,1,1},
|
|
{1,1,0},
|
|
{1,1,1},
|
|
{0,1,1},
|
|
{1,1,0}},
|
|
// '%'
|
|
{{1,0,1},
|
|
{0,0,1},
|
|
{0,1,0},
|
|
{1,0,0},
|
|
{1,0,1}},
|
|
// '&'
|
|
{{0,1,0},
|
|
{1,0,1},
|
|
{0,1,0},
|
|
{1,0,1},
|
|
{0,1,1}},
|
|
// '\''
|
|
{{0,1,0},
|
|
{0,1,0},
|
|
{0,0,0},
|
|
{0,0,0},
|
|
{0,0,0}},
|
|
// '('
|
|
{{0,0,1},
|
|
{0,1,0},
|
|
{0,1,0},
|
|
{0,1,0},
|
|
{0,0,1}},
|
|
// ')'
|
|
{{1,0,0},
|
|
{0,1,0},
|
|
{0,1,0},
|
|
{0,1,0},
|
|
{1,0,0}},
|
|
// '*'
|
|
{{0,0,0},
|
|
{1,0,1},
|
|
{0,1,0},
|
|
{1,0,1},
|
|
{0,0,0}},
|
|
// '+'
|
|
{{0,0,0},
|
|
{0,1,0},
|
|
{1,1,1},
|
|
{0,1,0},
|
|
{0,0,0}},
|
|
// ''
|
|
{{0,0,0},
|
|
{0,0,0},
|
|
{0,0,0},
|
|
{0,1,0},
|
|
{1,0,0}},
|
|
// '-'
|
|
{{0,0,0},
|
|
{0,0,0},
|
|
{1,1,1},
|
|
{0,0,0},
|
|
{0,0,0}},
|
|
// '.'
|
|
{{0,0,0},
|
|
{0,0,0},
|
|
{0,0,0},
|
|
{0,0,0},
|
|
{0,1,0}},
|
|
// '/'
|
|
{{0,0,1},
|
|
{0,0,1},
|
|
{0,1,0},
|
|
{0,1,0},
|
|
{1,0,0}},
|
|
// '0'
|
|
{{1,1,1},
|
|
{1,0,1},
|
|
{1,0,1},
|
|
{1,0,1},
|
|
{1,1,1}},
|
|
// '1'
|
|
{{0,1,0},
|
|
{1,1,0},
|
|
{0,1,0},
|
|
{0,1,0},
|
|
{1,1,1}},
|
|
// '2'
|
|
{{0,1,0},
|
|
{1,0,1},
|
|
{0,0,1},
|
|
{1,1,0},
|
|
{1,1,1}},
|
|
// '3'
|
|
{{1,1,0},
|
|
{0,0,1},
|
|
{0,1,0},
|
|
{0,0,1},
|
|
{1,1,0}},
|
|
// '4'
|
|
{{1,0,1},
|
|
{1,0,1},
|
|
{1,1,1},
|
|
{0,0,1},
|
|
{0,0,1}},
|
|
// '5'
|
|
{{1,1,1},
|
|
{1,0,0},
|
|
{1,1,1},
|
|
{0,0,1},
|
|
{1,1,0}},
|
|
// '6'
|
|
{{0,1,1},
|
|
{1,0,0},
|
|
{1,1,0},
|
|
{1,0,1},
|
|
{0,1,0}},
|
|
// '7'
|
|
{{1,1,1},
|
|
{0,0,1},
|
|
{0,1,0},
|
|
{1,0,0},
|
|
{1,0,0}},
|
|
// '8'
|
|
{{1,1,1},
|
|
{1,0,1},
|
|
{1,1,1},
|
|
{1,0,1},
|
|
{1,1,1}},
|
|
// '9'
|
|
{{0,1,0},
|
|
{1,0,1},
|
|
{0,1,1},
|
|
{0,0,1},
|
|
{1,1,0}},
|
|
// ':'
|
|
{{0,0,0},
|
|
{0,1,0},
|
|
{0,0,0},
|
|
{0,1,0},
|
|
{0,0,0}},
|
|
// ';'
|
|
{{0,0,0},
|
|
{0,1,0},
|
|
{0,0,0},
|
|
{0,1,0},
|
|
{1,0,0}},
|
|
// '<'
|
|
{{0,0,1},
|
|
{0,1,0},
|
|
{1,0,0},
|
|
{0,1,0},
|
|
{0,0,1}},
|
|
// '='
|
|
{{0,0,0},
|
|
{1,1,1},
|
|
{0,0,0},
|
|
{1,1,1},
|
|
{0,0,0}},
|
|
// '>'
|
|
{{1,0,0},
|
|
{0,1,0},
|
|
{0,0,1},
|
|
{0,1,0},
|
|
{1,0,0}},
|
|
// '?'
|
|
{{0,1,0},
|
|
{1,0,1},
|
|
{0,0,1},
|
|
{0,1,0},
|
|
{0,1,0}}
|
|
};
|
|
|
|
int main() {
|
|
int i;
|
|
unsigned char character;
|
|
|
|
printf("\nROW_GLYPH_1:\n");
|
|
for(i = 0; i < 64; ++i) {
|
|
character = (~((glyphs[i][0][0]<<3) | (glyphs[i][0][1]<<2) | (glyphs[i][0][2]<<1)))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
for(i = 0; i < 64; ++i) {
|
|
character = (~((glyphs[i][0][0]<<3) | (glyphs[i][0][1]<<2) | (glyphs[i][0][2]<<1)))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
for(i = 0; i < 64; ++i) {
|
|
character = (~((glyphs[i][0][0]<<3) | (glyphs[i][0][1]<<2) | (glyphs[i][0][2]<<1)))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
for(i = 0; i < 64; ++i) {
|
|
character = ((glyphs[i][0][0]<<3) | (glyphs[i][0][1]<<2) | (glyphs[i][0][2]<<1))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
|
|
printf("\nROW_GLYPH_2:\n");
|
|
for(i = 0; i < 64; ++i) {
|
|
character = (~((glyphs[i][1][0]<<3) | (glyphs[i][1][1]<<2) | (glyphs[i][1][2]<<1)))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
for(i = 0; i < 64; ++i) {
|
|
character = (~((glyphs[i][1][0]<<3) | (glyphs[i][1][1]<<2) | (glyphs[i][1][2]<<1)))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
for(i = 0; i < 64; ++i) {
|
|
character = (~((glyphs[i][1][0]<<3) | (glyphs[i][1][1]<<2) | (glyphs[i][1][2]<<1)))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
for(i = 0; i < 64; ++i) {
|
|
character = ((glyphs[i][1][0]<<3) | (glyphs[i][1][1]<<2) | (glyphs[i][1][2]<<1))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
|
|
printf("\nROW_GLYPH_3:\n");
|
|
for(i = 0; i < 64; ++i) {
|
|
character = (~((glyphs[i][2][0]<<3) | (glyphs[i][2][1]<<2) | (glyphs[i][2][2]<<1)))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
for(i = 0; i < 64; ++i) {
|
|
character = (~((glyphs[i][2][0]<<3) | (glyphs[i][2][1]<<2) | (glyphs[i][2][2]<<1)))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
for(i = 0; i < 64; ++i) {
|
|
character = (~((glyphs[i][2][0]<<3) | (glyphs[i][2][1]<<2) | (glyphs[i][2][2]<<1)))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
for(i = 0; i < 64; ++i) {
|
|
character = ((glyphs[i][2][0]<<3) | (glyphs[i][2][1]<<2) | (glyphs[i][2][2]<<1))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
|
|
printf("\nROW_GLYPH_4:\n");
|
|
for(i = 0; i < 64; ++i) {
|
|
character = (~((glyphs[i][3][0]<<3) | (glyphs[i][3][1]<<2) | (glyphs[i][3][2]<<1)))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
for(i = 0; i < 64; ++i) {
|
|
character = (~((glyphs[i][3][0]<<3) | (glyphs[i][3][1]<<2) | (glyphs[i][3][2]<<1)))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
for(i = 0; i < 64; ++i) {
|
|
character = (~((glyphs[i][3][0]<<3) | (glyphs[i][3][1]<<2) | (glyphs[i][3][2]<<1)))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
for(i = 0; i < 64; ++i) {
|
|
character = ((glyphs[i][3][0]<<3) | (glyphs[i][3][1]<<2) | (glyphs[i][3][2]<<1))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
|
|
printf("\nROW_GLYPH_5:\n");
|
|
for(i = 0; i < 64; ++i) {
|
|
character = (~((glyphs[i][4][0]<<3) | (glyphs[i][4][1]<<2) | (glyphs[i][4][2]<<1)))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
for(i = 0; i < 64; ++i) {
|
|
character = (~((glyphs[i][4][0]<<3) | (glyphs[i][4][1]<<2) | (glyphs[i][4][2]<<1)))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
for(i = 0; i < 64; ++i) {
|
|
character = (~((glyphs[i][4][0]<<3) | (glyphs[i][4][1]<<2) | (glyphs[i][4][2]<<1)))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
for(i = 0; i < 64; ++i) {
|
|
character = ((glyphs[i][4][0]<<3) | (glyphs[i][4][1]<<2) | (glyphs[i][4][2]<<1))&0xF;
|
|
printf(".byte 0x%02x\n", character);
|
|
}
|
|
|
|
return 0;
|
|
} |