News:

;) This forum is the property of Proton software developers

Main Menu

Positron8 - Emulating a Nixie Tube on an SSD1331 OLED Display

Started by top204, Apr 23, 2025, 06:45 PM

Previous topic - Next topic

top204

I have just finished an article on my rosetta-tech site to show how to emulate a Nixie tube on an SSD1331 96x64 OLED display, using a single PIC18F27K40 device, and it displays the Nixie digits rather well, but the phone's camera does not do it justice, and flares the display too much.

See the link below:

Emulating a Nixie Tube on an SSD1331 OLED Display

Regards
Les

diebobo

Ooh, beautifull Les ! .. How is the buildup speed ? Is the speed high enough for an eye friendly buildup / screen refresh ? Not sure how to describe it :).. Also tried 6 digit version, speed wize ?

charliecoutas

Very nice Les. I'm trying to think of possible applications for this at the museum. Have you thought about doing the same thing for the Magic Eye valves, like the EM34?

Charlie

top204

Because the code uses the SPI peripheral, operating at its maximum speed, the screen refresh is extremely fast. If more displays were hooked on the single device, each display would need to be refreshed sequentally, and this would slow things down a little, but not by much. If many displays are used, it would be time to move to one of the straightforward 28-pin PIC24 devices. Then quite a few displays could be used.

My thought was to use a single device per Nixie emulator, and by using the BCD demo code mechanism, it will also remove the need for the TTL 7441 BCD to Nixie chip, which are harder to get at sensible prices now.

I sent you a code listing for the Beta version of the EM34 valve emulator using an ST7735 graphic LCD, a few weeks ago Charlie.

I'm busy creating an article for it on my rosetta-tech site.

And, many, many thanks for the EM34 device Charlie. It is very much appreciated, and I am going to get it up and running next week, so I can see it actually move, and maybe put some subtle, random, green colour differences in the emulator, so it gives the valve's green display more reality.

Then I will do articles for the wonderful EM84, and the valve that looks like a fan opening and closing (EM80). Which I have never seen for real moving, but I have seen pictures and movies of one moving.

Regards
Les


charliecoutas

Sorry Les, you did indeed send the code for EM34; I've got so much going on that my head is in a spin.

Charlie

top204

I have been working with a circular CG9A01 240x240 graphic LCD, and they are really good, and very inexpensive, so I have written a library for them, and created a couple of demos to show how they can be used for indicators.

I am busy creating my rosetta-tech page for them, but I thought you might like to see images of the demos.

The first is an EM34 valve (tube) emulator, and it looks really good on the circular LCD, but I wish they made smaller ones as well, instead of only the larger 240x240 types, so that some indicators would look more like their real counter-parts. The LCD is sitting on my bread-board shield I made for my Amicus18 boards, all of those years ago, and still 'fully' operational. It will also sit on one of John's Amicus8 boards, but I only have an Amicus16 board, so I used an Amicus18 board with a PIC18F26K40 device in its socket. Again, still operational and useful after all of these years.


-EM34 - CG9A01-LCD.jpg

And below is an analogue meter emulator on a CG9A01 display, using only a single, '90 pence', PIC18F device, operating at 64MHz, and not a 32-bit processor board that others on the internet seem to think is mandatory to get it working. And it works extremely efficiently and no flicker at all, using only 13K of flash memory, and 274 bytes of RAM, and no crystal! Just the PIC18F device sitting on its own, with a simple SPI interface to the LCD, and a wire leading to the ADC input, so external scaling circuits can be used for current or voltage measurements. :-)

-Meter - CG9A01-LCD.jpg

The meter's dial is created with simple trigonometry, but it could easily be a real image of a meter's dial, held in flash memory, and the needle code added to it, to make it look like a real meter.

As a teaser, below is the EM34 valve emulator firmware code listing. However, it will not compile yet until I release the CG9A01 LCD library code. Which I will do ASAP. I'm rather proud of the firmwares and they work extremely well, and extremely efficiently, and on a single 8-bit, PIC18Fxxxx microcontroller costing very little money, instead of a whopping 32-bit processor board costing a lot more, and here today and gone tomorrow. "BASIC Stamp syndrome", as I call them. :-)

'
'   /\\\\\\\\\
'  /\\\///////\\\
'  \/\\\     \/\\\                                                 /\\\          /\\\
'   \/\\\\\\\\\\\/        /\\\\\     /\\\\\\\\\\     /\\\\\\\\   /\\\\\\\\\\\  /\\\\\\\\\\\  /\\\\\\\\\
'    \/\\\//////\\\      /\\\///\\\  \/\\\//////    /\\\/////\\\ \////\\\////  \////\\\////  \////////\\\
'     \/\\\    \//\\\    /\\\  \//\\\ \/\\\\\\\\\\  /\\\\\\\\\\\     \/\\\         \/\\\        /\\\\\\\\\\
'      \/\\\     \//\\\  \//\\\  /\\\  \////////\\\ \//\\///////      \/\\\ /\\     \/\\\ /\\   /\\\/////\\\
'       \/\\\      \//\\\  \///\\\\\/    /\\\\\\\\\\  \//\\\\\\\\\\    \//\\\\\      \//\\\\\   \//\\\\\\\\/\\
'        \///        \///     \/////     \//////////    \//////////      \/////        \/////     \////////\//
'                                  Let's find out together what makes a PIC Tick!
'
' An EM34 (6U5) 'Magic Eye' valve, digital emulator, using a circular CG9A01 Graphic LCD on a PIC18F26K40 device.
' An ADC input can be used to move the EM34 image on the LCD, or a simulation that creates a random value, and this moves the EM34 image.
'
' Written by Les Johnson for the Positron8 BASIC compiler.
' https://sites.google.com/view/rosetta-tech/home
'
    Device = 18F26K40                                                           ' Tell the compiler what device to compile for
    Declare Xtal = 64                                                           ' Tell the compiler what frequency the device is operating at (in MHz)
    Declare Float_Display_Type = Fast                                           ' Tell the compiler to use the faster Floating Point to ASCII library subroutine
    Declare Auto_Heap_Strings = On                                              ' Make all Strings "Heap" types, so they always get placed after standard variables
    Declare Auto_Variable_Bank_Cross = On                                       ' Make sure all multi-byte variables remain within a single RAM bank
'
' Setup USART1 for debugging
'
    Declare Hserial1_Baud = 9600
    Declare HRSOut1_Pin = PORTC.6
'
' Define the pins used for the CG9A01 LCD display
'
$define CG9A01_CLK_Pin  PORTC.3                                                 ' Connects to the CG9A01 CLK pin (named SCL on some displays)
$define CG9A01_CLK_PPS_Pin Pin_C3                                               ' Define the CLK Pin to use for PPS
$define CG9A01_DTA_Pin  PORTC.5                                                 ' Connects to the CG9A01 DTA pin (named SDI on some displays)
$define CG9A01_DTA_PPS_Pin Pin_C5                                               ' Define the DTA Pin to use for PPS
$define CG9A01_CS_Pin   PORTC.2                                                 ' Connects to the CG9A01 CS pin
$define CG9A01_DC_Pin   PORTC.1                                                 ' Connects to the CG9A01 DC pin (named RS on some displays)
$define CG9A01_RST_Pin  PORTC.0                                                 ' Connects to the CG9A01 Reset pin
$define CG9A01_BLK_Pin  PORTB.0                                                 ' Connects to the CG9A01 BLK (Backlight) pin
'
' Setup the ADC input pin and SFR
'
$define ADC_Pin PORTA.0                                                         ' The pin to use for the ADC input
$define ADC_SFR ANSELA.0                                                        ' The ADC analogue SFR and bit, for the Port and Pin used
$define ADC_Pin_Analogue() ADC_SFR = 1                                          ' Set the ADC channel pin as analogue
$define ADC_Pin_Digital()  ADC_SFR = 0                                          ' Set the ADC channel pin as digital

    Include "CG9A01.inc"                                                        ' Load the CG9A01 library into the program
    Include "HSPI_K40.inc"                                                      ' Load the SPI peripheral library into the program
'
' Convert an RGB888 value into an RGB565 value
'
$define RGB565(r,g,b) $eval ((((r) >> 3) & 0x1F) << 11) | ((((g) >> 2) & 0x3F) << 5) | (((b) >> 3) & 0x1F)

$define cBRIGHT_GREEN RGB565(0, 255, 100)                                       ' Holds the RGB565 value for bright green
$define cMEDIUM_GREEN RGB565(0, 220, 60)                                        ' Holds the RGB565 value for medium green
$define cDARK_GREEN   RGB565(0, 80, 35)                                         ' Holds the RGB565 value for dark green

$define cEM34_CENTER_X     $eval (cCG9A_Width / 2)                              ' Holds the centre X position of the EM34 image
$define cEM34_CENTER_Y     $eval (cCG9A_Height / 2)                             ' Holds the centre Y position of the EM34 image
$define cEM34_OUTER_RADIUS 100                                                  ' Holds the outer radius of the EM34 image
$define cEM34_INNER_RADIUS 42                                                   ' Holds the inner radius of the EM34 image
'
' Create variables here
'
    Dim EM34_wColour As Word                                                    ' Holds the oolours of the EM34 display
    Dim wADC_Raw     As Word = 0                                                ' Holds the 10-bit ADC value

'-------------------------------------------------------------------------------------------------------
' The main program starts here
' Read the ADC on PORTA.0, and display the value on the Graphic LCD as an EM34 image.
' Or Simulate an ADC value moving with a random value, and display the value on the Graphic LCD as an EM34 image.
'
Main:
    Setup()                                                                     ' Setup the program and peripherals
    Do                                                                          ' Create a loop
        'wADC_Raw = ADC_Read10(0)                                               ' Read the 10-bit ADC (Comment out if not using the ADC for the input)
        wADC_Raw = ((Random) // 1024)                                           ' Use this code if not using the ADC input. It will create a random value between 0 and 1023
        EM34_Display(wADC_Raw)                                                  ' Display the ADC value on the LCD as an EM34 valve
        DelayMS 40                                                              ' Create a delay so the valve does not move too fast
    Loop                                                                        ' Do it forever

'-------------------------------------------------------------------------------------------------------
' Setup the program and peripherals
' Input     : None
' Output    : None
' Notes     : None
'
Proc Setup()
    Clear                                                                       ' Clear all user RAM before the program starts
'
' Setup the SPI1 peripheral (if used)
'
$ifndef _cSOFTWARE_SPI_                                                         ' Is the CG9A01 library using bit-bashed SPI routines?
    PPS_Unlock()                                                                ' No. So Unlock the PPS for the SPI peripheral
    Set_PPSForSCK1(CG9A01_CLK_PPS_Pin)                                          ' Setup the SPI1 peripheral's PPS, CLK for the LCD's SCK pin
    Set_PPSForSDO1(CG9A01_DTA_PPS_Pin)                                          ' Setup the SPI1 peripheral's PPS, SDO pin for the LCD's DTA pin
    Set_PPSForSDI1(Pin_C4)                                                      ' Setup the SPI1 peripheral's PPS, SDI pin (not used but needs to be setup)
    HSPI1_Init_Mode0_MaxMHz()                                                   ' Setup the SPI1 peripheral to operate in Mode 0 at its fastest speed
$endif
    GLCD_Init()                                                                 ' Initialise the CG9A01 LCD
    GLCD_Rotate(0)                                                              ' Rotate the display
    ADC_Pin_Analogue()                                                          ' Set the ADC channel pin as analogue
    GLCD_Cls(clBlack)                                                           ' Clear the master LCD, with a black background
    ADC_Setup()                                                                 ' Setup the ADC peripheral
    EM34_Init()                                                                 ' Draw the initial EM34 image before moving it
EndProc

'-------------------------------------------------------------------------------------------------------
' Draw the initial EM34 image before moving it
' Input     : None
' Output    : None
' Notes     : None
'
Proc EM34_Init()
    Dim wAngle As Word
'
' Extinguish the LCD's backlight
' So that it does not show the initial circle being drawn
'
    PinLow CG9A01_BLK_Pin
    For wAngle = 46 To 314                                                      ' \
        Draw_AngleLine(wAngle, cMEDIUM_GREEN)                                   ' | Draw the top curve of the glowing display
    Next                                                                        ' /
    For wAngle = 316 To 403                                                     ' \
        Draw_AngleLine(wAngle, cDARK_GREEN)                                     ' | Draw the background curve of the glowing display
    Next                                                                        ' /
    Draw_AngleLine(315, cBRIGHT_GREEN)                                          ' \ Draw the bright lines at the ends of the moving display
    Draw_AngleLine(45, cBRIGHT_GREEN)                                           ' /
    PinHigh CG9A01_BLK_Pin                                                      ' Illuminate the LCD's backlight
EndProc

'-------------------------------------------------------------------------------------------------------
' Draw the display image of the EM34 on the Graphic LCD
' Input     : pADC_Value holds the 10-bit ADC value
' Output    : None
' Notes     : None
'
Proc EM34_Display(pADC_Value As Word)
    Dim bPrevMoveAngle As Byte
    Dim bNewMoveAngle  As Byte
    Dim fADC_Filtered  As Float
    Dim fLogValue      As Float
    Dim fTemp1         As Float
    Dim fTemp2         As Float
    Dim bLineAngle     As fLogValue.Byte0

    fADC_Filtered = (fADC_Filtered * 9.0) + pADC_Value                          ' \
    fADC_Filtered = fADC_Filtered / 10.0                                        ' | ADC value filtering and mapping to display angle
    fLogValue = Log10(fADC_Filtered + 1)                                        ' /
    fTemp1 = fADC_Filtered / 11                                                 ' \
    fTemp2 = fLogValue * 15.0                                                   ' | Faster equivalent to: bNewMoveAngle = ((fADC_Filtered / 11) + (15.0 * fLogValue)) / 3
    bNewMoveAngle = (fTemp1 + fTemp2) / 3                                       ' /
    If bNewMoveAngle > 45 Then                                                  ' \
        bNewMoveAngle = 45                                                      ' | Make sure the value remains between 0 to 45
    EndIf                                                                       ' /
'
' Update the Display
'
    If bNewMoveAngle > 0 Then                                                   ' Is there a value to display?
        If bNewMoveAngle > bPrevMoveAngle Then                                  ' Yes. So is bNewMoveAngle greater than bPrevMoveAngle?
            For bLineAngle = bPrevMoveAngle To bNewMoveAngle - 1                ' \
                Draw_AngleLine(315 + bLineAngle, cMEDIUM_GREEN)                 ' | Yes. So display the moving light
                Draw_AngleLine(405 - bLineAngle, cMEDIUM_GREEN)                 ' /
            Next
        Else                                                                    ' Otherwise...
            For bLineAngle = bPrevMoveAngle DownTo bNewMoveAngle + 1            ' \
                Draw_AngleLine(315 + bLineAngle, cDARK_GREEN)                   ' | Erase the moving light
                Draw_AngleLine(405 - bLineAngle, cDARK_GREEN)                   ' /
            Next
        EndIf
        Draw_AngleLine(315 + bNewMoveAngle, cBRIGHT_GREEN)                      ' \ Draw the brighter lines on the two moving lights
        Draw_AngleLine(405 - bNewMoveAngle, cBRIGHT_GREEN)                      ' /
    EndIf
    bPrevMoveAngle = bNewMoveAngle
EndProc

'-------------------------------------------------------------------------------------------------------
' Draw a line at an angle
' Input     : pAngle holds the angle of the line in degrees
'           : pColour holds the colour of the line to draw
'           : Constant: cEM34_INNER_RADIUS holds the starting position of the line
'           : Constant: cEM34_OUTER_RADIUS holds the ending position of the line
'           : Constants: cEM34_CENTER_X and cEM34_CENTER_Y holds the X and Y positions for the inner start of a line
' Output    : None
' Notes     : Uses a faster implementation of a line draw code
'           : And uses flash memory tables for Sine and Cosine values for extra speed
'
Proc Draw_AngleLine(pAngle As Word, pColour As EM34_wColour)
    Dim fSinVal    As Float                                                     ' Holds the Sine value read from the flash memory table
    Dim fCosVal    As Float                                                     ' Holds the Cosine value read from the flash memory table
    Dim wXpos      As fSinVal.Word0
    Dim wYpos      As fSinVal.Word1
    Dim wErr       As fCosVal.Word0
    Dim wYstep     As fCosVal.SWord1
    Dim tSteep     As Bit = 0
    Dim wStartXpos As Word
    Dim wStartYpos As Word
    Dim wEndXpos   As Word
    Dim wEndYpos   As Word
    Dim wTemp1     As SWord
    Dim wTemp2     As SWord

    fSinVal = CRead32 fAngleSine_Table[pAngle]                                  ' Read the Sine value from the flash memory table
    fCosVal = CRead32 fAngleCos_Table[pAngle]                                   ' Read the Cosine value from the flash memory table
    wStartXpos = cEM34_CENTER_X + (fSinVal * cEM34_INNER_RADIUS)                ' Find the X start position of the line
    wStartYpos = cEM34_CENTER_Y + (fCosVal * cEM34_INNER_RADIUS)                ' Find the Y start position of the line
    wEndXpos   = cEM34_CENTER_X + (fSinVal * cEM34_OUTER_RADIUS)                ' Find the X end position of the line
    wEndYpos   = cEM34_CENTER_Y + (fCosVal * cEM34_OUTER_RADIUS)                ' Find the Y end position of the line

    wTemp1 = wEndYpos - wStartYpos
    wTemp2 = wEndXpos - wStartXpos
    wTemp1 = Abs(wTemp1)
    wTemp2 = Abs(wTemp2)
    If wTemp1 > wTemp2 Then
        tSteep = 1
        Swap(wStartXpos, wStartYpos)
        Swap(wEndXpos, wEndYpos)
    EndIf
    If wStartXpos > wEndXpos Then
        Swap(wStartXpos, wEndXpos)
        Swap(wStartYpos, wEndYpos)
    EndIf
    wXpos = wEndXpos - wStartXpos
    wYpos = Abs(wEndYpos - wStartYpos)
    wErr = wXpos / 2
    wYstep = -1
    If wStartYpos < wEndYpos Then
        wYstep = 1
    EndIf
    Repeat
        If tSteep = 1 Then
            GLCD_Pixel(wStartYpos, wStartXpos, pColour)
        Else
            GLCD_Pixel(wStartXpos, wStartYpos, pColour)
        EndIf
        wErr = wErr - wYpos
        If wErr < 0 Then
            wStartYpos = wStartYpos + wYstep
            wErr = wErr + wXpos
        EndIf
        Inc wStartXpos
    Until wStartXpos > wEndXpos
'
' A Flash memory table of floating point Sine values used for the Angle calculation
'
    Dim fAngleSine_Table As FlashF = {-0.00000, 0.01745, 0.03489, 0.05233, 0.06975, 0.08715, 0.10452, 0.12186, 0.13917, 0.15643,
                                      0.17364, 0.19080, 0.20791, 0.22495, 0.24192, 0.25881, 0.27563, 0.29237, 0.30901, 0.32556,
                                      0.34202, 0.35836, 0.37460, 0.39073, 0.40673, 0.42261, 0.43837, 0.45399, 0.46947, 0.48480,
                                      0.50000, 0.51503, 0.52991, 0.54463, 0.55919, 0.57357, 0.58778, 0.60181, 0.61566, 0.62932,
                                      0.64278, 0.65605, 0.66913, 0.68199, 0.69465, 0.70710, 0.71934, 0.73135, 0.74314, 0.75470,
                                      0.76604, 0.77714, 0.78801, 0.79863, 0.80901, 0.81915, 0.82903, 0.83867, 0.84804, 0.85716,
                                      0.86602, 0.87461, 0.88294, 0.89100, 0.89879, 0.90630, 0.91354, 0.92050, 0.92718, 0.93358,
                                      0.93969, 0.94551, 0.95105, 0.95630, 0.96126, 0.96592, 0.97029, 0.97437, 0.97814, 0.98162,
                                      0.98480, 0.98768, 0.99026, 0.99254, 0.99452, 0.99619, 0.99756, 0.99862, 0.99939, 0.99984,
                                      1.00000, 0.99984, 0.99939, 0.99862, 0.99756, 0.99619, 0.99452, 0.99254, 0.99026, 0.98768,
                                      0.98480, 0.98162, 0.97814, 0.97436, 0.97029, 0.96592, 0.96126, 0.95630, 0.95105, 0.94551,
                                      0.93969, 0.93358, 0.92718, 0.92050, 0.91354, 0.90630, 0.89879, 0.89100, 0.88294, 0.87461,
                                      0.86602, 0.85716, 0.84804, 0.83867, 0.82903, 0.81915, 0.80901, 0.79863, 0.78801, 0.77714,
                                      0.76604, 0.75470, 0.74314, 0.73135, 0.71933, 0.70710, 0.69465, 0.68199, 0.66913, 0.65605,
                                      0.64278, 0.62931, 0.61566, 0.60181, 0.58778, 0.57357, 0.55919, 0.54463, 0.52991, 0.51503,
                                      0.49999, 0.48480, 0.46947, 0.45398, 0.43837, 0.42261, 0.40673, 0.39073, 0.37460, 0.35836,
                                      0.34201, 0.32556, 0.30901, 0.29237, 0.27563, 0.25881, 0.24192, 0.22494, 0.20791, 0.19080,
                                      0.17364, 0.15643, 0.13917, 0.12186, 0.10452, 0.08715, 0.06975, 0.05233, 0.03489, 0.01745,
                                      -0.00000, -0.01745, -0.03490, -0.05233, -0.06975, -0.08715, -0.10452, -0.12187, -0.13917, -0.15643,
                                      -0.17364, -0.19081, -0.20791, -0.22495, -0.24192, -0.25882, -0.27563, -0.29237, -0.30901, -0.32556,
                                      -0.34202, -0.35836, -0.37460, -0.39073, -0.40673, -0.42261, -0.43837, -0.45399, -0.46947, -0.48481,
                                      -0.50000, -0.51503, -0.52992, -0.54464, -0.55919, -0.57357, -0.58778, -0.60181, -0.61566, -0.62932,
                                      -0.64278, -0.65606, -0.66913, -0.68199, -0.69465, -0.70710, -0.71934, -0.73135, -0.74314, -0.75471,
                                      -0.76604, -0.77714, -0.78801, -0.79863, -0.80901, -0.81915, -0.82903, -0.83867, -0.84804, -0.85716,
                                      -0.86602, -0.87462, -0.88294, -0.89100, -0.89879, -0.90630, -0.91354, -0.92050, -0.92718, -0.93358,
                                      -0.93969, -0.94551, -0.95105, -0.95630, -0.96126, -0.96592, -0.97029, -0.97437, -0.97814, -0.98162,
                                      -0.98480, -0.98768, -0.99026, -0.99254, -0.99452, -0.99619, -0.99756, -0.99862, -0.99939, -0.99984,
                                      -1.00000, -0.99984, -0.99939, -0.99862, -0.99756, -0.99619, -0.99452, -0.99254, -0.99026, -0.98768,
                                      -0.98480, -0.98162, -0.97814, -0.97436, -0.97029, -0.96592, -0.96126, -0.95630, -0.95105, -0.94551,
                                      -0.93969, -0.93357, -0.92718, -0.92050, -0.91354, -0.90630, -0.89879, -0.89100, -0.88294, -0.87461,
                                      -0.86602, -0.85716, -0.84804, -0.83866, -0.82903, -0.81915, -0.80901, -0.79863, -0.78800, -0.77714,
                                      -0.76604, -0.75470, -0.74314, -0.73135, -0.71933, -0.70710, -0.69465, -0.68199, -0.66912, -0.65605,
                                      -0.64278, -0.62931, -0.61565, -0.60181, -0.58778, -0.57357, -0.55919, -0.54463, -0.52991, -0.51503,
                                      -0.49999, -0.48480, -0.46946, -0.45398, -0.43836, -0.42261, -0.40673, -0.39072, -0.37460, -0.35836,
                                      -0.34201, -0.32556, -0.30901, -0.29236, -0.27563, -0.25881, -0.24191, -0.22494, -0.20790, -0.19080,
                                      -0.17364, -0.15643, -0.13917, -0.12186, -0.10452, -0.08715, -0.06975, -0.05233, -0.03489, -0.01744,
                                      0.00000, 0.01745, 0.03490, 0.05233, 0.06975, 0.08715, 0.10453, 0.12187, 0.13917, 0.15643,
                                      0.17365, 0.19081, 0.20791, 0.22495, 0.24192, 0.25882, 0.27564, 0.29237, 0.30901, 0.32557,
                                      0.34202, 0.35837, 0.37460, 0.39073, 0.40673, 0.42262, 0.43837, 0.45399, 0.46947, 0.48481,
                                      0.50000, 0.51504, 0.52992, 0.54464, 0.55919, 0.57357, 0.58778, 0.60181, 0.61566, 0.62932,
                                      0.64278, 0.65606, 0.66913, 0.68200, 0.69466, 0.70710, 0.71934, 0.73135, 0.74314, 0.75471,
                                      0.76604, 0.77714, 0.78801, 0.79863, 0.80901, 0.81915, 0.82903, 0.83867, 0.84804, 0.85716}
'
' A Flash memory table of floating point Cosine values used for the Angle calculation
'
    Dim fAngleCos_Table As FlashF = {1.00000, 0.99984, 0.99939, 0.99862, 0.99756, 0.99619, 0.99452, 0.99254, 0.99026, 0.98768,
                                     0.98480, 0.98162, 0.97814, 0.97437, 0.97029, 0.96592, 0.96126, 0.95630, 0.95105, 0.94551,
                                     0.93969, 0.93358, 0.92718, 0.92050, 0.91354, 0.90630, 0.89879, 0.89100, 0.88294, 0.87461,
                                     0.86602, 0.85716, 0.84804, 0.83867, 0.82903, 0.81915, 0.80901, 0.79863, 0.78801, 0.77714,
                                     0.76604, 0.75470, 0.74314, 0.73135, 0.71933, 0.70710, 0.69465, 0.68199, 0.66913, 0.65605,
                                     0.64278, 0.62932, 0.61566, 0.60181, 0.58778, 0.57357, 0.55919, 0.54463, 0.52991, 0.51503,
                                     0.49999, 0.48480, 0.46947, 0.45399, 0.43837, 0.42261, 0.40673, 0.39073, 0.37460, 0.35836,
                                     0.34201, 0.32556, 0.30901, 0.29237, 0.27563, 0.25881, 0.24192, 0.22495, 0.20791, 0.19080,
                                     0.17364, 0.15643, 0.13917, 0.12186, 0.10452, 0.08715, 0.06975, 0.05233, 0.03489, 0.01745,
                                     -0.00000, -0.01745, -0.03490, -0.05233, -0.06975, -0.08715, -0.10452, -0.12187, -0.13917, -0.15643,
                                     -0.17364, -0.19080, -0.20791, -0.22495, -0.24192, -0.25881, -0.27563, -0.29237, -0.30901, -0.32556,
                                     -0.34202, -0.35836, -0.37460, -0.39073, -0.40673, -0.42261, -0.43837, -0.45399, -0.46947, -0.48481,
                                     -0.50000, -0.51503, -0.52992, -0.54463, -0.55919, -0.57357, -0.58778, -0.60181, -0.61566, -0.62932,
                                     -0.64278, -0.65605, -0.66913, -0.68199, -0.69465, -0.70710, -0.71934, -0.73135, -0.74314, -0.75471,
                                     -0.76604, -0.77714, -0.78801, -0.79863, -0.80901, -0.81915, -0.82903, -0.83867, -0.84804, -0.85716,
                                     -0.86602, -0.87462, -0.88294, -0.89100, -0.89879, -0.90630, -0.91354, -0.92050, -0.92718, -0.93358,
                                     -0.93969, -0.94551, -0.95105, -0.95630, -0.96126, -0.96592, -0.97029, -0.97437, -0.97814, -0.98162,
                                     -0.98480, -0.98768, -0.99026, -0.99254, -0.99452, -0.99619, -0.99756, -0.99862, -0.99939, -0.99984,
                                     -1.00000, -0.99984, -0.99939, -0.99862, -0.99756, -0.99619, -0.99452, -0.99254, -0.99026, -0.98768,
                                     -0.98480, -0.98162, -0.97814, -0.97436, -0.97029, -0.96592, -0.96126, -0.95630, -0.95105, -0.94551,
                                     -0.93969, -0.93357, -0.92718, -0.92050, -0.91354, -0.90630, -0.89879, -0.89100, -0.88294, -0.87461,
                                     -0.86602, -0.85716, -0.84804, -0.83866, -0.82903, -0.81915, -0.80901, -0.79863, -0.78800, -0.77714,
                                     -0.76604, -0.75470, -0.74314, -0.73135, -0.71933, -0.70710, -0.69465, -0.68199, -0.66912, -0.65605,
                                     -0.64278, -0.62931, -0.61566, -0.60181, -0.58778, -0.57357, -0.55919, -0.54463, -0.52991, -0.51503,
                                     -0.49999, -0.48480, -0.46946, -0.45398, -0.43836, -0.42261, -0.40673, -0.39072, -0.37460, -0.35836,
                                     -0.34201, -0.32556, -0.30901, -0.29237, -0.27563, -0.25881, -0.24192, -0.22494, -0.20791, -0.19080,
                                     -0.17364, -0.15643, -0.13917, -0.12186, -0.10452, -0.08715, -0.06975, -0.05233, -0.03489, -0.01745,
                                     0.00000, 0.01745, 0.03490, 0.05233, 0.06975, 0.08715, 0.10453, 0.12187, 0.13917, 0.15643,
                                     0.17365, 0.19081, 0.20791, 0.22495, 0.24192, 0.25882, 0.27563, 0.29237, 0.30901, 0.32557,
                                     0.34202, 0.35837, 0.37460, 0.39073, 0.40673, 0.42262, 0.43837, 0.45399, 0.46947, 0.48481,
                                     0.50000, 0.51503, 0.52992, 0.54464, 0.55919, 0.57357, 0.58778, 0.60181, 0.61566, 0.62932,
                                     0.64278, 0.65606, 0.66913, 0.68200, 0.69466, 0.70710, 0.71934, 0.73135, 0.74314, 0.75471,
                                     0.76604, 0.77714, 0.78801, 0.79863, 0.80901, 0.81915, 0.82903, 0.83867, 0.84804, 0.85716,
                                     0.86602, 0.87462, 0.88294, 0.89100, 0.89879, 0.90630, 0.91354, 0.92050, 0.92718, 0.93358,
                                     0.93969, 0.94551, 0.95105, 0.95630, 0.96126, 0.96592, 0.97029, 0.97437, 0.97814, 0.98162,
                                     0.98480, 0.98768, 0.99026, 0.99254, 0.99452, 0.99619, 0.99756, 0.99862, 0.99939, 0.99984,
                                     1.00000, 0.99984, 0.99939, 0.99862, 0.99756, 0.99619, 0.99452, 0.99254, 0.99026, 0.98768,
                                     0.98480, 0.98162, 0.97814, 0.97436, 0.97029, 0.96592, 0.96126, 0.95630, 0.95105, 0.94551,
                                     0.93969, 0.93357, 0.92718, 0.92050, 0.91354, 0.90630, 0.89879, 0.89100, 0.88294, 0.87461,
                                     0.86602, 0.85716, 0.84804, 0.83866, 0.82903, 0.81915, 0.80901, 0.79863, 0.78800, 0.77714,
                                     0.76604, 0.75470, 0.74314, 0.73135, 0.71933, 0.70710, 0.69465, 0.68199, 0.66912, 0.65605,
                                     0.64278, 0.62931, 0.61565, 0.60181, 0.58778, 0.57357, 0.55919, 0.54463, 0.52991, 0.51503}
EndProc

'------------------------------------------------------------------------------------------------------------
' Draw 4 pixels on the display
' Input     : pXpos holds the X position
'           : pYpos holds the Y position
'           : pColour holds the 16-bit RGB565 Colour
' Output    : None
' Notes     : Uses the low-level access to the CG9A01 LCD to create a window and write pixels, for faster operation
'
Proc GLCD_Pixel(pXpos As Word, pYpos As Word, pColour As EM34_wColour)
'
' Set the X coordinates for the pixels
'
    CG9A_hWriteCommand(cCG9A_COL_ADDR_SET)
    CG9A_hWriteData(0)                                              ' X Start high byte
    CG9A_hWriteData(pXpos)                                          ' X Start low byte
    CG9A_hWriteData(0)                                              ' X End high byte
    CG9A_hWriteData(pXpos + 1)                                      ' X End low byte
'
' Set the Y coordinates for the pixels
'
    CG9A_hWriteCommand(cCG9A_ROW_ADDR_SET)
    CG9A_hWriteData(0)                                              ' Y Start high byte
    CG9A_hWriteData(pYpos)                                          ' Y Start low byte
    CG9A_hWriteData(0)                                              ' Y End high byte
    CG9A_hWriteData(pYpos + 1)                                      ' Y End low byte
    CG9A_hWriteCommand(cCG9A_MEM_WR)                                ' Put the LCD in memory write mode
    CG9A_Data_Mode()                                                ' Set the CG9A01 to data mode
'
' Write the pixels to the LCD
'
    CG9A_SPI_Start()                                                ' Start the CG9A01 SPI interface
    CG9A_hWrite16(pColour)                                          ' Write the 16-bit RGB565 pixel colour to the display
    CG9A_hWrite16(pColour)                                          ' Write the 16-bit RGB565 pixel colour to the display
    CG9A_hWrite16(pColour)                                          ' Write the 16-bit RGB565 pixel colour to the display
    CG9A_hWrite16(pColour)                                          ' Write the 16-bit RGB565 pixel colour to the display
    CG9A_SPI_Finish()                                               ' Finish the SPI interface
EndProc

'------------------------------------------------------------------------------------------------------------
' Setup the ADC peripheral on a PIC18FxxK40 device
' Input     : None
' Output    : None
' Notes     : Set for 10-bit operation
'
Proc ADC_Setup()
    ADLTHL  = %00000000
    ADLTHH  = %00000000
    ADUTHL  = %00000000
    ADUTHH  = %00000000
    ADSTPTL = %00000000
    ADSTPTH = %00000000
    ADRPT   = %00000000
    ADPCH   = %00000000
    ADCAP   = %00000000
    ADCON0  = %10000100                                                 ' Right justify for 10-bit operation, ADON enabled, ADCS is ADCLK
    ADCON1  = %00000000                                                
    ADCON2  = %00000000                                                
    ADCON3  = %00000000                                                
    ADSTAT  = %00000000                                               
    ADREF   = %00000000                                                 ' ADNREF is VSS, ADPREF is VDD
    ADACT   = %00000000                                               
    ADCLK   = %00001111                                                 ' fOSC/32 (FOSC / (2 * (n + 1)))
    ADACQ   = %00000000
EndProc

'------------------------------------------------------------------------------------------------------------
' Read the ADC on a PIC18FxxK40 device
' Input     : pChan holds the ADC channel to read
' Output    : Returns the 10-bit ADC value
' Notes     : Requires the ADFM bit set for right justified 10-bit operation
'
Proc ADC_Read10(pChan As WREG), Word
    ADPCH = pChan                                                       ' Load the channel into the relevant SFR
    ADCON0bits_ADON = 1                                                 ' Enable the ADC
    DelayUS 100                                                         ' A delay before sampling
    ADCON0bits_GO_DONE = 1                                              ' \
    Repeat : Until ADCON0bits_GO_DONE = 0                               ' / Start a sample and wait for it to finish
    Result.Byte1 = ADRESH                                               ' \
    Result.Byte0 = ADRESL                                               ' / Return the sample value
EndProc

'------------------------------------------------------------------------------------------------------------
' Setup the config fuses to use the internal oscillator at 64MHz on PIC18FxxK40 devices
' With pins RA6 and RA7 as general purpose I/O
'
Config_Start
    RSTOSC = HFINTOSC_64MHZ                                             ' HFINTOSC with HFFRQ = 64MHz and CDIV = 1:1
    FEXTOSC = Off                                                       ' External Oscillator not enabled
    WDTE = Off                                                          ' Watchdog Timer disabled
    CLKOUTEN = Off                                                      ' CLKOUT function is disabled
    CSWEN = On                                                          ' Writing to NOSC and NDIV is allowed
    FCMEN = Off                                                         ' Fail-Safe Clock Monitor disabled
    MCLRE = EXTMCLR                                                     ' If LVP = 0, MCLR pin is MCLR. If LVP = 1. RE3 pin function is MCLR
    PWRTE = On                                                          ' Power up timer enabled
    LPBOREN = Off                                                       ' ULPBOR disabled
    BOREN = Off                                                         ' Brown-out disabled
    BORV = VBOR_245                                                     ' Brown-out Reset Voltage (VBOR) set to 2.45V
    ZCD = Off                                                           ' ZCD disabled. ZCD can be enabled by setting the ZCDSEN bit of ZCDCON
    PPS1WAY = Off                                                       ' PPSLOCK bit can be set and cleared repeatedly (After the unlock sequence)
    STVREN = Off                                                        ' Stack full/underflow will not cause Reset
    Debug = Off                                                         ' Background debugger disabled
    XINST = Off                                                         ' Extended Instruction Set and Indexed Addressing Mode disabled
    SCANE = Off                                                         ' Scanner module is Not available for use. SCANMD bit is ignored
    LVP = Off                                                           ' Low Voltage programming disabled
    WDTCPS = WDTCPS_2                                                   ' Watchdog Divider Ratio 1:128 (4 milliseconds)
    WDTCWS = WDTCWS_7                                                   ' Watchdog Window always open (100%). Software control. Keyed access not required
    WDTCCS = LFINTOSC                                                   ' WDT reference clock is the 31.2kHz HFINTOSC output
    WRT0 = Off                                                          ' Block 0 (000800-001FFF) not write-protected
    WRT1 = Off                                                          ' Block 1 (002000-003FFF) not write-protected
    WRTC = Off                                                          ' Configuration registers (300000-30000B) not write-protected
    WRTB = Off                                                          ' Boot Block (000000-0007FF) write-protected
    WRTD = Off                                                          ' Data EEPROM not write-protected
    Cp = Off                                                            ' User NVM code protection disabled
    CPD = Off                                                           ' Data NVM code protection disabled
    EBTR0 = Off                                                         ' Block 0 (000800-001FFF) not protected from table reads executed in other blocks
    EBTR1 = Off                                                         ' Block 1 (002000-003FFF) not protected from table reads executed in other blocks
    EBTRB = Off                                                         ' Boot Block (000000-0007FF) not protected from table reads executed in other blocks
Config_End

RGV250

Hi Les,
Really looking forward to the library code, I have one of those displays and I got so far but I think I struggled somewhere.
I plan to replace the temperature gauge on my RGV250 with it.

Bob

trastikata

Quote from: top204 on Apr 28, 2025, 12:11 PMI have been working with a circular CG9A01 240x240 graphic LCD, and they are really good, and very inexpensive, so I have written a library for them, and created a couple of demos to show how they can be used for indicators.

Hello Les,

really nice project. Those LCD's delivered the best picture quality in my tests:

https://picgraphic.com/GC9A01.html

top204

I didn't know you had created a library for it Dyanko.

I'll download it, as it looks excellent.

Unfortunately, that is one of the problems with an 'all-in one' library mechanism. Too many all in one place, so if you miss one link, you miss them all. :-)

Regards
Les

RGV250

Hi Les,
I have just had a look and the stumbling block I had was with larger fonts, I only managed to get the 8 point one working. I have the old GLCD font creator from Octal but could not figure out how to get the data table correct. Does your library have larger fonts.

Bob

John Lawton

Quote from: top204 on Apr 28, 2025, 12:11 PMIt will also sit on one of John's Amicus8 boards, but I only have an Amicus16 board, so I used an Amicus18 board with a PIC18F26K40 device in it's socket

Les, superb work!

I assumed that you had a load of the original Amicus boards in stock so I didn't send you one. I'll remedy that asap :)

All my versions of the Amicus boards can be obtained here:

https://www.easy-driver.co.uk/amicus

John




top204

Many thanks John.

I do have a few Amicus18 boards, but I would like to take any future pictures of projects using your boards as well.

Bob.
I use both the original font creator that Octal, kindly, created many years ago, and a font creator I modified for Positron that creates fonts in the X or Y axis, and it can create large fonts. That is what most of my libraries use now, unless otherwise stated in their header texts.

As an example of what it creates, below is a font table for a "Tahoma Bold 24" font. Notice it uses the Flash8 directive and not a CData directive, so the font include file can be loaded anywhere within the code listing, and the font data in flash memory will always be stored at the beginning of flash memory, and out of the way of any code. :-)

The font creator executable does have a small problem of creating the space character a bit too thin, but I will work on that when I get a chance. I just keep forgetting to work on it, and other things always seem to take priority over it. :-)

$ifndef _TahomaBold_24_inc_
$define _TahomaBold_24_inc_

'   /\\\\\\\\\
'  /\\\///////\\\
'  \/\\\     \/\\\                                                 /\\\          /\\\
'   \/\\\\\\\\\\\/        /\\\\\     /\\\\\\\\\\     /\\\\\\\\   /\\\\\\\\\\\  /\\\\\\\\\\\  /\\\\\\\\\
'    \/\\\//////\\\      /\\\///\\\  \/\\\//////    /\\\/////\\\ \////\\\////  \////\\\////  \////////\\\
'     \/\\\    \//\\\    /\\\  \//\\\ \/\\\\\\\\\\  /\\\\\\\\\\\     \/\\\         \/\\\        /\\\\\\\\\\
'      \/\\\     \//\\\  \//\\\  /\\\  \////////\\\ \//\\///////      \/\\\ /\\     \/\\\ /\\   /\\\/////\\\
'       \/\\\      \//\\\  \///\\\\\/    /\\\\\\\\\\  \//\\\\\\\\\\    \//\\\\\      \//\\\\\   \//\\\\\\\\/\\
'        \///        \///     \/////     \//////////    \//////////      \/////        \/////     \////////\//
'                                  Let's find out together what makes a PIC Tick!
'
' X scan font data for TahomaBold_24
'
Dim TahomaBold_24 As Flash8 = 36, 40,_ ' Font Height, Font Maximum Width
  $BE, $00,_ ' 1. Data Offset: 190
  $E3, $00,_ ' 2. Data Offset: 227
  $2C, $01,_ ' 3. Data Offset: 300
  $75, $01,_ ' 4. Data Offset: 373
  $06, $02,_ ' 5. Data Offset: 518
  $73, $02,_ ' 6. Data Offset: 627
  $4C, $03,_ ' 7. Data Offset: 844
  $DD, $03,_ ' 8. Data Offset: 989
  $26, $04,_ ' 9. Data Offset: 1062
  $6F, $04,_ ' 10. Data Offset: 1135
  $B8, $04,_ ' 11. Data Offset: 1208
  $25, $05,_ ' 12. Data Offset: 1317
  $B6, $05,_ ' 13. Data Offset: 1462
  $FF, $05,_ ' 14. Data Offset: 1535
  $48, $06,_ ' 15. Data Offset: 1608
  $91, $06,_ ' 16. Data Offset: 1681
  $FE, $06,_ ' 17. Data Offset: 1790
  $6B, $07,_ ' 18. Data Offset: 1899
  $D8, $07,_ ' 19. Data Offset: 2008
  $45, $08,_ ' 20. Data Offset: 2117
  $B2, $08,_ ' 21. Data Offset: 2226
  $1F, $09,_ ' 22. Data Offset: 2335
  $8C, $09,_ ' 23. Data Offset: 2444
  $F9, $09,_ ' 24. Data Offset: 2553
  $66, $0A,_ ' 25. Data Offset: 2662
  $D3, $0A,_ ' 26. Data Offset: 2771
  $40, $0B,_ ' 27. Data Offset: 2880
  $89, $0B,_ ' 28. Data Offset: 2953
  $D2, $0B,_ ' 29. Data Offset: 3026
  $63, $0C,_ ' 30. Data Offset: 3171
  $F4, $0C,_ ' 31. Data Offset: 3316
  $85, $0D,_ ' 32. Data Offset: 3461
  $F2, $0D,_ ' 33. Data Offset: 3570
  $83, $0E,_ ' 34. Data Offset: 3715
  $14, $0F,_ ' 35. Data Offset: 3860
  $81, $0F,_ ' 36. Data Offset: 3969
  $EE, $0F,_ ' 37. Data Offset: 4078
  $7F, $10,_ ' 38. Data Offset: 4223
  $EC, $10,_ ' 39. Data Offset: 4332
  $59, $11,_ ' 40. Data Offset: 4441
  $EA, $11,_ ' 41. Data Offset: 4586
  $7B, $12,_ ' 42. Data Offset: 4731
  $C4, $12,_ ' 43. Data Offset: 4804
  $31, $13,_ ' 44. Data Offset: 4913
  $C2, $13,_ ' 45. Data Offset: 5058
  $2F, $14,_ ' 46. Data Offset: 5167
  $C0, $14,_ ' 47. Data Offset: 5312
  $51, $15,_ ' 48. Data Offset: 5457
  $E2, $15,_ ' 49. Data Offset: 5602
  $4F, $16,_ ' 50. Data Offset: 5711
  $E0, $16,_ ' 51. Data Offset: 5856
  $71, $17,_ ' 52. Data Offset: 6001
  $DE, $17,_ ' 53. Data Offset: 6110
  $4B, $18,_ ' 54. Data Offset: 6219
  $DC, $18,_ ' 55. Data Offset: 6364
  $6D, $19,_ ' 56. Data Offset: 6509
  $22, $1A,_ ' 57. Data Offset: 6690
  $B3, $1A,_ ' 58. Data Offset: 6835
  $20, $1B,_ ' 59. Data Offset: 6944
  $8D, $1B,_ ' 60. Data Offset: 7053
  $D6, $1B,_ ' 61. Data Offset: 7126
  $43, $1C,_ ' 62. Data Offset: 7235
  $8C, $1C,_ ' 63. Data Offset: 7308
  $1D, $1D,_ ' 64. Data Offset: 7453
  $8A, $1D,_ ' 65. Data Offset: 7562
  $D3, $1D,_ ' 66. Data Offset: 7635
  $40, $1E,_ ' 67. Data Offset: 7744
  $AD, $1E,_ ' 68. Data Offset: 7853
  $1A, $1F,_ ' 69. Data Offset: 7962
  $87, $1F,_ ' 70. Data Offset: 8071
  $F4, $1F,_ ' 71. Data Offset: 8180
  $3D, $20,_ ' 72. Data Offset: 8253
  $AA, $20,_ ' 73. Data Offset: 8362
  $17, $21,_ ' 74. Data Offset: 8471
  $60, $21,_ ' 75. Data Offset: 8544
  $A9, $21,_ ' 76. Data Offset: 8617
  $16, $22,_ ' 77. Data Offset: 8726
  $5F, $22,_ ' 78. Data Offset: 8799
  $F0, $22,_ ' 79. Data Offset: 8944
  $5D, $23,_ ' 80. Data Offset: 9053
  $CA, $23,_ ' 81. Data Offset: 9162
  $37, $24,_ ' 82. Data Offset: 9271
  $A4, $24,_ ' 83. Data Offset: 9380
  $ED, $24,_ ' 84. Data Offset: 9453
  $5A, $25,_ ' 85. Data Offset: 9562
  $A3, $25,_ ' 86. Data Offset: 9635
  $10, $26,_ ' 87. Data Offset: 9744
  $7D, $26,_ ' 88. Data Offset: 9853
  $0E, $27,_ ' 89. Data Offset: 9998
  $7B, $27,_ ' 90. Data Offset: 10107
  $E8, $27,_ ' 91. Data Offset: 10216
  $55, $28,_ ' 92. Data Offset: 10325
  $C2, $28,_ ' 93. Data Offset: 10434
  $0B, $29,_ ' 94. Data Offset: 10507
  $78, $29,_ ' 95. Data Offset: 10616
'
' Data for character space
'
  $02,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character !
'
  $0B,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$C0,$0F,$80,$0F,$80,$0F,$80,$0F,$80,$0F,$80,$00,$00,$00,$00,$00,$00,$1F,_
  $C0,$1F,$C0,$1F,$C0,$1F,$C0,$1F,$C0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character "
'
  $10,$00,$00,$00,$00,$3F,$7E,$3F,$7E,$3F,$7E,$3F,$7E,$3F,$7E,$1E,$3C,$1E,$3C,$1E,$3C,$1E,$3C,$1E,$3C,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character #
'
  $1C,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1E,$0F,$00,$00,$1E,$0F,$00,$00,$3E,$1E,$00,$00,$3C,$1E,$00,$00,$3C,$1E,$00,$00,$3C,$1E,$00,$0F,$FF,$FF,$E0,$0F,$FF,$FF,$E0,$0F,_
  $FF,$FF,$E0,$0F,$FF,$FF,$E0,$00,$F8,$78,$00,$00,$F0,$78,$00,$00,$F0,$78,$00,$00,$F0,$78,$00,$00,$F0,$F8,$00,$3F,$FF,$FF,$80,$3F,$FF,$FF,$80,$3F,$FF,$FF,$80,$3F,$FF,$FF,$80,$03,$C1,$E0,$00,$03,$C1,$E0,_
  $00,$03,$C1,$E0,$00,$03,$C1,$E0,$00,$07,$83,$C0,$00,$07,$83,$C0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character $
'
  $16,$00,$00,$00,$00,$00,$00,$00,$38,$00,$00,$38,$00,$00,$38,$00,$00,$38,$00,$01,$FF,$80,$07,$FF,$E0,$0F,$FF,$E0,$1F,$FF,$E0,$3F,$B8,$E0,$3F,$38,$20,$3F,$38,$00,$3F,$38,$00,$3F,$F8,$00,$1F,$FF,$00,$1F,_
  $FF,$C0,$0F,$FF,$F0,$03,$FF,$F0,$00,$7F,$F8,$00,$3B,$F8,$00,$39,$F8,$20,$39,$F8,$38,$39,$F8,$3E,$3B,$F0,$3F,$FF,$F0,$3F,$FF,$E0,$3F,$FF,$C0,$03,$FE,$00,$00,$38,$00,$00,$38,$00,$00,$38,$00,$00,$38,$00,_
  $00,$38,$00,$00,$38,$00,$00,$00,$00,_
'
' Data for character %
'
  $29,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$F8,$00,$7C,$00,$00,$07,$FE,$00,$78,$00,$00,$0F,$FE,$00,$F8,$00,$00,$1F,$FF,$00,$F0,$00,$00,$1F,_
  $1F,$01,$F0,$00,$00,$3E,$0F,$81,$E0,$00,$00,$3E,$0F,$83,$C0,$00,$00,$3E,$0F,$83,$C0,$00,$00,$3E,$0F,$87,$87,$F0,$00,$3E,$0F,$8F,$8F,$FC,$00,$3E,$0F,$8F,$1F,$FC,$00,$3E,$0F,$9F,$3F,$FE,$00,$1F,$1F,$1E,_
  $3E,$3E,$00,$1F,$FF,$3E,$7C,$1F,$00,$0F,$FE,$3C,$7C,$1F,$00,$07,$FC,$7C,$7C,$1F,$00,$03,$F8,$78,$7C,$1F,$00,$00,$00,$F0,$7C,$1F,$00,$00,$00,$F0,$7C,$1F,$00,$00,$01,$E0,$7C,$1F,$00,$00,$03,$E0,$3E,$3E,_
  $00,$00,$03,$C0,$3F,$FE,$00,$00,$07,$C0,$1F,$FC,$00,$00,$07,$80,$0F,$F8,$00,$00,$0F,$80,$07,$F0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character &
'
  $1D,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$FE,$00,$00,$0F,$FF,$80,$00,$1F,$FF,$C0,$00,$1F,$FF,$E0,$00,$3F,$8F,$E0,$00,$3F,$07,$E0,$00,$3F,$07,$E0,$00,$3F,$07,$E0,$00,$1F,_
  $CF,$C0,$00,$1F,$FF,$80,$00,$0F,$FF,$00,$00,$07,$F8,$3F,$00,$1F,$FC,$3F,$00,$3F,$FE,$3F,$00,$3F,$7F,$3F,$00,$7E,$3F,$FF,$00,$7E,$1F,$FE,$00,$7E,$0F,$FE,$00,$7E,$07,$FC,$00,$7F,$03,$FC,$00,$3F,$83,$FE,_
  $00,$3F,$FF,$FF,$00,$1F,$FF,$FF,$C0,$0F,$FF,$9F,$E0,$01,$FC,$0F,$F0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character '
'
  $09,$00,$00,$00,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$1E,$00,$1E,$00,$1E,$00,$1E,$00,$1E,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character (
'
  $10,$00,$00,$00,$00,$00,$FE,$01,$FC,$01,$F8,$03,$F0,$07,$E0,$07,$C0,$0F,$C0,$0F,$80,$1F,$80,$1F,$00,$1F,$00,$1F,$00,$3E,$00,$3E,$00,$3E,$00,$3E,$00,$3E,$00,$3E,$00,$3E,$00,$3E,$00,$3E,$00,$3E,$00,$1F,_
  $00,$1F,$00,$1F,$00,$1F,$80,$0F,$80,$0F,$C0,$07,$C0,$07,$E0,$03,$F0,$01,$F8,$01,$FC,$00,$FE,_
'
' Data for character )
'
  $0F,$00,$00,$00,$00,$7F,$00,$3F,$80,$1F,$80,$0F,$C0,$07,$E0,$03,$E0,$03,$F0,$01,$F0,$01,$F8,$00,$F8,$00,$F8,$00,$F8,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,_
  $F8,$00,$F8,$00,$F8,$01,$F8,$01,$F0,$03,$F0,$03,$E0,$07,$E0,$0F,$C0,$1F,$80,$3F,$80,$7F,$00,_
'
' Data for character *
'
  $14,$00,$00,$00,$00,$00,$00,$00,$70,$00,$00,$70,$00,$10,$70,$40,$1C,$71,$C0,$3E,$73,$E0,$1F,$FF,$C0,$07,$FF,$00,$03,$FE,$00,$00,$F8,$00,$03,$FE,$00,$07,$FF,$00,$1F,$F7,$C0,$3E,$73,$E0,$1C,$71,$C0,$10,_
  $70,$40,$00,$70,$00,$00,$70,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character +
'
  $1B,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0F,$80,$00,$00,$0F,$80,$00,$00,$0F,$80,$00,$00,$0F,$80,$00,$00,$0F,$80,$00,$00,_
  $0F,$80,$00,$00,$0F,$80,$00,$00,$0F,$80,$00,$00,$0F,$80,$00,$1F,$FF,$FF,$C0,$1F,$FF,$FF,$C0,$1F,$FF,$FF,$C0,$1F,$FF,$FF,$C0,$00,$0F,$80,$00,$00,$0F,$80,$00,$00,$0F,$80,$00,$00,$0F,$80,$00,$00,$0F,$80,_
  $00,$00,$0F,$80,$00,$00,$0F,$80,$00,$00,$0F,$80,$00,$00,$0F,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character ,
'
  $0B,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$C0,$1F,$80,$1F,_
  $80,$1F,$00,$3F,$00,$3E,$00,$3E,$00,$7C,$00,$7C,$00,$78,$00,$78,$00,$F0,$00,$F0,$00,$00,$00,_
'
' Data for character -
'
  $0E,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3F,$F8,$3F,$F8,$3F,$F8,$3F,$F8,$3F,$F8,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character .
'
  $09,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3F,$00,$3F,$00,$3F,_
  $00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character /
'
  $12,$00,$00,$00,$00,$00,$00,$00,$0F,$80,$00,$1F,$80,$00,$1F,$00,$00,$1F,$00,$00,$3F,$00,$00,$3E,$00,$00,$3E,$00,$00,$3E,$00,$00,$7C,$00,$00,$7C,$00,$00,$7C,$00,$00,$FC,$00,$00,$F8,$00,$00,$F8,$00,$00,_
  $F8,$00,$01,$F0,$00,$01,$F0,$00,$01,$F0,$00,$03,$E0,$00,$03,$E0,$00,$03,$E0,$00,$07,$E0,$00,$07,$C0,$00,$07,$C0,$00,$07,$C0,$00,$0F,$80,$00,$0F,$80,$00,$0F,$80,$00,$1F,$80,$00,$1F,$00,$00,$1F,$00,$00,_
  $3F,$00,$00,$3E,$00,$00,$00,$00,$00,_
'
' Data for character 0
'
  $16,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$FE,$00,$07,$FF,$80,$0F,$FF,$C0,$1F,$FF,$E0,$3F,$FF,$F0,$3F,$87,$F0,$3F,$03,$F0,$7F,$03,$F8,$7E,$01,$F8,$7E,$01,$F8,$7E,$01,$F8,$7E,$01,$F8,$7E,_
  $01,$F8,$7E,$01,$F8,$7E,$01,$F8,$7E,$01,$F8,$7E,$01,$F8,$7F,$03,$F8,$3F,$03,$F0,$3F,$87,$F0,$3F,$FF,$F0,$1F,$FF,$E0,$0F,$FF,$C0,$07,$FF,$80,$01,$FE,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character 1
'
  $15,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3E,$00,$00,$7E,$00,$00,$FE,$00,$0F,$FE,$00,$0F,$FE,$00,$0F,$FE,$00,$0F,$FE,$00,$00,$7E,$00,$00,$7E,$00,$00,$7E,$00,$00,$7E,$00,$00,$7E,$00,$00,_
  $7E,$00,$00,$7E,$00,$00,$7E,$00,$00,$7E,$00,$00,$7E,$00,$00,$7E,$00,$00,$7E,$00,$00,$7E,$00,$00,$7E,$00,$0F,$FF,$F0,$0F,$FF,$F0,$0F,$FF,$F0,$0F,$FF,$F0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character 2
'
  $16,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$FE,$00,$0F,$FF,$80,$0F,$FF,$C0,$0F,$FF,$E0,$0F,$FF,$F0,$0E,$0F,$F0,$08,$03,$F0,$00,$03,$F0,$00,$03,$F0,$00,$03,$F0,$00,$03,$E0,$00,$07,$E0,$00,_
  $0F,$C0,$00,$1F,$C0,$00,$3F,$80,$00,$7F,$00,$00,$FE,$00,$01,$FC,$00,$03,$F8,$00,$07,$E0,$00,$1F,$FF,$F8,$1F,$FF,$F8,$1F,$FF,$F8,$1F,$FF,$F8,$1F,$FF,$F8,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character 3
'
  $15,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$FC,$00,$1F,$FF,$80,$1F,$FF,$C0,$1F,$FF,$C0,$1F,$FF,$E0,$1E,$0F,$E0,$10,$07,$E0,$00,$07,$E0,$00,$07,$E0,$00,$0F,$C0,$01,$FF,$80,$01,$FF,$00,$01,_
  $FF,$80,$01,$FF,$E0,$00,$07,$E0,$00,$03,$F0,$00,$03,$F0,$00,$03,$F0,$30,$03,$F0,$3C,$0F,$F0,$3F,$FF,$E0,$3F,$FF,$E0,$3F,$FF,$C0,$3F,$FF,$80,$07,$FC,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character 4
'
  $16,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$C0,$00,$1F,$C0,$00,$3F,$C0,$00,$7F,$C0,$00,$FF,$C0,$00,$FF,$C0,$01,$FF,$C0,$03,$EF,$C0,$07,$CF,$C0,$0F,$8F,$C0,$0F,$0F,$C0,$1F,$0F,$C0,$3E,_
  $0F,$C0,$7C,$0F,$C0,$7F,$FF,$F8,$7F,$FF,$F8,$7F,$FF,$F8,$7F,$FF,$F8,$7F,$FF,$F8,$00,$0F,$C0,$00,$0F,$C0,$00,$0F,$C0,$00,$0F,$C0,$00,$0F,$C0,$00,$0F,$C0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character 5
'
  $15,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$FF,$E0,$1F,$FF,$E0,$1F,$FF,$E0,$1F,$FF,$E0,$1F,$FF,$E0,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$FE,$00,$1F,$FF,$80,$1F,$FF,$C0,$1F,_
  $FF,$E0,$1F,$FF,$F0,$18,$0F,$F0,$00,$03,$F0,$00,$03,$F0,$00,$03,$F0,$30,$07,$F0,$3C,$0F,$E0,$3F,$FF,$E0,$3F,$FF,$C0,$3F,$FF,$C0,$3F,$FF,$00,$07,$FC,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character 6
'
  $16,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$E0,$00,$FF,$E0,$03,$FF,$E0,$07,$FF,$E0,$0F,$FF,$E0,$0F,$E0,$60,$1F,$C0,$00,$1F,$80,$00,$1F,$3F,$00,$3F,$FF,$C0,$3F,$FF,$E0,$3F,$FF,$F0,$3F,_
  $07,$F0,$3F,$03,$F8,$3F,$01,$F8,$3F,$01,$F8,$3F,$01,$F8,$3F,$01,$F8,$1F,$81,$F8,$1F,$83,$F0,$1F,$C7,$F0,$0F,$FF,$E0,$07,$FF,$E0,$03,$FF,$80,$00,$FE,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character 7
'
  $15,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3F,$FF,$F0,$3F,$FF,$F0,$3F,$FF,$F0,$3F,$FF,$F0,$3F,$FF,$F0,$00,$07,$F0,$00,$07,$E0,$00,$0F,$E0,$00,$0F,$C0,$00,$1F,$C0,$00,$1F,$80,$00,$3F,$80,$00,_
  $3F,$00,$00,$7F,$00,$00,$7E,$00,$00,$FE,$00,$01,$FC,$00,$01,$FC,$00,$03,$F8,$00,$03,$F8,$00,$07,$F0,$00,$07,$E0,$00,$0F,$E0,$00,$0F,$C0,$00,$1F,$C0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character 8
'
  $16,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$FE,$00,$07,$FF,$80,$0F,$FF,$E0,$1F,$FF,$E0,$3F,$87,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$83,$E0,$1F,$E7,$E0,$1F,$FF,$C0,$0F,$FF,$00,$07,_
  $FF,$C0,$1F,$FF,$E0,$3F,$1F,$F0,$3E,$07,$F8,$7E,$01,$F8,$7E,$01,$F8,$7E,$01,$F8,$7F,$01,$F8,$7F,$87,$F0,$3F,$FF,$F0,$1F,$FF,$E0,$0F,$FF,$C0,$01,$FE,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character 9
'
  $15,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$FC,$00,$07,$FF,$00,$0F,$FF,$80,$1F,$FF,$C0,$3F,$8F,$E0,$3F,$07,$E0,$7E,$07,$E0,$7E,$03,$F0,$7E,$03,$F0,$7E,$03,$F0,$7E,$03,$F0,$7F,$03,$F0,$3F,_
  $83,$F0,$3F,$FF,$F0,$1F,$FF,$F0,$0F,$FF,$F0,$03,$F3,$E0,$00,$07,$E0,$00,$0F,$E0,$18,$1F,$C0,$1F,$FF,$80,$1F,$FF,$80,$1F,$FF,$00,$1F,$FC,$00,$1F,$E0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character :
'
  $0A,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$80,$1F,$80,$1F,_
  $80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character ;
'
  $0B,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$C0,$1F,$80,$1F,_
  $80,$1F,$00,$3F,$00,$3E,$00,$3E,$00,$7C,$00,$7C,$00,$78,$00,$78,$00,$F0,$00,$F0,$00,$00,$00,_
'
' Data for character <
'
  $1A,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$80,$00,$00,$07,$80,$00,$00,$1F,$80,$00,$00,$7F,$80,$00,$03,$FF,$80,$00,_
  $0F,$FF,$80,$00,$7F,$FC,$00,$01,$FF,$F0,$00,$07,$FF,$80,$00,$1F,$FE,$00,$00,$1F,$F8,$00,$00,$1F,$F8,$00,$00,$1F,$FE,$00,$00,$07,$FF,$80,$00,$01,$FF,$F0,$00,$00,$7F,$FC,$00,$00,$0F,$FF,$80,$00,$03,$FF,_
  $80,$00,$00,$7F,$80,$00,$00,$1F,$80,$00,$00,$07,$80,$00,$00,$00,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character =
'
  $1A,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0F,$FF,$FF,$80,$0F,_
  $FF,$FF,$80,$0F,$FF,$FF,$80,$0F,$FF,$FF,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0F,$FF,$FF,$80,$0F,$FF,$FF,$80,$0F,$FF,$FF,$80,$0F,$FF,$FF,$80,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character >
'
  $1B,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$08,$00,$00,$00,$0F,$00,$00,$00,$0F,$C0,$00,$00,$0F,$F0,$00,$00,$0F,$FE,$00,$00,$0F,_
  $FF,$80,$00,$01,$FF,$F0,$00,$00,$7F,$FC,$00,$00,$0F,$FF,$00,$00,$03,$FF,$C0,$00,$00,$FF,$C0,$00,$00,$FF,$C0,$00,$03,$FF,$C0,$00,$0F,$FF,$00,$00,$7F,$FC,$00,$01,$FF,$F0,$00,$0F,$FF,$80,$00,$0F,$FE,$00,_
  $00,$0F,$F0,$00,$00,$0F,$C0,$00,$00,$0F,$00,$00,$00,$08,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character ?
'
  $14,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$07,$FC,$00,$3F,$FF,$00,$3F,$FF,$80,$3F,$FF,$C0,$3F,$FF,$E0,$3C,$0F,$E0,$20,$07,$E0,$00,$07,$E0,$00,$07,$E0,$00,$0F,$C0,$00,$1F,$C0,$00,$3F,$80,$01,_
  $FF,$00,$03,$FC,$00,$03,$F0,$00,$03,$F0,$00,$03,$F0,$00,$03,$F0,$00,$00,$00,$00,$00,$00,$00,$03,$F8,$00,$03,$F8,$00,$03,$F8,$00,$03,$F8,$00,$03,$F8,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character @
'
  $1F,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0F,$F0,$00,$00,$3F,$FE,$00,$00,$FF,$FF,$00,$01,$F8,$0F,$C0,$03,$E0,$03,$E0,$07,$C0,$01,$E0,$0F,$83,$DE,$F0,$0F,$0F,$FE,$F8,$1E,_
  $1F,$FE,$78,$1E,$3E,$1E,$78,$1E,$3C,$1E,$3C,$3C,$78,$1E,$3C,$3C,$78,$1E,$3C,$3C,$78,$1E,$3C,$3C,$78,$1E,$3C,$3C,$78,$1E,$3C,$3C,$78,$1E,$3C,$3C,$78,$1E,$3C,$3E,$3C,$1E,$38,$1E,$3C,$3E,$78,$1E,$1F,$FF,_
  $F8,$0F,$1F,$FF,$F8,$0F,$87,$CF,$F0,$07,$80,$00,$00,$07,$E0,$00,$00,$03,$F8,$0C,$00,$00,$FF,$FC,$00,$00,$7F,$FC,$00,$00,$0F,$F8,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character A
'
  $19,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$00,$00,$00,$FF,$00,$00,$00,$FF,$00,$00,$01,$FF,$80,$00,$01,$FF,$80,$00,$01,$FF,$80,$00,$03,$FF,$C0,$00,$03,$FF,$C0,$00,$03,_
  $E7,$C0,$00,$07,$E7,$E0,$00,$07,$E7,$E0,$00,$07,$E7,$E0,$00,$0F,$C3,$F0,$00,$0F,$C3,$F0,$00,$0F,$C3,$F0,$00,$1F,$FF,$F8,$00,$1F,$FF,$F8,$00,$1F,$FF,$F8,$00,$3F,$FF,$FC,$00,$3F,$FF,$FC,$00,$3F,$00,$FC,_
  $00,$7E,$00,$7E,$00,$7E,$00,$7E,$00,$7E,$00,$7E,$00,$FC,$00,$3F,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character B
'
  $18,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$FF,$80,$1F,$FF,$E0,$1F,$FF,$F0,$1F,$FF,$F8,$1F,$FF,$F8,$1F,$83,$F8,$1F,$81,$F8,$1F,$81,$F8,$1F,$81,$F0,$1F,$83,$F0,$1F,$FF,$E0,$1F,$FF,$C0,$1F,_
  $FF,$F8,$1F,$FF,$FC,$1F,$80,$FC,$1F,$80,$7E,$1F,$80,$7E,$1F,$80,$7E,$1F,$80,$7E,$1F,$81,$FE,$1F,$FF,$FC,$1F,$FF,$FC,$1F,$FF,$F8,$1F,$FF,$F0,$1F,$FF,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character C
'
  $17,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$7F,$C0,$01,$FF,$F8,$07,$FF,$FC,$0F,$FF,$FC,$1F,$FF,$FC,$1F,$E0,$7C,$3F,$C0,$1C,$3F,$80,$04,$7F,$00,$00,$7E,$00,$00,$7E,$00,$00,$7E,$00,$00,$7E,_
  $00,$00,$7E,$00,$00,$7E,$00,$00,$7E,$00,$00,$7F,$00,$00,$3F,$80,$04,$3F,$C0,$1C,$1F,$E0,$7C,$1F,$FF,$FC,$0F,$FF,$FC,$07,$FF,$FC,$01,$FF,$F8,$00,$7F,$C0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character D
'
  $1B,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$FF,$80,$00,$1F,$FF,$F0,$00,$1F,$FF,$F8,$00,$1F,$FF,$FC,$00,$1F,$FF,$FE,$00,$1F,$81,$FF,$00,$1F,$80,$7F,$80,$1F,$80,$3F,$80,$1F,_
  $80,$1F,$80,$1F,$80,$0F,$C0,$1F,$80,$0F,$C0,$1F,$80,$0F,$C0,$1F,$80,$0F,$C0,$1F,$80,$0F,$C0,$1F,$80,$0F,$C0,$1F,$80,$0F,$C0,$1F,$80,$1F,$80,$1F,$80,$3F,$80,$1F,$80,$7F,$80,$1F,$81,$FF,$00,$1F,$FF,$FE,_
  $00,$1F,$FF,$FC,$00,$1F,$FF,$F8,$00,$1F,$FF,$F0,$00,$1F,$FF,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character E
'
  $15,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$FF,$F0,$1F,$FF,$F0,$1F,$FF,$F0,$1F,$FF,$F0,$1F,$FF,$F0,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$FF,$E0,$1F,$FF,$E0,$1F,$FF,$E0,$1F,_
  $FF,$E0,$1F,$FF,$E0,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$FF,$F0,$1F,$FF,$F0,$1F,$FF,$F0,$1F,$FF,$F0,$1F,$FF,$F0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character F
'
  $14,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$FF,$E0,$1F,$FF,$E0,$1F,$FF,$E0,$1F,$FF,$E0,$1F,$FF,$E0,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$FF,$C0,$1F,$FF,$C0,$1F,$FF,$C0,$1F,_
  $FF,$C0,$1F,$FF,$C0,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character G
'
  $19,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3F,$E0,$00,$01,$FF,$FC,$00,$03,$FF,$FF,$00,$07,$FF,$FF,$00,$0F,$FF,$FF,$00,$1F,$F0,$3F,$00,$3F,$C0,$07,$00,$3F,$80,$01,$00,$3F,_
  $00,$00,$00,$7E,$00,$00,$00,$7E,$00,$00,$00,$7E,$07,$FF,$00,$7E,$07,$FF,$00,$7E,$07,$FF,$00,$7E,$07,$FF,$00,$7F,$07,$FF,$00,$7F,$00,$3F,$00,$3F,$80,$3F,$00,$3F,$C0,$3F,$00,$1F,$F0,$3F,$00,$1F,$FF,$FF,_
  $00,$0F,$FF,$FF,$00,$03,$FF,$FF,$00,$01,$FF,$FE,$00,$00,$3F,$E0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character H
'
  $19,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$80,$3F,$00,$1F,$80,$3F,$00,$1F,$80,$3F,$00,$1F,$80,$3F,$00,$1F,$80,$3F,$00,$1F,$80,$3F,$00,$1F,$80,$3F,$00,$1F,$80,$3F,$00,$1F,_
  $80,$3F,$00,$1F,$FF,$FF,$00,$1F,$FF,$FF,$00,$1F,$FF,$FF,$00,$1F,$FF,$FF,$00,$1F,$FF,$FF,$00,$1F,$80,$3F,$00,$1F,$80,$3F,$00,$1F,$80,$3F,$00,$1F,$80,$3F,$00,$1F,$80,$3F,$00,$1F,$80,$3F,$00,$1F,$80,$3F,_
  $00,$1F,$80,$3F,$00,$1F,$80,$3F,$00,$1F,$80,$3F,$00,$1F,$80,$3F,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character I
'
  $10,$00,$00,$00,$00,$00,$00,$00,$00,$7F,$FE,$7F,$FE,$7F,$FE,$7F,$FE,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,_
  $E0,$7F,$FE,$7F,$FE,$7F,$FE,$7F,$FE,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character J
'
  $11,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$FF,$00,$1F,$FF,$00,$1F,$FF,$00,$1F,$FF,$00,$1F,$FF,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,_
  $3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$7F,$00,$C0,$FF,$00,$FF,$FE,$00,$FF,$FE,$00,$FF,$FC,$00,$FF,$F8,$00,$FF,$C0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character K
'
  $1A,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$80,$7F,$80,$1F,$80,$FF,$00,$1F,$81,$FE,$00,$1F,$81,$FC,$00,$1F,$83,$F8,$00,$1F,$87,$F8,$00,$1F,$8F,$F0,$00,$1F,$8F,$E0,$00,$1F,_
  $9F,$C0,$00,$1F,$BF,$80,$00,$1F,$FF,$80,$00,$1F,$FF,$00,$00,$1F,$FF,$00,$00,$1F,$FF,$80,$00,$1F,$FF,$C0,$00,$1F,$DF,$C0,$00,$1F,$8F,$E0,$00,$1F,$87,$F0,$00,$1F,$87,$F0,$00,$1F,$83,$F8,$00,$1F,$81,$FC,_
  $00,$1F,$81,$FE,$00,$1F,$80,$FE,$00,$1F,$80,$7F,$00,$1F,$80,$7F,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character L
'
  $15,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,_
  $80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$FF,$F0,$1F,$FF,$F0,$1F,$FF,$F0,$1F,$FF,$F0,$1F,$FF,$F0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character M
'
  $1D,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$E0,$07,$F0,$1F,$E0,$0F,$F0,$1F,$E0,$0F,$F0,$1F,$F0,$0F,$F0,$1F,$F0,$1F,$F0,$1F,$F8,$1F,$F0,$1F,$F8,$3F,$F0,$1F,$FC,$3F,$F0,$1F,_
  $FC,$7F,$F0,$1F,$FC,$7F,$F0,$1F,$BE,$FB,$F0,$1F,$BE,$FB,$F0,$1F,$9F,$F3,$F0,$1F,$9F,$F3,$F0,$1F,$8F,$E3,$F0,$1F,$8F,$E3,$F0,$1F,$8F,$E3,$F0,$1F,$87,$C3,$F0,$1F,$87,$C3,$F0,$1F,$80,$03,$F0,$1F,$80,$03,_
  $F0,$1F,$80,$03,$F0,$1F,$80,$03,$F0,$1F,$80,$03,$F0,$1F,$80,$03,$F0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character N
'
  $19,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$E0,$3F,$00,$1F,$F0,$3F,$00,$1F,$F0,$3F,$00,$1F,$F8,$3F,$00,$1F,$F8,$3F,$00,$1F,$FC,$3F,$00,$1F,$FC,$3F,$00,$1F,$FE,$3F,$00,$1F,_
  $FE,$3F,$00,$1F,$BF,$3F,$00,$1F,$BF,$3F,$00,$1F,$9F,$BF,$00,$1F,$9F,$BF,$00,$1F,$8F,$FF,$00,$1F,$8F,$FF,$00,$1F,$87,$FF,$00,$1F,$87,$FF,$00,$1F,$83,$FF,$00,$1F,$83,$FF,$00,$1F,$81,$FF,$00,$1F,$81,$FF,_
  $00,$1F,$80,$FF,$00,$1F,$80,$FF,$00,$1F,$80,$7F,$00,$1F,$80,$7F,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character O
'
  $1B,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$7F,$C0,$00,$01,$FF,$F0,$00,$07,$FF,$FC,$00,$0F,$FF,$FE,$00,$1F,$FF,$FF,$00,$1F,$E0,$FF,$00,$3F,$80,$3F,$80,$3F,$00,$1F,$80,$7F,_
  $00,$1F,$C0,$7E,$00,$0F,$C0,$7E,$00,$0F,$C0,$7E,$00,$0F,$C0,$7E,$00,$0F,$C0,$7E,$00,$0F,$C0,$7E,$00,$0F,$C0,$7E,$00,$0F,$C0,$7F,$00,$1F,$C0,$3F,$00,$1F,$80,$3F,$80,$3F,$80,$1F,$E0,$FF,$00,$1F,$FF,$FF,_
  $00,$0F,$FF,$FE,$00,$07,$FF,$FC,$00,$01,$FF,$F0,$00,$00,$7F,$C0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character P
'
  $17,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$FF,$80,$1F,$FF,$E0,$1F,$FF,$F0,$1F,$FF,$F8,$1F,$FF,$F8,$1F,$83,$FC,$1F,$80,$FC,$1F,$80,$FC,$1F,$80,$FC,$1F,$80,$FC,$1F,$81,$FC,$1F,$83,$F8,$1F,_
  $FF,$F8,$1F,$FF,$F0,$1F,$FF,$E0,$1F,$FF,$C0,$1F,$FF,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$1F,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character Q
'
  $1B,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$7F,$C0,$00,$01,$FF,$F0,$00,$07,$FF,$FC,$00,$0F,$FF,$FE,$00,$1F,$FF,$FF,$00,$1F,$E0,$FF,$00,$3F,$80,$3F,$80,$3F,$00,$1F,$80,$7F,_
  $00,$1F,$C0,$7E,$00,$0F,$C0,$7E,$00,$0F,$C0,$7E,$00,$0F,$C0,$7E,$00,$0F,$C0,$7E,$00,$0F,$C0,$7E,$00,$0F,$C0,$7E,$00,$0F,$C0,$7F,$00,$1F,$C0,$3F,$00,$1F,$80,$3F,$80,$3F,$80,$1F,$E0,$FF,$00,$1F,$FF,$FF,_
  $00,$0F,$FF,$FE,$00,$07,$FF,$FC,$00,$01,$FF,$F0,$00,$00,$7F,$E0,$00,$00,$07,$E0,$00,$00,$07,$E0,$00,$00,$07,$F0,$40,$00,$03,$FF,$C0,$00,$03,$FF,$C0,$00,$00,$FF,$C0,$00,$00,$7F,$C0,_
'
' Data for character R
'
  $1B,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$FF,$80,$00,$1F,$FF,$E0,$00,$1F,$FF,$F0,$00,$1F,$FF,$F8,$00,$1F,$FF,$FC,$00,$1F,$81,$FC,$00,$1F,$80,$FC,$00,$1F,$80,$FC,$00,$1F,_
  $80,$FC,$00,$1F,$80,$FC,$00,$1F,$83,$F8,$00,$1F,$FF,$F8,$00,$1F,$FF,$F0,$00,$1F,$FF,$E0,$00,$1F,$FF,$C0,$00,$1F,$FF,$C0,$00,$1F,$8F,$E0,$00,$1F,$87,$F0,$00,$1F,$87,$F8,$00,$1F,$83,$FC,$00,$1F,$81,$FC,_
  $00,$1F,$80,$FE,$00,$1F,$80,$FF,$00,$1F,$80,$7F,$80,$1F,$80,$3F,$C0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character S
'
  $16,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$FF,$00,$07,$FF,$E0,$1F,$FF,$F0,$3F,$FF,$F0,$3F,$FF,$F0,$7F,$01,$F0,$7E,$00,$70,$7E,$00,$10,$7F,$00,$00,$7F,$F0,$00,$3F,$FE,$00,$3F,$FF,$C0,$1F,_
  $FF,$E0,$07,$FF,$F0,$01,$FF,$F8,$00,$1F,$F8,$00,$03,$F8,$40,$01,$F8,$70,$01,$F8,$7E,$03,$F8,$7F,$FF,$F0,$7F,$FF,$E0,$7F,$FF,$C0,$3F,$FF,$80,$07,$FC,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character T
'
  $16,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$FF,$F8,$FF,$FF,$F8,$FF,$FF,$F8,$FF,$FF,$F8,$FF,$FF,$F8,$01,$F8,$00,$01,$F8,$00,$01,$F8,$00,$01,$F8,$00,$01,$F8,$00,$01,$F8,$00,$01,$F8,$00,$01,_
  $F8,$00,$01,$F8,$00,$01,$F8,$00,$01,$F8,$00,$01,$F8,$00,$01,$F8,$00,$01,$F8,$00,$01,$F8,$00,$01,$F8,$00,$01,$F8,$00,$01,$F8,$00,$01,$F8,$00,$01,$F8,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character U
'
  $19,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,_
  $00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$80,$7F,$00,$1F,$C0,$FE,$00,$1F,$FF,$FE,_
  $00,$0F,$FF,$FC,$00,$07,$FF,$F8,$00,$03,$FF,$F0,$00,$00,$7F,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character V
'
  $19,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FE,$00,$7F,$00,$7E,$00,$7E,$00,$7E,$00,$7E,$00,$7E,$00,$7E,$00,$3F,$00,$FC,$00,$3F,$00,$FC,$00,$3F,$00,$FC,$00,$1F,$81,$F8,$00,$1F,_
  $81,$F8,$00,$1F,$81,$F8,$00,$0F,$C3,$F0,$00,$0F,$C3,$F0,$00,$0F,$C3,$F0,$00,$07,$E7,$E0,$00,$07,$E7,$E0,$00,$07,$E7,$E0,$00,$03,$FF,$C0,$00,$03,$FF,$C0,$00,$03,$FF,$C0,$00,$01,$FF,$80,$00,$01,$FF,$80,_
  $00,$01,$FF,$80,$00,$00,$FF,$00,$00,$00,$FF,$00,$00,$00,$7E,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character W
'
  $25,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$7E,$01,$FC,$03,$F0,$7F,$01,$FC,$07,$F0,$3F,$01,$FC,$07,$E0,$3F,$01,$FE,$07,$E0,$3F,$03,$FE,$07,$E0,$3F,$03,$FE,$07,_
  $E0,$1F,$83,$FE,$0F,$C0,$1F,$83,$FF,$0F,$C0,$1F,$87,$FF,$0F,$C0,$1F,$87,$FF,$0F,$C0,$0F,$87,$DF,$1F,$80,$0F,$CF,$DF,$9F,$80,$0F,$CF,$DF,$9F,$80,$0F,$CF,$8F,$9F,$80,$07,$CF,$8F,$9F,$00,$07,$DF,$8F,$FF,_
  $00,$07,$FF,$0F,$FF,$00,$03,$FF,$07,$FE,$00,$03,$FF,$07,$FE,$00,$03,$FF,$07,$FE,$00,$03,$FE,$03,$FE,$00,$01,$FE,$03,$FC,$00,$01,$FE,$03,$FC,$00,$01,$FC,$03,$FC,$00,$01,$FC,$01,$FC,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character X
'
  $19,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FE,$00,$7F,$00,$7F,$00,$FE,$00,$3F,$81,$FC,$00,$3F,$81,$FC,$00,$1F,$C3,$F8,$00,$0F,$C3,$F0,$00,$0F,$E7,$F0,$00,$07,$FF,$E0,$00,$03,_
  $FF,$C0,$00,$03,$FF,$C0,$00,$01,$FF,$80,$00,$00,$FF,$00,$00,$00,$FF,$00,$00,$00,$FF,$00,$00,$01,$FF,$80,$00,$03,$FF,$C0,$00,$03,$FF,$C0,$00,$07,$E7,$E0,$00,$0F,$E7,$F0,$00,$0F,$C3,$F0,$00,$1F,$C3,$F8,_
  $00,$3F,$81,$FC,$00,$3F,$81,$FC,$00,$7F,$00,$FE,$00,$FE,$00,$7F,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character Y
'
  $18,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FC,$00,$FE,$FE,$01,$FC,$7E,$01,$F8,$7F,$03,$F8,$3F,$87,$F0,$3F,$87,$F0,$1F,$CF,$E0,$0F,$CF,$C0,$0F,$FF,$C0,$07,$FF,$80,$07,$FF,$80,$03,$FF,$00,$01,_
  $FE,$00,$01,$FE,$00,$00,$FC,$00,$00,$FC,$00,$00,$FC,$00,$00,$FC,$00,$00,$FC,$00,$00,$FC,$00,$00,$FC,$00,$00,$FC,$00,$00,$FC,$00,$00,$FC,$00,$00,$FC,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character Z
'
  $17,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3F,$FF,$F8,$3F,$FF,$F8,$3F,$FF,$F8,$3F,$FF,$F8,$3F,$FF,$F8,$00,$07,$F8,$00,$0F,$F0,$00,$0F,$E0,$00,$1F,$C0,$00,$3F,$80,$00,$7F,$00,$00,$FF,$00,$01,_
  $FE,$00,$01,$FC,$00,$03,$F8,$00,$07,$F0,$00,$0F,$E0,$00,$1F,$E0,$00,$3F,$C0,$00,$7F,$80,$00,$7F,$FF,$FC,$7F,$FF,$FC,$7F,$FF,$FC,$7F,$FF,$FC,$7F,$FF,$FC,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character [
'
  $0F,$00,$00,$00,$00,$1F,$FC,$1F,$FC,$1F,$FC,$1F,$FC,$1F,$00,$1F,$00,$1F,$00,$1F,$00,$1F,$00,$1F,$00,$1F,$00,$1F,$00,$1F,$00,$1F,$00,$1F,$00,$1F,$00,$1F,$00,$1F,$00,$1F,$00,$1F,$00,$1F,$00,$1F,$00,$1F,_
  $00,$1F,$00,$1F,$00,$1F,$00,$1F,$00,$1F,$00,$1F,$00,$1F,$00,$1F,$FC,$1F,$FC,$1F,$FC,$1F,$FC,_
'
' Data for character \
'
  $13,$00,$00,$00,$00,$00,$00,$1F,$00,$00,$1F,$80,$00,$0F,$80,$00,$0F,$80,$00,$0F,$C0,$00,$07,$C0,$00,$07,$C0,$00,$07,$C0,$00,$03,$E0,$00,$03,$E0,$00,$03,$E0,$00,$03,$F0,$00,$01,$F0,$00,$01,$F0,$00,$01,_
  $F0,$00,$00,$F8,$00,$00,$F8,$00,$00,$F8,$00,$00,$7C,$00,$00,$7C,$00,$00,$7C,$00,$00,$7E,$00,$00,$3E,$00,$00,$3E,$00,$00,$3E,$00,$00,$1F,$00,$00,$1F,$00,$00,$1F,$00,$00,$1F,$80,$00,$0F,$80,$00,$0F,$80,_
  $00,$0F,$C0,$00,$07,$C0,$00,$00,$00,_
'
' Data for character ]
'
  $0E,$00,$00,$00,$00,$3F,$F8,$3F,$F8,$3F,$F8,$3F,$F8,$00,$F8,$00,$F8,$00,$F8,$00,$F8,$00,$F8,$00,$F8,$00,$F8,$00,$F8,$00,$F8,$00,$F8,$00,$F8,$00,$F8,$00,$F8,$00,$F8,$00,$F8,$00,$F8,$00,$F8,$00,$F8,$00,_
  $F8,$00,$F8,$00,$F8,$00,$F8,$00,$F8,$00,$F8,$00,$F8,$00,$F8,$3F,$F8,$3F,$F8,$3F,$F8,$3F,$F8,_
'
' Data for character ^
'
  $1B,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$0F,$80,$00,$00,$1F,$80,$00,$00,$1F,$C0,$00,$00,$3F,$E0,$00,$00,$7F,$E0,$00,$00,$7F,$F0,$00,$00,$FD,$F8,$00,$01,$F8,$FC,$00,$01,_
  $F0,$FC,$00,$03,$F0,$7E,$00,$07,$E0,$3F,$00,$07,$C0,$3F,$00,$0F,$C0,$1F,$80,$1F,$80,$0F,$C0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character _
'
  $17,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$FF,$FC,$FF,$FF,$FC,_
  $FF,$FF,$FC,$00,$00,$00,$00,$00,$00,_
'
' Data for character `
'
  $0F,$07,$E0,$03,$E0,$01,$F0,$00,$F0,$00,$F8,$00,$78,$00,$3C,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character a
'
  $14,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$07,$FC,$00,$1F,$FF,$80,$1F,$FF,$C0,$1F,$FF,$C0,$1C,$0F,$E0,$10,$07,$E0,$00,_
  $07,$E0,$00,$FF,$E0,$0F,$FF,$E0,$1F,$FF,$E0,$3F,$FF,$E0,$7F,$87,$E0,$7E,$07,$E0,$7E,$07,$E0,$7F,$0F,$E0,$7F,$FF,$E0,$3F,$FF,$E0,$1F,$F7,$E0,$0F,$E7,$E0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character b
'
  $16,$00,$00,$00,$00,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$1F,$80,$3F,$7F,$C0,$3F,$FF,$E0,$3F,$FF,$F0,$3F,$FF,$F0,$3F,$87,$F8,$3F,_
  $03,$F8,$3F,$01,$F8,$3F,$01,$F8,$3F,$01,$F8,$3F,$01,$F8,$3F,$01,$F8,$3F,$01,$F8,$3F,$03,$F0,$3F,$07,$F0,$3F,$FF,$E0,$3F,$FF,$E0,$3F,$FF,$80,$3F,$7F,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character c
'
  $12,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$FC,$00,$07,$FF,$80,$0F,$FF,$80,$1F,$FF,$80,$3F,$83,$80,$3F,$01,$80,$7F,_
  $00,$80,$7E,$00,$00,$7E,$00,$00,$7E,$00,$00,$7E,$00,$00,$7E,$00,$00,$7F,$00,$80,$3F,$01,$80,$3F,$83,$80,$1F,$FF,$80,$0F,$FF,$80,$07,$FF,$80,$01,$FC,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character d
'
  $15,$00,$00,$00,$00,$00,$00,$00,$03,$F0,$00,$03,$F0,$00,$03,$F0,$00,$03,$F0,$00,$03,$F0,$00,$03,$F0,$00,$03,$F0,$00,$03,$F0,$03,$F3,$F0,$07,$FF,$F0,$1F,$FF,$F0,$1F,$FF,$F0,$3F,$83,$F0,$3F,$03,$F0,$7E,_
  $03,$F0,$7E,$03,$F0,$7E,$03,$F0,$7E,$03,$F0,$7E,$03,$F0,$7E,$03,$F0,$7F,$03,$F0,$7F,$87,$F0,$3F,$FF,$F0,$3F,$FF,$F0,$1F,$FF,$F0,$0F,$FB,$F0,$03,$F3,$F0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character e
'
  $15,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$FE,$00,$07,$FF,$80,$0F,$FF,$C0,$1F,$FF,$E0,$3F,$07,$E0,$3E,$03,$F0,$7E,_
  $03,$F0,$7F,$FF,$F0,$7F,$FF,$F0,$7F,$FF,$F0,$7F,$FF,$F0,$7E,$00,$00,$7E,$00,$10,$3F,$00,$30,$3F,$C0,$F0,$1F,$FF,$F0,$0F,$FF,$F0,$07,$FF,$F0,$00,$FF,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character f
'
  $10,$00,$00,$00,$00,$01,$FE,$07,$FE,$0F,$FE,$0F,$FE,$1F,$C0,$1F,$80,$1F,$80,$1F,$80,$7F,$FC,$7F,$FC,$7F,$FC,$7F,$FC,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,_
  $80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character g
'
  $15,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$FB,$F0,$0F,$FF,$F0,$1F,$FF,$F0,$1F,$FF,$F0,$3F,$83,$F0,$3F,$03,$F0,$7E,_
  $03,$F0,$7E,$03,$F0,$7E,$03,$F0,$7E,$03,$F0,$7E,$03,$F0,$7E,$03,$F0,$7F,$03,$F0,$7F,$87,$F0,$3F,$FF,$F0,$3F,$FF,$F0,$1F,$FF,$F0,$0F,$FB,$F0,$03,$F3,$F0,$00,$03,$F0,$18,$07,$E0,$1E,$0F,$E0,$1F,$FF,$E0,_
  $1F,$FF,$C0,$1F,$FF,$00,$07,$FC,$00,_
'
' Data for character h
'
  $15,$00,$00,$00,$00,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$1F,$80,$3F,$7F,$C0,$3F,$FF,$E0,$3F,$FF,$E0,$3F,$FF,$F0,$3F,$87,$F0,$3F,_
  $03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character i
'
  $09,$00,$00,$00,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$00,$00,$00,$00,$00,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,_
  $00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character j
'
  $0C,$00,$00,$00,$00,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$00,$00,$00,$00,$00,$00,$3F,$E0,$3F,$E0,$3F,$E0,$3F,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,_
  $E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$07,$E0,$0F,$E0,$FF,$C0,$FF,$C0,$FF,$80,$FE,$00,_
'
' Data for character k
'
  $16,$00,$00,$00,$00,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$07,$F8,$3F,$07,$F0,$3F,$0F,$E0,$3F,$1F,$C0,$3F,$3F,$80,$3F,$3F,$00,$3F,_
  $7F,$00,$3F,$FE,$00,$3F,$FC,$00,$3F,$FE,$00,$3F,$FF,$00,$3F,$7F,$00,$3F,$3F,$80,$3F,$1F,$C0,$3F,$1F,$C0,$3F,$0F,$E0,$3F,$0F,$E0,$3F,$07,$F0,$3F,$03,$F8,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character l
'
  $09,$00,$00,$00,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,_
  $00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character m
'
  $20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$8F,$81,$F0,$1F,$BF,$C7,$F8,$1F,_
  $FF,$EF,$FC,$1F,$FF,$FF,$FE,$1F,$FF,$FF,$FE,$1F,$C7,$F8,$FE,$1F,$83,$F0,$7E,$1F,$83,$F0,$7E,$1F,$83,$F0,$7E,$1F,$83,$F0,$7E,$1F,$83,$F0,$7E,$1F,$83,$F0,$7E,$1F,$83,$F0,$7E,$1F,$83,$F0,$7E,$1F,$83,$F0,_
  $7E,$1F,$83,$F0,$7E,$1F,$83,$F0,$7E,$1F,$83,$F0,$7E,$1F,$83,$F0,$7E,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character n
'
  $15,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3F,$1F,$80,$3F,$7F,$C0,$3F,$FF,$E0,$3F,$FF,$E0,$3F,$FF,$F0,$3F,$87,$F0,$3F,_
  $03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character o
'
  $16,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,$FE,$00,$07,$FF,$80,$0F,$FF,$C0,$1F,$FF,$E0,$3F,$87,$F0,$3F,$03,$F0,$7E,_
  $01,$F8,$7E,$01,$F8,$7E,$01,$F8,$7E,$01,$F8,$7E,$01,$F8,$7E,$01,$F8,$7E,$01,$F8,$3F,$03,$F0,$3F,$87,$F0,$1F,$FF,$E0,$0F,$FF,$C0,$07,$FF,$80,$01,$FE,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character p
'
  $16,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3F,$1F,$80,$3F,$7F,$C0,$3F,$FF,$E0,$3F,$FF,$F0,$3F,$FF,$F0,$3F,$87,$F8,$3F,_
  $03,$F8,$3F,$01,$F8,$3F,$01,$F8,$3F,$01,$F8,$3F,$01,$F8,$3F,$01,$F8,$3F,$01,$F8,$3F,$03,$F0,$3F,$07,$F0,$3F,$FF,$E0,$3F,$FF,$C0,$3F,$FF,$80,$3F,$3F,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,$3F,$00,$00,_
  $3F,$00,$00,$3F,$00,$00,$3F,$00,$00,_
'
' Data for character q
'
  $15,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$F3,$F0,$07,$FF,$F0,$1F,$FF,$F0,$1F,$FF,$F0,$3F,$83,$F0,$3F,$03,$F0,$7E,_
  $03,$F0,$7E,$03,$F0,$7E,$03,$F0,$7E,$03,$F0,$7E,$03,$F0,$7E,$03,$F0,$7F,$03,$F0,$7F,$87,$F0,$3F,$FF,$F0,$3F,$FF,$F0,$1F,$FF,$F0,$0F,$FB,$F0,$03,$E3,$F0,$00,$03,$F0,$00,$03,$F0,$00,$03,$F0,$00,$03,$F0,_
  $00,$03,$F0,$00,$03,$F0,$00,$03,$F0,_
'
' Data for character r
'
  $10,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3F,$1E,$3F,$3E,$3F,$FE,$3F,$FE,$3F,$FE,$3F,$80,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$3F,_
  $00,$3F,$00,$3F,$00,$3F,$00,$3F,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character s
'
  $12,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$03,$FC,$00,$0F,$FF,$00,$3F,$FF,$00,$3F,$FF,$00,$7F,$07,$00,$7E,$01,$00,$7F,_
  $00,$00,$7F,$F0,$00,$3F,$FE,$00,$3F,$FF,$00,$0F,$FF,$80,$03,$FF,$80,$40,$3F,$80,$60,$1F,$80,$78,$3F,$80,$7F,$FF,$00,$7F,$FE,$00,$7F,$FC,$00,$0F,$F0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character t
'
  $10,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$7F,$FE,$7F,$FE,$7F,$FE,$7F,$FE,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,$80,$1F,_
  $C2,$1F,$FE,$0F,$FE,$07,$FE,$03,$FE,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character u
'
  $15,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,_
  $03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$03,$F0,$3F,$87,$F0,$3F,$FF,$F0,$1F,$FF,$F0,$1F,$FF,$F0,$0F,$FB,$F0,$07,$E3,$F0,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character v
'
  $15,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FE,$07,$F0,$7E,$07,$E0,$7E,$07,$E0,$7E,$07,$E0,$3F,$0F,$C0,$3F,$0F,$C0,$3F,_
  $0F,$C0,$1F,$9F,$80,$1F,$9F,$80,$1F,$9F,$80,$0F,$FF,$00,$0F,$FF,$00,$0F,$FF,$00,$07,$FE,$00,$07,$FE,$00,$03,$FC,$00,$03,$FC,$00,$03,$FC,$00,$01,$F8,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character w
'
  $20,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FC,$07,$E0,$7E,$FE,$07,$E0,$FE,$7E,_
  $0F,$E0,$FC,$7E,$0F,$E0,$FC,$7E,$0F,$F0,$FC,$3F,$1F,$F1,$F8,$3F,$1F,$F1,$F8,$3F,$1E,$F1,$F8,$1F,$1E,$F9,$F0,$1F,$BE,$F9,$F0,$1F,$BC,$7B,$F0,$1F,$BC,$7F,$F0,$0F,$FC,$7F,$E0,$0F,$FC,$7F,$E0,$0F,$F8,$3F,_
  $E0,$07,$F8,$3F,$C0,$07,$F8,$3F,$C0,$07,$F0,$3F,$C0,$07,$F0,$1F,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character x
'
  $16,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FF,$07,$F8,$7F,$07,$F0,$3F,$8F,$E0,$1F,$8F,$C0,$1F,$DF,$C0,$0F,$FF,$80,$07,_
  $FF,$00,$07,$FF,$00,$03,$FE,$00,$01,$FC,$00,$03,$FE,$00,$07,$FF,$00,$07,$FF,$00,$0F,$FF,$80,$1F,$DF,$C0,$1F,$8F,$C0,$3F,$8F,$E0,$7F,$07,$F0,$FF,$07,$F8,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character y
'
  $15,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$FE,$07,$F0,$7E,$07,$E0,$7E,$07,$E0,$7F,$07,$E0,$3F,$0F,$C0,$3F,$0F,$C0,$3F,_
  $8F,$C0,$1F,$9F,$80,$1F,$9F,$80,$0F,$DF,$80,$0F,$FF,$00,$0F,$FF,$00,$07,$FE,$00,$07,$FE,$00,$07,$FE,$00,$03,$FC,$00,$03,$FC,$00,$01,$FC,$00,$01,$F8,$00,$03,$F8,$00,$03,$F0,$00,$03,$F0,$00,$07,$F0,$00,_
  $07,$E0,$00,$0F,$E0,$00,$0F,$E0,$00,_
'
' Data for character z
'
  $12,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$7F,$FF,$80,$7F,$FF,$80,$7F,$FF,$80,$7F,$FF,$80,$00,$7F,$00,$00,$FF,$00,$00,_
  $FE,$00,$01,$FC,$00,$03,$F8,$00,$07,$F8,$00,$07,$F0,$00,$0F,$E0,$00,$1F,$C0,$00,$3F,$C0,$00,$3F,$80,$00,$7F,$FF,$80,$7F,$FF,$80,$7F,$FF,$80,$7F,$FF,$80,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,_
'
' Data for character {
'
  $15,$00,$00,$00,$00,$00,$00,$00,$0F,$F0,$00,$3F,$F0,$00,$7F,$F0,$00,$7F,$F0,$00,$FE,$00,$00,$FC,$00,$00,$F8,$00,$00,$F8,$00,$00,$F8,$00,$00,$F8,$00,$00,$F8,$00,$00,$F8,$00,$01,$F8,$00,$01,$F0,$00,$07,_
  $F0,$00,$7F,$C0,$00,$7F,$80,$00,$7F,$80,$00,$7F,$E0,$00,$07,$F0,$00,$01,$F0,$00,$01,$F8,$00,$00,$F8,$00,$00,$F8,$00,$00,$F8,$00,$00,$F8,$00,$00,$F8,$00,$00,$F8,$00,$00,$FC,$00,$00,$FE,$00,$00,$7F,$F0,_
  $00,$7F,$F0,$00,$3F,$F0,$00,$0F,$F0,_
'
' Data for character |
'
  $0F,$00,$00,$00,$00,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,_
  $7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,$00,$7C,_
'
' Data for character }
'
  $16,$00,$00,$00,$00,$00,$00,$3F,$C0,$00,$3F,$F0,$00,$3F,$F8,$00,$3F,$F8,$00,$01,$FC,$00,$00,$FC,$00,$00,$7C,$00,$00,$7C,$00,$00,$7C,$00,$00,$7C,$00,$00,$7C,$00,$00,$7C,$00,$00,$7E,$00,$00,$3E,$00,$00,_
  $3F,$80,$00,$0F,$F8,$00,$07,$F8,$00,$07,$F8,$00,$1F,$F8,$00,$3F,$80,$00,$3E,$00,$00,$7E,$00,$00,$7C,$00,$00,$7C,$00,$00,$7C,$00,$00,$7C,$00,$00,$7C,$00,$00,$7C,$00,$00,$FC,$00,$01,$FC,$00,$3F,$F8,$00,_
  $3F,$F8,$00,$3F,$F0,$00,$3F,$C0,$00,_
'
' Data for character ~
'
  $1C,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$01,_
  $F0,$03,$E0,$07,$FC,$03,$E0,$0F,$FE,$03,$E0,$1F,$FF,$03,$E0,$1F,$FF,$83,$E0,$1F,$1F,$C7,$C0,$3E,$0F,$FF,$C0,$3E,$07,$FF,$C0,$3E,$03,$FF,$80,$3E,$01,$FF,$00,$3E,$00,$7C,$00,$00,$00,$00,$00,$00,$00,$00,_
  $00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00,$00

$endif  ' _TahomaBold_24_inc_

As with all of my code listings, the code generated has comments to allow users to see what is happening.

charliecoutas

Fantastic work Les. Looking forward to trying some of it. I am sure we can incorporate some of this into exhibits at the museum. I love the look of those round displays.

Charlie