CLU:My Computer Project.

Post here to let others know of a project you're working on.

Moderators: Chuckt, Garth, bitfogav

User avatar
brad
Site Admin
Site Admin
Posts: 2578
Joined: Fri Mar 26, 2010 10:30 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Post by brad » Mon Apr 12, 2010 8:45 pm

I think it's just great that you're working on a project like this. It would be like living back in the 70's where computers like this project were all the rage.

I would recommend using plain old parallel eeproms. the only thing is that they have a higher programming voltage than their standard vcc voltage. Normally VCC is 5v and the programming voltage is 12.5v

I have a feeling though that you may need to erase the entire eeprom before writing data to it again rather than just writing to a single byte at a time.

I used to use those as my graphics memory in various projects.

Mattigasz
semi-newbie
semi-newbie
Posts: 15
Joined: Sun Mar 28, 2010 2:05 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Update Time!

Post by Mattigasz » Fri May 14, 2010 4:11 am

Altough I recently did not do much on the project at all yesterday I suddenly had an idea. What if I could write an emulator so that I can show my teacher (and you) how I envision the computer. Well after a day of hard labour it is finally done. But, not in your "usual" format. Since there is only one programming language I really am good at I decided I should write it in that language. yep, it is TI-84+ Basic. Altough it runs quite slow (I can think of quite a few optimizations) and altough it is but partially done I am still quite proud to have finally achieved something!
I also once more changed the instruction set and Data bus layout so here we go again:

Registers:
A Accumulator
B Backup register
C Counter Register
S Stackpointer register
F Flag register
T temporary register (used for OS routines. E.g. I don't have a function to Rotate Right but I can make it in software. In that software T is the "second accum"sort of..)
R register register :) (OS uses this as a "second backup register")
P program counter (Because every instruction is 16b it adds two to the program counter every cycle. With only 8 bits you quickly run out of space! so I think the MSB of S till S(4) will be used as an extension for P but I am not sure about that...)

Instructions:
+LD (obvious)
+MOV (copies the content of Rs to Rt (Rs=Register Source and Rt=Register target)
+ADD
+SUB
JP
JPZ
+IN (Receives data from 8 data pins and stores those to Rt)
+OUT(Takes the content of Rs and outputs it to the corresponding 8 data pins)
AND
OR
NOT
XOR
EX (Swaps content of Rs with content of Rt and vice versa)
BITT (tests the bit of Rs at position imm( imm=immediate value))
SET (sets the bit specified by imm in Rt)
RES (resets the bit specified by imm in Rt)
POP
PUSH

DATA LAYOUT:
Opcode (4 Bits wide) | Rs (3b) | Rt (3b)| imm (6b, to keep the amount of input low. Since we can add we can still fill, indirectly, all the 8 bits of the registers)

As for the TI-BASIC program it is still to slow and unfinished to release but I intend on finishing it soon. Actually I just discovered I have implented a duplicate function. OUT does the same as IN, in my BASIC prgm....
I'll have to work on that.
But, I not gonna say all sorts of things without showing you so...
take a look!
Image
Image

User avatar
brad
Site Admin
Site Admin
Posts: 2578
Joined: Fri Mar 26, 2010 10:30 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Post by brad » Fri May 14, 2010 6:11 am

I have to say that I am really very impressed with how this project is going :)

The fact that you are able to emulate this computer makes it all the more cool!

I am guessing that you used a TI-84+ emulator to emulate your homebrew computer and to take the screenshots? or did you actually just use your TI-84+?

I think this project is certainly something that I will learn alot from and would certainly be keen on building it once you have finished (given that you release all the required info)

anyway, thanks for posting back - and be sure to keep us posted!

Mattigasz
semi-newbie
semi-newbie
Posts: 15
Joined: Sun Mar 28, 2010 2:05 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Post by Mattigasz » Fri May 14, 2010 7:55 am

Oh well I took them from my TI-84+ so its not an emulation of an emulation but I think I'll do that because then I can show you the syntax of the emulator which is not quite like the syntax in the actual CLU. I have decided to do everything decimal instead of Binary because that is easier for the calculator to work on. Once I get the POP and PUSH properly implanted as well as the JP function I'll make a stable release.

Since It is sort of the grand ending project for school I'll actually ahve to document it very thoroughly, only if it were for myself to keep track of all that I am doing.

I am not very good at deadlines but i will try to give you a release next sunday or monday...(GMT +002 time).

Thanks for the support!

User avatar
brad
Site Admin
Site Admin
Posts: 2578
Joined: Fri Mar 26, 2010 10:30 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Post by brad » Sat May 15, 2010 8:16 am

Very cool,

Decimal sounds quite difficult though, will you then be converting to BCD or straight binary?

Mattigasz
semi-newbie
semi-newbie
Posts: 15
Joined: Sun Mar 28, 2010 2:05 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Post by Mattigasz » Wed May 19, 2010 7:35 am

I will be converting to BCD indeed but, I made a mistake...It is a SIMULATOR not an emulator which makes it way less impressive. Point is I am now trying actually to emulate but that is hard!
Already asked for help here: http://tibasicdev.wikidot.com/forum/t-241609/emulator (just a TI-BASIC developers website...)
about emulating the ALU.
Well I'll really try my best to finish it up pretty soon but it is gonna be delayed a lot I guess. I'll also probaly will write it in ASM. You might wonder why you'd need help for basic then...well I'll do it split. Some of the funtion I can already implent I'll do in asm. actually asm is way easier for a emulator to code in, especially mine since it has a lot of similiraties with the Z80 processor. If i only could figure out how to create "virtual registers" within the Z80 on which all register-based commands like LD and EX(X) work!


Sorry for the lack of orginasition in this post but yea...that is a peek into my mind :)

User avatar
brad
Site Admin
Site Admin
Posts: 2578
Joined: Fri Mar 26, 2010 10:30 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Post by brad » Wed May 19, 2010 10:18 pm

He he, this project is going to drive you nuts!

(don't you just love those sorts of projects - I think I am working on one now...)

Mattigasz
semi-newbie
semi-newbie
Posts: 15
Joined: Sun Mar 28, 2010 2:05 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Update

Post by Mattigasz » Sun Jun 20, 2010 3:33 am

Woohow it has been a long long time since I posted here and plans have changed, again. I tried to make it myself a little easier by using an FPGA, but really it's a mess all over again. I currently posses the nexys 2 FPGA board which has some neat features (16 MB SDRAM and 16 MB Flash ROM, PS2 port, VGA port RS232 port, Usb port and misc connectors). Point is there is much information about FPGA's but not as much about VHDL and definetely not in a comprehensive way!
So altough I won't have to solder stuff, now I have to go trhough a whole mess of digital papers to get the right information...
I'll update you later when I get some results...

User avatar
brad
Site Admin
Site Admin
Posts: 2578
Joined: Fri Mar 26, 2010 10:30 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Post by brad » Sun Jun 20, 2010 8:36 am

Sounds quite impressive :)

Was it very expensive?

Mattigasz
semi-newbie
semi-newbie
Posts: 15
Joined: Sun Mar 28, 2010 2:05 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Post by Mattigasz » Sun Jun 20, 2010 11:13 pm

depends...FPGA's are generally expensive but you can get an acedemic version for $99 at digilent. The point was that since I live in europe shipping costs and taxes would raise the price to nearly $189 so I bought it in germany and it costed me with shipping included (no taxes because it was bought via the company of my dad) 128 eur. So the board itself is realtively inexpensive shipping and taxes however make it the mroe expensive...

User avatar
brad
Site Admin
Site Admin
Posts: 2578
Joined: Fri Mar 26, 2010 10:30 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Post by brad » Tue Jun 22, 2010 6:32 am

Can you upload any photos?

Mattigasz
semi-newbie
semi-newbie
Posts: 15
Joined: Sun Mar 28, 2010 2:05 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Post by Mattigasz » Sun Aug 15, 2010 1:39 am

First of all, sorry for not being around here for quite a while. I have to admit I nearly forgot this place, nearly because I am back now!

I'll give you a picture then, it's quite a small thing. It's somewhat bigger then a cd/dvd but well, it's smaller then I thought it would be.

here is a comparison, with a pencil:
Image
And below is a picture with all the important features described:
Image

My apologies for the poor quality, I had to take the pictures with my webcam because our regular camera resides in norway atm, but that's a different story.

As for progress, there is little. I am currently reading a free book called "The VHDL Cookbook" The fact that it's free has the disadvantage that it has little to no step-by-step examples. So whilst I can learn the concepts I can barely do anything with it. I am thinking about buying a book from digilent with over 75 examples.

There are some though times coming but hey, the greater the satisfaction will be if I succeeded, and I will.[/img]

User avatar
brad
Site Admin
Site Admin
Posts: 2578
Joined: Fri Mar 26, 2010 10:30 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Post by brad » Sun Aug 15, 2010 9:02 pm

Looks like you are going to have your hands full for a while then :)

It's quite an impressive piece of gear, especially with the VGA out connector. Is it pre-loaded with any firmware that allows you to do anything with it - or is it blank and you have to do it all yourself?

Mattigasz
semi-newbie
semi-newbie
Posts: 15
Joined: Sun Mar 28, 2010 2:05 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Post by Mattigasz » Sun Aug 15, 2010 9:15 pm

brad wrote:Looks like you are going to have your hands full for a while then :)

It's quite an impressive piece of gear, especially with the VGA out connector. Is it pre-loaded with any firmware that allows you to do anything with it - or is it blank and you have to do it all yourself?
It is completely blank. And indeed, its very powerfull stuff If you are properly equipped with VHDL knowledge which unfortunately I am not. The only fpga dedicated site I found is fpga4fun, it has a forum but it's content is mostly Verilog HDL based which is not the langauge I use but is preffered in North-America. I can only wait for my book to arrive :) Then, things will get rolling. In the meantime I am trying my best to implent a ALU and registers.

Thanks for the support so far and sticking with me despite me not sticking with you. I appreciate it!

User avatar
brad
Site Admin
Site Admin
Posts: 2578
Joined: Fri Mar 26, 2010 10:30 pm
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Post by brad » Sun Aug 15, 2010 9:27 pm

He he, no problem. I think it's quite an interesting project so keep us posted when you get some time, I have never even looked into FPGA's but I do know how powerful they are. Some guy developed his own Amiga with an FPGA

Post Reply
[phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1266: count(): Parameter must be an array or an object that implements Countable

Who is online

Users browsing this forum: No registered users and 3 guests