News:

;) This forum is the property of Proton software developers

Main Menu

ST7735 Library

Started by joesaliba, Jan 09, 2022, 11:35 AM

Previous topic - Next topic

joesaliba

Hi,

I am trying to convert a code I found for an artificial horizon using an ST7735 display. Video can be found here.

For this to happen, I downloaded Les @top204 excellent library for the ST7735.

What I am missing from this library is how to fill a rectangle. Any idea if it is in this library please? If yes, how can I use it?

I have seen that there is a procedure ST7735_SetWindow, which I am thinking that this should fill a rectangle. If it is, how can I change the colour?

I am still waiting for my ST7735 to arrive so it will take a while until I can post any progress.

Thank you

Joe

top204

#1
Create a procedure that makes a window the size of the rectangle required, then calculate how many pixel writes will be required to fill the window, and create a loop to write the pixels with the required colour. Below is a procedure used in the ST7735 library code:

'---------------------------------------------------------------------------
' Fill a rectangle with a colour.
' Input     : pXStart holds the top left corner X position
'           : pYStart holds the top left corner Y position
'           : pWidth holds the Width in pixels
'           : pHeight holds the Height in pixels
'           : pColour holds the 16-bit RGB565 Colour to fill with
' Output    : None
' Notes     : None
'
Proc ST7735_FillRect(pXStart As Byte, pYStart As Byte, pWidth As Byte, pHeight As Byte, pColour As Word)
    Dim bTemp As PRODL
    Dim lPixels As Long

    If pWidth = 0 Then ExitProc
    If pHeight = 0 Then ExitProc
    If pXStart >= ST_bWidth Then ExitProc
    If pYStart >= ST_bHeight Then ExitProc

    bTemp = pXStart + pWidth
    bTemp = bTemp - 1
    If bTemp >= ST_bWidth Then
        pWidth = ST_bWidth - pXStart
    EndIf
   
    bTemp = pYStart + pHeight
    bTemp = bTemp - 1
    If bTemp >= ST_bHeight Then
        pHeight = ST_bHeight - pYStart
    EndIf

    ST7735_Window(pXStart, pYStart, pWidth, pHeight)        ' Create a window for the size of the rectangle to fill
    lPixels = pWidth * pHeight                              ' Calculate how many pixels need to be written to fill the window
    Repeat                                                  ' \ Create a loop to fill the window
        Dec lPixels                                         ' /
        ST7735_Write16(pColour)                             ' Write a colour value to a pixel in the window
    Until lPixels = 0                                       ' Loop until all the pixels are written
    ST7735_SPI_Finish()                                     ' Finish the SPI interface
EndProc

joesaliba

Thanks Les,

With the above procedure I think that: -

ST7735_Window
should read: -

ST7735_SetWindow
There might be other things that need to clarify, but that will be once my hardware is here and tests begin.

Regards

Joe

top204

#3
I created a different library for the ST7735 for someone, and added the filled rectangle and filled circle procedures, so the names in the above code will be different, but the "Window" purpose remains the same. Also make sure the SPI interface is set and cleared correctly within your code with the above procedure, because I made the new library more efficient, and the ST7735_Window procedure keeps the SPI open because other writes will always happen after the window is created, so the writes can follow directly, then the SPI interface is closed once they are written.

joesaliba

I see the: -

ST7735_SPI_Finish()                                     ' Finish the SPI interface
which I did not notice before.

I must make some research how to open / close the SPI and when I get the hardware make some tests.

I will post the converted code once done. There are some things that I could not understand to convert, but I think I can live without them.

Regards

Joe

top204

The SPI finish is a preprocessor meta-macro that brings the LCD's CS line high, and starting the SPI interface is pulling the CS line low.

flosigud

ST7735 is similar to ILI9341. The difference is mostly in the initializing. I originally wrote a driver for ST7735, but then changed horses in mid river. Consequently it can be used for both. However the ILI9341 is in my opinion much better and only slightly more expensive. Obviously any driver for either of these displays could be modified for the other. If you don't use spi for anything else you can pull CS low all the time.

joesaliba

Thank flosi for your reply.

The display I am going to use is a small 1.8". I only found the ST7735 driver.

I will also be looking at the ILI9341 library. I see that there have been a lot of updates to that library. Can you please point me to the latest one?

By pulling the CS low, you mean all the time?

Is it correct to say that if I have two displays I can toggle the CS line between them to update or one screen or the other?

Thank you
Regards

Joe

flosigud

I'm not shure what version is last. I lost the last version I made.
Regarding CS. You can leave CS pulled low all the time, but I'm not saying it is a good idea. Most drivers have far too many CS and I saved a lot of space when I reduced their number in my driver. In 18f SPI there is nothing to flush. Transmission is over when Buffer full flag is set.

John Drew

Joe,
You can switch between devices with CS with other SPI connections in parallel. So yes two displays with separate CS.
John

joesaliba

@John Drew

From other posts you seem that you have used the ILI9341 library.

Do you have a `latest' version please, or do you know from where I can download it?

I have another display coming which uses the ILI9341 and need this library.

Thanks

Joe

John Drew

Quote from: joesaliba on Jan 21, 2022, 06:36 AM@John Drew

From other posts you seem that you have used the ILI9341 library.

Do you have a `latest' version please, or do you know from where I can download it?

I have another display coming which uses the ILI9341 and need this library.

Thanks

Joe
Joe, I have a version but I don't know if it is the latest.
Flosi and Les know far more than me.
I have put some sample code in the WIKI some time back and it's probably still there. It's working well for me. The ILI9341 with touch is my display of choice now.
I'm using my phone at present and it's time for bed. If you can't find my entry let me know and I'll repost over the weekend.
John

joesaliba

Thanks @John Drew

I found the entry. For now I do not need the touch.

In that forum thread I noticed a link to a font converter, here. Downloaded zip file is password protected and is not listed in that page. Does someone knows what was the password?

Thank you

Joe

Pepe

#13
The password is 320volt.com

flosigud

This font converter seems to be for the Samsung display we all used to use late in last century. Samsung display was just like the Hitachi without empty space between lines and the lines called banks. The TFT displays are not banks, just one continuous memory arranged as a rectangle. There is only one way of printing to the display, you define a rectangle and then fill it. Size one pixel to full screen. Below is an example of the fonts I use.


Quote' -------------------------------------------------------------------
' Installed Font Structure
' Label: Arial_12
' Description:  Height: 15 pixels, 1 bit per pixel, Range: ' ' to '~'
' -------------------------------------------------------------------

'
' Font header
' -----------------------------------
Arial_12: CData Byte $00,_ ' Font ID
 $00,_ ' Font information:  1 bit per pixel, Characters zero degree's rotation
 $20, $00,_ ' First Character
 $7E, $00,_ ' Last Character
 $0F, $00,_ ' Height
'
' Font Glyph Table
' -----------------------------------
 $03,_ '  width of the glyph
 $84, $01, $00,_ ' Character - 32, offset ($00000184)
 $03,_ '  width of the glyph
 $93, $01, $00,_ ' Character - 33, offset ($00000193)
 $04,_ '  width of the glyph
 $A2, $01, $00,_ ' Character - 34, offset ($000001A2)
 $07,_ '  width of the glyph
 $B1, $01, $00,_ ' Character - 35, offset ($000001B1)
 $07,_ '  width of the glyph
 $C0, $01, $00,_ ' Character - 36, offset ($000001C0)
 $0B,_ '  width of the glyph
 $CF, $01, $00,_ ' Character - 37, offset ($000001CF)
 $08,_ '  width of the glyph
 $ED, $01, $00,_ ' Character - 38, offset ($000001ED)
 $02,_ '  width of the glyph
 $FC, $01, $00,_ ' Character - 39, offset ($000001FC)
 $04,_ '  width of the glyph
 $0B, $02, $00,_ ' Character - 40, offset ($0000020B)
 $04,_ '  width of the glyph
 $1A, $02, $00,_ ' Character - 41, offset ($0000021A)
 $05,_ '  width of the glyph
 $29, $02, $00,_ ' Character - 42, offset ($00000229)
 $07,_ '  width of the glyph
 $38, $02, $00,_ ' Character - 43, offset ($00000238)
 $03,_ '  width of the glyph
 $47, $02, $00,_ ' Character - 44, offset ($00000247)
 $04,_ '  width of the glyph
 $56, $02, $00,_ ' Character - 45, offset ($00000256)
 $03,_ '  width of the glyph
 $65, $02, $00,_ ' Character - 46, offset ($00000265)
 $03,_ '  width of the glyph
 $74, $02, $00,_ ' Character - 47, offset ($00000274)
 $07,_ '  width of the glyph
 $83, $02, $00,_ ' Character - 48, offset ($00000283)
 $07,_ '  width of the glyph
 $92, $02, $00,_ ' Character - 49, offset ($00000292)
 $07,_ '  width of the glyph
 $A1, $02, $00,_ ' Character - 50, offset ($000002A1)
 $07,_ '  width of the glyph
 $B0, $02, $00,_ ' Character - 51, offset ($000002B0)
 $07,_ '  width of the glyph
 $BF, $02, $00,_ ' Character - 52, offset ($000002BF)
 $07,_ '  width of the glyph
 $CE, $02, $00,_ ' Character - 53, offset ($000002CE)
 $07,_ '  width of the glyph
 $DD, $02, $00,_ ' Character - 54, offset ($000002DD)
 $07,_ '  width of the glyph
 $EC, $02, $00,_ ' Character - 55, offset ($000002EC)
 $07,_ '  width of the glyph
 $FB, $02, $00,_ ' Character - 56, offset ($000002FB)
 $07,_ '  width of the glyph
 $0A, $03, $00,_ ' Character - 57, offset ($0000030A)
 $03,_ '  width of the glyph
 $19, $03, $00,_ ' Character - 58, offset ($00000319)
 $03,_ '  width of the glyph
 $28, $03, $00,_ ' Character - 59, offset ($00000328)
 $07,_ '  width of the glyph
 $37, $03, $00,_ ' Character - 60, offset ($00000337)
 $07,_ '  width of the glyph
 $46, $03, $00,_ ' Character - 61, offset ($00000346)
 $07,_ '  width of the glyph
 $55, $03, $00,_ ' Character - 62, offset ($00000355)
 $07,_ '  width of the glyph
 $64, $03, $00,_ ' Character - 63, offset ($00000364)
 $0C,_ '  width of the glyph
 $73, $03, $00,_ ' Character - 64, offset ($00000373)
 $07,_ '  width of the glyph
 $91, $03, $00,_ ' Character - 65, offset ($00000391)
 $08,_ '  width of the glyph
 $A0, $03, $00,_ ' Character - 66, offset ($000003A0)
 $09,_ '  width of the glyph
 $AF, $03, $00,_ ' Character - 67, offset ($000003AF)
 $09,_ '  width of the glyph
 $CD, $03, $00,_ ' Character - 68, offset ($000003CD)
 $08,_ '  width of the glyph
 $EB, $03, $00,_ ' Character - 69, offset ($000003EB)
 $07,_ '  width of the glyph
 $FA, $03, $00,_ ' Character - 70, offset ($000003FA)
 $09,_ '  width of the glyph
 $09, $04, $00,_ ' Character - 71, offset ($00000409)
 $09,_ '  width of the glyph
 $27, $04, $00,_ ' Character - 72, offset ($00000427)
 $03,_ '  width of the glyph
 $45, $04, $00,_ ' Character - 73, offset ($00000445)
 $06,_ '  width of the glyph
 $54, $04, $00,_ ' Character - 74, offset ($00000454)
 $08,_ '  width of the glyph
 $63, $04, $00,_ ' Character - 75, offset ($00000463)
 $07,_ '  width of the glyph
 $72, $04, $00,_ ' Character - 76, offset ($00000472)
 $09,_ '  width of the glyph
 $81, $04, $00,_ ' Character - 77, offset ($00000481)
 $09,_ '  width of the glyph
 $9F, $04, $00,_ ' Character - 78, offset ($0000049F)
 $09,_ '  width of the glyph
 $BD, $04, $00,_ ' Character - 79, offset ($000004BD)
 $08,_ '  width of the glyph
 $DB, $04, $00,_ ' Character - 80, offset ($000004DB)
 $09,_ '  width of the glyph
 $EA, $04, $00,_ ' Character - 81, offset ($000004EA)
 $09,_ '  width of the glyph
 $08, $05, $00,_ ' Character - 82, offset ($00000508)
 $08,_ '  width of the glyph
 $26, $05, $00,_ ' Character - 83, offset ($00000526)
 $07,_ '  width of the glyph
 $35, $05, $00,_ ' Character - 84, offset ($00000535)
 $09,_ '  width of the glyph
 $44, $05, $00,_ ' Character - 85, offset ($00000544)
 $07,_ '  width of the glyph
 $62, $05, $00,_ ' Character - 86, offset ($00000562)
 $0B,_ '  width of the glyph
 $71, $05, $00,_ ' Character - 87, offset ($00000571)
 $07,_ '  width of the glyph
 $8F, $05, $00,_ ' Character - 88, offset ($0000058F)
 $07,_ '  width of the glyph
 $9E, $05, $00,_ ' Character - 89, offset ($0000059E)
 $07,_ '  width of the glyph
 $AD, $05, $00,_ ' Character - 90, offset ($000005AD)
 $03,_ '  width of the glyph
 $BC, $05, $00,_ ' Character - 91, offset ($000005BC)
 $03,_ '  width of the glyph
 $CB, $05, $00,_ ' Character - 92, offset ($000005CB)
 $03,_ '  width of the glyph
 $DA, $05, $00,_ ' Character - 93, offset ($000005DA)
 $05,_ '  width of the glyph
 $E9, $05, $00,_ ' Character - 94, offset ($000005E9)
 $07,_ '  width of the glyph
 $F8, $05, $00,_ ' Character - 95, offset ($000005F8)
 $04,_ '  width of the glyph
 $07, $06, $00,_ ' Character - 96, offset ($00000607)
 $07,_ '  width of the glyph
 $16, $06, $00,_ ' Character - 97, offset ($00000616)
 $07,_ '  width of the glyph
 $25, $06, $00,_ ' Character - 98, offset ($00000625)
 $06,_ '  width of the glyph
 $34, $06, $00,_ ' Character - 99, offset ($00000634)
 $07,_ '  width of the glyph
 $43, $06, $00,_ ' Character - 100, offset ($00000643)
 $07,_ '  width of the glyph
 $52, $06, $00,_ ' Character - 101, offset ($00000652)
 $04,_ '  width of the glyph
 $61, $06, $00,_ ' Character - 102, offset ($00000661)
 $07,_ '  width of the glyph
 $70, $06, $00,_ ' Character - 103, offset ($00000670)
 $07,_ '  width of the glyph
 $7F, $06, $00,_ ' Character - 104, offset ($0000067F)
 $03,_ '  width of the glyph
 $8E, $06, $00,_ ' Character - 105, offset ($0000068E)
 $03,_ '  width of the glyph
 $9D, $06, $00,_ ' Character - 106, offset ($0000069D)
 $06,_ '  width of the glyph
 $AC, $06, $00,_ ' Character - 107, offset ($000006AC)
 $03,_ '  width of the glyph
 $BB, $06, $00,_ ' Character - 108, offset ($000006BB)
 $0B,_ '  width of the glyph
 $CA, $06, $00,_ ' Character - 109, offset ($000006CA)
 $07,_ '  width of the glyph
 $E8, $06, $00,_ ' Character - 110, offset ($000006E8)
 $07,_ '  width of the glyph
 $F7, $06, $00,_ ' Character - 111, offset ($000006F7)
 $07,_ '  width of the glyph
 $06, $07, $00,_ ' Character - 112, offset ($00000706)
 $07,_ '  width of the glyph
 $15, $07, $00,_ ' Character - 113, offset ($00000715)
 $04,_ '  width of the glyph
 $24, $07, $00,_ ' Character - 114, offset ($00000724)
 $07,_ '  width of the glyph
 $33, $07, $00,_ ' Character - 115, offset ($00000733)
 $03,_ '  width of the glyph
 $42, $07, $00,_ ' Character - 116, offset ($00000742)
 $07,_ '  width of the glyph
 $51, $07, $00,_ ' Character - 117, offset ($00000751)
 $05,_ '  width of the glyph
 $60, $07, $00,_ ' Character - 118, offset ($00000760)
 $09,_ '  width of the glyph
 $6F, $07, $00,_ ' Character - 119, offset ($0000076F)
 $05,_ '  width of the glyph
 $8D, $07, $00,_ ' Character - 120, offset ($0000078D)
 $05,_ '  width of the glyph
 $9C, $07, $00,_ ' Character - 121, offset ($0000079C)
 $05,_ '  width of the glyph
 $AB, $07, $00,_ ' Character - 122, offset ($000007AB)
 $04,_ '  width of the glyph
 $BA, $07, $00,_ ' Character - 123, offset ($000007BA)
 $03,_ '  width of the glyph
 $C9, $07, $00,_ ' Character - 124, offset ($000007C9)
 $04,_ '  width of the glyph
 $D8, $07, $00,_ ' Character - 125, offset ($000007D8)
 $07,_ '  width of the glyph
 $E7, $07, $00,_ ' Character - 126, offset ($000007E7)
'
' Font Characters
' -----------------------------------
'
' Character - 32
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       

'
' Character - 33
' -----------------------------------
 $00,_ '        
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $00,_ '       
 $02,_ '  *     
 $00,_ '       
 $00,_ '       
 $00,_ '       

'
' Character - 34
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $05,_ ' * *   
 $05,_ ' * *   
 $05,_ ' * *   
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       

'
' Character - 35
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $28,_ '    * * 
 $28,_ '    * * 
 $7F,_ ' *******
 $14,_ '  * * 
 $14,_ '  * * 
 $7F,_ ' *******
 $0A,_ '  * *   
 $0A,_ '  * *   
 $0A,_ '  * *   
 $00,_ '       
 $00,_ '       
 $00,_ '       

'
' Character - 36
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $1C,_ '  *** 
 $2A,_ '  * * * 
 $0A,_ '  * *   
 $0A,_ '  * *   
 $1C,_ '  *** 
 $28,_ '    * * 
 $2A,_ '  * * * 
 $2A,_ '  * * * 
 $1C,_ '  *** 
 $08,_ '    *   
 $00,_ '       
 $00,_ '       

'
' Character - 37
' -----------------------------------
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               
 $8C, $00,_ '  **  *       
 $52, $00,_ '  *  * *       
 $52, $00,_ '  *  * *       
 $32, $00,_ '  *  **         
 $AC, $01,_ '  ** * **     
 $60, $02,_ '      **  *     
 $50, $02,_ '    * *  *     
 $50, $02,_ '    * *  *     
 $88, $01,_ '    *  **     
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               

'
' Character - 38
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $18,_ '    ** 
 $24,_ '  *  * 
 $24,_ '  *  * 
 $14,_ '  * * 
 $0C,_ '  **   
 $52,_ '  *  * *
 $22,_ '  *  * 
 $62,_ '  *  **
 $9C,_ '  ***  *
 $00,_ '       
 $00,_ '       
 $00,_ '       

'
' Character - 39
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       

'
' Character - 40
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $08,_ '    *   
 $04,_ '  *   
 $04,_ '  *   
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $04,_ '  *   
 $04,_ '  *   
 $08,_ '    *   
 $00,_ '       

'
' Character - 41
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $01,_ ' *     
 $02,_ '  *     
 $02,_ '  *     
 $04,_ '  *   
 $04,_ '  *   
 $04,_ '  *   
 $04,_ '  *   
 $04,_ '  *   
 $02,_ '  *     
 $02,_ '  *     
 $01,_ ' *     
 $00,_ '       

'
' Character - 42
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $04,_ '  *   
 $1F,_ ' ***** 
 $04,_ '  *   
 $0A,_ '  * *   
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 43
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $08,_ '    *   
 $08,_ '    *   
 $3E,_ '  ***** 
 $08,_ '    *   
 $08,_ '    *   
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 44
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $00,_ '       

' -----------------------------------
' Character - 45
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $07,_ ' ***   
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 46
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 47
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $04,_ '  *   
 $04,_ '  *   
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $01,_ ' *     
 $01,_ ' *     
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 48
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $1C,_ '  *** 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $1C,_ '  *** 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 49
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $08,_ '    *   
 $0C,_ '  **   
 $0A,_ '  * *   
 $08,_ '    *   
 $08,_ '    *   
 $08,_ '    *   
 $08,_ '    *   
 $08,_ '    *   
 $08,_ '    *   
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 50
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $1C,_ '  *** 
 $22,_ '  *  * 
 $20,_ '      * 
 $20,_ '      * 
 $10,_ '    * 
 $10,_ '    * 
 $08,_ '    *   
 $04,_ '  *   
 $3E,_ '  ***** 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 51
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $1C,_ '  *** 
 $22,_ '  *  * 
 $20,_ '      * 
 $20,_ '      * 
 $18,_ '    ** 
 $20,_ '      * 
 $20,_ '      * 
 $22,_ '  *  * 
 $1C,_ '  *** 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 52
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $10,_ '    * 
 $18,_ '    ** 
 $18,_ '    ** 
 $14,_ '  * * 
 $14,_ '  * * 
 $12,_ '  *  * 
 $3E,_ '  ***** 
 $10,_ '    * 
 $10,_ '    * 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 53
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $3C,_ '  **** 
 $04,_ '  *   
 $02,_ '  *     
 $1E,_ '  **** 
 $22,_ '  *  * 
 $20,_ '      * 
 $20,_ '      * 
 $22,_ '  *  * 
 $1C,_ '  *** 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 54
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $1C,_ '  *** 
 $22,_ '  *  * 
 $02,_ '  *     
 $1A,_ '  * ** 
 $26,_ '  **  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $1C,_ '  *** 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 55
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $3E,_ '  ***** 
 $20,_ '      * 
 $10,_ '    * 
 $08,_ '    *   
 $08,_ '    *   
 $08,_ '    *   
 $04,_ '  *   
 $04,_ '  *   
 $04,_ '  *   
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 56
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $1C,_ '  *** 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $1C,_ '  *** 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $1C,_ '  *** 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 57
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $1C,_ '  *** 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $32,_ '  *  ** 
 $2C,_ '  ** * 
 $20,_ '      * 
 $22,_ '  *  * 
 $1C,_ '  *** 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 58
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 59
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $00,_ '       

' -----------------------------------
' Character - 60
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $20,_ '      * 
 $1C,_ '  *** 
 $02,_ '  *     
 $1C,_ '  *** 
 $20,_ '      * 
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 61
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $3F,_ ' ****** 
 $00,_ '       
 $00,_ '       
 $3F,_ ' ****** 
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 62
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $1C,_ '  *** 
 $20,_ '      * 
 $1C,_ '  *** 
 $02,_ '  *     
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 63
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $1C,_ '  *** 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $20,_ '      * 
 $10,_ '    * 
 $08,_ '    *   
 $08,_ '    *   
 $00,_ '       
 $08,_ '    *   
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 64
' -----------------------------------
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               
 $E0, $01,_ '      ****     
 $18, $06,_ '    **    **   
 $04, $04,_ '  *      *   
 $64, $09,_ '  *  ** *  *   
 $92, $09,_ '  *  *  **  *   
 $8A, $08,_ '  * *  *  *   
 $8A, $08,_ '  * *  *  *   
 $8A, $04,_ '  * *  *  *   
 $F2, $03,_ '  *  ******     
 $04, $08,_ '  *        *   
 $08, $06,_ '    *    **   
 $F0, $01,_ '    *****     

' -----------------------------------
' Character - 65
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $08,_ '    *   
 $14,_ '  * * 
 $14,_ '  * * 
 $14,_ '  * * 
 $22,_ '  *  * 
 $3E,_ '  ***** 
 $22,_ '  *  * 
 $41,_ ' *    *
 $41,_ ' *    *
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 66
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $3E,_ '  ***** 
 $42,_ '  *    *
 $42,_ '  *    *
 $42,_ '  *    *
 $3E,_ '  ***** 
 $42,_ '  *    *
 $42,_ '  *    *
 $42,_ '  *    *
 $3E,_ '  ***** 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 67
' -----------------------------------
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               
 $38, $00,_ '    ***         
 $44, $00,_ '  *  *       
 $82, $00,_ '  *    *       
 $02, $00,_ '  *             
 $02, $00,_ '  *             
 $02, $00,_ '  *             
 $82, $00,_ '  *    *       
 $44, $00,_ '  *  *       
 $38, $00,_ '    ***         
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               

' -----------------------------------
' Character - 68
' -----------------------------------
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               
 $3E, $00,_ '  *****         
 $42, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $42, $00,_ '  *    *       
 $3E, $00,_ '  *****         
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               

' -----------------------------------
' Character - 69
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $7E,_ '  ******
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $7E,_ '  ******
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $7E,_ '  ******
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 70
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $3E,_ '  ***** 
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $1E,_ '  **** 
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 71
' -----------------------------------
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               
 $38, $00,_ '    ***         
 $44, $00,_ '  *  *       
 $82, $00,_ '  *    *       
 $02, $00,_ '  *             
 $E2, $00,_ '  *  ***       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $44, $00,_ '  *  *       
 $38, $00,_ '    ***         
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               

' -----------------------------------
' Character - 72
' -----------------------------------
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $FE, $00,_ '  *******       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               

' -----------------------------------
' Character - 73
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 74
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $10,_ '    * 
 $10,_ '    * 
 $10,_ '    * 
 $10,_ '    * 
 $10,_ '    * 
 $10,_ '    * 
 $11,_ ' *  * 
 $11,_ ' *  * 
 $0E,_ '  ***   
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 75
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $82,_ '  *    *
 $42,_ '  *    *
 $22,_ '  *  * 
 $12,_ '  *  * 
 $0A,_ '  * *   
 $16,_ '  ** * 
 $22,_ '  *  * 
 $42,_ '  *    *
 $82,_ '  *    *
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 76
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $7E,_ '  ******
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 77
' -----------------------------------
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               
 $82, $00,_ '  *    *       
 $C6, $00,_ '  **  **       
 $C6, $00,_ '  **  **       
 $AA, $00,_ '  * * * *       
 $AA, $00,_ '  * * * *       
 $AA, $00,_ '  * * * *       
 $AA, $00,_ '  * * * *       
 $92, $00,_ '  *  *  *       
 $92, $00,_ '  *  *  *       
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               

' -----------------------------------
' Character - 78
' -----------------------------------
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               
 $82, $00,_ '  *    *       
 $86, $00,_ '  **    *       
 $8A, $00,_ '  * *  *       
 $8A, $00,_ '  * *  *       
 $92, $00,_ '  *  *  *       
 $A2, $00,_ '  *  * *       
 $A2, $00,_ '  *  * *       
 $C2, $00,_ '  *    **       
 $82, $00,_ '  *    *       
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               

' -----------------------------------
' Character - 79
' -----------------------------------
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               
 $38, $00,_ '    ***         
 $44, $00,_ '  *  *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $44, $00,_ '  *  *       
 $38, $00,_ '    ***         
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               

' -----------------------------------
' Character - 80
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $3E,_ '  ***** 
 $42,_ '  *    *
 $42,_ '  *    *
 $42,_ '  *    *
 $3E,_ '  ***** 
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 81
' -----------------------------------
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               
 $38, $00,_ '    ***         
 $44, $00,_ '  *  *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $B2, $00,_ '  *  ** *       
 $44, $00,_ '  *  *       
 $B8, $00,_ '    *** *       
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               

' -----------------------------------
' Character - 82
' -----------------------------------
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               
 $7E, $00,_ '  ******       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $7E, $00,_ '  ******       
 $22, $00,_ '  *  *         
 $42, $00,_ '  *    *       
 $42, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               

' -----------------------------------
' Character - 83
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $3C,_ '  **** 
 $42,_ '  *    *
 $42,_ '  *    *
 $02,_ '  *     
 $3C,_ '  **** 
 $40,_ '      *
 $42,_ '  *    *
 $42,_ '  *    *
 $3C,_ '  **** 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 84
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $7F,_ ' *******
 $08,_ '    *   
 $08,_ '    *   
 $08,_ '    *   
 $08,_ '    *   
 $08,_ '    *   
 $08,_ '    *   
 $08,_ '    *   
 $08,_ '    *   
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 85
' -----------------------------------
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $82, $00,_ '  *    *       
 $44, $00,_ '  *  *       
 $38, $00,_ '    ***         
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               

' -----------------------------------
' Character - 86
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $41,_ ' *    *
 $41,_ ' *    *
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $14,_ '  * * 
 $14,_ '  * * 
 $08,_ '    *   
 $08,_ '    *   
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 87
' -----------------------------------
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               
 $21, $04,_ ' *    *    *   
 $51, $04,_ ' *  * *  *   
 $51, $02,_ ' *  * *  *     
 $52, $02,_ '  *  * *  *     
 $8A, $02,_ '  * *  * *     
 $8A, $02,_ '  * *  * *     
 $8A, $02,_ '  * *  * *     
 $04, $01,_ '  *    *     
 $04, $01,_ '  *    *     
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               

' -----------------------------------
' Character - 88
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $41,_ ' *    *
 $22,_ '  *  * 
 $12,_ '  *  * 
 $14,_ '  * * 
 $08,_ '    *   
 $14,_ '  * * 
 $12,_ '  *  * 
 $22,_ '  *  * 
 $41,_ ' *    *
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 89
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $41,_ ' *    *
 $22,_ '  *  * 
 $22,_ '  *  * 
 $14,_ '  * * 
 $08,_ '    *   
 $08,_ '    *   
 $08,_ '    *   
 $08,_ '    *   
 $08,_ '    *   
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 90
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $7E,_ '  ******
 $20,_ '      * 
 $10,_ '    * 
 $10,_ '    * 
 $08,_ '    *   
 $04,_ '  *   
 $04,_ '  *   
 $02,_ '  *     
 $7F,_ ' *******
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 91
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $06,_ '  **   
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $06,_ '  **   
 $00,_ '       

' -----------------------------------
' Character - 92
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $01,_ ' *     
 $01,_ ' *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $04,_ '  *   
 $04,_ '  *   
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 93
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $03,_ ' **     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $03,_ ' **     
 $00,_ '       

' -----------------------------------
' Character - 94
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $04,_ '  *   
 $0A,_ '  * *   
 $0A,_ '  * *   
 $0A,_ '  * *   
 $11,_ ' *  * 
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 95
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $7F,_ ' *******
 $00,_ '       

' -----------------------------------
' Character - 96
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $04,_ '  *   
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 97
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $1C,_ '  *** 
 $22,_ '  *  * 
 $20,_ '      * 
 $3C,_ '  **** 
 $22,_ '  *  * 
 $32,_ '  *  ** 
 $2C,_ '  ** * 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 98
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $02,_ '  *     
 $1A,_ '  * ** 
 $26,_ '  **  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $26,_ '  **  * 
 $1A,_ '  * ** 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 99
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $0C,_ '  **   
 $12,_ '  *  * 
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $12,_ '  *  * 
 $0C,_ '  **   
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 100
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $20,_ '      * 
 $20,_ '      * 
 $2C,_ '  ** * 
 $32,_ '  *  ** 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $32,_ '  *  ** 
 $2C,_ '  ** * 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 101
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $1C,_ '  *** 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $3E,_ '  ***** 
 $02,_ '  *     
 $22,_ '  *  * 
 $1C,_ '  *** 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 102
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $0C,_ '  **   
 $02,_ '  *     
 $07,_ ' ***   
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 103
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $2C,_ '  ** * 
 $32,_ '  *  ** 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $32,_ '  *  ** 
 $2C,_ '  ** * 
 $20,_ '      * 
 $1E,_ '  **** 
 $00,_ '       

' -----------------------------------
' Character - 104
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $02,_ '  *     
 $1A,_ '  * ** 
 $26,_ '  **  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 105
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $00,_ '       
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 106
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $04,_ '  *   
 $00,_ '       
 $04,_ '  *   
 $04,_ '  *   
 $04,_ '  *   
 $04,_ '  *   
 $04,_ '  *   
 $04,_ '  *   
 $04,_ '  *   
 $04,_ '  *   
 $02,_ '  *     
 $00,_ '       

' -----------------------------------
' Character - 107
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $02,_ '  *     
 $22,_ '  *  * 
 $12,_ '  *  * 
 $0A,_ '  * *   
 $0E,_ '  ***   
 $12,_ '  *  * 
 $12,_ '  *  * 
 $22,_ '  *  * 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 108
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 109
' -----------------------------------
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               
 $9A, $01,_ '  * **  **     
 $66, $02,_ '  **  **  *     
 $22, $02,_ '  *  *  *     
 $22, $02,_ '  *  *  *     
 $22, $02,_ '  *  *  *     
 $22, $02,_ '  *  *  *     
 $22, $02,_ '  *  *  *     
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               

' -----------------------------------
' Character - 110
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $1A,_ '  * ** 
 $26,_ '  **  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 111
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $1C,_ '  *** 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $1C,_ '  *** 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 112
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $1A,_ '  * ** 
 $26,_ '  **  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $26,_ '  **  * 
 $1A,_ '  * ** 
 $02,_ '  *     
 $02,_ '  *     
 $00,_ '       

' -----------------------------------
' Character - 113
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $2C,_ '  ** * 
 $32,_ '  *  ** 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $32,_ '  *  ** 
 $2C,_ '  ** * 
 $20,_ '      * 
 $20,_ '      * 
 $00,_ '       

' -----------------------------------
' Character - 114
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $0A,_ '  * *   
 $06,_ '  **   
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 115
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $1C,_ '  *** 
 $22,_ '  *  * 
 $02,_ '  *     
 $1C,_ '  *** 
 $20,_ '      * 
 $22,_ '  *  * 
 $1C,_ '  *** 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 116
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $02,_ '  *     
 $07,_ ' ***   
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $06,_ '  **   
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 117
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $22,_ '  *  * 
 $32,_ '  *  ** 
 $2C,_ '  ** * 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 118
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $11,_ ' *  * 
 $11,_ ' *  * 
 $0A,_ '  * *   
 $0A,_ '  * *   
 $0A,_ '  * *   
 $04,_ '  *   
 $04,_ '  *   
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 119
' -----------------------------------
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               
 $11, $01,_ ' *  *  *     
 $11, $01,_ ' *  *  *     
 $AA, $00,_ '  * * * *       
 $AA, $00,_ '  * * * *       
 $AA, $00,_ '  * * * *       
 $44, $00,_ '  *  *       
 $44, $00,_ '  *  *       
 $00, $00,_ '               
 $00, $00,_ '               
 $00, $00,_ '               

' -----------------------------------
' Character - 120
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $11,_ ' *  * 
 $0A,_ '  * *   
 $0A,_ '  * *   
 $04,_ '  *   
 $06,_ '  **   
 $0A,_ '  * *   
 $11,_ ' *  * 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 121
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $11,_ ' *  * 
 $11,_ ' *  * 
 $0A,_ '  * *   
 $0A,_ '  * *   
 $0A,_ '  * *   
 $04,_ '  *   
 $04,_ '  *   
 $04,_ '  *   
 $02,_ '  *     
 $00,_ '       

' -----------------------------------
' Character - 122
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $1F,_ ' ***** 
 $08,_ '    *   
 $08,_ '    *   
 $04,_ '  *   
 $02,_ '  *     
 $02,_ '  *     
 $1F,_ ' ***** 
 $00,_ '       
 $00,_ '       
 $00,_ '       

' -----------------------------------
' Character - 123
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $04,_ '  *   
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $01,_ ' *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $04,_ '  *   
 $00,_ '       

'
' Character - 124
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $02,_ '  *     
 $00,_ '       

'
' Character - 125
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $02,_ '  *     
 $04,_ '  *   
 $04,_ '  *   
 $04,_ '  *   
 $04,_ '  *   
 $08,_ '    *   
 $04,_ '  *   
 $04,_ '  *   
 $04,_ '  *   
 $04,_ '  *   
 $02,_ '  *     
 $00,_ '       

'
' Character - 126
' -----------------------------------
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $4C,_ '  **  *
 $32,_ '  *  ** 
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00,_ '       
 $00

joesaliba

@top204

The I set orientation to `2', portrait, but fill rectangle seems to be filling in landscape. Changing width and height in orientation works, but then it will affect other items. 

Also, it seems to be filling from right to left, rather than left to right, but if I try a line it begin as expected.

How can I fix it please?

Regards

Joe

Pepe

After some hours of work I have corrected the errors of the fillrect procedure for the different orientations (1-4) as shown in the simulation in proteus and the example in proton basic that uses the st7735 library that I had previously modified.

'---------------------------------------------------------------------------
' Fill a rectangle with a colour.
' Input     : pXStart holds the top left corner X position
'           : pYStart holds the top left corner Y position
'           : pWidth holds the Width in pixels
'           : pHeight holds the Height in pixels
'           : pColour holds the 16-bit RGB565 Colour to fill with
' Output    : None
' Notes     : None
'
Proc ST7735_FillRect(pXStart As Byte, pYStart As Byte, pWidth As Byte, pHeight As Byte, pColour As Word)
    Dim bTemp As PRODL
    Dim lPixels As Word

    If pWidth = 0 Then ExitProc
    If pHeight = 0 Then ExitProc
    If pXStart >= ST_bWidth Then ExitProc
    If pYStart >= ST_bHeight Then ExitProc

    bTemp = pXStart + pWidth 
    If bTemp >= ST_bWidth Then bTemp = ST_bWidth -1
    pWidth = bTemp
   
    bTemp = pYStart + pHeight
    If bTemp >= ST_bHeight Then  bTemp = ST_bHeight -1
    pHeight = bTemp
   
    lPixels = (pWidth + 1 - pXStart) *( pHeight + 1 - pYStart)                             ' Calculate how many pixels need to be written to fill the window

    Declare Byte_Maths = On
    ST7735_SetWindow(pYStart,pXStart, pHeight, pWidth)        ' Create a window for the size of the rectangle to fill
    Declare Byte_Maths = Off                            ' Reset the expressions to normal
    PinSet ST7735_DC_Pin                            ' Setup the ST7735 for data mode
    PinClear ST7735_CS_Pin 
   
    Repeat                                                  ' \ Create a loop to fill the window
        Dec lPixels                                         ' /
        ST7735_Write16(pColour)                             ' Write a colour value to a pixel in the window
    Until lPixels = 0                                       ' Loop until all the pixels are written
    PinSet ST7735_CS_Pin                                      ' Finish the SPI interface
EndProc

joesaliba

Thanks Pepe,

Only thing is that xStart and yStart begins from top right rather than top left.

Regards

Joe

joesaliba

I also found a small error in CLS: -

Dim bWidth As Byte = bWidth + 1
should read: -

Dim bWidth As Byte = st_bWidth + 1

Pepe

I hace this library and Cls is good.