Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Glad to see u here, mr. GianlucaG.!
Thanks a lot for your attention to our 4-BIT forum!
I've found your Apollo181 project to be interesting,
so we have a little discussion about it here.
I think, the replys on any questions about Apollo181
from its author will be very useful for those interested in.
_________________ iLavr
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
So, I myself have two main questions after our discussion about Apollo181 here.
The first is - why don't you realize the memory space more than 256 bytes?
256 bytes is so not enough...
And the second is - why don't you implemented "write" operation into programs
RAM, as well as instructions CALL and RET?
_________________ iLavr
|
GianlucaG.
Junior
Joined: 15 Feb 2013 23:39 Posts: 2 Location: 79.7.160.79
|
![Reply with quote Reply with quote](./styles/getaway/imageset/en/icon_post_quote.gif)
Hi Mr Lavr,
It a pleasure for me to meet you here.
Thanks for all you have written about my project.
As you may have read in my website: "Being very fond of the Bugbooks, the reference to these books became to me a strict requirement of the project: all 7400-series chips in my custom CPU had to be described in one of two volumes of the TTL Bugbooks®."
This has driven the full project, with all resulting restrictions.
Said this, the largest TTL 7400 chip memory you can find in the book is the 74200 that is 256x1 bit, that means that to double my memory to 512 byte, I had to use 16 chips, i.e. a lot of space and power (2 Ampere). Also they are expensive and hard to find (5 euro each) and I need back-up replacements for all chips in my machines in case of future failures.
Also I had to add a new counter stage and switches for the extra bit. Then, as you may see, my GOTO instruction can address any location of the 256 byte, because it uses 4-bit of accumulator plus 4 bit of operand. If you rise memory to 512 byte you need to segment the memory in two, that means extra command and chip to point one of the two segments.
With only 256 Ram I succeed to run a clock, a stepper motor, a led dimmer, a 12 bit calculator, then next two projects, an orgue (music) and a led game: given the solely educational purpose of the machine, I experienced that 256 words of program were anyway more than enough.
The last: to write by hand 512 binary program locations is hard even you are a patient guy!
Second question: I had only 16 commands possibility, being a 4-bit machine and I wanted to be able to run all 32 functions of the 74181. I had to give up to two instructions, in order to implement a call and ret.
Also, as ROM, I used the 74188 (size limited by Bugbook..), a bank of four.
That means sixteen control lines. I used all. How to implement Call and Ret? Extending the ROM bank with extra two 74188 chips. As you may see each improvement is possible but it would have required to exponentially cause difficulties in the project. But you are right: it is a big miss; it came to my mind at the end of the project (like the missing of a shift right chip, very easy to implement). Too late!
I can anyway implement a Call and Ret by software, creating a GOTO lookup conditional table.
Write into RAM: same issues and circumstances as before.
It was my first (and probably last) CPU. It is easy, just didactic, but it covers a lot of applications. I acquired a huge experience to design it. Now I would be able to build a more powerful CPU with the same Bugbook component set.
Kind regards
GG
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Don't u think about using prefix, which may give u a possibility
to enlarge the number of avaliable commands?
May be something like this?...
_________________ iLavr
|