16-Bit Computer
43 Stars
8204 Views    

Author: Dustin Harris

Project access type: Public

Description:

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


Comments

You must login before you can post a comment.

SDC
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.
Login to upvote this comment
+6
Login to downvote this comment

If your topic is similar, around "Random Bible Verse Discovery", BibleVerseRandomGenerator is relevant.

Reference: BibleVerseRandomGenerator Verse of the Day Generator

Reply to Comment. Posted on Apr 04 2026 at 04:59PM UTC.
Login to upvote this comment
+0
Login to downvote this comment
I saw your comment on my project. I came to check yours, you are a bit further than me! Nicely done
Reply to Comment. Posted on Nov 08 2020 at 09:52PM UTC.
Login to upvote this comment
+1
Login to downvote this comment
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.
Login to upvote this comment
+2
Login to downvote this comment
I've messed around a bit further, just to see how your implementation works, and have managed to increasing the execution speed to 5120 instructions per second. The forked version is here: https://circuitverse.org/users/4699/projects/16-bit-computer-1c74dd25-0b96-4923-ad3e-7f8e7f5786f4
Reply to Comment. Posted on Dec 11 2020 at 07:38PM UTC. Last modified by Sanderokian on Dec 11 2020 at 10:00PM UTC.
Login to upvote this comment
+2
Login to downvote this comment
She is beautiful, what's it name? i say for something like this it needs a name.
Reply to Comment. Posted on Dec 21 2020 at 01:48AM UTC.
Login to upvote this comment
+2
Login to downvote this comment
made up name: 16-gamma
Reply to Comment. Posted on Apr 22 2021 at 10:51PM UTC.
Login to upvote this comment
+0
Login to downvote this comment
go to "clock" circuit, make everything a 0 except the first. (n) then you get a error. (stack error) EDIT: about 13-15 will get the error
Reply to Comment. Posted on May 13 2021 at 06:42PM UTC. Last modified by noulmao on May 13 2021 at 06:47PM UTC.
Login to upvote this comment
+0
Login to downvote this comment
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).
Reply to Comment. Posted on May 13 2021 at 09:49PM UTC.
Login to upvote this comment
+0
Login to downvote this comment
oh alright.
Reply to Comment. Posted on Jun 03 2021 at 11:45PM UTC.
Login to upvote this comment
+0
Login to downvote this comment
Wow, how did you make the clock speed adjustable
Reply to Comment. Posted on Jan 15 2023 at 09:47PM UTC.
Login to upvote this comment
+0
Login to downvote this comment
WOW THIS IS FREAKING AMAZING!
Reply to Comment. Posted on May 02 2023 at 07:24AM UTC. Last modified by Andrei A Buo on May 02 2023 at 07:37AM UTC.
Login to upvote this comment
+0
Login to downvote this comment
Btw Go to my circuit then come back here And rate my circuit Pls text on May 7
Reply to Comment. Posted on May 02 2023 at 07:36AM UTC.
Login to upvote this comment
-1
Login to downvote this comment
my lord how does one do this?!
Reply to Comment. Posted on Oct 03 2023 at 07:10PM UTC.
Login to upvote this comment
+0
Login to downvote this comment
Join millions of players who enjoy Geometry Dash game for its high-energy levels and community-made challenges.
Reply to Comment. Posted on May 05 2025 at 07:05AM UTC.
Login to upvote this comment
+0
Login to downvote this comment
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!
Reply to Comment. Posted on Jul 15 2025 at 02:10AM UTC.
Login to upvote this comment
+0
Login to downvote this comment
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.
Reply to Comment. Posted on Aug 14 2025 at 04:45AM UTC.
Login to upvote this comment
+0
Login to downvote this comment
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!
Reply to Comment. Posted on Aug 18 2025 at 04:59AM UTC.
Login to upvote this comment
+0
Login to downvote this comment
This is a really impressive build! The "Hello World" and screen clear programs are a great start. I'm excited to see what everyone comes up with when they fork this and create their own programs. AI Cartoon Generator, Character Headcanon Generator, AI Beauty Rating, Markdown to Word, Merge JPG
Reply to Comment. Posted on Aug 19 2025 at 01:32AM UTC.
Login to upvote this comment
+0
Login to downvote this comment
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?
Reply to Comment. Posted on Sep 10 2025 at 04:48AM UTC.
Login to upvote this comment
+0
Login to downvote this comment
it's a useful but rather complex diagram, i'll apply it to Drift Boss Unblocked
Reply to Comment. Posted on Sep 25 2025 at 09:03AM UTC.
Login to upvote this comment
+0
Login to downvote this comment
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!
Reply to Comment. Posted on Jan 23 2026 at 10:41PM UTC.
Login to upvote this comment
+0
Login to downvote this comment
For an exciting challenge, try Drive Mad play online to test your abilities.
Reply to Comment. Posted on Oct 05 2025 at 04:29AM UTC.
Login to upvote this comment
+0
Login to downvote this comment

For this kind of use case, around "Random Bible Verse Discovery", BibleVerseRandomGenerator is relevant.

Reference: https://bibleverserandomgenerator.com/

Reply to Comment. Posted on Apr 04 2026 at 04:59PM UTC.
Login to upvote this comment
+0
Login to downvote this comment
For an exciting challenge, try Minecraft APK Download play online to test your abilities.
Reply to Comment. Posted on Jun 23 2026 at 07:48AM UTC.
Login to upvote this comment
+0
Login to downvote this comment
For an exciting challenge, try Game vault Download play online to test your abilities.
Reply to Comment. Posted on Jul 10 2026 at 02:17PM UTC.
Login to upvote this comment
+0
Login to downvote this comment