

Whether I go with two 74HC574s or four 74HC670s will depend on how much room I have to squeeze everything in. Replacing that buffer with two more 74HC670s would allow register to register transfers and give four more bytes which might be used for a 16 bit base pointer and index. Unfortunately, this would add another buffer chip in order to be able to transfer data between the four registers. Two of them would give me four 8 bit registers which is enough room to store an accumulator, one byte of the address buffer, and two other registers for something else like a memory index. Since the accumulator and address buffer chip already take up two chips, a better alternative would be to replace them with 74HC670 chips, which have four 4 bit registers per chips. Considering that I would need two extra 74HC245 chips to allow the program counter to be output to the data bus for subroutine jumps, this design uses four less DIP20 chips and is 240 holes smaller than the faster idea I had above. Now we have an accumulator, a program counter, and a way to access data indirectly, which should be enough to implement anything I need as long as I can use an ALU to manipulate addresses. Since I am using 74HC574s for all my buffers, I won't need anything extra to Z state them. One fast but large design would be to add buffers to Z state the program counters since they don't have an OE pin, which would allow a second set of buffers to drive the ROM when needed. The program counter chips will drive the program ROM and need to be loadable from the address bus in order to enable jumps and load data from ROM. At most, I would be able to fit 74 DIP16 chips on the two boards, although a lot of chips are bigger than DIP16. They are 33 by 54 holes, so I have 1782 holes per board and I hope to fit everything on two boards, which is 3564 holes. I didnt notice any glaring mistakes along the way. I had another read of the data sheet, and went about rewriting much of the code. I briefly mentioned past troubles getting an EEPROM writer going with my Arduino. This time I went with bigger 9x15cm boards since I think I will need every bit of space I can get. TTL Brainfuck Computer Part 7 - EEPROM woes Part 1 (first) - Part 6 (prev) - Part 8 (next) Another week, another head scratcher. This gives me a rough idea of the maximum number of chips I could fit on the board. This brings the total number of occupied holes to 48 and the overall count of all four counters to 192. Each of the 16 pins takes at least one more pin each for the wire that connects to it. So, the first thing I know I will need is four of these chips for the program counter:Įach chip is DIP16, which means it has 8 pins on a side and the outline is 4 pins wide, so the chip itself takes up 32 holes on a regularly spaced grid like protoboard. The Tiny calculator project I have been working on is already up to almost 8k and uses a much more space efficient design, so I will definitely need all four counters to have 16 bits of address space. Since I want to use the same space for RAM and ROM this would probably mean 2k RAM and 2k ROM. Three of these chips would give me a 12 bit address space, which is four kilobytes. Each of the 74HC193s I'm using add an additional four bits of address space. The first decision is what type of program counter to use. The major consideration at the moment is what balance of registers will allow me to do everything I need to do in the smallest space possible. Also, I have two microcode ROMs, like in Ben Eater's design, although I could survive with just one if I latch out some of the control codes from the program ROM. First, I have four registers, which would make programming a lot more convenient, but I would leave out to save space. So far, I have been able to get a fairly simple version of what I want to build going in the Atanua simulator:Īfter I got this going, I already started looking for ways to make the circuit smaller and fit into a calculator sized case. Another neat project I looked at is the Gigatron, which is a different RISC-type design that I don't think uses microcode. It uses an EEPROM for microcode, which is what I had considered for other projects.
#Ben eater eeprom programmer series
Recently, I got interested in the idea again when I saw Ben Eater's excellent series on building an 8-bit breadboard computer. Eventually, I gave up the idea since at least one other person had built essentially the same thing that I wanted to build, and I didn't want to totally reinvent the wheel.

There are a few things I have been thinking of for a long time that should help me save space.Ī few years ago, I got interested in building one of these computers using lookup tables on a flash or EEPROM chip to implement a simple ALU and got as far as putting a 4x4 bit look up on table on an EEPROM. My idea is to keep the design as minimal as possible, since even a simple computer of this type could get pretty big quickly. There are a lot of really neat computers built using these parts, and I would like to try building a relatively small one that fits into a calculator. My newest project is a calculator using 7400-series logic chips.
