diff --git a/Kernel/dev/devsd.h b/Kernel/dev/devsd.h index 4cc9df7a8..2ea26cb6a 100644 --- a/Kernel/dev/devsd.h +++ b/Kernel/dev/devsd.h @@ -48,6 +48,9 @@ uint_fast8_t sd_spi_receive_byte(void); bool sd_spi_receive_sector(void); bool sd_spi_transmit_sector(void); +void lock_mutex(); +void unlock_mutex(); + uint_fast8_t sd_spi_try_release(void); /* for platforms which support multiple SD cards */ diff --git a/Kernel/platform/platform-rpipico/CMakeLists.txt b/Kernel/platform/platform-rpipico/CMakeLists.txt index 0081014c4..aeaaa7a2d 100644 --- a/Kernel/platform/platform-rpipico/CMakeLists.txt +++ b/Kernel/platform/platform-rpipico/CMakeLists.txt @@ -1,5 +1,12 @@ cmake_minimum_required(VERSION 3.12) +##PICO_BOARD pico PICO_PLATFORM=rp2040 +set(PICO_BAORD pico) +set(PICO_PLATFORM rp2040) + +#set(PICO_BOARD pico2) +#set(PICO_PLATFORM rp2350-arm-s) + # Pull in SDK (must be before project) include(pico_sdk_import.cmake) @@ -28,6 +35,8 @@ add_executable(fuzix devices.c devflash.c devsdspi.c + lcdspi.c + i2ckbd.c devtty.c elf.c main.c @@ -81,6 +90,7 @@ target_link_libraries(fuzix pico_multicore hardware_flash hardware_spi + hardware_i2c tinyusb_device ) diff --git a/Kernel/platform/platform-rpipico/config.h b/Kernel/platform/platform-rpipico/config.h index e7260099d..7328df2f7 100644 --- a/Kernel/platform/platform-rpipico/config.h +++ b/Kernel/platform/platform-rpipico/config.h @@ -9,10 +9,15 @@ * RX GPIO 12 * CS GPIO 13 * CONFIG_MAKER_PI - * SCK GPIO 10 - * TX GPIO 11 - * RX GPIO 12 - * CS GPIO 15 + * SCK GPIO 10 + * TX GPIO 11 + * RX GPIO 12 + * CS GPIO 15 + * CONFIG_PICOCALC + * SCK GPIO 18 + * TX GPIO 19 + * RX GPIO 16 + * CS GPIO 17 * If Undefined * SCK GPIO 2 * TX GPIO 3 @@ -20,8 +25,8 @@ * CS GPIO 5 */ -#define CONFIG_RC2040 - +//#define CONFIG_RC2040 +#define CONFIG_PICOCALC /* We have a GPIO interface */ #define CONFIG_DEV_GPIO /* Enable to make ^Z dump the inode table for debug */ @@ -65,7 +70,7 @@ #undef CONFIG_FONT8X8 /* Built in NAND flash. Warning, it's unstable. */ -#define CONFIG_PICO_FLASH +//#define CONFIG_PICO_FLASH /* Program layout */ @@ -124,7 +129,8 @@ extern uint8_t progbase[USERMEM]; #define DEV_UART_1_CTS_PIN 8 #define DEV_UART_1_RTS_PIN 9 #define NUM_DEV_TTY_USB 4 /* min 1 max 4. */ -#define NUM_DEV_TTY (NUM_DEV_TTY_UART + NUM_DEV_TTY_USB) +#define NUM_DEV_TTY_LCD 1 +#define NUM_DEV_TTY (NUM_DEV_TTY_UART + NUM_DEV_TTY_USB + NUM_DEV_TTY_LCD) #define DEV_USB_DETECT_TIMEOUT 5000 /* (ms) Total timeout time to detect USB host connection*/ #define DEV_USB_INIT_TIMEOUT 2000 /* (ms) Total timeout to try not swallow messages */ @@ -140,10 +146,15 @@ extern uint8_t progbase[USERMEM]; #define swap_map(x) ((uint8_t*)(x)) /* Prevent name clashes wish the Pico SDK */ +#define BOOTDEVICENAMES "hd#" + +#define BOOTDEVICE 2 #define MANGLED 1 #include "mangle.h" +#define DEBUG + #endif // vim: sw=4 ts=4 et diff --git a/Kernel/platform/platform-rpipico/devices.c b/Kernel/platform/platform-rpipico/devices.c index 569b99a14..2efa066eb 100644 --- a/Kernel/platform/platform-rpipico/devices.c +++ b/Kernel/platform/platform-rpipico/devices.c @@ -10,6 +10,8 @@ #include "globals.h" #include "picosdk.h" #include +#include +#include #include "core1.h" struct devsw dev_tab[] = /* The device driver switch table */ @@ -85,6 +87,7 @@ void device_init(void) #endif sd_rawinit(); devsd_init(); + } /* vim: sw=4 ts=4 et: */ diff --git a/Kernel/platform/platform-rpipico/devsdspi.c b/Kernel/platform/platform-rpipico/devsdspi.c index e1b7d7c7a..a687bbba1 100644 --- a/Kernel/platform/platform-rpipico/devsdspi.c +++ b/Kernel/platform/platform-rpipico/devsdspi.c @@ -9,10 +9,10 @@ #include "picosdk.h" #include "globals.h" #include "config.h" +#include "lcdspi.h" #include #ifdef CONFIG_RC2040 - /* RC2040 board */ /* Pico SPI GPIO connected to SD SPI1 */ #define Pico_SD_SCK 14 @@ -33,15 +33,24 @@ #define Pico_SD_SPI_MOD spi1 +#elif defined(CONFIG_PICOCALC) +//#define SD_USE_PIO 1 +//picocalc +#ifdef SD_USE_PIO + +#define Pico_SD_SCK 2// +#define Pico_SD_TX 3 // MOSI +#define Pico_SD_RX 20 // MISO +#define Pico_SD_CS 6 // SD_CS + #else -/* Pico SPI GPIO connected to SD SPIO - David Given's Arrangement */ -#define Pico_SD_SCK 2 -#define Pico_SD_TX 3 -#define Pico_SD_RX 4 -#define Pico_SD_CS 5 +#define Pico_SD_SCK 18 // +#define Pico_SD_TX 19 // MOSI +#define Pico_SD_RX 16 // MISO +#define Pico_SD_CS 17 // SD_CS -//Pico spi0 or spi1 must match GPIO pins used above. +#endif #define Pico_SD_SPI_MOD spi0 #endif @@ -51,6 +60,8 @@ void sd_rawinit(void) { + + //initilase GPIO ports gpio_init(Pico_SD_SCK ); gpio_init(Pico_SD_TX); @@ -68,6 +79,8 @@ void sd_rawinit(void) spi_init(Pico_SD_SPI_MOD, SLOW_SPEED); spi_set_format(Pico_SD_SPI_MOD, 8, 0, 0, SPI_MSB_FIRST); + + } void sd_spi_clock(bool go_fast) @@ -79,22 +92,29 @@ void sd_spi_clock(bool go_fast) void sd_spi_raise_cs(void) { gpio_put(Pico_SD_CS, true); + //nop;nop;nop;nop;nop; + //HW1SwapSPI(0xFF); + } void sd_spi_lower_cs(void) { gpio_put(Pico_SD_CS, false); + } void sd_spi_transmit_byte(uint_fast8_t b) { spi_write_blocking(Pico_SD_SPI_MOD, (uint8_t*) &b, 1); + } uint_fast8_t sd_spi_receive_byte(void) { uint8_t b; + spi_read_blocking(Pico_SD_SPI_MOD, 0xff, (uint8_t*) &b, 1); + return b; } diff --git a/Kernel/platform/platform-rpipico/devtty.c b/Kernel/platform/platform-rpipico/devtty.c index d816db50c..315d1e077 100644 --- a/Kernel/platform/platform-rpipico/devtty.c +++ b/Kernel/platform/platform-rpipico/devtty.c @@ -9,6 +9,8 @@ #include #include "core1.h" #include "devtty.h" +#include "lcdspi.h" +#include "i2ckbd.h" uint8_t ttybuf[TTYSIZ * NUM_DEV_TTY]; @@ -24,10 +26,11 @@ void no_setup(uint_fast8_t minor, uint_fast8_t devn, uint_fast8_t flags) used(flags); } -struct ttydriver ttydrivers[2] = - { - {rawuart_putc, rawuart_ready, rawuart_sleeping, rawuart_getc, rawuart_setup}, - {usbconsole_putc, usbconsole_ready, usbconsole_sleeping, usbconsole_getc, no_setup}, +struct ttydriver ttydrivers[3] = +{ + { rawuart_putc, rawuart_ready, rawuart_sleeping, rawuart_getc, rawuart_setup }, + { usbconsole_putc, usbconsole_ready, usbconsole_sleeping, usbconsole_getc, no_setup }, + {lcd_putc,lcd_ready,lcd_sleeping,lcd_getc,no_setup}, }; static void devtty_defconfig(uint8_t drv, int count, int minor) @@ -52,6 +55,9 @@ static void devtty_defconfig(uint8_t drv, int count, int minor) /* To be called right after startup to be able to print boot messages */ void devtty_early_init(void) { + init_i2c_kbd(); + lcd_init();// init spi lcd + lcd_clear(); rawuart_early_init(); core1_init(); devtty_init(); @@ -99,9 +105,9 @@ void devtty_init(void) } else { - devtty_defconfig(TTYDRV_UART, NUM_DEV_TTY_UART, 1); - devtty_defconfig(TTYDRV_USB, NUM_DEV_TTY_USB, 1 + NUM_DEV_TTY_UART); - kprintf("devtty: %s as default tty\n", "uart"); + devtty_defconfig(TTYDRV_UART, NUM_DEV_TTY_UART, 2); + devtty_defconfig(TTYDRV_LCD, NUM_DEV_TTY_LCD, 1); + kprintf("devtty: %s as default tty\n", "lcd"); } ttymap_count = NUM_DEV_TTY; } @@ -113,8 +119,9 @@ void kputchar(uint_fast8_t c) /* If tty's were not properly initialized */ if (ttymap_count == 0) { - if (c == '\n') + if (c == '\n') { rawuart_putc(1, '\r'); + } rawuart_putc(1, c); } else @@ -132,6 +139,7 @@ void kputchar(uint_fast8_t c) tight_loop_contents(); } tty_putc(1, c); + } } diff --git a/Kernel/platform/platform-rpipico/devtty.h b/Kernel/platform/platform-rpipico/devtty.h index 5dd94c5a4..95674d271 100644 --- a/Kernel/platform/platform-rpipico/devtty.h +++ b/Kernel/platform/platform-rpipico/devtty.h @@ -21,6 +21,7 @@ struct ttymap #define TTYDRV_UART 0 #define TTYDRV_USB 1 +#define TTYDRV_LCD 2 extern int ttymap_count; extern struct ttymap ttymap[NUM_DEV_TTY+1]; diff --git a/Kernel/platform/platform-rpipico/fonts/ArialNumFontPlus.h b/Kernel/platform/platform-rpipico/fonts/ArialNumFontPlus.h new file mode 100644 index 000000000..979c3f48e --- /dev/null +++ b/Kernel/platform/platform-rpipico/fonts/ArialNumFontPlus.h @@ -0,0 +1,22 @@ +// ArialNumFontPlus.c +// Font type : Special (SubSet) +// Font size : 32x50 pixels +// Memory usage : 2204 bytes + + #define PROGMEM + #define fontdatatype const unsigned char + +fontdatatype ArialNumFontPlus[2204] PROGMEM={ +0x20,0x32,0x30,0x0B, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x00,0x00,0x1F,0xF8,0x00,0x00,0x7F,0xFE,0x00,0x00,0xFF,0xFF,0x00,0x01,0xFF,0xFF,0x00,0x03,0xF8,0x1F,0x80,0x03,0xF0,0x0F,0xC0,0x07,0xE0,0x07,0xC0,0x07,0xC0,0x03,0xE0,0x0F,0xC0,0x03,0xE0,0x0F,0x80,0x01,0xF0,0x0F,0x80,0x01,0xF0,0x1F,0x80,0x01,0xF0,0x1F,0x00,0x00,0xF8,0x1F,0x00,0x00,0xF8,0x1F,0x00,0x00,0xF8,0x1F,0x00,0x00,0xF8,0x3F,0x00,0x00,0xFC,0x3E,0x00,0x00,0x7C,0x3E,0x00,0x00,0x7C,0x3E,0x00,0x00,0x7C,0x3E,0x00,0x00,0x7C,0x3E,0x00,0x00,0x7C,0x3E,0x00,0x00,0x7C,0x3E,0x00,0x00,0x7C,0x3E,0x00,0x00,0x7C,0x3E,0x00,0x00,0x7C,0x3E,0x00,0x00,0x7C,0x3F,0x00,0x00,0x7C,0x1F,0x00,0x00,0xF8,0x1F,0x00,0x00,0xF8,0x1F,0x00,0x00,0xF8,0x1F,0x00,0x00,0xF8,0x0F,0x80,0x01,0xF0,0x0F,0x80,0x01,0xF0,0x0F,0x80,0x01,0xF0,0x07,0xC0,0x03,0xE0,0x07,0xC0,0x03,0xE0,0x03,0xE0,0x07,0xC0,0x03,0xF0,0x0F,0xC0,0x01,0xF8,0x1F,0x80,0x00,0xFF,0xFF,0x00,0x00,0xFF,0xFE,0x00,0x00,0x7F,0xFC,0x00,0x00,0x1F,0xF8,0x00,0x00,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0 neu +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x03,0xF0,0x00,0x00,0x07,0xF0,0x00,0x00,0x0F,0xF0,0x00,0x00,0x1F,0xF0,0x00,0x00,0x3F,0xF0,0x00,0x00,0x7F,0xF0,0x00,0x01,0xFF,0xF0,0x00,0x03,0xFD,0xF0,0x00,0x0F,0xF1,0xF0,0x00,0x0F,0xE1,0xF0,0x00,0x0F,0x81,0xF0,0x00,0x0F,0x01,0xF0,0x00,0x0C,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //1 neu +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x00,0x00,0x7F,0xFE,0x00,0x01,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0xC0,0x03,0xFF,0xFF,0xE0,0x07,0xE0,0x0F,0xF0,0x0F,0xC0,0x03,0xF0,0x0F,0x80,0x01,0xF0,0x1F,0x00,0x00,0xF8,0x1F,0x00,0x00,0xF8,0x3E,0x00,0x00,0xF8,0x3E,0x00,0x00,0x7C,0x3E,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x78,0x00,0x00,0x00,0xF8,0x00,0x00,0x01,0xF8,0x00,0x00,0x03,0xF0,0x00,0x00,0x07,0xF0,0x00,0x00,0x0F,0xE0,0x00,0x00,0x1F,0xC0,0x00,0x00,0x3F,0x80,0x00,0x00,0x7F,0x00,0x00,0x00,0xFE,0x00,0x00,0x01,0xFC,0x00,0x00,0x03,0xF8,0x00,0x00,0x07,0xF0,0x00,0x00,0x0F,0xE0,0x00,0x00,0x1F,0xC0,0x00,0x00,0x3F,0x80,0x00,0x00,0x7F,0x00,0x00,0x00,0xFE,0x00,0x00,0x01,0xFC,0x00,0x00,0x03,0xF8,0x00,0x00,0x07,0xF0,0x00,0x00,0x07,0xE0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x0F,0x80,0x00,0x00,0x1F,0x80,0x00,0x00,0x3F,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xFC,0x7F,0xFF,0xFF,0xFC,0x7F,0xFF,0xFF,0xFC,0x7F,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 2 neu +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x00,0x00,0x3F,0xFC,0x00,0x00,0xFF,0xFE,0x00,0x01,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0x80,0x03,0xE0,0x1F,0xC0,0x07,0xC0,0x0F,0xC0,0x07,0x80,0x07,0xE0,0x0F,0x80,0x03,0xE0,0x0F,0x00,0x03,0xE0,0x0F,0x00,0x03,0xF0,0x0F,0x00,0x01,0xF0,0x00,0x00,0x03,0xF0,0x00,0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,0x07,0xE0,0x00,0x00,0x0F,0xC0,0x00,0x00,0x1F,0xC0,0x00,0x00,0x3F,0x80,0x00,0x07,0xFF,0x00,0x00,0x07,0xFF,0x00,0x00,0x07,0xFF,0x00,0x00,0x07,0xFF,0x80,0x00,0x00,0x1F,0xC0,0x00,0x00,0x0F,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,0x01,0xF0,0x00,0x00,0x00,0xF0,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0xFC,0x1F,0x00,0x00,0xFC,0x1F,0x00,0x00,0xFC,0x1F,0x00,0x00,0xF8,0x1F,0x00,0x01,0xF8,0x0F,0x80,0x01,0xF8,0x0F,0x80,0x03,0xF0,0x0F,0xC0,0x07,0xF0,0x07,0xE0,0x0F,0xE0,0x03,0xFC,0x3F,0xC0,0x01,0xFF,0xFF,0x80,0x00,0xFF,0xFF,0x00,0x00,0x7F,0xFC,0x00,0x00,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 3 neu +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0x7F,0x00,0x00,0x00,0xFF,0x00,0x00,0x01,0xFF,0x00,0x00,0x01,0xFF,0x00,0x00,0x03,0xFF,0x00,0x00,0x07,0xDF,0x00,0x00,0x07,0xDF,0x00,0x00,0x0F,0x9F,0x00,0x00,0x0F,0x9F,0x00,0x00,0x1F,0x1F,0x00,0x00,0x3E,0x1F,0x00,0x00,0x7E,0x1F,0x00,0x00,0x7C,0x1F,0x00,0x00,0xF8,0x1F,0x00,0x00,0xF8,0x1F,0x00,0x01,0xF0,0x1F,0x00,0x03,0xE0,0x1F,0x00,0x03,0xE0,0x1F,0x00,0x07,0xC0,0x1F,0x00,0x07,0xC0,0x1F,0x00,0x0F,0x80,0x1F,0x00,0x1F,0x80,0x1F,0x00,0x1F,0x00,0x1F,0x00,0x3E,0x00,0x1F,0x00,0x3F,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xFC,0x00,0x00,0x1F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, //4 neu +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFF,0xFF,0xF0,0x01,0xFF,0xFF,0xF0,0x01,0xFF,0xFF,0xF0,0x01,0xFF,0xFF,0xF0,0x01,0xFF,0xFF,0xF0,0x03,0xE0,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00,0x00,0x03,0xC0,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0x80,0x00,0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0xF0,0x00,0x0F,0x8F,0xFE,0x00,0x0F,0xBF,0xFF,0x80,0x0F,0xFF,0xFF,0xC0,0x0F,0xFF,0xFF,0xE0,0x1F,0xFF,0x07,0xF0,0x1F,0xE0,0x03,0xF0,0x1F,0xC0,0x01,0xF8,0x1F,0x00,0x00,0xF8,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x3F,0x00,0x00,0xF8,0x3F,0x00,0x00,0xF8,0x3F,0x00,0x00,0xF8,0x1F,0x00,0x00,0xF0,0x1F,0x00,0x01,0xF0,0x1F,0x80,0x03,0xE0,0x0F,0xC0,0x07,0xE0,0x07,0xE0,0x1F,0xC0,0x03,0xFF,0xFF,0x80,0x03,0xFF,0xFF,0x00,0x01,0xFF,0xFE,0x00,0x00,0x7F,0xF8,0x00,0x00,0x0F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 5 neu +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x00,0x00,0x3F,0xFE,0x00,0x00,0xFF,0xFF,0x00,0x01,0xFF,0xFF,0x80,0x03,0xFF,0xFF,0xC0,0x07,0xE0,0x07,0xE0,0x07,0xC0,0x03,0xF0,0x0F,0xC0,0x01,0xF0,0x0F,0x80,0x00,0xF8,0x1F,0x80,0x00,0xF8,0x1F,0x80,0x00,0xF8,0x1F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x3F,0x03,0xF0,0x00,0x3F,0x1F,0xFC,0x00,0x3F,0x7F,0xFE,0x00,0x3F,0xFF,0xFF,0x80,0x3F,0xFF,0xFF,0xC0,0x3F,0xF8,0x0F,0xE0,0x3F,0xE0,0x03,0xF0,0x3F,0xE0,0x03,0xF0,0x3F,0xC0,0x01,0xF8,0x3F,0x80,0x00,0xF8,0x3F,0x80,0x00,0xF8,0x3F,0x00,0x00,0x7C,0x3F,0x00,0x00,0x7C,0x3F,0x00,0x00,0x7C,0x3F,0x00,0x00,0x7C,0x3F,0x00,0x00,0x7C,0x3F,0x00,0x00,0x7C,0x1F,0x00,0x00,0x7C,0x1F,0x80,0x00,0x78,0x1F,0x80,0x00,0xF8,0x1F,0x80,0x00,0xF8,0x0F,0x80,0x00,0xF8,0x0F,0xC0,0x01,0xF0,0x07,0xF0,0x03,0xF0,0x03,0xF8,0x0F,0xE0,0x01,0xFF,0xFF,0xC0,0x00,0xFF,0xFF,0x80,0x00,0x7F,0xFF,0x00,0x00,0x1F,0xFC,0x00,0x00,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 6 neu +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xFC,0x3F,0xFF,0xFF,0xFC,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0xFC,0x00,0x00,0x01,0xF8,0x00,0x00,0x01,0xF0,0x00,0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,0x07,0xC0,0x00,0x00,0x0F,0x80,0x00,0x00,0x1F,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x01,0xF0,0x00,0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,0x03,0xE0,0x00,0x00,0x07,0xC0,0x00,0x00,0x07,0xC0,0x00,0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00,0x00,0x0F,0x80,0x00,0x00,0x1F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x1F,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x3E,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0x7C,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 7 neu +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x00,0x00,0x7F,0xFE,0x00,0x00,0xFF,0xFF,0x80,0x01,0xFF,0xFF,0x80,0x03,0xF8,0x1F,0xC0,0x07,0xE0,0x07,0xE0,0x07,0xC0,0x03,0xE0,0x0F,0xC0,0x03,0xF0,0x0F,0x80,0x01,0xF0,0x0F,0x80,0x01,0xF0,0x0F,0x80,0x01,0xF0,0x0F,0x80,0x01,0xF0,0x0F,0x80,0x01,0xF0,0x0F,0x80,0x01,0xF0,0x07,0xC0,0x03,0xE0,0x07,0xC0,0x03,0xE0,0x03,0xE0,0x07,0xC0,0x01,0xF0,0x07,0x80,0x00,0xFC,0x3F,0x00,0x00,0x7F,0xFF,0x00,0x00,0x3F,0xFC,0x00,0x00,0x7F,0xFE,0x00,0x00,0xFF,0xFF,0x00,0x03,0xFF,0xFF,0xC0,0x07,0xF0,0x0F,0xE0,0x0F,0xC0,0x03,0xF0,0x0F,0x80,0x01,0xF0,0x1F,0x80,0x01,0xF8,0x1F,0x00,0x00,0xF8,0x1F,0x00,0x00,0xF8,0x3E,0x00,0x00,0x7C,0x3E,0x00,0x00,0x7C,0x3E,0x00,0x00,0x7C,0x3E,0x00,0x00,0x7C,0x3E,0x00,0x00,0x7C,0x3E,0x00,0x00,0x7C,0x1F,0x00,0x00,0xF8,0x1F,0x00,0x00,0xF8,0x0F,0x80,0x01,0xF0,0x0F,0x80,0x03,0xF0,0x07,0xC0,0x07,0xE0,0x03,0xF0,0x0F,0xC0,0x01,0xFF,0xFF,0x80,0x00,0xFF,0xFF,0x00,0x00,0x3F,0xFC,0x00,0x00,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 8 neu +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x00,0x00,0x3F,0xFC,0x00,0x00,0xFF,0xFF,0x00,0x01,0xFF,0xFF,0x80,0x03,0xFF,0xFF,0xC0,0x03,0xF8,0x1F,0xE0,0x07,0xE0,0x07,0xE0,0x07,0xE0,0x07,0xF0,0x0F,0xC0,0x03,0xF0,0x0F,0xC0,0x03,0xF8,0x1F,0x80,0x01,0xF8,0x1F,0x80,0x01,0xF8,0x1F,0x00,0x00,0xFC,0x1F,0x00,0x00,0xFC,0x1F,0x00,0x00,0xFC,0x1F,0x00,0x00,0xFC,0x1F,0x00,0x00,0xFC,0x1F,0x00,0x00,0xFC,0x1F,0x80,0x01,0xFC,0x1F,0x80,0x01,0xFC,0x0F,0xC0,0x03,0xFC,0x0F,0xC0,0x03,0xFC,0x07,0xE0,0x07,0xFC,0x07,0xE0,0x07,0xFC,0x03,0xF8,0x1F,0xFC,0x01,0xFF,0xFF,0xFC,0x00,0xFF,0xFF,0xFC,0x00,0xFF,0xFE,0xFC,0x00,0x7F,0xF8,0xFC,0x00,0x1F,0xE0,0xFC,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0xFC,0x00,0x00,0x00,0xFC,0x00,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF8,0x3F,0x00,0x01,0xF0,0x1F,0x00,0x03,0xF0,0x1F,0x80,0x07,0xE0,0x0F,0xC0,0x0F,0xE0,0x0F,0xE0,0x3F,0xC0,0x07,0xFF,0xFF,0x80,0x03,0xFF,0xFF,0x00,0x01,0xFF,0xFE,0x00,0x00,0xFF,0xF8,0x00,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 9 neu +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x01,0xF0,0x00,0x00,0x03,0xF8,0x00,0x00,0x03,0xF8,0x00,0x00,0x03,0xF8,0x00,0x00,0x01,0xF0,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0x00,0x01,0xF0,0x00,0x00,0x03,0xF8,0x00,0x00,0x03,0xF8,0x00,0x00,0x03,0xF8,0x00,0x00,0x01,0xF0,0x00,0x00,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // : +}; diff --git a/Kernel/platform/platform-rpipico/fonts/Fnt_10x16.h b/Kernel/platform/platform-rpipico/fonts/Fnt_10x16.h new file mode 100644 index 000000000..af2ea8d91 --- /dev/null +++ b/Kernel/platform/platform-rpipico/fonts/Fnt_10x16.h @@ -0,0 +1,233 @@ +// Fnt_10x16.c +// Font type : Full (224 characters) +// Font size : 10x16 pixels +// Memory usage : 4484 bytes + +//const unsigned char Fnt_10x16[4564] = { + const unsigned char Fnt_10x16[4484] ={ + 0x0A,0x10,0x20,0xE0, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(32) + 0x00,0x00,0x00,0x80,0x20,0x08,0x02,0x00,0x80,0x20,0x08,0x00,0x00,0x80,0x20,0x00,0x00,0x00,0x00,0x00, // Chr$(33) ! + 0x00,0x04,0x81,0x20,0x48,0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(34) " + 0x00,0x00,0x00,0x00,0x88,0x22,0x1F,0xC2,0x20,0x88,0x22,0x1F,0xC2,0x20,0x88,0x00,0x00,0x00,0x00,0x00, // Chr$(35) # + 0x00,0x02,0x00,0x80,0xF8,0x49,0x12,0x04,0x00,0xF8,0x01,0x02,0x44,0x90,0xF8,0x08,0x02,0x00,0x00,0x00, // Chr$(36) $ + 0x00,0x00,0x00,0x00,0xC0,0x79,0x0C,0x80,0x40,0x20,0x10,0x09,0x84,0xF0,0x18,0x00,0x00,0x00,0x00,0x00, // Chr$(37) % + 0x00,0x00,0x01,0x80,0x90,0x24,0x09,0x01,0x90,0x94,0x42,0x10,0x84,0x20,0xF4,0x00,0x00,0x00,0x00,0x00, // Chr$(38) & + 0x00,0x01,0x00,0x40,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(39) ' + 0x00,0x00,0x00,0x40,0x20,0x10,0x04,0x01,0x00,0x40,0x10,0x04,0x00,0x80,0x10,0x00,0x00,0x00,0x00,0x00, // Chr$(40) ( + 0x00,0x00,0x01,0x00,0x20,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x80,0x40,0x00,0x00,0x00,0x00,0x00, // Chr$(41) ) + 0x00,0x00,0x00,0x00,0x00,0x08,0x0A,0x81,0xC1,0xFC,0x1C,0x0A,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(42) * + 0x00,0x00,0x00,0x00,0x00,0x08,0x02,0x00,0x81,0xFC,0x08,0x02,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(43) + + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x10,0x04,0x02,0x00,0x00,0x00, // Chr$(44) , + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(45) - + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x30,0x00,0x00,0x00,0x00,0x00, // Chr$(46) . + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(47) / + 0x00,0x00,0x01,0xC0,0x88,0x41,0x10,0x44,0x91,0x24,0x41,0x10,0x42,0x20,0x70,0x00,0x00,0x00,0x00,0x00, // Chr$(48) 0 + 0x00,0x00,0x00,0x80,0x60,0x28,0x02,0x00,0x80,0x20,0x08,0x02,0x00,0x80,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(49) 1 + 0x00,0x00,0x03,0xE1,0x04,0x01,0x00,0x40,0x20,0x10,0x08,0x04,0x02,0x01,0xFC,0x00,0x00,0x00,0x00,0x00, // Chr$(50) 2 + 0x00,0x00,0x03,0xE1,0x04,0x01,0x00,0x41,0xE0,0x04,0x01,0x00,0x44,0x10,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(51) 3 + 0x00,0x00,0x00,0x20,0x18,0x0A,0x04,0x82,0x21,0x08,0x7F,0x00,0x80,0x20,0x08,0x00,0x00,0x00,0x00,0x00, // Chr$(52) 4 + 0x00,0x00,0x07,0xF1,0x00,0x40,0x10,0x07,0xE1,0x04,0x01,0x00,0x44,0x10,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(53) 5 + 0x00,0x00,0x03,0xE1,0x00,0x40,0x10,0x07,0xE1,0x04,0x41,0x10,0x44,0x10,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(54) 6 + 0x00,0x00,0x07,0xF0,0x04,0x01,0x00,0x80,0x40,0x20,0x08,0x02,0x00,0x80,0x20,0x00,0x00,0x00,0x00,0x00, // Chr$(55) 7 + 0x00,0x00,0x03,0xE1,0x04,0x41,0x08,0x83,0xE1,0x04,0x41,0x10,0x44,0x10,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(56) 8 + 0x00,0x00,0x03,0xE1,0x04,0x41,0x10,0x44,0x10,0xFC,0x01,0x00,0x40,0x10,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(57) 9 + 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x80,0x00,0x00,0x00,0x00,0x80,0x20,0x00,0x00,0x00,0x00,0x00, // Chr$(58) : + 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x40,0x00,0x00,0x00,0x00,0x40,0x10,0x04,0x02,0x00,0x00,0x00, // Chr$(59) ; + 0x00,0x00,0x00,0x00,0x08,0x04,0x02,0x01,0x00,0x80,0x10,0x02,0x00,0x40,0x08,0x00,0x00,0x00,0x00,0x00, // Chr$(60) < + 0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xC0,0x00,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(61) = + 0x00,0x00,0x00,0x00,0x80,0x10,0x02,0x00,0x40,0x08,0x04,0x02,0x01,0x00,0x80,0x00,0x00,0x00,0x00,0x00, // Chr$(62) > + 0x00,0x00,0x03,0xE1,0x04,0x41,0x00,0x40,0x60,0x20,0x08,0x00,0x00,0x80,0x20,0x00,0x00,0x00,0x00,0x00, // Chr$(63) ? + 0x00,0x00,0x03,0xE1,0x04,0x41,0x17,0x45,0x51,0x54,0x4E,0x10,0x04,0x00,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(64) @ + 0x00,0x00,0x01,0xC0,0x88,0x41,0x10,0x44,0x11,0xFC,0x41,0x10,0x44,0x11,0x04,0x00,0x00,0x00,0x00,0x00, // Chr$(65) A + 0x00,0x00,0x07,0xE1,0x04,0x41,0x10,0x47,0xE1,0x04,0x41,0x10,0x44,0x11,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(66) B + 0x00,0x00,0x03,0xE1,0x04,0x40,0x10,0x04,0x01,0x00,0x40,0x10,0x44,0x10,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(67) C + 0x00,0x00,0x07,0xC1,0x08,0x41,0x10,0x44,0x11,0x04,0x41,0x10,0x44,0x21,0xF0,0x00,0x00,0x00,0x00,0x00, // Chr$(68) D + 0x00,0x00,0x07,0xF1,0x00,0x40,0x10,0x07,0xE1,0x00,0x40,0x10,0x04,0x01,0xFC,0x00,0x00,0x00,0x00,0x00, // Chr$(69) E + 0x00,0x00,0x07,0xF1,0x00,0x40,0x10,0x07,0xE1,0x00,0x40,0x10,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(70) F + 0x00,0x00,0x03,0xE1,0x04,0x40,0x10,0x04,0xF1,0x04,0x41,0x10,0x44,0x10,0xFC,0x00,0x00,0x00,0x00,0x00, // Chr$(71) G + 0x00,0x00,0x04,0x11,0x04,0x41,0x10,0x47,0xF1,0x04,0x41,0x10,0x44,0x11,0x04,0x00,0x00,0x00,0x00,0x00, // Chr$(72) H + 0x00,0x00,0x03,0xE0,0x20,0x08,0x02,0x00,0x80,0x20,0x08,0x02,0x00,0x80,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(73) I + 0x00,0x00,0x01,0xF0,0x08,0x02,0x00,0x80,0x20,0x08,0x02,0x00,0x84,0x20,0xF0,0x00,0x00,0x00,0x00,0x00, // Chr$(74) J + 0x00,0x00,0x04,0x21,0x10,0x48,0x14,0x06,0x01,0x40,0x48,0x11,0x04,0x21,0x04,0x00,0x00,0x00,0x00,0x00, // Chr$(75) K + 0x00,0x00,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0xFC,0x00,0x00,0x00,0x00,0x00, // Chr$(76) L + 0x00,0x00,0x04,0x11,0x8C,0x55,0x12,0x44,0x91,0x04,0x41,0x10,0x44,0x11,0x04,0x00,0x00,0x00,0x00,0x00, // Chr$(77) M + 0x00,0x00,0x04,0x11,0x84,0x51,0x12,0x44,0x51,0x0C,0x41,0x10,0x44,0x11,0x04,0x00,0x00,0x00,0x00,0x00, // Chr$(78) N + 0x00,0x00,0x03,0xE1,0x04,0x41,0x10,0x44,0x11,0x04,0x41,0x10,0x44,0x10,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(79) O + 0x00,0x00,0x07,0xE1,0x04,0x41,0x10,0x47,0xE1,0x00,0x40,0x10,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(80) P + 0x00,0x00,0x03,0xE1,0x04,0x41,0x10,0x44,0x11,0x04,0x49,0x12,0x44,0x90,0xF8,0x04,0x00,0x80,0x00,0x00, // Chr$(81) Q + 0x00,0x00,0x07,0xE1,0x04,0x41,0x10,0x47,0xE1,0x08,0x41,0x10,0x44,0x11,0x04,0x00,0x00,0x00,0x00,0x00, // Chr$(82) R + 0x00,0x00,0x03,0xE1,0x04,0x40,0x0C,0x01,0x80,0x18,0x01,0x10,0x44,0x10,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(83) S + 0x00,0x00,0x07,0xF0,0x20,0x08,0x02,0x00,0x80,0x20,0x08,0x02,0x00,0x80,0x20,0x00,0x00,0x00,0x00,0x00, // Chr$(84) T + 0x00,0x00,0x04,0x11,0x04,0x41,0x10,0x44,0x11,0x04,0x41,0x10,0x44,0x10,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(85) U + 0x00,0x00,0x04,0x11,0x04,0x41,0x10,0x44,0x11,0x04,0x41,0x08,0x81,0x40,0x20,0x00,0x00,0x00,0x00,0x00, // Chr$(86) V + 0x00,0x00,0x04,0x11,0x04,0x41,0x10,0x44,0x11,0x24,0x49,0x12,0x45,0x50,0x88,0x00,0x00,0x00,0x00,0x00, // Chr$(87) W + 0x00,0x00,0x04,0x11,0x04,0x22,0x05,0x00,0x80,0x50,0x22,0x10,0x44,0x11,0x04,0x00,0x00,0x00,0x00,0x00, // Chr$(88) X + 0x00,0x00,0x04,0x11,0x04,0x41,0x08,0x81,0x40,0x20,0x08,0x02,0x00,0x80,0x20,0x00,0x00,0x00,0x00,0x00, // Chr$(89) Y + 0x00,0x00,0x07,0xF0,0x04,0x02,0x01,0x00,0x80,0x40,0x20,0x10,0x04,0x01,0xFC,0x00,0x00,0x00,0x00,0x00, // Chr$(90) Z + 0x00,0x00,0x01,0xC0,0x40,0x10,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x70,0x00,0x00,0x00,0x00,0x00, // Chr$(91) [ + 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x02,0x00,0x40,0x08,0x01,0x00,0x20,0x04,0x00,0x00,0x00,0x00,0x00, // Chr$(92) backslash + 0x00,0x00,0x01,0xC0,0x10,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x70,0x00,0x00,0x00,0x00,0x00, // Chr$(93) ] + 0x08,0x05,0x02,0x21,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(94) ^ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xC0,0x00,0x00, // Chr$(95) _ + 0x00,0x07,0x02,0x20,0x88,0x22,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(96) ` + 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x00,0x20,0x08,0x3E,0x10,0x84,0x20,0xFC,0x00,0x00,0x00,0x00,0x00, // Chr$(97) a + 0x00,0x00,0x04,0x01,0x00,0x40,0x17,0x86,0x11,0x04,0x41,0x10,0x44,0x11,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(98) b + 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x84,0x11,0x00,0x40,0x10,0x04,0x10,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(99) c + 0x00,0x00,0x00,0x10,0x04,0x01,0x0F,0x44,0x31,0x04,0x41,0x10,0x44,0x10,0xFC,0x00,0x00,0x00,0x00,0x00, // Chr$(100) d + 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x84,0x11,0x04,0x7F,0x10,0x04,0x00,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(101) e + 0x00,0x00,0x00,0x70,0x20,0x08,0x0F,0x80,0x80,0x20,0x08,0x02,0x00,0x80,0x20,0x00,0x00,0x00,0x00,0x00, // Chr$(102) f + 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xC4,0x11,0x04,0x41,0x10,0x44,0x30,0xF4,0x01,0x00,0x43,0xE0,0x00, // Chr$(103) g + 0x00,0x00,0x04,0x01,0x00,0x40,0x17,0x86,0x11,0x04,0x41,0x10,0x44,0x11,0x04,0x00,0x00,0x00,0x00,0x00, // Chr$(104) h + 0x00,0x00,0x00,0x80,0x20,0x00,0x0E,0x00,0x80,0x20,0x08,0x02,0x00,0x80,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(105) i + 0x00,0x00,0x00,0x20,0x08,0x00,0x03,0x80,0x20,0x08,0x02,0x00,0x80,0x20,0x08,0x02,0x00,0x81,0xC0,0x00, // Chr$(106) j + 0x00,0x00,0x04,0x01,0x00,0x40,0x10,0xC4,0xC1,0xC0,0x48,0x11,0x04,0x21,0x04,0x00,0x00,0x00,0x00,0x00, // Chr$(107) k + 0x00,0x00,0x03,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x38,0x00,0x00,0x00,0x00,0x00, // Chr$(108) l + 0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0x84,0x91,0x24,0x49,0x12,0x44,0x91,0x24,0x00,0x00,0x00,0x00,0x00, // Chr$(109) m + 0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x86,0x11,0x04,0x41,0x10,0x44,0x11,0x04,0x00,0x00,0x00,0x00,0x00, // Chr$(110) n + 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x84,0x11,0x04,0x41,0x10,0x44,0x10,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(111) o + 0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x86,0x11,0x04,0x41,0x10,0x46,0x11,0x78,0x40,0x10,0x04,0x00,0x00, // Chr$(112) p + 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xC4,0x11,0x04,0x41,0x10,0x44,0x30,0xF4,0x01,0x00,0x40,0x10,0x00, // Chr$(113) q + 0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x86,0x11,0x00,0x40,0x10,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(114) r + 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xC4,0x01,0x00,0x3E,0x00,0x40,0x11,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(115) s + 0x00,0x00,0x00,0x00,0x20,0x08,0x0F,0xC0,0x80,0x20,0x08,0x02,0x00,0x80,0x1C,0x00,0x00,0x00,0x00,0x00, // Chr$(116) t + 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x44,0x11,0x04,0x41,0x10,0x44,0x30,0xF4,0x00,0x00,0x00,0x00,0x00, // Chr$(117) u + 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x44,0x11,0x04,0x41,0x08,0x81,0x40,0x20,0x00,0x00,0x00,0x00,0x00, // Chr$(118) v + 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x44,0x11,0x04,0x49,0x12,0x44,0x90,0xD8,0x00,0x00,0x00,0x00,0x00, // Chr$(119) w + 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x42,0x20,0x50,0x08,0x05,0x02,0x21,0x04,0x00,0x00,0x00,0x00,0x00, // Chr$(120) x + 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x44,0x11,0x04,0x41,0x10,0x44,0x30,0xF4,0x01,0x00,0x43,0xE0,0x00, // Chr$(121) y + 0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xC0,0x20,0x10,0x08,0x04,0x02,0x01,0xFC,0x00,0x00,0x00,0x00,0x00, // Chr$(122) z + 0x00,0x00,0x00,0x60,0x20,0x08,0x02,0x03,0x00,0x20,0x08,0x02,0x00,0x80,0x18,0x00,0x00,0x00,0x00,0x00, // Chr$(123) { + 0x00,0x02,0x00,0x80,0x20,0x08,0x02,0x00,0x80,0x20,0x08,0x02,0x00,0x80,0x20,0x08,0x02,0x00,0x80,0x00, // Chr$(124) | + 0x00,0x00,0x03,0x00,0x20,0x08,0x02,0x00,0x60,0x20,0x08,0x02,0x00,0x80,0xC0,0x00,0x00,0x00,0x00,0x00, // Chr$(125) } + 0x00,0x00,0x03,0x11,0x24,0x46,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(126) ~ + 0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x01,0x40,0x88,0x41,0x10,0x44,0x11,0xFC,0x00,0x00,0x00,0x00,0x00, // Chr$(127) + 0x00,0x00,0x0F,0xFE,0x01,0x80,0x60,0x18,0x06,0x01,0x80,0x60,0x18,0x06,0x01,0xFF,0xC0,0x00,0x00,0x00, // Chr$(128) + 0x00,0x00,0x0F,0xFE,0x01,0x80,0x60,0x58,0x16,0x09,0x94,0x62,0x18,0x06,0x01,0xFF,0xC0,0x00,0x00,0x00, // Chr$(129) + 0x00,0x00,0x0F,0xFE,0x01,0xA1,0x64,0x98,0xC6,0x31,0x8C,0x64,0x9A,0x16,0x01,0xFF,0xC0,0x00,0x00,0x00, // Chr$(130) + 0x00,0x00,0x0F,0xFE,0x01,0x80,0x60,0x18,0xC6,0x31,0x8C,0x60,0x18,0x06,0x01,0xFF,0xC0,0x00,0x00,0x00, // Chr$(131) + 0x00,0x00,0x0F,0xFE,0x01,0x80,0x60,0x18,0x06,0x01,0x80,0x6F,0xD8,0x06,0x01,0xFF,0xC0,0x00,0x00,0x00, // Chr$(132) + 0x00,0x00,0x0F,0xFE,0x01,0x8C,0x63,0x18,0xC6,0x31,0x8C,0x60,0x18,0xC6,0x01,0xFF,0xC0,0x00,0x00,0x00, // Chr$(133) + 0x00,0x00,0x0F,0xFE,0x01,0x8C,0x64,0x98,0x26,0x11,0x84,0x60,0x18,0x46,0x01,0xFF,0xC0,0x00,0x00,0x00, // Chr$(134) + 0x00,0x00,0x03,0xE1,0xFC,0x7F,0x1A,0xC7,0xF1,0xFC,0x63,0x1D,0xC7,0xF0,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(135) + 0x00,0x00,0x03,0xE1,0x04,0x41,0x15,0x44,0x11,0x04,0x5D,0x12,0x44,0x10,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(136) + 0x00,0x00,0x00,0x00,0x00,0x08,0x07,0x03,0xE1,0xFC,0x3E,0x07,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(137) + 0x00,0x00,0x00,0x00,0x00,0x1C,0x07,0x01,0xC1,0xDC,0x77,0x1D,0xC0,0x80,0x70,0x00,0x00,0x00,0x00,0x00, // Chr$(138) + 0x00,0x00,0x00,0x00,0x00,0x08,0x07,0x03,0xE1,0xFC,0x7F,0x0A,0x80,0x80,0x70,0x00,0x00,0x00,0x00,0x00, // Chr$(139) + 0x00,0x00,0x00,0x00,0x00,0x00,0x0D,0x87,0xF1,0xFC,0x3E,0x07,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(140) + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xF8,0x7C,0xCF,0x7B,0xDE,0xF3,0x3E,0x1F,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, // Chr$(141) + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x78,0x1E,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(142) + 0x00,0x00,0x00,0xF0,0x24,0x0F,0x02,0x00,0x80,0x20,0x08,0x1E,0x07,0x81,0xC0,0x00,0x00,0x00,0x00,0x00, // Chr$(143) + 0x00,0x00,0x00,0x80,0x70,0x2A,0x12,0x40,0x80,0x20,0x49,0x0A,0x81,0xC0,0x20,0x00,0x00,0x00,0x00,0x00, // Chr$(144) + 0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x82,0x11,0xFE,0x21,0x04,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(145) + 0x00,0x00,0x00,0x80,0x70,0x2A,0x12,0x40,0x80,0x20,0x08,0x02,0x00,0x80,0x20,0x00,0x00,0x00,0x00,0x00, // Chr$(146) + 0x00,0x00,0x00,0x80,0x20,0x08,0x02,0x00,0x80,0x20,0x49,0x0A,0x81,0xC0,0x20,0x00,0x00,0x00,0x00,0x00, // Chr$(147) + 0x00,0x00,0x00,0x00,0x00,0x08,0x01,0x00,0x21,0xFC,0x02,0x01,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(148) + 0x00,0x00,0x00,0x00,0x00,0x08,0x04,0x02,0x01,0xFC,0x20,0x04,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(149) + 0x00,0x00,0x00,0x80,0x20,0x2A,0x12,0x44,0x91,0x24,0x49,0x10,0x44,0x10,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(150) + 0x00,0x07,0x82,0x11,0x02,0x5E,0x93,0x24,0xC8,0xB4,0x1E,0x00,0x01,0xE0,0x00,0x1E,0x00,0x00,0x00,0x00, // Chr$(151) + 0x00,0x03,0x00,0xC0,0x00,0x1E,0x07,0x81,0xE0,0x78,0x0C,0x03,0x00,0xC0,0x30,0x0C,0x00,0x00,0x00,0x00, // Chr$(152) + 0x00,0x1F,0x04,0x61,0x7C,0x47,0x9D,0xE4,0x19,0xEA,0x7A,0x9E,0xA7,0x99,0xFE,0x00,0x00,0x00,0x00,0x00, // Chr$(153) + 0x00,0x03,0x01,0x20,0x84,0x21,0x08,0x42,0x10,0xFC,0x3F,0x04,0x81,0x20,0x48,0x12,0x00,0x00,0x00,0x00, // Chr$(154) + 0x00,0x03,0x01,0xE0,0xFC,0x3F,0x0F,0xC3,0xF0,0xFC,0x3F,0x04,0x81,0x20,0x48,0x12,0x00,0x00,0x00,0x00, // Chr$(155) + 0x00,0x00,0x01,0x00,0xC8,0x71,0x1D,0x27,0x29,0xCA,0x74,0x9C,0x43,0x20,0x40,0x00,0x00,0x00,0x00,0x00, // Chr$(156) + 0x00,0x00,0x03,0xF1,0x2C,0x4B,0x12,0xC4,0xB0,0xEC,0x0B,0x02,0xC0,0xB0,0x2C,0x00,0x00,0x00,0x00,0x00, // Chr$(157) + 0x00,0x00,0x03,0xF0,0x88,0x24,0x0D,0xC1,0x20,0x50,0x28,0x0C,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(158) + 0x00,0x00,0x00,0x00,0x42,0x1B,0x03,0xC1,0xE1,0xFC,0x0D,0x82,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(159) + 0x00,0x00,0x01,0xE0,0x84,0x40,0x94,0xA5,0x29,0x4A,0x52,0x90,0x22,0x10,0x78,0x00,0x00,0x00,0x00,0x00, // Chr$(160) + 0x00,0x00,0x01,0xE0,0x84,0x48,0x93,0x24,0xE9,0x32,0x48,0x90,0x22,0x10,0x78,0x00,0x00,0x00,0x00,0x00, // Chr$(161) + 0x00,0x00,0x01,0xE0,0x84,0x40,0x97,0xA5,0xE9,0x7A,0x5E,0x90,0x22,0x10,0x78,0x00,0x00,0x00,0x00,0x00, // Chr$(162) + 0x00,0x00,0x00,0x00,0xE0,0x44,0x11,0x04,0x40,0xF0,0x06,0x00,0xC0,0x18,0x02,0x00,0x00,0x00,0x00,0x00, // Chr$(163) + 0x00,0x00,0x00,0x60,0x20,0x10,0x0F,0x81,0x00,0x40,0x3E,0x04,0x00,0x80,0x18,0x00,0x00,0x00,0x00,0x00, // Chr$(164) + 0x00,0x00,0x00,0xD0,0x4C,0x21,0x10,0x22,0x10,0x84,0x21,0x08,0x42,0x10,0xFC,0x00,0x00,0x00,0x00,0x00, // Chr$(165) + 0x00,0x00,0x01,0xE0,0x48,0x7F,0x88,0x42,0x10,0x84,0x21,0x08,0x42,0x10,0xFC,0x00,0x00,0x00,0x00,0x00, // Chr$(166) + 0x00,0x00,0x01,0xC1,0x8C,0x41,0x20,0x28,0x0B,0x06,0xC1,0x90,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(167) + 0x00,0x00,0x0F,0xFE,0x01,0x80,0x60,0x18,0x06,0x01,0x80,0x7F,0xF0,0xC0,0x30,0x1E,0x00,0x00,0x00,0x00, // Chr$(168) + 0x00,0x00,0x00,0xC0,0x78,0x1E,0x07,0x81,0xE0,0x78,0x0C,0x03,0x00,0x00,0x30,0x0C,0x00,0x00,0x00,0x00, // Chr$(169) + 0x00,0x05,0x02,0xB0,0x82,0x41,0x9F,0xC0,0x60,0x20,0x08,0x04,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(170) + 0x00,0x00,0x01,0x80,0x90,0x24,0x09,0x02,0x50,0x64,0x01,0x00,0x40,0x10,0x04,0x00,0x00,0x00,0x00,0x00, // Chr$(171) + 0x00,0x03,0x01,0x20,0xCC,0x6D,0x8C,0xC0,0xC0,0x30,0x1C,0x03,0x01,0xC0,0x30,0x1C,0x00,0x00,0x00,0x00, // Chr$(172) + 0x00,0x3F,0xF0,0x03,0xFF,0x00,0x3F,0xF0,0x03,0xFF,0x00,0x3F,0xF0,0x03,0xFF,0x00,0x3F,0xF0,0x03,0xFF, // Chr$(173) + 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, // Chr$(174) + 0xCC,0xF3,0x33,0x30,0xCC,0xCC,0xF3,0x33,0x30,0xCC,0xCC,0xF3,0x33,0x30,0xCC,0xCC,0xF3,0x33,0x30,0xCC, // Chr$(175) + 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, // Chr$(176) + 0xAA,0x95,0x5A,0xA9,0x55,0xAA,0x95,0x5A,0xA9,0x55,0xAA,0x95,0x5A,0xA9,0x55,0xAA,0x95,0x5A,0xA9,0x55, // Chr$(177) + 0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE,0xEE, // Chr$(178) + 0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x10, // Chr$(179) + 0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x43,0xF0,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x10, // Chr$(180) + 0x04,0x01,0x00,0x40,0x10,0x04,0x3F,0x00,0x43,0xF0,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x10, // Chr$(181) + 0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x23,0xC8,0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x20,0x48, // Chr$(182) + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF8,0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x20,0x48, // Chr$(183) + 0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x00,0x43,0xF0,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x10, // Chr$(184) + 0x12,0x04,0x81,0x20,0x48,0x12,0x3C,0x80,0x23,0xC8,0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x20,0x48, // Chr$(185) + 0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x20,0x48, // Chr$(186) + 0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0x80,0x23,0xC8,0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x20,0x48, // Chr$(187) + 0x12,0x04,0x81,0x20,0x48,0x12,0x3C,0x80,0x23,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(188) + 0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x23,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(189) + 0x04,0x01,0x00,0x40,0x10,0x04,0x3F,0x00,0x43,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(190) + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x10, // Chr$(191) + 0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(192) + 0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x43,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(193) + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x10, // Chr$(194) + 0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x1F,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x10, // Chr$(195) + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(196) + 0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x43,0xFF,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x10, // Chr$(197) + 0x04,0x01,0x00,0x40,0x10,0x04,0x01,0xF0,0x40,0x1F,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x10, // Chr$(198) + 0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x20,0x4F,0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x20,0x48, // Chr$(199) + 0x12,0x04,0x81,0x20,0x48,0x12,0x04,0xF1,0x00,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(200) + 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xF1,0x00,0x4F,0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x20,0x48, // Chr$(201) + 0x12,0x04,0x81,0x20,0x48,0x12,0x3C,0xF0,0x03,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(202) + 0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF0,0x03,0xCF,0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x20,0x48, // Chr$(203) + 0x12,0x04,0x81,0x20,0x48,0x12,0x04,0xF1,0x00,0x4F,0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x20,0x48, // Chr$(204) + 0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF0,0x03,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(205) + 0x12,0x04,0x81,0x20,0x48,0x12,0x3C,0xF0,0x03,0xCF,0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x20,0x48, // Chr$(206) + 0x04,0x01,0x00,0x40,0x10,0x04,0x3F,0xF0,0x03,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(207) + 0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x23,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(208) + 0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF0,0x03,0xFF,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x10, // Chr$(209) + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x20,0x48, // Chr$(210) + 0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x20,0x7F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(211) + 0x04,0x01,0x00,0x40,0x10,0x04,0x01,0xF0,0x40,0x1F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(212) + 0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xF0,0x40,0x1F,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x10, // Chr$(213) + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x20,0x48, // Chr$(214) + 0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x23,0xFF,0x12,0x04,0x81,0x20,0x48,0x12,0x04,0x81,0x20,0x48, // Chr$(215) + 0x04,0x01,0x00,0x40,0x10,0x04,0x3F,0xF0,0x43,0xFF,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x10, // Chr$(216) + 0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x43,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(217) + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x10, // Chr$(218) + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, // Chr$(219) + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, // Chr$(220) + 0x1E,0x07,0x81,0xE0,0x78,0x1E,0x07,0x81,0xE0,0x78,0x1E,0x07,0x81,0xE0,0x78,0x1E,0x07,0x81,0xE0,0x78, // Chr$(221) + 0x07,0xC1,0xF0,0x7C,0x1F,0x07,0xC1,0xF0,0x7C,0x1F,0x07,0xC1,0xF0,0x7C,0x1F,0x07,0xC1,0xF0,0x7C,0x1F, // Chr$(222) + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(223) + 0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x84,0x41,0x10,0x44,0x11,0x04,0x40,0xEC,0x00,0x00,0x00,0x00,0x00, // Chr$(224) + 0x00,0x00,0x01,0xC0,0x88,0x42,0x10,0x84,0xC1,0x08,0x41,0x10,0x44,0x11,0x38,0x40,0x10,0x00,0x00,0x00, // Chr$(225) + 0x00,0x00,0x07,0xF1,0x00,0x40,0x10,0x04,0x01,0x00,0x40,0x10,0x04,0x01,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(226) + 0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xC2,0x20,0x88,0x22,0x08,0x82,0x20,0x84,0x00,0x00,0x00,0x00,0x00, // Chr$(227) + 0x00,0x00,0x07,0xF0,0x80,0x10,0x02,0x00,0x40,0x20,0x10,0x08,0x04,0x01,0xFC,0x00,0x00,0x00,0x00,0x00, // Chr$(228) + 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xC4,0x41,0x08,0x42,0x10,0x84,0x20,0xF0,0x00,0x00,0x00,0x00,0x00, // Chr$(229) + 0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x84,0x21,0x08,0x42,0x10,0x86,0x21,0x74,0x40,0x10,0x04,0x00,0x00, // Chr$(230) + 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xC4,0x80,0x20,0x08,0x02,0x00,0x80,0x18,0x00,0x00,0x00,0x00,0x00, // Chr$(231) + 0x00,0x00,0x03,0xF0,0x00,0x1E,0x08,0x42,0x10,0x84,0x21,0x07,0x80,0x00,0xFC,0x00,0x00,0x00,0x00,0x00, // Chr$(232) + 0x00,0x00,0x01,0xC0,0x88,0x41,0x10,0x47,0xF1,0x04,0x41,0x10,0x42,0x20,0x70,0x00,0x00,0x00,0x00,0x00, // Chr$(233) + 0x00,0x00,0x01,0xC0,0x88,0x41,0x10,0x44,0x11,0x04,0x41,0x08,0x81,0x41,0xDC,0x00,0x00,0x00,0x00,0x00, // Chr$(234) + 0x00,0x00,0x03,0xE0,0x80,0x10,0x02,0x03,0xC1,0x08,0x41,0x10,0x44,0x10,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(235) + 0x00,0x00,0x00,0x00,0x00,0x00,0x0D,0x84,0x91,0x24,0x49,0x0D,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(236) + 0x00,0x00,0x00,0x00,0x04,0x02,0x0D,0x84,0xD1,0x24,0x59,0x0D,0x82,0x01,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(237) + 0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x84,0x11,0x00,0x3C,0x10,0x04,0x10,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(238) + 0x00,0x00,0x00,0x00,0xF8,0x41,0x10,0x44,0x11,0x04,0x41,0x10,0x44,0x11,0x04,0x00,0x00,0x00,0x00,0x00, // Chr$(239) + 0x00,0x00,0x00,0x00,0x00,0x7F,0x00,0x00,0x01,0xFC,0x00,0x00,0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(240) + 0x00,0x00,0x00,0x80,0x20,0x08,0x1F,0xC0,0x80,0x20,0x08,0x00,0x07,0xF0,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(241) + 0x00,0x00,0x00,0x00,0x40,0x08,0x01,0x00,0x20,0x10,0x08,0x04,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(242) + 0x00,0x00,0x00,0x00,0x10,0x08,0x04,0x02,0x00,0x40,0x08,0x01,0x00,0x00,0xF8,0x00,0x00,0x00,0x00,0x00, // Chr$(243) + 0x00,0x08,0x02,0x00,0x84,0x22,0x09,0x00,0x80,0x40,0x20,0x03,0x80,0x10,0x08,0x04,0x03,0xC0,0x00,0x00, // Chr$(244) + 0x00,0x08,0x02,0x00,0x80,0x21,0x08,0x80,0x40,0x20,0x11,0x08,0xC0,0x50,0x3C,0x01,0x00,0x40,0x00,0x00, // Chr$(245) + 0x00,0x00,0x00,0x00,0x00,0x08,0x02,0x00,0x01,0xFC,0x00,0x02,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(246) + 0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x42,0x60,0x00,0x19,0x09,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(247) + 0x00,0x04,0x01,0x00,0x40,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(248) + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(249) + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(250) + 0x00,0x01,0xC0,0x40,0x10,0x04,0x01,0x00,0x40,0x10,0x64,0x05,0x00,0xC0,0x10,0x00,0x00,0x00,0x00,0x00, // Chr$(251) + 0x00,0x0B,0x81,0x10,0x44,0x11,0x04,0x41,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(252) + 0x00,0x03,0x01,0x20,0x08,0x04,0x02,0x01,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(253) + 0x00,0x00,0x00,0x00,0x00,0x3F,0x0F,0xC3,0xF0,0xFC,0x3F,0x0F,0xC3,0xF0,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(254) + 0x00,0x00,0x00,0x81,0x24,0x3E,0x08,0x84,0x11,0x04,0x41,0x08,0x83,0xE1,0x24,0x08,0x00,0x00,0x00,0x00 // Chr$(255) + }; diff --git a/Kernel/platform/platform-rpipico/fonts/Font_8x6.h b/Kernel/platform/platform-rpipico/fonts/Font_8x6.h new file mode 100644 index 000000000..b6c3460e3 --- /dev/null +++ b/Kernel/platform/platform-rpipico/fonts/Font_8x6.h @@ -0,0 +1,105 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ + +const unsigned char F_6x8_LE[580] = { + 0x06,0x08,0x20,0x60, + 0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(32) + 0x20,0x82,0x08,0x00,0x82,0x00, // Chr$(33) ! + 0x51,0x45,0x00,0x00,0x00,0x00, // Chr$(34) " + 0x51,0x4F,0x94,0xF9,0x45,0x00, // Chr$(35) # + 0x21,0xEA,0x1C,0x2B,0xC2,0x00, // Chr$(36) $ + 0x00,0x69,0x90,0x20,0x4C,0xB0, // Chr$(37) % + 0x62,0x4A,0x10,0xAA,0x46,0x80, // Chr$(38) & + 0x60,0x84,0x00,0x00,0x00,0x00, // Chr$(39) ' + 0x10,0x84,0x10,0x40,0x81,0x00, // Chr$(40) ( + 0x40,0x81,0x04,0x10,0x84,0x00, // Chr$(41) ) + 0x00,0x8A,0x9C,0xA8,0x80,0x00, // Chr$(42) * + 0x00,0x82,0x3E,0x20,0x80,0x00, // Chr$(43) + + 0x00,0x00,0x00,0x30,0x42,0x00, // Chr$(44) , + 0x00,0x00,0x3E,0x00,0x00,0x00, // Chr$(45) - + 0x00,0x00,0x00,0x01,0x86,0x00, // Chr$(46) . + 0x00,0x21,0x08,0x42,0x00,0x00, // Chr$(47) / + 0x72,0x29,0xAA,0xCA,0x27,0x00, // Chr$(48) 0 + 0x21,0x82,0x08,0x20,0x87,0x00, // Chr$(49) 1 + 0x72,0x20,0x84,0x21,0x0F,0x80, // Chr$(50) 2 + 0xF8,0x42,0x04,0x0A,0x27,0x00, // Chr$(51) 3 + 0x10,0xC5,0x24,0xF8,0x41,0x00, // Chr$(52) 4 + 0xFA,0x0F,0x02,0x0A,0x27,0x00, // Chr$(53) 5 + 0x31,0x08,0x3C,0x8A,0x27,0x00, // Chr$(54) 6 + 0xF8,0x21,0x08,0x41,0x04,0x00, // Chr$(55) 7 + 0x72,0x28,0x9C,0x8A,0x27,0x00, // Chr$(56) 8 + 0x72,0x28,0x9E,0x08,0x27,0x00, // Chr$(57) 9 + 0x01,0x86,0x00,0x61,0x80,0x00, // Chr$(58) : + 0x01,0x86,0x00,0x60,0x84,0x00, // Chr$(59) ; + 0x10,0x84,0x20,0x40,0x81,0x00, // Chr$(60) < + 0x00,0x0F,0x80,0xF8,0x00,0x00, // Chr$(61) = + 0x40,0x81,0x02,0x10,0x84,0x00, // Chr$(62) > + 0x72,0x20,0x84,0x20,0x02,0x00, // Chr$(63) ? + 0x72,0x20,0x9A,0xBA,0x27,0x00, // Chr$(64) @ + 0x72,0x28,0xA2,0xFA,0x28,0x80, // Chr$(65) A + 0xF2,0x28,0xBC,0x8A,0x2F,0x00, // Chr$(66) B + 0x72,0x28,0x20,0x82,0x27,0x00, // Chr$(67) C + 0xE2,0x48,0xA2,0x8A,0x4E,0x00, // Chr$(68) D + 0xFA,0x08,0x3C,0x82,0x0F,0x80, // Chr$(69) E + 0xFA,0x08,0x3C,0x82,0x08,0x00, // Chr$(70) F + 0x72,0x28,0x2E,0x8A,0x27,0x80, // Chr$(71) G + 0x8A,0x28,0xBE,0x8A,0x28,0x80, // Chr$(72) H + 0x70,0x82,0x08,0x20,0x87,0x00, // Chr$(73) I + 0x38,0x41,0x04,0x12,0x46,0x00, // Chr$(74) J + 0x8A,0x4A,0x30,0xA2,0x48,0x80, // Chr$(75) K + 0x82,0x08,0x20,0x82,0x0F,0x80, // Chr$(76) L + 0x8B,0x6A,0xAA,0x8A,0x28,0x80, // Chr$(77) M + 0x8A,0x2C,0xAA,0x9A,0x28,0x80, // Chr$(78) N + 0x72,0x28,0xA2,0x8A,0x27,0x00, // Chr$(79) O + 0xF2,0x28,0xBC,0x82,0x08,0x00, // Chr$(80) P + 0x72,0x28,0xA2,0xAA,0x46,0x80, // Chr$(81) Q + 0xF2,0x28,0xBC,0xA2,0x48,0x80, // Chr$(82) R + 0x7A,0x08,0x1C,0x08,0x2F,0x00, // Chr$(83) S + 0xF8,0x82,0x08,0x20,0x82,0x00, // Chr$(84) T + 0x8A,0x28,0xA2,0x8A,0x27,0x00, // Chr$(85) U + 0x8A,0x28,0xA2,0x89,0x42,0x00, // Chr$(86) V + 0x8A,0x28,0xAA,0xAA,0xA5,0x00, // Chr$(87) W + 0x8A,0x25,0x08,0x52,0x28,0x80, // Chr$(88) X + 0x8A,0x28,0x94,0x20,0x82,0x00, // Chr$(89) Y + 0xF8,0x21,0x08,0x42,0x0F,0x80, // Chr$(90) Z + 0x71,0x04,0x10,0x41,0x07,0x00, // Chr$(91) [ + 0x02,0x04,0x08,0x10,0x20,0x00, // Chr$(92) backslash + 0x70,0x41,0x04,0x10,0x47,0x00, // Chr$(93) ] + 0x21,0x48,0x80,0x00,0x00,0x00, // Chr$(94) ^ + 0x00,0x00,0x00,0x00,0x0F,0x80, // Chr$(95) _ + 0x00,0xC4,0x8C,0x00,0x00,0x00, // Chr$(96) ` + 0x00,0x07,0x02,0x7A,0x27,0x80, // Chr$(97) a + 0x82,0x0B,0x32,0x8A,0x2F,0x00, // Chr$(98) b + 0x00,0x07,0x20,0x82,0x27,0x00, // Chr$(99) c + 0x08,0x26,0xA6,0x8A,0x27,0x80, // Chr$(100) d + 0x00,0x07,0x22,0xFA,0x07,0x00, // Chr$(101) e + 0x31,0x24,0x38,0x41,0x04,0x00, // Chr$(102) f + 0x01,0xE8,0xA2,0x78,0x27,0x00, // Chr$(103) g + 0x82,0x0B,0x32,0x8A,0x28,0x80, // Chr$(104) h + 0x20,0x06,0x08,0x20,0x87,0x00, // Chr$(105) i + 0x10,0x03,0x04,0x12,0x46,0x00, // Chr$(106) j + 0x82,0x09,0x28,0xC2,0x89,0x00, // Chr$(107) k + 0x60,0x82,0x08,0x20,0x87,0x00, // Chr$(108) l + 0x00,0x0D,0x2A,0xAA,0x28,0x80, // Chr$(109) m + 0x00,0x0B,0x32,0x8A,0x28,0x80, // Chr$(110) n + 0x00,0x07,0x22,0x8A,0x27,0x00, // Chr$(111) o + 0x00,0x0F,0x22,0xF2,0x08,0x00, // Chr$(112) p + 0x00,0x06,0xA6,0x78,0x20,0x80, // Chr$(113) q + 0x00,0x0B,0x32,0x82,0x08,0x00, // Chr$(114) r + 0x00,0x07,0x20,0x70,0x2F,0x00, // Chr$(115) s + 0x41,0x0E,0x10,0x41,0x23,0x00, // Chr$(116) t + 0x00,0x08,0xA2,0x8A,0x66,0x80, // Chr$(117) u + 0x00,0x08,0xA2,0x89,0x42,0x00, // Chr$(118) v + 0x00,0x08,0xA2,0xAA,0xA5,0x00, // Chr$(119) w + 0x00,0x08,0x94,0x21,0x48,0x80, // Chr$(120) x + 0x00,0x08,0xA2,0x78,0x27,0x00, // Chr$(121) y + 0x00,0x0F,0x84,0x21,0x0F,0x80, // Chr$(122) z + 0x10,0x82,0x10,0x40,0x82,0x04, // Chr$(123) { + 0x20,0x82,0x00,0x20,0x82,0x00, // Chr$(124) | + 0x20,0x41,0x02,0x08,0x41,0x08, // Chr$(125) } + 0x00,0x04,0xAA,0x90,0x00,0x00, // Chr$(126) ~ + 0x00,0x02,0x14,0x8B,0xE0,0x00 // Chr$(127) +}; diff --git a/Kernel/platform/platform-rpipico/fonts/Hom_16x24_LE.h b/Kernel/platform/platform-rpipico/fonts/Hom_16x24_LE.h new file mode 100644 index 000000000..085e93b27 --- /dev/null +++ b/Kernel/platform/platform-rpipico/fonts/Hom_16x24_LE.h @@ -0,0 +1,111 @@ +// Hom_16x24_LE.c +// Font type : Full (95 characters) +// Font size : 16x24 pixels +// Memory usage : 4564 bytes +#ifndef Hom_16x24_LE_h +#define Hom_16x24_LE_h + +const unsigned char Hom_16x24_LE[4564] = { +0x10,0x18,0x20,0x5F, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // +0x01,0x80,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x03,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x01,0x80,0x03,0xC0,0x03,0xC0,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ! +0x00,0x00,0x00,0x00,0x06,0x30,0x06,0x30,0x0C,0x60,0x0C,0x60,0x0E,0x70,0x0E,0x70,0x06,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // " +0x00,0x00,0x00,0x00,0x03,0x18,0x03,0x18,0x07,0x38,0x07,0x38,0x3F,0xFC,0x3F,0xFC,0x06,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x60,0x3F,0xFC,0x3F,0xFC,0x1C,0xE0,0x1C,0xE0,0x1C,0xC0,0x18,0xC0,0x18,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // # +0x01,0x80,0x01,0x80,0x07,0xC0,0x1F,0xF0,0x1F,0xF8,0x3D,0xB8,0x39,0xB8,0x39,0x98,0x3D,0x80,0x1F,0x80,0x0F,0xF0,0x03,0xF8,0x01,0xBC,0x31,0x9C,0x39,0x9C,0x39,0x9C,0x3D,0xB8,0x1F,0xF8,0x07,0xE0,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00, // $ +0x00,0x00,0x78,0x10,0xF8,0x30,0xCC,0x20,0xCC,0x60,0xCC,0x40,0xCC,0xC0,0xCC,0x80,0x79,0x80,0x01,0x3C,0x03,0x66,0x02,0x66,0x06,0x66,0x0C,0x66,0x0C,0x66,0x18,0x3C,0x10,0x3C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // % +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x80,0x0F,0xC0,0x1C,0xE0,0x1C,0xE0,0x1C,0xE0,0x0F,0xC0,0x07,0x00,0x1F,0x08,0x3B,0x9C,0x71,0xD8,0x71,0xF8,0x70,0xF0,0x78,0xFC,0x3F,0xDE,0x0F,0x8C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // & +0x00,0xE0,0x00,0xC0,0x01,0xC0,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ' +0x00,0x40,0x00,0xC0,0x01,0xC0,0x01,0x80,0x03,0x80,0x03,0x80,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x03,0x80,0x03,0x80,0x01,0x80,0x01,0xC0,0x00,0xC0,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ( +0x02,0x00,0x03,0x00,0x03,0x80,0x01,0x80,0x01,0xC0,0x01,0xC0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x01,0xC0,0x01,0xC0,0x01,0x80,0x03,0x80,0x03,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ) +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x06,0xD8,0x07,0xF8,0x00,0xC0,0x01,0xE0,0x03,0x30,0x03,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // * +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x1F,0xF8,0x1F,0xF8,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // + +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x03,0x80,0x03,0x80,0x01,0x80,0x01,0x80,0x03,0x00,0x00,0x00,0x00,0x00, // , +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xF0,0x0F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // - +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // . +0x00,0x30,0x00,0x70,0x00,0x70,0x00,0x60,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x00,0x07,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // / + +0x00,0x00,0x07,0xE0,0x0F,0xF0,0x1F,0xF8,0x1C,0x38,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x1C,0x38,0x1F,0xF8,0x0F,0xF0,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0 +0x00,0x00,0x00,0x60,0x00,0xE0,0x01,0xE0,0x03,0xE0,0x07,0xE0,0x1F,0xE0,0x1C,0xE0,0x18,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 1 +0x00,0x00,0x07,0xE0,0x1F,0xF8,0x1F,0xF8,0x3C,0x3C,0x38,0x1C,0x38,0x1C,0x00,0x1C,0x00,0x38,0x00,0x78,0x00,0xF0,0x03,0xE0,0x07,0x80,0x0F,0x00,0x1E,0x00,0x3C,0x00,0x3F,0xF8,0x3F,0xFC,0x3F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 2 +0x00,0x00,0x07,0xE0,0x0F,0xF0,0x1F,0xF8,0x3C,0x78,0x38,0x38,0x00,0x38,0x00,0x78,0x01,0xF0,0x01,0xF0,0x00,0xF8,0x00,0x3C,0x30,0x1C,0x38,0x1C,0x38,0x3C,0x3C,0x78,0x1F,0xF8,0x0F,0xF0,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 3 +0x00,0x00,0x00,0x60,0x00,0xF0,0x00,0xF0,0x01,0xF0,0x03,0xF0,0x03,0x70,0x07,0x70,0x0E,0x70,0x0C,0x70,0x1C,0x70,0x38,0x70,0x38,0x70,0x3F,0xFC,0x3F,0xFC,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 4 +0x00,0x00,0x1F,0xFC,0x1F,0xFC,0x1F,0xF8,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1F,0xE0,0x1F,0xF0,0x1F,0xF8,0x1C,0x3C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x38,0x1C,0x3C,0x38,0x3F,0xF8,0x1F,0xF0,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 5 +0x00,0x00,0x03,0xE0,0x0F,0xF0,0x1F,0xF8,0x1C,0x38,0x3C,0x18,0x38,0x00,0x38,0x00,0x3B,0xE0,0x3F,0xF0,0x3F,0xF8,0x3C,0x3C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x1C,0x3C,0x1F,0xF8,0x0F,0xF0,0x03,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 6 +0x00,0x00,0x3F,0xFC,0x3F,0xFC,0x1F,0xFC,0x00,0x38,0x00,0x70,0x00,0x70,0x00,0xE0,0x01,0xC0,0x01,0xC0,0x03,0x80,0x03,0x80,0x03,0x80,0x07,0x80,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 7 +0x00,0x00,0x07,0xE0,0x0F,0xF0,0x1F,0xF8,0x1E,0x78,0x1C,0x38,0x1C,0x38,0x1E,0x78,0x0F,0xF0,0x0F,0xF0,0x1C,0x38,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x3C,0x3C,0x1F,0xF8,0x0F,0xF0,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 8 +0x00,0x00,0x07,0xC0,0x0F,0xF0,0x1F,0xF8,0x3C,0x38,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x3C,0x3C,0x1F,0xFC,0x0F,0xFC,0x07,0xDC,0x00,0x1C,0x00,0x1C,0x18,0x3C,0x1C,0x38,0x1F,0xF8,0x0F,0xF0,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 9 +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // : +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x03,0x80,0x03,0x80,0x01,0x80,0x01,0x80,0x03,0x00,0x02,0x00,0x00,0x00, // ; +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x38,0x00,0xF8,0x03,0xF8,0x0F,0xC0,0x1F,0x00,0x1C,0x00,0x1F,0x00,0x0F,0xC0,0x03,0xF8,0x00,0xF8,0x00,0x38,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // < +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x00,0x00,0x00,0x00,0x3F,0xFC,0x3F,0xFC,0x3F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // = +0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x1C,0x00,0x1F,0x00,0x1F,0xC0,0x03,0xF0,0x00,0xF8,0x00,0x38,0x00,0xF8,0x03,0xF0,0x1F,0xC0,0x1F,0x00,0x1C,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // > +0x07,0xC0,0x0F,0xF0,0x1F,0xF0,0x3C,0x78,0x38,0x38,0x38,0x38,0x30,0x38,0x00,0x70,0x00,0xF0,0x01,0xE0,0x03,0xC0,0x03,0x80,0x03,0x80,0x01,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ? + +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xE0,0x0F,0xF8,0x1C,0x1C,0x10,0x04,0x23,0xB6,0x27,0xF2,0x4C,0x72,0x5C,0x62,0x58,0x62,0x58,0x62,0x58,0x64,0x58,0xEC,0x6F,0xF8,0x27,0x70,0x30,0x06,0x18,0x0C,0x0F,0xFC,0x03,0xF0,0x00,0x00,0x00,0x00, // @ +0x00,0x00,0x00,0x00,0x01,0x80,0x03,0xC0,0x03,0xC0,0x07,0xE0,0x07,0xE0,0x0E,0x60,0x0E,0x70,0x0E,0x70,0x1C,0x78,0x1C,0x38,0x1C,0x38,0x3F,0xFC,0x3F,0xFC,0x38,0x1C,0x70,0x0E,0x70,0x0E,0x60,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // A +0x00,0x00,0x00,0x00,0x3F,0xE0,0x3F,0xF0,0x38,0x78,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x3F,0xF0,0x3F,0xF0,0x38,0x38,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x3C,0x3F,0xF8,0x3F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // B +0x00,0x00,0x00,0x00,0x07,0xE0,0x0F,0xF0,0x1E,0x78,0x3C,0x3C,0x38,0x1C,0x78,0x0C,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x0C,0x70,0x0C,0x38,0x1C,0x3C,0x3C,0x1E,0x78,0x0F,0xF0,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // C +0x00,0x00,0x00,0x00,0x3F,0xC0,0x3F,0xF0,0x38,0xF0,0x38,0x78,0x38,0x38,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x38,0x38,0x78,0x38,0xF0,0x3F,0xF0,0x3F,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // D +0x00,0x00,0x00,0x00,0x1F,0xFC,0x1F,0xFC,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1F,0xF8,0x1F,0xF8,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1F,0xFC,0x1F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // E +0x00,0x00,0x00,0x00,0x0F,0xFC,0x0F,0xFC,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0F,0xF8,0x0F,0xF8,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // F +0x00,0x00,0x00,0x00,0x03,0xE0,0x0F,0xF8,0x1C,0x3C,0x38,0x1C,0x38,0x0E,0x70,0x0C,0x70,0x00,0x70,0x00,0x70,0xFE,0x70,0xFE,0x70,0x0E,0x70,0x0E,0x38,0x0E,0x38,0x0E,0x1C,0x3E,0x0F,0xFC,0x03,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // G +0x00,0x00,0x00,0x00,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x3F,0xFC,0x3F,0xFC,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // H +0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // I +0x00,0x00,0x00,0x00,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x70,0xE0,0x70,0xE0,0x70,0xE0,0x79,0xE0,0x3F,0xC0,0x3F,0xC0,0x0F,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // J +0x00,0x00,0x00,0x00,0x38,0x0C,0x38,0x1C,0x38,0x3C,0x38,0x78,0x38,0xF0,0x39,0xE0,0x3B,0xC0,0x3F,0xC0,0x3F,0xE0,0x3E,0xF0,0x3C,0x70,0x38,0x78,0x38,0x3C,0x38,0x3C,0x38,0x1E,0x38,0x0E,0x38,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // K +0x00,0x00,0x00,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1F,0xF8,0x1F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // L +0x00,0x00,0x00,0x00,0xF8,0x1F,0xF8,0x1F,0xFC,0x3F,0xFC,0x3F,0xFC,0x3F,0xEC,0x37,0xEE,0x77,0xEE,0x77,0xEE,0x77,0xE6,0x67,0xE7,0xE7,0xE7,0xE7,0xE7,0xE7,0xE3,0xC7,0xE3,0xC7,0xE3,0xC7,0xE1,0x87,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // M +0x00,0x00,0x00,0x00,0x18,0x1C,0x3C,0x1C,0x3C,0x1C,0x3E,0x1C,0x3E,0x1C,0x3F,0x1C,0x3B,0x1C,0x3B,0x9C,0x39,0x9C,0x39,0xDC,0x38,0xDC,0x38,0xFC,0x38,0x7C,0x38,0x7C,0x38,0x3C,0x38,0x3C,0x38,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // N +0x00,0x00,0x00,0x00,0x07,0xE0,0x0F,0xF0,0x1F,0xF8,0x3C,0x3C,0x38,0x1C,0x78,0x1E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x78,0x1E,0x38,0x1C,0x3C,0x3C,0x1F,0xF8,0x0F,0xF0,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // O + +0x00,0x00,0x00,0x00,0x3F,0xF0,0x3F,0xF8,0x38,0x3C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x38,0x3F,0xF8,0x3F,0xE0,0x38,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // P +0x00,0x00,0x00,0x00,0x07,0xE0,0x0F,0xF0,0x1F,0xF8,0x3C,0x3C,0x38,0x1C,0x78,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x79,0x9E,0x38,0xFC,0x3C,0x7C,0x1F,0xF8,0x0F,0xFE,0x07,0xEF,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Q +0x00,0x00,0x00,0x00,0x3F,0xF8,0x3F,0xFC,0x38,0x1E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x1E,0x3F,0xFC,0x3F,0xF0,0x38,0xE0,0x38,0x70,0x38,0x78,0x38,0x3C,0x38,0x3C,0x38,0x1E,0x38,0x0E,0x38,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // R +0x00,0x00,0x00,0x00,0x07,0xE0,0x1F,0xF0,0x1C,0x38,0x38,0x38,0x38,0x18,0x3C,0x00,0x3F,0x00,0x1F,0xE0,0x0F,0xF8,0x01,0xF8,0x00,0x3C,0x30,0x1C,0x38,0x1C,0x38,0x1C,0x3C,0x38,0x1F,0xF8,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // S +0x00,0x00,0x00,0x00,0x7F,0xFC,0x7F,0xFC,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // T +0x00,0x00,0x00,0x00,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x3C,0x38,0x1F,0xF8,0x0F,0xF0,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // U +0x00,0x00,0x00,0x00,0x38,0x06,0x38,0x0E,0x38,0x0E,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x0E,0x18,0x0E,0x38,0x0E,0x38,0x0E,0x30,0x07,0x70,0x07,0x70,0x07,0x60,0x03,0xE0,0x03,0xE0,0x03,0xC0,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // V +0x00,0x00,0x00,0x00,0xC1,0x83,0xC3,0xC3,0xE3,0xC7,0xE3,0xC7,0xE3,0xC7,0x63,0xC6,0x66,0x66,0x66,0x66,0x76,0x6E,0x76,0x6E,0x36,0x6C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x1C,0x38,0x18,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // W +0x00,0x00,0x00,0x00,0x30,0x0C,0x38,0x1E,0x3C,0x1C,0x1C,0x3C,0x1E,0x78,0x0F,0xF0,0x07,0xF0,0x07,0xE0,0x03,0xC0,0x07,0xE0,0x0F,0xF0,0x1F,0xF8,0x1E,0x78,0x3C,0x3C,0x78,0x1E,0x78,0x1E,0x70,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // X +0x00,0x00,0x00,0x00,0x30,0x18,0x78,0x1C,0x38,0x38,0x3C,0x38,0x1C,0x70,0x1E,0xF0,0x0E,0xE0,0x07,0xC0,0x07,0xC0,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Y +0x00,0x00,0x00,0x00,0x3F,0xF8,0x3F,0xF8,0x00,0x78,0x00,0x78,0x00,0xF0,0x01,0xF0,0x01,0xE0,0x03,0xC0,0x07,0x80,0x07,0x80,0x0F,0x00,0x1E,0x00,0x1E,0x00,0x3C,0x00,0x78,0x00,0x7F,0xFC,0x7F,0xFC,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Z +0x00,0x00,0x01,0xE0,0x01,0xE0,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0xE0,0x01,0xE0,0x00,0x00,0x00,0x00, // [ +0x00,0x00,0x00,0x00,0x0C,0x00,0x1E,0x00,0x0E,0x00,0x0F,0x00,0x07,0x00,0x07,0x00,0x07,0x80,0x03,0x80,0x03,0x80,0x03,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xF0,0x00,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // +0x00,0x00,0x0F,0x80,0x0F,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x0F,0x80,0x0F,0x80,0x00,0x00,0x00,0x00, // ] +0x00,0x00,0x00,0x00,0x03,0x80,0x07,0x80,0x07,0x80,0x07,0xC0,0x0E,0xC0,0x0C,0xE0,0x1C,0xE0,0x1C,0x60,0x38,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ^ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // _ + +0x00,0x00,0x00,0x00,0x1C,0x00,0x3E,0x00,0x63,0x00,0x63,0x00,0x63,0x00,0x3E,0x00,0x1C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ` +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xC0,0x1F,0xE0,0x18,0x70,0x10,0x70,0x00,0xF0,0x0F,0xF0,0x1E,0x70,0x38,0x70,0x38,0x70,0x38,0xF0,0x1F,0xF0,0x0E,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // a +0x00,0x00,0x00,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1C,0x00,0x1D,0xF0,0x1F,0xF8,0x1E,0x38,0x1E,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1C,0x1E,0x1C,0x1E,0x38,0x1F,0xF8,0x1D,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // b +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x0F,0xF0,0x1C,0x70,0x3C,0x38,0x38,0x10,0x38,0x00,0x38,0x00,0x38,0x10,0x3C,0x38,0x1C,0x78,0x0F,0xF0,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // c +0x00,0x00,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x38,0x0F,0xB8,0x1F,0xF8,0x1C,0x78,0x38,0x78,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x78,0x1C,0x78,0x1F,0xF8,0x07,0xB8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // d +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x0F,0xE0,0x1C,0x70,0x38,0x38,0x38,0x38,0x3F,0xF8,0x3F,0xF0,0x38,0x00,0x38,0x10,0x1C,0x38,0x0F,0xF0,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // e +0x00,0x00,0x00,0x00,0x03,0xE0,0x07,0xE0,0x07,0x00,0x07,0x00,0x07,0x00,0x1F,0xC0,0x1F,0xC0,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // f +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0xB8,0x1F,0xF8,0x1C,0x78,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x1C,0x78,0x1F,0xF8,0x07,0xB8,0x10,0x38,0x38,0x38,0x1C,0x70,0x1F,0xF0,0x07,0xC0, // g +0x00,0x00,0x00,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x3B,0xC0,0x3F,0xE0,0x3C,0xF0,0x38,0x70,0x38,0x70,0x38,0x70,0x38,0x70,0x38,0x70,0x38,0x70,0x38,0x70,0x38,0x70,0x38,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // h +0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // i +0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x1F,0x80,0x1F,0x00, // j +0x00,0x00,0x00,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x18,0x0E,0x38,0x0E,0x70,0x0E,0xE0,0x0F,0xC0,0x0F,0xE0,0x0F,0x70,0x0E,0x70,0x0E,0x38,0x0E,0x38,0x0E,0x1C,0x0E,0x0C,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // k +0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // l +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xEF,0x9E,0xFF,0xFF,0xF1,0xE7,0xE1,0xC7,0xE1,0xC7,0xE1,0xC7,0xE1,0xC7,0xE1,0xC7,0xE1,0xC7,0xE1,0xC7,0xE1,0xC7,0xE1,0xC7,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // m +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1D,0xE0,0x1F,0xF0,0x1E,0x78,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // n +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x80,0x1F,0xC0,0x38,0xE0,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x70,0x38,0xE0,0x1F,0xC0,0x0F,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // o + +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3B,0xC0,0x3F,0xF0,0x3C,0x70,0x3C,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x3C,0x38,0x3C,0x70,0x3F,0xF0,0x3B,0xC0,0x38,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x38,0x00, // p +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xB8,0x1F,0xF8,0x1C,0x78,0x38,0x78,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x38,0x78,0x1C,0x78,0x1F,0xF8,0x07,0xB8,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x38,0x00,0x38, // q +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0xE0,0x0F,0xF0,0x0F,0x10,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // r +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x0F,0xF0,0x1C,0x70,0x1C,0x30,0x1F,0x00,0x0F,0xE0,0x03,0xF0,0x00,0x78,0x1C,0x38,0x1E,0x38,0x0F,0xF0,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // s +0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x07,0xE0,0x0F,0xE0,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0xF0,0x01,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // t +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x1E,0x78,0x0F,0xF8,0x07,0xB8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // u +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x1C,0x38,0x1C,0x38,0x0C,0x30,0x0E,0x70,0x0E,0x70,0x06,0x60,0x07,0xE0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // v +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC1,0x83,0xE3,0xC7,0xE3,0xC7,0x63,0xC6,0x67,0xE6,0x76,0x6E,0x36,0x6C,0x36,0x6C,0x3E,0x7C,0x1C,0x38,0x1C,0x38,0x1C,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // w +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0x38,0x3C,0x78,0x1E,0xF0,0x0F,0xE0,0x07,0xC0,0x07,0xC0,0x0F,0xE0,0x0E,0xE0,0x1E,0xF0,0x3C,0x78,0x38,0x38,0x30,0x38,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // x +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x1C,0x38,0x1C,0x38,0x0C,0x30,0x0E,0x70,0x0E,0x70,0x06,0x60,0x07,0x60,0x07,0xE0,0x03,0xC0,0x03,0xC0,0x03,0xC0,0x01,0x80,0x03,0x80,0x03,0x80,0x1F,0x00,0x1E,0x00, // y +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xF8,0x3F,0xF8,0x00,0x78,0x00,0xF0,0x01,0xE0,0x03,0xC0,0x07,0x80,0x07,0x00,0x0E,0x00,0x1E,0x00,0x3F,0xF8,0x3F,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // z +0x00,0x70,0x00,0xF0,0x01,0xF0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x03,0x80,0x07,0x80,0x07,0x80,0x03,0x80,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x01,0xF0,0x00,0xF0,0x00,0x70,0x00,0x00,0x00,0x00, // { +0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00, // | +0x1C,0x00,0x1E,0x00,0x1F,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x03,0x80,0x03,0xC0,0x03,0xC0,0x03,0x80,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x07,0x00,0x1F,0x00,0x1E,0x00,0x1C,0x00,0x00,0x00,0x00,0x00, // } +0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x08,0x3F,0xF8,0x3F,0xF8,0x20,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ~ +}; +#endif diff --git a/Kernel/platform/platform-rpipico/fonts/Inconsola.h b/Kernel/platform/platform-rpipico/fonts/Inconsola.h new file mode 100644 index 000000000..0de089480 --- /dev/null +++ b/Kernel/platform/platform-rpipico/fonts/Inconsola.h @@ -0,0 +1,292 @@ +// Inconsola2.c +// Font type : Full (95 characters) +// Font size : 24x32 pixels +// Memory usage : 9124 bytes +const int Inconsola[2281] = { +0x5F202018, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x3C000018,0x003C0000,0x00003C00,0x3C00003C,0x003C0000,0x00001C00,0x1800001C, +0x00180000,0x00001800,0x18000018,0x00180000,0x00001800,0x18000018,0x00000000,0x00000000, +0x18000000,0x003C0000,0x00003C00,0x0000003C,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xE10180C0,0xE0E101E0,0x00E0F101,0x6000E0E0,0xC0E000E0,0x01C0C100,0x03038081, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xE1000000,0x80E10080,0x0080C100,0xC30080C3,0x00C30080,0x1FF0FF0F,0xC301F0FF, +0x00C30100,0x01008301,0x87010087,0x00860100,0x1FE0FF1F,0x8601E0FF,0x00860300,0x03000603, +0x0E030006,0x000E0300,0x00000C03,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x18000000,0x00180000,0x0100FE00,0x9B0380FF,0xC01807E0,0x07801807,0x18070018, +0x00980300,0x0000F803,0x7F0000FC,0xC01F0000,0x00C01900,0x1800E018,0x60180060,0x06601804, +0x190FE018,0x80FF03C0,0x0000FF01,0x18000018,0x00180000,0x00000000,0x00000000,0x00000000, +0x00000000,0xC0010000,0x70E00700,0x0E607007,0x300CE030,0x80310CC0,0x0680330E,0xE7070073, +0x00C60300,0x00000E00,0x1C00000C,0x00180000,0x00003000,0x6300E071,0x38E600F0,0x0118C600, +0x860118C6,0x38860318,0x06F00303,0x0000E001,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xFC010020,0x00FE0300,0x03008E03,0x07070006,0x00060300,0x03008603,0xDC01008E, +0x00F80000,0x0300F000,0xB80700F0,0x601C0740,0x0E701C0E,0x070CE00E,0xC0031CC0,0x0E80030C, +0x1E0FC007,0xF0FC07E0,0x0060F803,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x3C000018,0x003C0000,0x00003C00,0x0C00001C,0x00180000,0x00001800,0x60000030, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000100,0x0F000007,0x001C0080,0x00003800,0x70000070,0x00E00000,0x0100C000,0xC00100C0, +0x00800100,0x03008001,0x80030080,0x00800300,0x03008003,0x80010080,0x00800100,0x0100C001, +0xE00000C0,0x00E00000,0x00007000,0x38000078,0x001C0000,0x00000F00,0x03008007,0x00000000, +0x00008000,0xF00000E0,0x00780000,0x00001C00,0x0700000E,0x00070000,0x00800300,0x01008003, +0xC00100C0,0x00C00000,0x0000C000,0xE00000C0,0x00E00000,0x0000C000,0xC00100C0,0x00C00100, +0x03008001,0x80030080,0x00000700,0x1E00000E,0x003C0000,0x00007800,0xC00000F0,0x00800000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x001C0000,0x00001C00,0x1C04001C, +0x70180710,0x01F0C907,0x3C00C0FF,0x003C0000,0x00007600,0xE3000063,0xC0C10180,0x00C08103, +0x00008080,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x1C000000,0x001C0000,0x00001C00,0x1C00001C, +0x001C0000,0x07001C00,0xFF07F0FF,0x001C00F0,0x00001C00,0x1C00001C,0x001C0000,0x00001C00, +0x0000001C,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00060000,0x00000F00, +0x0F00000F,0x00070000,0x00000300,0x06000006,0x000C0000,0x00001800,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x03000000,0xFF03E0FF,0x000000E0,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x1E00000C,0x001E0000,0x00001E00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00004000,0xE00000E0,0x00C00000,0x0100C001,0x80030080,0x00000300,0x07000007, +0x000E0000,0x00000E00,0x1C00001C,0x00380000,0x00003800,0x70000030,0x00600000,0x0000E000, +0xC00100C0,0x00800100,0x03008003,0x00070080,0x00000100,0x00000000,0x00000000,0x00000000, +0x00000000,0xFC000010,0x00FE0100,0x0300C703,0x01078083,0xC0010680,0x0EC00306,0x0E0EC007, +0xE01C0EC0,0x0CE0180C,0x700EE038,0xE0E00EE0,0x0FC0C00E,0x8007C0C0,0xC00107C0,0x03800107, +0xC7038083,0x00FE0000,0x00007C00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x0E000000,0x003E0000,0x0000FE01,0x060000C6,0x00060000,0x00000600,0x06000006, +0x00060000,0x00000600,0x06000006,0x00060000,0x00000600,0x06000006,0x00060000,0x00000600, +0x06000006,0x00060000,0x00000600,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xFE000010,0x00FF0100,0x07808703,0x0102C001,0xC00100C0,0x00C00000,0x0100C001, +0x800300C0,0x00800300,0x0E000007,0x001C0000,0x00003800,0xE0000070,0x00C00100,0x03008003, +0x00070080,0xC0FF0720,0x00C0FF07,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xFC000000,0x00FF0300,0x02000707,0x01008003,0x80010080,0x00800100,0x07008003, +0x001E0000,0x00007C00,0x0700007F,0x80030080,0x00C00100,0x0100C001,0xC00100C0,0x02C00102, +0x87078003,0x00FF0380,0x0000FC01,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x07000000,0x000F0000,0x00000F00,0x3F00001F,0x00370000,0x00006700,0xC7000067, +0x00C70100,0x03008701,0x07070007,0x00070600,0x0FE0FF0F,0xFF0FE0FF,0x000700E0,0x00000700, +0x07000007,0x00070000,0x00000700,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xFF030000,0xC0FF03C0,0x03000003,0x00030000,0x00000300,0x07000003,0xFE070000, +0x00FF0700,0x07808707,0x0100C001,0xC00000C0,0x00E00000,0x0000E000,0xC00000E0,0x0EC00102, +0x8707C001,0x00FF0380,0x0000FE01,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x7F000008,0xC0FF0000,0x0380C101,0x00038080,0x00000700,0x06000007,0x3E060000, +0x00FF0600,0x0780C707,0x01078081,0xC00006C0,0x06C00006,0x0006C000,0xC00007C0,0x03C00103, +0xC301C081,0x00FF0080,0x00007E00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xFF070000,0xC0FF07C0,0x00C00100,0x03008003,0x00030080,0x00000700,0x0E000007, +0x000E0000,0x00000C00,0x1C00001C,0x00380000,0x00003800,0x70000038,0x00700000,0x00007000, +0xE00000E0,0x00E00000,0x0000C001,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xFE000018,0x00FF0100,0x03808303,0x01078001,0xC00107C0,0x03C00103,0xC7018083, +0x00FE0000,0x01007C00,0xC70300FF,0x80030780,0x06C00107,0x000EC000,0xC0000EE0,0x07C00006, +0x8307C001,0x80FF0380,0x0000FE00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xFE000010,0x00FF0100,0x07808703,0x01078003,0xC00106C0,0x06C00006,0x0006C000, +0xC00007C0,0x03C00107,0xFE03C083,0xC0FC00C0,0x00C02000,0x0100C001,0xC00100C0,0x02800300, +0x0F038003,0x00FE0700,0x0000F801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00001800,0x3C00003C,0x003C0000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00001800,0x3C00003C,0x003C0000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000C00,0x1E00001E,0x001E0000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000C00,0x1E00001E,0x001E0000,0x00000E00, +0x0C000006,0x000C0000,0x00001800,0x00000030,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00002000,0xE00300E0,0x00800F00,0xF800003E, +0x00E00300,0x1E00800F,0x001E0000,0x00800F00,0x0000E003,0x7C0000F0,0x001F0000,0x00C00700, +0x0000E001,0x200000E0,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x07F0FF07,0x0000F0FF, +0x00000000,0x00000000,0x00000000,0xF0FF0700,0x07F0FF07,0x0000F0FF,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x08000000,0x000E0000,0x00800F00,0x0000E003,0x3E0000F8, +0x000F0000,0x00C00300,0x0000E000,0xC00300E0,0x00800F00,0x7800003E,0x00F00100,0x1F00C007, +0x001C0000,0x00001800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x3E000000,0x80FF0000,0x07C0FF01,0x0003C081,0xE00001E0,0x00E00000,0x0000E000, +0xE00100E0,0x00C00300,0x07008007,0x000E0000,0x00000C00,0x1C00000C,0x001C0000,0x00000000, +0x00000000,0x000C0000,0x00001E00,0x1E00001E,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x1C000000,0x00FF0000,0x0380E701,0x0007C081,0x600006E0,0x0C60000E,0x1F0CE003, +0x603C1CE0,0x1860701C,0x60186060,0x60601C60,0x1CE0701C,0x3F0CE079,0x000E0CE0,0x0700000E, +0x80030000,0xC0C00300,0x00C0FF00,0x0000807F,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x30000020,0x00300000,0x00003000,0x78000078,0x00780000,0x0000FC00,0xCE0000CC, +0x00860100,0x01008601,0x03030087,0x80030300,0x0780FF03,0x010680FF,0xC0010EC0,0x0CC0000E, +0x001CE000,0x70001CE0,0x00700018,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xFE0F0000,0x00FF0F00,0x0C80070C,0x010CC001,0xC0000CC0,0x0CC0010C,0x030CC001, +0x00FF0F80,0x0F00FE0F,0x030C80FF,0xC0010CC0,0x0CE0000C,0x000CE000,0xE0000CE0,0x0CE0000C, +0x070CC001,0x80FF0FC0,0x0000FC0F,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x7F000008,0xC0FF0100,0x07E0C103,0x0007E080,0x00000E70,0x0E00000E,0x000C0000, +0x00000C00,0x0C00000C,0x000C0000,0x00000C00,0x0E00000C,0x000E0000,0x00000700,0x03400007, +0xC103E080,0x80FF00C0,0x00007F00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xFC0F0000,0x00FF0F00,0x0C800F0C,0x010C8003,0xC0010CC0,0x0CE0000C,0x000CE000, +0xE0000CE0,0x0CE0000C,0x000C6000,0xE0000C60,0x0CE0000C,0x000CE000,0xC0010CC0,0x0CC0010C, +0x0F0C8003,0x00FE0F00,0x0000F80F,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xFF0F0000,0xE0FF0FE0,0x0E00000E,0x000E0000,0x00000E00,0x0E00000E,0x000E0000, +0x00000E00,0x0F00FF0F,0x000E00FF,0x00000E00,0x0E00000E,0x000E0000,0x00000E00,0x0E00000E, +0x000E0000,0xC0FF0F00,0x00C0FF0F,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xFF070000,0xC0FF07C0,0x07000007,0x00070000,0x00000700,0x07000007,0x00070000, +0x00FF0700,0x0700FF07,0x000700FF,0x00000700,0x07000007,0x00070000,0x00000700,0x07000007, +0x00070000,0x00000700,0x00000007,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x7F000004,0xC0FF0080,0x03E0E001,0x80037080,0x00000720,0x06000007,0x00060000, +0x00000600,0x0E00000E,0x030E0000,0xF0030EF0,0x06300006,0x00073000,0x30000730,0x03308003, +0xE00130C0,0xE0FF00F0,0x00803F00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x000E0000,0xE0000EE0,0x0EE0000E,0x000EE000,0xE0000EE0,0x0EE0000E,0x000EE000, +0xE0000EE0,0x0FE0FF0F,0x000EE0FF,0xE0000EE0,0x0EE0000E,0x000EE000,0xE0000EE0,0x0EE0000E, +0x000EE000,0xE0000EE0,0x00E0000E,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xFF070000,0x80FF0780,0x00003000,0x30000030,0x00300000,0x00003000,0x30000030, +0x00300000,0x00003000,0x30000030,0x00300000,0x00003000,0x30000030,0x00300000,0x00003000, +0x30000030,0x80FF0700,0x0080FF07,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xFF000000,0xE0FF00E0,0x00000700,0x07000007,0x00070000,0x00000700,0x07000007, +0x00070000,0x00000700,0x07000007,0x00070000,0x00000700,0x06000007,0x00060000,0x04000E00, +0x1C0F000E,0x00F80700,0x0000F803,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x02000000,0x010CA000,0x80030CC0,0x0C80070C,0x0E0C0007,0x001C0C00,0x0C00380C,0xE00C0070, +0x00C00D00,0x0F00E00F,0x700E00E0,0x00380C00,0x0C003C0C,0x0E0C001C,0x000F0C00,0x0C00070C, +0x010C8003,0xE0010CC0,0x00F0000C,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00070000,0x00000700,0x07000007,0x00070000,0x00000700,0x07000007,0x00070000, +0x00000700,0x07000007,0x00070000,0x00000700,0x07000007,0x00070000,0x00000700,0x07000007, +0x00070000,0xE0FF0700,0x00E0FF07,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x000C0000,0xE0000E60,0x0FE0000E,0x010FE001,0xE0830FE0,0x0D60830F,0xC60C60C7, +0x60EE0C60,0x0C606C0C,0x380C6078,0x60300C60,0x0C60100C,0x000C6000,0x60000C60,0x0C60000C, +0x000C6000,0x60000C60,0x0060000C,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x000E0000,0xE0000EE0,0x0FE0000F,0x800FE080,0xE0C00DE0,0x0CE0C00D,0x600CE0E0, +0xE0700CE0,0x0CE0380C,0x1C0CE038,0xE01C0CE0,0x0CE00E0C,0x070CE00E,0xE0030CE0,0x0CE0030C, +0x010CE001,0xE0000CE0,0x00E0000C,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xFE000000,0x80FF0100,0x07808303,0x000EC001,0xE0000EC0,0x1CE0000C,0x001C6000, +0x70001C60,0x1C70001C,0x001C7000,0x70001C70,0x0C60001C,0x000E6000,0xE0000EE0,0x07C00107, +0xC703C081,0x00FF0180,0x0000FE00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xFF0F0000,0x80FF0F00,0x0EC0030E,0x000EC001,0xE0000EE0,0x0EE0000E,0x000EE000, +0xC0010EE0,0x0F80FF0F,0xFC0F00FF,0x00000E00,0x0E00000E,0x000E0000,0x00000E00,0x0E00000E, +0x000E0000,0x00000E00,0x0000000E,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x7F000008,0xC0FF0000,0x03C0C101,0x0007E080,0x70000760,0x0E700006,0x000E3000, +0x38000E30,0x0E38000E,0x000E3800,0x38000E38,0x0630000E,0x00073000,0x70000730,0x03600003, +0xE301E080,0x80FF00C0,0x00007E00,0x0C00001C,0x000E0000,0x00F00F00,0x0000F007,0x00000000, +0x00000000,0xFF0F0000,0x80FF0F00,0x0EC0030E,0x000EC001,0xE0000EE0,0x0EE0000E,0x010EE000, +0xC0030EC0,0x0F80FF0F,0xFC0F00FF,0x000C0E00,0x0E000E0E,0x070E0007,0x80030E00,0x0E80030E, +0x010EC001,0xE0000EC0,0x00E0000E,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x7F000000,0xC0FF0080,0x03E0C001,0x80036080,0x00800340,0x03008003,0xE0010080, +0x00F80000,0x00007E00,0x0700801F,0xE00100C0,0x00F00000,0x00007000,0x70000070,0x07700002, +0xC107E000,0xC0FF01E0,0x0000FF00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xFF0F0000,0xF0FF0FF0,0x00001800,0x18000018,0x00180000,0x00001800,0x18000018, +0x00180000,0x00001800,0x18000018,0x00180000,0x00001800,0x18000018,0x00180000,0x00001800, +0x18000018,0x00180000,0x00001800,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x000E0000,0x60000C60,0x0C60000C,0x000C6000,0x60000C60,0x0C60000C,0x000C6000, +0x60000C60,0x0C60000C,0x000C6000,0x60000C60,0x0C60000C,0x000E6000,0xE0000EE0,0x07E0000E, +0x8307C001,0x80FF03C0,0x0000FE00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x001C0000,0x60000C70,0x0EE0000E,0x0006E000,0xC00107C0,0x03C00107,0x81038001, +0x80830380,0x01008301,0xC70100C3,0x00C60000,0x0000E600,0x6C0000EE,0x007C0000,0x00007C00, +0x38000038,0x00380000,0x00001000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00180000,0x30101830,0x1C30101C,0x181C3018,0x60380C70,0x0C603C0C,0x6C0C603C, +0x606C0E60,0x06606E0E,0xC606C066,0xC0C606C0,0x07C0C706,0x8307C083,0x808307C0,0x03808303, +0x01038001,0x80010380,0x00800103,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x000E2000,0xC00107C0,0x03800107,0x83038083,0x00C70100,0x0000CE01,0x7C0000EE, +0x007C0000,0x00003800,0x7C000038,0x007C0000,0x0000EE00,0xC70100CE,0x80830300,0x07808303, +0x0107C001,0xE0000EC0,0x00F0000E,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x000F0800,0x70000730,0x03608003,0xC001E080,0xC0C101C0,0x00C0E100,0x730080E3, +0x00770080,0x00003F00,0x1E00003E,0x001C0000,0x00001C00,0x1C00001C,0x001C0000,0x00001C00, +0x1C00001C,0x001C0000,0x00001C00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xFF0F0000,0xE0FF0FE0,0x00C00100,0x0300C001,0x00030080,0x00000700,0x0E00000E, +0x001C0000,0x00003800,0x70000038,0x00700000,0x0100E000,0xC00100C0,0x00800300,0x07008003, +0x000E0000,0xE0FF0F10,0x00E0FF0F,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x03000000,0xFF0380FF,0x00000380,0x03000003,0x00030000,0x00000300,0x03000003,0x00030000, +0x00000300,0x03000003,0x00030000,0x00000300,0x03000003,0x00030000,0x00000300,0x03000003, +0x00030000,0x00000300,0x03000003,0x00030000,0x80FF0300,0x0080FF03,0x00000000,0x00000000, +0x00000000,0x80030080,0x00C00100,0x0000C001,0xE00000E0,0x00700000,0x00007000,0x38000038, +0x00180000,0x00001C00,0x0E00000C,0x00060000,0x00000700,0x03000007,0x80030080,0x00C00100, +0x0000C001,0xE00000E0,0x00600000,0x00007000,0x20000030,0x00000000,0x00000000,0x00000000, +0x01000000,0xFF01C0FF,0xC00100C0,0x00C00100,0x0100C001,0xC00100C0,0x00C00100,0x0100C001, +0xC00100C0,0x00C00100,0x0100C001,0xC00100C0,0x00C00100,0x0100C001,0xC00100C0,0x00C00100, +0x0100C001,0xC00100C0,0x00C00100,0x0100C001,0xC0FF01C0,0x00C0FF01,0x00000000,0x00000000, +0x00000000,0x08000000,0x001C0000,0x00001E00,0x7700003E,0x00630000,0x0080E300,0x810180C1, +0x808003C0,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x0F000000,0xFF0FF0FF,0x000000F0,0x00000000,0x00000000,0x00000000, +0x00000000,0x3C000000,0x00FE0000,0x0100C701,0x83010083,0x00830100,0x01008301,0xFE0000C7, +0x007C0000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00080000,0x03007F00,0x8101C0FF, +0xE00001E0,0x00600000,0x00006000,0xE03F0060,0x03E0FF01,0x000760C0,0x60000760,0x07E00007, +0x8307E001,0x60FF03E0,0x0060FC01,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00070000,0x00000700,0x07000007,0x00070000,0x00040700,0x07003F07,0xC107C07F, +0xE08007C0,0x07F00007,0x00077000,0x70000770,0x07700007,0x00077000,0x70000770,0x07E08007, +0xC307E080,0x807F07C0,0x00003F06,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0300FF00,0x830780FF, +0x800007C0,0x0C80000E,0x001C0000,0x00001C00,0x1C00001C,0x001C0000,0x00000E00,0x0700000E, +0xC3078001,0x80FF03C0,0x0000FE00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0xC00000C0,0x00C00000,0x0000C000,0xC02000C0,0x03C0FC01,0x8307C0FE, +0xC00107C0,0x0EC0010E,0x000EC001,0xC0000CC0,0x0EC0000C,0x010EC000,0xC0010EC0,0x07C0010E, +0x8707C003,0xC0FE03C0,0x00E0FC00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00100000,0x0100FE00,0x830300FF, +0xC0010780,0x0EC00006,0x000EC000,0xE0FF0FE0,0x0EE0FF0F,0x000E0000,0x00000E00,0x07000006, +0xC1038000,0x80FF01C0,0x0000FF00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x0F000000,0xE03F00C0,0x00707800,0xE0002070,0x00E00020,0x0000E000,0xE00000E0, +0x00FF0F00,0x0000FF0F,0xE00000E0,0x00E00000,0x0000E000,0xE00000E0,0x00E00000,0x0000E000, +0xE00000E0,0x00E00000,0x0000E000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x20300000,0x03F0FC01,0x0707F0DF, +0x00030600,0x0E80030E,0x03068003,0x00070700,0x03008F07,0xF80300FE,0x00000700,0x07000006, +0xFF070000,0xC0FF0300,0x0CE00106,0x000CE000,0xE0001C60,0x0FC0010E,0xFF0380FF,0x00000000, +0x00000000,0x00070000,0x00000600,0x06000006,0x00060000,0x00000600,0x06000006,0x3F060004, +0x807F0600,0x07C0C306,0x0107C081,0xC00007C0,0x06C00006,0x0006C000,0xC00006C0,0x06C00006, +0x0006C000,0xC00006C0,0x00C00006,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x38000010,0x00380000,0x00003800,0x00000000,0x00000000,0x03000000,0xF80300F8, +0x00380000,0x00003800,0x38000038,0x00380000,0x00003800,0x38000038,0x00380000,0x00003800, +0x38000038,0x80FF0300,0x0080FF03,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x01008000,0xC00100C0,0x00C00100,0x00000000,0x00000000,0x00C07F00,0x0100C07F, +0xC00100C0,0x00C00100,0x0100C001,0xC00100C0,0x00C00100,0x0100C001,0xC00100C0,0x00C00100, +0x0100C001,0xC00100C0,0x00C00100,0x0301C001,0x80870380,0x0000FF03,0x100000FE,0x00000000, +0x00000000,0x000F0000,0x00000E00,0x0E00000E,0x000E0000,0x00000E00,0x0E00000E,0x030EE001, +0x00070E80,0x0E000E0E,0x380E001C,0x00700E00,0x0F00F00F,0x3C0F00B8,0x001E0E00,0x0E000E0E, +0x030E0007,0xC0030E80,0x00E0010E,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0xF8070000,0x00F80700,0x00003800,0x38000038,0x00380000,0x00003800,0x38000038, +0x00380000,0x00003800,0x38000038,0x00380000,0x00003800,0x38000038,0x00380000,0x00003800, +0x38000038,0xC0FF0F00,0x00C0FF0F,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x40200000,0x0FF0F90E,0x1E0F70FB, +0x381C0E30,0x0E381C0E,0x1C0E381C,0x381C0E38,0x0E381C0E,0x1C0E381C,0x381C0E38,0x0E381C0E, +0x1C0E381C,0x381C0E38,0x00381C0E,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00040000,0x03801F03,0x6103C03F, +0xE0C003E0,0x03E08003,0x0003E080,0x60000360,0x03600003,0x00036000,0x60000360,0x03600003, +0x00036000,0x60000360,0x00600003,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00100000,0x0100FE00,0x830300FF, +0xC0010780,0x0EE0010E,0x000EE000,0xE0000CE0,0x0E60000C,0x000EE000,0xE0000EE0,0x07E0000F, +0x8303C001,0x00FF0180,0x0000FE00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00080000,0x0E007F0E,0x830F80FF, +0xC0010FC0,0x0EE0000E,0x000EE000,0xE0000EE0,0x0E60000E,0x000EE000,0xE0000EE0,0x0FE0000E, +0x830FC001,0x80FF0E80,0x0E007E0E,0x000E0000,0x00000E00,0x0E00000E,0x000E0000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00080000,0x01707E00,0xC10370FF, +0xF08003F0,0x07F00007,0x00077000,0x70000670,0x07700006,0x00077000,0xF0000770,0x03F00007, +0xC303F081,0x70FF01F0,0x00707E00,0x00007000,0x70000070,0x00700000,0x00007000,0x00000070, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00040000,0x06803F07,0xE006C07F, +0x80C007C0,0x07008007,0x00070000,0x00000700,0x06000006,0x00060000,0x00000600,0x06000006, +0x00060000,0x00000600,0x00000006,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00100000,0x0100FF00,0x810380FF, +0x800007C0,0x03800007,0xE0030080,0x00FC0100,0x00007F00,0x0300C00F,0xC00100C0,0x06C00004, +0x830FC001,0x80FF03C0,0x0000FE01,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00700000,0x00007000,0x60000070,0x00600000,0x0780FF07,0x600080FF, +0x00600000,0x00006000,0xE00000E0,0x00E00000,0x0000E000,0xE00000E0,0x00E00000,0x0000E000, +0x78004070,0xE07F00C0,0x00803F00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x0EC0000E,0x000EC000, +0xC0000EC0,0x0EC0000E,0x000EC000,0xC0000EC0,0x0EC0000E,0x000EC000,0xC0010EC0,0x07C00107, +0x8707C003,0xC0FC03C0,0x00E0F801,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x07700007,0x00037000, +0x60800360,0x01E08003,0xC001C0C0,0xC0C101C0,0x0080E100,0x630080E3,0x00770000,0x00007600, +0x3E00003E,0x001C0000,0x00003C00,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x18300018,0x38183010, +0x60381C70,0x0C60380C,0x6C0C603C,0x606C0C60,0x06606C0E,0xC6064066,0xC0C606C0,0x07C0C707, +0x8303C083,0x808303C0,0x00808103,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x03E00007,0xC101C081, +0x80C301C0,0x0000E700,0x3E000077,0x003C0000,0x00001C00,0x7E00003E,0x00770000,0x0180E300, +0x8101C0C1,0xE08003C0,0x00700007,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0xE0000E00,0x07E0000E,0x0007C000, +0xC00103C0,0x03808103,0xC3018081,0x00C30180,0x0000C700,0xE60000E7,0x007E0000,0x00007C00, +0x3C00003C,0x00380000,0x00003800,0x70000030,0x00600800,0x0F00E01F,0x000200C0,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x07C0FF07,0x0300C0FF, +0x80070080,0x00000700,0x1C00000E,0x00380000,0x00007800,0xE0000070,0x00C00100,0x07008003, +0x000F0080,0xE0FF0F20,0x00E0FF0F,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x1F00C007,0x003C00C0,0x00003000,0x70000070,0x00700000,0x00007000,0x70000070, +0x00700000,0x00006000,0xC00700E0,0x00800700,0x0000C003,0x600000E0,0x00700000,0x00007000, +0x70000070,0x00700000,0x00007000,0x70000070,0x00780000,0x00003C00,0x0700C01F,0x000000C0, +0x00000000,0x1C00001C,0x001C0000,0x00001C00,0x1C00001C,0x001C0000,0x00001C00,0x1C00001C, +0x001C0000,0x00001C00,0x1C00001C,0x001C0000,0x00001C00,0x1C00001C,0x001C0000,0x00001C00, +0x1C00001C,0x001C0000,0x00001C00,0x1C00001C,0x001C0000,0x00001C00,0x1C00001C,0x00000000, +0x01000000,0xFE0100F8,0x000F0000,0x00000700,0x03000003,0x80030080,0x00800300,0x03008003, +0x80030080,0x00800300,0x0000C001,0x780000F8,0x00E00000,0x03008001,0x80030080,0x00800300, +0x03008003,0x80030080,0x00800300,0x03008003,0x00070080,0x01000F00,0xF80100FE,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +0x00000000,0x00000000,0xE0030000,0x70F80720,0x0CE03F0E,0x0700C00F,0x00000000,0x00000000, +0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000,0x00000000, +}; diff --git a/Kernel/platform/platform-rpipico/fonts/Misc_12x20_LE.h b/Kernel/platform/platform-rpipico/fonts/Misc_12x20_LE.h new file mode 100644 index 000000000..b8460e61a --- /dev/null +++ b/Kernel/platform/platform-rpipico/fonts/Misc_12x20_LE.h @@ -0,0 +1,106 @@ +// Misc_12x20_LE.c +// Font type : Full (95 characters) +// Font size : 12x20 pixels +// Memory usage : 2854 bytes +#ifndef Misc_12x20_LE_h +#define Misc_12x20_LE_h + +const unsigned char Misc_12x20_LE[2854] = { +0x0C,0x14,0x20,0x5F, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // +0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x60,0x06,0x00,0x60,0x06,0x00,0x60,0x02,0x00,0x20,0x00,0x00,0x00,0x06,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00, // ! +0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0xC0,0xCC,0x0C,0xC0,0x44,0x04,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // " +0x00,0x00,0x00,0x00,0x00,0x48,0x04,0x80,0x48,0x04,0x80,0x48,0x1F,0xC0,0x90,0x09,0x00,0x90,0x3F,0x80,0x90,0x09,0x00,0x90,0x09,0x00,0x90,0x00,0x00,0x00, // # +0x00,0x00,0x00,0x00,0x00,0x20,0x02,0x00,0xE8,0x11,0x81,0x08,0x10,0x00,0xC0,0x03,0x00,0x08,0x10,0x81,0x88,0x17,0x00,0x20,0x02,0x00,0x20,0x00,0x00,0x00, // $ +0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x01,0x10,0x11,0x01,0x10,0x0E,0x60,0x38,0x0C,0x03,0x38,0x04,0x40,0x44,0x04,0x40,0x38,0x00,0x00,0x00,0x00,0x00,0x00, // % +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x80,0x08,0x00,0x80,0x04,0x00,0xE8,0x11,0x01,0x10,0x13,0x00,0xCC,0x00,0x00,0x00,0x00,0x00,0x00, // & +0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x30,0x06,0x00,0x40,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ' +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,0x10,0x01,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x10,0x01,0x00,0x08,0x00,0x00,0x00, // ( +0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x40,0x04,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x40,0x04,0x00,0x80,0x00,0x00,0x00, // ) +0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x20,0x02,0x01,0xFC,0x02,0x00,0x50,0x08,0x80,0x88,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // * +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x20,0x02,0x00,0x20,0x3F,0xE0,0x20,0x02,0x00,0x20,0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // + +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x30,0x06,0x00,0x40,0x08,0x00,0x00, // , +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // - +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00, // . +0x00,0x00,0x00,0x00,0x00,0x04,0x00,0x40,0x08,0x00,0x80,0x10,0x01,0x00,0x20,0x02,0x00,0x40,0x04,0x00,0x80,0x08,0x01,0x00,0x10,0x02,0x00,0x20,0x00,0x00, // +0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x88,0x10,0x41,0x04,0x10,0x41,0x04,0x10,0x41,0x04,0x10,0x41,0x04,0x08,0x80,0x70,0x00,0x00,0x00,0x00,0x00,0x00, // 0 +0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x01,0xA0,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x01,0xFC,0x00,0x00,0x00,0x00,0x00,0x00, // 1 +0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x88,0x10,0x41,0x04,0x00,0x40,0x08,0x01,0x00,0x20,0x04,0x00,0x84,0x10,0x43,0xFC,0x00,0x00,0x00,0x00,0x00,0x00, // 2 +0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x01,0x08,0x00,0x40,0x04,0x00,0x80,0x70,0x00,0x80,0x04,0x00,0x40,0x04,0x10,0x80,0xF0,0x00,0x00,0x00,0x00,0x00,0x00, // 3 +0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x28,0x02,0x80,0x48,0x04,0x80,0x88,0x08,0x81,0x08,0x1F,0xC0,0x08,0x00,0x80,0x3C,0x00,0x00,0x00,0x00,0x00,0x00, // 4 +0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0x81,0x00,0x10,0x01,0x00,0x17,0x01,0x88,0x00,0x40,0x04,0x00,0x40,0x04,0x30,0x80,0xF0,0x00,0x00,0x00,0x00,0x00,0x00, // 5 +0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0xC0,0x08,0x01,0x00,0x10,0x01,0x70,0x18,0x81,0x04,0x10,0x41,0x04,0x08,0x80,0x70,0x00,0x00,0x00,0x00,0x00,0x00, // 6 +0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xC1,0x04,0x00,0x40,0x04,0x00,0x80,0x08,0x00,0x80,0x08,0x01,0x00,0x10,0x01,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00, // 7 +0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x88,0x10,0x41,0x04,0x08,0x80,0x70,0x08,0x81,0x04,0x10,0x41,0x04,0x08,0x80,0x70,0x00,0x00,0x00,0x00,0x00,0x00, // 8 +0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x88,0x10,0x41,0x04,0x10,0x40,0x8C,0x07,0x40,0x04,0x00,0x40,0x08,0x01,0x80,0xE0,0x00,0x00,0x00,0x00,0x00,0x00, // 9 +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00, // : +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x00,0x60,0x0C,0x00,0x80,0x10,0x00,0x00, // ; +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x18,0x06,0x01,0x80,0x60,0x01,0x80,0x06,0x00,0x18,0x00,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // < +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFE,0x00,0x00,0x00,0x3F,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // = +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x60,0x01,0x80,0x06,0x00,0x18,0x00,0x60,0x18,0x06,0x01,0x80,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // > +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x10,0x41,0x04,0x00,0x40,0x04,0x03,0x80,0x20,0x02,0x00,0x00,0x03,0x00,0x30,0x00,0x00,0x00,0x00,0x00,0x00, // ? +0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x88,0x10,0x41,0x04,0x11,0xC1,0x24,0x12,0x41,0x24,0x11,0xE1,0x00,0x10,0x00,0x86,0x07,0x80,0x00,0x00,0x00,0x00, // @ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xE0,0x02,0x00,0x50,0x05,0x00,0x88,0x08,0x81,0x04,0x1F,0xC2,0x02,0x20,0x27,0x8F,0x00,0x00,0x00,0x00,0x00,0x00, // A +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,0x10,0x81,0x04,0x10,0x41,0x08,0x1F,0x81,0x04,0x10,0x21,0x02,0x10,0x43,0xF8,0x00,0x00,0x00,0x00,0x00,0x00, // B +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7A,0x18,0x61,0x02,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x01,0x02,0x18,0x40,0x78,0x00,0x00,0x00,0x00,0x00,0x00, // C +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF0,0x10,0xC1,0x04,0x10,0x21,0x02,0x10,0x21,0x02,0x10,0x21,0x04,0x10,0xC3,0xF0,0x00,0x00,0x00,0x00,0x00,0x00, // D +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFC,0x10,0x41,0x04,0x10,0x41,0x20,0x1E,0x01,0x20,0x10,0x41,0x04,0x10,0x43,0xFC,0x00,0x00,0x00,0x00,0x00,0x00, // E +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFC,0x10,0x41,0x04,0x10,0x41,0x20,0x1E,0x01,0x20,0x10,0x01,0x00,0x10,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x00, // F +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7A,0x18,0x61,0x02,0x20,0x02,0x00,0x20,0x02,0x0F,0x20,0x21,0x02,0x18,0x40,0x78,0x00,0x00,0x00,0x00,0x00,0x00, // G +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x8E,0x10,0x41,0x04,0x10,0x41,0x04,0x1F,0xC1,0x04,0x10,0x41,0x04,0x10,0x43,0x8E,0x00,0x00,0x00,0x00,0x00,0x00, // H +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFC,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x01,0xFC,0x00,0x00,0x00,0x00,0x00,0x00, // I +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x80,0x08,0x00,0x80,0x08,0x00,0x82,0x08,0x20,0x82,0x08,0x11,0x00,0xE0,0x00,0x00,0x00,0x00,0x00,0x00, // J +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xCF,0x10,0x41,0x08,0x11,0x01,0x20,0x16,0x01,0x90,0x10,0x81,0x08,0x10,0x43,0xC7,0x00,0x00,0x00,0x00,0x00,0x00, // K +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xE0,0x08,0x00,0x80,0x08,0x00,0x80,0x08,0x00,0x80,0x08,0x20,0x82,0x08,0x23,0xFE,0x00,0x00,0x00,0x00,0x00,0x00, // L +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x07,0x30,0x62,0x8A,0x28,0xA2,0x52,0x25,0x22,0x22,0x22,0x22,0x02,0x20,0x27,0x8F,0x00,0x00,0x00,0x00,0x00,0x00, // M +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x9E,0x18,0x41,0x44,0x14,0x41,0x24,0x12,0x41,0x14,0x11,0x41,0x0C,0x10,0xC3,0xC4,0x00,0x00,0x00,0x00,0x00,0x00, // N +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x18,0xC1,0x04,0x20,0x22,0x02,0x20,0x22,0x02,0x20,0x21,0x04,0x18,0xC0,0x70,0x00,0x00,0x00,0x00,0x00,0x00, // O +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF8,0x10,0x41,0x02,0x10,0x21,0x04,0x1F,0x81,0x00,0x10,0x01,0x00,0x10,0x03,0xE0,0x00,0x00,0x00,0x00,0x00,0x00, // P +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x70,0x18,0xC1,0x04,0x20,0x22,0x02,0x20,0x22,0x02,0x20,0x21,0x04,0x18,0xC0,0x70,0x0E,0x21,0x1C,0x00,0x00,0x00, // Q +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF8,0x10,0x41,0x02,0x10,0x21,0x04,0x1F,0x81,0x10,0x10,0x81,0x08,0x10,0x43,0xC3,0x00,0x00,0x00,0x00,0x00,0x00, // R +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF4,0x10,0xC2,0x04,0x20,0x01,0x00,0x0F,0x00,0x08,0x00,0x42,0x04,0x30,0x82,0xF0,0x00,0x00,0x00,0x00,0x00,0x00, // S +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xFE,0x22,0x22,0x22,0x22,0x20,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00, // T +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x9E,0x20,0x42,0x04,0x20,0x42,0x04,0x20,0x42,0x04,0x20,0x42,0x04,0x10,0x80,0xF0,0x00,0x00,0x00,0x00,0x00,0x00, // U +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x8F,0x20,0x22,0x02,0x10,0x41,0x04,0x08,0x80,0x88,0x05,0x00,0x50,0x02,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00, // V +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x8F,0x20,0x22,0x22,0x22,0x22,0x22,0x15,0x41,0x54,0x15,0x41,0x54,0x08,0x80,0x88,0x00,0x00,0x00,0x00,0x00,0x00, // W +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x8E,0x10,0x40,0x88,0x08,0x80,0x50,0x02,0x00,0x50,0x08,0x80,0x88,0x10,0x43,0x8E,0x00,0x00,0x00,0x00,0x00,0x00, // X +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x8E,0x10,0x40,0x88,0x08,0x80,0x50,0x05,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0xF8,0x00,0x00,0x00,0x00,0x00,0x00, // Y +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFC,0x10,0x41,0x04,0x00,0x80,0x10,0x02,0x00,0x40,0x08,0x01,0x04,0x10,0x41,0xFC,0x00,0x00,0x00,0x00,0x00,0x00, // Z +0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x03,0x80,0x00, // [ +0x00,0x00,0x00,0x00,0x01,0x00,0x10,0x00,0x80,0x08,0x00,0x40,0x04,0x00,0x20,0x02,0x00,0x10,0x01,0x00,0x08,0x00,0x80,0x04,0x00,0x40,0x02,0x00,0x20,0x00, // backslash +0x00,0x00,0x00,0x00,0x00,0x00,0x0E,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x0E,0x00,0x00, // ] +0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x50,0x08,0x81,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ^ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xFF, // _ +0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x88,0x08,0x80,0x88,0x08,0x80,0x70,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ` +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x01,0x08,0x00,0x81,0xF8,0x20,0x82,0x08,0x21,0x81,0xEE,0x00,0x00,0x00,0x00,0x00,0x00, // a +0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x01,0x00,0x10,0x01,0x00,0x17,0x81,0x84,0x10,0x21,0x02,0x10,0x21,0x02,0x18,0x43,0x78,0x00,0x00,0x00,0x00,0x00,0x00, // b +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x41,0x0C,0x20,0x42,0x00,0x20,0x02,0x00,0x10,0xC0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00, // c +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x04,0x00,0x40,0x04,0x0F,0x41,0x0C,0x20,0x42,0x04,0x20,0x42,0x04,0x10,0xC0,0xF6,0x00,0x00,0x00,0x00,0x00,0x00, // d +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x01,0x08,0x20,0x43,0xFC,0x20,0x02,0x00,0x10,0xC0,0xF0,0x00,0x00,0x00,0x00,0x00,0x00, // e +0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xE0,0x20,0x04,0x00,0x40,0x1F,0xC0,0x40,0x04,0x00,0x40,0x04,0x00,0x40,0x04,0x01,0xFC,0x00,0x00,0x00,0x00,0x00,0x00, // f +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x61,0x0C,0x20,0x42,0x04,0x20,0x42,0x04,0x10,0xC0,0xF4,0x00,0x40,0x04,0x00,0x81,0xF0, // g +0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x01,0x00,0x10,0x01,0x00,0x17,0x81,0x84,0x10,0x41,0x04,0x10,0x41,0x04,0x10,0x43,0x8E,0x00,0x00,0x00,0x00,0x00,0x00, // h +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x02,0x00,0x00,0x0E,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x01,0xFC,0x00,0x00,0x00,0x00,0x00,0x00, // i +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x01,0x00,0x00,0x1F,0x80,0x08,0x00,0x80,0x08,0x00,0x80,0x08,0x00,0x80,0x08,0x00,0x80,0x08,0x01,0x01,0xE0, // j +0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x01,0x00,0x10,0x01,0x00,0x13,0xC1,0x10,0x12,0x01,0xC0,0x12,0x01,0x10,0x10,0x83,0x1E,0x00,0x00,0x00,0x00,0x00,0x00, // k +0x00,0x00,0x00,0x00,0x00,0x00,0x1E,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x01,0xFC,0x00,0x00,0x00,0x00,0x00,0x00, // l +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x6C,0xC3,0x32,0x22,0x22,0x22,0x22,0x22,0x22,0x22,0x27,0x33,0x00,0x00,0x00,0x00,0x00,0x00, // m +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x81,0x84,0x10,0x41,0x04,0x10,0x41,0x04,0x10,0x43,0x8E,0x00,0x00,0x00,0x00,0x00,0x00, // n +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x01,0x08,0x20,0x42,0x04,0x20,0x42,0x04,0x10,0x80,0xF0,0x00,0x00,0x00,0x00,0x00,0x00, // o +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x81,0x84,0x10,0x21,0x02,0x10,0x21,0x02,0x18,0x41,0x78,0x10,0x01,0x00,0x10,0x03,0xC0, // p +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x61,0x0C,0x20,0x42,0x04,0x20,0x42,0x04,0x10,0xC0,0xF4,0x00,0x40,0x04,0x00,0x40,0x1E, // q +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x3B,0x80,0xC4,0x08,0x00,0x80,0x08,0x00,0x80,0x08,0x03,0xF8,0x00,0x00,0x00,0x00,0x00,0x00, // r +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0F,0x41,0x0C,0x10,0x40,0xE0,0x01,0x81,0x04,0x18,0x41,0x78,0x00,0x00,0x00,0x00,0x00,0x00, // s +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x04,0x00,0x40,0x1F,0xC0,0x40,0x04,0x00,0x40,0x04,0x00,0x40,0x04,0x20,0x3C,0x00,0x00,0x00,0x00,0x00,0x00, // t +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0xC1,0x04,0x10,0x41,0x04,0x10,0x41,0x04,0x10,0xC0,0xF6,0x00,0x00,0x00,0x00,0x00,0x00, // u +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xE1,0x04,0x08,0x80,0x88,0x05,0x00,0x50,0x02,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00, // v +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xE1,0x04,0x12,0x41,0x24,0x15,0x41,0x54,0x08,0x80,0x88,0x00,0x00,0x00,0x00,0x00,0x00, // w +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x39,0xC1,0x08,0x09,0x00,0x60,0x06,0x00,0x90,0x10,0x83,0x9C,0x00,0x00,0x00,0x00,0x00,0x00, // x +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x38,0xE1,0x04,0x10,0x40,0x88,0x08,0x80,0x50,0x05,0x00,0x20,0x02,0x00,0x40,0x04,0x03,0xE0, // y +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xC1,0x04,0x10,0x80,0x10,0x02,0x00,0x44,0x08,0x41,0xFC,0x00,0x00,0x00,0x00,0x00,0x00, // z +0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0xC0,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x01,0x80,0x00, // { +0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x00, // | +0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x18,0x02,0x00,0x20,0x02,0x00,0x20,0x02,0x00,0x20,0x0C,0x00,0x00, // } +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x26,0x40,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ~ +}; +#endif diff --git a/Kernel/platform/platform-rpipico/fonts/arial_bold.h b/Kernel/platform/platform-rpipico/fonts/arial_bold.h new file mode 100644 index 000000000..14a5799fd --- /dev/null +++ b/Kernel/platform/platform-rpipico/fonts/arial_bold.h @@ -0,0 +1,111 @@ +// arial_bold.c +// Font type : Full (95 characters) +// Font size : 16x16 pixels +// Memory usage : 3044 bytes +// Submitted by : MBWK + + + +const unsigned char arial_bold[3044] ={ +0x10,0x10,0x20,0x5F, +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // +0x00,0x00,0x00,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00, // ! +0x00,0x00,0x00,0x00,0x06,0x60,0x06,0x60,0x06,0x60,0x06,0x60,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // " +0x00,0x00,0x00,0x00,0x03,0x60,0x03,0x60,0x06,0xC0,0x3F,0xF0,0x3F,0xF0,0x06,0xC0,0x0D,0x80,0x3F,0xF0,0x3F,0xF0,0x0D,0x80,0x1B,0x00,0x1B,0x00,0x00,0x00,0x00,0x00, // # +0x00,0x00,0x01,0x00,0x03,0x80,0x07,0xC0,0x0D,0x60,0x0D,0x00,0x0F,0x00,0x07,0x80,0x03,0xC0,0x01,0xE0,0x0D,0x60,0x0D,0x60,0x07,0xC0,0x03,0x80,0x01,0x00,0x00,0x00, // $ +0x00,0x00,0x00,0x00,0x3C,0x18,0x66,0x30,0x66,0x30,0x66,0x60,0x66,0xC0,0x3C,0xC0,0x01,0x9E,0x01,0xB3,0x03,0x33,0x03,0x33,0x06,0x33,0x0C,0x1E,0x00,0x00,0x00,0x00, // % +0x00,0x00,0x00,0x00,0x07,0xC0,0x0F,0xE0,0x0C,0x60,0x0C,0x60,0x07,0xC0,0x07,0x80,0x0D,0x90,0x19,0xD8,0x18,0xF0,0x18,0x78,0x0F,0xFC,0x07,0x88,0x00,0x00,0x00,0x00, // & +0x00,0x00,0x00,0x00,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ' +0x00,0x00,0x01,0x80,0x03,0x00,0x03,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x03,0x00,0x03,0x00,0x01,0x80,0x00,0x00,0x00,0x00, // ( +0x00,0x00,0x06,0x00,0x03,0x00,0x03,0x00,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x03,0x00,0x03,0x00,0x06,0x00,0x00,0x00,0x00,0x00, // ) +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x33,0x98,0x3F,0xF8,0x07,0xC0,0x07,0xC0,0x0E,0xE0,0x1C,0x70,0x04,0x40,0x00,0x00,0x00,0x00,0x00,0x00, // * +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x07,0xF8,0x07,0xF8,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00, // + +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x03,0x00,0x01,0x00,0x01,0x00,0x02,0x00,0x00,0x00, // , +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xE0,0x03,0xE0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // - +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // . +0x00,0x00,0x00,0x00,0x00,0x60,0x00,0x60,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00, // / + +0x00,0x00,0x00,0x00,0x03,0xC0,0x07,0xE0,0x0E,0x70,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0E,0x70,0x07,0xE0,0x03,0xC0,0x00,0x00,0x00,0x00, // 0 +0x00,0x00,0x00,0x00,0x01,0x80,0x03,0x80,0x07,0x80,0x0D,0x80,0x09,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00, // 1 +0x00,0x00,0x00,0x00,0x03,0xC0,0x07,0xE0,0x0E,0x30,0x0C,0x30,0x00,0x30,0x00,0x60,0x00,0xE0,0x01,0xC0,0x03,0x80,0x06,0x00,0x0F,0xF0,0x0F,0xF0,0x00,0x00,0x00,0x00, // 2 +0x00,0x00,0x00,0x00,0x03,0xE0,0x07,0xF0,0x0E,0x30,0x00,0x30,0x01,0xE0,0x01,0xE0,0x00,0x70,0x00,0x30,0x0C,0x30,0x0E,0x70,0x07,0xE0,0x03,0xC0,0x00,0x00,0x00,0x00, // 3 +0x00,0x00,0x00,0x00,0x00,0x60,0x00,0xE0,0x00,0xE0,0x01,0xE0,0x03,0x60,0x03,0x60,0x06,0x60,0x0C,0x60,0x0F,0xF0,0x0F,0xF0,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00, // 4 +0x00,0x00,0x00,0x00,0x07,0xE0,0x07,0xE0,0x06,0x00,0x0C,0x00,0x0F,0xC0,0x0F,0xE0,0x0C,0x70,0x00,0x30,0x0C,0x30,0x0E,0x70,0x07,0xE0,0x03,0xC0,0x00,0x00,0x00,0x00, // 5 +0x00,0x00,0x00,0x00,0x03,0xE0,0x07,0xF0,0x06,0x30,0x0C,0x00,0x0D,0xC0,0x0F,0xE0,0x0E,0x70,0x0C,0x30,0x0C,0x30,0x06,0x30,0x07,0xE0,0x03,0xC0,0x00,0x00,0x00,0x00, // 6 +0x00,0x00,0x00,0x00,0x0F,0xF0,0x0F,0xF0,0x00,0x60,0x00,0xC0,0x00,0xC0,0x01,0x80,0x01,0x80,0x01,0x80,0x03,0x80,0x03,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00, // 7 +0x00,0x00,0x00,0x00,0x03,0xC0,0x07,0xE0,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x07,0xE0,0x07,0xE0,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x07,0xE0,0x03,0xC0,0x00,0x00,0x00,0x00, // 8 +0x00,0x00,0x00,0x00,0x03,0xC0,0x07,0xE0,0x0C,0x60,0x0C,0x30,0x0C,0x30,0x0E,0x70,0x07,0xF0,0x03,0xB0,0x00,0x30,0x0C,0x60,0x0F,0xE0,0x07,0xC0,0x00,0x00,0x00,0x00, // 9 +0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // : +0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x80,0x01,0x80,0x00,0x80,0x00,0x80,0x01,0x00,0x00,0x00, // ; +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x00,0xE0,0x03,0xC0,0x0F,0x00,0x1C,0x00,0x0F,0x00,0x03,0xC0,0x00,0xE0,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00, // < +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1F,0xF0,0x1F,0xF0,0x00,0x00,0x00,0x00,0x1F,0xF0,0x1F,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // = +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x0E,0x00,0x07,0x80,0x01,0xE0,0x00,0x70,0x01,0xE0,0x07,0x80,0x0E,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // > +0x00,0x00,0x00,0x00,0x03,0xC0,0x07,0xE0,0x0E,0x30,0x0C,0x30,0x00,0x70,0x00,0xE0,0x01,0xC0,0x01,0x80,0x01,0x80,0x00,0x00,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00, // ? + +0x00,0x00,0x07,0xC0,0x0C,0x30,0x13,0x78,0x17,0xE8,0x2C,0xC8,0x2C,0xC8,0x2C,0xC8,0x2F,0xD0,0x26,0xE0,0x10,0x08,0x08,0x10,0x07,0xE0,0x00,0x00,0x00,0x00,0x00,0x00, // @ +0x00,0x00,0x00,0x00,0x03,0x80,0x03,0x80,0x06,0xC0,0x06,0xC0,0x06,0xC0,0x0C,0x60,0x0C,0x60,0x0F,0xE0,0x1F,0xF0,0x18,0x30,0x18,0x30,0x30,0x18,0x00,0x00,0x00,0x00, // A +0x00,0x00,0x00,0x00,0x1F,0xE0,0x1F,0xF0,0x18,0x30,0x18,0x30,0x18,0x30,0x1F,0xE0,0x1F,0xF0,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0xF0,0x1F,0xE0,0x00,0x00,0x00,0x00, // B +0x00,0x00,0x00,0x00,0x03,0xE0,0x0F,0xF0,0x0C,0x38,0x1C,0x10,0x18,0x00,0x18,0x00,0x18,0x00,0x18,0x00,0x1C,0x10,0x0C,0x38,0x0F,0xF0,0x03,0xE0,0x00,0x00,0x00,0x00, // C +0x00,0x00,0x00,0x00,0x1F,0xC0,0x1F,0xF0,0x18,0x30,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x30,0x1F,0xF0,0x1F,0xC0,0x00,0x00,0x00,0x00, // D +0x00,0x00,0x00,0x00,0x0F,0xF8,0x0F,0xF8,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0F,0xF8,0x0F,0xF8,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0F,0xF8,0x0F,0xF8,0x00,0x00,0x00,0x00, // E +0x00,0x00,0x00,0x00,0x0F,0xF0,0x0F,0xF0,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0F,0xE0,0x0F,0xE0,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00, // F +0x00,0x00,0x00,0x00,0x07,0xE0,0x1F,0xF0,0x18,0x38,0x38,0x10,0x30,0x00,0x30,0x00,0x30,0xF8,0x30,0xF8,0x38,0x18,0x18,0x38,0x1F,0xF8,0x07,0xE0,0x00,0x00,0x00,0x00, // G +0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1F,0xF8,0x1F,0xF8,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00, // H +0x00,0x00,0x00,0x00,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00, // I +0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x00,0x30,0x0C,0x30,0x0E,0x70,0x07,0xE0,0x03,0xC0,0x00,0x00,0x00,0x00, // J +0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x30,0x18,0x60,0x18,0xC0,0x19,0x80,0x1B,0xC0,0x1E,0xC0,0x1C,0x60,0x18,0x70,0x18,0x30,0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x00, // K +0x00,0x00,0x00,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0F,0xF0,0x0F,0xF0,0x00,0x00,0x00,0x00, // L +0x00,0x00,0x00,0x00,0x38,0x38,0x38,0x38,0x3C,0x78,0x3C,0x78,0x34,0x58,0x36,0xD8,0x36,0xD8,0x36,0xD8,0x33,0x98,0x33,0x98,0x33,0x98,0x31,0x18,0x00,0x00,0x00,0x00, // M +0x00,0x00,0x00,0x00,0x18,0x18,0x1C,0x18,0x1E,0x18,0x1E,0x18,0x1B,0x18,0x19,0x98,0x19,0x98,0x18,0xD8,0x18,0x78,0x18,0x78,0x18,0x38,0x18,0x18,0x00,0x00,0x00,0x00, // N +0x00,0x00,0x00,0x00,0x07,0xC0,0x1F,0xF0,0x18,0x30,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x18,0x30,0x1F,0xF0,0x07,0xC0,0x00,0x00,0x00,0x00, // O + +0x00,0x00,0x00,0x00,0x0F,0xE0,0x0F,0xF0,0x0C,0x38,0x0C,0x18,0x0C,0x38,0x0F,0xF0,0x0F,0xE0,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x00,0x00,0x00,0x00, // P +0x00,0x00,0x00,0x00,0x07,0xC0,0x1F,0xF0,0x18,0x30,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x30,0x18,0x31,0xB8,0x18,0xF0,0x1F,0xF0,0x07,0xB0,0x00,0x18,0x00,0x00, // Q +0x00,0x00,0x00,0x00,0x1F,0xE0,0x1F,0xF0,0x18,0x38,0x18,0x18,0x18,0x38,0x1F,0xF0,0x1F,0xC0,0x18,0xE0,0x18,0x70,0x18,0x30,0x18,0x38,0x18,0x1C,0x00,0x00,0x00,0x00, // R +0x00,0x00,0x00,0x00,0x03,0xE0,0x07,0xF0,0x0E,0x38,0x0C,0x18,0x0F,0x00,0x07,0xE0,0x01,0xF0,0x00,0x38,0x0C,0x18,0x0E,0x38,0x07,0xF0,0x03,0xE0,0x00,0x00,0x00,0x00, // S +0x00,0x00,0x00,0x00,0x1F,0xF8,0x1F,0xF8,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00, // T +0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1C,0x38,0x0F,0xF0,0x07,0xE0,0x00,0x00,0x00,0x00, // U +0x00,0x00,0x00,0x00,0x30,0x18,0x18,0x30,0x18,0x30,0x18,0x30,0x0C,0x60,0x0C,0x60,0x0E,0xE0,0x06,0xC0,0x06,0xC0,0x03,0x80,0x03,0x80,0x03,0x80,0x00,0x00,0x00,0x00, // V +0x00,0x00,0x00,0x00,0x31,0xC6,0x31,0xC6,0x31,0xC6,0x1B,0x6C,0x1B,0x6C,0x1B,0x6C,0x1B,0x6C,0x1B,0x6C,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x00,0x00,0x00,0x00, // W +0x00,0x00,0x00,0x00,0x18,0x30,0x1C,0x70,0x0C,0x60,0x06,0xC0,0x07,0xC0,0x03,0x80,0x03,0x80,0x07,0xC0,0x06,0xC0,0x0C,0x60,0x1C,0x70,0x18,0x30,0x00,0x00,0x00,0x00, // X +0x00,0x00,0x00,0x00,0x18,0x18,0x1C,0x38,0x0C,0x30,0x06,0x60,0x06,0x60,0x03,0xC0,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00, // Y +0x00,0x00,0x00,0x00,0x07,0xF8,0x07,0xF8,0x00,0x30,0x00,0x60,0x00,0xE0,0x00,0xC0,0x01,0x80,0x03,0x80,0x03,0x00,0x06,0x00,0x0F,0xF8,0x0F,0xF8,0x00,0x00,0x00,0x00, // Z +0x00,0x00,0x03,0xC0,0x03,0xC0,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0xC0,0x03,0xC0,0x00,0x00, // [ +0x00,0x00,0x00,0x00,0x03,0x00,0x03,0x00,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0x60,0x00,0x60,0x00,0x00,0x00,0x00, // +0x00,0x00,0x03,0xC0,0x03,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x03,0xC0,0x03,0xC0,0x00,0x00, // ] +0x00,0x00,0x01,0x80,0x03,0xC0,0x03,0xC0,0x06,0x60,0x06,0x60,0x06,0x60,0x0C,0x30,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ^ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0x00,0x00, // _ + +0x00,0x00,0x00,0x00,0x01,0x80,0x00,0xC0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ` +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x0F,0xE0,0x0C,0x60,0x01,0xE0,0x07,0xE0,0x0E,0x60,0x0C,0x60,0x0F,0xE0,0x07,0xB0,0x00,0x00,0x00,0x00,0x00,0x00, // a +0x00,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0D,0xC0,0x0F,0xE0,0x0E,0x70,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0E,0x70,0x0F,0xE0,0x0D,0xC0,0x00,0x00,0x00,0x00,0x00,0x00, // b +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x07,0xE0,0x0E,0x60,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0E,0x60,0x07,0xE0,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x00, // c +0x00,0x00,0x00,0x30,0x00,0x30,0x00,0x30,0x03,0xB0,0x07,0xF0,0x0E,0x70,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0E,0x70,0x07,0xF0,0x03,0xB0,0x00,0x00,0x00,0x00,0x00,0x00, // d +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x80,0x07,0xC0,0x0C,0x60,0x0F,0xE0,0x0F,0xE0,0x0C,0x00,0x0E,0x60,0x07,0xC0,0x03,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // e +0x00,0x00,0x03,0xC0,0x07,0xC0,0x06,0x00,0x0F,0x80,0x0F,0x80,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // f +0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x60,0x0F,0xE0,0x1C,0xE0,0x18,0x60,0x18,0x60,0x18,0x60,0x1C,0xE0,0x0F,0xE0,0x07,0x60,0x18,0x60,0x1F,0xE0,0x0F,0xC0,0x00,0x00, // g +0x00,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0D,0xE0,0x0F,0xF0,0x0E,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x00,0x00,0x00,0x00,0x00,0x00, // h +0x00,0x00,0x00,0x00,0x01,0x80,0x01,0x80,0x00,0x00,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // i +0x00,0x00,0x00,0x00,0x01,0x80,0x01,0x80,0x00,0x00,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x07,0x80,0x07,0x00, // j +0x00,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x00,0x0C,0x60,0x0C,0xC0,0x0D,0x80,0x0F,0x80,0x0F,0xC0,0x0E,0xC0,0x0C,0xC0,0x0C,0x60,0x0C,0x60,0x00,0x00,0x00,0x00,0x00,0x00, // k +0x00,0x00,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x00,0x00,0x00,0x00,0x00,0x00, // l +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x37,0x38,0x3F,0xFC,0x39,0xCC,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x31,0x8C,0x00,0x00,0x00,0x00,0x00,0x00, // m +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0D,0xE0,0x0F,0xF0,0x0E,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x00,0x00,0x00,0x00,0x00,0x00, // n +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xC0,0x07,0xE0,0x0E,0x70,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0E,0x70,0x07,0xE0,0x03,0xC0,0x00,0x00,0x00,0x00,0x00,0x00, // o + +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0D,0xC0,0x0F,0xE0,0x0E,0x70,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0E,0x70,0x0F,0xE0,0x0D,0xC0,0x0C,0x00,0x0C,0x00,0x0C,0x00, // p +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xB0,0x07,0xF0,0x0E,0x70,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0E,0x70,0x07,0xF0,0x03,0xB0,0x00,0x30,0x00,0x30,0x00,0x30, // q +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x70,0x03,0xF0,0x03,0x80,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // r +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xC0,0x0F,0xE0,0x0C,0x60,0x0F,0x00,0x07,0xC0,0x00,0xE0,0x0C,0x60,0x0F,0xE0,0x07,0xC0,0x00,0x00,0x00,0x00,0x00,0x00, // s +0x00,0x00,0x01,0x00,0x03,0x00,0x03,0x00,0x07,0xC0,0x07,0xC0,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0xC0,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00, // t +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x30,0x0C,0x70,0x0F,0xF0,0x07,0xB0,0x00,0x00,0x00,0x00,0x00,0x00, // u +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x30,0x06,0x30,0x06,0x30,0x03,0x60,0x03,0x60,0x03,0x60,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x00,0x00,0x00,0x00,0x00,0x00, // v +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x31,0xC6,0x31,0xC6,0x19,0xCC,0x1B,0x6C,0x1B,0x6C,0x1B,0x6C,0x0E,0x38,0x0E,0x38,0x0E,0x38,0x00,0x00,0x00,0x00,0x00,0x00, // w +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x06,0x30,0x07,0x70,0x03,0x60,0x01,0xC0,0x01,0xC0,0x01,0xC0,0x03,0x60,0x07,0x70,0x06,0x30,0x00,0x00,0x00,0x00,0x00,0x00, // x +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x18,0x0C,0x18,0x06,0x30,0x06,0x30,0x03,0x60,0x03,0x60,0x03,0xE0,0x01,0xC0,0x01,0xC0,0x01,0x80,0x07,0x80,0x07,0x00, // y +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0xF8,0x03,0xF8,0x00,0x30,0x00,0x70,0x00,0xE0,0x01,0xC0,0x01,0x80,0x03,0xF8,0x03,0xF8,0x00,0x00,0x00,0x00,0x00,0x00, // z +0x01,0xC0,0x03,0xC0,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x0E,0x00,0x0E,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0x00,0x03,0xC0,0x01,0xC0,0x00,0x00, // { +0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80,0x01,0x80, // | +0x03,0x80,0x03,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0x70,0x00,0x70,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x00,0xC0,0x03,0xC0,0x03,0x80,0x00,0x00, // } +0x00,0x00,0x00,0x00,0x07,0x88,0x0F,0xF8,0x08,0xF0,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // ~ +}; diff --git a/Kernel/platform/platform-rpipico/fonts/font1.h b/Kernel/platform/platform-rpipico/fonts/font1.h new file mode 100644 index 000000000..749ad8809 --- /dev/null +++ b/Kernel/platform/platform-rpipico/fonts/font1.h @@ -0,0 +1,233 @@ +// font1.c +// Font type : Full (223 characters) +// Font size : 8x12 pixels +// Memory usage : 2680 bytes +// Font adapted from: http://www.rinkydinkelectronics.com/r_fonts.php + +const unsigned char font1[] ={ + 0x08,0x0C,0x20,0xE0, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(32) + 0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x10,0x10,0x00,0x00, // Chr$(33) ! + 0x00,0x24,0x24,0x24,0x24,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(34) " + 0x00,0x24,0x24,0x7E,0x24,0x24,0x24,0x7E,0x24,0x24,0x00,0x00, // Chr$(35) # + 0x00,0x10,0x3C,0x52,0x50,0x3C,0x12,0x52,0x3C,0x10,0x00,0x00, // Chr$(36) $ + 0x00,0x00,0x62,0x62,0x04,0x08,0x10,0x20,0x46,0x46,0x00,0x00, // Chr$(37) % + 0x00,0x00,0x38,0x44,0x44,0x38,0x4A,0x44,0x4C,0x3A,0x00,0x00, // Chr$(38) & + 0x00,0x08,0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(39) ' + 0x00,0x0C,0x10,0x20,0x20,0x20,0x20,0x20,0x20,0x10,0x0C,0x00, // Chr$(40) ( + 0x00,0x30,0x08,0x04,0x04,0x04,0x04,0x04,0x04,0x08,0x30,0x00, // Chr$(41) ) + 0x00,0x42,0x24,0x18,0x7E,0x18,0x24,0x42,0x00,0x00,0x00,0x00, // Chr$(42) * + 0x00,0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x00,0x00,0x00, // Chr$(43) + + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x08,0x10,0x00, // Chr$(44) , + 0x00,0x00,0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(45) - + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00,0x00, // Chr$(46) . + 0x00,0x02,0x02,0x04,0x04,0x08,0x10,0x20,0x20,0x40,0x40,0x00, // Chr$(47) / + 0x00,0x3C,0x46,0x4E,0x4A,0x5A,0x52,0x72,0x62,0x3C,0x00,0x00, // Chr$(48) 0 + 0x00,0x10,0x30,0x50,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00, // Chr$(49) 1 + 0x00,0x3C,0x42,0x02,0x02,0x04,0x08,0x10,0x20,0x7E,0x00,0x00, // Chr$(50) 2 + 0x00,0x3C,0x42,0x02,0x02,0x1C,0x02,0x02,0x42,0x3C,0x00,0x00, // Chr$(51) 3 + 0x00,0x04,0x44,0x44,0x44,0x7E,0x04,0x04,0x04,0x04,0x00,0x00, // Chr$(52) 4 + 0x00,0x7E,0x40,0x40,0x7C,0x02,0x02,0x02,0x42,0x3C,0x00,0x00, // Chr$(53) 5 + 0x00,0x18,0x20,0x40,0x40,0x7C,0x42,0x42,0x42,0x3C,0x00,0x00, // Chr$(54) 6 + 0x00,0x7E,0x42,0x02,0x02,0x04,0x08,0x10,0x10,0x10,0x00,0x00, // Chr$(55) 7 + 0x00,0x3C,0x42,0x42,0x42,0x3C,0x42,0x42,0x42,0x3C,0x00,0x00, // Chr$(56) 8 + 0x00,0x3C,0x42,0x42,0x42,0x3E,0x02,0x04,0x08,0x30,0x00,0x00, // Chr$(57) 9 + 0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x00,0x00,0x00, // Chr$(58) : + 0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x08,0x10,0x00, // Chr$(59) ; + 0x00,0x04,0x08,0x10,0x20,0x40,0x20,0x10,0x08,0x04,0x00,0x00, // Chr$(60) < + 0x00,0x00,0x00,0x00,0x7E,0x00,0x7E,0x00,0x00,0x00,0x00,0x00, // Chr$(61) = + 0x00,0x20,0x10,0x08,0x04,0x02,0x04,0x08,0x10,0x20,0x00,0x00, // Chr$(62) > + 0x00,0x3C,0x42,0x02,0x06,0x08,0x10,0x10,0x00,0x10,0x10,0x00, // Chr$(63) ? + 0x00,0x3C,0x42,0x42,0x5E,0x56,0x5C,0x40,0x40,0x3C,0x00,0x00, // Chr$(64) @ + 0x00,0x18,0x24,0x42,0x42,0x42,0x7E,0x42,0x42,0x42,0x00,0x00, // Chr$(65) A + 0x00,0x7C,0x42,0x42,0x42,0x7C,0x42,0x42,0x42,0x7C,0x00,0x00, // Chr$(66) B + 0x00,0x3C,0x42,0x40,0x40,0x40,0x40,0x40,0x42,0x3C,0x00,0x00, // Chr$(67) C + 0x00,0x78,0x44,0x42,0x42,0x42,0x42,0x42,0x44,0x78,0x00,0x00, // Chr$(68) D + 0x00,0x7E,0x40,0x40,0x40,0x78,0x40,0x40,0x40,0x7E,0x00,0x00, // Chr$(69) E + 0x00,0x7E,0x40,0x40,0x40,0x78,0x40,0x40,0x40,0x40,0x00,0x00, // Chr$(70) F + 0x00,0x3C,0x42,0x40,0x40,0x40,0x4E,0x42,0x42,0x3E,0x00,0x00, // Chr$(71) G + 0x00,0x42,0x42,0x42,0x42,0x7E,0x42,0x42,0x42,0x42,0x00,0x00, // Chr$(72) H + 0x00,0x7C,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x7C,0x00,0x00, // Chr$(73) I + 0x00,0x02,0x02,0x02,0x02,0x02,0x02,0x42,0x42,0x3C,0x00,0x00, // Chr$(74) J + 0x00,0x42,0x44,0x48,0x50,0x60,0x50,0x48,0x44,0x42,0x00,0x00, // Chr$(75) K + 0x00,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x7E,0x00,0x00, // Chr$(76) L + 0x00,0x42,0x66,0x66,0x5A,0x42,0x42,0x42,0x42,0x42,0x00,0x00, // Chr$(77) M + 0x00,0x42,0x62,0x62,0x52,0x5A,0x4A,0x46,0x46,0x42,0x00,0x00, // Chr$(78) N + 0x00,0x3C,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,0x00, // Chr$(79) O + 0x00,0x7C,0x42,0x42,0x42,0x7C,0x40,0x40,0x40,0x40,0x00,0x00, // Chr$(80) P + 0x00,0x3C,0x42,0x42,0x42,0x42,0x42,0x4A,0x44,0x3A,0x00,0x00, // Chr$(81) Q + 0x00,0x7C,0x42,0x42,0x42,0x7C,0x48,0x44,0x42,0x42,0x00,0x00, // Chr$(82) R + 0x00,0x3C,0x42,0x40,0x60,0x18,0x04,0x02,0x42,0x3C,0x00,0x00, // Chr$(83) S + 0x00,0x7E,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00, // Chr$(84) T + 0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,0x00, // Chr$(85) U + 0x00,0x42,0x42,0x42,0x42,0x42,0x42,0x24,0x24,0x18,0x00,0x00, // Chr$(86) V + 0x00,0x42,0x42,0x42,0x42,0x42,0x5A,0x24,0x24,0x24,0x00,0x00, // Chr$(87) W + 0x00,0x42,0x42,0x24,0x24,0x18,0x24,0x24,0x42,0x42,0x00,0x00, // Chr$(88) X + 0x00,0x44,0x44,0x44,0x44,0x38,0x10,0x10,0x10,0x10,0x00,0x00, // Chr$(89) Y + 0x00,0x7E,0x02,0x02,0x04,0x18,0x20,0x40,0x40,0x7E,0x00,0x00, // Chr$(90) Z + 0x00,0x3C,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x3C,0x00,0x00, // Chr$(91) [ + 0x00,0x40,0x40,0x20,0x20,0x10,0x08,0x04,0x04,0x02,0x02,0x00, // Chr$(92) backslash + 0x00,0x3C,0x04,0x04,0x04,0x04,0x04,0x04,0x04,0x3C,0x00,0x00, // Chr$(93) ] + 0x00,0x10,0x28,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(94) ^ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x7F,0x00, // Chr$(95) _ + 0x00,0x18,0x24,0x24,0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(96) ` + 0x00,0x00,0x00,0x00,0x3C,0x02,0x3E,0x42,0x42,0x3E,0x00,0x00, // Chr$(97) a + 0x00,0x40,0x40,0x40,0x7C,0x42,0x42,0x42,0x42,0x7C,0x00,0x00, // Chr$(98) b + 0x00,0x00,0x00,0x00,0x3C,0x40,0x40,0x40,0x40,0x3C,0x00,0x00, // Chr$(99) c + 0x00,0x02,0x02,0x02,0x3E,0x42,0x42,0x42,0x42,0x3E,0x00,0x00, // Chr$(100) d + 0x00,0x00,0x00,0x00,0x3C,0x42,0x42,0x7C,0x40,0x3C,0x00,0x00, // Chr$(101) e + 0x00,0x00,0x1C,0x20,0x20,0x7C,0x20,0x20,0x20,0x20,0x00,0x00, // Chr$(102) f + 0x00,0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x3E,0x02,0x3C,0x00, // Chr$(103) g + 0x00,0x40,0x40,0x40,0x7C,0x42,0x42,0x42,0x42,0x42,0x00,0x00, // Chr$(104) h + 0x00,0x00,0x10,0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x00,0x00, // Chr$(105) i + 0x00,0x00,0x04,0x00,0x04,0x04,0x04,0x04,0x04,0x44,0x38,0x00, // Chr$(106) j + 0x00,0x40,0x40,0x40,0x44,0x48,0x70,0x50,0x48,0x44,0x00,0x00, // Chr$(107) k + 0x00,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x00,0x00, // Chr$(108) l + 0x00,0x00,0x00,0x00,0x74,0x4A,0x4A,0x42,0x42,0x42,0x00,0x00, // Chr$(109) m + 0x00,0x00,0x00,0x00,0x78,0x44,0x44,0x44,0x44,0x44,0x00,0x00, // Chr$(110) n + 0x00,0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x42,0x3C,0x00,0x00, // Chr$(111) o + 0x00,0x00,0x00,0x00,0x7C,0x42,0x42,0x42,0x7C,0x40,0x40,0x00, // Chr$(112) p + 0x00,0x00,0x00,0x00,0x3C,0x42,0x42,0x42,0x42,0x3C,0x06,0x00, // Chr$(113) q + 0x00,0x00,0x00,0x00,0x3C,0x42,0x42,0x40,0x40,0x40,0x00,0x00, // Chr$(114) r + 0x00,0x00,0x00,0x00,0x1E,0x20,0x1C,0x02,0x02,0x3C,0x00,0x00, // Chr$(115) s + 0x00,0x00,0x00,0x10,0x7C,0x10,0x10,0x10,0x10,0x08,0x00,0x00, // Chr$(116) t + 0x00,0x00,0x00,0x00,0x42,0x42,0x42,0x42,0x42,0x3C,0x00,0x00, // Chr$(117) u + 0x00,0x00,0x00,0x00,0x42,0x42,0x42,0x42,0x24,0x18,0x00,0x00, // Chr$(118) v + 0x00,0x00,0x00,0x00,0x42,0x42,0x42,0x5A,0x24,0x24,0x00,0x00, // Chr$(119) w + 0x00,0x00,0x00,0x00,0x42,0x24,0x18,0x18,0x24,0x42,0x00,0x00, // Chr$(120) x + 0x00,0x00,0x00,0x00,0x42,0x42,0x42,0x3E,0x02,0x42,0x3C,0x00, // Chr$(121) y + 0x00,0x00,0x00,0x00,0x7E,0x04,0x08,0x10,0x20,0x7E,0x00,0x00, // Chr$(122) z + 0x00,0x1C,0x20,0x10,0x10,0x60,0x10,0x10,0x20,0x1C,0x00,0x00, // Chr$(123) { + 0x00,0x10,0x10,0x10,0x10,0x00,0x10,0x10,0x10,0x10,0x00,0x00, // Chr$(124) | + 0x00,0x38,0x04,0x08,0x08,0x06,0x08,0x08,0x04,0x38,0x00,0x00, // Chr$(125) } + 0x00,0x22,0x5A,0x44,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(126) ~ + 0x00,0x00,0x00,0x00,0x18,0x24,0x42,0x42,0x7E,0x00,0x00,0x00, // Chr$(127)  + 0x00,0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0x81,0xFF,0x00, // Chr$(128) € + 0x00,0xFF,0x81,0x81,0x85,0x85,0xA9,0x91,0x81,0x81,0xFF,0x00, // Chr$(129)  + 0x00,0xFF,0x81,0xA5,0xA5,0x99,0x99,0xA5,0xA5,0x81,0xFF,0x00, // Chr$(130) ‚ + 0x00,0xFF,0x81,0x81,0x81,0x99,0x99,0x81,0x81,0x81,0xFF,0x00, // Chr$(131) ƒ + 0x00,0xFF,0x81,0x81,0x81,0x81,0x81,0xBD,0x81,0x81,0xFF,0x00, // Chr$(132) „ + 0x00,0xFF,0x81,0x99,0x99,0x99,0x99,0x81,0x99,0x81,0xFF,0x00, // Chr$(133) … + 0x00,0xFF,0x81,0x99,0xA5,0x89,0x89,0x81,0x89,0x81,0xFF,0x00, // Chr$(134) † + 0x00,0x3E,0x7F,0x7F,0x6B,0x7F,0x6B,0x77,0x7F,0x3E,0x00,0x00, // Chr$(135) ‡ + 0x00,0x3E,0x63,0x41,0x55,0x41,0x55,0x49,0x63,0x3E,0x00,0x00, // Chr$(136) ˆ + 0x00,0x00,0x08,0x1C,0x3E,0x7F,0x7F,0x3E,0x1C,0x08,0x00,0x00, // Chr$(137) ‰ + 0x00,0x00,0x00,0x18,0x18,0x66,0x66,0x18,0x18,0x3C,0x00,0x00, // Chr$(138) Š + 0x00,0x00,0x00,0x18,0x3C,0x7E,0x7E,0x18,0x18,0x3C,0x00,0x00, // Chr$(139) ‹ + 0x00,0x00,0x36,0x3E,0x7F,0x7F,0x7F,0x3E,0x1C,0x08,0x00,0x00, // Chr$(140) Œ + 0xFF,0xFF,0xC3,0x81,0x99,0xBD,0xBD,0x99,0x81,0xC3,0xFF,0xFF, // Chr$(141)  + 0x00,0x00,0x00,0x00,0x18,0x3C,0x3C,0x18,0x00,0x00,0x00,0x00, // Chr$(142) Ž + 0x00,0x1F,0x19,0x1F,0x18,0x18,0x18,0x38,0x78,0x30,0x00,0x00, // Chr$(143)  + 0x00,0x18,0x3C,0x7E,0x18,0x18,0x18,0x7E,0x3C,0x18,0x00,0x00, // Chr$(144)  + 0x00,0x00,0x00,0x24,0x66,0xFF,0xFF,0x66,0x24,0x00,0x00,0x00, // Chr$(145) ‘ + 0x00,0x18,0x3C,0x7E,0x18,0x18,0x18,0x18,0x18,0x18,0x00,0x00, // Chr$(146) ’ + 0x00,0x18,0x18,0x18,0x18,0x18,0x18,0x7E,0x3C,0x18,0x00,0x00, // Chr$(147) “ + 0x00,0x00,0x00,0x08,0x0C,0xFE,0xFE,0x0C,0x08,0x00,0x00,0x00, // Chr$(148) ” + 0x00,0x00,0x00,0x10,0x30,0x7F,0x7F,0x30,0x10,0x00,0x00,0x00, // Chr$(149) • + 0x00,0x00,0x08,0x2A,0x49,0x49,0x49,0x41,0x41,0x3E,0x00,0x00, // Chr$(150) – + 0x1C,0x22,0x41,0x5D,0x49,0x2A,0x1C,0x00,0x1C,0x00,0x1C,0x00, // Chr$(151) — + 0x18,0x18,0x00,0x3C,0x3C,0x3C,0x18,0x18,0x18,0x18,0x00,0x00, // Chr$(152) ˜ + 0xF8,0x8C,0xBE,0x8F,0xE3,0x85,0xF5,0xF5,0xF3,0xFF,0x00,0x00, // Chr$(153) ™ + 0x00,0x18,0x24,0x42,0x42,0x42,0x7E,0x7E,0x24,0x24,0x24,0x24, // Chr$(154) š + 0x00,0x18,0x3C,0x7E,0x7E,0x7E,0x7E,0x7E,0x24,0x24,0x24,0x24, // Chr$(155) › + 0x00,0x20,0x64,0xE2,0xE9,0xE5,0xE9,0xE2,0x64,0x20,0x00,0x00, // Chr$(156) œ + 0x00,0x3F,0x4B,0x4B,0x4B,0x3B,0x0B,0x0B,0x0B,0x0B,0x00,0x00, // Chr$(157)  + 0x00,0x7E,0x44,0x48,0x6E,0x24,0x28,0x50,0x60,0x40,0x00,0x00, // Chr$(158) ž + 0x00,0x00,0x21,0x36,0x1E,0x3C,0xFE,0x1B,0x10,0x10,0x00,0x00, // Chr$(159) Ÿ + 0x00,0x3C,0x42,0x81,0xA5,0xA5,0xA5,0x81,0x42,0x3C,0x00,0x00, // Chr$(160)   + 0x00,0x3C,0x42,0x91,0x99,0x9D,0x99,0x91,0x42,0x3C,0x00,0x00, // Chr$(161) ¡ + 0x00,0x3C,0x42,0x81,0xBD,0xBD,0xBD,0x81,0x42,0x3C,0x00,0x00, // Chr$(162) ¢ + 0x00,0x00,0x38,0x44,0x44,0x44,0x3C,0x06,0x03,0x01,0x00,0x00, // Chr$(163) £ + 0x00,0x0C,0x10,0x20,0x7C,0x20,0x20,0x7C,0x20,0x10,0x0C,0x00, // Chr$(164) ¤ + 0x00,0x00,0x1A,0x26,0x42,0x81,0x42,0x42,0x42,0x7E,0x00,0x00, // Chr$(165) ¥ + 0x00,0x00,0x3C,0x24,0xFF,0x42,0x42,0x42,0x42,0x7E,0x00,0x00, // Chr$(166) ¦ + 0x00,0x18,0x66,0x42,0x81,0xC3,0xC3,0x42,0x00,0x00,0x00,0x00, // Chr$(167) § + 0x00,0x00,0xFF,0x81,0x81,0x81,0x81,0xFF,0x18,0x3C,0x00,0x00, // Chr$(168) ¨ + 0x00,0x18,0x3C,0x3C,0x3C,0x3C,0x18,0x00,0x18,0x18,0x00,0x00, // Chr$(169) © + 0x28,0x56,0x41,0x83,0xFE,0x0C,0x10,0x10,0x20,0x00,0x00,0x00, // Chr$(170) ª + 0x00,0x30,0x48,0x48,0x48,0x4A,0x32,0x02,0x02,0x02,0x02,0x00, // Chr$(171) « + 0x18,0x24,0x66,0x5A,0x66,0x18,0x38,0x18,0x38,0x18,0x38,0x00, // Chr$(172) ¬ + 0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF,0x00,0xFF, // Chr$(173) ­ + 0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55,0x55, // Chr$(174) ® + 0xCC,0xCC,0x33,0x33,0xCC,0xCC,0x33,0x33,0xCC,0xCC,0x33,0x33, // Chr$(175) ¯ + 0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x92,0x49,0x24,0x92,0x49, // Chr$(176) ° + 0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA,0x55,0xAA, // Chr$(177) ± + 0x6D,0xDB,0xB6,0x6D,0xDB,0xB6,0x6D,0xDB,0xB6,0x6D,0xDB,0xB6, // Chr$(178) ² + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, // Chr$(179) ³ + 0x18,0x18,0x18,0x18,0x18,0xF8,0x18,0x18,0x18,0x18,0x18,0x18, // Chr$(180) ´ + 0x18,0x18,0x18,0x18,0xF8,0x18,0x18,0xF8,0x18,0x18,0x18,0x18, // Chr$(181) µ + 0x66,0x66,0x66,0x66,0x66,0xE6,0x66,0x66,0x66,0x66,0x66,0x66, // Chr$(182) ¶ + 0x00,0x00,0x00,0x00,0x00,0xFE,0x66,0x66,0x66,0x66,0x66,0x66, // Chr$(183) · + 0x00,0x00,0x00,0x00,0xF8,0x18,0x18,0xF8,0x18,0x18,0x18,0x18, // Chr$(184) ¸ + 0x66,0x66,0x66,0x66,0xE6,0x06,0x06,0xE6,0x66,0x66,0x66,0x66, // Chr$(185) ¹ + 0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, // Chr$(186) º + 0x00,0x00,0x00,0x00,0xFE,0x06,0x06,0xE6,0x66,0x66,0x66,0x66, // Chr$(187) » + 0x66,0x66,0x66,0x66,0xE6,0x06,0x06,0xFE,0x00,0x00,0x00,0x00, // Chr$(188) ¼ + 0x66,0x66,0x66,0x66,0x66,0xFE,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(189) ½ + 0x18,0x18,0x18,0x18,0xF8,0x18,0x18,0xF8,0x00,0x00,0x00,0x00, // Chr$(190) ¾ + 0x00,0x00,0x00,0x00,0x00,0xF8,0x18,0x18,0x18,0x18,0x18,0x18, // Chr$(191) ¿ + 0x18,0x18,0x18,0x18,0x18,0x1F,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(192) À + 0x18,0x18,0x18,0x18,0x18,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(193) Á + 0x00,0x00,0x00,0x00,0x00,0xFF,0x18,0x18,0x18,0x18,0x18,0x18, // Chr$(194)  + 0x18,0x18,0x18,0x18,0x18,0x1F,0x18,0x18,0x18,0x18,0x18,0x18, // Chr$(195) à + 0x00,0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(196) Ä + 0x18,0x18,0x18,0x18,0x18,0xFF,0x18,0x18,0x18,0x18,0x18,0x18, // Chr$(197) Å + 0x18,0x18,0x18,0x18,0x1F,0x18,0x18,0x1F,0x18,0x18,0x18,0x18, // Chr$(198) Æ + 0x66,0x66,0x66,0x66,0x66,0x67,0x66,0x66,0x66,0x66,0x66,0x66, // Chr$(199) Ç + 0x66,0x66,0x66,0x66,0x67,0x60,0x60,0x7F,0x00,0x00,0x00,0x00, // Chr$(200) È + 0x00,0x00,0x00,0x00,0x7F,0x60,0x60,0x67,0x66,0x66,0x66,0x66, // Chr$(201) É + 0x66,0x66,0x66,0x66,0xE7,0x00,0x00,0xFF,0x00,0x00,0x00,0x00, // Chr$(202) Ê + 0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0xE7,0x66,0x66,0x66,0x66, // Chr$(203) Ë + 0x66,0x66,0x66,0x66,0x67,0x60,0x60,0x67,0x66,0x66,0x66,0x66, // Chr$(204) Ì + 0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0x00, // Chr$(205) Í + 0x66,0x66,0x66,0x66,0xE7,0x00,0x00,0xE7,0x66,0x66,0x66,0x66, // Chr$(206) Î + 0x18,0x18,0x18,0x18,0xFF,0x00,0x00,0xFF,0x00,0x00,0x00,0x00, // Chr$(207) Ï + 0x66,0x66,0x66,0x66,0x66,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(208) Ð + 0x00,0x00,0x00,0x00,0xFF,0x00,0x00,0xFF,0x18,0x18,0x18,0x18, // Chr$(209) Ñ + 0x00,0x00,0x00,0x00,0x00,0xFF,0x66,0x66,0x66,0x66,0x66,0x66, // Chr$(210) Ò + 0x66,0x66,0x66,0x66,0x66,0x7F,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(211) Ó + 0x18,0x18,0x18,0x18,0x1F,0x18,0x18,0x1F,0x00,0x00,0x00,0x00, // Chr$(212) Ô + 0x00,0x00,0x00,0x00,0x1F,0x18,0x18,0x1F,0x18,0x18,0x18,0x18, // Chr$(213) Õ + 0x00,0x00,0x00,0x00,0x00,0x7F,0x66,0x66,0x66,0x66,0x66,0x66, // Chr$(214) Ö + 0x66,0x66,0x66,0x66,0x66,0xE7,0x66,0x66,0x66,0x66,0x66,0x66, // Chr$(215) × + 0x18,0x18,0x18,0x18,0xFF,0x00,0x00,0xFF,0x18,0x18,0x18,0x18, // Chr$(216) Ø + 0x18,0x18,0x18,0x18,0x18,0xF8,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(217) Ù + 0x00,0x00,0x00,0x00,0x00,0x1F,0x18,0x18,0x18,0x18,0x18,0x18, // Chr$(218) Ú + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, // Chr$(219) Û + 0x00,0x00,0x00,0x00,0x00,0x00,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, // Chr$(220) Ü + 0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0,0xF0, // Chr$(221) Ý + 0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F,0x0F, // Chr$(222) Þ + 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(223) ß + 0x00,0x00,0x00,0x00,0x3A,0x44,0x44,0x44,0x44,0x3A,0x00,0x00, // Chr$(224) à + 0x00,0x38,0x44,0x44,0x58,0x44,0x44,0x44,0x78,0x40,0x40,0x00, // Chr$(225) á + 0x00,0x00,0x7E,0x42,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x00, // Chr$(226) â + 0x00,0x00,0x00,0x00,0x7C,0x28,0x28,0x28,0x28,0x68,0x00,0x00, // Chr$(227) ã + 0x00,0x7E,0x42,0x20,0x10,0x08,0x10,0x20,0x42,0x7E,0x00,0x00, // Chr$(228) ä + 0x00,0x00,0x00,0x00,0x3E,0x48,0x44,0x44,0x44,0x38,0x00,0x00, // Chr$(229) å + 0x00,0x00,0x00,0x24,0x24,0x24,0x24,0x3C,0x42,0x40,0x80,0x00, // Chr$(230) æ + 0x00,0x00,0x00,0x00,0x44,0xA8,0x10,0x10,0x10,0x10,0x00,0x00, // Chr$(231) ç + 0x00,0x00,0x7C,0x00,0x38,0x44,0x44,0x44,0x38,0x00,0x7C,0x00, // Chr$(232) è + 0x00,0x00,0x18,0x24,0x42,0x42,0x7E,0x42,0x42,0x24,0x18,0x00, // Chr$(233) é + 0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x6C,0x28,0x6C,0x00,0x00, // Chr$(234) ê + 0x00,0x00,0x00,0x1C,0x20,0x38,0x44,0x44,0x44,0x38,0x00,0x00, // Chr$(235) ë + 0x00,0x00,0x00,0x00,0x00,0x6C,0x92,0x92,0x6C,0x00,0x00,0x00, // Chr$(236) ì + 0x00,0x00,0x00,0x00,0x02,0x6C,0x9A,0xB2,0x6C,0x80,0x00,0x00, // Chr$(237) í + 0x00,0x18,0x20,0x40,0x40,0x78,0x40,0x40,0x20,0x18,0x00,0x00, // Chr$(238) î + 0x00,0x00,0x00,0x00,0x38,0x44,0x44,0x44,0x44,0x44,0x00,0x00, // Chr$(239) ï + 0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x3C,0x00,0x00,0x00, // Chr$(240) ð + 0x00,0x00,0x10,0x10,0x7C,0x10,0x10,0x00,0x7C,0x00,0x00,0x00, // Chr$(241) ñ + 0x00,0x20,0x10,0x08,0x04,0x08,0x10,0x20,0x00,0x7E,0x00,0x00, // Chr$(242) ò + 0x00,0x04,0x08,0x10,0x20,0x10,0x08,0x04,0x00,0x7E,0x00,0x00, // Chr$(243) ó + 0x40,0x41,0x42,0x44,0x48,0x10,0x26,0x49,0x02,0x04,0x0F,0x00, // Chr$(244) ô + 0x40,0x41,0x42,0x44,0x48,0x12,0x26,0x4A,0x0F,0x02,0x02,0x00, // Chr$(245) õ + 0x00,0x00,0x18,0x18,0x00,0x7E,0x00,0x18,0x18,0x00,0x00,0x00, // Chr$(246) ö + 0x00,0x00,0x22,0x52,0x4C,0x00,0x22,0x52,0x4C,0x00,0x00,0x00, // Chr$(247) ÷ + 0x00,0x20,0x10,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(248) ø + 0x00,0x00,0x00,0x00,0x1C,0x1C,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(249) ù + 0x00,0x00,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(250) ú + 0x00,0x00,0x0E,0x08,0x08,0x08,0x08,0x48,0x28,0x18,0x08,0x00, // Chr$(251) û + 0x00,0x3C,0x12,0x12,0x12,0x12,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(252) ü + 0x00,0x18,0x24,0x08,0x10,0x3C,0x00,0x00,0x00,0x00,0x00,0x00, // Chr$(253) ý + 0x00,0x00,0x00,0x3C,0x3C,0x3C,0x3C,0x3C,0x3C,0x00,0x00,0x00, // Chr$(254) þ + 0x00,0x00,0x10,0x54,0x28,0xC6,0x28,0x54,0x10,0x00,0x00,0x00 // Chr$(255) ÿ +}; diff --git a/Kernel/platform/platform-rpipico/fonts/smallfont.h b/Kernel/platform/platform-rpipico/fonts/smallfont.h new file mode 100644 index 000000000..76c12f026 --- /dev/null +++ b/Kernel/platform/platform-rpipico/fonts/smallfont.h @@ -0,0 +1,20 @@ +// ArialNumFontPlus.c +// Font type : Special (SubSet) +// Font size : 32x50 pixels +// Memory usage : 2204 bytes + + #define PROGMEM + + +const uint32_t TinyFont[] ={ +0x60200604, +0x44000000, 0x00A04040, 0xA0AEAE00, 0x82406C6C, 0xEACC2048, 0x00004460, 0x84204424, 0xE4A48044, +0x00E404A0, 0x00800400, 0x040000E0, 0x00480240, 0x4CE0AAEA, 0x48C24044, 0xC062C2E0, 0xE820E2AA, +0xEA68E0E2, 0x8048E2E0, 0xEAE0EAEA, 0x0404C0E2, 0x80040400, 0x0E208424, 0x2484000E, 0x4040E280, +0x4A60E84A, 0xCACAA0EA, 0x608868C0, 0xE8C0AACA, 0xE8E8E0E8, 0x60EA6880, 0xE4A0EAAA, 0x2A22E044, +0xA0CAAA40, 0xAEE08888, 0xEEAEA0EA, 0x40AA4AA0, 0x4A80C8CA, 0xECCA60AE, 0xC04268A0, 0xAA4044E4, +0xA4AA60AA, 0xA0EEAA40, 0xAAA04AAA, 0x48E24044, 0xE088E8E0, 0xE2004208, 0x004AE022, 0xF0000000, +0x0C000084, 0xAA8CE06A, 0x608806C0, 0x0660AA26, 0xE42460AC, 0x24AE0640, 0x40A0CA88, 0x22204044, +0xA0CC8AA4, 0x0EE044C4, 0xAA0CA0EE, 0x40AA04A0, 0x06C8AA0C, 0x880662AA, 0xC0C60680, 0x0A60444E, +0xAE0A60AA, 0xE0AE0A40, 0x0AA0440A, 0x6C0E24A6, 0x608464E0, 0xC4400444, 0x006CC024, 0xE0EEEE00 +}; \ No newline at end of file diff --git a/Kernel/platform/platform-rpipico/globals.h b/Kernel/platform/platform-rpipico/globals.h index c86c4262e..cc733c863 100644 --- a/Kernel/platform/platform-rpipico/globals.h +++ b/Kernel/platform/platform-rpipico/globals.h @@ -5,7 +5,6 @@ extern void flash_dev_init(void); extern void sd_rawinit(void); - extern void contextswitch(ptptr p); struct svc_frame diff --git a/Kernel/platform/platform-rpipico/i2ckbd.c b/Kernel/platform/platform-rpipico/i2ckbd.c new file mode 100644 index 000000000..6133f2d9a --- /dev/null +++ b/Kernel/platform/platform-rpipico/i2ckbd.c @@ -0,0 +1,98 @@ +#include +#include +#include "i2ckbd.h" + +static uint8_t i2c_inited = 0; +static uint8_t keycheck = 0; + +void init_i2c_kbd(){ + gpio_set_function(I2C_KBD_SCL, GPIO_FUNC_I2C); + gpio_set_function(I2C_KBD_SDA, GPIO_FUNC_I2C); + i2c_init(I2C_KBD_MOD, I2C_KBD_SPEED); + gpio_pull_up(I2C_KBD_SCL); + gpio_pull_up(I2C_KBD_SDA); + + i2c_inited = 1; + keycheck = 0; +} +int write_i2c_kbd(){ + int retval; + unsigned char msg[2]; + msg[0] = 0x09; + + if(i2c_inited == 0) return -1; + + retval = i2c_write_timeout_us(I2C_KBD_MOD, I2C_KBD_ADDR, msg, 1, false, 500000); + if ( retval == PICO_ERROR_GENERIC || retval == PICO_ERROR_TIMEOUT) { + printf( "i2c write error\n"); + return -1; + } + return 0; +} + +int read_i2c_kbd(){ + int retval; + static int ctrlheld=0; + uint16_t buff = 0; + unsigned char msg[2]; + int c = -1; + msg[0] = 0x09; + + if(i2c_inited == 0) return -1; + + if(keycheck == 0){ + retval = write_i2c_kbd(); + keycheck = 1; + return retval; + }else { + retval = i2c_read_timeout_us(I2C_KBD_MOD, I2C_KBD_ADDR, (unsigned char *) &buff, 2, false, 500000); + if (retval == PICO_ERROR_GENERIC || retval == PICO_ERROR_TIMEOUT) { + printf("i2c read error read\n"); + return -1; + } + keycheck = 0; + } + if(buff!=0) { + if (buff == 0xA503)ctrlheld = 0; + else if (buff == 0xA502) { + ctrlheld = 1; + }else if((buff & 0xff)==1) {//pressed + c = buff >> 8; + int realc = -1; + switch (c) { + case 0xA1: + case 0xA2: + case 0xA3: + case 0xA4: + case 0xA5: + realc = -1;//skip shift alt ctrl keys + break; + default: + realc = c; + break; + } + c = realc; + if(c>='a' && c<='z' && ctrlheld)c=c-'a'+1; + } + return c; + } + return -1; +} + +int I2C_Send_RegData(int i2caddr,int reg,char command){ + int retval; + unsigned char I2C_Send_Buffer[2]; + I2C_Send_Buffer[0]=reg; + I2C_Send_Buffer[1]=command; + uint8_t I2C_Sendlen=2; + uint16_t I2C_Timeout=1000; + + retval=i2c_write_timeout_us(I2C_KBD_MOD, (uint8_t)i2caddr, (uint8_t *)I2C_Send_Buffer, I2C_Sendlen,false, I2C_Timeout*1000); + + if ( retval == PICO_ERROR_GENERIC || retval == PICO_ERROR_TIMEOUT) { + printf( "I2C_Send_RegData write error\n"); + return -1; + } + return 0; +} + diff --git a/Kernel/platform/platform-rpipico/i2ckbd.h b/Kernel/platform/platform-rpipico/i2ckbd.h new file mode 100644 index 000000000..2319360c4 --- /dev/null +++ b/Kernel/platform/platform-rpipico/i2ckbd.h @@ -0,0 +1,21 @@ +#ifndef I2C_KEYBOARD_H +#define I2C_KEYBOARD_H +#include +#include +#include +#include + +#define I2C_KBD_MOD i2c1 +#define I2C_KBD_SDA 6 +#define I2C_KBD_SCL 7 + +#define I2C_KBD_SPEED 400000 // if dual i2c, then the speed of keyboard i2c should be 10khz + +#define I2C_KBD_ADDR 0x1F + +void init_i2c_kbd(); +int read_i2c_kbd(); +int write_i2c_kbd(); +int I2C_Send_RegData(int i2caddr,int reg,char command); + +#endif \ No newline at end of file diff --git a/Kernel/platform/platform-rpipico/lcdspi.c b/Kernel/platform/platform-rpipico/lcdspi.c new file mode 100644 index 000000000..13c859204 --- /dev/null +++ b/Kernel/platform/platform-rpipico/lcdspi.c @@ -0,0 +1,929 @@ +#include +#include +#include +#include + +#include +#include +#include +#include + +#include "picosdk.h" +#include "config.h" +#include +#include "hardware/timer.h" +#include +#include "lcdspi.h" +#include "i2ckbd.h" +#include "pico/multicore.h" +////////////////////**************************************fonts +#define FONT_TABLE_SIZE 16 + +#include "fonts/font1.h" +#include "fonts/Misc_12x20_LE.h" +#include "fonts/Hom_16x24_LE.h" +#include "fonts/Fnt_10x16.h" +#include "fonts/Inconsola.h" +#include "fonts/ArialNumFontPlus.h" +#include "fonts/Font_8x6.h" +#include "fonts/arial_bold.h" +#include "fonts/smallfont.h" + +unsigned char *FontTable[FONT_TABLE_SIZE] = {(unsigned char *) font1, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, + NULL, +}; + +static short gui_font; +static int gui_fcolour; +static int gui_bcolour; +static short CurrentX = 0, CurrentY = 0; // the current default position for the next char to be written +static short gui_font_width, gui_font_height; +static short HRes = 0; +static short VRes = 0; +static char S_Height; +static char S_Width; + +#ifdef HARDWARE_SCROLL +short offsetY = 0; +#endif +unsigned char LCDBuffer[320 * 3] = {0};// 1440 = 480*3, 320*3 = 960 + +void __not_in_flash_func(spi_write_fast)(spi_inst_t *spi, const uint8_t *src, size_t len) { + // Write to TX FIFO whilst ignoring RX, then clean up afterward. When RX + // is full, PL022 inhibits RX pushes, and sets a sticky flag on + // push-on-full, but continues shifting. Safe if SSPIMSC_RORIM is not set. + for (size_t i = 0; i < len; ++i) { + while (!spi_is_writable(spi)) + tight_loop_contents(); + spi_get_hw(spi)->dr = (uint32_t) src[i]; + } +} + +void __not_in_flash_func(spi_finish)(spi_inst_t *spi) { + // Drain RX FIFO, then wait for shifting to finish (which may be *after* + // TX FIFO drains), then drain RX FIFO again + while (spi_is_readable(spi)) + (void) spi_get_hw(spi)->dr; + while (spi_get_hw(spi)->sr & SPI_SSPSR_BSY_BITS) + tight_loop_contents(); + while (spi_is_readable(spi)) + (void) spi_get_hw(spi)->dr; + + // Don't leave overrun flag set + spi_get_hw(spi)->icr = SPI_SSPICR_RORIC_BITS; +} + +int GetFontWidth(int fnt) { + return FontTable[fnt >> 4][0] * (fnt & 0b1111); +} + +int GetFontHeight(int fnt) { + return FontTable[fnt >> 4][1] * (fnt & 0b1111); +} + +void init_fonts() { + FontTable[0] = (unsigned char *) font1; + +} + +void SetFont(int fnt) { + if (FontTable[fnt >> 4] == NULL) panic("Invalid font number,max is 15"); + gui_font_width = FontTable[fnt >> 4][0] * (fnt & 0b1111); + gui_font_height = FontTable[fnt >> 4][1] * (fnt & 0b1111); + + + S_Height = VRes / gui_font_height; + S_Width = HRes / gui_font_width; + + gui_font = fnt; + +} + +void DefineRegionSPI(int xstart, int ystart, int xend, int yend, int rw) { + unsigned char coord[4]; + lcd_spi_lower_cs(); + gpio_put(Pico_LCD_DC, 0);//gpio_put(Pico_LCD_DC,0); + HWSendSPI(&(uint8_t) {ILI9341_COLADDRSET}, 1); + gpio_put(Pico_LCD_DC, 1); + coord[0] = xstart >> 8; + coord[1] = xstart; + coord[2] = xend >> 8; + coord[3] = xend; + HWSendSPI(coord, 4);// HAL_SPI_Transmit(&hspi3,coord,4,500); + gpio_put(Pico_LCD_DC, 0); + HWSendSPI(&(uint8_t) {ILI9341_PAGEADDRSET}, 1); + gpio_put(Pico_LCD_DC, 1); + coord[0] = ystart >> 8; + coord[1] = ystart; + coord[2] = yend >> 8; + coord[3] = yend; + HWSendSPI(coord, 4);// HAL_SPI_Transmit(&hspi3,coord,4,500); + gpio_put(Pico_LCD_DC, 0); + if (rw) { + HWSendSPI(&(uint8_t) {ILI9341_MEMORYWRITE}, 1); + } else { + HWSendSPI(&(uint8_t) {ILI9341_RAMRD}, 1); + } + gpio_put(Pico_LCD_DC, 1); +} + +void ReadBufferSPI(int x1, int y1, int x2, int y2, unsigned char *p) { + int r, N, t; + unsigned char h, l; +// PInt(x1);PIntComma(y1);PIntComma(x2);PIntComma(y2);PRet(); + // make sure the coordinates are kept within the display area + if (x2 <= x1) { + t = x1; + x1 = x2; + x2 = t; + } + if (y2 <= y1) { + t = y1; + y1 = y2; + y2 = t; + } + if (x1 < 0) x1 = 0; + if (x1 >= HRes) x1 = HRes - 1; + if (x2 < 0) x2 = 0; + if (x2 >= HRes) x2 = HRes - 1; + if (y1 < 0) y1 = 0; + if (y1 >= VRes) y1 = VRes - 1; + if (y2 < 0) y2 = 0; + if (y2 >= VRes) y2 = VRes - 1; + N = (x2 - x1 + 1) * (y2 - y1 + 1) * 3; + + DefineRegionSPI(x1, y1, x2, y2, 0); + + //spi_init(Pico_LCD_SPI_MOD, 6000000); + spi_set_baudrate(Pico_LCD_SPI_MOD, 6000000); + //spi_read_data_len(p, 1); + HWReadSPI((uint8_t *) p, 1); + r = 0; + HWReadSPI((uint8_t *) p, N); + gpio_put(Pico_LCD_DC, 0); + lcd_spi_raise_cs(); + spi_set_baudrate(Pico_LCD_SPI_MOD, LCD_SPI_SPEED); + r = 0; + + while (N) { + h = (uint8_t) p[r + 2]; + l = (uint8_t) p[r]; + p[r] = h;//(h & 0xF8); + p[r + 2] = l;//(l & 0xF8); + r += 3; + N -= 3; + } +} + +void DrawBufferSPI(int x1, int y1, int x2, int y2, unsigned char *p) { + union colourmap { + char rgbbytes[4]; + unsigned int rgb; + } c; + unsigned char q[3]; + int i, t; + if (x2 <= x1) { + t = x1; + x1 = x2; + x2 = t; + } + if (y2 <= y1) { + t = y1; + y1 = y2; + y2 = t; + } + if (x1 < 0) x1 = 0; + if (x1 >= HRes) x1 = HRes - 1; + if (x2 < 0) x2 = 0; + if (x2 >= HRes) x2 = HRes - 1; + if (y1 < 0) y1 = 0; + if (y1 >= VRes) y1 = VRes - 1; + if (y2 < 0) y2 = 0; + if (y2 >= VRes) y2 = VRes - 1; + i = (x2 - x1 + 1) * (y2 - y1 + 1); + DefineRegionSPI(x1, y1, x2, y2, 1); + while (i--) { + c.rgbbytes[0] = *p++; //this order swaps the bytes to match the .BMP file + c.rgbbytes[1] = *p++; + c.rgbbytes[2] = *p++; + // convert the colours to 565 format + // convert the colours to 565 format +#ifdef ILI9488 + q[0] = c.rgbbytes[2]; + q[1] = c.rgbbytes[1]; + q[2] = c.rgbbytes[0]; +#endif + HWSendSPI(q, 3); + } + lcd_spi_raise_cs(); + +} + +//Print the bitmap of a char on the video output +// x, y - the top left of the char +// width, height - size of the char's bitmap +// scale - how much to scale the bitmap +// fc, bc - foreground and background colour +// bitmap - pointer to the bitmap +void DrawBitmapSPI(int x1, int y1, int width, int height, int scale, int fc, int bc, unsigned char *bitmap) { + int i, j, k, m, n; + char f[3], b[3]; + int vertCoord, horizCoord, XStart, XEnd, YEnd; + char *p = 0; + union colourmap { + char rgbbytes[4]; + unsigned int rgb; + } c; +#ifdef HARDWARE_SCROLL + y1 += offsetY; y1 = y1 %LCD_REAL_HEIGHT; +#endif + if (x1 >= HRes || y1 >= VRes || x1 + width * scale < 0 || y1 + height * scale < 0)return; + // adjust when part of the bitmap is outside the displayable coordinates + vertCoord = y1; + if (y1 < 0) y1 = 0; // the y coord is above the top of the screen + XStart = x1; + if (XStart < 0) XStart = 0; // the x coord is to the left of the left marginn + XEnd = x1 + (width * scale) - 1; + if (XEnd >= HRes) XEnd = HRes - 1; // the width of the bitmap will extend beyond the right margin + YEnd = y1 + (height * scale) - 1; + if (YEnd >= VRes) YEnd = VRes - 1;// the height of the bitmap will extend beyond the bottom margin + +#ifdef ILI9488 + // convert the colours to 565 format + f[0] = (fc >> 16); + f[1] = (fc >> 8) & 0xFF; + f[2] = (fc & 0xFF); + b[0] = (bc >> 16); + b[1] = (bc >> 8) & 0xFF; + b[2] = (bc & 0xFF); + +#endif + //printf("DrawBitmapSPI-> XStart %d, y1 %d, XEnd %d, YEnd %d\n",XStart,y1,XEnd,YEnd); + DefineRegionSPI(XStart, y1, XEnd, YEnd, 1); + + n = 0; + for (i = 0; i < height; i++) { // step thru the font scan line by line + for (j = 0; j < scale; j++) { // repeat lines to scale the font + if (vertCoord++ < 0) continue; // we are above the top of the screen + if (vertCoord > VRes) { // we have extended beyond the bottom of the screen + lcd_spi_raise_cs(); //set CS high + return; + } + horizCoord = x1; + for (k = 0; k < width; k++) { // step through each bit in a scan line + for (m = 0; m < scale; m++) { // repeat pixels to scale in the x axis + if (horizCoord++ < 0) continue; // we have not reached the left margin + if (horizCoord > HRes) continue; // we are beyond the right margin + if ((bitmap[((i * width) + k) / 8] >> (((height * width) - ((i * width) + k) - 1) % 8)) & 1) { + HWSendSPI((uint8_t *) &f, 3); + } else { + if (bc == -1) { + c.rgbbytes[0] = p[n]; + c.rgbbytes[1] = p[n + 1]; + c.rgbbytes[2] = p[n + 2]; +#ifdef ILI9488 + b[0] = c.rgbbytes[2]; + b[1] = c.rgbbytes[1]; + b[2] = c.rgbbytes[0]; +#endif + } + HWSendSPI((uint8_t *) &b, 3); + } + n += 3; + } + } + } + } + lcd_spi_raise_cs(); //set CS high + +} + +// Draw a filled rectangle with hardware scroll +// auto split y2 coord over LCD_REAL_HEIGHT rect to be two rects +// all the Y coordinates should be circled +// x1, y1, x2, y2 - the coordinates +// c - the colour +// finish -- whether should finish the spi and disable LCD_CS +void DrawRectangleSPI(int x1, int y1, int x2, int y2, int c) { + // convert the colours to 565 format + unsigned char col[3]; + if (x1 == x2 && y1 == y2) { + if (x1 < 0) return; + if (x1 >= HRes) return; + if(y1 < 0) {y1 = LCD_REAL_HEIGHT+y1;} + if(y1 >= VRes) {y1 = y1 % LCD_REAL_HEIGHT;} + y1 += offsetY; + y1 = y1 % LCD_REAL_HEIGHT; + y2 = y1; + DefineRegionSPI(x1, y1, x2, y2, 1); +#ifdef ILI9488 + col[0] = (c >> 16); + col[1] = (c >> 8) & 0xFF; + col[2] = (c & 0xFF); +#endif + HWSendSPI(col, 3); + } else { + int i, t, y; + unsigned char *p; + // make sure the coordinates are kept within the display area + if (x2 <= x1) { + t = x1; + x1 = x2; + x2 = t; + } + if (y2 <= y1) { + t = y1; + y1 = y2; + y2 = t; + } + if (x1 < 0) x1 = 0; + if (x1 >= HRes) x1 = HRes - 1; + if (x2 < 0) x2 = 0; + if (x2 >= HRes) x2 = HRes - 1; + + y1 += offsetY; + y2 += offsetY; + + if (y2 >= VRes) { + if(y1 < VRes){ // 分割 + int ov_y = y2 - VRes; + DrawRectangleSPI(x1, 0, x2, ov_y, c); + y2 = VRes - 1; + }else{ + y1 = y1 % LCD_REAL_HEIGHT; + y2 = y2 % LCD_REAL_HEIGHT; + } + } + + if (y1 < 0) { y1 = VRes + y1; } + if (y1 >= VRes) { y1 = y1 % LCD_REAL_HEIGHT;} + if (y2 < 0) { y2 = VRes + y2;} + + + DefineRegionSPI(x1, y1, x2, y2, 1); +#ifdef ILI9488 + i = x2 - x1 + 1; + i *= 3; + p = LCDBuffer; + col[0] = (c >> 16); + col[1] = (c >> 8) & 0xFF; + col[2] = (c & 0xFF); + for (t = 0; t < i; t += 3) { + p[t] = col[0]; + p[t + 1] = col[1]; + p[t + 2] = col[2]; + } + for (y = y1; y <= y2; y++) { + spi_write_fast(Pico_LCD_SPI_MOD, p, i); + } +#endif + } + + spi_finish(Pico_LCD_SPI_MOD); + lcd_spi_raise_cs(); + +} + +/****************************************************************************************** + Print a char on the LCD display + Any characters not in the font will print as a space. + The char is printed at the current location defined by CurrentX and CurrentY +*****************************************************************************************/ +void GUIPrintChar(int fnt, int fc, int bc, char c, int orientation) { + unsigned char *p, *fp, *np = NULL; + int modx, mody, scale = fnt & 0b1111; + int height, width; + + // to get the +, - and = chars for font 6 we fudge them by scaling up font 1 + if ((fnt & 0xf0) == 0x50 && (c == '-' || c == '+' || c == '=')) { + fp = (unsigned char *) FontTable[0]; + //scale = scale * 4; + } else + fp = (unsigned char *) FontTable[fnt >> 4]; + + height = fp[1]; + width = fp[0]; + modx = mody = 0; + //printf("fp %d, c %d ,height %d width %d\n",fp,c, height,width); + + if (c >= fp[2] && c < fp[2] + fp[3]) { + p = fp + 4 + (int) (((c - fp[2]) * height * width) / 8); + //printf("p = %d\n",p); + np = p; + + DrawBitmapSPI(CurrentX + modx, CurrentY+mody,width, height, scale, fc, bc, np); + } else { + DrawRectangleSPI(CurrentX + modx, CurrentY+mody, CurrentX + modx + (width * scale), + mody + (height * scale), bc); + } + + if (orientation == ORIENT_NORMAL) CurrentX += width * scale; + +} +#ifdef HARDWARE_SCROLL +void setScrollArea(uint16_t topFixedArea, uint16_t bottomFixedArea) { + + spi_write_command(0x33); // Vertical HWScroll definition + spi_write_data(topFixedArea >> 8); + spi_write_data(topFixedArea); + spi_write_data(LCD_REAL_HEIGHT >> 8); + spi_write_data(LCD_REAL_HEIGHT & 0xff); + spi_write_data(bottomFixedArea >> 8); + spi_write_data(bottomFixedArea); + +} + +void HWScroll(uint16_t pixels) { + spi_write_command(0x37); // Vertical scrolling start address + spi_write_data(pixels >> 8); + spi_write_data(pixels & 0xFF); +} + +#else +unsigned char scrollbuff[LCD_WIDTH*3]; +#endif + + +void ScrollLCDSPI(int lines) { + if (lines == 0)return; +#ifdef HARDWARE_SCROLL + if (lines > 0) { + HWScroll(offsetY); + } + + spi_finish(Pico_LCD_SPI_MOD); + lcd_spi_raise_cs(); +#else + + if (lines >= 0) { + for (int i = 0; i < VRes - lines; i++) { + ReadBufferSPI(0, i + lines, HRes - 1, i + lines, scrollbuff); + DrawBufferSPI(0, i, HRes - 1, i, scrollbuff); + } + DrawRectangleSPI(0, VRes - lines, HRes - 1, VRes - 1, gui_bcolour); // erase the lines to be scrolled off + } else { + lines = -lines; + for (int i = VRes - 1; i >= lines; i--) { + ReadBufferSPI(0, i - lines, HRes - 1, i - lines, scrollbuff); + DrawBufferSPI(0, i, HRes - 1, i, scrollbuff); + } + DrawRectangleSPI(0, 0, HRes - 1, lines - 1, gui_bcolour); // erase the lines introduced at the top + } +#endif + +} + +void DisplayPutC(char c) { + // if it is printable and it is going to take us off the right hand end of the screen do a CRLF + if (c >= FontTable[gui_font >> 4][2] && c < FontTable[gui_font >> 4][2] + FontTable[gui_font >> 4][3]) { + if (CurrentX + gui_font_width > HRes) { + DisplayPutC('\r'); + DisplayPutC('\n'); + } + } + + // handle the standard control chars + switch (c) { + case '\b': + CurrentX -= gui_font_width; + //if (CurrentX < 0) CurrentX = 0; + if (CurrentX < 0) { //Go to end of previous line + CurrentY -= gui_font_height; //Go up one line + if (CurrentY < 0) CurrentY = 0; + CurrentX = (S_Width - 1) * gui_font_width; //go to last character + } + return; + case '\r': + CurrentX = 0; + return; + case '\n': + CurrentY += gui_font_height; + if (CurrentY + gui_font_height >= LCD_HEIGHT) { +#ifdef HARDWARE_SCROLL + int lines= 0; + lines = CurrentY + gui_font_height - LCD_HEIGHT; + + DrawRectangleSPI(CurrentX,CurrentY,CurrentX+HRes,CurrentY + lines,BLACK); + offsetY += lines; + if(offsetY >= LCD_REAL_HEIGHT){ + offsetY -= LCD_REAL_HEIGHT; + } + ScrollLCDSPI(lines); + CurrentY -= lines; +#else + ScrollLCDSPI(CurrentY + gui_font_height - VRes); + CurrentY -= (CurrentY + gui_font_height - VRes); +#endif + } + return; + case '\t': + do { + DisplayPutC(' '); + } while ((CurrentX / gui_font_width) % 2);// 2 3 4 8 + return; + } + GUIPrintChar(gui_font, gui_fcolour, gui_bcolour, c, ORIENT_NORMAL);// print it +} + +///////=----------------------------------------===////// +void lcd_clear() { + DrawRectangleSPI(0, 0, HRes - 1, VRes - 1, BLACK); +} + +void lcd_putc(uint8_t devn, uint8_t c) { + DisplayPutC(c); +} + +int lcd_getc(uint8_t devn){ + //i2c keyboard + int c = read_i2c_kbd(); + return c; +} +void lcd_sleeping(uint8_t devn){ + +} +ttyready_t lcd_ready(uint8_t devn){ + return TTY_READY_NOW; +} + +unsigned char __not_in_flash_func(HW1SwapSPI)(unsigned char data_out){ + unsigned char data_in=0; + spi_write_read_blocking(spi1,&data_out,&data_in,1); + return data_in; +} + +void HWReadSPI(unsigned char *buff, int cnt) { + spi_read_blocking(Pico_LCD_SPI_MOD, 0xff, buff, cnt); +} + +void HWSendSPI(const unsigned char *buff, int cnt) { + + spi_write_blocking(Pico_LCD_SPI_MOD, buff, cnt); + +} + + +void PinSetBit(int pin, unsigned int offset) { + switch (offset) { + case LATCLR: + gpio_set_pulls(pin, false, false); + gpio_pull_down(pin); + gpio_put(pin, 0); + return; + case LATSET: + gpio_set_pulls(pin, false, false); + gpio_pull_up(pin); + gpio_put(pin, 1); + return; + case LATINV: + gpio_xor_mask(1 << pin); + return; + case TRISSET: + gpio_set_dir(pin, GPIO_IN); + sleep_us(2); + return; + case TRISCLR: + gpio_set_dir(pin, GPIO_OUT); + gpio_set_drive_strength(pin, GPIO_DRIVE_STRENGTH_12MA); + sleep_us(2); + return; + case CNPUSET: + gpio_set_pulls(pin, true, false); + return; + case CNPDSET: + gpio_set_pulls(pin, false, true); + return; + case CNPUCLR: + case CNPDCLR: + gpio_set_pulls(pin, false, false); + return; + case ODCCLR: + gpio_set_dir(pin, GPIO_OUT); + gpio_put(pin, 0); + sleep_us(2); + return; + case ODCSET: + gpio_set_pulls(pin, true, false); + gpio_set_dir(pin, GPIO_IN); + sleep_us(2); + return; + case ANSELCLR: + gpio_set_function(pin, GPIO_FUNC_SIO); + gpio_set_dir(pin, GPIO_IN); + return; + default: + break; + //printf("Unknown PinSetBit command"); + } +} + +//important for read lcd memory +void ResetController(void) { + PinSetBit(Pico_LCD_RST, LATSET); + sleep_us(10000); + PinSetBit(Pico_LCD_RST, LATCLR); + sleep_us(10000); + PinSetBit(Pico_LCD_RST, LATSET); + sleep_us(200000); +} + + +void pico_lcd_init() { +#ifdef ILI9488 + ResetController(); + + HRes = 320; +#ifdef HARDWARE_SCROLL + VRes = 480; //logic vertical height +#else + VRes = 320; +#endif +#if defined(CONFIG_PICOCALC) + spi_write_command(0xF0); + spi_write_data(0xC3); + spi_write_command(0xF0); + spi_write_data(0x96); + spi_write_command(TFT_MADCTL); + spi_write_data(0x48); + spi_write_command(0x3A); + spi_write_data(0x06); + spi_write_command(0xB4); + spi_write_data(0x00); + //spi_write_command(0xB6); //RGB Control + //spi_write_data(0x8A); + //spi_write_data(0x07); + //spi_write_data(0x27); //320 Gates + spi_write_command(0xB7); + spi_write_data(0xC6); + spi_write_command(0xB9); + spi_write_data(0x02); + spi_write_data(0xE0); + spi_write_command(0xC0); + spi_write_data(0x80); + spi_write_data(0x06); + spi_write_command(0xC1); + spi_write_data(0x15); + spi_write_command(0xC2); + spi_write_data(0xA7); + spi_write_command(0xC5);//VCOM + spi_write_data(0x04); + spi_write_command(0xE8); + spi_write_data(0x40); + spi_write_data(0x8A); + spi_write_data(0x00); + spi_write_data(0x00); + spi_write_data(0x29); + spi_write_data(0x19); + spi_write_data(0xAA); + spi_write_data(0x33); + spi_write_command(0xE0); + spi_write_data(0xF0); + spi_write_data(0x06); + spi_write_data(0x0F); + spi_write_data(0x05); + spi_write_data(0x04); + spi_write_data(0x20); + spi_write_data(0x37); + spi_write_data(0x33); + spi_write_data(0x4C); + spi_write_data(0x37); + spi_write_data(0x13); + spi_write_data(0x14); + spi_write_data(0x2B); + spi_write_data(0x31); + spi_write_command(0xE1); + spi_write_data(0xF0); + spi_write_data(0x11); + spi_write_data(0x1B); + spi_write_data(0x11); + spi_write_data(0x0F); + spi_write_data(0x0A); + spi_write_data(0x37); + spi_write_data(0x43); + spi_write_data(0x4C); + spi_write_data(0x37); + spi_write_data(0x13); + spi_write_data(0x13); + spi_write_data(0x2C); + spi_write_data(0x32); + spi_write_command(0xF0); + spi_write_data(0x3C); + spi_write_command(0xF0); + spi_write_data(0x69); + spi_write_command(0x35); + spi_write_data(0x00); + spi_write_command(TFT_SLPOUT); + sleep_ms(120); //ms + spi_write_command(TFT_DISPON); + sleep_ms(20); + spi_write_command(TFT_INVON); + spi_write_command(0x2A); + spi_write_data(0x00); + spi_write_data(0x00); + spi_write_data(0x01); + spi_write_data(0x3F); + spi_write_command(0x2B); + spi_write_data(0x00); + spi_write_data(0x00); + spi_write_data(0x01); + spi_write_data(0x3F); + spi_write_command(0x2C); +#else + spi_write_command(0xE0); // Positive Gamma Control + spi_write_data(0x00); + spi_write_data(0x03); + spi_write_data(0x09); + spi_write_data(0x08); + spi_write_data(0x16); + spi_write_data(0x0A); + spi_write_data(0x3F); + spi_write_data(0x78); + spi_write_data(0x4C); + spi_write_data(0x09); + spi_write_data(0x0A); + spi_write_data(0x08); + spi_write_data(0x16); + spi_write_data(0x1A); + spi_write_data(0x0F); + + spi_write_command(0XE1); // Negative Gamma Control + spi_write_data(0x00); + spi_write_data(0x16); + spi_write_data(0x19); + spi_write_data(0x03); + spi_write_data(0x0F); + spi_write_data(0x05); + spi_write_data(0x32); + spi_write_data(0x45); + spi_write_data(0x46); + spi_write_data(0x04); + spi_write_data(0x0E); + spi_write_data(0x0D); + spi_write_data(0x35); + spi_write_data(0x37); + spi_write_data(0x0F); + + spi_write_command(0XC0); // Power Control 1 + spi_write_data(0x17); + spi_write_data(0x15); + + spi_write_command(0xC1); // Power Control 2 + spi_write_data(0x41); + + spi_write_command(0xC5); // VCOM Control + spi_write_data(0x00); + spi_write_data(0x12); + spi_write_data(0x80); + + spi_write_command(TFT_MADCTL); // Memory Access Control + spi_write_data(0x48); // MX, BGR + + spi_write_command(0x3A); // Pixel Interface Format + spi_write_data(0x66); // 18 bit colour for SPI + + spi_write_command(0xB0); // Interface Mode Control + spi_write_data(0x00); + + spi_write_command(0xB1); // Frame Rate Control + spi_write_data(0xA0); + + spi_write_command(TFT_INVON); + + spi_write_command(0xB4); // Display Inversion Control + spi_write_data(0x02); + + spi_write_command(0xB6); // Display Function Control + spi_write_data(0x02); + spi_write_data(0x02); + spi_write_data(0x3B); + + spi_write_command(0xB7); // Entry Mode Set + spi_write_data(0xC6); + spi_write_command(0xE9); + spi_write_data(0x00); + + spi_write_command(0xF7); // Adjust Control 3 + spi_write_data(0xA9); + spi_write_data(0x51); + spi_write_data(0x2C); + spi_write_data(0x82); + + spi_write_command(TFT_SLPOUT); //Exit Sleep + sleep_ms(120); + + spi_write_command(TFT_DISPON); //Display on + sleep_ms(120); + + spi_write_command(TFT_MADCTL); + spi_write_cd(ILI9341_MEMCONTROL, 1, ILI9341_Portrait); +#endif + setScrollArea(0,0); +#endif +} + +void lcd_spi_raise_cs(void) { + gpio_put(Pico_LCD_CS, 1); +} + +void lcd_spi_lower_cs(void) { + + gpio_put(Pico_LCD_CS, 0); + +} + +void spi_write_data(unsigned char data) { + gpio_put(Pico_LCD_DC, 1); + lcd_spi_lower_cs(); + HWSendSPI(&data, 1); + lcd_spi_raise_cs(); +} + +void spi_write_data24(uint32_t data) { + uint8_t data_array[3]; + data_array[0] = data >> 16; + data_array[1] = (data >> 8) & 0xFF; + data_array[2] = data & 0xFF; + + + gpio_put(Pico_LCD_DC, 1); // Data mode + gpio_put(Pico_LCD_CS, 0); + spi_write_blocking(Pico_LCD_SPI_MOD, data_array, 3); + gpio_put(Pico_LCD_CS, 1); +} + +void spi_write_command(unsigned char data) { + gpio_put(Pico_LCD_DC, 0); + gpio_put(Pico_LCD_CS, 0); + + spi_write_blocking(Pico_LCD_SPI_MOD, &data, 1); + + gpio_put(Pico_LCD_CS, 1); +} + +void spi_write_cd(unsigned char command, int data, ...) { + int i; + va_list ap; + va_start(ap, data); + spi_write_command(command); + for (i = 0; i < data; i++) spi_write_data((char) va_arg(ap, int)); + va_end(ap); +} + +void lcd_spi_init() { + // 初始化 GPIO + gpio_init(Pico_LCD_SCK); + gpio_init(Pico_LCD_TX); + gpio_init(Pico_LCD_RX); + gpio_init(Pico_LCD_CS); + gpio_init(Pico_LCD_DC); + gpio_init(Pico_LCD_RST); + + gpio_set_dir(Pico_LCD_SCK, GPIO_OUT); + gpio_set_dir(Pico_LCD_TX, GPIO_OUT); + //gpio_set_dir(Pico_LCD_RX, GPIO_IN); + gpio_set_dir(Pico_LCD_CS, GPIO_OUT); + gpio_set_dir(Pico_LCD_DC, GPIO_OUT); + gpio_set_dir(Pico_LCD_RST, GPIO_OUT); + + // 初始化 SPI + spi_init(Pico_LCD_SPI_MOD, LCD_SPI_SPEED); + gpio_set_function(Pico_LCD_SCK, GPIO_FUNC_SPI); + gpio_set_function(Pico_LCD_TX, GPIO_FUNC_SPI); + gpio_set_function(Pico_LCD_RX, GPIO_FUNC_SPI); + gpio_set_input_hysteresis_enabled(Pico_LCD_RX, true); + + gpio_put(Pico_LCD_CS, 1); + gpio_put(Pico_LCD_RST, 1); +} + +void setBacklight(int level){//STM32: i2c reg is REG_ID_BKL(0x05) + //level is 0-100% + level*=255; + level/=100; + I2C_Send_RegData(I2C_KBD_ADDR,0x05,(uint8_t)level); +} + +void lcd_init() { + + lcd_spi_init(); + pico_lcd_init(); + init_fonts(); + SetFont(0x01); + gui_fcolour = GREEN; + gui_bcolour = BLACK; + +} diff --git a/Kernel/platform/platform-rpipico/lcdspi.h b/Kernel/platform/platform-rpipico/lcdspi.h new file mode 100644 index 000000000..255142786 --- /dev/null +++ b/Kernel/platform/platform-rpipico/lcdspi.h @@ -0,0 +1,134 @@ +#ifndef LCDSPI_H +#define LCDSPI_H +#include "pico/multicore.h" +#include +#include "devtty.h" +//#define LCD_SPI_SPEED 6000000 +#define LCD_SPI_SPEED 25000000 +//#define LCD_SPI_SPEED 50000000 + +#define Pico_LCD_SCK 10 // +#define Pico_LCD_TX 11 // MOSI +#define Pico_LCD_RX 12 // MISO +#define Pico_LCD_CS 13 // +#define Pico_LCD_DC 14 +#define Pico_LCD_RST 15 + +#define ILI9488 1 +#define HARDWARE_SCROLL 1 //use 0x33 0x37 to do vertical scrolling +#ifdef ILI9488 +#define LCD_WIDTH 320 +#define LCD_HEIGHT 320 +#define LCD_REAL_HEIGHT 480 // ILI9488 real height is 480 +#endif + +#define PIXFMT_BGR 1 + +#define TFT_SLPOUT 0x11 +#define TFT_INVOFF 0x20 +#define TFT_INVON 0x21 + +#define TFT_DISPOFF 0x28 +#define TFT_DISPON 0x29 +#define TFT_MADCTL 0x36 + +#define ILI9341_MEMCONTROL 0x36 +#define ILI9341_MADCTL_MX 0x40 +#define ILI9341_MADCTL_BGR 0x08 + +#define ILI9341_COLADDRSET 0x2A +#define ILI9341_PAGEADDRSET 0x2B +#define ILI9341_MEMORYWRITE 0x2C +#define ILI9341_RAMRD 0x2E + +#define ILI9341_Portrait ILI9341_MADCTL_MX | ILI9341_MADCTL_BGR + +#define ORIENT_NORMAL 0 + +#define RGB(red, green, blue) (unsigned int) (((red & 0b11111111) << 16) | ((green & 0b11111111) << 8) | (blue & 0b11111111)) +#define WHITE RGB(255, 255, 255) //0b1111 +#define YELLOW RGB(255, 255, 0) //0b1110 +#define LILAC RGB(255, 128, 255) //0b1101 +#define BROWN RGB(255, 128, 0) //0b1100 +#define FUCHSIA RGB(255, 64, 255) //0b1011 +#define RUST RGB(255, 64, 0) //0b1010 +#define MAGENTA RGB(255, 0, 255) //0b1001 +#define RED RGB(255, 0, 0) //0b1000 +#define CYAN RGB(0, 255, 255) //0b0111 +#define GREEN RGB(0, 255, 0) //0b0110 +#define CERULEAN RGB(0, 128, 255) //0b0101 +#define MIDGREEN RGB(0, 128, 0) //0b0100 +#define COBALT RGB(0, 64, 255) //0b0011 +#define MYRTLE RGB(0, 64, 0) //0b0010 +#define BLUE RGB(0, 0, 255) //0b0001 +#define BLACK RGB(0, 0, 0) //0b0000 +#define BROWN RGB(255, 128, 0) +#define GRAY RGB(128, 128, 128) +#define LITEGRAY RGB(210, 210, 210) +#define ORANGE RGB(0xff, 0xA5, 0) +#define PINK RGB(0xFF, 0xA0, 0xAB) +#define GOLD RGB(0xFF, 0xD7, 0x00) +#define SALMON RGB(0xFA, 0x80, 0x72) +#define BEIGE RGB(0xF5, 0xF5, 0xDC) + +//Pico spi0 or spi1 must match GPIO pins used above. +#define Pico_LCD_SPI_MOD spi1 +#define nop asm("NOP") +//xmit_byte_multi == HW1SendSPI + + +#define PORTCLR 1 +#define PORTSET 2 +#define PORTINV 3 +#define LAT 4 +#define LATCLR 5 +#define LATSET 6 +#define LATINV 7 +#define ODC 8 +#define ODCCLR 9 +#define ODCSET 10 +#define CNPU 12 +#define CNPUCLR 13 +#define CNPUSET 14 +#define CNPUINV 15 +#define CNPD 16 +#define CNPDCLR 17 +#define CNPDSET 18 + +#define ANSELCLR -7 +#define ANSELSET -6 +#define ANSELINV -5 +#define TRIS -4 +#define TRISCLR -3 +#define TRISSET -2 + +extern void __not_in_flash_func(spi_write_fast)(spi_inst_t *spi, const uint8_t *src, size_t len); +extern void __not_in_flash_func(spi_finish)(spi_inst_t *spi); +extern void HWReadSPI(unsigned char *buff, int cnt); +extern void HWSendSPI(const unsigned char *buff, int cnt); +extern unsigned char __not_in_flash_func(HW1SwapSPI)(unsigned char data_out); + +extern void lcd_spi_raise_cs(void); +extern void lcd_spi_lower_cs(void); +extern void spi_write_data(unsigned char data); +extern void spi_write_command(unsigned char data); +extern void spi_write_cd(unsigned char command, int data, ...); +extern void spi_write_data24(uint32_t data); + +extern void spi_draw_pixel(uint16_t x, uint16_t y, uint16_t color) ; +extern void lcd_putc(uint8_t devn, uint8_t c); +extern int lcd_getc(uint8_t devn); +extern void lcd_sleeping(uint8_t devn); +extern ttyready_t lcd_ready(uint8_t devn); + +extern void lcd_spi_init(); +extern void lcd_init(); +extern void lcd_clear(); +extern void ResetController(void); +extern void PinSetBit(int pin, unsigned int offset); + +void setBacklight(int level); +void setScrollArea(uint16_t topFixedArea, uint16_t bottomFixedArea); +void HWScroll(uint16_t pixels); + +#endif diff --git a/Kernel/platform/platform-rpipico/picosdk.h b/Kernel/platform/platform-rpipico/picosdk.h index e5fd3c9d5..6ae8a3c9c 100644 --- a/Kernel/platform/platform-rpipico/picosdk.h +++ b/Kernel/platform/platform-rpipico/picosdk.h @@ -1,9 +1,11 @@ #define MANGLED 0 #include "mangle.h" +#include +#include #include #include -#include "pico/stdlib.h" +#include "hardware/sync.h" #define MANGLED 1 #include "mangle.h" diff --git a/Kernel/start.c b/Kernel/start.c index 0c8112c7d..d96cb7638 100644 --- a/Kernel/start.c +++ b/Kernel/start.c @@ -283,9 +283,14 @@ static char bootline[64]; uint16_t get_root_dev(void) { uint16_t rd = BAD_ROOT_DEV; - + if (cmdline && *cmdline){ + kputs(cmdline); +#ifdef DEBUG + kprintf("cmdline: %s\n",cmdline); +#endif rd = bootdevice(cmdline); + } cmdline = NULL; /* ignore cmdline if get_root_dev() is called again */