I've never been so "in the zone" than while coding on small CPUs in assembly for fun. I write 6502 (on Oric Atmos, an 1983 computer) and LR35902 (the GameBoy CPU, basically a mix between a z80 and a 8080).<p>Those CPU are very simple, you have like a dozen instructions, 4 or 5 addressing modes, that's it. You can infer the cycles count from each instruction by the addressing mode, mostly.<p>The machines those CPU run are a bit more complex than just the CPU, but after some time you get to know them perfectly. You can think about an algorithm in your shower or on the way back from work, and code it like a robot, directly from your brain, you figured everything out to the last detail just in your head.<p>That's very, very rewarding. I've never got this kind of feeling while playing those coding games, like Zachtronics's, although I've enjoyed some of them. I played Factorio for hundred of hours, that's very pleasant, but the UI gets in the way and you know the problem already has been solved.<p>I very much encourage you to try assembly on 8bits computers, coding graphical effects and demomaking stuff and all. That is, if you don't have kids and all, that takes time :)