From faeb1a4f7b6ea347581ee84f0522201a9465d78e Mon Sep 17 00:00:00 2001 From: Gyorgy Szombathelyi Date: Sat, 15 May 2021 19:47:18 +0200 Subject: [PATCH] boot.c: use the global font --- boot.c | 115 ++++----------------------------------------------------- font.c | 8 ++++ font.h | 1 + tos.c | 16 ++------ 4 files changed, 19 insertions(+), 121 deletions(-) diff --git a/boot.c b/boot.c index 8e8b878..e0a1cf2 100644 --- a/boot.c +++ b/boot.c @@ -10,6 +10,7 @@ #include "osd.h" #include "spi.h" #include "fat_compat.h" +#include "font.h" // TODO! #define SPIN() asm volatile ( "mov r0, r0\n\t" \ @@ -47,107 +48,6 @@ void BootHome() { bootscreen_adr = 0x80000 + /*120*/112*640/8; } -//// boot font //// -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} // -}; - - //// BootEnableMem() //// void BootEnableMem() { @@ -425,28 +325,27 @@ void BootInit() //} } - //// BootPrint() //// void BootPrintEx(char * str) { char buf[2]; unsigned char i,j; unsigned char len; - + iprintf(str); iprintf("\r"); - + len = strlen(str); len = (len>80) ? 80 : len; - + for(j=0; j<8; j++) { mem_upload_init(bootscreen_adr); for(i=0; i>row) & 0x01)<>l) & 0x01)<>1); - while(f < buffer+c) *f++ = tos_writechar(' ', l>>1); + while(*p) *f++ = char_row(*p++, l>>1); + while(f < buffer+c) *f++ = char_row(' ', l>>1); mist_memory_set_address(VIDEO_BASE_ADDRESS + 80*(y+l), 1, 0); mist_memory_write(buffer, c/2);