Close

Instructions ....

A project log for 8 Bit Breadboard CPU

A home-brew 8 bit Microprocessor built on a breadboard 64K Address Space, IRQ, and DMA 16 Bit Stack Pointer, 4 8 bit Registers or 2 16 bit

2-zons2-Zons 12/13/2018 at 00:101 Comment

OK,  More massaging of the instruction set.  I removed the inverse jumps (JNC, JNZ, JNM).  You get the not jump condition in the next memory location after the jump.  The only reason to have them IMHO is to make the code easier to read.  I need the opcodes for more desirable instructions.

I re-added immediate indirect addressing for the MOV instruction so memory locations can work as pointers. 

I found a bunch more instructions that were 16 bit and marked them.

I added a 16 bit memory to memory MOV.  Need to think of a good way to indicate it for the assembler as both the 8 and 16 bit versions are using an address.  Maybe MVL for move long, which could be used for all 16 bit moves.

After all these changes I have a few unused codes, which is a good place to be in.

I am realizing that this instruction set is going to be very iterative.  I am sure I will be doing more and more tweaking as I get on with the design.  As I am implementing the microcode in EEPROM's changes will be easy.  I don't plan on working on an assembler until I have a very stable design.  I do plan on using EEPROM's for regular programming as well, but I can program without an assembler.  

 https://docs.google.com/spreadsheets/d/1kbxYGDeIOszgvjPYRdes-bELOBlojT_tjxe_RD9MVUQ/edit?usp=sharing

Discussions

roelh wrote 12/13/2018 at 07:59 point

Well this looks very good, Martin !

You can now program your contraption with three methods:

- Memory-to-memory based

- Old-style accumulator based

- Forth-style stack-based

I suggest MOVW for move-long. The instructions would perhaps get more clear if every instruction would end with a B or W (PDP-11 style), or just append a W for a word instruction and leave the byte instructions as is.

Good luck with construction !

  Are you sure? yes | no