Download Latest Version Lankyspace.ttf (266.3 kB)
Email in envelope

Get an email when there's a new version of Lankyspace

Home / 0.3.1
Name Modified Size InfoDownloads / Week
Parent folder
changes-from-0.2.6-to-0.3.1.png 2025-11-17 28.5 kB
Lankyspace.ttf 2025-11-17 266.3 kB
Lankyspace.woff2 2025-11-17 6.2 kB
Lankyspace.woff 2025-11-17 10.8 kB
Totals: 4 Items   311.8 kB 13
What's new

2025-11-17(0.3.1)
  with this version I have added the capitulum Unicode character.
  Then, following this page https://www.w3.org/wiki/Common_HTML_entities_used_for_typography,
  I realized that only few symbols where missing in order to use common literals for typography;
  so I implemented "prime" & "double prime" to complete that scheme.

Prologue

Some time ago I wrote Lidaspace, an experimental font that used only six block elements to form the glyphs:

    lower half ▄
    upper half ▀
    left half ▌
    right half ▐
    full block █
    empty block

That experience intrigued me, but this was a kind of experiment to answer the question:
"Is it possible to create a legible font with such restrictions?"

Tools

In this context I had encountered some tools for crafting bitmap fonts such as Raster Font Editor which was used to sketch up the symbols, and BitFontMaker2™ used to transform the font into TrueType.

Idea

At this point I wanted to create a retro-style font, and some ideas started floating in my mind.

First, I wanted to implement the glyphs present in the historic PCs I grew up with in the eighties.
I also desired a squared one, so I decided to go for a bitmap font of 8x8 pixels.
I could copy, homage, take examples from vintage fonts, but I didn't want to create pixel perfect copies.

I wanted a font to be usable in my day-by-day jobs, of course, if you like that monospaced retro style.

I have found such fonts around the Internet, but they are mere copies of the good old days, with extremely limited character sets, or they have been expanded to contain new glyphs, but without explicitly telling what is implemented and what is not.

For my new creation I wanted a contract: you can expect that all the printable glyphs present in the following code pages, will be part of Lankyspace:

    Code page 437
    Code page 850
    Code page 858
    Windows-1252

So, as you see, this is my contract and this project is called Lankyspace.
When you use Lankyspace you can open Wikipedia, and check whether the glyph you want to use is present in the listed code pages; if so, it's guaranteed to be present.
I could add some more characters at my discretion, when I need them, but I will never break this invariant.

In short, having complete control over the font fascinates me.

Research

A font that has very similar purposes is from Damian Vila, and it's project is called BESCII.
Its work is remarkable, but it doesn't implement all the glyphs that I want.

I came across the font designer Toshi Omagari, who also wrote a book on the subject; and I stumbled upon this excellent series about typography in 8 bits.

License

I discovered that there is a specific and free license for fonts called The SIL Open Font License, my font will use this one.
Start

Now I have a precise idea of what I want, a deeper knowledge of typography in general and that specific to vintage computers, the tools to realize the project, a license, and a name.

There are all the elements to start the Lankyspace project.

References

As mentioned, I have identified some fonts to draw inspiration from:

    the Commodore 64 fonts;
    the CGA fonts I grew up with;
    the BESCII fonts: a modern reinterpretation of the classic Commodore PETSCII.

Goal

The goal was clear by the following contract: implement the printable symbols of the following code pages:

    Code page 437
    Code page 850
    Code page 858
    Windows-1252

The style must be sans serif, mono space, bold, but I want to make easily readable because I need to use it for coding purposes.
In addition to the aforementioned symbols, I want to develop those provided by my own programming language, so that I can use Lankyspace with confidence when I have to write EMal code.

The width of the characters is 6 pixels, only the uppercase M is an exception.
For the symbols that are not numbers or latin letters, I tried to keep this constraint, but in more than one case I noticed a better readability using 7 pixels.

For the height I used all the 8 pixels, this means that the characters can touch each other.

The ascender is 2 pixels, x-height is 5 pixels, and the descender is 1 pixel.

The lowercase 'm' and 'w' are characteristics.

Everything is ready

So, I opened Raster Font Editor and started drawing the various glyphs.
For converting bitmaps to TTF I have used Pixel Font Converter.

Pixel Font Converter!

This tool is ideal for creating raster fonts. You pass it a bitmap; telling it which glyphs are represented in the image.
With few other parameters it can produce true type fonts, directly installable by the operating system.

What's more, it can be used offline, giving me complete control over the toolchain.

I continued to use Raster Font Editor to draw the fonts pixel by pixel, but at this point any photo editing program would have been fine.
In fact, I used the export to bitmap functionality, which I was then able to import into Pixel Font Converter.

With this technique I was able to encode the glyphs to get closer to the goal.

Box-drawing

I remind you that all the box-drawing glyphs are present, so that we can create TUI like we did in the good old days.

Reprise

I recently resumed work on the Lankyspace font in order to release a version that meets all the requirements.
The toolchain is now well oiled with Raster Font Editor, Pixel font converter! and Gimp I can easily modify the font and export it to TrueType.
Some glyphs were added at this stage: in particular I wanted to manage the lambda character, the right and left arrows starting from a vertical bar, and the subscripts for “1”, “2”, “3”, “e”.
I have been using Lankyspace for a few months, and for certain purposes I had missed these characters, which have now been included.

Code page 437

I started checking if the specifications were correct, beginning from code page 437 and it's fine.

Notes on code page 437

I present some notes that emerged during the review phase.
the NULL character is considered non-printable, however among the Unicode characters there is "␀", which semantically maps to this value, so I made it available in the font.
As a starting point I used the fonts present in the CGA, this is especially visible in the Greek letters, the following is the CGA original character table.

The suit clover symbol drove me crazy, in the end I found a compromise that I liked.
The reversed bullets do not occupy the entire height of the font, as it appears in the VGA example on Wikipedia.
Regarding the symbol of the famous house "⌂", I recently read an article on OSnews: in reality it seems to come from the Greek letter delta "Δ", I have planned to introduce all the Greek letters in future.

The management of accented characters was not trivial, but I hope to have preserved a consistent style for all the vowels involved both uppercase and lowercase.

The monetary symbol of the Peseta "₧" is represented in modern fonts with a horizontally barred P. I adapted to this convention rather than writing "Pt" as in the original.

Greek letters

We thus arrive at the Greek letters which have definitively affected my sanity.

First we need to talk about the letter beta, as it was used in the original font also to represent the Germanic letter Eszett "ß".
In Lankyspace the beta is lowercase and is ill-suited to also represent the above symbol.
I have included the symbol "ẞ" in the font which refers to the capital letter Eszett.
I had to use the uppercase version, as the lowercase Eszett is forcedly represented as a lowercase beta by Windows.
On the letter gamma “Γ” there is no doubt that it is capitalized since the lowercase is very different.
π has been interpreted as lowercase, although Wikipedia reports that in some cases it was treated as capitalized.
For the letter sigma there are both the uppercase and lowercase versions.
Mu and Tau are certainly lowercase.
Phi, Omega and Theta are uppercase.
Delta "δ" is lowercase, since as seen above the capital could be represented by the symbol of the house.
Then there is the lowercase Phi which diverges from the original CGA symbol,
and finally, the lowercase epsilon.

As for the height of the fonts, ascenders and descenders, I tried to use a general convention, and I stuck to it.

Code page 850

Nothing particular here, this code page is fully implemented.
 
Windows code page 1252

Same here, all the printable symbols can be presented using Lankyspace.

Character table

These are all the coded glyphs.

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdef
ghijklmnopqrstuvwxyz0123456789!"
 @`[\]^_{|}~⌂:;<=>?#$%&'()*+,-./
␀☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼
¢£¥₧€░▒▓▖▗▘▝▙▛▜▟▚▞▌▐▄▀█┌┐└┘┼├┤┴┬
│─╭╮╰╯¹²³∞¿⌐¬«»◇≤≥≠⇒…æ√∛÷≈■≡½¼∩±
ⁿ°ªº·∙⌡⌠ εφδΩΘΦτµσΣπΓßα⊤⊥∅ƒ¡Æ╣║╠
╔╗╝╚═╦╩╬╡╢╖╕╜╛╞╟╧╨╤╥╙╘╒╓╫╪×¾¨¯¤¸
àáâãäåèéêëìíîïòóôõöùúûüýÿÐðÑñÇç‰
ÀÁÂÃÄÅÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝÞþ®©‘’“”
øØı¦´‗‚„†‡Š‹›ŒŽ–—˜™šœžŸ◤◥◣◢╲╱╳✓ˆ
✗₁₂₃λΛ↦↤∀∃ₑẞΒΔβμγΑ⸿′″

Conclusion

The official project page has been created on Sourceforge: https://lankyspace.sourceforge.io
with this release it can be considered feature complete.

I took six months to conclude this small side project, my spare time is shrinking: I am happy to have concluded it.

I will create soon a new page under lanky.eu dedicated to my first font: Lankyspace!

Here you will find informations about the font on my personal blog:
https://www.lanky.eu/blog.lanky.eu/index.php?controller=blog&action=view&tag=Lankyspace
Source: README.txt, updated 2025-11-17