Show HN: Z80 Sans
github.com"A recursive descent parser is used to generate all possible glyphs, which helps with evaluating expressions in encodings (e.g. SET b,(IX+o) takes a bit and a displacement, encoded as expression DD CB o C6+8*b). These encodings were then expanded to all possible values that operands can take, before finally associating 1 or more hexadecimal bytes to each disassembly glyph required to render an expanded instruction."
That's just evil! Great job!
Every day I'm amazed at what OpenType fonts can do on their own. Material Design icons font, fonts with built-in syntax highlighting and now this.
Read this, and you won't be surprised anymore about what is and isn't possible: https://simoncozens.github.io/fonts-and-layout/features-2.ht... (and preceding chapters)
I am equally amazed and horrified. Fonts shouldn't do that. ;-)
Makes you think if they’re perhaps too powerful
It's a simple application of ligature mapping. It looks more powerful than it really is.
It definitely feels like putting functionality in the wrong places.
Only if you can show that no normal language needs it.
Certainly there isn’t any natural human language that needs disassembling Z80 binary code.
Yet.
You said "putting functionality in the wrong places".
The font system does not have any such functionality as z80 disassembly. It has generic functionality for generating glyphs.
If there are any normal human written languages that benefit from the functionality to generate modified glyphs dynamically based on content and context rules, then the functionality is not misplaced.
Of course it’s useful for human languages. Using it to disassemble Z80 hex dumps is what I have mostly aesthetic objections against. It’s both fascinating that it can be done and horrifying that someone actually did it.
So evil, so evil! You discovered the programmability of fonts themselves!
cool work! but please use a video instead of a gif in the readme... it's so frustrating not being able to pause, go back, etc.