Hackaday Prize 2023: Scratch Made 8-Bit Educational Computer

To demonstrate the functionality of an 8-bit computer processor at a very basic level,  [Mazen Gomaa] assembled a Homemade 8-Bit Educational Computer using common CMOS logic chips, a handful of prototyping boards, and an impressive number of carefully connected wires. [Mazen] was inspired by Ben Eater’s 8-bit TTL Breadboard Computer but opted to solder the chips and other components onto proto boards instead of using solderless breadboards.

The 8-Bit computer is based on the Simple-As-Possible (SAP) computer architecture described in the book “Digital Computer Electronics” by [Paul Malvino] and [Jerald Brown]. These useful educational examples demonstrate data, computer logic, and even programming in the context of basic electronic components. Tinkering with such simple computers provides a real “zeros and ones” exposure to computation.

[Mazen] added some additional features and functionality to his computer, including an instruction keypad, an address keypad, a dot matrix memory data viewer, a Schottky diode matrix ROM, and a boot loader that initializes the RAM with data stored in ROM. With clock speeds up to 100 Hz, the computer consumes around 300-500 mA of current.

Future plans include expanding the memory and instruction set from the present 128-bit (8×16) RAM, 64-bit (8×8) ROM, and a set of ten instructions.  Already, this project is a great addition to an ever-growing catalog of homemade solderless breadboard computers, LCD snake games, and VGA video cards.

6 thoughts on “Hackaday Prize 2023: Scratch Made 8-Bit Educational Computer

  1. Ah, the MSI days, when buses were buses, tri-state outputs were our friends, and you didn’t have to have as many multiplexers as everything else combined. Yes, yes, multiple tri-state devices on a bus constitute a sort of implicit ad hoc multiplexer, but you didn’t have to worry about it as much. Fun stuff.

  2. Lol, you’re not fooling me. The object in the upper left corner of the video is an encased raspberry pi driving an assortment of random LEDs.

    Jabs aside, I’ve always said it’s great when programmers start off with this level of understanding of the computer systems they’re programming. But that’s just a gray beard harkening back to the old days.

    Before CS grad school, as a EE undergrad, we used transistors to create adders, etc.

  3. You guys in 1960+ software technology?

    16 bit add program rewitten in direct accesses.
    nop nop nop nop ; machine language human factdors
    mov bx argstack + 16 ; get 2 into ax
    mov ax argstack + 18 mov ; 3 into ax
    ax cx add ; 2+3=5
    mov argstack + 20 ; push 5 onto software stack
    mov argstack + 8 # 22 mov ; update tos
    nop nop nop ; machine language human factdors

    Before 16 bit add module executes.

    argstack starts at 8a38.

    stack size 1 = 1024 bytes

    top of stack offset at 8a30.

    hex 14 = 20 decimal.

    16 bit wide argument stack starts at 16 decimal. So there are two elecments, 2 and 3 on the software stack.


    The sum 5 is pushed on the siftware stack at 8a4c. The 5.

    TOS is updated to decimal 22 hex 15 seen at 8a40

    The x86 machine code starts at 8e3f.

    4 noops seen.

    Trailing 3 hoops seen at 8e55.

    A c compiler is used to add a=2, b=3, c=a+b.

    Binary extracted out of the c object file.

    Addresses of a, b, and c replaced by argstack addresses.

    8a48, 8a5a, 8a4c are address 2, 3, and 5 in argument stack!

    And at 8e51 the tos address us 8a40 which is updated with 16 hex,
    22 decimal, the new tos. :)

    Machine lanuage can be easy to read … providing you are looking
    at the right stuff, of course.

    And the stuff we are not looking at the c compiler writers have written. :)++

    Thne placed in the modules code field.

    Process repeated for arm m and a series, risc-v and any other flatform
    which has a c compiler.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.