Introduction
 Top Next

GLCD Font Creator

Version 1.0.0

The ultimate Solution to Create Personalized Fonts, Symbols and Icons for Graphic LCD

GLCD Font Creator is the ultimate font creation utility for embedded systems. It lets you create fonts for Liquid Crystal Displays (LCD) and Graphic LCD. It provides a very nice and intuitive user interface.

GLCD Font Creator lets you create fonts and symbols from scratch, or by importing existing fonts on your system. It lets you modify and adjust them for your needs, apply effects to them, and finally export them as source code for use in your favorite language compiler.

Pocket MicroTechnics© 2007


Features

Major Features
 Previous Top Next

· Create Fonts, Symbols and Icons for Liquid Crystal Displays (LCD) and Graphic LCD from scratch.
· Import Windows™ Fonts and instantly get ready fonts for your GLCD.
· Modify chars for your convenience.
· Apply effects like video inversion, outlining, shifting,... to each char or automatically to the whole font.
· Very nice and intuitive user interface.
· Export fonts as source code for your favorite Basic, Pascal or C compiler.
· Full integration to Swordfish™ basic compiler IDE (as plugin) from Mecanique.
· Full integration to Proton™ basic compiler IDE (as plugin) from Crownhill Associates.
· Full support for MikroElektronika mikroBasic™, mikroPascal™, mikroC™.
· Full X-GLCD Library (pascal, basic and C version) that enables large font support on Mikroelektronika compilers.
· Full X-SPI-GLCD Library (pascal, basic and C version) that enables large font support on Mikroelektronika compilers (targets SPI GLCD using Microchip™ SPI port Expander).
· ...
· comming soon: Custom export filter to export data to any compiler with full costumization of source codes, lines entries, lines labels,...


Quick Usage Guide

For detailed information, visit our web site and consult the Tutorial Video section.

Font creation process is a three steps process:
1- Create a Font Project
2- Modify chars and symbols
3- Export font as source code using Export Filters.

you can of course add another intermediate step witch is Saving Font as *.lcd file to be able to reuse it or continue to work on it later.

1- Create a Font Project:
To create a font project, choose, in the File Menu, the option:
- New Font From Scratch : to create a font with blank chars.
- Import An Existing System Font : to create a font by importing windows existing fonts.

2- Modify the font : Once in the editor you can modify the chars of the font using the char editor

you can also apply effects to the char using the effects menu or toolbar

Some times you need to apply an effect (for example video inversion) to the whole font chars, for that you must use the BATCH menu.

3-Export the font: Once your font modified and ready, you can choose to save it (File>>Save Font...) in to an *.lcd file. This will let you reload it later to rework it.

After having finished the modifications, you can now Export your font using an Export Filter:

Export filters let you choose different options related to your target compiler and language. The custom export filter let you choose and format your exported data in various format to make it compatible with any compiler.

Please do not forgot to visit our web site and consult the Tutorial Video section, and the Public Forum for any question.


X-GLCD Library

X-GLCD library for mikroBasic™, mikroPascal™ and mikroC™

Please read all details before using this library !!!

XGLCD library is aimed at providing a solution to break the limits of GLCD lib provided by MikroElektronika.
GLCD Lib is constrained by the physical structure of K0108/K0107 GLCD controllers. In these controllers, the screen is split on two sides.
You can think of a 128*64 LCD as a 1024 byte memory, every bit of which is visible. The display is split logically in half. It contains two controllers with controller#1(Chipselect1) controlling the left half of the display and controller#2 (Chipselect2) controlling the right half. Each controller must be addressed independently. Each half consists of 8 horizontal pages which are 8 bits (1 byte) high. The page addresses, 0-7, specify one of the 8 pages. That is illustrated in the drawing below.

Below are the KS0108 & HD61202 commands. These controllers do not have text capability and the commands are few and simple.

Y address (0-63Y address counter designates address of the internal DDRAM. An address is set by instruction and is increased by 1 automatically by read or write operations of display data. Y address 0 is the leftmost bayt, and Y address 63 is the rightmost byte of a page.
X address (0-7): This is the page address and has no count function.
Display start line (0-63): The display start line register specifies the line in RAM which corresponds to the top line of LCD panel, when displaying contents in display data RAM on the LCD panel

The Most Important Things To know !!!

The GLCD Lib from MikroElektronika let you:
1- Choose a font with a height of 8 bits at maximum because of the hardware driver pages.
2- Write only at pages level (8 pages = 8 lines), so you can’t write for example a string at pixel 3 from top edge (Y = Multiple of 8).

X-GLCD lib breaks all these limitations. It let you
1- simply write any font,
2- with any size (any height, even bigger than 8 bits)
3- at any Pixel Position with transparency (Y has NOT to be multiple of 8)

Understand the Export Filter for mikroBasic, mikroPascal and microC:
This filter let you convert any font you created (even from scratch or imported an existing Windows font) to constant tables needed by MikroElektronika compilers.

This filter is easy to use, just select the tab corresponding to your favorite language (mikroBasic, mikroPascal or mikroC) and the source code is automatically generated for you.

BUT !!!!!!!!!!!!!!!!!

Fonts Bigger thant 8 bits height:
For fonts Bigger than 8 bits (height): The use of X-Glcd Library is mandatory to be able to draw them on GLCD (see X-GLCD section for usage guide).

For fonts with height less or equal to 8 bits:
These fonts can be rendered using either MikroElektronika GLCD lib, or X-GLCD lib. GLCD lib is a bit quicker than X-GLCD lib when rendering these fonts.

So Why use X-GLCD lib with fonts with height less or equal to 8 bits ?
Simply because
1. X-GLCD lib let you draw these fonts at any PIXEL position from top and not only at Y positions multiple of 8 bits (pages)
2. X-GLCD lib renders fonts with PROPORTIONAL char width

X-GLCD lib usage guide:
X-GLCD lib provide 5 procedures very similar to the original GLCD Lib provided by MikroElektronika.
The parameters are absolutely the same as GLCD lib equivalent functions/procedures. See mikroBasic help (GLCD section) for details of parameters and functions.
sub procedure xGlcd_Set_Font(dim const ptrFontTbl as ^byte, dim font_width, font_height as byte, dim font_offset as word)
Sets the font to be used by the X-GLCD lib.

sub function xGlcd_Write_Char(dim ch, x, y as byte) as byte
Writes a char at a position x, Y. Returns the width of the drawn char. This is useful for functions like xGlcd_Write_Text to compute the position of the next char to draw. For X and Y position see notes below.

sub procedure xGlcd_Write_Text(dim byref text as char[50], dim x, y as byte)
Draw a string at position X, Y. For X and Y position see notes below.

sub function xGlcd_Char_Width(dim ch as byte) as byte
Returns the width of a char. Useful because xGLCD draws proportional width fonts, so all chars have NOT the same width.

sub function xGlcd_Text_Width(dim byref text as string[50]) as byte
Return the width of a whole string of chars. Useful because xGLCD draws proportional width fonts, so all chars have NOT the same width. This function can be useful to be able to compute the position of text in order to center it or right align it for example.

IMPORTANT NOTES :
1. The Coordinate system is not the same as GLCD lib from MikroElektronika!
2. Fonts used by GLCD Lib are not compatible with XGLCD lib !

X-GLCD lib aims at hiding the physical structure or hardware GLCD. So the big difference between X-GLCD and GLCD is the fact that for coordinates (X, Y) passed as parameters to each procedure (xGLCD_Write_Char(…) and xGLCD_Write_Text(…)) are the logical coordinate you want to use on the screen. That means that the X coordinate is between 0..127 and the Y coordinate is between 0 to 63.

If you want to write a char at position X=69 and Y=72 you have only to call
xGLCD_Write_Char(myChar, 69, 72)

With X-GLCD Lib You do not have to worry about pages or sides. All is done automatically for you.

The future of XGLCD lib:
A full rewrite of XGLCD lib is planned (may be in pure ASM) to make it more user friendly and more quicker. The fonts needed by XGLCD lib will contain pre- computed jump tables so that only really use bytes in each char are stored in the table, this will compress the font tables by more than 50% and make selection of chars quicker.
Support of Bitmaps, icons and symbols drawing will also be added.
The new XGLCD lib will not be based on GLCD Lib. It will be really standalone and will offer functions for Lines, polygons, and other stuff. Also, addressing the hardware registers of the graphical controller will make it really quicker.


X-SPI-GLCD Library

Please read the topic X-GLCD Library before reading this one.

X-SPI-GLCD library is the X-GLCD Lib extension for the MikroElektronika SPI_GLCD library.

As for the X-GLCD Lib, this library provide also 5 functions/subs:

X-SPI-GLCD lib provide 5 procedures very similar to the original SPI-GLCD Lib provided by MikroElektronika.

The parameters are absolutely the same as SPI-GLCD lib equivalent functions/procedures. See mikroBasic help (SPI-GLCD section) for details of parameters and functions.
sub procedure xSPI_Glcd_Set_Font(dim const ptrFontTbl as ^byte, dim font_width, font_height as byte, dim font_offset as word)
Sets the font to be used by the X-GLCD lib.

sub function xSPI_Glcd_Write_Char(dim ch, x, y as byte) as byte
Writes a char at a position x, Y. Returns the width of the drawn char. This is useful for functions like xSPI-Glcd_Write_Text to compute the position of the next char to draw. For X and Y position see notes below.

sub procedure xSPI_Glcd_Write_Text(dim byref text as char[50], dim x, y as byte)
Draw a string at position X, Y. For X and Y position see notes below.

sub function xSPI_Glcd_Char_Width(dim ch as byte) as byte
Returns the width of a char. Useful because xSPI-GLCD draws proportional width fonts, so all chars have NOT the same width.

sub function xSPI_Glcd_Text_Width(dim byref text as string[50]) as byte
Return the width of a whole string of chars. Useful because xSPI-GLCD draws proportional width fonts, so all chars have NOT the same width. This function can be useful to be able to compute the position of text in order to center it or right align it for example.


FAQ

Frequently Asked Questions

1- What is GLCD Font Creator?
GLCD Font Creator is a tool to draw fonts and export them for various compiler.

2- What is the difference between the Swordfish™ Plugin and the Pro version?
Swordfish™ basic IDE version is exactly the same as the Professionnal Edition in functionnalities. The only difference is that Swordfish version is FRFEE and the Pro version is Shareware. The Pro version is a bundle of 4 products (see download page for details).

3- In the Proton™ Basic Plugin and the Standalone Application version, most of the exported chars are incorrect (all data are zero)?
The unregistered version is limited to the export of 15 chars only. Upon registration, all chars are exported correctly.

4- Can I import the installed fonts on my PC?
Yes, you can create fonts using the funtionnality : "New Project : By Importing System Font".

5- What are all the compilers supported for export?
Actually, the supported compilers are : Swordfish™ Basic, Proton™ Basic, mikroBasic™, mikroPascal™, mikroC™, and any other compiler with the custom export filter. Other compilers will be supported soon in incomming updates.

6- There are some useless white space above the characters, how to remove it?
It's easy. You can delete blanks on chars using Delete Row or Column function from any side of your chars. You can also use Automatic Optimisation Dialog to let GLCD Font Creator automatically do it for you.

7- Can I create fonts with variable chars width?
Yes of course. But in design time, all chars are the same width. At EXPORT TIME you can choose to export your fonts in FIXED font width or in PROPORTIONAL font width (in this later case, jump tables are automatically computed and inserted in generated source code).

8- What is XGlcd Library?
In mikroBasic™, mikroPascal™ and mikroC™, GLCD Lib is the library that let users draw and paint on graphics LCD. This library is limited to painting texts on pages, i.e. on positions multiple of 8 pixels. This limitation is due to the hardware configuration of physical GLCDs. The second limitation is the fact that this lib is limited to fonts with a maximum of 8 pixels height. XGlcd Lib is breaks all these limitations. It's a wrapper arround MikroElektronika GLCD Lib. It let you draw fonts of any height at any pixel position on GLCDs.

9- When I use the XGlcd Lib the compiler also links the GLCD lib from MikroElekronika?
Yes, the XGlcd Lib is just a wrapper arround MikroElektronika GLCD Lib. A new rewrite of the full XGLCD lib is planned in order to improve its performances and make it at higher level of abstraction (no more hassle with managing physical pages and sides of GLCD).


Swordfish Basic Filter

Swordfish basic filter let you export fonts in a format compatible with Swordfish Basic Graphics library.
Fonts can be exported in the two format supported by swordfish basic: FIXED width and PROPORTIONAL width.

When launched from the Swordfish Basic IDE Plugin the following screen shows.

When launched from the Standalone application version of GLCD Font Creator the following screen shows.

The only difference is the options that let the plugin insert source code in a new document in Swordfish Basic IDE, whereas the standalone application filter let you save source directly to disk.


Proton Basic Filter

Proton basic filter let you export fonts in a format compatible with Proton Basic Graphics library.

Fonts are always exported in CDATA lookup table mandatory for Proton Basic. Note that Proton Basic does not handle fonts height with more than 24 Pixels height with its standard PPrint command. An extended version let you use fonts with height up to 32 pixels.

When launched from the Proton Basic IDE Plugin the following screen shows.

When launched from the Standalone application version of GLCD Font Creator the following screen shows.

The only difference is the options that let the plugin insert source code in a new document in Proton Basic IDE, whereas the standalone application filter let you save source directly to disk.


mikroBasic, mikroPascal and mikroC Filters

The MikroElektronika compilers' target filter let you export fonts in a format compatible with mikroBasic, mikroPascal and mikroC.
This filter is directly related to X-GLCD library. Please read the topic related to X-GLCD Library fully to understand fully this filter.

Fonts with 8 bits height or less :

Mikroelektronika GLCD lib handles only fonts with 8 bits height. So when your font is 8 bits or less in height, invoking the filter for MikroElecktronika compilers will show the following screen.

In this screen, you have only to choose the target compiler (language), to specify the range of chars to export and eventually the module/unit name to add to source code.
Generated source code can be copied to clipboard and pasted in your compiler IDE, or can be saved directly to disk.

The most important thing to note in this screen is the group of radio "Generate Code For Use With"

miroBasic (or mikroPascal or mikroC) GLCD Lib : creates fonts compatible with MikroElektronika GLCD Library.
X-GLCD Lib : creates fonts compatible with X-GLCD Library.

The useful thing to note about X-GLCD lib is that it let you draw fonts at any Y position on the screen and not only at positions with Y is a multiple of 8 (because of the physical structure of GLCD hardware).

Fonts with height bigger than 8 bits:

GLCD library from MikroElektronika is unable to handle these fonts. X-GLCD lib was written specially to handle them, and thus is the only option possible.

read the topic related to X-GLCD Library fully to understand fully this filter.


Contact

If you have any questions, problems or comments about this product, please feel free to contact us directly at:
Email: | support@pocketmt.com
Website: | http://www.pocketmt.com

Suggestions on how to improve this product are welcomed.

Do not forgot to visit our public forum .


Disclaimer

I (and Pocket MicroTechnics) have done my best to give a reliable version, but by using it YOU AGREE THAT YOU WILL USE IT AT YOUR OWN RISK. I’LL NOT BE RESPONSIBLE OF ANY DATA LOSS OR DAMMAGE. THIS SOFTWARE IS GIVEN WITHOUT ANY GUARANTEE. USE IT AT YOU OWN RISK. In no event shall I be liable for any incidental, direct, indirect, special or consequential damages arising out of the use of the this software and associated documentation.


Registration

Thank you for your interest in GLCD Font Creator. Please, register your copy(ies) of GLCD Font Creator. Registration help us spend more time to enhance this software, and keep us with internet hosting fees.
Payments can be made via PayPal (Secure Payement).PayPal account and Credit Cards are accepted.
After registering and payment has been confirmed you will receive the registration information within 48 business hours by e-mail. Therefore it is important, that the eMail address used to pay is correct. Registered users will get support via e-mail and future updates for the same major version are free. Note that registration implies full acceptance of Licence agreement terms.

The UNREGISTERED version is limited to the exportation of 15 chars only. All other chars have their data exported as zero (0). XGlcd Lib source codes are given only to registered users


License

Licence Agreement

All files included in the GLCD Font Creator are Copyright © 2007 Pocket MicroTechnics. Use and/or distribution of them requires acceptance of the following License Agreement.

In the licence terms below, the word "Software" means "GLCD Font Creator".

Licensing Information

This agreement is between Pocket MicroTechnics and the users of Pocket MicroTechnics software. If you do not intend to honor this agreement, please exit now and uninstall this product from your computer.

Pocket MicroTechnics retains ownership of GLCD Font Creator. Title and copyright to Software and accompanying documentation and any copies made by Customer remain with Pocket MicroTechnics. Unauthorized copying of Software or the documentation will result in automatic termination of this license.

The user of Pocket MicroTechnics software will indemnify, hold harmless, and defend Pocket MicroTechnics against lawsuits, claims, costs associated with defense or accusations that may result from the use of Pocket MicroTechnics software.

Pocket MicroTechnics is not responsible for any damages whatsoever, including loss of information, interruption of business, personal injury and/or any damage or consequential damage without limitation, incurred before, during or after the use of our products. Our entire liability, without exception, is limited to the customers' reimbursement of the purchase price of the software in exchange for the return of the product, all copies, registration papers and manuals, and all materials that constitute a transfer of ownership from the customer back to Pocket MicroTechnics.

The user of Pocket MicroTechnics software may not use or distribute Pocket MicroTechnics software for any unlawful purpose.

Each licensed copy of the Pocket MicroTechnics software may be used in only one single location by one user. Use of the software means that you have loaded the program and run it or have installed the program onto a computer. If you install the software onto a multi-user platform or network, each and every individual user of the software must be licensed separately or be covered by a site license.

The sale of and or distribution of copies of this software is strictly forbidden without the permission of Pocket MicroTechnics. It is a violation of this agreement to loan, rent, lease, borrow, or transfer the use of copies of Pocket MicroTechnics Software products.

Pocket MicroTechnics © 2007


System Requirements

Supported Operating Systems

Windows 98, 98SE, ME, NT 4.0 with SP 6, 2000, XP and Vista

Hardware Requirements

233 MHz Processor (500 MHz or higher recommended)
64 MB RAM (128 MB or higher recommended)
40 MB hard drive space
16 bit graphics card


History

July 12th, 2007: version 1.0.0
First public release


Acknowlegments
 Previous Top

I would like to thank all people that helped in this work, especially:

- To Timothy Box from TJB Systems, Ltd, the creator of the very powerfull Software ICD for Proton Basic* ( http://www.p-icd.com ), for the intensive tests of this software and for the support he gave me to generate Proton Basic compatible source code.

- To Steve Wright for his very constructive comments, suggestions and tests on hardware GLCD.

- To Mecanique and David John Barker ho have made the great Swordfish Basic compiler and IDE ( http://www.sfcompiler.co.uk/swordfish/ ), and gave me gracefully the API, documentation and examples of to write the plugin version for Swordfish* Basic IDE and Proton Basic* IDE.

- to John Barrat, the author of the very nice " Library Explorer " plugin, a must to have for every Swordfish basic developer.

-A great thank also to the Swordfish Basic community http://www.sfcompiler.co.uk/forum/index.php for the nice and very enriching discussions on the public forum, and for the free articles and Swordfish Basic WIKI.

Special thanks go to all Beta-testers.

We would like to thank Borland (TM) for the fabulous Delphi programming tool,

for all peoples who helped the Delphi developers community by giving generously a very high quality components, and specially

for Mike Lischke for his VirtualTreeView component http://www.soft-gems.net/

for Jordan Russell for his Toolbar2000 components set http://www.jrsoftware.org/tb2k.php

and for Alex A. Denisov for his TBX addon package for ToolBar2000 http://www.g32.org/tbx/ .

*Swordfish Basic is a trademark of Mecanique.
*Proton Basic is a trademark of Crownhill Associates.
*P-ICD is a trademark of TJB Systems.
*mikroBasic, mikroPascal and mikroC are trademarks of MikroElektronika.