commit b18e789fe817861c8b70ceb6785dcb391f88bc27
parent bc21d9b8b059630eeac31a954d30b56f97d38cf2
Author: dsp56300 <dsp56300@users.noreply.github.com>
Date: Wed, 17 Apr 2024 01:19:45 +0200
remove obsolete files
Diffstat:
7 files changed, 0 insertions(+), 3053 deletions(-)
diff --git a/source/mqLib/am29f.cpp b/source/mqLib/am29f.cpp
@@ -1,136 +0,0 @@
-#include "am29f.h"
-
-#include <cassert>
-
-#include "mqmc.h"
-
-#include "../mc68k/logging.h"
-
-Am29f::Am29f(uint8_t* _buffer, const size_t _size, bool _useWriteEnable, bool _bitreversedCmdAddr): m_buffer(_buffer), m_size(_size), m_useWriteEnable(_useWriteEnable), m_bitreverseCmdAddr(_bitreversedCmdAddr)
-{
- auto br = [&](uint16_t x)
- {
- return m_bitreverseCmdAddr ? static_cast<uint16_t>(bitreverse(x) >> 4) : x;
- };
-
- // Chip Erase
- m_commands.push_back({{{br(0x555),0xAA}, {br(0x2AA),0x55}, {br(0x555),0x80}, {br(0x555),0xAA}, {br(0x2AA),0x55}, {br(0x555),0x10}}});
-
- // Sector Erase
- m_commands.push_back({{{br(0x555),0xAA}, {br(0x2AA),0x55}, {br(0x555),0x80}, {br(0x555),0xAA}, {br(0x2AA),0x55}}});
-
- // Program
- m_commands.push_back({{{br(0x555),0xAA}, {br(0x2AA),0x55}, {br(0x555),0xA0}}});
-}
-
-void Am29f::write(const uint32_t _addr, const uint16_t _data)
-{
- const auto reset = [this]()
- {
- m_currentBusCycle = 0;
- m_currentCommand = -1;
- };
-
- if(!writeEnabled())
- {
- reset();
- return;
- }
-
- bool anyMatch = false;
-
- const auto d = _data & 0xff;
-
- for (size_t i=0; i<m_commands.size(); ++i)
- {
- auto& cycles = m_commands[i].cycles;
-
- if(m_currentBusCycle < cycles.size())
- {
- const auto& c = cycles[m_currentBusCycle];
-
- if(c.addr == _addr && c.data == d)
- {
- anyMatch = true;
-
- if(m_currentBusCycle == cycles.size() - 1)
- m_currentCommand = static_cast<int32_t>(i);
- }
- }
- }
-
- if(!anyMatch)
- {
- if(m_currentCommand >= 0)
- {
- const auto c = static_cast<CommandType>(m_currentCommand);
-
- execCommand(c, _addr, _data);
- }
-
- reset();
- }
- else
- {
- ++m_currentBusCycle;
- }
-}
-
-void Am29f::execCommand(const CommandType _command, uint32_t _addr, const uint16_t _data)
-{
- switch (_command)
- {
- case CommandType::ChipErase:
- assert(false);
- break;
- case CommandType::SectorErase:
- {
- size_t sectorSizekB = 0;
- switch (_addr)
- {
- case 0x00000: sectorSizekB = 16; break;
- case 0x04000:
- case 0x06000: sectorSizekB = 8; break;
- case 0x08000: sectorSizekB = 32; break;
- case 0x10000:
- case 0x20000:
- case 0x30000:
- case 0x40000:
- case 0x50000:
- case 0x60000:
- case 0x70000: sectorSizekB = 64; break;
- case 0x78000:
- case 0x7A000:
- case 0x7C000:
- // mq sends erase commands for a flash with top boot block even though a chip with bottom boot block is installed
- _addr = 0x70000;
- sectorSizekB = 64;
- break;
- default:
- MCLOG("Unable to erase sector at " << MCHEX(_addr) << ", out of bounds!");
- return;
- }
-
- MCLOG("Erasing Sector at " << MCHEX(_addr) << ", size " << MCHEX(1024 * sectorSizekB));
- for(size_t i = _addr; i< _addr + sectorSizekB * 1024; ++i)
- m_buffer[i] = 0xff;
- }
- break;
- case CommandType::Program:
- {
- if(_addr >= m_size)
- return;
- MCLOG("Programming word at " << MCHEX(_addr) << ", value " << MCHEXN(_data, 4));
- const auto old = mqLib::MqMc::readW(m_buffer, _addr);
- // "A bit cannot be programmed from a 0 back to a 1"
- const auto v = _data & old;
- mqLib::MqMc::writeW(m_buffer, _addr, v);
-// assert(v == _data);
- break;
- }
- case CommandType::Invalid:
- default:
- assert(false);
- break;
- }
-}
diff --git a/source/mqLib/am29f.h b/source/mqLib/am29f.h
@@ -1,64 +0,0 @@
-#pragma once
-
-#include <cstdint>
-#include <cstddef>
-#include <vector>
-
-class Am29f
-{
-public:
- struct BusCycle
- {
- uint16_t addr;
- uint8_t data;
- };
-
- struct Command
- {
- std::vector<BusCycle> cycles;
- };
-
- enum class CommandType
- {
- Invalid = -1,
- ChipErase,
- SectorErase,
- Program,
- };
-
- explicit Am29f(uint8_t* _buffer, size_t _size, bool _useWriteEnable, bool _bitreversedCmdAddr);
-
- void writeEnable(bool _writeEnable)
- {
- m_writeEnable = _writeEnable;
- }
-
- void write(uint32_t _addr, uint16_t _data);
-
-private:
- bool writeEnabled() const
- {
- return !m_useWriteEnable || m_writeEnable;
- }
-
- static constexpr uint16_t bitreverse(uint16_t x)
- {
- x = ((x & 0xaaaau) >> 1) | static_cast<uint16_t>((x & 0x5555u) << 1);
- x = ((x & 0xccccu) >> 2) | static_cast<uint16_t>((x & 0x3333u) << 2);
- x = ((x & 0xf0f0u) >> 4) | static_cast<uint16_t>((x & 0x0f0fu) << 4);
-
- return ((x & 0xff00) >> 8) | static_cast<uint16_t>((x & 0x00ff) << 8);
- }
-
- void execCommand(CommandType _command, uint32_t _addr, uint16_t _data);
-
- uint8_t* m_buffer;
- const size_t m_size;
- const bool m_useWriteEnable;
- const bool m_bitreverseCmdAddr;
-
- std::vector<Command> m_commands;
- bool m_writeEnable = false;
- uint32_t m_currentBusCycle = 0;
- int32_t m_currentCommand = -1;
-};
diff --git a/source/mqLib/dspBootCode.h b/source/mqLib/dspBootCode.h
@@ -1,46 +0,0 @@
-#pragma once
-
-#include <cstdint>
-
-namespace mqLib
-{
- static constexpr uint32_t g_dspBootCode[] =
- {
- 0x350013, 0x0afa23, 0xff0035, 0x0afa22,
- 0xff000e, 0x0afa01, 0xff0022, 0x0afa20,
- 0xff005e, 0x61f400, 0xff1000, 0x050c8f,
- 0x0afa00, 0xff0021, 0x31a900, 0x0afa01,
- 0xff0012, 0x0ad161, 0x04d191, 0x019191,
- 0xff0013, 0x044894, 0x019191, 0xff0016,
- 0x045094, 0x221100, 0x06c800, 0xff001f,
- 0x019191, 0xff001c, 0x009814, 0x000000,
- 0x050c5a, 0x050c5d, 0x62f400, 0xd00000,
- 0x08f4b8, 0xd00409, 0x060680, 0xff0029,
- 0x07da8a, 0x0c1c10, 0x219000, 0x219100,
- 0x06c800, 0xff0033, 0x060380, 0xff0031,
- 0x07da8a, 0x0c1c10, 0x07588c, 0x000000,
- 0x050c46, 0x0afa02, 0xff005c, 0x0afa01,
- 0xff003e, 0x0afa00, 0xff0046, 0x08f484,
- 0x000038, 0x050c0b, 0x0afa20, 0xff0043,
- 0x08f484, 0x005018, 0x050c06, 0x08f484,
- 0x000218, 0x050c03, 0x08f484, 0x001c1e,
- 0x0a8426, 0x0a8380, 0xff0049, 0x084806,
- 0x0a8380, 0xff004c, 0x085006, 0x221100,
- 0x06c800, 0xff0059, 0x0a83a0, 0xff0058,
- 0x0a8383, 0xff0052, 0x00008c, 0x050c03,
- 0x085846, 0x000000, 0x0000b9, 0x0ae180,
- 0x0afa01, 0xff005f, 0x050c00, 0x66f41b,
- 0xff0090, 0x0503a6, 0x04cfdd, 0x013f03,
- 0x013e23, 0x045517, 0x060980, 0xff008b,
- 0x07de85, 0x07de84, 0x07de86, 0x300013,
- 0x70f400, 0x001600, 0x06d820, 0x4258a2,
- 0x320013, 0x72f400, 0x000c00, 0x06da20,
- 0x075a86, 0x300013, 0x06d800, 0xff007d,
- 0x54e000, 0x200063, 0x200018, 0x5cd800,
- 0x200043, 0x200018, 0x320013, 0x06da00,
- 0xff0083, 0x07da8c, 0x200053, 0x200018,
- 0x022d07, 0x08d73c, 0x0d104a, 0x000005,
- 0x013d03, 0x00008c, 0x050c02, 0x017d03,
- 0x000200, 0x000086
- };
-}
diff --git a/source/mqLib/lcdfonts.cpp b/source/mqLib/lcdfonts.cpp
@@ -1,2673 +0,0 @@
-#include <cstdint>
-#include <array>
-
-namespace mqLib
-{
- constexpr uint8_t g_fontTable0[] =
- {
- // CGRam Data, initially empty
- 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, // 0 0
- 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, // 0 1
- 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, // 0 2
- 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, // 0 3
- 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, // 0 4
- 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, // 0 5
- 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, // 0 6
- 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, // 0 7
- 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, // 0 8
- 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, // 0 9
- 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, // 0 a
- 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, // 0 b
- 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, // 0 c
- 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, // 0 d
- 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, // 0 e
- 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, // 0 f
-
- 0b00000, // 1 0
- 0b10001,
- 0b01001,
- 0b01110,
- 0b10010,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 1 1
- 0b11110,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 1 2
- 0b00110,
- 0b00010,
- 0b00110,
- 0b01010,
- 0b01010,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 1 3
- 0b11111,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 1 4
- 0b11111,
- 0b00001,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 1 5
- 0b00110,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 1 6
- 0b01110,
- 0b00100,
- 0b01000,
- 0b00100,
- 0b00010,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 1 7
- 0b11111,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 1 8
- 0b10111,
- 0b10101,
- 0b10101,
- 0b10001,
- 0b01111,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 1 9
- 0b00110,
- 0b00010,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 1 a
- 0b01111,
- 0b00001,
- 0b00001,
- 0b00001,
- 0b00001,
- 0b00001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 1 b
- 0b11110,
- 0b00001,
- 0b00001,
- 0b00001,
- 0b11110,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b10000, // 1 c
- 0b11111,
- 0b00001,
- 0b00001,
- 0b00001,
- 0b00110,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 1 d
- 0b11111,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 1 e
- 0b10110,
- 0b01001,
- 0b10001,
- 0b10001,
- 0b10111,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 1 f
- 0b00110,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 2 0
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00100, // 2 1 !
- 0b00100,
- 0b00100,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01010, // 2 2 "
- 0b01010,
- 0b01010,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01010, // 2 3 #
- 0b01010,
- 0b11111,
- 0b01010,
- 0b11111,
- 0b01010,
- 0b01010,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00100, // 2 4 $
- 0b01111,
- 0b10100,
- 0b01110,
- 0b00101,
- 0b11110,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b11000, // 2 5 %
- 0b11001,
- 0b00010,
- 0b00100,
- 0b01000,
- 0b10011,
- 0b00011,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01100, // 2 6 &
- 0b10010,
- 0b10100,
- 0b01000,
- 0b10101,
- 0b10010,
- 0b01101,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01100, // 2 7 '
- 0b00100,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00010, // 2 8 (
- 0b00100,
- 0b01000,
- 0b01000,
- 0b01000,
- 0b00100,
- 0b00010,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01000, // 2 9 )
- 0b00100,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b00100,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 2 a *
- 0b00100,
- 0b10101,
- 0b01110,
- 0b10101,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 2 b +
- 0b00100,
- 0b00100,
- 0b11111,
- 0b00100,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 2 c ,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b01100,
- 0b00100,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 2 d -
- 0b00000,
- 0b00000,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 2 e .
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b01100,
- 0b01100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 2 f /
- 0b00001,
- 0b00010,
- 0b00100,
- 0b01000,
- 0b10000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01110, // 3 0 0
- 0b10001,
- 0b10011,
- 0b10101,
- 0b11001,
- 0b10001,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00100, // 3 1 1
- 0b01100,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01110, // 3 2 2
- 0b10001,
- 0b00001,
- 0b00010,
- 0b00100,
- 0b01000,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b11111, // 3 3 3
- 0b00010,
- 0b00100,
- 0b00010,
- 0b00001,
- 0b10001,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00010, // 3 4 4
- 0b00110,
- 0b01010,
- 0b10010,
- 0b11111,
- 0b00010,
- 0b00010,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b11111, // 3 5 5
- 0b10000,
- 0b11110,
- 0b00001,
- 0b00001,
- 0b10001,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00110, // 3 6 6
- 0b01000,
- 0b10000,
- 0b11110,
- 0b10001,
- 0b10001,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b11111, // 3 7 7
- 0b00001,
- 0b00010,
- 0b00100,
- 0b01000,
- 0b01000,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01110, // 3 8 8
- 0b10001,
- 0b10001,
- 0b01110,
- 0b10001,
- 0b10001,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01110, // 3 9 9
- 0b10001,
- 0b10001,
- 0b01111,
- 0b00001,
- 0b00010,
- 0b01100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 3 a :
- 0b01100,
- 0b01100,
- 0b00000,
- 0b01100,
- 0b01100,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 3 b ;
- 0b01100,
- 0b01100,
- 0b00000,
- 0b01100,
- 0b00100,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00010, // 3 c <
- 0b00100,
- 0b01000,
- 0b10000,
- 0b01000,
- 0b00100,
- 0b00010,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 3 d =
- 0b00000,
- 0b11111,
- 0b00000,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01000, // 3 e >
- 0b00100,
- 0b00010,
- 0b00001,
- 0b00010,
- 0b00100,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01110, // 3 f ?
- 0b10001,
- 0b00001,
- 0b00010,
- 0b00100,
- 0b00000,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01110, // 4 0 @
- 0b10001,
- 0b00001,
- 0b01101,
- 0b10101,
- 0b10101,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01110, // 4 1 A
- 0b10001,
- 0b10001,
- 0b10001,
- 0b11111,
- 0b10001,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b11110, // 4 2 B
- 0b10001,
- 0b10001,
- 0b11110,
- 0b10001,
- 0b10001,
- 0b11110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01110, // 4 3 C
- 0b10001,
- 0b10000,
- 0b10000,
- 0b10000,
- 0b10001,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b11100, // 4 4 D
- 0b10010,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b10010,
- 0b11100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b11111, // 4 5 E
- 0b10000,
- 0b10000,
- 0b11110,
- 0b10000,
- 0b10000,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b11111, // 4 6 F
- 0b10000,
- 0b10000,
- 0b11110,
- 0b10000,
- 0b10000,
- 0b10000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01110, // 4 7 G
- 0b10001,
- 0b10000,
- 0b10111,
- 0b10001,
- 0b10001,
- 0b01111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b10001, // 4 8 H
- 0b10001,
- 0b10001,
- 0b11111,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01110, // 4 9 I
- 0b00100,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00111, // 4 a J
- 0b00010,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b10010,
- 0b01100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b10001, // 4 b K
- 0b10010,
- 0b10100,
- 0b11000,
- 0b10100,
- 0b10010,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b10000, // 4 c L
- 0b10000,
- 0b10000,
- 0b10000,
- 0b10000,
- 0b10000,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b10001, // 4 d M
- 0b11011,
- 0b10101,
- 0b10101,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b10001, // 4 e N
- 0b10001,
- 0b11001,
- 0b10101,
- 0b10011,
- 0b10001,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01110, // 4 f O
- 0b10001,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b11110, // 5 0 P
- 0b10001,
- 0b10001,
- 0b11110,
- 0b10000,
- 0b10000,
- 0b10000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01110, // 5 1 Q
- 0b10001,
- 0b10001,
- 0b10001,
- 0b10101,
- 0b10010,
- 0b01101,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b11110, // 5 2 R
- 0b10001,
- 0b10001,
- 0b11110,
- 0b10100,
- 0b10010,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01111, // 5 3 S
- 0b10000,
- 0b10000,
- 0b01110,
- 0b00001,
- 0b00001,
- 0b11110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b11111, // 5 4 T
- 0b00100,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b10001, // 5 5 U
- 0b10001,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b10001, // 5 6 V
- 0b10001,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b01010,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b10101, // 5 7 W
- 0b10101,
- 0b10101,
- 0b10101,
- 0b10101,
- 0b10101,
- 0b01010,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b10001, // 5 8 X
- 0b10001,
- 0b01010,
- 0b00100,
- 0b01010,
- 0b10001,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b10001, // 5 9 Y
- 0b10001,
- 0b10001,
- 0b01010,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b11111, // 5 a Z
- 0b00001,
- 0b00010,
- 0b00100,
- 0b01000,
- 0b10000,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01110, // 5 b [
- 0b01000,
- 0b01000,
- 0b01000,
- 0b01000,
- 0b01000,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b10001, // 5 c
- 0b01010,
- 0b11111,
- 0b00100,
- 0b11111,
- 0b00100,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01110, // 5 d ]
- 0b00010,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00100, // 5 e ^
- 0b01010,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 5 f _
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01000, // 6 0 `
- 0b00100,
- 0b00010,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 6 1 a
- 0b00000,
- 0b01110,
- 0b00001,
- 0b01111,
- 0b10001,
- 0b01111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b10000, // 6 2 b
- 0b10000,
- 0b10110,
- 0b11001,
- 0b10001,
- 0b10001,
- 0b11110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 6 3 c
- 0b00000,
- 0b01110,
- 0b10000,
- 0b10000,
- 0b10001,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00001, // 6 4 d
- 0b00001,
- 0b01101,
- 0b10011,
- 0b10001,
- 0b10001,
- 0b01111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 6 5 e
- 0b00000,
- 0b01110,
- 0b10001,
- 0b11111,
- 0b10000,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00110, // 6 6 f
- 0b01001,
- 0b01000,
- 0b11100,
- 0b01000,
- 0b01000,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 6 7 g
- 0b01111,
- 0b10001,
- 0b10001,
- 0b01111,
- 0b00001,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b10000, // 6 8 h
- 0b10000,
- 0b10110,
- 0b11001,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00100, // 6 9 i
- 0b00000,
- 0b01100,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00010, // 6 a j
- 0b00000,
- 0b00110,
- 0b00010,
- 0b00010,
- 0b10010,
- 0b01100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b10000, // 6 b k
- 0b10000,
- 0b10010,
- 0b10100,
- 0b11000,
- 0b10100,
- 0b10010,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01100, // 6 c l
- 0b00100,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 6 d m
- 0b00000,
- 0b11010,
- 0b10101,
- 0b10101,
- 0b10001,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 6 e n
- 0b00000,
- 0b10110,
- 0b11001,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 6 f o
- 0b00000,
- 0b01110,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 7 0 p
- 0b00000,
- 0b11110,
- 0b10001,
- 0b11110,
- 0b10000,
- 0b10000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 7 1 q
- 0b00000,
- 0b01101,
- 0b10011,
- 0b01111,
- 0b00001,
- 0b00001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 7 2 r
- 0b00000,
- 0b10110,
- 0b11001,
- 0b10000,
- 0b10000,
- 0b10000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 7 3 s
- 0b00000,
- 0b01110,
- 0b10000,
- 0b01110,
- 0b00001,
- 0b11110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01000, // 7 4 t
- 0b01000,
- 0b11100,
- 0b01000,
- 0b01000,
- 0b01001,
- 0b00110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 7 5 u
- 0b00000,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b10011,
- 0b01101,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 7 6 v
- 0b00000,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b01010,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 7 7 w
- 0b00000,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b10101,
- 0b01010,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 7 8 x
- 0b00000,
- 0b10001,
- 0b01010,
- 0b00100,
- 0b01010,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 7 9 y
- 0b00000,
- 0b10001,
- 0b10001,
- 0b01111,
- 0b00001,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 7 a z
- 0b00000,
- 0b11111,
- 0b00010,
- 0b00100,
- 0b01000,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00010, // 7 b {
- 0b00100,
- 0b00100,
- 0b01000,
- 0b00100,
- 0b00100,
- 0b00010,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00100, // 7 c |
- 0b00100,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01000, // 7 d }
- 0b00100,
- 0b00100,
- 0b00010,
- 0b00100,
- 0b00100,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 7 e ->
- 0b00100,
- 0b00010,
- 0b11111,
- 0b00010,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 7 f <-
- 0b00100,
- 0b01000,
- 0b11111,
- 0b01000,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 8 0
- 0b00110,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 8 1
- 0b11111,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 8 2
- 0b10001,
- 0b10001,
- 0b01001,
- 0b00101,
- 0b11110,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 8 3
- 0b01111,
- 0b01001,
- 0b01101,
- 0b00001,
- 0b00001,
- 0b00001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 8 4
- 0b11111,
- 0b01001,
- 0b01101,
- 0b00001,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 8 5
- 0b01001,
- 0b00110,
- 0b00010,
- 0b00001,
- 0b00001,
- 0b00001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 8 6
- 0b10001,
- 0b01010,
- 0b00100,
- 0b00010,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 8 7
- 0b11111,
- 0b00001,
- 0b10001,
- 0b10110,
- 0b10000,
- 0b10000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 8 8
- 0b11111,
- 0b00001,
- 0b00001,
- 0b00001,
- 0b00001,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 8 9
- 0b10101,
- 0b10101,
- 0b10101,
- 0b10101,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 8 a
- 0b01111,
- 0b01001,
- 0b01001,
- 0b01001,
- 0b11001,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00100, // 8 b
- 0b01001,
- 0b11101,
- 0b00001,
- 0b10001,
- 0b11110,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 8 c
- 0b00010,
- 0b00000,
- 0b00010,
- 0b00101,
- 0b11110,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 8 d
- 0b00000,
- 0b00000,
- 0b00010,
- 0b00101,
- 0b11110,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00010, // 8 e
- 0b00100,
- 0b01110,
- 0b00000,
- 0b00010,
- 0b01100,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 8 f
- 0b00100,
- 0b00000,
- 0b00110,
- 0b01000,
- 0b11110,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00100, // 9 0
- 0b00101,
- 0b11100,
- 0b00000,
- 0b00100,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 9 1
- 0b00000,
- 0b00100,
- 0b01010,
- 0b00001,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 9 2
- 0b00010,
- 0b00000,
- 0b10011,
- 0b10011,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 9 3
- 0b00000,
- 0b00000,
- 0b00111,
- 0b00101,
- 0b11011,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 9 4
- 0b01100,
- 0b00010,
- 0b01001,
- 0b10101,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00100, // 9 5
- 0b00000,
- 0b01111,
- 0b01001,
- 0b00110,
- 0b11001,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00100, // 9 6
- 0b01001,
- 0b11101,
- 0b00001,
- 0b00001,
- 0b00001,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 9 7
- 0b00101,
- 0b00000,
- 0b00010,
- 0b00101,
- 0b11110,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 9 8
- 0b00000,
- 0b00000,
- 0b01100,
- 0b01010,
- 0b01101,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 9 9
- 0b01010,
- 0b00000,
- 0b01100,
- 0b01010,
- 0b01101,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 9 a
- 0b00000,
- 0b01111,
- 0b01001,
- 0b00110,
- 0b11001,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00100, // 9 b
- 0b00000,
- 0b00100,
- 0b01010,
- 0b00001,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 9 c
- 0b00101,
- 0b00000,
- 0b10011,
- 0b10011,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 9 d
- 0b00001,
- 0b00001,
- 0b00001,
- 0b00001,
- 0b11110,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // 9 e
- 0b00000,
- 0b00000,
- 0b00100,
- 0b01010,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00110, // 9 f
- 0b11101,
- 0b00001,
- 0b00001,
- 0b00001,
- 0b00001,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // a 0
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // a 1
- 0b00000,
- 0b00000,
- 0b00000,
- 0b11100,
- 0b10100,
- 0b11100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00111, // a 2
- 0b00100,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // a 3
- 0b00000,
- 0b00000,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b11100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // a 4
- 0b00000,
- 0b00000,
- 0b00000,
- 0b10000,
- 0b01000,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // a 5
- 0b00000,
- 0b00000,
- 0b01100,
- 0b01100,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // a 6
- 0b11111,
- 0b00001,
- 0b11111,
- 0b00001,
- 0b00010,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // a 7
- 0b00000,
- 0b11111,
- 0b00001,
- 0b00110,
- 0b00100,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // a 8
- 0b00000,
- 0b00010,
- 0b00100,
- 0b01100,
- 0b10100,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // a 9
- 0b00000,
- 0b00100,
- 0b11111,
- 0b10001,
- 0b00001,
- 0b00110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // a a
- 0b00000,
- 0b00000,
- 0b11111,
- 0b00100,
- 0b00100,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // a b
- 0b00000,
- 0b00010,
- 0b11111,
- 0b00110,
- 0b01010,
- 0b10010,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // a c
- 0b00000,
- 0b01000,
- 0b11111,
- 0b01001,
- 0b01010,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // a d
- 0b00000,
- 0b00000,
- 0b01110,
- 0b00010,
- 0b00010,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // a e
- 0b00000,
- 0b00000,
- 0b11110,
- 0b00010,
- 0b11110,
- 0b00010,
- 0b11110,
- 0b00000,
- 0b00000,
-
- 0b00000, // a f
- 0b00000,
- 0b00000,
- 0b10101,
- 0b10101,
- 0b00001,
- 0b00110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // b 0
- 0b00000,
- 0b00000,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b11111, // b 1
- 0b00001,
- 0b00101,
- 0b00110,
- 0b00100,
- 0b00100,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00001, // b 2
- 0b00010,
- 0b00100,
- 0b01100,
- 0b10100,
- 0b00100,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00100, // b 3
- 0b11111,
- 0b10001,
- 0b10001,
- 0b00001,
- 0b00010,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // b 4
- 0b11111,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00010, // b 5
- 0b11111,
- 0b00010,
- 0b00110,
- 0b01010,
- 0b10010,
- 0b00010,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01000, // b 6
- 0b11111,
- 0b01001,
- 0b01001,
- 0b01001,
- 0b01001,
- 0b10010,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00100, // b 7
- 0b11111,
- 0b00100,
- 0b11111,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // b 8
- 0b01111,
- 0b01001,
- 0b10001,
- 0b00001,
- 0b00010,
- 0b01100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01000, // b 9
- 0b01111,
- 0b10010,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // b a
- 0b11111,
- 0b00001,
- 0b00001,
- 0b00001,
- 0b00001,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01010, // b b
- 0b11111,
- 0b01010,
- 0b01010,
- 0b00010,
- 0b00100,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // b c
- 0b11000,
- 0b00001,
- 0b11001,
- 0b00001,
- 0b00010,
- 0b11100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // b d
- 0b11111,
- 0b00001,
- 0b00010,
- 0b00100,
- 0b01010,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01000, // b e
- 0b11111,
- 0b01001,
- 0b01010,
- 0b01000,
- 0b01000,
- 0b00111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // b f
- 0b10001,
- 0b10001,
- 0b01001,
- 0b00001,
- 0b00010,
- 0b01100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // c 0
- 0b01111,
- 0b01001,
- 0b10101,
- 0b00011,
- 0b00010,
- 0b01100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00010, // c 1
- 0b11100,
- 0b00100,
- 0b11111,
- 0b00100,
- 0b00100,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // c 2
- 0b10101,
- 0b10101,
- 0b10101,
- 0b00001,
- 0b00010,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01110, // c 3
- 0b00000,
- 0b11111,
- 0b00100,
- 0b00100,
- 0b00100,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01000, // c 4
- 0b01000,
- 0b01000,
- 0b01100,
- 0b01010,
- 0b01000,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00100, // c 5
- 0b00100,
- 0b11111,
- 0b00100,
- 0b00100,
- 0b01000,
- 0b10000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // c 6
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // c 7
- 0b11111,
- 0b00001,
- 0b01010,
- 0b00100,
- 0b01010,
- 0b10000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00100, // c 8
- 0b11111,
- 0b00010,
- 0b00100,
- 0b01110,
- 0b10101,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00010, // c 9
- 0b00010,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b00100,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // c a
- 0b00100,
- 0b00010,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b10000, // c b
- 0b10000,
- 0b11111,
- 0b10000,
- 0b10000,
- 0b10000,
- 0b01111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // c c
- 0b11111,
- 0b00001,
- 0b00001,
- 0b00001,
- 0b00010,
- 0b01100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // c d
- 0b01000,
- 0b10100,
- 0b00010,
- 0b00001,
- 0b00001,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00100, // c e
- 0b11111,
- 0b00100,
- 0b10101,
- 0b10101,
- 0b00100,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // c f
- 0b11111,
- 0b00001,
- 0b00001,
- 0b01010,
- 0b00100,
- 0b00010,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // d 0
- 0b01110,
- 0b00000,
- 0b01110,
- 0b00000,
- 0b01110,
- 0b00001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // d 1
- 0b00100,
- 0b01000,
- 0b10000,
- 0b10001,
- 0b11111,
- 0b00001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // d 2
- 0b00001,
- 0b00001,
- 0b01010,
- 0b00100,
- 0b01010,
- 0b10000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // d 3
- 0b11111,
- 0b01000,
- 0b11111,
- 0b01000,
- 0b01000,
- 0b00111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01000, // d 4
- 0b01000,
- 0b11111,
- 0b01001,
- 0b01010,
- 0b01000,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // d 5
- 0b01110,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // d 6
- 0b11111,
- 0b00001,
- 0b11111,
- 0b00001,
- 0b00001,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01110, // d 7
- 0b00000,
- 0b11111,
- 0b00001,
- 0b00001,
- 0b00010,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b10010, // d 8
- 0b10010,
- 0b10010,
- 0b10010,
- 0b00010,
- 0b00100,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // d 9
- 0b00100,
- 0b10100,
- 0b10100,
- 0b10100,
- 0b10101,
- 0b10110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // d a
- 0b10000,
- 0b10000,
- 0b10001,
- 0b10010,
- 0b10100,
- 0b11000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // d b
- 0b11111,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // d c
- 0b11111,
- 0b10001,
- 0b10001,
- 0b00001,
- 0b00010,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // d d
- 0b11000,
- 0b00000,
- 0b00001,
- 0b00001,
- 0b00010,
- 0b11100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00100, // d e
- 0b10010,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b11100, // d f
- 0b10100,
- 0b11100,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // e 0
- 0b01001,
- 0b10101,
- 0b10010,
- 0b10010,
- 0b01101,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01010, // e 1
- 0b00000,
- 0b01110,
- 0b00001,
- 0b01111,
- 0b10001,
- 0b01111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // e 2
- 0b00000,
- 0b01110,
- 0b10001,
- 0b11110,
- 0b10001,
- 0b11110,
- 0b10000,
- 0b10000,
- 0b10000,
-
- 0b00000, // e 3
- 0b00000,
- 0b01110,
- 0b10000,
- 0b01100,
- 0b10001,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // e 4
- 0b00000,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b10011,
- 0b11101,
- 0b10000,
- 0b10000,
- 0b10000,
-
- 0b00000, // e 5
- 0b00000,
- 0b00000,
- 0b01111,
- 0b10100,
- 0b10010,
- 0b10001,
- 0b01110,
- 0b00000,
- 0b00000,
-
- 0b00000, // e 6
- 0b00000,
- 0b00110,
- 0b01001,
- 0b10001,
- 0b10001,
- 0b11110,
- 0b10000,
- 0b10000,
- 0b10000,
-
- 0b00000, // e 7
- 0b00000,
- 0b01111,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b01111,
- 0b00001,
- 0b00001,
- 0b01110,
-
- 0b00000, // e 8
- 0b00000,
- 0b00111,
- 0b00100,
- 0b00100,
- 0b10100,
- 0b01000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // e 9
- 0b00010,
- 0b11010,
- 0b00010,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00010, // e a
- 0b00000,
- 0b00110,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b00010,
- 0b10010,
- 0b01100,
-
- 0b00000, // e b
- 0b10100,
- 0b01000,
- 0b10100,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // e c
- 0b00100,
- 0b01110,
- 0b10100,
- 0b10101,
- 0b01110,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01000, // e d
- 0b01000,
- 0b11100,
- 0b01000,
- 0b11100,
- 0b01000,
- 0b01111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01110, // e e
- 0b00000,
- 0b10110,
- 0b11001,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01010, // e f
- 0b00000,
- 0b01110,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // f 0
- 0b00000,
- 0b10110,
- 0b11001,
- 0b10001,
- 0b10001,
- 0b11110,
- 0b10000,
- 0b10000,
- 0b10000,
-
- 0b00000, // f 1
- 0b00000,
- 0b01101,
- 0b10011,
- 0b10001,
- 0b10001,
- 0b01111,
- 0b00001,
- 0b00001,
- 0b00001,
-
- 0b00000, // f 2
- 0b01110,
- 0b10001,
- 0b11111,
- 0b10001,
- 0b10001,
- 0b01110,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // f 3
- 0b00000,
- 0b00000,
- 0b01011,
- 0b10101,
- 0b11010,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // f 4
- 0b00000,
- 0b01110,
- 0b10001,
- 0b10001,
- 0b01010,
- 0b11011,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b01010, // f 5
- 0b00000,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b10011,
- 0b01101,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b11111, // f 6
- 0b10000,
- 0b01000,
- 0b00100,
- 0b01000,
- 0b10000,
- 0b11111,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // f 7
- 0b00000,
- 0b11111,
- 0b01010,
- 0b01010,
- 0b01010,
- 0b10011,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b11111, // f 8
- 0b00000,
- 0b10001,
- 0b01010,
- 0b00100,
- 0b01010,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // f 9
- 0b00000,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b10001,
- 0b01111,
- 0b00001,
- 0b00001,
- 0b01110,
-
- 0b00000, // f a
- 0b00001,
- 0b11110,
- 0b00100,
- 0b11111,
- 0b00100,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // f b
- 0b00000,
- 0b11111,
- 0b01000,
- 0b01111,
- 0b01001,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // f c
- 0b00000,
- 0b11111,
- 0b10101,
- 0b11111,
- 0b10001,
- 0b10001,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // f d
- 0b00000,
- 0b00100,
- 0b00000,
- 0b11111,
- 0b00000,
- 0b00100,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b00000, // f e
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
- 0b00000,
-
- 0b11111, // f f
- 0b11111,
- 0b11111,
- 0b11111,
- 0b11111,
- 0b11111,
- 0b11111,
- 0b11111,
- 0b11111,
- 0b11111,
- };
-
- static_assert(std::size(g_fontTable0) == 256 * 10);
-
- const uint8_t* getCharacterData(const uint8_t _character)
- {
- return &g_fontTable0[_character * 10];
- }
-}
diff --git a/source/mqLib/lcdfonts.h b/source/mqLib/lcdfonts.h
@@ -1,6 +0,0 @@
-#pragma once
-
-namespace mqLib
-{
- const uint8_t* getCharacterData(uint8_t _character);
-}
diff --git a/source/mqLib/mqmidi.cpp b/source/mqLib/mqmidi.cpp
@@ -1,84 +0,0 @@
-#include "mqmidi.h"
-
-#include <deque>
-
-#include "../mc68k/qsm.h"
-
-namespace mqLib
-{
- static constexpr float g_sysexSendDelaySeconds = 0.2f;
- static constexpr uint32_t g_sysexSendDelaySamples = static_cast<uint32_t>(44100.0f * g_sysexSendDelaySeconds);
-
- Midi::Midi(mc68k::Qsm& _qsm) : m_qsm(_qsm)
- {
- }
-
- void Midi::process(const uint32_t _numSamples)
- {
- if(m_remainingSysexDelay)
- m_remainingSysexDelay -= std::min(m_remainingSysexDelay, _numSamples);
-
- while(m_remainingSysexDelay == 0 && !m_transmittingSysex && !m_pendingSysexBuffers.empty())
- {
- const auto& msg = m_pendingSysexBuffers.front();
-
- for (const auto b : msg)
- m_qsm.writeSciRX(b);
-
- if(msg.size() > 0xf)
- m_remainingSysexDelay = g_sysexSendDelaySamples;
-
- m_pendingSysexBuffers.pop_front();
- }
- }
-
- void Midi::writeMidi(const uint8_t _byte)
- {
- if(_byte == 0xf0)
- {
- m_receivingSysex = true;
- }
-
- if(m_receivingSysex)
- {
- m_pendingSysexMessage.push_back(_byte);
- }
- else
- {
- m_qsm.writeSciRX(_byte);
- }
-
- if (_byte == 0xf7)
- {
- m_receivingSysex = false;
-
- if (!m_pendingSysexMessage.empty())
- m_pendingSysexBuffers.push_back(std::move(m_pendingSysexMessage));
-
- m_pendingSysexMessage.clear();
- }
- }
-
- void Midi::readTransmitBuffer(std::vector<uint8_t>& _result)
- {
- std::deque<uint16_t> midiData;
- m_qsm.readSciTX(midiData);
- if (midiData.empty())
- return;
-
- _result.clear();
- _result.reserve(midiData.size());
-
- for (const auto data : midiData)
- {
- const uint8_t d = data & 0xff;
-
- if(d == 0xf0)
- m_transmittingSysex = true;
- else if(d == 0xf7)
- m_transmittingSysex = false;
-
- _result.push_back(d);
- }
- }
-}
diff --git a/source/mqLib/mqmidi.h b/source/mqLib/mqmidi.h
@@ -1,44 +0,0 @@
-#pragma once
-
-#include <deque>
-#include <vector>
-#include <cstdint>
-
-namespace mc68k
-{
- class Qsm;
-}
-
-namespace mqLib
-{
- class Midi
- {
- public:
- explicit Midi(mc68k::Qsm& _qsm);
-
- void process(uint32_t _numSamples);
-
- void writeMidi(uint8_t _byte);
- void writeMidi(const std::initializer_list<uint8_t>& _bytes)
- {
- for (const uint8_t byte : _bytes)
- writeMidi(byte);
- }
- void writeMidi(const std::vector<uint8_t>& _bytes)
- {
- for (const uint8_t byte : _bytes)
- writeMidi(byte);
- }
- void readTransmitBuffer(std::vector<uint8_t>& _result);
-
- private:
- mc68k::Qsm& m_qsm;
-
- bool m_transmittingSysex = false;
- bool m_receivingSysex = false;
- uint32_t m_remainingSysexDelay = 0;
-
- std::deque< std::vector<uint8_t> > m_pendingSysexBuffers;
- std::vector<uint8_t> m_pendingSysexMessage;
- };
-}