My projects

Joining MCH2022's Badge.Team

The Badge.Team mascot

The Badge.Team mascot

In summer 2020, I started volunteering for the MCH2022 Badge.Team. I really wanted to contribute, but at first I didn't know where to start. So, I tried making an app for the SH2017 badge.

That is when I realised. There is no way to perform transformations. There isn't even a way to draw a triangle!

So, I got to work creating some better graphics for them. And now, for the MCH2022 badge, I was asked to write the graphics stack.

Badge.Team website, read more.

GR8CPU (inactive project)

GR8CPU Rev2, an 8-bit breadboard computer.

GR8CPU Rev2, an 8-bit breadboard computer.

GR8CPU is my project to build a fully functional computer on breadboards. The first version i built, GR8CPU revision 2, has easily over 600 wires, 74 integrated circuits and 79 LED lights. It is an 8-bit architecture with simplicity and processing power in mind. The CPU has access to 256 bytes of RAM, and i have written a fully functional Tic-Tac-Toe for it.

As of now, I'm working on building my second one, GR8CPU Rev3. The first CPU was loads of fun to work on, but my ambitions are higher: with 65536 bytes of memory, improved arithmetic and a much higher speed by design, this CPU is a contender for the most complex breadboard CPU ever made.

Whereas the flagship program for GR8CPU Rev2 is a game of Tic-Tac-Toe, the flagship program I'm working on now is a functional operating system inspired by the original unix, which is the grandfather of modern Linux, MacOS, BSD and android.

Read more.

GR8NIX, the breadboard operating system (inactive project)

GR8NIX, first time running a program.

GR8NIX, first time running a program.

GR8NIX is an operating system inspired by Unix, a simple multi-user, multitasking operating system made in the 1970s. Modern operating systems based on unix's ideas include Linux, MacOS and Android, among others.
GR8NIX is written in assembly, for GR8CPU Rev3. It is made of over 2000 lines of hand-written assembly, totalling over 5 kilobytes and counting.
Technical details include:

  • Multithreading supporting 32 concurrent threads.
  • A theoretically unlimited number of running programs, limited by number of threads.
  • Dynamic memory allocation, with a current size of up to 8 kilobytes.
  • True position-independent execution for programs.
Read more.