BigDumbDinosaur wrote:
Osric wrote:
Re: what I “want”: I’m trying to build the first computer I have ever built...
I recommend you simplify your first-build goals. Incorporating too much fancy stuff is a recipe for a DOA unit. Building a straight-forward design that requires no tricky bus timing as you are considering is the best way to get familiar with how the 65C02 operates. In other words, learn how to fly a Piper Cub before you climb into a 747’s cockpit and take off for Tokyo.As I’m only about one week in and will need to take a break for a few weeks, it’s a good time to reconsider goals. Here’s what I currently have working:
Hardware: CPU module, RP2040 based monitor (we’ve seen the dumps in other threads, showing cycle by cycle execution of the CPU along with a disassembly of instructions), VIA with 2-line LCD display attached that can display “Hello, world!”, and a combination ROM/RAM module.
Software: So far I’m using vasm to assemble handwritten assembly code; this can then be loaded into the debug monitor at the MicroPython prompt. I have to manually drive BE low (I plug a wire into the breadboard for this) when the clock is stopped, and I can then run programROM(code) at the MicroPython command prompt and the signalling is in place in the design to enable the monitor to program the ROM. Then restore BE, hold the reset switch, and set the clock running and the assembly runs. I can control the clock in software if need be but also have a hardware single step which is the main way that I single step the clock.
I was thinking that the next natural steps were to either built the keyboard module or the mono display module. I had started building the mono display module and attached it, but in the process of doing that I bumped D7 out of its spot on the debug monitor board and mistakenly plugged it into the “RUN” pin out on the pico board, which was right next to the GPIO it was meant to be plugged into. This cost me a day because I failed to debug it properly and wound up removing the module from the system completely before figuring out that the new module was not the source of my spurious resets.
So I was going to go back to that next, but since you suggest simpler goals what do you think is the appropriate reduced scope/next step from where I am? One alternative that occurs to me is that I could build a serial monitor first - either an old school RS232 serial interface or a USB interface for the console - and get basic up and running on that, before building the keyboard and video modules.
Thanks in advance! I will really value your insight!