Everything is working great in this build! So I will be taking about a week break from this. Well except single pixel drawing on GPU but more on that later. I included a Hello World program and a screen clear test program running by default.But I would love to see what programs people can come up with. So definitely fork this and make your own programs for it, and link them in the comments below!
Also I am working on adding more instructions for the cpu and the gpu, let me know what might be useful in the comments and definitely check my in progress updates below!
I am running into an issue with per pixel drawing giving a contention error which doesn't make sense as i have tested the chip. unless the rgb screen col and row pins are also outputs i don't get what is going on.
For now though i'm taking a break from that and working on implementing some more of the OPs.
Here is a list of instructions. I'll add descriptions soon. Anything with a * before it is not implemented yet.0 NOP [0]1 JMP [1]2 SETA [10]3 SETB [11]4 LDA [100]5 LDB [101]6 WRA [110]7 WRB [111] *8 IA [1000]*9 IB [1001]*10 DA [1010]*11 DB [1011]*12 SLA [1100]*13 SLB [1101]*14 SRA [1110]*15 SRB [1111] 16 ADD [1 0000]17 SUB [1 0001]18 MUL [1 0010]19 DIV [1 0011] 20 EQL [1 0100]21 NEQL [1 0101]22 GRT [1 0110]23 LSS [1 0111]24 GRQL [1 1000]25 LEQL [1 1001] 26 SSP [1 1010]27 PUSH [1 1011]28 POP [1 1100]29 LTS [1 1101] *30 PROC [1 1110]*31 EPROC [1 1111] 32 SAS [10 0000]
Created:
Feb 22, 2020
Updated:
Jun 30, 2023
Add members
Enter Email IDs separated by commas, spaces or enter. Users need to be registered already on the platform. Note that collaboration is not real time as of now. Every save overwrites the previous data.
Delete
Are you sure you want to delete this project?
Delete
Are you sure you want to remove this collaborator?
Super impressive build! I step away from the site for a couple of months, just to be seriously one upped!
I may be wrong (and I usually am most of the time), but I've run into contention errors with RAM units before too, especially when there's any feedback or recursion going on between it's input and output (I'm talking about the RGB output from your GPU. Not too sure if this is the case, but might be worth looking into). Probably a bug in the site. Anyway, the way I was able to deal with it was place a flip-flop between the output and whatever I was connecting it to, then couple the clk input to an inverter (you may need to either invert or not, depending on how you set up your clock system).
If I get some time off from school, I going to fork this and play around with it, because it's seriously cool, almost like the Pro-Athena build I saw awhile back.
Reply to Comment.
Posted on Mar 11 2020 at 07:39PM UTC.
Last modified by SDC on Mar 11 2020 at 07:39PM UTC.
I looked around and it turns out that your contention issue is due to the fact that in the side off the screen your X and Y lines are connected (it's hard to see since the multibit lines are the exact same as the edge of the screen. In order to see it, just delete both the X and the Y lines connecting to the screen and it'll turn red). After deleting that line it appeared to work fine. Hope this helps!
Also EEPROMs in sub circuits can be persistent but must be written to in the sub circuit itself. I'm personally going to use the EEPROM load data function to program my computer (I'll write an assembler using python which will convert it into the data).
Reply to Comment.
Posted on Dec 10 2020 at 12:09AM UTC.
Last modified by Sanderokian on Dec 11 2020 at 09:51PM UTC.
Noulmao, the input n is how many times the computer's clock line is pulsed when the circuit clock changes state. This allows the number of cycles the computer executes per second to be controlled, allowing the computer to be sped up or slowed down. Naturally, setting it too high will cause stack errors since it will attempt to update the computer too many times in a single pulse, resulting in Circuitverse's execution stack being filled, causing the error. This is perfectly intended behaviour, and is why the n input exists, since it allows us to limit the number of loops to a safe number. (If you're wondering why I know, this kind of overclocking is my tech).
Awesome project! The instruction set looks promising. Implementing IA/IB would open doors for addressing modes. For the single-pixel issue, double-check address decoding. Could it overlap with memory mapped registers? Maybe try focusing on easier challenges like daily Wordle Unlimited to refresh your perspective. Share updates after your break!
Turing complete computer on a breadboard! Makes you think about the limits of what's possible. This 16-bit dream looks impressive. It's cool how the author wants community input. That's one way to accelerate innovation. Remembering my early days of coding, I once chased a phantom bug for days only to discover a simple typo in a variable name. Felt so dumb, but that's programming. I wish I had a block breaker for those kind of moments.
It’s exciting to see projects like this progressing so smoothly. The blend of GPU pixel drawing and interactive coding really sparks creativity. Once, while working on a similar graphics program, I struggled with rendering tiny details, but persistence paid off. I’m curious if Monkey Mart users will push this build even further with unique programs. I encourage everyone to share their innovative creations here!
Wow, this 16-bit computer project is seriously impressive! I'm especially interested in seeing the screen drawing capabilities expand. It reminds me of the simple, yet addictive, graphics of the Slope Game – sometimes less is more! I'll definitely be forking this and experimenting with some programs. Keep us updated on your progress, especially with those new instructions! Maybe something to help with collision detection?
Well, I also had a dream about my computer being hacked. There were codes, like something out of The Matrix, and at one point I saw someone replying to emails for me. How weird dreams can get sometimes!
If your topic is similar, around "Random Bible Verse Discovery", BibleVerseRandomGenerator is relevant.
Reference: BibleVerseRandomGenerator Verse of the Day Generator
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
For this kind of use case, around "Random Bible Verse Discovery", BibleVerseRandomGenerator is relevant.
Reference: https://bibleverserandomgenerator.com/
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?
Delete
Are you sure you want to delete this comment?