I designed my own 8-bit computer just to play PONG

Поділитися
Вставка
  • Опубліковано 21 лис 2024

КОМЕНТАРІ • 2 тис.

  • @azmebengraine1437
    @azmebengraine1437 3 роки тому +4162

    Next: Moving electrons by hand like a real programmer

    • @97Corvi
      @97Corvi 3 роки тому +80

      *for playing space invaders
      XD

    • @procrastinatingcartoonstm5130
      @procrastinatingcartoonstm5130 3 роки тому +4

      yes

    • @red-52
      @red-52 3 роки тому +4

      @@licklack159 no they use very very basic python lol I suck (at least rn I will be the next jbh)

    • @JuanR4140
      @JuanR4140 3 роки тому +7

      @@red-52 Python is okay but definitely not good enough as other languages like C or C++

    • @red-52
      @red-52 3 роки тому +2

      @@JuanR4140 ya ik

  • @arnimlost
    @arnimlost 3 роки тому +6178

    Next: So I decided that I'm just too good for electricity, so I built a steam-powered turing machine

    • @benjaminbanerjee8784
      @benjaminbanerjee8784 3 роки тому +91

      Inb4 he makes the Charles Babage Computational Engine

    • @AbhinavKulshreshtha
      @AbhinavKulshreshtha 3 роки тому +58

      Thats actually not a bad idea, I know I have seen a water pump based calculator device on youtube.

    • @olivander5171
      @olivander5171 3 роки тому +21

      after that comes a better wheel

    • @sidtheloser
      @sidtheloser 3 роки тому +2

      Bruh

    • @krum3155
      @krum3155 3 роки тому +32

      He's too cool for machines now, so he just imagines it.

  • @AshVXmc
    @AshVXmc 3 роки тому +2337

    Next video: I went to a mine and gathered raw resources to build my own CPU

    • @vaisakh_km
      @vaisakh_km 3 роки тому +90

      After that:. Custom mine tools for doing it..

    • @astroblurf2513
      @astroblurf2513 3 роки тому +98

      Next video after that: I reverse engineered imperialism and have established the means to exploit local ethnic conflicts for the sake of extracting conflict minerals for my CPU

    • @aidangambura7067
      @aidangambura7067 3 роки тому +20

      Oh no....
      *HE LIKED YOUR COMMENT. THAT MEANS YOU GUESSED RIGHT.😅*

    • @matthewe3813
      @matthewe3813 3 роки тому +24

      @@astroblurf2513 after that: using a large stockpile of up quarks, down quarks, and electrons to create ethnic groups to fight and exploiting them for materials to make a particle accelerator where wich I create silicone to make transistors that I put together to make a CPU

    • @truestopguardatruestop164
      @truestopguardatruestop164 3 роки тому +15

      @@matthewe3813 next video after that: I’m sick of exploiting premade humans. I made my own human clones army

  • @st31n91
    @st31n91 3 роки тому +1613

    Next: Too good for keyboards, or software, or languages: Just write code in binary with hole-punched notecards like a real programmer

    • @kfdjhnhurjnnbjhu3ip410
      @kfdjhnhurjnnbjhu3ip410 3 роки тому +61

      blink for 1, dont blink for 0

    • @katherinedobbs52
      @katherinedobbs52 3 роки тому +29

      If you aren't writing programs for a Jacquard loom, I don't wanna hear it!

    • @przemcio6867
      @przemcio6867 3 роки тому +2

      well, after watching this episode... your idea sounds easy to do

    • @zwwz1424
      @zwwz1424 3 роки тому +3

      @@przemcio6867 satire?

    • @wizdude
      @wizdude 3 роки тому +10

      Punch cards? The first computer I worked with had 16 switches for the address bus, 8 switches for the data bus, a deposit button, a reset button and a run/stop switch. Based on an 8080. Hand assembly and switch input. It taught me to become a wiz in binary.

  • @DantalionNl
    @DantalionNl 3 роки тому +273

    As electrical engineer I actually think you used logisim for its intended purpose, education. The visual representation of gates as well as real-time status updates will make the circuit much more intuitive to understand than 2 pages of VHDL or verilog.

    • @skilz8098
      @skilz8098 2 роки тому +2

      Also watching Ben Eaters series is an additional treat.

    • @proatplanes
      @proatplanes 2 роки тому

      then you do it like that

    • @kakyoindonut3213
      @kakyoindonut3213 Рік тому +2

      not a student but I play a lot of Logisim and made my own 16x16 video player, which I another circuit dedicated on animating every frame of it.
      years pass and I forgot how I even able to do that.

    • @tissuepaper9962
      @tissuepaper9962 Рік тому +1

      I'm honestly surprised he didn't write a tool to convert from Verilog to a logisim diagram

  • @bbq1423
    @bbq1423 3 роки тому +2062

    Next video: **LOGIC GATES ARE TOO HIGH LEVEL, NEED TO MAKE IT TRANSISTOR LEVEL**

    • @coderdude9417
      @coderdude9417 3 роки тому +182

      No he’s going to have to go the vacuum tube route and program the computer with punch cards

    • @theoarcher896
      @theoarcher896 3 роки тому +136

      I’m fed up with depending on transistor companies, I’m manufacturing my own

    • @Benetekt
      @Benetekt 3 роки тому +56

      @@theoarcher896 I'm fed up with depending on transistor manufacturing machine companys, I'm building my own machines xD

    • @belstar1128
      @belstar1128 3 роки тому +30

      I need to make my own universe.

    • @matthewe3813
      @matthewe3813 3 роки тому +38

      Video after that: *TRANSISTORS ARE TOO HIGH LEVEL, AM NOW PUTTING P AND N SILICONE TOGETHER*

  • @samuelgunter
    @samuelgunter 3 роки тому +1637

    He's evolving, just... backwards

    • @maxwellclark1615
      @maxwellclark1615 3 роки тому +11

      I think they’ve got a word for that

    • @samuelgunter
      @samuelgunter 3 роки тому +37

      @@maxwellclark1615 yes, but you see, it's a reference

    • @matthewe3813
      @matthewe3813 3 роки тому +6

      @@maxwellclark1615 devolving

    • @timelyenigma
      @timelyenigma 3 роки тому +20

      @@maxwellclark1615 its just called evolving. evolution isnt linear.

    • @samuelgunter
      @samuelgunter 3 роки тому +4

      @You thought it was a joke? Terry Davis who developed TempleOS?

  • @billynugget7102
    @billynugget7102 3 роки тому +816

    This is absolutely mind blowing. As someone who is studying EE and CS the amount of work here is crazy! The range of skills is nutty! Big props to this dude

    • @exedo9882
      @exedo9882 3 роки тому +84

      Similarily studying computer engineering. In theory I understand all of this but in practice holy shit.

    • @eebilu
      @eebilu 3 роки тому +41

      CS student here did my compiler project last semester and a VM project a year before (which the compiler's asm output runs on), and dear god this guy is pushing himself way too hard.

    • @arc-sd8sk
      @arc-sd8sk 3 роки тому +20

      @@eebilu idk man kinda sounds like you aren't pushing yourself hard enough so maybe work on that ??

    • @rubiskelter
      @rubiskelter 3 роки тому +42

      ​@@arc-sd8sk idk man, it kinda shows you don't recognize different levels of intelligence. This guy is not normal, statistically speaking. He's for sure way above 135 IQ (SB) , i'd bet 140+ . He doesn't even have enough views/subs to make a living from youtube, so he does this as a part-time.
      I'm a CS graduate, i've build a compiler from scratch, lexer and parser in C (Among other "low level" stuff, like a 3d engine), i've spent countless hours studying (You go through a lot of maths, that don't add up to practical skills , if one's not invested in research later in life), i've met much smarter people than me, and they went a step further by creating their own OS. Great for them, loved learning from smarter peers.

    • @arc-sd8sk
      @arc-sd8sk 3 роки тому +21

      @@rubiskelter it was a joke-I was just busting his balls :)
      but I appreciate such a detailed and thoughtful reply so thanks for that

  • @Frosthorne
    @Frosthorne 3 роки тому +16

    I completely relate to the StackOverflow bit about lexical analyzer generators. I eventually managed to build a working compiler from scratch but initially, all my questions were met with "use this existing tool that does all the work for you".

  • @fr4781
    @fr4781 3 роки тому +576

    After all of this he still doesn’t have his own programming language

    • @soupgirl1864
      @soupgirl1864 3 роки тому +71

      yeah, he's done so much crazy shit that at this point a compiler for a custom programming language would be almost disappointing.

    • @martbarnav1787
      @martbarnav1787 3 роки тому +29

      Can't wait to run hello world on jdh

    • @fr4781
      @fr4781 3 роки тому +12

      ​@@soupgirl1864 If he did this he'd probably just make his own unique version of binary or smth

    • @MrGoatflakes
      @MrGoatflakes 3 роки тому +39

      @@fr4781 he did. It's the machine code of the computer he invented and built. And also he's got a assembly language and assembler for it.

    • @mohandev42
      @mohandev42 2 роки тому +2

      technically speaking, he did

  • @smolus0512
    @smolus0512 3 роки тому +88

    What a timing! I just finshed my own cpu 2 days ago (it was an extra project for my second semester of IoT Engineering). I made a proper design in verilog so I could get it manufactured but it turned out that no manufactures take any orders under 2.000.000$ so i just got it to run on a 5$ fpga (tang nano). Having physical hardware do something is much cooler than emulation and It's actually not much harder than logisim. To be honest it was a lot easier than I expected. I think you will be pleasantly surprised!

    • @jdh
      @jdh  3 роки тому +34

      sweet! I'm thinking about ordering an FPGA first to simulate this thing before I build it for real. I've heard of people getting a small number of PCBs manufactured and putting it together with ICs to get something in between a manufacturer-made CPU and a breadboard machine, if you can invest the time. and it's much cheaper than $2 million to get the circuits :)

    • @smolus0512
      @smolus0512 3 роки тому +13

      @@jdh That's so cool!!! Yeah fpga's are great and while doing the project I learned that they are used not only for prototyping but you can actually find them inside cars, excavators and other industrial machines. Also I cant wait to see how you approach making the "PCB computer". It seems very hard to find a sweet spot in terms of how high level circuits you want to use. It's a weird balance between full on cpu ICs and raw transistors.

    • @fanciestbanana4653
      @fanciestbanana4653 3 роки тому +1

      @@jdh You should BenEater's series about building a computer on breadboard! He even sells kits if you want to make your own.

    • @slendi9623
      @slendi9623 3 роки тому +1

      You should make a video on it

  • @m0tholith
    @m0tholith 3 роки тому +1269

    my ben eater binging is paying off and i can now understand 15% of what this dude's saying

  • @LordSoulSicarious
    @LordSoulSicarious 3 роки тому +468

    Frankly, I'm surprised that you didn't go "Wait, logisim doesn't have a dark mode? Hold on, I gotta fix this."

    • @Agnostic080
      @Agnostic080 3 роки тому +17

      I mean, this would take one minute max to do that. Just need to search for a setting to invert the colors of the display :)

    • @YOEL_44
      @YOEL_44 3 роки тому +33

      @@Agnostic080 If you're as clever as him, at the very least, hex edit the exe to invert the color on the program itself, or maybe even create a custom theme

    • @Agnostic080
      @Agnostic080 3 роки тому +19

      @@YOEL_44 Although these options sound like fun, it's so unnecessary. I just have a Keyboard shortcut to switch to inverted screen colors whenever I want. But I guess, most of the things on this channel could be considered 'unnecessary' :D

    • @leyasep5919
      @leyasep5919 3 роки тому

      Falstad's Circuitjs has a night mode ;-)

    • @illford
      @illford 3 роки тому +2

      @@Agnostic080 I thought it was very obviously a joke reply that you replied to

  • @noahruimveld6591
    @noahruimveld6591 2 роки тому +4

    In my senior year integrated circuits course in undergrad, I was given an integrated circuit architecture and was instructed to program a simulation in c-spice and do some benchmarks. Going from the block diagram to c-spice code directly was not something that I had done before, so I recreated the circuitry in Logisim. I included the Logisim macros in the report and expressed how much easier the project was for me to complete with it. It is a great program for simplification and understanding.

  • @DolapEuphe
    @DolapEuphe 3 роки тому +91

    "If you want to make a game from scratch, create an universe first."

    • @InnerEagle
      @InnerEagle 3 роки тому +2

      or it won't run!

    • @yashaswikulshreshtha1588
      @yashaswikulshreshtha1588 2 роки тому +2

      Him : "I am too cool for universe, so I decided to make multiverse"

    • @DolapEuphe
      @DolapEuphe 8 місяців тому +2

      @@InnerEagle you shall optimise after all!

  • @joshbishop
    @joshbishop 3 роки тому +452

    Me: hehe im making a platformer game yeah im a programmer
    jdh: proceeds to create a computer from scratch

    • @plebisMaximus
      @plebisMaximus 3 роки тому +48

      I spent a few months trying to grasp the basics of programming, decided I'm too stupid, then I got this in my recommended feed. UA-cam is bullying me.

    • @lars2299
      @lars2299 3 роки тому +4

      @@plebisMaximus lmao noice

    • @willer5166
      @willer5166 3 роки тому +2

      LMAO i feel u dude

    • @tokeivo
      @tokeivo 3 роки тому +14

      ​@@plebisMaximus You're absolutely not too stupid. I can be hard, and it could be that it's not something you really want to do (the result is VERY different from the method), but find the right guide and you're able to do simple programs in 2 hours from now.
      Another 10 hours and you could be making a website.
      Another 7 days and you could be making a game in unity.
      If you have a clear (and small) goal in mind, it can be surprisingly fast to learn.

    • @plebisMaximus
      @plebisMaximus 3 роки тому +6

      @@tokeivo Thanks a lot for the pep talk, mate! I'll give it another shot.

  • @louisdedomingo5778
    @louisdedomingo5778 3 роки тому +707

    next video: I build my own universe to recreate life

    • @jdh
      @jdh  3 роки тому +437

      bro pls no spoilers

    • @noam5153
      @noam5153 3 роки тому +31

      Video after that: inventing time travel and breaking previous video’s universe

    • @ghstxownery_cpv
      @ghstxownery_cpv 3 роки тому +2

      @@jdh nice se

    • @19UV
      @19UV 3 роки тому +20

      "If you wish to make an apple pie from scratch, you must first invent the universe"

    • @smashfanx7560
      @smashfanx7560 3 роки тому +1

      *this comment was hearted ny jdh*
      **vsauce bg music intencefies**

  • @skip2682
    @skip2682 3 роки тому +339

    this man is about to invent the transistor

    • @shailmurtaza9082
      @shailmurtaza9082 3 роки тому +11

      I invented frequency and way to store sound in computer but then I come to know that that's how things are working today.
      I was sad

    • @TheCustomFHD
      @TheCustomFHD 3 роки тому +6

      *reinvent and make it better xD

    • @heliusuniverse7460
      @heliusuniverse7460 3 роки тому +2

      who needs three connectors in a transistor? it should have one and output the unchanged input. the program runs in your imagination

    • @leyasep5919
      @leyasep5919 3 роки тому +2

      Transistors are waaaaayyyyy too fancy and fast.
      Look, I'm playing with electromechanical relays ;-)

    • @feetlunatic5134
      @feetlunatic5134 3 роки тому +1

      @@shailmurtaza9082 damn you invented frequency? sick

  • @RoyBrush
    @RoyBrush 3 роки тому +1

    This is super fun. When I was in university, we had to make an ALU (among other things) on a breadboard directly from basic gates (and, or, not). We also had to design those gates at the CMOS logic level as well, and of course, we studied the physics of semiconductors, but we didn't do any manufacturing at that level, haha. Most people reading this will already know, but it's cool that each individual component of the circuit in this video could be implemented using nothing but a bunch of NAND gates, and of course each NAND gate of course can be made using two PMOS and two NMOS transistors. For students interested in this type of thing, there is actually a game online called, unsurprisingly, NAND game, where you build up towards a "computer" from simple gates.
    Very cool video, I'm excited to see what comes next! :)

  • @PaperTowwl
    @PaperTowwl 2 роки тому +2

    One of my classes in college was creating a MIPS CPU with SystemVerilog and getting it working on an FPGA with keyboard input and VGA output. I ended up writing 2048 in ~500 lines of MIPS assembly. Probably my favorite class in all my education! Great video :)

  • @therealsome1
    @therealsome1 3 роки тому +239

    "If you wish to make an apple pie from scratch, you must first invent the universe. - Carl Sagan" - jdh

    • @randomguy-gb9ge
      @randomguy-gb9ge 2 роки тому +16

      "If you wish to make an apple pie from scratch, you must first invent the universe. - Carl Sagan
      - jdh"
      -therealsome1

    • @gigabit6226
      @gigabit6226 2 роки тому +1

      @@randomguy-gb9ge """If you wish to make an apple pie from scratch, you must first invent the universe." - Carl Sagan" -jdh" -therealsome1" -random guy

    • @kazat0105
      @kazat0105 Рік тому

      @@gigabit6226 """"if you wish to make an apple pie from scratch, you must first invent the universe." - Carl Sagan" -jdh" -therealsome1" - random guy" -Gigabit

    • @2wugs
      @2wugs Рік тому +2

      @@dontsmi1e """"""if you wish to make an apple pie from scratch, you must first invent the universe." - Carl Sagan" -jdh" -therealsome1" - random guy" -Gigabit" - Kazat0" -DonTSmi1e

    • @Nicolas-nf4tc
      @Nicolas-nf4tc Рік тому

      @@2wugs """""""if you wish to make an apple pie from scratch, you must first invent the universe." - Carl Sagan" -jdh" -therealsome1" - random guy" -Gigabit" - Kazat0" -DonTSmi1e" - GalaxyStudios0

  • @szymoniak75
    @szymoniak75 3 роки тому +466

    The amount of knowledge and dedication required to make this is mind-blowing

    • @PFnove
      @PFnove Рік тому

      not really, he uses his knowledge to make a *good* turing machine

    • @szymoniak75
      @szymoniak75 Рік тому +6

      ​@@PFnove huh? Designing a circuit for any architecture and writing Pong in assembly for it is already quite a challenge.

  • @electronpie
    @electronpie 3 роки тому +140

    Next: Designing my own universe to play Sonic the Hedgehog

    • @rachit7645
      @rachit7645 3 роки тому +8

      Green hill zone music intensifies

  • @profjoaofaria
    @profjoaofaria 3 роки тому +15

    Imagine my face, trying to construct my own CPU in breadboard, thinking me as a God, seeing your video. Man you are astonishing. Best video that I watched in YT in my entire life. Thank you man!

  • @Tristoo
    @Tristoo 3 роки тому +2

    That's gonna be one expensive computer.
    Also massive props, not only did you do all this, you also had to sift through hours of recording and commentate for a 20m video while editing (rather masterfully might I add) and overlapping all of it.
    I would not have had the patience. Not to deal with strings for hours in C just to make an assembler, and much less to do all that in logisim. Hell, even display stuff has gotten too cumbersome for me to not get bored with. And maybe I'm just not a video guy, or maybe I'm just disorganized with footage, but much less would I have felt like reliving the whole thing while having to also edit it and comment over it later.
    Massive respect and gratitude from me! Looking forward to the next video and seeing you bleed all over your breadboards from stripping wire and moving around ICs for hours haha.

  • @thetophatgentleman4634
    @thetophatgentleman4634 3 роки тому +136

    Next video: I recreate electricity just to play snake.

    • @PlumGurly
      @PlumGurly 3 роки тому +5

      Or better yet, recreate DNA to play with real snakes.

    • @behradsharifi7204
      @behradsharifi7204 2 роки тому

      You can't do that

  • @eepikki
    @eepikki 3 роки тому +112

    this man is just re inventing the modern computing systems again

    • @YOEL_44
      @YOEL_44 3 роки тому +4

      "modern"

    • @merseyviking
      @merseyviking 3 роки тому +5

      "just"

    • @matthewe3813
      @matthewe3813 3 роки тому +5

      "man"

    • @kaintu
      @kaintu 3 роки тому +1

      literally just for gits and shiggles too

    • @PlumGurly
      @PlumGurly 3 роки тому +1

      @@matthewe3813 Oh, forgot using the two genders was sexist and transphobic.

  • @leangames429
    @leangames429 3 роки тому +126

    Next: So I decided that I am just too good to use the standard molecules and laws of nature, so I decided to create my own universe!

    • @merlang7
      @merlang7 3 роки тому +3

      dont encourage him

    • @jerrygreenest
      @jerrygreenest 3 роки тому

      Well, it’s an emulatior of another universe, yet...

  • @jacktremblay71
    @jacktremblay71 3 роки тому +4

    Amazing. Reminds me of my EE degree ! We had to do such things in the early 90s. Going down memory lane A. Hope your next step is building your processor using a fpga or something like that ! The most incredible thing is you probably managed to design and build everything faster than it would have taken in the 80s to do it !

  • @TetriTek
    @TetriTek 3 роки тому +3

    15:43 While I do much more simple coding compared to this, this little montage really hit home. Sometimes it feels like everything starts blurring together, I really felt that.
    This is actually something I hope to do one day as well, I want to make a machine entirely made by me, that runs games/programs made by me. Just for the learning experience, and to say I did it I guess, but this gives me some hope.

  • @Jamonpeligroso
    @Jamonpeligroso 3 роки тому +64

    Gotta say, I was very shocked and very impressed when you whipped out the "I don't have any formal education in digital electronics" during the hardware design phase. I would NEVER have attempted something like this without the university classes I took on Verilog and digital systems design. Mad props! Can't wait to see the final hardware!

  • @olivander5171
    @olivander5171 3 роки тому +200

    next video:
    so here i have:
    - 4 transistors
    - some cables
    - a waterfall
    - a forest & an axe
    and now, we're going to make pacman! :)

    • @wewilldiehere
      @wewilldiehere 3 роки тому +5

      "in a cave...with a box of scraps"

    • @kwzu
      @kwzu 3 роки тому +9

      ​@@wewilldiehere
      I have:
      >matchbox (for phosphorus dopant)
      >borax (for boron dopant)
      >sand
      >fuselage of the plane I crashed in
      _and today we'll be running crysis!_

  • @vincentguttmann2231
    @vincentguttmann2231 3 роки тому +31

    I can't wait for the Ben Eater collaboration

  • @PaulasTechStuff
    @PaulasTechStuff 3 роки тому +13

    Looking forward to seeing how you do with your processor. Have nearly finished my own and it's taken a year of spare time to do it.

  • @Krumm3L
    @Krumm3L 3 роки тому +15

    See ya next time when: Mining copper with hands to make everything myself.

  • @studioOuTproductions
    @studioOuTproductions 3 роки тому +51

    If you really want to implement your CPU irl I would recommend you use a fpga, most fpga boards include an editor similar to logisim so it shouldn't take you long to replicate your design.

  • @mehmeteren2276
    @mehmeteren2276 3 роки тому +62

    one of youtube's most underrated ten channels

    • @szigo3211
      @szigo3211 3 роки тому +2

      list 'em pls

    • @thomaspeck4537
      @thomaspeck4537 3 роки тому +1

      @@szigo3211 suckerpinch needs to go on the list, if you want channels that put too much effort into useless computing tasks.

    • @szigo3211
      @szigo3211 3 роки тому

      @@thomaspeck4537 Thanks

  • @ClayS04
    @ClayS04 3 роки тому +389

    This guy: Makes a god dang computer
    Me: Googles "how to declare variable in HTML"

    • @1kvolt1978
      @1kvolt1978 3 роки тому +33

      You cannot declare variables in HTML, dude. Because HTML is not a programming language and there is no variables. :D

    • @xaesthetics1769
      @xaesthetics1769 3 роки тому +126

      @@1kvolt1978 And that's the joke.

    • @hetsmiecht1029
      @hetsmiecht1029 3 роки тому +6

      @@1kvolt1978 someone is probably going to be really mad at what you just said.
      (I meant the HTML is not a programming language)

    • @1kvolt1978
      @1kvolt1978 3 роки тому +6

      @@hetsmiecht1029 But it is really not. What's the point to be mad about the fact?

    • @aperson9375
      @aperson9375 3 роки тому +19

      @@1kvolt1978 Learns when to take words as sarcasm.😉

  • @enricmm85
    @enricmm85 3 роки тому

    Saw title if the vid. Tapped on it expecting him to fool me and just switch to buying parts and assambling a computer. Coupleminutes passed. Man start creating his own instruction set. I can't believe what I'm watching. Instantly subbed.

  • @lewisd56
    @lewisd56 2 роки тому +1

    I basically did this a good few years ago for an A-level project (yeah, it was massively out of spec for what i *should* have been able to do), designed an 8-bit CPU (a somewhat more basic architecture than yours, could only access 256 bytes of RAM and all registers were memory mapped) in logicsim, and wrote an emulator in C#. interestingly, you took the same approach as i did with running instructions, one big case switch, but having recently written a Z80 simulator, i kind or realised that was a poor design choice. In the process writing the emulator, I also wrote a simple assembler (very simple) but still offered a useful feature set. I actually designed a few circuits that made the architecture unique, while I did store an overflow and negative bit in a flags register, I also implemented a magnitude comparator, this meant i had some opcodes for jump is less than, jump if more than and jump if equal, as well as jump if magnitude greater than (equal to and less than) which made some operations use significantly less instructions. Was a fun project, especially given how much experience i didn't have at the time. Logicsim wasn't brilliant, but it worked for the design. My test programs were fairly simple, counting up and down to 100, calculate Fibonacci sequence etc...

  • @SakkakuTamashi
    @SakkakuTamashi 3 роки тому +198

    Alternative title: "how to get rid of Intel Management Engine without actually get rid of Intel Management Engine"

    • @marcobonera838
      @marcobonera838 3 роки тому +8

      Now Intel buys RISC V, which was a promising alternative
      😭

    • @marcobonera838
      @marcobonera838 3 роки тому +1

      @@nicolefischer1504 Well, thanks for the clarification but that's not much better 😂

    • @world_reborn1990
      @world_reborn1990 3 роки тому

      Amd

    • @marcs9451
      @marcs9451 2 роки тому +1

      @Marco Bonera Intel bought SciFive, a RISCV manufacturer, the ISA itself is still open for anyone to use

  • @toastom
    @toastom 3 роки тому +28

    I know those Ben Eater tutorials carried you so hard

  • @Lim95
    @Lim95 3 роки тому +52

    Next: creating Super Mario Bros. on a lamp

    • @philosophicalearthworm6819
      @philosophicalearthworm6819 3 роки тому +2

      How 'bout Metal Gear on a calculator?

    • @illford
      @illford 3 роки тому +2

      @@philosophicalearthworm6819 it's not universal enough. Surprisingly Calculators actually change a lot overseas. Most of Europe uses Casio because Texas Instruments are way to expensive

    • @InnerEagle
      @InnerEagle 3 роки тому +2

      @@philosophicalearthworm6819 that would be easier

    • @philosophicalearthworm6819
      @philosophicalearthworm6819 3 роки тому +1

      @@InnerEagle too easy for jdh? lol
      I am genuinely curious about calculators(despite not being a math person), like ways that they could be re-purposed.

  • @JohnDlugosz
    @JohnDlugosz 3 роки тому

    I took a class in college where we described a computer's operations and then used "Register transfer language" to express all the operations; these were then collected and used to generate the logic for each left-hand-side of those expressions.
    The computer happened to be a PDP-8.
    Note that there was no anachronistic 64K ROMs for decoding!
    I would be more impressed if you actually did express the design using only basic logic gates, preferably as "sum of products" or "product of sum" subexpressions wherever possible.
    (This was in the late 1980's)

  • @nepeta3286
    @nepeta3286 3 роки тому

    i feel proud of already having done that, tho jeez congrats, the amount of work must've been insane, i mean it took me days to work on my own 16 bit computer design
    also good luck for the next vidéo: "i build my own computer in real life on a bread board"

  • @edmund3504
    @edmund3504 3 роки тому +24

    I understood very little of this more than superficially but the coding montages are very cool to watch, so I had to leave a like.

  • @jonathannerat
    @jonathannerat 3 роки тому +43

    I never thought I would be seeing logisim ever again but god damn was I happy when I saw it. Might be old and discontinued (at least the original) piece of shit but it just works™

    • @jdh
      @jdh  3 роки тому +17

      I love Logisim, holds a very special place in my heart. don't know any other programs like it and don't want to.

    • @jonathannerat
      @jonathannerat 3 роки тому +3

      @@jdh Same, I can't really use anything else because I don't know about another simple software that is as complete as logisim.
      Though everytime I have to rotate components or choose the number of inputs of a component from a list I die a little bit inside

    • @Benetekt
      @Benetekt 3 роки тому +9

      There acually is a fork of logisim, call logisim-evulution that is still maintained

    • @bernardo5758
      @bernardo5758 3 роки тому +3

      There is an open source program similar to logisim that is being actively developed, you can find it at hneemann/Digital on github, don't know how it compares do logisim though

    • @relt_
      @relt_ 3 роки тому

      @@jdh mulimedia logic (yes mulimedia)

  • @atifaomer9543
    @atifaomer9543 3 роки тому +38

    I have a huge respect for all the low level C/C++ and assembly programmers as I am a python programmer and find these languages really difficult

    • @dominikmazurek753
      @dominikmazurek753 2 роки тому +8

      I am a Python programmer, but I am switching to C now. I don't really code in Python now much, because of C. Believe me, C/C++ is easy, you just need to learn the syntax. Assembly is easy as well, you just need to understand how your CPU works, what are memory addresses, etc.

    • @avidreader6534
      @avidreader6534 Рік тому

      @@dominikmazurek753 how do you learn this lower level stuff? I have java exp but want to learn computers on the lower level as that'll help me be a better dev tbh

    • @neekap5987
      @neekap5987 Рік тому +3

      @@avidreader6534 Watch ben eater

    • @avidreader6534
      @avidreader6534 Рік тому

      @@neekap5987 will do thank you. Any more advice would be greatly appreciate too lok

    • @neekap5987
      @neekap5987 Рік тому +1

      @@avidreader6534 Sure, i would advise you to try the Harvard CS50 course for learning the C language, you can skim over concepts that you already know about from python but you should focus on pointers and memory management

  • @peterbonucci9661
    @peterbonucci9661 4 місяці тому

    This is amazing. I wrote a cross compiler in a manic weekend, but the rest of this is just beyond me.
    I was tired of "you missed a semicolon" errors, so the compiler just printed the error message and said "one assumed" when it could.

  • @EinSatzMitX
    @EinSatzMitX Рік тому +2

    "So today we're going to write our ohne matrix."

  • @SimGunther
    @SimGunther 3 роки тому +5

    Goes to show perfection gets in the way of progress. Great job with this "computing independence" project!

  • @alexanderbuchler4048
    @alexanderbuchler4048 3 роки тому +9

    next next video: I mined and refined silicon into wafers to build my own SoC

  • @P0pMan20
    @P0pMan20 3 роки тому +6

    Absolute insanity, absolutely amazing, massive kudos to you fro doing this.

  • @CoderShare
    @CoderShare 23 дні тому

    This is awesome. I did this exact same project in Logisin back in my undergrad. 8 bit cpu with the built in video display and an assembler I wrote in Java.

  • @satviksharma1146
    @satviksharma1146 3 роки тому +3

    Up next uploading it on an FPGA, making your own internet and then deep diving into VLSI design to get down to CMOS transistors and clock generation. This is fun!!

  • @noodian3268
    @noodian3268 3 роки тому +11

    This low-level stuff is super impressive
    Crazy how some logic gates arranged in the right way can make literally anything happen

  • @nejatulusal1475
    @nejatulusal1475 3 роки тому +54

    Real Question: Where have you learned these stuff

    • @leyasep5919
      @leyasep5919 3 роки тому +5

      on the internets !

    • @someonerandom9939
      @someonerandom9939 3 роки тому +10

      @@casimirwallwitz8646 the osdev wiki wont be too much help if you're making your own cpu.
      His tetris os honestly isn't that hard to do, he basically just got a basic booting os and then started on graphics right away after input is working.
      Were you creating an os meant to be an os you would also need to worry about paging, user mode, system calls, executable formats etc

    • @pythonista_333
      @pythonista_333 3 роки тому

      he is rich

    • @Yurikon3
      @Yurikon3 3 роки тому +1

      @@leyasep5919 People using internet for the purposes it was likely originally intended... It is strangely hypnotizing.

    • @nathantaylor2026
      @nathantaylor2026 3 роки тому

      @@pythonista_333 And that has to do what, exactly?

  • @Zonix_Official
    @Zonix_Official 3 роки тому +5

    Possible Next Video: I created my own TV that can only let you play tic-tac-toe

  • @T.Ty7
    @T.Ty7 3 роки тому

    Ahhh man logisim brings me back. The logic projects I got to do in uni were my absolute favorite. Writing quick sort in MIPS is a close second. Love everything about this project

  • @Luxof_
    @Luxof_ 4 місяці тому +2

    JavaScript being in jdh's book of uncool things is so unfathomably based

  • @naidoeshacks
    @naidoeshacks 3 роки тому +7

    Using particles that some other being created seems too cheaty, you've got to create your own universe next.

  • @szilagyilev
    @szilagyilev 3 роки тому +38

    spoiler if you are like me: don't worry, he renames the second E instruction to F in the doc at 5:27

  • @ThunderK01
    @ThunderK01 3 роки тому +5

    I love your videos!
    They inspired me to try making simple 2d games on C++ last weekend

  • @inkyfingers317
    @inkyfingers317 3 роки тому +1

    “If you wish to make an apple pie from scratch, you must first invent the universe.”
    ― Carl Sagan

  • @ЭнрикеЧурин
    @ЭнрикеЧурин 3 роки тому +1

    I like how you’ve come from web to os to CPU ARCHITECTURE!! love your videos btw

  • @Llamu
    @Llamu 3 роки тому +54

    *”mumbo jumbo says the redstone is simple when it sounds really complicated!”*
    People who understand this video: *amatuers*

    • @aviko9560
      @aviko9560 3 роки тому +2

      Mumbos redstone skills are overrated as fuck :D Just saying, I like his vids. I always cringe when somebody says he's the best at redstone. But he's not even saying it, people are.
      I grew up watching redstone computers and stuff, in terms of this it kinda sounds trivial.

    • @inconnn
      @inconnn 3 роки тому +4

      @@aviko9560 redstone computers are different in my opinion, what mumbo jumbo does is actually practical and useful, but whos actually going to use a redstone computer? its impressive but practically, mumbo jumbos redstone is more useful.

    • @fractal5764
      @fractal5764 3 роки тому +1

      @@aviko9560 Mumbo actually once said that he isn’t the best at redstone

    • @brandontechnerd
      @brandontechnerd 3 роки тому +4

      Legends who watched all of crash course computer science and binged all of ben eater's videos: noobs

    • @soupgirl1864
      @soupgirl1864 3 роки тому +1

      @@aviko9560 yeah, he literally says that what he's doing is simple.

  • @theemeraldfalcon9184
    @theemeraldfalcon9184 3 роки тому +67

    "I designed my own custom computer just to play PONG"
    They did this in the 70s. Quite a lot, actually.
    *So make pong with literal atoms.*

  • @mysporelo
    @mysporelo 3 роки тому +3

    YEESSS YEEESSS YESSS Man You are a beast! So much time spend into this it's almost incredible! Make that circuit and the screen too for fucks sake! Amazing work ! I reeeeallly would love to know where did you learn or search all the info you need to make such a thing like this tho, because if you are not an electric/electronic engineer you must have worked your brain AF to make this happen. Congrats once more, and will be expecting anxious the next episode!!

  • @ryanxsadler
    @ryanxsadler 3 місяці тому

    EE here. Props for doing it with logic gates. Takes a much bigger brain to do that without tools like Verilog. Verilog is easy to learn if you know C already. And the best part is you can then drop it right into an FPGA. I hope you aren't planning to wire up raw gates using transistors. You will save many months of your life if you buy a cheap FPGA, and learn VHDL or Verilog. Curious which way you go with it.

  • @connorbanks
    @connorbanks 3 роки тому +5

    This is really cool, this popped up in my recommended and I already love it. But you should make your own OS to run on the CPU, which can run a basic word processor that you made.

    • @ArneChristianRosenfeldt
      @ArneChristianRosenfeldt Рік тому

      What is an OS? Why do consoles tend to only have copy protection code in ROM, but no OS? Home computers at least had BASIC . Unix started as a file system.. So on a console with only ROM, or only a CD-ROM you don’t need an OS?

  • @GavinPetty
    @GavinPetty 3 роки тому +7

    Damn, never say ¨I use arch¨ to this guy, he'll completely humiliate you

    • @jm036
      @jm036 3 роки тому

      Good thing I'm putting Fedora back on my laptop as I'm typing this then.

  • @EverydayCode
    @EverydayCode 3 роки тому +5

    A day with a jdh upload is a good day

  • @TheBxzr
    @TheBxzr 3 роки тому +5

    Next video:
    “I’ve decided that I’m too good for computers”

  • @ZenYeti98
    @ZenYeti98 3 роки тому +1

    Just wanted to say, you're extremely underrated, and I can't wait for your future success. You're an inspiration, and a perfect mix of learning and insanity, and its addicting!

  • @hypo-critical
    @hypo-critical Рік тому

    I’ve made a couple of redstone computers in minecraft, most are just paraplegic calculators, and this is a whole other level

  • @smellthel
    @smellthel 3 роки тому +4

    He set the bar really high with his first video but he never disappoints

  • @syllight9053
    @syllight9053 3 роки тому +7

    So I've been thinking and came to the conclusion that the world isn't my tier, so I remade the *whole word atom by atom*

  • @oldaccount289
    @oldaccount289 3 роки тому +5

    Next video: I decided to make my own universe to house my custom computer…

  • @MrCommandor1998
    @MrCommandor1998 3 роки тому

    I love exponential complexity evolution on this channel. The next step should be custom math & logic for space invaders.

  • @slxxp
    @slxxp 2 роки тому +1

    Taking custom pc to a whole other level

  • @divine203
    @divine203 3 роки тому +4

    Man I'm addicted to this channel...😳😳

  • @kingundead4310
    @kingundead4310 3 роки тому +5

    Next video: Making the first 128 bit computer but just to play PAC MAN

    • @ArneChristianRosenfeldt
      @ArneChristianRosenfeldt Рік тому

      You mean Itanium? 128 bit registers appeared in N64 and are know as SSE2 today.

  • @Pwtz
    @Pwtz 3 роки тому +8

    I very rarely comment so just wanted to say that you’re my hero this is amazing and quality work

  • @thedestroyer211
    @thedestroyer211 3 роки тому +1

    This is the guy that answers questions on StackOverflow

  • @wellsilver3972
    @wellsilver3972 3 роки тому +2

    This is the closest thing I can find on the entire internet to a tutorial on making a computer from scratch

  • @shadeebot2698
    @shadeebot2698 3 роки тому +4

    LOVE THIS. Makes me wanna dive in and do the same myself! 😅also can't wait to see the next part in the series!

  • @Ma1iciousGamer
    @Ma1iciousGamer 3 роки тому +8

    VHDL and Verilog aren't witchcraft! I find it quite impressive how well you were able to design this at a gate level. Because, if you could do this at a gate level, writing this CPU in VHDL or Verilog could have easily taken you about an hour or 2 max.

    • @mast3rbug
      @mast3rbug Рік тому

      I write a different CPU each morning before the breakfest in Verilog

    • @theforeskinsnatcher373
      @theforeskinsnatcher373 Рік тому

      "an hour or 2 max" plus a week of writing testbenches and debugging lol

    • @ArneChristianRosenfeldt
      @ArneChristianRosenfeldt Рік тому

      @@theforeskinsnatcher373I read that the branch delay slots needs a lot of testing. But then it is only one bit in addition to the return address. It should only need twice as many tests and only need one branch in microcode.

  • @noiwont4081
    @noiwont4081 3 роки тому +5

    next video: I realised Assembly is too high level, so I coded Breakout in binary

  • @jeiang
    @jeiang 3 роки тому

    Ben eater: starts from the bottom and works upwards. jdh: starts from the top and works downwards

  • @jankinawe4416
    @jankinawe4416 Рік тому

    Bro wrote a custom architecture, an EMULATOR, and a fricking ASSEMBLER? holy cow this guy's unstoppable. I don't care if you say you dont have "formal education" in this stuff, you're a whole hecka lot better than me.

  • @GRBtutorials
    @GRBtutorials 3 роки тому +4

    4:27 16 instructions? That's a lot... you can do the same with just one!

  • @Lim95
    @Lim95 3 роки тому +7

    The legend has returned

  • @olivander5171
    @olivander5171 3 роки тому +6

    10:28 is just beautiful for my eyes & ears ngl

  • @BME-dj1ox
    @BME-dj1ox 3 роки тому +1

    _After a couple more videos_
    Jdh : So I theorized 'jdh physics' so that entire universe is just Tetris.

  • @MrGoatflakes
    @MrGoatflakes 3 роки тому +1

    The point of an LL(1) language is so you can easily build a recursive descent parser by hand for it. Perhaps you mean LALR(1) languages such as Yacc and Bison can automatically generate parsers for?
    As for recursive descent parsers, you just need one function per nonterminal in the grammar of your language and in those one clause for each production that can replace that non terminal.
    And at the start of each function you can pick which clause to use based on the next input token. That's what LL(1) stands for. Left to right scanning of the parser across the input tokens, doing Leftmost expansions. With one token of lookahead.
    Each clause is straightforward as well. For each symbol in the corresponding production, we treat them, in the order listed in the production, in the following way:
    A nonterminal means call the function for that nonterminal.
    A terminal means consume a token from the input stream. If the token read isn't the same type that the production, there's an error and the program doesn't parse.
    If the token is of the required type, you consume it somehow. Minimally remove it from the token stream. If the goal is to just check programs are correct, you can just ignore the token after you remove it from the token stream. Your parser will simply do nothing except empty the input of tokens for a correct program but produce an error if you input an incorrect program.
    If you want to do something more interesting like generate code you can have your tokenizer add more information to your token, and that information will be in its proper context, and not only that you can leave breadcrumbs for subsequent steps.
    For example you could tag variable name token types with the actual variable name. Or some computer readable equivalent. As you go along you can build up a symbol table containing such things as the type for type checking and the memory allocated to the variable.
    You could implement block scoping by having a stack of or chain of symbol tables. And if a variable name isn't found in the deepest nested block scoping you look for it in the next highest scope and symbol table.
    You can also do something with it like generate code for an assignment. Which would simply be a store into the memory location of whatever the right hand side evaluates to. Which would be calculated recursively and available when the function for the last nonterminal returns.
    That said an assembler doesn't likely need a parser, just a lexer or regular expression matching/FSM because there's likely no nested language constructs.
    And two passes, so you can find/computer the address of labels when you see the definition of a label and then come back and replace any forward references.

  • @CrownCatX
    @CrownCatX 3 роки тому +9

    Next: "I travelled to another dimension and caused the Big Bang to make my own universe"

  • @lucasmm519
    @lucasmm519 3 роки тому +4

    I feel like such a terrible CSC student right now

    • @photonicpizza1466
      @photonicpizza1466 3 роки тому

      This is more of a hardware engineering thing, often you learn about this kind of thing when working with FPGAs and such. Computer science has lots of far higher level concepts and ideas. You can come across it in pure computer science of course, but it's not too common.

    • @lucasmm519
      @lucasmm519 3 роки тому

      @@photonicpizza1466 Yeah this is just stuff I'd love to learn. His making Minecraft in C video makes me want to try something like that as well.

  • @HisMajesty99
    @HisMajesty99 3 роки тому +5

    Dang, Intel better watch out, there’s a new player in the game, and he’s about to bankrupt them

  • @jacobl9200
    @jacobl9200 3 роки тому +1

    The fact that this video does not have over a million views already is criminal. Great video!

  • @laurencevanhelsuwe3052
    @laurencevanhelsuwe3052 3 роки тому +1

    The CPU design animation is a thing of beauty.. very impressive. I could write something about the psychology of people who aim for total control and independence, but this text field won't allow the necessary number of characters. Looking forward to seeing the finished machine video. Hat off for your hobby project focus. (Btw, I created a Pong physical game using Tinkerforge components and a Java program to drive/read the three OLED displays, joysticks and buzzer in 2-3 days.. yeah, I know, that's peanuts compared to your project ;-)