One thing you learn pretty quickly is about the inadequacy of assembler when it comes to writing video programs. It's making me think about a next-level software system, perhaps some kind of tiny BASIC of some sort. It also is pretty good evidence of a couple of other things:
- 512 Nonads ain't gonna cut it for very long as the maximum addressable space. I'll have to work on extended memory addressing soon. That will bring back the ugly spectre of memory latency, as I will need to switch to a BRAM structure rather than registers to fit it on the chip. This in turn will affect lots of timing and design of the CPU itself, so I am on the fence about whether this is going to happen for QIXOTE-1, or for a future project.
- My serial bootloader is working fine after a lot of debug of failure of large programs to load. It turned out my memory had been sized to only 128 Nonads when I started, and the bootloader was fine. But it is slow, running at 19200 baud and also including some host-side sleep statements in my Python code. I will probably have to grapple with async timing of this program to make it run faster, as programs get bigger. (I plan to go into the design of the bootloader in my next Mad Ned Memo article)