Memory editor

A project log for Discrete YASEP

a 16-bits YASEP computer (mostly) made of DIP/SOIC chips like in the 70s and 80s... with 2010's twists!

Yann Guidon / YGDESYann Guidon / YGDES 11/25/2015 at 22:030 Comments

There is a feature that I want to include in the system : a hardware assembler/disassembler, which could also be called "instruction editor". Today, I realised that it's a very desirable feature but it was too shortsighted. Editing a value with TTL chips is cool but this must be well integrated/interfaced with the rest of the system.

The first issue is how to access memory banks. Normally, it's done through the A/D registers but during debug, this is less... practical. Even less when the A/D pair triggered a breakpoint, then we have to save the value for later restoration after we have modified them to explore the memory bank.

So the read/write feature is not just required for the instruction memory but also data memories. The editor must be generalised and should also edit arbitrary numbers, not just instructions. Instructions already contain data fields so the instruction editor can be considered as an extension of a more basic memory editor...

Another question is how to save/restore the A registers while they are being temporarily altered. I have come to the "less hacky" solution where the address registers are not modified. Instead, their counter's outputs are multiplexed with another value (probably coming from the PC bus but it could be another special "debug" bus) that is controlled by the memory editor. The user then selects which memory array is selected.

Of course, multiplexing the address takes many precisous nanoseconds but convenience trumps speed in our case.