PicoCalc/Code/FUZIX/fuzix.patch

2862 lines
189 KiB
Diff
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 <hardware/irq.h>
+#include <hardware/structs/timer.h>
+#include <pico/multicore.h>
#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 <hardware/spi.h>
#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 <pico/multicore.h>
#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, // <space>
+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, // <backslash>
+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, // <space>
+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, // <backslash>
+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 <stdio.h>
+#include <pico/stdio.h>
+#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 <pico/stdlib.h>
+#include <pico/platform.h>
+#include <hardware/gpio.h>
+#include <hardware/i2c.h>
+
+#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 <kernel.h>
+#include <kdata.h>
+#include <printf.h>
+#include <timer.h>
+
+#include <stdbool.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <blkdev.h>
+
+#include "picosdk.h"
+#include "config.h"
+#include <hardware/spi.h>
+#include "hardware/timer.h"
+#include <ctype.h>
+#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 <hardware/spi.h>
+#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 <pico/stdlib.h>
+#include <pico/platform.h>
#include <hardware/gpio.h>
#include <hardware/regs/addressmap.h>
-#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 */