An assembler written in Lua is on its way (yup, that means you'll have to use it from the console); I suppose that will answer a bunch of questions regarding the programming of this thing. Also a somewhat more interesting default program. It'd be nice to build decimal IO panels too so people with absolultely no knowledge of computer programming could use Ray, but every time I try to build something that would convert binary to BCD I end up with a headache.
If you look in my saves, there's a binary > BCD converter there. It's a piece of shit and out of date, but it was the first one made in PT. arK made far far better versions recently, you can find them in his AEC2 and AEC3 (I don't know if he's publicly published 3 yet). I am about to create another one with all the new elements soon. If you need an explanation of how these work just PM me, it's pretty simple shifting and adding. (if you could create that adder, you'll be able to create this)
This in conjunction with BCD > binary, and a piston based printer/screen for printing characters/numbers could allow you to do a lot.
WOW
Hy, i've built the fastest possible electronic single core cpu. It's got decimal input and output system, pipeline execution, and some interesting solutions that can give you some ideas. It also has a compiler.
Maybe the mixture of the two would create the currently possible best computer!
Forum: https://powdertoy.co.uk/Discussions/Thread/View.html?Thread=19108
ID: 1599945
Amúgy ja, hali MO-ról :D
This is absolutely nuts and I love it. Also, where do you input the instructions you mention?
So ... yeah, programming. Question of the week. I just knew I wasn't explaining it well enough. Oh well, I'll just answer this quickly and at the same time promise that I'll update the OP in the next few days. Programming goes like this:
I'll eventually write that assembler and then you guys will be able to write programs to your hearts' content. Until then, grab my TPT extensions from my site: http://lbphacker.hu/powdertoy, those might help some as well - especially ExtendedHUD.
Hali Rocker! Fuhú, láttam ám; többek között az indította el bennem ezt a gépépítés dolgot. Valamikor beszélhetnénk egy-két szót. Amúgy nem tudom, hogy hogy tudnánk ezt a kett?t összerakni. A tiéd nagyon INST alapú, az enyém meg nagyon FILT; szinte csak ott használok INSTet, ahol lusta voltam rayconduitokat csinálni. Tudom, gyors meg minden, de 16 INST egymás mellett már 31 pixel, az meg rohadtsok. Esetleg a pipelining jól jöhet, de még nem gondolkodtam rajta annyit.
(Don't google it guys, it's Hungarian)
Well, I just realized how wonderfully ingenous your FRAM design was.
Heh, you mean the masks and the buffers? Seriously, most of the time went with working those out when I was building Ray. Oh, and you're still tuned and keep checking both the save and the thread! Awesome!
EDIT: See the updated OP (actually I updated my first comment; I couldn't update the OP because I crossed the 10000 character limit with the edit).
hey,
this is awesome! this computer is almost fast eneugh to do some real computing ;) it is also grat that you made an LUA compiller. it has a realy nic workflow. however I think it needs soe improvements before this cpu becomes usefull. the main problem i find is that it is nearly imposible(unless you manualy edit the memory) to mkae variables in the assambly code. there is no way, like you wrote, to directly set registers or memory adresses to a spesivic value. there are the put and GET commands, i assume they can write full 16 bit values to the register, bit in your assambler you cant write raw data to a memory adress by using a label.
it would be usefull if we could write something like:
variable: 0354 ;store value 0354 at memory adress 'variable'
string: "this is a string" ;stores the given string in the adresses starting from 'string'
;then using GET to put the variable in a register:
GET AX, variable
for a string this would couse some dificulty, becouse you would neet to genarate an adress in runtime, and use it in a GET oporand:
GET AX, variable + n ;witch would be hard to implement, i gues
the ony way i could find to get aroud this was to use user input from the IO ports. this is a script i wrote to calculate the fibonacy sequence:
IN AX,0
PUT AX, 0300
GET BX, 0300
GET AX, 0300
fib:
OUT BX, 2
PUT BX, 0300
ADD BX, AX
GET AX, 0300
JMP fib
HLT
I hope you find my late-night feedback usefull, i saw this and i tought it was amazing! so now its 4 in the morning already.
cheers, Tjitte
*EDIT: sory for bad engish and typos, again: 4 o' clock