Status

I have:
  • One bit of working memory
  • One bit slice of the ALU including fast carry
  • An architecture that seems to provide both basic hardware and software support
  • A working emulator 
  • Some basic routines e.g. OS calls, 16 bit multiply and divide, get and put decimal values
  • The start of a Forth style language
Which may not seem like a lot, but it's definitely coming together.

Current tasks are: 
  1. RPi interface - this has to work at reasonable speed, so mock up with two back-to-back RPis.
  2. Write more basic stuff, e.g. 32 and 64 bit add, subtract, multiply and divide.
  3. Should the data stack be descending not ascending?  A descending stack would have little endian variables and would copy to memory better as it's natural to point to the start, not end, of a memory block.  The call stack can remain descending, it's small and the other end of the data stack can be the heap.
  4. Profile the instructions actually used - most must never be used.
  5. Understand fbcc and get it going - it's the only way I'll find out what I'm missing.
  6. Is memory access much faster than ALU?  If so, can switch to a mem, alu, mem architecture which would allow for proper pop/push.
  7. Look at lcc and tcc - can I port them to my instruction set where everything is 16 bits?
  8. Get my FPGA running and build everything in Verilog
  9. PCBs?  Can I get away without the expense?  For example, can I print onto A4 paper and glue that to one side of perfboard?   How do I connect matrix board bitslices?
  10. Build a complete bitslice, that's 6 bits of memory, two constants (0 and 1) and one bitslice of the ALU all addressed by two read variables and one write variable.   The inputs are three registers at three bits each plus 3 bits to specify the ALU instruction, the output is witten to the write register. 
  11. Plan out the detail of the instruction set decode
  12. Build for real...