gif: tft


Tolkien Family Trees ♦ The White Trees (literally trees)

Telperion, one of the Two Trees of Valinor, was sung into being by Yavanna. She made Galathilion in its likeness for the Elves of Tirion, who gave a seedling of their tree to the Elves of Tol Eressëa, and this became Celeborn. A seedling of Celeborn was gifted to the Dúnedain. It became Nimloth, the White Tree of Númenor, from which each White Tree of Gondor leading up to the one found by Aragorn was descended.

Returning to Z80

It dawned on me a few days ago that I have a Seeed Studio TFT shield for Arduino that uses a controller with 8-bit 8080-compatible interface and has built-in​ pixel memory … Meaning it should be easy enough to drive it from my breadboard Z80 computer, and I wouldn’t have to keep the entire display in RAM (since 320x240 > 64k).

I’ve spent what time I could spare over the last few days porting the sTFT Arduino C++ library to something that would compile with SDCC for Z80. It’s a simple library, and the interfacing is actually easier on Z80 than AVR because I can just use the OUT instruction instead of manually strobing GPIOs.

I pulled out the breadboard tonight to see how far I could get in testing. I’ve not touched it since January, and worse I’ve moved since then. Storage has not been kind to my little computer. It was carefully wrapped in anti-static bubble wrap, and nothing seems out of place, but it gives no immediate signs of life.

Logic probe sings, so I know it’s doing something. I pulled out out my cheap logic analyzer, and I was able to trace the data bus all the way through initializing the SCC (Serial Communications Controller, Zilog Z85C30) chip and into the first printf() call, but terminal never prints anything. Best I get is what appears to be randomly spaced 0x0D output on TxDA.

That SCC is a fickle beast. It’s a great chip with a lot of features for its time, but it is always a pain to get up and running. Here, since SCC is the first thing initialized by my monitor code, and my putchar() function is blocking, the program never moves on. It just sits in a tight loop, waiting for confirmation from the SCC that it’s ready to transmit.

Hopefully I can figure out the problem with the SCC without too much trouble. I really don’t want to have to start over just to test the LCD shield.

And perhaps I should add some blinkenlights so it’s obvious the computer is doing something, without having to pull out the probes.