From 21c5beb7a64ab4088a2a177238bdec22fb2b592e Mon Sep 17 00:00:00 2001 From: Serge Vakulenko Date: Tue, 6 Oct 2015 18:46:01 -0700 Subject: [PATCH] Driver hx8357 enhanced to support gpanel ioctls. --- sys/include/fonts/default.h | 259 ---- sys/include/fonts/topaz.h | 2307 ----------------------------------- sys/include/fonts/vga.h | 1833 ---------------------------- sys/pic32/devsw.c | 4 +- sys/pic32/hx8357.c | 945 ++++++-------- sys/pic32/hx8357.h | 8 +- 6 files changed, 398 insertions(+), 4958 deletions(-) delete mode 100644 sys/include/fonts/default.h delete mode 100644 sys/include/fonts/topaz.h delete mode 100644 sys/include/fonts/vga.h diff --git a/sys/include/fonts/default.h b/sys/include/fonts/default.h deleted file mode 100644 index fe80ee6..0000000 --- a/sys/include/fonts/default.h +++ /dev/null @@ -1,259 +0,0 @@ -const unsigned char Default[] = { - 0x08, 0x01, 0x00, 0xFF, 1, - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x0E, 0x1F, 0x15, 0x1F, 0x1B, 0x11, 0x0E, 0x00, - 0x06, 0x0E, 0x1F, 0x15, 0x1F, 0x11, 0x1B, 0x0E, 0x00, - 0x06, 0x00, 0x0A, 0x1F, 0x1F, 0x1F, 0x0E, 0x04, 0x00, - 0x06, 0x00, 0x04, 0x0E, 0x1F, 0x1F, 0x0E, 0x04, 0x00, - 0x06, 0x0E, 0x0A, 0x1F, 0x15, 0x1F, 0x04, 0x0E, 0x00, - 0x06, 0x04, 0x0E, 0x1F, 0x1F, 0x1F, 0x04, 0x0E, 0x00, - 0x06, 0x00, 0x00, 0x04, 0x0E, 0x0E, 0x04, 0x00, 0x00, - 0x06, 0x1F, 0x1F, 0x1B, 0x11, 0x11, 0x1B, 0x1F, 0x1F, - 0x06, 0x00, 0x00, 0x04, 0x0A, 0x0A, 0x04, 0x00, 0x00, - 0x06, 0x1F, 0x1F, 0x1B, 0x15, 0x15, 0x1B, 0x1F, 0x1F, - 0x06, 0x00, 0x1C, 0x18, 0x16, 0x05, 0x05, 0x02, 0x00, - 0x06, 0x0E, 0x11, 0x11, 0x0E, 0x04, 0x1F, 0x04, 0x00, - 0x06, 0x1E, 0x12, 0x1E, 0x02, 0x02, 0x02, 0x03, 0x00, - 0x06, 0x1E, 0x12, 0x1E, 0x12, 0x12, 0x1A, 0x03, 0x00, - 0x06, 0x04, 0x15, 0x0E, 0x1B, 0x1B, 0x0E, 0x15, 0x04, - 0x06, 0x01, 0x03, 0x0F, 0x1F, 0x0F, 0x03, 0x01, 0x00, - 0x06, 0x10, 0x18, 0x1E, 0x1F, 0x1E, 0x18, 0x10, 0x00, - 0x06, 0x04, 0x0E, 0x15, 0x04, 0x15, 0x0E, 0x04, 0x00, - 0x06, 0x1B, 0x1B, 0x1B, 0x1B, 0x1B, 0x00, 0x1B, 0x00, - 0x06, 0x1E, 0x15, 0x15, 0x16, 0x14, 0x14, 0x14, 0x00, - 0x06, 0x0C, 0x12, 0x0A, 0x14, 0x08, 0x12, 0x12, 0x0C, - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x00, - 0x06, 0x04, 0x0E, 0x15, 0x04, 0x15, 0x0E, 0x04, 0x1F, - 0x06, 0x00, 0x04, 0x0E, 0x15, 0x04, 0x04, 0x04, 0x00, - 0x06, 0x00, 0x04, 0x04, 0x04, 0x15, 0x0E, 0x04, 0x00, - 0x06, 0x00, 0x04, 0x08, 0x1F, 0x08, 0x04, 0x00, 0x00, - 0x06, 0x00, 0x04, 0x02, 0x1F, 0x02, 0x04, 0x00, 0x00, - 0x06, 0x00, 0x01, 0x01, 0x01, 0x1F, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x0A, 0x1F, 0x1F, 0x0A, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x04, 0x04, 0x0E, 0x1F, 0x1F, 0x00, 0x00, - 0x06, 0x00, 0x1F, 0x1F, 0x0E, 0x04, 0x04, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, 0x04, 0x00, - 0x06, 0x0A, 0x0A, 0x0A, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x0A, 0x0A, 0x1F, 0x0A, 0x1F, 0x0A, 0x0A, 0x00, - 0x06, 0x04, 0x1E, 0x05, 0x0E, 0x14, 0x0F, 0x04, 0x00, - 0x06, 0x03, 0x13, 0x08, 0x04, 0x02, 0x19, 0x18, 0x00, - 0x06, 0x02, 0x05, 0x05, 0x02, 0x15, 0x09, 0x16, 0x00, - 0x06, 0x0C, 0x0C, 0x04, 0x02, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x08, 0x04, 0x02, 0x02, 0x02, 0x04, 0x08, 0x00, - 0x06, 0x02, 0x04, 0x08, 0x08, 0x08, 0x04, 0x02, 0x00, - 0x06, 0x04, 0x15, 0x0E, 0x1F, 0x0E, 0x15, 0x04, 0x00, - 0x06, 0x00, 0x04, 0x04, 0x1F, 0x04, 0x04, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x04, 0x02, - 0x06, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, - 0x06, 0x00, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, 0x00, - 0x06, 0x0E, 0x11, 0x19, 0x15, 0x13, 0x11, 0x0E, 0x00, - 0x06, 0x04, 0x06, 0x04, 0x04, 0x04, 0x04, 0x0E, 0x00, - 0x06, 0x0E, 0x11, 0x10, 0x0E, 0x01, 0x01, 0x1F, 0x00, - 0x06, 0x1F, 0x10, 0x08, 0x0C, 0x10, 0x11, 0x0E, 0x00, - 0x06, 0x08, 0x0C, 0x0A, 0x09, 0x1F, 0x08, 0x08, 0x00, - 0x06, 0x1F, 0x01, 0x0F, 0x10, 0x10, 0x11, 0x0E, 0x00, - 0x06, 0x1C, 0x02, 0x01, 0x0F, 0x11, 0x11, 0x0E, 0x00, - 0x06, 0x1F, 0x10, 0x10, 0x08, 0x04, 0x02, 0x01, 0x00, - 0x06, 0x0E, 0x11, 0x11, 0x0E, 0x11, 0x11, 0x0E, 0x00, - 0x06, 0x0E, 0x11, 0x11, 0x1E, 0x10, 0x08, 0x07, 0x00, - 0x06, 0x00, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x04, 0x00, 0x04, 0x04, 0x02, 0x00, - 0x06, 0x10, 0x08, 0x04, 0x02, 0x04, 0x08, 0x10, 0x00, - 0x06, 0x00, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x00, 0x00, - 0x06, 0x02, 0x04, 0x08, 0x10, 0x08, 0x04, 0x02, 0x00, - 0x06, 0x0E, 0x11, 0x10, 0x0C, 0x04, 0x00, 0x04, 0x00, - 0x06, 0x0E, 0x11, 0x15, 0x1D, 0x0D, 0x01, 0x1E, 0x00, - 0x06, 0x04, 0x0A, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x00, - 0x06, 0x0F, 0x11, 0x11, 0x0F, 0x11, 0x11, 0x0F, 0x00, - 0x06, 0x0E, 0x11, 0x01, 0x01, 0x01, 0x11, 0x0E, 0x00, - 0x06, 0x0F, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0F, 0x00, - 0x06, 0x1F, 0x01, 0x01, 0x0F, 0x01, 0x01, 0x1F, 0x00, - 0x06, 0x1F, 0x01, 0x01, 0x0F, 0x01, 0x01, 0x01, 0x00, - 0x06, 0x1E, 0x11, 0x01, 0x01, 0x19, 0x11, 0x1E, 0x00, - 0x06, 0x11, 0x11, 0x11, 0x1F, 0x11, 0x11, 0x11, 0x00, - 0x06, 0x0E, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0E, 0x00, - 0x06, 0x1C, 0x08, 0x08, 0x08, 0x08, 0x09, 0x06, 0x00, - 0x06, 0x11, 0x09, 0x05, 0x03, 0x05, 0x09, 0x11, 0x00, - 0x06, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1F, 0x00, - 0x06, 0x11, 0x1B, 0x15, 0x15, 0x15, 0x11, 0x11, 0x00, - 0x06, 0x11, 0x11, 0x13, 0x15, 0x19, 0x11, 0x11, 0x00, - 0x06, 0x0E, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E, 0x00, - 0x06, 0x0F, 0x11, 0x11, 0x0F, 0x01, 0x01, 0x01, 0x00, - 0x06, 0x0E, 0x11, 0x11, 0x11, 0x15, 0x09, 0x16, 0x00, - 0x06, 0x0F, 0x11, 0x11, 0x0F, 0x05, 0x09, 0x11, 0x00, - 0x06, 0x0E, 0x11, 0x01, 0x0E, 0x10, 0x11, 0x0E, 0x00, - 0x06, 0x1F, 0x15, 0x04, 0x04, 0x04, 0x04, 0x04, 0x00, - 0x06, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0E, 0x00, - 0x06, 0x11, 0x11, 0x11, 0x11, 0x11, 0x0A, 0x04, 0x00, - 0x06, 0x11, 0x11, 0x11, 0x15, 0x15, 0x15, 0x0A, 0x00, - 0x06, 0x11, 0x11, 0x0A, 0x04, 0x0A, 0x11, 0x11, 0x00, - 0x06, 0x11, 0x11, 0x0A, 0x04, 0x04, 0x04, 0x04, 0x00, - 0x06, 0x1F, 0x10, 0x08, 0x0E, 0x02, 0x01, 0x1F, 0x00, - 0x06, 0x1E, 0x02, 0x02, 0x02, 0x02, 0x02, 0x1E, 0x00, - 0x06, 0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x00, 0x00, - 0x06, 0x1E, 0x10, 0x10, 0x10, 0x10, 0x10, 0x1E, 0x00, - 0x06, 0x04, 0x0A, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, - 0x06, 0x06, 0x06, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x06, 0x08, 0x0E, 0x09, 0x1E, 0x00, - 0x06, 0x01, 0x01, 0x0D, 0x13, 0x11, 0x13, 0x0D, 0x00, - 0x06, 0x00, 0x00, 0x0E, 0x11, 0x01, 0x11, 0x0E, 0x00, - 0x06, 0x10, 0x10, 0x16, 0x19, 0x11, 0x19, 0x16, 0x00, - 0x06, 0x00, 0x00, 0x0E, 0x11, 0x1F, 0x01, 0x0E, 0x00, - 0x06, 0x08, 0x14, 0x04, 0x0E, 0x04, 0x04, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x0E, 0x19, 0x19, 0x16, 0x10, 0x0E, - 0x06, 0x01, 0x01, 0x0D, 0x13, 0x11, 0x11, 0x11, 0x00, - 0x06, 0x04, 0x00, 0x06, 0x04, 0x04, 0x04, 0x0E, 0x00, - 0x06, 0x08, 0x00, 0x08, 0x08, 0x08, 0x09, 0x06, 0x00, - 0x06, 0x01, 0x01, 0x09, 0x05, 0x03, 0x05, 0x09, 0x00, - 0x06, 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x0E, 0x00, - 0x06, 0x00, 0x00, 0x0B, 0x15, 0x15, 0x15, 0x15, 0x00, - 0x06, 0x00, 0x00, 0x0D, 0x13, 0x11, 0x11, 0x11, 0x00, - 0x06, 0x00, 0x00, 0x0E, 0x11, 0x11, 0x11, 0x0E, 0x00, - 0x06, 0x00, 0x00, 0x0D, 0x13, 0x13, 0x0D, 0x01, 0x01, - 0x06, 0x00, 0x00, 0x16, 0x19, 0x19, 0x16, 0x10, 0x10, - 0x06, 0x00, 0x00, 0x0D, 0x13, 0x01, 0x01, 0x01, 0x00, - 0x06, 0x00, 0x00, 0x1E, 0x01, 0x0E, 0x10, 0x0F, 0x00, - 0x06, 0x04, 0x04, 0x1F, 0x04, 0x04, 0x14, 0x08, 0x00, - 0x06, 0x00, 0x00, 0x11, 0x11, 0x11, 0x19, 0x16, 0x00, - 0x06, 0x00, 0x00, 0x11, 0x11, 0x11, 0x0A, 0x04, 0x00, - 0x06, 0x00, 0x00, 0x11, 0x11, 0x15, 0x15, 0x0A, 0x00, - 0x06, 0x00, 0x00, 0x11, 0x0A, 0x04, 0x0A, 0x11, 0x00, - 0x06, 0x00, 0x00, 0x11, 0x11, 0x1E, 0x10, 0x11, 0x0E, - 0x06, 0x00, 0x00, 0x1F, 0x08, 0x04, 0x02, 0x1F, 0x00, - 0x06, 0x08, 0x04, 0x04, 0x02, 0x04, 0x04, 0x08, 0x00, - 0x06, 0x04, 0x04, 0x04, 0x00, 0x04, 0x04, 0x04, 0x00, - 0x06, 0x02, 0x04, 0x04, 0x08, 0x04, 0x04, 0x02, 0x00, - 0x06, 0x02, 0x15, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x04, 0x0E, 0x1B, 0x11, 0x11, 0x1F, 0x00, 0x00, - 0x06, 0x0E, 0x11, 0x01, 0x01, 0x11, 0x0E, 0x08, 0x06, - 0x06, 0x00, 0x11, 0x00, 0x11, 0x11, 0x19, 0x16, 0x00, - 0x06, 0x18, 0x00, 0x0E, 0x11, 0x1F, 0x01, 0x1E, 0x00, - 0x06, 0x1F, 0x00, 0x06, 0x08, 0x0E, 0x09, 0x1E, 0x00, - 0x06, 0x11, 0x00, 0x06, 0x08, 0x0E, 0x09, 0x1E, 0x00, - 0x06, 0x03, 0x00, 0x06, 0x08, 0x0E, 0x09, 0x1E, 0x00, - 0x06, 0x0C, 0x00, 0x06, 0x08, 0x0E, 0x09, 0x1E, 0x00, - 0x06, 0x00, 0x1E, 0x03, 0x03, 0x1E, 0x08, 0x0C, 0x00, - 0x06, 0x1F, 0x00, 0x0E, 0x11, 0x1F, 0x01, 0x1E, 0x00, - 0x06, 0x11, 0x00, 0x0E, 0x11, 0x1F, 0x01, 0x1E, 0x00, - 0x06, 0x03, 0x00, 0x0E, 0x11, 0x1F, 0x01, 0x1E, 0x00, - 0x06, 0x14, 0x00, 0x0C, 0x08, 0x08, 0x08, 0x1C, 0x00, - 0x06, 0x0C, 0x12, 0x0C, 0x08, 0x08, 0x08, 0x1C, 0x00, - 0x06, 0x06, 0x00, 0x0C, 0x08, 0x08, 0x08, 0x1C, 0x00, - 0x06, 0x0A, 0x00, 0x04, 0x0A, 0x11, 0x1F, 0x11, 0x11, - 0x06, 0x04, 0x00, 0x04, 0x0A, 0x11, 0x1F, 0x11, 0x11, - 0x06, 0x0C, 0x00, 0x0F, 0x01, 0x07, 0x01, 0x0F, 0x00, - 0x06, 0x00, 0x00, 0x1E, 0x08, 0x1E, 0x09, 0x1E, 0x00, - 0x06, 0x1C, 0x0A, 0x09, 0x1F, 0x09, 0x09, 0x19, 0x00, - 0x06, 0x0E, 0x11, 0x00, 0x0E, 0x11, 0x11, 0x0E, 0x00, - 0x06, 0x00, 0x11, 0x00, 0x0E, 0x11, 0x11, 0x0E, 0x00, - 0x06, 0x00, 0x03, 0x00, 0x0E, 0x11, 0x11, 0x0E, 0x00, - 0x06, 0x0E, 0x11, 0x00, 0x11, 0x11, 0x19, 0x16, 0x00, - 0x06, 0x00, 0x03, 0x00, 0x11, 0x11, 0x19, 0x16, 0x00, - 0x06, 0x12, 0x00, 0x12, 0x12, 0x12, 0x1C, 0x10, 0x0E, - 0x06, 0x11, 0x00, 0x0E, 0x11, 0x11, 0x11, 0x0E, 0x00, - 0x06, 0x11, 0x00, 0x11, 0x11, 0x11, 0x11, 0x0E, 0x00, - 0x06, 0x04, 0x04, 0x1F, 0x05, 0x05, 0x1F, 0x04, 0x04, - 0x06, 0x0C, 0x1A, 0x12, 0x07, 0x02, 0x12, 0x1F, 0x00, - 0x06, 0x1B, 0x1B, 0x0E, 0x1F, 0x04, 0x1F, 0x04, 0x04, - 0x06, 0x07, 0x09, 0x09, 0x07, 0x09, 0x1D, 0x09, 0x09, - 0x06, 0x18, 0x14, 0x04, 0x0E, 0x04, 0x04, 0x05, 0x03, - 0x06, 0x18, 0x00, 0x06, 0x08, 0x0E, 0x09, 0x1E, 0x00, - 0x06, 0x18, 0x00, 0x0C, 0x08, 0x08, 0x08, 0x1C, 0x00, - 0x06, 0x00, 0x18, 0x00, 0x0E, 0x11, 0x11, 0x0E, 0x00, - 0x06, 0x00, 0x18, 0x00, 0x11, 0x11, 0x19, 0x16, 0x00, - 0x06, 0x00, 0x1E, 0x00, 0x0E, 0x12, 0x12, 0x12, 0x00, - 0x06, 0x1F, 0x00, 0x13, 0x17, 0x1D, 0x19, 0x11, 0x00, - 0x06, 0x0E, 0x09, 0x09, 0x1E, 0x00, 0x1F, 0x00, 0x00, - 0x06, 0x0E, 0x11, 0x11, 0x0E, 0x00, 0x1F, 0x00, 0x00, - 0x06, 0x04, 0x00, 0x04, 0x06, 0x01, 0x11, 0x0E, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x1F, 0x01, 0x01, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x1F, 0x10, 0x10, 0x00, 0x00, - 0x06, 0x01, 0x11, 0x09, 0x1D, 0x12, 0x19, 0x04, 0x1C, - 0x06, 0x01, 0x11, 0x09, 0x15, 0x1A, 0x1D, 0x10, 0x10, - 0x06, 0x04, 0x04, 0x00, 0x04, 0x04, 0x04, 0x04, 0x00, - 0x06, 0x00, 0x14, 0x0A, 0x05, 0x0A, 0x14, 0x00, 0x00, - 0x06, 0x00, 0x05, 0x0A, 0x14, 0x0A, 0x05, 0x00, 0x00, - 0x06, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, 0x04, 0x11, - 0x06, 0x0A, 0x15, 0x0A, 0x15, 0x0A, 0x15, 0x0A, 0x15, - 0x06, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, 0x08, - 0x06, 0x08, 0x08, 0x08, 0x08, 0x0F, 0x08, 0x08, 0x08, - 0x06, 0x08, 0x08, 0x0F, 0x08, 0x0F, 0x08, 0x08, 0x08, - 0x06, 0x14, 0x14, 0x14, 0x14, 0x17, 0x14, 0x14, 0x14, - 0x06, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x14, 0x14, 0x14, - 0x06, 0x00, 0x00, 0x0F, 0x08, 0x0F, 0x08, 0x08, 0x08, - 0x06, 0x14, 0x14, 0x17, 0x10, 0x17, 0x14, 0x14, 0x14, - 0x06, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, - 0x06, 0x00, 0x00, 0x1F, 0x10, 0x17, 0x14, 0x14, 0x14, - 0x06, 0x14, 0x14, 0x17, 0x10, 0x1F, 0x00, 0x00, 0x00, - 0x06, 0x14, 0x14, 0x14, 0x14, 0x1F, 0x00, 0x00, 0x00, - 0x06, 0x08, 0x08, 0x0F, 0x08, 0x0F, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x00, 0x0F, 0x08, 0x08, 0x08, - 0x06, 0x08, 0x08, 0x08, 0x08, 0x18, 0x00, 0x00, 0x00, - 0x06, 0x08, 0x08, 0x08, 0x08, 0x1F, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x08, 0x08, 0x08, - 0x06, 0x08, 0x08, 0x08, 0x08, 0x18, 0x08, 0x08, 0x08, - 0x06, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, - 0x06, 0x08, 0x08, 0x08, 0x08, 0x1F, 0x08, 0x08, 0x08, - 0x06, 0x08, 0x08, 0x18, 0x08, 0x18, 0x08, 0x08, 0x08, - 0x06, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, 0x14, - 0x06, 0x14, 0x14, 0x14, 0x04, 0x1C, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x1C, 0x04, 0x14, 0x14, 0x14, 0x14, - 0x06, 0x14, 0x14, 0x17, 0x00, 0x1F, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x1F, 0x00, 0x17, 0x14, 0x14, 0x14, - 0x06, 0x14, 0x14, 0x14, 0x04, 0x14, 0x14, 0x14, 0x14, - 0x06, 0x00, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x00, 0x00, - 0x06, 0x14, 0x14, 0x17, 0x00, 0x17, 0x14, 0x14, 0x14, - 0x06, 0x08, 0x08, 0x1F, 0x00, 0x1F, 0x00, 0x00, 0x00, - 0x06, 0x14, 0x14, 0x14, 0x14, 0x1F, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x1F, 0x00, 0x1F, 0x08, 0x08, 0x08, - 0x06, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x14, 0x14, 0x14, - 0x06, 0x14, 0x14, 0x14, 0x14, 0x1C, 0x00, 0x00, 0x00, - 0x06, 0x08, 0x08, 0x18, 0x08, 0x18, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x18, 0x08, 0x18, 0x08, 0x08, 0x08, - 0x06, 0x00, 0x00, 0x00, 0x00, 0x1C, 0x14, 0x14, 0x14, - 0x06, 0x14, 0x14, 0x14, 0x14, 0x1F, 0x14, 0x14, 0x14, - 0x06, 0x08, 0x08, 0x1F, 0x08, 0x1F, 0x08, 0x08, 0x08, - 0x06, 0x08, 0x08, 0x08, 0x08, 0x0F, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x00, 0x18, 0x08, 0x08, 0x08, - 0x06, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, 0x1F, - 0x06, 0x00, 0x00, 0x00, 0x00, 0x1F, 0x1F, 0x1F, 0x1F, - 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, - 0x06, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, 0x18, - 0x06, 0x1F, 0x1F, 0x1F, 0x1F, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x16, 0x09, 0x09, 0x09, 0x16, 0x00, - 0x06, 0x00, 0x0E, 0x19, 0x0F, 0x19, 0x0F, 0x01, 0x00, - 0x06, 0x00, 0x1F, 0x19, 0x01, 0x01, 0x01, 0x01, 0x00, - 0x06, 0x00, 0x1F, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x00, - 0x06, 0x1F, 0x11, 0x02, 0x04, 0x02, 0x11, 0x1F, 0x00, - 0x06, 0x00, 0x00, 0x1E, 0x09, 0x09, 0x09, 0x06, 0x00, - 0x06, 0x00, 0x0A, 0x0A, 0x0A, 0x0A, 0x16, 0x03, 0x00, - 0x06, 0x00, 0x1F, 0x05, 0x04, 0x04, 0x04, 0x04, 0x00, - 0x06, 0x1F, 0x04, 0x0E, 0x11, 0x11, 0x0E, 0x04, 0x1F, - 0x06, 0x04, 0x0A, 0x11, 0x1F, 0x11, 0x0A, 0x04, 0x00, - 0x06, 0x04, 0x0A, 0x11, 0x11, 0x0A, 0x0A, 0x1B, 0x00, - 0x06, 0x0C, 0x02, 0x0C, 0x0E, 0x11, 0x11, 0x0E, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x0E, 0x15, 0x15, 0x0E, 0x00, - 0x06, 0x10, 0x0E, 0x19, 0x15, 0x15, 0x13, 0x0E, 0x01, - 0x06, 0x0E, 0x01, 0x01, 0x0F, 0x01, 0x01, 0x0E, 0x00, - 0x06, 0x0E, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x00, - 0x06, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x1F, 0x00, 0x00, - 0x06, 0x04, 0x04, 0x1F, 0x04, 0x04, 0x00, 0x1F, 0x00, - 0x06, 0x02, 0x04, 0x08, 0x04, 0x02, 0x00, 0x1F, 0x00, - 0x06, 0x08, 0x04, 0x02, 0x04, 0x08, 0x00, 0x1F, 0x00, - 0x06, 0x1C, 0x14, 0x04, 0x04, 0x04, 0x04, 0x04, 0x04, - 0x06, 0x04, 0x04, 0x04, 0x04, 0x04, 0x05, 0x05, 0x07, - 0x06, 0x0C, 0x0C, 0x00, 0x1F, 0x00, 0x0C, 0x0C, 0x00, - 0x06, 0x00, 0x17, 0x1D, 0x00, 0x17, 0x1D, 0x00, 0x00, - 0x06, 0x0E, 0x1B, 0x1B, 0x0E, 0x00, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x0C, 0x0C, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x00, 0x00, 0x00, - 0x06, 0x1C, 0x04, 0x04, 0x04, 0x05, 0x05, 0x06, 0x04, - 0x06, 0x0E, 0x12, 0x12, 0x12, 0x12, 0x00, 0x00, 0x00, - 0x06, 0x0E, 0x18, 0x0C, 0x06, 0x1E, 0x00, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x1E, 0x1E, 0x1E, 0x1E, 0x00, 0x00, - 0x06, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, -}; - diff --git a/sys/include/fonts/topaz.h b/sys/include/fonts/topaz.h deleted file mode 100644 index c2f576c..0000000 --- a/sys/include/fonts/topaz.h +++ /dev/null @@ -1,2307 +0,0 @@ -const unsigned char Topaz[] = { - 0x08, 0x01, 0x00, 0xFF, 1, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b01111110, - 0b10000001, - 0b10100101, - 0b10000001, - 0b10111101, - 0b10011001, - 0b10000001, - 0b01111110, - 0x08, - 0b01111110, - 0b11111111, - 0b11011011, - 0b11111111, - 0b11000011, - 0b11100111, - 0b11111111, - 0b01111110, - 0x08, - 0b00110110, - 0b01111111, - 0b01111111, - 0b01111111, - 0b00111110, - 0b00011100, - 0b00001000, - 0b00000000, - 0x08, - 0b00001000, - 0b00011100, - 0b00111110, - 0b01111111, - 0b00111110, - 0b00011100, - 0b00001000, - 0b00000000, - 0x08, - 0b00011100, - 0b00111110, - 0b00011100, - 0b01111111, - 0b01111111, - 0b01101011, - 0b00001000, - 0b00011100, - 0x08, - 0b00001000, - 0b00001000, - 0b00011100, - 0b00111110, - 0b01111111, - 0b00111110, - 0b00001000, - 0b00011100, - 0x08, - 0b00000000, - 0b00000000, - 0b00011000, - 0b00111100, - 0b00111100, - 0b00011000, - 0b00000000, - 0b00000000, - 0x08, - 0b11111111, - 0b11111111, - 0b11100111, - 0b11000011, - 0b11000011, - 0b11100111, - 0b11111111, - 0b11111111, - 0x08, - 0b00000000, - 0b00111100, - 0b01100110, - 0b01000010, - 0b01000010, - 0b01100110, - 0b00111100, - 0b00000000, - 0x08, - 0b11111111, - 0b11000011, - 0b10011001, - 0b10111101, - 0b10111101, - 0b10011001, - 0b11000011, - 0b11111111, - 0x08, - 0b11110000, - 0b11100000, - 0b11110000, - 0b10111110, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00011110, - 0x08, - 0b00111100, - 0b01100110, - 0b01100110, - 0b01100110, - 0b00111100, - 0b00011000, - 0b01111110, - 0b00011000, - 0x08, - 0b11111100, - 0b11001100, - 0b11111100, - 0b00001100, - 0b00001100, - 0b00001110, - 0b00001111, - 0b00000111, - 0x08, - 0b11111110, - 0b11000110, - 0b11111110, - 0b11000110, - 0b11000110, - 0b11100110, - 0b01100111, - 0b00000011, - 0x08, - 0b10011001, - 0b01011010, - 0b00111100, - 0b11100111, - 0b11100111, - 0b00111100, - 0b01011010, - 0b10011001, - 0x08, - 0b00000001, - 0b00000111, - 0b00011111, - 0b01111111, - 0b00011111, - 0b00000111, - 0b00000001, - 0b00000000, - 0x08, - 0b01000000, - 0b01110000, - 0b01111100, - 0b01111111, - 0b01111100, - 0b01110000, - 0b01000000, - 0b00000000, - 0x08, - 0b00011000, - 0b00111100, - 0b01111110, - 0b00011000, - 0b00011000, - 0b01111110, - 0b00111100, - 0b00011000, - 0x08, - 0b01100110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b00000000, - 0b01100110, - 0b00000000, - 0x08, - 0b11111110, - 0b11011011, - 0b11011011, - 0b11011110, - 0b11011000, - 0b11011000, - 0b11011000, - 0b00000000, - 0x08, - 0b01111110, - 0b11000011, - 0b00011110, - 0b00110011, - 0b00110011, - 0b00011110, - 0b00110001, - 0b00011111, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b01111110, - 0b01111110, - 0b01111110, - 0b00000000, - 0x08, - 0b00011000, - 0b00111100, - 0b01111110, - 0b00011000, - 0b01111110, - 0b00111100, - 0b00011000, - 0b11111111, - 0x08, - 0b00011000, - 0b00111100, - 0b01111110, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00000000, - 0x08, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b01111110, - 0b00111100, - 0b00011000, - 0b00000000, - 0x08, - 0b00000000, - 0b00011000, - 0b00110000, - 0b01111111, - 0b00110000, - 0b00011000, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00001100, - 0b00000110, - 0b01111111, - 0b00000110, - 0b00001100, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00000011, - 0b00000011, - 0b00000011, - 0b01111111, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00100100, - 0b01100110, - 0b11111111, - 0b01100110, - 0b00100100, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00011000, - 0b00111100, - 0b01111110, - 0b11111111, - 0b11111111, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b11111111, - 0b11111111, - 0b01111110, - 0b00111100, - 0b00011000, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00001100, - 0b00011110, - 0b00011110, - 0b00001100, - 0b00001100, - 0b00000000, - 0b00001100, - 0b00000000, - 0x08, - 0b00110110, - 0b00110110, - 0b00110110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00110110, - 0b00110110, - 0b01111111, - 0b00110110, - 0b01111111, - 0b00110110, - 0b00110110, - 0b00000000, - 0x08, - 0b00001100, - 0b00111110, - 0b00000011, - 0b00011110, - 0b00110000, - 0b00011111, - 0b00001100, - 0b00000000, - 0x08, - 0b00000000, - 0b01100011, - 0b00110011, - 0b00011000, - 0b00001100, - 0b01100110, - 0b01100011, - 0b00000000, - 0x08, - 0b00011100, - 0b00110110, - 0b00011100, - 0b01101110, - 0b00111011, - 0b00110011, - 0b01101110, - 0b00000000, - 0x08, - 0b00000110, - 0b00000110, - 0b00000011, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00011000, - 0b00001100, - 0b00000110, - 0b00000110, - 0b00000110, - 0b00001100, - 0b00011000, - 0b00000000, - 0x08, - 0b00000110, - 0b00001100, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00001100, - 0b00000110, - 0b00000000, - 0x08, - 0b00000000, - 0b01100110, - 0b00111100, - 0b11111111, - 0b00111100, - 0b01100110, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00001100, - 0b00001100, - 0b00111111, - 0b00001100, - 0b00001100, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00001110, - 0b00001100, - 0b00000110, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00111111, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00001100, - 0b00001100, - 0b00000000, - 0x08, - 0b01100000, - 0b00110000, - 0b00011000, - 0b00001100, - 0b00000110, - 0b00000011, - 0b00000001, - 0b00000000, - 0x08, - 0b00011110, - 0b00110011, - 0b00111011, - 0b00111111, - 0b00110111, - 0b00110011, - 0b00011110, - 0b00000000, - 0x08, - 0b00001100, - 0b00001111, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00111111, - 0b00000000, - 0x08, - 0b00011110, - 0b00110011, - 0b00110000, - 0b00011100, - 0b00000110, - 0b00110011, - 0b00111111, - 0b00000000, - 0x08, - 0b00011110, - 0b00110011, - 0b00110000, - 0b00011100, - 0b00110000, - 0b00110011, - 0b00011110, - 0b00000000, - 0x08, - 0b00111000, - 0b00111100, - 0b00110110, - 0b00110011, - 0b01111111, - 0b00110000, - 0b00110000, - 0b00000000, - 0x08, - 0b00111111, - 0b00000011, - 0b00011111, - 0b00110000, - 0b00110000, - 0b00110011, - 0b00011110, - 0b00000000, - 0x08, - 0b00011100, - 0b00000110, - 0b00000011, - 0b00011111, - 0b00110011, - 0b00110011, - 0b00011110, - 0b00000000, - 0x08, - 0b00111111, - 0b00110011, - 0b00110000, - 0b00011000, - 0b00001100, - 0b00000110, - 0b00000110, - 0b00000000, - 0x08, - 0b00011110, - 0b00110011, - 0b00110011, - 0b00011110, - 0b00110011, - 0b00110011, - 0b00011110, - 0b00000000, - 0x08, - 0b00011110, - 0b00110011, - 0b00110011, - 0b00111110, - 0b00110000, - 0b00011000, - 0b00001110, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00001100, - 0b00001100, - 0b00000000, - 0b00001100, - 0b00001100, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00001100, - 0b00001100, - 0b00000000, - 0b00001110, - 0b00001100, - 0b00000110, - 0x08, - 0b00011000, - 0b00001100, - 0b00000110, - 0b00000011, - 0b00000110, - 0b00001100, - 0b00011000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00111111, - 0b00000000, - 0b00111111, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00000110, - 0b00001100, - 0b00011000, - 0b00110000, - 0b00011000, - 0b00001100, - 0b00000110, - 0b00000000, - 0x08, - 0b00011110, - 0b00110011, - 0b00110000, - 0b00011000, - 0b00001100, - 0b00000000, - 0b00001100, - 0b00000000, - 0x08, - 0b00111110, - 0b01100011, - 0b01111011, - 0b01111011, - 0b01111011, - 0b00000011, - 0b00011110, - 0b00000000, - 0x08, - 0b00001100, - 0b00011110, - 0b00110011, - 0b00110011, - 0b00111111, - 0b00110011, - 0b00110011, - 0b00000000, - 0x08, - 0b00111111, - 0b01100110, - 0b01100110, - 0b00111110, - 0b01100110, - 0b01100110, - 0b00111111, - 0b00000000, - 0x08, - 0b00111100, - 0b01100110, - 0b00000011, - 0b00000011, - 0b00000011, - 0b01100110, - 0b00111100, - 0b00000000, - 0x08, - 0b00111111, - 0b00110110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b00110110, - 0b00111111, - 0b00000000, - 0x08, - 0b01111111, - 0b01000110, - 0b00010110, - 0b00011110, - 0b00010110, - 0b01000110, - 0b01111111, - 0b00000000, - 0x08, - 0b01111111, - 0b01000110, - 0b00010110, - 0b00011110, - 0b00010110, - 0b00000110, - 0b00001111, - 0b00000000, - 0x08, - 0b00111100, - 0b01100110, - 0b00000011, - 0b00000011, - 0b01110011, - 0b01100110, - 0b01111100, - 0b00000000, - 0x08, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00111111, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00000000, - 0x08, - 0b00011110, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00011110, - 0b00000000, - 0x08, - 0b01111000, - 0b00110000, - 0b00110000, - 0b00110000, - 0b00110011, - 0b00110011, - 0b00011110, - 0b00000000, - 0x08, - 0b01100111, - 0b01100110, - 0b00110110, - 0b00011110, - 0b00110110, - 0b01100110, - 0b01100111, - 0b00000000, - 0x08, - 0b00001111, - 0b00000110, - 0b00000110, - 0b00000110, - 0b01000110, - 0b01100110, - 0b01111111, - 0b00000000, - 0x08, - 0b01100011, - 0b01110111, - 0b01111111, - 0b01101011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b00000000, - 0x08, - 0b01100011, - 0b01100111, - 0b01101111, - 0b01111011, - 0b01110011, - 0b01100011, - 0b01100011, - 0b00000000, - 0x08, - 0b00011100, - 0b00110110, - 0b01100011, - 0b01100011, - 0b01100011, - 0b00110110, - 0b00011100, - 0b00000000, - 0x08, - 0b00111111, - 0b01100110, - 0b01100110, - 0b00111110, - 0b00000110, - 0b00000110, - 0b00001111, - 0b00000000, - 0x08, - 0b00011110, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00111011, - 0b00011110, - 0b00111000, - 0b00000000, - 0x08, - 0b00111111, - 0b01100110, - 0b01100110, - 0b00111110, - 0b00011110, - 0b00110110, - 0b01100111, - 0b00000000, - 0x08, - 0b00011110, - 0b00110011, - 0b00000111, - 0b00011100, - 0b00111000, - 0b00110011, - 0b00011110, - 0b00000000, - 0x08, - 0b00111111, - 0b00101101, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00011110, - 0b00000000, - 0x08, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00111111, - 0b00000000, - 0x08, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00011110, - 0b00001100, - 0b00000000, - 0x08, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01101011, - 0b01111111, - 0b01110111, - 0b01100011, - 0b00000000, - 0x08, - 0b01100011, - 0b01100011, - 0b00110110, - 0b00011100, - 0b00110110, - 0b01100011, - 0b01100011, - 0b00000000, - 0x08, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00011110, - 0b00001100, - 0b00001100, - 0b00011110, - 0b00000000, - 0x08, - 0b01111111, - 0b00110011, - 0b00011001, - 0b00001100, - 0b01000110, - 0b01100011, - 0b01111111, - 0b00000000, - 0x08, - 0b00011110, - 0b00000110, - 0b00000110, - 0b00000110, - 0b00000110, - 0b00000110, - 0b00011110, - 0b00000000, - 0x08, - 0b00000011, - 0b00000110, - 0b00001100, - 0b00011000, - 0b00110000, - 0b01100000, - 0b01000000, - 0b00000000, - 0x08, - 0b00011110, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011110, - 0b00000000, - 0x08, - 0b00001000, - 0b00011100, - 0b00110110, - 0b01100011, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b11111111, - 0x08, - 0b00001100, - 0b00001100, - 0b00011000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00011110, - 0b00110000, - 0b00111110, - 0b00110011, - 0b01101110, - 0b00000000, - 0x08, - 0b00000111, - 0b00000110, - 0b00111110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b00111101, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00011110, - 0b00110011, - 0b00000011, - 0b00110011, - 0b00011110, - 0b00000000, - 0x08, - 0b00111000, - 0b00110000, - 0b00110000, - 0b00111110, - 0b00110011, - 0b00110011, - 0b01101110, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00011110, - 0b00110011, - 0b00111111, - 0b00000011, - 0b00011110, - 0b00000000, - 0x08, - 0b00011100, - 0b00110110, - 0b00000110, - 0b00001111, - 0b00000110, - 0b00000110, - 0b00001111, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b01101110, - 0b00110011, - 0b00110011, - 0b00111110, - 0b00110000, - 0b00011111, - 0x08, - 0b00000111, - 0b00000110, - 0b00110110, - 0b01101110, - 0b01100110, - 0b01100110, - 0b01100111, - 0b00000000, - 0x08, - 0b00001100, - 0b00000000, - 0b00001110, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00011110, - 0b00000000, - 0x08, - 0b00011000, - 0b00000000, - 0b00011110, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011011, - 0b00001110, - 0x08, - 0b00000111, - 0b00000110, - 0b01100110, - 0b00110110, - 0b00011110, - 0b00110110, - 0b01100111, - 0b00000000, - 0x08, - 0b00001110, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00011110, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00110111, - 0b01111111, - 0b01101011, - 0b01100011, - 0b01100011, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00011111, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00011110, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00011110, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00111011, - 0b01100110, - 0b01100110, - 0b00111110, - 0b00000110, - 0b00001111, - 0x08, - 0b00000000, - 0b00000000, - 0b01101110, - 0b00110011, - 0b00110011, - 0b00111110, - 0b00110000, - 0b01111000, - 0x08, - 0b00000000, - 0b00000000, - 0b00011011, - 0b00110110, - 0b00110110, - 0b00000110, - 0b00001111, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00111110, - 0b00000011, - 0b00011110, - 0b00110000, - 0b00011111, - 0b00000000, - 0x08, - 0b00001000, - 0b00001100, - 0b00111110, - 0b00001100, - 0b00001100, - 0b00101100, - 0b00011000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b01101110, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00011110, - 0b00001100, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b01100011, - 0b01100011, - 0b01101011, - 0b01111111, - 0b00110110, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b01100011, - 0b00110110, - 0b00011100, - 0b00110110, - 0b01100011, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00111110, - 0b00110000, - 0b00011111, - 0x08, - 0b00000000, - 0b00000000, - 0b00111111, - 0b00011001, - 0b00001100, - 0b00100110, - 0b00111111, - 0b00000000, - 0x08, - 0b00111000, - 0b00001100, - 0b00001100, - 0b00000111, - 0b00001100, - 0b00001100, - 0b00111000, - 0b00000000, - 0x08, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00000000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00000000, - 0x08, - 0b00000111, - 0b00001100, - 0b00001100, - 0b00111000, - 0b00001100, - 0b00001100, - 0b00000111, - 0b00000000, - 0x08, - 0b01101110, - 0b00111011, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00001000, - 0b00011100, - 0b00110110, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01111111, - 0b00000000, - 0x08, - 0b00011110, - 0b00110011, - 0b00000011, - 0b00110011, - 0b00011110, - 0b00011000, - 0b00110000, - 0b00011110, - 0x08, - 0b00000000, - 0b00110011, - 0b00000000, - 0b00110011, - 0b00110011, - 0b00110011, - 0b01111110, - 0b00000000, - 0x08, - 0b00111000, - 0b00000000, - 0b00011110, - 0b00110011, - 0b00111111, - 0b00000011, - 0b00011110, - 0b00000000, - 0x08, - 0b01111110, - 0b11000011, - 0b00111100, - 0b01100000, - 0b01111100, - 0b01100110, - 0b11111100, - 0b00000000, - 0x08, - 0b00110011, - 0b00000000, - 0b00011110, - 0b00110000, - 0b00111110, - 0b00110011, - 0b01111110, - 0b00000000, - 0x08, - 0b00000111, - 0b00000000, - 0b00011110, - 0b00110000, - 0b00111110, - 0b00110011, - 0b01111110, - 0b00000000, - 0x08, - 0b00001100, - 0b00001100, - 0b00011110, - 0b00110000, - 0b00111110, - 0b00110011, - 0b01111110, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00111110, - 0b00000011, - 0b00000011, - 0b00111110, - 0b01100000, - 0b00111100, - 0x08, - 0b01111110, - 0b11000011, - 0b00111100, - 0b01100110, - 0b01111110, - 0b00000110, - 0b00111100, - 0b00000000, - 0x08, - 0b00110011, - 0b00000000, - 0b00011110, - 0b00110011, - 0b00111111, - 0b00000011, - 0b00011110, - 0b00000000, - 0x08, - 0b00000111, - 0b00000000, - 0b00011110, - 0b00110011, - 0b00111111, - 0b00000011, - 0b00011110, - 0b00000000, - 0x08, - 0b00110011, - 0b00000000, - 0b00001110, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00011110, - 0b00000000, - 0x08, - 0b00111110, - 0b01100011, - 0b00011100, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00111100, - 0b00000000, - 0x08, - 0b00000111, - 0b00000000, - 0b00001110, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00011110, - 0b00000000, - 0x08, - 0b00110011, - 0b00001100, - 0b00011110, - 0b00110011, - 0b00110011, - 0b00111111, - 0b00110011, - 0b00000000, - 0x08, - 0b00001100, - 0b00001100, - 0b00000000, - 0b00011110, - 0b00110011, - 0b00111111, - 0b00110011, - 0b00000000, - 0x08, - 0b00111000, - 0b00000000, - 0b00111111, - 0b00000110, - 0b00011110, - 0b00000110, - 0b00111111, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b11111110, - 0b00110000, - 0b11111110, - 0b00110011, - 0b11111110, - 0b00000000, - 0x08, - 0b01111100, - 0b00110110, - 0b00110011, - 0b01111111, - 0b00110011, - 0b00110011, - 0b01110011, - 0b00000000, - 0x08, - 0b00011110, - 0b00110011, - 0b00000000, - 0b00011110, - 0b00110011, - 0b00110011, - 0b00011110, - 0b00000000, - 0x08, - 0b00000000, - 0b00110011, - 0b00000000, - 0b00011110, - 0b00110011, - 0b00110011, - 0b00011110, - 0b00000000, - 0x08, - 0b00000000, - 0b00000111, - 0b00000000, - 0b00011110, - 0b00110011, - 0b00110011, - 0b00011110, - 0b00000000, - 0x08, - 0b00011110, - 0b00110011, - 0b00000000, - 0b00110011, - 0b00110011, - 0b00110011, - 0b01111110, - 0b00000000, - 0x08, - 0b00000000, - 0b00000111, - 0b00000000, - 0b00110011, - 0b00110011, - 0b00110011, - 0b01111110, - 0b00000000, - 0x08, - 0b00000000, - 0b00110011, - 0b00000000, - 0b00110011, - 0b00110011, - 0b00111111, - 0b00110000, - 0b00011111, - 0x08, - 0b01100011, - 0b00011100, - 0b00111110, - 0b01100011, - 0b01100011, - 0b00111110, - 0b00011100, - 0b00000000, - 0x08, - 0b00110011, - 0b00000000, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00011110, - 0b00000000, - 0x08, - 0b00011000, - 0b00011000, - 0b01111110, - 0b00000011, - 0b00000011, - 0b01111110, - 0b00011000, - 0b00011000, - 0x08, - 0b00011100, - 0b00110110, - 0b00100110, - 0b00001111, - 0b00000110, - 0b01100111, - 0b00111111, - 0b00000000, - 0x08, - 0b00110011, - 0b00110011, - 0b00011110, - 0b00111111, - 0b00001100, - 0b00111111, - 0b00001100, - 0b00000000, - 0x08, - 0b00001111, - 0b00011011, - 0b00011011, - 0b00101111, - 0b00110011, - 0b01111011, - 0b00110011, - 0b01110000, - 0x08, - 0b01110000, - 0b11011000, - 0b00011000, - 0b01111110, - 0b00011000, - 0b00011000, - 0b00011011, - 0b00001110, - 0x08, - 0b00111000, - 0b00000000, - 0b00011110, - 0b00110000, - 0b00111110, - 0b00110011, - 0b01111110, - 0b00000000, - 0x08, - 0b00011100, - 0b00000000, - 0b00001110, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00011110, - 0b00000000, - 0x08, - 0b00000000, - 0b00111000, - 0b00000000, - 0b00011110, - 0b00110011, - 0b00110011, - 0b00011110, - 0b00000000, - 0x08, - 0b00000000, - 0b00111000, - 0b00000000, - 0b00110011, - 0b00110011, - 0b00110011, - 0b01111110, - 0b00000000, - 0x08, - 0b00000000, - 0b00011111, - 0b00000000, - 0b00011111, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00000000, - 0x08, - 0b00111111, - 0b00000000, - 0b00110011, - 0b00110111, - 0b00111111, - 0b00111011, - 0b00110011, - 0b00000000, - 0x08, - 0b00111100, - 0b00110110, - 0b00110110, - 0b01111100, - 0b00000000, - 0b01111110, - 0b00000000, - 0b00000000, - 0x08, - 0b00111100, - 0b01100110, - 0b01100110, - 0b00111100, - 0b00000000, - 0b01111110, - 0b00000000, - 0b00000000, - 0x08, - 0b00001100, - 0b00000000, - 0b00001100, - 0b00000110, - 0b00000011, - 0b00110011, - 0b00011110, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00111111, - 0b00000011, - 0b00000011, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00111111, - 0b00110000, - 0b00110000, - 0b00000000, - 0b00000000, - 0x08, - 0b01100011, - 0b00110011, - 0b00011011, - 0b01111100, - 0b11000110, - 0b01110011, - 0b00011001, - 0b11111000, - 0x08, - 0b01100011, - 0b00110011, - 0b00011011, - 0b11001111, - 0b11100110, - 0b11110011, - 0b11111001, - 0b11000000, - 0x08, - 0b00000000, - 0b00011000, - 0b00000000, - 0b00011000, - 0b00011000, - 0b00111100, - 0b00111100, - 0b00011000, - 0x08, - 0b00000000, - 0b11001100, - 0b01100110, - 0b00110011, - 0b01100110, - 0b11001100, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00110011, - 0b01100110, - 0b11001100, - 0b01100110, - 0b00110011, - 0b00000000, - 0b00000000, - 0x08, - 0b01000100, - 0b00010001, - 0b01000100, - 0b00010001, - 0b01000100, - 0b00010001, - 0b01000100, - 0b00010001, - 0x08, - 0b10101010, - 0b01010101, - 0b10101010, - 0b01010101, - 0b10101010, - 0b01010101, - 0b10101010, - 0b01010101, - 0x08, - 0b00111011, - 0b01101110, - 0b00111011, - 0b01101110, - 0b00111011, - 0b01101110, - 0b00111011, - 0b01101110, - 0x08, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0x08, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011111, - 0b00011000, - 0b00011000, - 0b00011000, - 0x08, - 0b00011000, - 0b00011000, - 0b00011111, - 0b00011000, - 0b00011111, - 0b00011000, - 0b00011000, - 0b00011000, - 0x08, - 0b01101100, - 0b01101100, - 0b01101100, - 0b01101100, - 0b01101111, - 0b01101100, - 0b01101100, - 0b01101100, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b01111111, - 0b01101100, - 0b01101100, - 0b01101100, - 0x08, - 0b00000000, - 0b00000000, - 0b00011111, - 0b00011000, - 0b00011111, - 0b00011000, - 0b00011000, - 0b00011000, - 0x08, - 0b01101100, - 0b01101100, - 0b01101111, - 0b01100000, - 0b01101111, - 0b01101100, - 0b01101100, - 0b01101100, - 0x08, - 0b01101100, - 0b01101100, - 0b01101100, - 0b01101100, - 0b01101100, - 0b01101100, - 0b01101100, - 0b01101100, - 0x08, - 0b00000000, - 0b00000000, - 0b01111111, - 0b01100000, - 0b01101111, - 0b01101100, - 0b01101100, - 0b01101100, - 0x08, - 0b01101100, - 0b01101100, - 0b01101111, - 0b01100000, - 0b01111111, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b01101100, - 0b01101100, - 0b01101100, - 0b01101100, - 0b01111111, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00011000, - 0b00011000, - 0b00011111, - 0b00011000, - 0b00011111, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00011111, - 0b00011000, - 0b00011000, - 0b00011000, - 0x08, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b11111000, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b11111111, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b11111111, - 0b00011000, - 0b00011000, - 0b00011000, - 0x08, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b11111000, - 0b00011000, - 0b00011000, - 0b00011000, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b11111111, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b11111111, - 0b00011000, - 0b00011000, - 0b00011000, - 0x08, - 0b00011000, - 0b00011000, - 0b11111000, - 0b00011000, - 0b11111000, - 0b00011000, - 0b00011000, - 0b00011000, - 0x08, - 0b01101100, - 0b01101100, - 0b01101100, - 0b01101100, - 0b11101100, - 0b01101100, - 0b01101100, - 0b01101100, - 0x08, - 0b01101100, - 0b01101100, - 0b11101100, - 0b00001100, - 0b11111100, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b11111100, - 0b00001100, - 0b11101100, - 0b01101100, - 0b01101100, - 0b01101100, - 0x08, - 0b01101100, - 0b01101100, - 0b11101111, - 0b00000000, - 0b11111111, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b11111111, - 0b00000000, - 0b11101111, - 0b01101100, - 0b01101100, - 0b01101100, - 0x08, - 0b01101100, - 0b01101100, - 0b11101100, - 0b00001100, - 0b11101100, - 0b01101100, - 0b01101100, - 0b01101100, - 0x08, - 0b00000000, - 0b00000000, - 0b11111111, - 0b00000000, - 0b11111111, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b01101100, - 0b01101100, - 0b11101111, - 0b00000000, - 0b11101111, - 0b01101100, - 0b01101100, - 0b01101100, - 0x08, - 0b00011000, - 0b00011000, - 0b11111111, - 0b00000000, - 0b11111111, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b01101100, - 0b01101100, - 0b01101100, - 0b01101100, - 0b11111111, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b11111111, - 0b00000000, - 0b11111111, - 0b00011000, - 0b00011000, - 0b00011000, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b11111111, - 0b01101100, - 0b01101100, - 0b01101100, - 0x08, - 0b01101100, - 0b01101100, - 0b01101100, - 0b01101100, - 0b11111100, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00011000, - 0b00011000, - 0b11111000, - 0b00011000, - 0b11111000, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b11111000, - 0b00011000, - 0b11111000, - 0b00011000, - 0b00011000, - 0b00011000, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b11111100, - 0b01101100, - 0b01101100, - 0b01101100, - 0x08, - 0b01101100, - 0b01101100, - 0b01101100, - 0b01101100, - 0b11101111, - 0b01101100, - 0b01101100, - 0b01101100, - 0x08, - 0b00011000, - 0b00011000, - 0b11111111, - 0b00000000, - 0b11111111, - 0b00011000, - 0b00011000, - 0b00011000, - 0x08, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011111, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b11111000, - 0b00011000, - 0b00011000, - 0b00011000, - 0x08, - 0b11111111, - 0b11111111, - 0b11111111, - 0b11111111, - 0b11111111, - 0b11111111, - 0b11111111, - 0b11111111, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b11111111, - 0b11111111, - 0b11111111, - 0b11111111, - 0x08, - 0b00001111, - 0b00001111, - 0b00001111, - 0b00001111, - 0b00001111, - 0b00001111, - 0b00001111, - 0b00001111, - 0x08, - 0b11110000, - 0b11110000, - 0b11110000, - 0b11110000, - 0b11110000, - 0b11110000, - 0b11110000, - 0b11110000, - 0x08, - 0b11111111, - 0b11111111, - 0b11111111, - 0b11111111, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b01101110, - 0b00111011, - 0b00010011, - 0b00111011, - 0b01101110, - 0b00000000, - 0x08, - 0b00000000, - 0b00011110, - 0b00110011, - 0b00011111, - 0b00110011, - 0b00011111, - 0b00000011, - 0b00000011, - 0x08, - 0b00000000, - 0b01111111, - 0b01100011, - 0b00000011, - 0b00000011, - 0b00000011, - 0b00000011, - 0b00000000, - 0x08, - 0b00000000, - 0b01111111, - 0b00110110, - 0b00110110, - 0b00110110, - 0b00110110, - 0b00110110, - 0b00000000, - 0x08, - 0b01111111, - 0b01100110, - 0b00001100, - 0b00011000, - 0b00001100, - 0b01100110, - 0b01111111, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b01111110, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00011110, - 0b00000000, - 0x08, - 0b00000000, - 0b01100110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b00111110, - 0b00000110, - 0b00000011, - 0x08, - 0b00000000, - 0b01101110, - 0b00111011, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00000000, - 0x08, - 0b00111111, - 0b00001100, - 0b00011110, - 0b00110011, - 0b00110011, - 0b00011110, - 0b00001100, - 0b00111111, - 0x08, - 0b00011100, - 0b00110110, - 0b01100011, - 0b01111111, - 0b01100011, - 0b00110110, - 0b00011100, - 0b00000000, - 0x08, - 0b00011100, - 0b00110110, - 0b01100011, - 0b01100011, - 0b00110110, - 0b00110110, - 0b01110111, - 0b00000000, - 0x08, - 0b00111000, - 0b00001100, - 0b00011000, - 0b00111110, - 0b00110011, - 0b00110011, - 0b00011110, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b01111110, - 0b11011011, - 0b11011011, - 0b01111110, - 0b00000000, - 0b00000000, - 0x08, - 0b01100000, - 0b00110000, - 0b01111110, - 0b11011011, - 0b11011011, - 0b01111110, - 0b00000110, - 0b00000011, - 0x08, - 0b00111100, - 0b00000110, - 0b00000011, - 0b00111111, - 0b00000011, - 0b00000110, - 0b00111100, - 0b00000000, - 0x08, - 0b00011110, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00000000, - 0x08, - 0b00000000, - 0b00111111, - 0b00000000, - 0b00111111, - 0b00000000, - 0b00111111, - 0b00000000, - 0b00000000, - 0x08, - 0b00001100, - 0b00001100, - 0b00111111, - 0b00001100, - 0b00001100, - 0b00000000, - 0b00111111, - 0b00000000, - 0x08, - 0b00000110, - 0b00001100, - 0b00011000, - 0b00001100, - 0b00000110, - 0b00000000, - 0b00111111, - 0b00000000, - 0x08, - 0b00011000, - 0b00001100, - 0b00000110, - 0b00001100, - 0b00011000, - 0b00000000, - 0b00111111, - 0b00000000, - 0x08, - 0b01110000, - 0b11011000, - 0b11011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0x08, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011011, - 0b00011011, - 0b00001110, - 0x08, - 0b00001100, - 0b00001100, - 0b00000000, - 0b00111111, - 0b00000000, - 0b00001100, - 0b00001100, - 0b00000000, - 0x08, - 0b00000000, - 0b01001110, - 0b00111001, - 0b00000000, - 0b01001110, - 0b00111001, - 0b00000000, - 0b00000000, - 0x08, - 0b00011100, - 0b00110110, - 0b00110110, - 0b00011100, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00011000, - 0b00011000, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00011000, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b11110000, - 0b00110000, - 0b00110000, - 0b00110000, - 0b00110111, - 0b00110110, - 0b00111100, - 0b00111000, - 0x08, - 0b00011110, - 0b00110110, - 0b00110110, - 0b00110110, - 0b00110110, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00011110, - 0b00110000, - 0b00011100, - 0b00000110, - 0b00111110, - 0b00000000, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00111100, - 0b00111100, - 0b00111100, - 0b00111100, - 0b00000000, - 0b00000000, - 0x08, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -}; diff --git a/sys/include/fonts/vga.h b/sys/include/fonts/vga.h deleted file mode 100644 index 7566806..0000000 --- a/sys/include/fonts/vga.h +++ /dev/null @@ -1,1833 +0,0 @@ -static const unsigned char vga[] = { - - 16, // lpc - 1, // bpl - 32, // start - 0x7f, // end - 1, // bpp - -// 32 $20 'space' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 33 $21 'exclam' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00011000, - 0b00111100, - 0b00111100, - 0b00111100, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00000000, - 0b00011000, - 0b00011000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 34 $22 'quotedbl' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b01100110, - 0b01100110, - 0b01100110, - 0b00100100, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 35 $23 'numbersign' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00110110, - 0b00110110, - 0b01111111, - 0b00110110, - 0b00110110, - 0b00110110, - 0b01111111, - 0b00110110, - 0b00110110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 36 $24 'dollar' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00011000, - 0b00011000, - 0b00111110, - 0b01100011, - 0b01000011, - 0b00000011, - 0b00111110, - 0b01100000, - 0b01100000, - 0b01100001, - 0b01100011, - 0b00111110, - 0b00011000, - 0b00011000, - 0b00000000, - 0b00000000, -// 37 $25 'percent' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b01000011, - 0b01100011, - 0b00110000, - 0b00011000, - 0b00001100, - 0b00000110, - 0b01100011, - 0b01100001, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 38 $26 'ampersand' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00011100, - 0b00110110, - 0b00110110, - 0b00011100, - 0b01101110, - 0b00111011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b01101110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 39 $27 'quotesingle' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00000100, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 40 $28 'parenleft' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00110000, - 0b00011000, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00011000, - 0b00110000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 41 $29 'parenright' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00001100, - 0b00011000, - 0b00110000, - 0b00110000, - 0b00110000, - 0b00110000, - 0b00110000, - 0b00110000, - 0b00011000, - 0b00001100, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 42 $2a 'asterisk' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b01100110, - 0b00111100, - 0b11111111, - 0b00111100, - 0b01100110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 43 $2b 'plus' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00011000, - 0b00011000, - 0b01111110, - 0b00011000, - 0b00011000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 44 $2c 'comma' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00001100, - 0b00000000, - 0b00000000, - 0b00000000, -// 45 $2d 'hyphen' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b01111111, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 46 $2e 'period' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00011000, - 0b00011000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 47 $2f 'slash' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b01000000, - 0b01100000, - 0b00110000, - 0b00011000, - 0b00001100, - 0b00000110, - 0b00000011, - 0b00000001, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 48 $30 'zero' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00011100, - 0b00110110, - 0b01100011, - 0b01100011, - 0b01101011, - 0b01101011, - 0b01100011, - 0b01100011, - 0b00110110, - 0b00011100, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 49 $31 'one' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00011000, - 0b00011100, - 0b00011110, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b01111110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 50 $32 'two' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00111110, - 0b01100011, - 0b01100000, - 0b00110000, - 0b00011000, - 0b00001100, - 0b00000110, - 0b00000011, - 0b01100011, - 0b01111111, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 51 $33 'three' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00111110, - 0b01100011, - 0b01100000, - 0b01100000, - 0b00111100, - 0b01100000, - 0b01100000, - 0b01100000, - 0b01100011, - 0b00111110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 52 $34 'four' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00110000, - 0b00111000, - 0b00111100, - 0b00110110, - 0b00110011, - 0b01111111, - 0b00110000, - 0b00110000, - 0b00110000, - 0b01111000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 53 $35 'five' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b01111111, - 0b00000011, - 0b00000011, - 0b00000011, - 0b00111111, - 0b01100000, - 0b01100000, - 0b01100000, - 0b01100011, - 0b00111110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 54 $36 'six' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00011100, - 0b00000110, - 0b00000011, - 0b00000011, - 0b00111111, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b00111110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 55 $37 'seven' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b01111111, - 0b01100011, - 0b01100000, - 0b01100000, - 0b00110000, - 0b00011000, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 56 $38 'eight' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00111110, - 0b01100011, - 0b01100011, - 0b01100011, - 0b00111110, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b00111110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 57 $39 'nine' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00111110, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01111110, - 0b01100000, - 0b01100000, - 0b01100000, - 0b00110000, - 0b00011110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 58 $3a 'colon' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00011000, - 0b00011000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00011000, - 0b00011000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 59 $3b 'semicolon' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00011000, - 0b00011000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00011000, - 0b00011000, - 0b00001100, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 60 $3c 'less' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b01100000, - 0b00110000, - 0b00011000, - 0b00001100, - 0b00000110, - 0b00001100, - 0b00011000, - 0b00110000, - 0b01100000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 61 $3d 'equal' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b01111110, - 0b00000000, - 0b00000000, - 0b01111110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 62 $3e 'greater' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000110, - 0b00001100, - 0b00011000, - 0b00110000, - 0b01100000, - 0b00110000, - 0b00011000, - 0b00001100, - 0b00000110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 63 $3f 'question' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00111110, - 0b01100011, - 0b01100011, - 0b00110000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00000000, - 0b00011000, - 0b00011000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 64 $40 'at' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00111110, - 0b01100011, - 0b01100011, - 0b01111011, - 0b01111011, - 0b01111011, - 0b00111011, - 0b00000011, - 0b00111110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 65 $41 'A' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00001000, - 0b00011100, - 0b00110110, - 0b01100011, - 0b01100011, - 0b01111111, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 66 $42 'B' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00111111, - 0b01100110, - 0b01100110, - 0b01100110, - 0b00111110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b00111111, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 67 $43 'C' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00111100, - 0b01100110, - 0b01000011, - 0b00000011, - 0b00000011, - 0b00000011, - 0b00000011, - 0b01000011, - 0b01100110, - 0b00111100, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 68 $44 'D' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00011111, - 0b00110110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b00110110, - 0b00011111, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 69 $45 'E' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b01111111, - 0b01100110, - 0b01000110, - 0b00010110, - 0b00011110, - 0b00010110, - 0b00000110, - 0b01000110, - 0b01100110, - 0b01111111, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 70 $46 'F' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b01111111, - 0b01100110, - 0b01000110, - 0b00010110, - 0b00011110, - 0b00010110, - 0b00000110, - 0b00000110, - 0b00000110, - 0b00001111, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 71 $47 'G' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00111100, - 0b01100110, - 0b01000011, - 0b00000011, - 0b00000011, - 0b01111011, - 0b01100011, - 0b01100011, - 0b01100110, - 0b01011100, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 72 $48 'H' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01111111, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 73 $49 'I' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00111100, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00111100, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 74 $4a 'J' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b01111000, - 0b00110000, - 0b00110000, - 0b00110000, - 0b00110000, - 0b00110000, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00011110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 75 $4b 'K' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b01100111, - 0b01100110, - 0b01100110, - 0b00110110, - 0b00011110, - 0b00011110, - 0b00110110, - 0b01100110, - 0b01100110, - 0b01100111, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 76 $4c 'L' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00001111, - 0b00000110, - 0b00000110, - 0b00000110, - 0b00000110, - 0b00000110, - 0b00000110, - 0b01000110, - 0b01100110, - 0b01111111, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 77 $4d 'M' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b01100011, - 0b01110111, - 0b01111111, - 0b01111111, - 0b01101011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 78 $4e 'N' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b01100011, - 0b01100111, - 0b01101111, - 0b01111111, - 0b01111011, - 0b01110011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 79 $4f 'O' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00111110, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b00111110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 80 $50 'P' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00111111, - 0b01100110, - 0b01100110, - 0b01100110, - 0b00111110, - 0b00000110, - 0b00000110, - 0b00000110, - 0b00000110, - 0b00001111, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 81 $51 'Q' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00111110, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01101011, - 0b01111011, - 0b00111110, - 0b00110000, - 0b01110000, - 0b00000000, - 0b00000000, -// 82 $52 'R' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00111111, - 0b01100110, - 0b01100110, - 0b01100110, - 0b00111110, - 0b00110110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b01100111, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 83 $53 'S' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00111110, - 0b01100011, - 0b01100011, - 0b00000110, - 0b00011100, - 0b00110000, - 0b01100000, - 0b01100011, - 0b01100011, - 0b00111110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 84 $54 'T' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b01111110, - 0b01111110, - 0b01011010, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00111100, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 85 $55 'U' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b00111110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 86 $56 'V' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b00110110, - 0b00011100, - 0b00001000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 87 $57 'W' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01101011, - 0b01101011, - 0b01101011, - 0b01111111, - 0b01110111, - 0b00110110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 88 $58 '1' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b01100011, - 0b01100011, - 0b00110110, - 0b00111110, - 0b00011100, - 0b00011100, - 0b00111110, - 0b00110110, - 0b01100011, - 0b01100011, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 89 $59 'Y' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b01100110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b00111100, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00111100, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 90 $5a 'Z' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b01111111, - 0b01100011, - 0b01100001, - 0b00110000, - 0b00011000, - 0b00001100, - 0b00000110, - 0b01000011, - 0b01100011, - 0b01111111, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 91 $5b 'bracketleft' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00111100, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00111100, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 92 $5c 'backslash' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000001, - 0b00000011, - 0b00000111, - 0b00001110, - 0b00011100, - 0b00111000, - 0b01110000, - 0b01100000, - 0b01000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 93 $5d 'bracketright' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00111100, - 0b00110000, - 0b00110000, - 0b00110000, - 0b00110000, - 0b00110000, - 0b00110000, - 0b00110000, - 0b00110000, - 0b00111100, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 94 $5e 'asciicircum' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00001000, - 0b00011100, - 0b00110110, - 0b01100011, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 95 $5f 'underscore' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b11111111, - 0b00000000, - 0b00000000, -// 96 $60 'grave' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00001100, - 0b00001100, - 0b00011000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 97 $61 'a' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00011110, - 0b00110000, - 0b00111110, - 0b00110011, - 0b00110011, - 0b00110011, - 0b01101110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 98 $62 'b' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000111, - 0b00000110, - 0b00000110, - 0b00011110, - 0b00110110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b00111110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 99 $63 'c' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00111110, - 0b01100011, - 0b00000011, - 0b00000011, - 0b00000011, - 0b01100011, - 0b00111110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 100 $64 'd' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00111000, - 0b00110000, - 0b00110000, - 0b00111100, - 0b00110110, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b01101110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 101 $65 'e' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00111110, - 0b01100011, - 0b01111111, - 0b00000011, - 0b00000011, - 0b01100011, - 0b00111110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 102 $66 'f' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00011100, - 0b00110110, - 0b00100110, - 0b00000110, - 0b00001111, - 0b00000110, - 0b00000110, - 0b00000110, - 0b00000110, - 0b00001111, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 103 $67 'g' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b01101110, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00111110, - 0b00110000, - 0b00110011, - 0b00011110, - 0b00000000, -// 104 $68 'h' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000111, - 0b00000110, - 0b00000110, - 0b00110110, - 0b01101110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b01100111, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 105 $69 'i' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00011000, - 0b00011000, - 0b00000000, - 0b00011100, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00111100, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 106 $6a 'j' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b01100000, - 0b01100000, - 0b00000000, - 0b01110000, - 0b01100000, - 0b01100000, - 0b01100000, - 0b01100000, - 0b01100000, - 0b01100000, - 0b01100110, - 0b01100110, - 0b00111100, - 0b00000000, -// 107 $6b 'k' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000111, - 0b00000110, - 0b00000110, - 0b01100110, - 0b00110110, - 0b00011110, - 0b00011110, - 0b00110110, - 0b01100110, - 0b01100111, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 108 $6c 'l' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00011100, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00111100, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 109 $6d 'm' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00110111, - 0b01111111, - 0b01101011, - 0b01101011, - 0b01101011, - 0b01101011, - 0b01100011, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 110 $6e 'n' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00111011, - 0b01100110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 111 $6f 'o' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00111110, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b00111110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 112 $70 'p' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00111011, - 0b01100110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b00111110, - 0b00000110, - 0b00000110, - 0b00001111, - 0b00000000, -// 113 $71 'q' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b01101110, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00111110, - 0b00110000, - 0b00110000, - 0b01111000, - 0b00000000, -// 114 $72 'r' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00111011, - 0b01101110, - 0b01100110, - 0b00000110, - 0b00000110, - 0b00000110, - 0b00001111, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 115 $73 's' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00111110, - 0b01100011, - 0b00000110, - 0b00011100, - 0b00110000, - 0b01100011, - 0b00111110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 116 $74 't' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00001000, - 0b00001100, - 0b00001100, - 0b00111111, - 0b00001100, - 0b00001100, - 0b00001100, - 0b00001100, - 0b01101100, - 0b00111000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 117 $75 'u' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b00110011, - 0b01101110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 118 $76 'v' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b01100110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b01100110, - 0b00111100, - 0b00011000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 119 $77 'w' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b01100011, - 0b01100011, - 0b01101011, - 0b01101011, - 0b01101011, - 0b01111111, - 0b00110110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 120 $78 'x' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b01100011, - 0b00110110, - 0b00011100, - 0b00011100, - 0b00011100, - 0b00110110, - 0b01100011, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 121 $79 'y' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01111110, - 0b01100000, - 0b00110000, - 0b00011111, - 0b00000000, -// 122 $7a 'z' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b01111111, - 0b00110011, - 0b00011000, - 0b00001100, - 0b00000110, - 0b01100011, - 0b01111111, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 123 $7b 'braceleft' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b01110000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00001110, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b01110000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 124 $7c 'bar' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00000000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 125 $7d 'braceright' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00001110, - 0b00011000, - 0b00011000, - 0b00011000, - 0b01110000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00011000, - 0b00001110, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 126 $7e 'asciitilde' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b01101110, - 0b00111011, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -// 127 $7f 'char127' -// width 8, bbx 0, bby -4, bbw 8, bbh 16 - 8, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00001000, - 0b00011100, - 0b00110110, - 0b01100011, - 0b01100011, - 0b01100011, - 0b01111111, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, - 0b00000000, -}; diff --git a/sys/pic32/devsw.c b/sys/pic32/devsw.c index 1685045..8bf3046 100644 --- a/sys/pic32/devsw.c +++ b/sys/pic32/devsw.c @@ -319,8 +319,8 @@ const struct cdevsw cdevsw[] = { #endif #ifdef HXTFT_ENABLED hx8357_open, hx8357_close, hx8357_read, hx8357_write, - hx8357_ioctl, nulldev, hx8357_ttys, hx8357_select, - nostrategy, hx8357_getc, hx8357_putc, + hx8357_ioctl, nulldev, 0, seltrue, + nostrategy, 0, 0, #else NOCDEV #endif diff --git a/sys/pic32/hx8357.c b/sys/pic32/hx8357.c index 54acaab..aa0115f 100644 --- a/sys/pic32/hx8357.c +++ b/sys/pic32/hx8357.c @@ -2,6 +2,7 @@ * HX8357 TFT driver for PIC32. * * Copyright (C) 2014 Majenko Technologies + * Copyright (C) 2015 Serge Vakulenko * * Permission to use, copy, modify, and distribute this software * and its documentation for any purpose and without fee is hereby @@ -29,32 +30,8 @@ #include #include #include +#include #include -#include - -char frame[40][80]; - -typedef struct { - unsigned char linesPerCharacter; - unsigned char bytesPerLine; - unsigned char startGlyph; - unsigned char endGlyph; - unsigned char bitsPerPixel; -} FontHeader; - -struct tty hx8357_ttys[1]; - -typedef struct { - union { - unsigned short value; - struct { - unsigned r:5; - unsigned g:6; - unsigned b:5; - } __attribute__((packed)); - } __attribute__((packed)); -} __attribute__((packed)) Color565; - #define HX8357_EXIT_SLEEP_MODE 0x11 #define HX8357_SET_DISPLAY_OFF 0x28 @@ -77,49 +54,43 @@ typedef struct { #define HX8357_SET_PANEL_CHARACTERISTIC 0xCC #define HX8357_SET_GAMMA_CURVE 0xE0 -static int _width = 320; -static int _height = 480; +/* + * Display size. + */ +static int _width, _height; -static int cursor_x = 0; -static int cursor_y = 0; +/* + * Cursor position for text output. + */ +static int _col, _row; -static int rotation = 0; - -static unsigned short textcolor = 0x7BEF; -static unsigned short texthicolor = 0xFFFF; -static unsigned short textbgcolor = 0x0000; - -const unsigned char *font = Default; -const unsigned char _font_width = 6; -const unsigned char _font_height = 8; - -void inline static writeCommand(unsigned short c) +static void writeCommand(int c) { while (PMMODE & PIC32_PMMODE_BUSY); PMADDR = 0x0000; PMDIN = c; } -void inline static writeData(unsigned short c) +static void writeData(int c) { while (PMMODE & PIC32_PMMODE_BUSY); PMADDR = 0x0001; PMDIN = c; } -void initDisplay() +static inline void initDisplay() { PMCONCLR = PIC32_PMCON_ON; - asm volatile("nop"); + udelay(1); PMCONSET = PIC32_PMCON_PTWREN | PIC32_PMCON_PTRDEN; PMCONCLR = PIC32_PMCON_CSF; - PMAEN = 0x0001; // Enable PMA0 pin for RS pin and CS1 as CS + PMAEN = 0x0001; // Enable PMA0 pin for RS pin and CS1 as CS PMMODE = PIC32_PMMODE_MODE16 | PIC32_PMMODE_MODE_MAST2; PMADDR = 0; PMCONSET = PIC32_PMCON_ON; - writeCommand(HX8357_EXIT_SLEEP_MODE); //Sleep Out + writeCommand(HX8357_EXIT_SLEEP_MODE); //Sleep Out udelay(150000); writeCommand(HX8357_ENABLE_EXTENSION_COMMAND); writeData(0xFF); @@ -148,10 +119,10 @@ void initDisplay() udelay(1000); writeCommand(HX8357_SET_INTERNAL_OSCILLATOR); writeData(0x68); - writeCommand(0xE3); //Unknown Command + writeCommand(0xE3); //Unknown Command writeData(0x2F); writeData(0x1F); - writeCommand(0xB5); //Set BGP + writeCommand(0xB5); //Set BGP writeData(0x01); writeData(0x01); writeData(0x67); @@ -163,7 +134,7 @@ void initDisplay() writeData(0xC8); writeData(0x08); udelay(1000); - writeCommand(0xC2); // Set Gate EQ + writeCommand(0xC2); // Set Gate EQ writeData(0x00); writeData(0x08); writeData(0x04); @@ -207,91 +178,55 @@ void initDisplay() writeData(0x00); writeData(0x01); udelay(1000); - writeCommand(HX8357_SET_PIXEL_FORMAT); //COLMOD RGB888 + writeCommand(HX8357_SET_PIXEL_FORMAT); //COLMOD RGB888 writeData(0x55); writeCommand(HX8357_SET_ADDRESS_MODE); writeData(0x00); - writeCommand(HX8357_SET_TEAR_ON); //TE ON + writeCommand(HX8357_SET_TEAR_ON); //TE ON writeData(0x00); udelay(10000); - writeCommand(HX8357_SET_DISPLAY_ON); //Display On + writeCommand(HX8357_SET_DISPLAY_ON); //Display On udelay(10000); writeCommand(HX8357_WRITE_MEMORY_START); //Write SRAM Data - int l, c; - for (l = 0; l < 39; l++) { - for (c = 0; c < 80; c++) { - frame[l][c]=' '; - } - } } -void inline static setAddrWindow(unsigned short x0, unsigned short y0, unsigned short x1, unsigned short y1) +static void setAddrWindow(int x0, int y0, int x1, int y1) { writeCommand(HX8357_SET_COLUMN_ADDRESS); // Column addr set - writeData((x0) >> 8); - writeData(x0); // XSTART - writeData((x1) >> 8); - writeData(x1); // XEND + writeData(x0 >> 8); + writeData(x0); // XSTART + writeData(x1 >> 8); + writeData(x1); // XEND - writeCommand(HX8357_SET_PAGE_ADDRESS); // Row addr set - writeData((y0) >> 8); - writeData(y0); // YSTART - writeData((y1) >> 8); - writeData(y1); // YEND + writeCommand(HX8357_SET_PAGE_ADDRESS); // Row addr set + writeData(y0 >> 8); + writeData(y0); // YSTART + writeData(y1 >> 8); + writeData(y1); // YEND writeCommand(HX8357_WRITE_MEMORY_START); //Write SRAM Data } -void inline static setPixel(int x, int y, unsigned short color) -{ - if((x < 0) ||(x >= _width) || (y < 0) || (y >= _height)) - return; - setAddrWindow(x,y,x+1,y+1); - while (PMMODE & PIC32_PMMODE_BUSY); - PMADDR = 0x0001; - PMDIN = color; -} - - -void inline static fillRectangle(int x, int y, int w, int h, unsigned short color) -{ - setAddrWindow(x, y, x+w-1, y+h-1); - - while (PMMODE & PIC32_PMMODE_BUSY); - PMADDR = 0x0001; - for(y=h; y>0; y--) { - for(x=w; x>0; x--) { - while (PMMODE & PIC32_PMMODE_BUSY); - PMDIN = color; - } - } -} - -void inline static setRotation(unsigned char m) +static inline void setRotation(int rotation) { writeCommand(HX8357_SET_ADDRESS_MODE); - rotation = m % 4; // can't be higher than 3 - switch (rotation) { - case 0: - //PORTRAIT + switch (rotation & 3) { + case 0: /* Portrait */ writeData(0x0000); _width = 320; _height = 480; break; - case 1: - //LANDSCAPE + case 1: /* Landscape */ writeData(0x0060); _width = 480; _height = 320; break; - case 2: - //UPSIDE DOWN PORTRAIT + case 2: /* Upside down portrait */ writeData(0x00C0); _width = 320; _height = 480; break; - case 3: - //UPSIDE DOWN LANDSCAPE + case 3: /* Upside down landscape */ writeData(0x00A0); _width = 480; _height = 320; @@ -299,511 +234,419 @@ void inline static setRotation(unsigned char m) } } -unsigned short inline static mix(unsigned short a, unsigned short b, unsigned char pct) +/* + * Draw a pixel. + */ +static void setPixel(int x, int y, int color) { - Color565 col_a; - Color565 col_b; - Color565 col_out; - col_a.value = a; - col_b.value = b; - unsigned int temp; - temp = (((int)col_a.r * (255-pct)) / 255) + (((unsigned int)col_b.r * pct) / 255); - col_out.r = temp; - temp = (((int)col_a.g * (255-pct)) / 255) + (((unsigned int)col_b.g * pct) / 255); - col_out.g = temp; - temp = (((int)col_a.b * (255-pct)) / 255) + (((unsigned int)col_b.b * pct) / 255); - col_out.b = temp; - return col_out.value; -} - - -unsigned char drawChar(int x, int y, unsigned char c, unsigned short color, unsigned short bg) -{ - if (font == NULL) { - return 0; - } - - FontHeader *header = (FontHeader *)font; - - if (c < header->startGlyph || c > header->endGlyph) { - return 0; - } - - c = c - header->startGlyph; - - // Start of this character's data is the character number multiplied by the - // number of lines in a character (plus one for the character width) multiplied - // by the number of bytes in a line, and then offset by 4 for the header. - unsigned int charstart = (c * ((header->linesPerCharacter * header->bytesPerLine) + 1)) + sizeof(FontHeader); // Start of character data - unsigned char charwidth = font[charstart++]; // The first byte of a block is the width of the character - - unsigned int bitmask = (1 << header->bitsPerPixel) - 1; - - setAddrWindow(x, y, x + charwidth - 1, y + header->linesPerCharacter - 1); - - char lineNumber = 0; - for (lineNumber = 0; lineNumber < header->linesPerCharacter; lineNumber++ ) { - unsigned char lineData = 0; - - char bitsLeft = -1; - unsigned char byteNumber = 0; - - char pixelNumber = 0; - for (pixelNumber = 0; pixelNumber < charwidth; pixelNumber++) { - if (bitsLeft <= 0) { - bitsLeft = 8; - lineData = font[charstart + (lineNumber * header->bytesPerLine) + (header->bytesPerLine - byteNumber - 1)]; - byteNumber++; - } - unsigned int pixelValue = lineData & bitmask; - if (pixelValue > 0) { - writeData(color); - } else { - writeData(bg); - } - lineData >>= header->bitsPerPixel; - bitsLeft -= header->bitsPerPixel; - } - } - return charwidth; -} - -void updateLine(int l) -{ - if (l < 0 || l > 39) + if (x < 0 || x >= _width || y < 0 || y >= _height) return; - - int c; - for (c = 0; c < 80; c++) { - drawChar(c * _font_width, l * _font_height, frame[l][c] & 0x7F, - frame[l][c] & 0x80 ? texthicolor : textcolor, textbgcolor); - } + setAddrWindow(x, y, x+1, y+1); + while (PMMODE & PIC32_PMMODE_BUSY); + PMADDR = 0x0001; + PMDIN = color; } -void scrollUp() +/* + * Fill a rectangle with specified color. + */ +static void fillRectangle(int x0, int y0, int x1, int y1, int color) { - int l, c; - for (l = 0; l < 39; l++) { - for (c = 0; c < 80; c++) { - frame[l][c] = frame[l+1][c]; + int x, y; + + if (x1 < x0) { + int t = x0; + x0 = x1; + x1 = t; + } + if (y1 < y0) { + int t = y0; + y0 = y1; + y1 = t; + } + setAddrWindow(x0, y0, x1-1, y1-1); + + while (PMMODE & PIC32_PMMODE_BUSY); + PMADDR = 0x0001; + for (y=y0; y 39) { - scrollUp(); - cursor_y = 39; - } - break; - case '\r': - cursor_x = 0; - break; - case 8: - cursor_x--; - if (cursor_x < 0) { - cursor_x = 79; - cursor_y--; - if (cursor_y < 0) { - cursor_y = 0; - } - } - break; - default: - frame[cursor_y][cursor_x] = c | (bold ? 0x80 : 0x00); - cursor_x++; - if (cursor_x == 80) { - cursor_x = 0; - cursor_y++; - if (cursor_y == 40) { - cursor_y = 39; - scrollUp(); - } - } - updateLine(cursor_y); + unsigned cnt = width * height; + + setAddrWindow(x, y, x + width - 1, y + height - 1); + while (PMMODE & PIC32_PMMODE_BUSY); + PMADDR = 0x0001; + while (cnt--) { + while (PMMODE & PIC32_PMMODE_BUSY); + PMDIN = *data++; } } -int extended = 0; +/* + * Draw a line. + */ +static void drawLine(int x0, int y0, int x1, int y1, int color) +{ + int dx, dy, stepx, stepy, fraction; -void writeChar(unsigned char c) + if (x0 == x1 || y0 == y1) { + fillRectangle(x0, y0, x1, y1, color); + return; + } + + /* Use Bresenham's line algorithm. */ + dy = y1 - y0; + if (dy < 0) { + dy = -dy; + stepy = -1; + } else { + stepy = 1; + } + dx = x1 - x0; + if (dx < 0) { + dx = -dx; + stepx = -1; + } else { + stepx = 1; + } + dy <<= 1; /* dy is now 2*dy */ + dx <<= 1; /* dx is now 2*dx */ + setPixel(x0, y0, color); + if (dx > dy) { + fraction = dy - (dx >> 1); /* same as 2*dy - dx */ + while (x0 != x1) { + if (fraction >= 0) { + y0 += stepy; + fraction -= dx; /* same as fraction -= 2*dx */ + } + x0 += stepx; + fraction += dy; /* same as fraction -= 2*dy */ + setPixel(x0, y0, color); + } + } else { + fraction = dx - (dy >> 1); + while (y0 != y1) { + if (fraction >= 0) { + x0 += stepx; + fraction -= dy; + } + y0 += stepy; + fraction += dx; + setPixel(x0, y0, color); + } + } +} + +/* + * Draw a rectangular frame. + */ +static void drawFrame(int x0, int y0, int x1, int y1, int color) +{ + fillRectangle(x0, y0, x1, y0, color); + fillRectangle(x0, y1, x1, y1, color); + fillRectangle(x0, y0, x0, y1, color); + fillRectangle(x1, y0, x1, y1, color); +} + +/* + * Draw a circle. + */ +static void drawCircle(int x0, int y0, int radius, int color) +{ + int f = 1 - radius; + int ddF_x = 0; + int ddF_y = -2 * radius; + int x = 0; + int y = radius; + + setPixel(x0, y0 + radius, color); + setPixel(x0, y0 - radius, color); + setPixel(x0 + radius, y0, color); + setPixel(x0 - radius, y0, color); + while (x < y) { + if (f >= 0) { + y--; + ddF_y += 2; + f += ddF_y; + } + x++; + ddF_x += 2; + f += ddF_x + 1; + setPixel(x0 + x, y0 + y, color); + setPixel(x0 - x, y0 + y, color); + setPixel(x0 + x, y0 - y, color); + setPixel(x0 - x, y0 - y, color); + setPixel(x0 + y, y0 + x, color); + setPixel(x0 - y, y0 + x, color); + setPixel(x0 + y, y0 - x, color); + setPixel(x0 - y, y0 - x, color); + } +} + +/* + * Start a new line: increase row. + */ +static void newLine(const struct gpanel_font_t *font) +{ + _col = 0; + _row += font->height; + if (_row > _height - font->height) + _row = 0; +} + +/* + * Draw a glyph of one symbol. + */ +void drawGlyph(const struct gpanel_font_t *font, + int color, int background, int width, const unsigned short *bits) { int i, j; - updateLine(cursor_y); - if (inEscape == 1) { - switch (c) { - case 27: - inEscape = 0; - printChar('^'); - printChar('['); - break; - case '[': - extended = 1; - break; - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - edVal[edValPos%4] *= 10; - edVal[edValPos%4] += c - '0'; - break; - case ';': - edValPos++; - edVal[edValPos%4] = 0; - break; - case 'J': - if (extended == 1) { - if (edVal[0] == 0) { - for (i = cursor_y; i < 40; i++) { - for (j = 0; j < 80; j++) { - frame[i][j] = ' '; - } - updateLine(i); - } - } else if (edVal[0] == 1) { - for (i = 0; i < cursor_y; i++) { - for (j = 0; j < 80; j++) { - frame[i][j] = ' '; - } - updateLine(i); - } - } else if (edVal[0] == 2) { - for (i = 0; i < 40; i++) { - for (j = 0; j < 80; j++) { - frame[i][j] = ' '; - } - updateLine(i); - } - } - } - inEscape = 0; - break; - case 'H': - if (extended == 1) { - if (edVal[0] == 0) { - edVal[0] = 1; - } - if (edVal[1] == 0) { - edVal[1] = 1; - } - cursor_x = (edVal[1] - 1) % 80; - cursor_y = (edVal[0] - 1) % 40; - } - inEscape = 0; - break; - case 'm': - if (extended == 1) { - if (edVal[0] == 0) { - bold = 0; - } else if (edVal[0] == 1) { - bold = 1; - } - } - inEscape = 0; - break; + if (background >= 0) { + /* + * Clear background. + */ + setAddrWindow(_col, _row, _col + width - 1, _row + font->height - 1); + while (PMMODE & PIC32_PMMODE_BUSY); + PMADDR = 0x0001; - case 'A': - if (extended == 0) { - cursor_y--; - if (cursor_y > 0) { - cursor_y = 39; - } - } - inEscape = 0; - break; + /* Loop on each glyph row, backwards from bottom to top. */ + for (i=0; iheight; i++) { + unsigned glyph_row = bits[i]; - case 'B': - if (extended == 0) { - cursor_y++; - if (cursor_y == 40) { - cursor_y = 0; - } + /* Loop on every two pixels in the row (left to right). */ + for (j=0; jheight; i++) { + unsigned glyph_row = bits[i]; + + /* Loop on every two pixels in the row (left to right). */ + for (j=0; jt_state &= TS_BUSY; - if (tp->t_outq.c_cc > 0) { - led_control (LED_TTY, 1); - while (tp->t_outq.c_cc != 0) { - int c = getc (&tp->t_outq); - writeChar(c); - } - led_control (LED_TTY, 0); + switch (sym) { + case '\n': /* goto next line */ + newLine(font); + return; + case '\r': /* carriage return - go to begin of line */ + _col = 0; + return; + case '\t': /* tab replaced by space */ + sym = ' '; + break; } -// tp->t_state |= TS_BUSY; - splx (s); + + if (sym < font->firstchar || sym >= font->firstchar + font->size) + sym = font->defaultchar; + cindex = sym - font->firstchar; + + /* Get font bitmap depending on fixed pitch or not. */ + if (font->width) { + /* Proportional font. */ + width = font->width[cindex]; + } else { + /* Fixed width font. */ + width = font->maxwidth; + } + if (font->offset) { + bits = font->bits + font->offset[cindex]; + } else { + bits = font->bits + cindex * font->height; + } + + /* Scrolling. */ + if (_col > _width - width) { + newLine(font); + } + + /* Draw a character. */ + drawGlyph(font, color, background, width, bits); + _col += width; } -void hx8357_init() +/* + * Draw a string of characters. + * TODO: Decode UTF-8. + */ +static void drawText(const struct gpanel_font_t *font, + int color, int background, int x, int y, const char *text) { - initDisplay(); - setRotation(1); - int i,j; - for (i = 0; i < 40; i++) { - for (j = 0; j < 80; j++) { - frame[i][j] = ' '; - } - updateLine(i); + int sym; + + _col = x; + _row = y; + for (;;) { + sym = *text++; + if (! sym) + break; + + drawChar(font, color, background, sym); } } -int ttyIsOpen = 0; - int hx8357_open(dev_t dev, int flag, int mode) { - int unit = minor(dev); - - if (unit == 0) { - ttyIsOpen = 1; - struct tty *tp = &hx8357_ttys[0]; - tp->t_oproc = hx8357_start; - tp->t_state = TS_ISOPEN | TS_CARR_ON; - tp->t_flags = ECHO | XTABS | CRMOD | CRTBS | CRTERA | CTLECH | CRTKIL; - return ttyopen(dev, tp); - } - if (unit == 1) { - if (!ttyIsOpen) { - return EIO; - } - return 0; - } - return ENODEV; + if (minor(dev) != 0) + return ENODEV; + return 0; } int hx8357_close(dev_t dev, int flag, int mode) { - int unit = minor(dev); - - if (unit == 0) { - ttyIsOpen = 0; - struct tty *tp = &hx8357_ttys[0]; - ttyclose(tp); - return 0; - } - - if (unit == 1) { - return 0; - } - return ENODEV; + return 0; } int hx8357_read(dev_t dev, struct uio *uio, int flag) { - int unit = minor(dev); - - if (unit == 0) { - struct tty *tp = &hx8357_ttys[unit]; - return ttread(tp, uio, flag); - } - if (unit == 1) { - return EIO; - } - return ENODEV; } int hx8357_write(dev_t dev, struct uio *uio, int flag) { - int unit = minor(dev); - - if (unit == 0) { - struct tty *tp = &hx8357_ttys[0]; - return ttwrite(tp, uio, flag); - } - - if (unit == 1) { - if (!ttyIsOpen) { - return EIO; - } - struct tty *tp = &hx8357_ttys[0]; - struct iovec *iov = uio->uio_iov; - - while (iov->iov_len > 0) { - ttyinput(*(iov->iov_base), tp); - iov->iov_base ++; - iov->iov_len --; - uio->uio_resid --; - uio->uio_offset ++; - } - return 0; - } return ENODEV; } +/* + * TODO: check whether user pointers are valid. + */ int hx8357_ioctl(dev_t dev, register u_int cmd, caddr_t addr, int flag) { - int unit = minor(dev); + switch (cmd) { + /* + * Clear the whole screen with a given color. + */ + case GPANEL_CLEAR: { + int color = (int) addr; - if (unit == 0) { -#if 0 - struct tty *tp = &hx8357_ttys[unit]; - int error; - - error = ttioctl(tp, cmd, addr, flag); - if (error < 0) - error = ENOTTY; - return (error); -#else - switch (cmd) { - case 0xC0C0: { - unsigned short* wndcoo = (unsigned short*)addr; - setAddrWindow(wndcoo[0], wndcoo[1], wndcoo[2], wndcoo[3]); - break; - } - case 0xDADA: { - unsigned short* data = (unsigned short*)addr; - unsigned short cnt = *data++; - while (PMMODE & PIC32_PMMODE_BUSY); - PMADDR = 0x0001; - while (cnt--) { - while (PMMODE & PIC32_PMMODE_BUSY); - PMDIN = *data++; - } - break; - } + fillRectangle(0, 0, _width, _height, color); + break; + } + + /* + * Draw a single pixel. + */ + case GPANEL_PIXEL: { + struct gpanel_pixel_t *param = (struct gpanel_pixel_t*) addr; + + setPixel(param->x, param->y, param->color); + break; + } + + /* + * Draw a line. + */ + case GPANEL_LINE: { + struct gpanel_line_t *param = (struct gpanel_line_t*) addr; + + drawLine(param->x0, param->y0, param->x1, param->y1, param->color); + break; + } + + /* + * Draw a rectangle frame. + */ + case GPANEL_RECT: { + struct gpanel_rect_t *param = (struct gpanel_rect_t*) addr; + + drawFrame(param->x0, param->y0, param->x1, param->y1, param->color); + break; + } + + /* + * Fill a rectangle with color. + */ + case GPANEL_FILL: { + struct gpanel_rect_t *param = (struct gpanel_rect_t*) addr; + + fillRectangle(param->x0, param->y0, param->x1, param->y1, param->color); + break; + } + + /* + * Draw a circle. + */ + case GPANEL_CIRCLE: { + struct gpanel_circle_t *param = (struct gpanel_circle_t*) addr; + + drawCircle(param->x, param->y, param->radius, param->color); + break; + } + + /* + * Fill a rectangular area with the user-supplied data. + */ + case GPANEL_IMAGE: { + struct gpanel_image_t *param = (struct gpanel_image_t*) addr; + + drawImage(param->x, param->y, param->width, param->height, + param->image); + break; + } + + /* + * Draw a character. + */ + case GPANEL_CHAR: { + struct gpanel_char_t *param = (struct gpanel_char_t*) addr; + + _col = param->x; + _row = param->y; + drawChar(param->font, param->color, param->background, param->sym); + break; + } + + /* + * Draw a string of characters. + */ + case GPANEL_TEXT: { + struct gpanel_text_t *param = (struct gpanel_text_t*) addr; + + drawText(param->font, param->color, param->background, + param->x, param->y, param->text); + break; } - return 0; -#endif } - if (unit == 1) { - return EIO; - } - - return ENODEV; - -} - -void hx8357_putc(dev_t dev, char c) -{ - writeChar(c); -} - -char hx8357_getc(dev_t dev) -{ return 0; } -int hx8357_select (dev_t dev, int rw) -{ - int unit = minor(dev); - if (unit == 0) { - struct tty *tp = &hx8357_ttys[unit]; - return (ttyselect (tp, rw)); - } - if (unit == 1) { - return EIO; - } - return ENODEV; -} - /* * Test to see if device is present. * Return true if found and initialized ok. @@ -812,9 +655,9 @@ static int hxtftprobe(config) struct conf_device *config; { - int flags = config->dev_flags; - - printf("hxtft0: flags %#x\n", flags); + initDisplay(); + setRotation(1); + printf("hxtft0: display %ux%u\n", _height, _width); return 1; } diff --git a/sys/pic32/hx8357.h b/sys/pic32/hx8357.h index 57a1722..402f7ae 100644 --- a/sys/pic32/hx8357.h +++ b/sys/pic32/hx8357.h @@ -1,16 +1,12 @@ #ifndef _HX8356_H #define _HX8357_H +#ifdef KERNEL extern int hx8357_open(dev_t dev, int flag, int mode); extern int hx8357_close(dev_t dev, int flag, int mode); extern int hx8357_read(dev_t dev, struct uio *uio, int flag); extern int hx8357_write(dev_t dev, struct uio *uio, int flag); extern int hx8357_ioctl(dev_t dev, u_int cmd, caddr_t addr, int flag); -extern int hx8357_select(dev_t dev, int rw); -extern void hx8357_putc(dev_t dev, char c); -extern char hx8357_getc(dev_t dev); -extern void hx8357_init(); - -extern struct tty hx8357_ttys[1]; +#endif #endif