-
It'sa Mee, Mario!
03/02/2022 at 13:43 • 0 commentsSo I finally straightened out what was what with my video hardware and software. I had B swapped with G on the pinouts for the VGA connector, and also the MSB swapped with the LSB. Along with some hardware bugs with the memory sizing and a few other programming mistakes. After correcting all of it, this is the result! It is a pretty faithful reproduction of the .png I started with - although the resolution I am using now makes the Atari 2600 look like a Retina display.
Next Up:
- Add in some missing ALU operations, like shift, that are badly needed.
- Improve the speed of the bootloader - it's like my Commodore 64 cassette drive over here.
- Start looking into, sigh, a bigger memory. Sigh because it means redoing the CPU quite a bit., for timing and addressing reasons But hopefully easier the second time around.
- Something has to be done about the software. Assembly programming sux. Maybe it's just my assembly language that sucks, I don't know. But I miss being able to declare statements with expressions, subroutines, and stuff. I think perhaps the next explorations for this project will be on the software side.
- Video system as designed is rather slow - 3 I/O operations to write an x, y, and color. I did that on purpose to keep my sanity, but now that it works, there's probably a better way..
-
Video Killed The Terminal Star
03/01/2022 at 13:48 • 0 commentsOne 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)
-
We Join Our Project, Already In Progress...
02/26/2022 at 15:47 • 0 commentsIn my newsletter The Mad Ned Memo, I covered the topic of why I wanted to build a nine-bit CPU, so I won't really go too deep into that topic here. But suffice to say, I wanted to try building things with FPGAs, and was looking for a unique project to do. (See the article, I found that to be harder than I thought..)
In the follow-up part 2, we looked a little deeper into the overall design of the QIXOTE-1 CPU. My plans to build something really exotic were tempered a bit by the reality of not really knowing much about CPU design, and needing to follow somewhat conventional norms.
This past week, I published Part 3 of the series - where things start to get real as I struggle with timing issues like memory latency. I think the basic hardware situation is stable now, but I am moving into new areas such as writing a VGA video I/O system that will let the QIXOTE-1 output (low res) video.
Probably any new hardware-related will be put here, and not published in the regular newsletter. I'm taking a break there right now from the nine-bit saga so as not to completely bore readers not interested in the topic. But I will continue to post updates here, including what's going on with the software end of this project.
(Some of that software stuff will eventually make it back to a future edition of the Memo, but if you really want the latest on this project, this is the spot.)