The commit log tells the story:
txtmode_videoctrl: added simple hardware cursor (blinking at 60/16 Hz)txtmode_videoctrl.vhdl: fixed video RAM addressingMakefile: added font generation commands (binary -> VHDL text)fonts: deleted the VHDL text-mode description; added binary fonttxtmode: use proper UCS-2 font
What the commit log doesn't tell you is the hours of confusion between those commits.
These screenshots represent intermediate states - and there were many more like them. Latin characters, Cyrillic characters, box-drawing symbols, all rendered in glorious 12-bit color, all completely wrong. Characters shifted, duplicated, misaligned. Rows that don't match up. The kind of output that makes you question whether you understand anything at all.
The root causes were multiple. Video RAM addressing was broken. The font data generation pipeline needed reworking - I switched from a VHDL text description to binary fonts converted via Makefile. And then the critical discovery: the font file itself was corrupted. I had extracted it from some proprietary format using tools I didn't fully understand, and the result was garbage.
Lesson learned: always verify your assets independently before blaming your logic.
By the end of the day, most issues were resolved. Minor artifacts remained, but the display was starting to show recognizable, correctly-positioned text. The 12-bit RGB color system works. The blinking cursor works. The character grid is (mostly) aligned.
Tomorrow: fix whatever is left.


No comments:
Post a Comment