Ray162K, the 16-bit computer

  • LBPHacker
    12th Mar 2015 Developer 0 Permalink

    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.

  • Synergy
    13th Mar 2015 Member 0 Permalink

    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.

    Edited 3 times by Synergy. Last: 13th Mar 2015
  • ISproductions
    13th Mar 2015 Member 0 Permalink

    WOW 

  • Factorial
    13th Mar 2015 Banned 0 Permalink
    This post is hidden because the user is banned
  • RockerM4NHUN
    14th Mar 2015 Member 0 Permalink

    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

  • Demoman200
    14th Mar 2015 Member 0 Permalink

    This is absolutely nuts and I love it. Also, where do you input the instructions you mention?

  • LBPHacker
    14th Mar 2015 Developer 0 Permalink

    @Demoman200 (View Post)

     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:

    • You make your bytecode somehow
    • You grab the PROP tool, select CTYPE and start setting the CTYPE of the pixels of the storage section of the memory - top-left corner is at (224; 235). Read The Memory section of the OP, that will help some.

    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.

     

    @RockerM4NHUN (View Post)

     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)

  • Schmolendevice
    14th Mar 2015 Member 0 Permalink

    Well, I just realized how wonderfully ingenous your FRAM design was.

  • LBPHacker
    14th Mar 2015 Developer 0 Permalink

    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).

    Edited 5 times by LBPHacker. Last: 14th Mar 2015
  • tjitte
    15th Mar 2015 Member 0 Permalink

    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

    Edited once by tjitte. Last: 15th Mar 2015