Big Decisions

This page  documents the main design decisions and gives some background on each.

Transistors, diodes and resistors


These are the basic building blocks of electronics.   On the plus side they taught at GCSE/A-level, on the negative side there's a lot to wire up (e.g compared with using the 74 series).  However, it's relatively easy to put a good number of LEDs in place to see the state.   Relays havemore heratige and are simpler, but are much slower and so not able to run games.   Integrated circuits are faster and cheap, but are black boxes and can't wire in LEDs to see state.


Size


The maximum size is about 1m by 1m.   It has to fit in a car, be mountable on a wall and be visible from the back of a large lecture theatre.

Processor only

Yes, I know I chose not to build RAM.   RAM is just a duplication of the technology used to build the registers, and unless this is easily copyably it'll be like most PhD thesis, read by only the writer and a couple of examiners.


RPi Hosted


Parallel or bit serial architecture

The lure of a bit serial ALU pulls me every year or so.    If only it were easier to access the registers bit serially, the ALU would we wonderfully small and clean.   Note that if shifting a register as a shift register was faster than the ripple carry then there would be nothing lost in the bit serial architecture.   Maybe there will be a bit serial fork that uses acoustic tubes to store the registers and has a bit serial ALU, that would have an amazingly low component count. 

16 bit architecture

I experimented with 8 bit data and/or instructions many times.   16 bits is needed in order write some interesting code, you just can't do that in a 8 bit address space.   An 8 bit architecture with a segmented address space was contemplated many times, so P0 and P1 consistute the programming counter and only P1 is incremented.   This means there are 256 spaces and each space has to write code that is less than 256 bytes long.   This could work really well for FORTH as each word/instruction would be 8 bits, but arrays could only be 256 bytes long which seems very limiting. 


Small instruction set


I'm really pleased with how orthogonal the instruction set it.   It would be nice if there was a symmetric push/pop, but it's not too bad.

little/big endian

I've really no idea if I have got this right.  I don't think it matters much.

Third/Forth


I know this is non-standard