August 25th, 2024

Show HN: Z80 Sans

Z80 Sans is a GitHub project featuring a font that converts hexadecimal sequences into Z80 instructions, with detailed installation instructions for Debian GNU/Linux and addressing design challenges and known issues.

Read original articleLink Icon
Show HN: Z80 Sans

Z80 Sans is a GitHub project that features a font designed to convert hexadecimal lowercase character sequences into disassembled Z80 instructions. It employs OpenType's Glyph Substitution Table (GSUB) and Glyph Positioning Table (GPOS) for its functionality. The font visually represents Z80 assembly instructions, making it useful for developers and enthusiasts in the field. The repository provides comprehensive installation instructions for Debian GNU/Linux, detailing necessary dependencies such as `imagemagick`, `potrace`, and `fonttools`. Users are guided through the process of generating the font and integrating it with a base font. The project also addresses design challenges encountered during development, including managing multiple character combinations and out-of-order operands. Additionally, it notes some minor glitches in disassembly and humorously acknowledges the quality of the code. The installation process involves several steps, including installing required packages, updating git submodules, building FontForge and WOFF2, and using Ruby version management for dependencies. The project components are licensed under various licenses, including the Apache License, Open Font License, and MIT License.

- Z80 Sans is a font for disassembling Z80 instructions from hexadecimal sequences.

- The project includes detailed installation instructions for Debian GNU/Linux.

- It addresses design challenges and known issues in the font's functionality.

- The installation process requires several dependencies and tools.

- The project is licensed under multiple open-source licenses.

Link Icon 4 comments
By @hyperhello - 8 months
"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!

By @1GZ0 - 8 months
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.
By @Confirm2754 - 8 months
So evil, so evil! You discovered the programmability of fonts themselves!
By @yoavm - 8 months
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.