FAQ

Actually, this is a pseudo-FAQ, since no-one has asked any questions yet ;-) !

Why Use a 'slow' Z80 And Avr...?

Actually we do this for performance, code base and nostalgia reasons. The Nostalgia reason is obvious - a 4-chip Libby 8 bears a resemblance to a ZX81, except you can easily build one now. The performance reason is not so obvious. Let's start with why we don't use just an AVR. The reasoning is simple, a hobby machine needs to be built with DIL components and a DIL-based AVR wouldn't have enough pins to support both a fast memory interface and the I/O needed for the display, keyboard and other features.

OK, so why don't we use an AVR instead of the Z80? Well, this would lead to other problems. Some AVRs can support external memory for data. This means the 'ROM', i.e. the language would be fixed on the AVR so essentially we would be forced to run an interpreted system. For example, we could support a p-coded language or Forth. The problem then is that the interpreter would be slower than native Z80 machine code (though it would be much faster than p-code or Forth on the Z80).

Video generation would be less problematic, because it'd be easy to formalise comms between the two AVRs so that the CPU-AVR would know all it had to do was generate addresses for the Peripheral-AVR; we can keep those in sync easily.