Thats great that you managed to get your code working. If you are agreeable I would like to post your code on our website in case others can benefit from working code for this type of CPU (credit posted accordingly of course). If you agree, please advise name to use for credits.
Here is a conversion routine for generating suitable bitmaps from ASCII characters.
Code: Select allBYTE code g_lpCharLU[128][5] = {
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 000
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 001
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 002
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 003
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 004
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 005
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 006
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 007
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 008
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 009
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 010
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 011
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 012
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 013
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 014
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 015
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 016
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 017
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 018
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 019
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 020
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 021
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 022
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 023
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 024
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 025
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 026
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 027
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 028
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 029
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 030
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 031
{ 0x0, 0x0, 0x0, 0x0, 0x0, }, // 032 Space
{ 0x0, 0x0, 0x79,0x0, 0x0, }, // 033 !
{ 0x0, 0x70,0x0, 0x70,0x0, }, // 034 "
{ 0x14,0x7F,0x14,0x7F,0x14,}, // 035 Hash mark
{ 0x24,0x2A,0x7F,0x2A,0x12,}, // 036 $
{ 0x23,0x13,0x08,0x64,0x62,}, // 037 %
{ 0x05,0x22,0x55,0x49,0x36,}, // 038 &
{ 0x0, 0x0, 0x60,0x50,0x0, }, // 039 '
{ 0x0, 0x41,0x22,0x1c,0x0, }, // 040 (
{ 0x0, 0x1c,0x22,0x41,0x0, }, // 041 )
{ 0x14,0x08,0x3E,0x08,0x14,}, // 042 *
{ 0x08,0x08,0x3E,0x08,0x08,}, // 043 +
{ 0x0, 0x0, 0x06,0x05,0x0, }, // 044 ,
{ 0x08,0x08,0x08,0x08,0x08,}, // 045 -
{ 0x0, 0x0, 0x03,0x03,0x0, }, // 046 .
{ 0x20,0x10,0x08,0x04,0x02,}, // 047 forward slash
{ 0x3E,0x51,0x49,0x45,0x3E,}, // 048 0
{ 0x0, 0x01,0x7f,0x21,0x0, }, // 049 1
{ 0x31,0x49,0x45,0x43,0x21,}, // 050 2
{ 0x46,0x69,0x51,0x41,0x42,}, // 051 3
{ 0x04,0x7F,0x24,0x14,0x0C,}, // 052 4
{ 0x4E,0x51,0x51,0x51,0x72,}, // 053 5
{ 0x06,0x49,0x49,0x29,0x1E,}, // 054 6
{ 0x60,0x50,0x48,0x47,0x40,}, // 055 7
{ 0x36,0x49,0x49,0x49,0x36,}, // 056 8
{ 0x3C,0x4A,0x49,0x49,0x30,}, // 057 9
{ 0x0, 0x0, 0x36,0x36,0x0, }, // 058 :
{ 0x0, 0x0, 0x36,0x35,0x0, }, // 059 ;
{ 0x0, 0x41,0x22,0x14,0x08,}, // 060 <
{ 0x14,0x14,0x14,0x14,0x14,}, // 061 =
{ 0x08,0x14,0x22,0x41,0x0, }, // 062 >
{ 0x30,0x48,0x45,0x40,0x20,}, // 063 ?
{ 0x3C,0x55,0x5D,0x41,0x3E,}, // 064 @
{ 0x3F,0x48,0x48,0x48,0x3F,}, // 065 A
{ 0x36,0x49,0x49,0x49,0x7F,}, // 066 B
{ 0x22,0x41,0x41,0x41,0x3E,}, // 067 C
{ 0x1C,0x22,0x41,0x41,0x7F,}, // 068 D
{ 0x41,0x49,0x49,0x49,0x7F,}, // 069 E
{ 0x40,0x48,0x48,0x48,0x7F,}, // 070 F
{ 0x2F,0x49,0x49,0x41,0x3E,}, // 071 G
{ 0x7F,0x08,0x08,0x08,0x7F,}, // 072 H
{ 0x0, 0x41,0x7f,0x41,0x0, }, // 073 I
{ 0x40,0x7E,0x41,0x01,0x02,}, // 074 J
{ 0x41,0x22,0x14,0x08,0x7F,}, // 075 K
{ 0x01,0x01,0x01,0x01,0x7F,}, // 076 L
{ 0x7F,0x20,0x18,0x20,0x7F,}, // 077 M
{ 0x7F,0x04,0x08,0x10,0x7F,}, // 078 N
{ 0x3E,0x41,0x41,0x41,0x3E,}, // 079 O
{ 0x30,0x48,0x48,0x48,0x7F,}, // 080 P
{ 0x3D,0x42,0x45,0x41,0x3E,}, // 081 Q
{ 0x31,0x4A,0x4C,0x48,0x7F,}, // 082 R
{ 0x26,0x49,0x49,0x49,0x32,}, // 083 S
{ 0x40,0x40,0x7F,0x40,0x40,}, // 084 T
{ 0x7F,0x01,0x01,0x01,0x7F,}, // 085 U
{ 0x7C,0x02,0x01,0x02,0x7C,}, // 086 V
{ 0x7E,0x01,0x0E,0x01,0x7E,}, // 087 W
{ 0x63,0x14,0x08,0x14,0x63,}, // 088 X
{ 0x70,0x08,0x07,0x08,0x70,}, // 089 Y
{ 0x61,0x51,0x49,0x45,0x43,}, // 090 Z
{ 0x0, 0x44,0x41,0x7f,0x0, }, // 091 [
{ 0x02,0x04,0x08,0x10,0x20,}, // 092 back slash
{ 0x0, 0x7f,0x41,0x41,0x0, }, // 093 ]
{ 0x10,0x20,0x40,0x20,0x10,}, // 094 ^
{ 0x01,0x01,0x01,0x01,0x01,}, // 095 _
{ 0x0, 0x50,0x60,0x0, 0x0, }, // 096 `
{ 0x0F,0x15,0x15,0x15,0x02,}, // 097 a
{ 0x0E,0x11,0x11,0x11,0x7F,}, // 098 b
{ 0x11,0x11,0x11,0x11,0x0E,}, // 099 c
{ 0x7F,0x11,0x11,0x11,0x0E,}, // 100 d
{ 0x0C,0x15,0x15,0x15,0x0E,}, // 101 e
{ 0x50,0x50,0x3F,0x10,0x10,}, // 102 f
{ 0x1E,0x15,0x15,0x15,0x08,}, // 103 g
{ 0x0F,0x10,0x10,0x08,0x7F,}, // 104 h
{ 0x0, 0x01,0x5f,0x11,0x0, }, // 105 i
{ 0x0, 0x5e,0x11,0x01,0x02,}, // 106 j
{ 0x0, 0x11,0x0a,0x04,0x7f,}, // 107 k
{ 0x0, 0x01,0x7f,0x41,0x0, }, // 108 l
{ 0x0F,0x10,0x1F,0x10,0x1F,}, // 109 m
{ 0x0F,0x10,0x10,0x08,0x1F,}, // 110 n
{ 0x0E,0x11,0x11,0x11,0x0E,}, // 111 o
{ 0x08,0x14,0x14,0x14,0x1F,}, // 112 p
{ 0x1F,0x14,0x14,0x14,0x08,}, // 113 q
{ 0x0, 0x10,0x10,0x08,0x1f,}, // 114 r
{ 0x12,0x15,0x15,0x15,0x09,}, // 115 s
{ 0x11,0x11,0x7E,0x10,0x10,}, // 116 t
{ 0x1F,0x02,0x01,0x01,0x1E,}, // 117 u
{ 0x1C,0x02,0x01,0x02,0x1C,}, // 118 v
{ 0x1E,0x01,0x06,0x01,0x1E,}, // 119 w
{ 0x11,0x0A,0x04,0x0A,0x11,}, // 120 x
{ 0x1E,0x05,0x05,0x05,0x18,}, // 121 y
{ 0x11,0x19,0x15,0x13,0x11,}, // 122 z
{ 0x0, 0x41,0x41,0x36,0x08,}, // 123 {
{ 0x0, 0x0, 0x77,0x0, 0x0, }, // 124 |
{ 0x08,0x36,0x41,0x41,0x0, }, // 125 }
{ 0x08,0x1C,0x2A,0x08,0x08,}, // 126 ~
{ 0x08,0x08,0x2A,0x1C,0x08,}, // 127
};
BYTE code pixels[56] = //This array is used in the LC24 algorithm
{ //for the character set
4,3,3,2,2,
1,1,0,0,40,
39,39,38,38,
37,37,36,36,
76,75,75,74,
74,73,73,72,72,36,36,
37,37,38,38,39,39,40,
22,22,21,21,20,20,19,19,18,18,
58,58,57,57,56,56,55,55,54,54,
};
Obviously you would have to work on this to translate it for your specific compiler and MCU type. It is possible to reduce its footprint by only using part of the character set and removing the LC16 or LC24 sections that you do not want.