mirror of
https://github.com/mist-devel/mist-firmware.git
synced 2026-01-31 13:32:25 +00:00
128 lines
5.9 KiB
C
128 lines
5.9 KiB
C
/* boot_print.c */
|
|
/* 2012, rok.krajnc@gmail.com */
|
|
|
|
#include "fpga.h"
|
|
#include "string.h"
|
|
|
|
|
|
unsigned short bcurx;
|
|
unsigned short bcury;
|
|
|
|
static const char boot_font [96][8] = {
|
|
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // SPACE
|
|
{0x18, 0x18, 0x18, 0x18, 0x18, 0x00, 0x18, 0x00}, // !
|
|
{0x6C, 0x6C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // "
|
|
{0x6C, 0x6C, 0xFE, 0x6C, 0xFE, 0x6C, 0x6C, 0x00}, // #
|
|
{0x18, 0x3E, 0x60, 0x3C, 0x06, 0x7C, 0x18, 0x00}, // $
|
|
{0x00, 0x66, 0xAC, 0xD8, 0x36, 0x6A, 0xCC, 0x00}, // %
|
|
{0x38, 0x6C, 0x68, 0x76, 0xDC, 0xCE, 0x7B, 0x00}, // &
|
|
{0x18, 0x18, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00}, // '
|
|
{0x0C, 0x18, 0x30, 0x30, 0x30, 0x18, 0x0C, 0x00}, // (
|
|
{0x30, 0x18, 0x0C, 0x0C, 0x0C, 0x18, 0x30, 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}, // .
|
|
{0x03, 0x06, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0x00}, // /
|
|
{0x3C, 0x66, 0x6E, 0x7E, 0x76, 0x66, 0x3C, 0x00}, // 0
|
|
{0x18, 0x38, 0x78, 0x18, 0x18, 0x18, 0x18, 0x00}, // 1
|
|
{0x3C, 0x66, 0x06, 0x0C, 0x18, 0x30, 0x7E, 0x00}, // 2
|
|
{0x3C, 0x66, 0x06, 0x1C, 0x06, 0x66, 0x3C, 0x00}, // 3
|
|
{0x1C, 0x3C, 0x6C, 0xCC, 0xFE, 0x0C, 0x0C, 0x00}, // 4
|
|
{0x7E, 0x60, 0x7C, 0x06, 0x06, 0x66, 0x3C, 0x00}, // 5
|
|
{0x1C, 0x30, 0x60, 0x7C, 0x66, 0x66, 0x3C, 0x00}, // 6
|
|
{0x7E, 0x06, 0x06, 0x0C, 0x18, 0x18, 0x18, 0x00}, // 7
|
|
{0x3C, 0x66, 0x66, 0x3C, 0x66, 0x66, 0x3C, 0x00}, // 8
|
|
{0x3C, 0x66, 0x66, 0x3E, 0x06, 0x0C, 0x38, 0x00}, // 9
|
|
{0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x00}, // :
|
|
{0x00, 0x18, 0x18, 0x00, 0x00, 0x18, 0x18, 0x30}, // ;
|
|
{0x00, 0x06, 0x18, 0x60, 0x18, 0x06, 0x00, 0x00}, // <
|
|
{0x00, 0x00, 0x7E, 0x00, 0x7E, 0x00, 0x00, 0x00}, // =
|
|
{0x00, 0x60, 0x18, 0x06, 0x18, 0x60, 0x00, 0x00}, // >
|
|
{0x3C, 0x66, 0x06, 0x0C, 0x18, 0x00, 0x18, 0x00}, // ?
|
|
{0x7C, 0xC6, 0xDE, 0xD6, 0xDE, 0xC0, 0x78, 0x00}, // @
|
|
{0x3C, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00}, // A
|
|
{0x7C, 0x66, 0x66, 0x7C, 0x66, 0x66, 0x7C, 0x00}, // B
|
|
{0x1E, 0x30, 0x60, 0x60, 0x60, 0x30, 0x1E, 0x00}, // C
|
|
{0x78, 0x6C, 0x66, 0x66, 0x66, 0x6C, 0x78, 0x00}, // D
|
|
{0x7E, 0x60, 0x60, 0x78, 0x60, 0x60, 0x7E, 0x00}, // E
|
|
{0x7E, 0x60, 0x60, 0x78, 0x60, 0x60, 0x60, 0x00}, // F
|
|
{0x3C, 0x66, 0x60, 0x6E, 0x66, 0x66, 0x3E, 0x00}, // G
|
|
{0x66, 0x66, 0x66, 0x7E, 0x66, 0x66, 0x66, 0x00}, // H
|
|
{0x3C, 0x18, 0x18, 0x18, 0x18, 0x18, 0x3C, 0x00}, // I
|
|
{0x06, 0x06, 0x06, 0x06, 0x06, 0x66, 0x3C, 0x00}, // J
|
|
{0xC6, 0xCC, 0xD8, 0xF0, 0xD8, 0xCC, 0xC6, 0x00}, // K
|
|
{0x60, 0x60, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x00}, // L
|
|
{0xC6, 0xEE, 0xFE, 0xD6, 0xC6, 0xC6, 0xC6, 0x00}, // M
|
|
{0xC6, 0xE6, 0xF6, 0xDE, 0xCE, 0xC6, 0xC6, 0x00}, // N
|
|
{0x3C, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00}, // O
|
|
{0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60, 0x60, 0x00}, // P
|
|
{0x78, 0xCC, 0xCC, 0xCC, 0xCC, 0xDC, 0x7E, 0x00}, // Q
|
|
{0x7C, 0x66, 0x66, 0x7C, 0x6C, 0x66, 0x66, 0x00}, // R
|
|
{0x3C, 0x66, 0x70, 0x3C, 0x0E, 0x66, 0x3C, 0x00}, // S
|
|
{0x7E, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00}, // T
|
|
{0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x3C, 0x00}, // U
|
|
{0x66, 0x66, 0x66, 0x66, 0x3C, 0x3C, 0x18, 0x00}, // V
|
|
{0xC6, 0xC6, 0xC6, 0xD6, 0xFE, 0xEE, 0xC6, 0x00}, // W
|
|
{0xC3, 0x66, 0x3C, 0x18, 0x3C, 0x66, 0xC3, 0x00}, // X
|
|
{0xC3, 0x66, 0x3C, 0x18, 0x18, 0x18, 0x18, 0x00}, // Y
|
|
{0xFE, 0x0C, 0x18, 0x30, 0x60, 0xC0, 0xFE, 0x00}, // Z
|
|
{0x3C, 0x30, 0x30, 0x30, 0x30, 0x30, 0x3C, 0x00}, // [
|
|
{0xC0, 0x60, 0x30, 0x18, 0x0C, 0x06, 0x03, 0x00}, // Backslash
|
|
{0x3C, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x3C, 0x00}, // ]
|
|
{0x10, 0x38, 0x6C, 0xC6, 0x00, 0x00, 0x00, 0x00}, // ^
|
|
{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE}, // _
|
|
{0x18, 0x18, 0x0C, 0x00, 0x00, 0x00, 0x00, 0x00}, // `
|
|
{0x00, 0x00, 0x3C, 0x06, 0x3E, 0x66, 0x3E, 0x00}, // a
|
|
{0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x7C, 0x00}, // b
|
|
{0x00, 0x00, 0x3C, 0x60, 0x60, 0x60, 0x3C, 0x00}, // c
|
|
{0x06, 0x06, 0x3E, 0x66, 0x66, 0x66, 0x3E, 0x00}, // d
|
|
{0x00, 0x00, 0x3C, 0x66, 0x7E, 0x60, 0x3C, 0x00}, // e
|
|
{0x1C, 0x30, 0x7C, 0x30, 0x30, 0x30, 0x30, 0x00}, // f
|
|
{0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x3C}, // g
|
|
{0x60, 0x60, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x00}, // h
|
|
{0x18, 0x00, 0x18, 0x18, 0x18, 0x18, 0x0C, 0x00}, // i
|
|
{0x0C, 0x00, 0x0C, 0x0C, 0x0C, 0x0C, 0x0C, 0x78}, // j
|
|
{0x60, 0x60, 0x66, 0x6C, 0x78, 0x6C, 0x66, 0x00}, // k
|
|
{0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x0C, 0x00}, // l
|
|
{0x00, 0x00, 0xEC, 0xFE, 0xD6, 0xC6, 0xC6, 0x00}, // m
|
|
{0x00, 0x00, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x00}, // n
|
|
{0x00, 0x00, 0x3C, 0x66, 0x66, 0x66, 0x3C, 0x00}, // o
|
|
{0x00, 0x00, 0x7C, 0x66, 0x66, 0x7C, 0x60, 0x60}, // p
|
|
{0x00, 0x00, 0x3E, 0x66, 0x66, 0x3E, 0x06, 0x06}, // q
|
|
{0x00, 0x00, 0x7C, 0x66, 0x60, 0x60, 0x60, 0x00}, // r
|
|
{0x00, 0x00, 0x3C, 0x60, 0x3C, 0x06, 0x7C, 0x00}, // s
|
|
{0x30, 0x30, 0x7C, 0x30, 0x30, 0x30, 0x1C, 0x00}, // t
|
|
{0x00, 0x00, 0x66, 0x66, 0x66, 0x66, 0x3E, 0x00}, // u
|
|
{0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x00}, // v
|
|
{0x00, 0x00, 0xC6, 0xC6, 0xD6, 0xFE, 0x6C, 0x00}, // w
|
|
{0x00, 0x00, 0xC6, 0x6C, 0x38, 0x6C, 0xC6, 0x00}, // x
|
|
{0x00, 0x00, 0x66, 0x66, 0x66, 0x3C, 0x18, 0x30}, // y
|
|
{0x00, 0x00, 0x7E, 0x0C, 0x18, 0x30, 0x7E, 0x00}, // z
|
|
{0x0E, 0x18, 0x18, 0x70, 0x18, 0x18, 0x0E, 0x00}, // {
|
|
{0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x00}, // |
|
|
{0x70, 0x18, 0x18, 0x0E, 0x18, 0x18, 0x70, 0x00}, // }
|
|
{0x72, 0x9C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // ~
|
|
{0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0xFE, 0x00} //
|
|
};
|
|
|
|
|
|
void BootPrintEx(char * str)
|
|
{
|
|
char buf[80];
|
|
unsigned char i,j;
|
|
unsigned char len;
|
|
|
|
len = strlen(str);
|
|
len = (len>80) ? 80 : len;
|
|
|
|
for(j=0; j<8; j++) {
|
|
for(i=0; i<len; i++) {
|
|
buf[i] = boot_font[str[i]-32][j];
|
|
}
|
|
BootDraw(buf, len, bcury+=640/8);
|
|
}
|
|
}
|
|
|