To try everything Brilliant has to offer-free-for a full 30 days, visit brilliant.org/Inkbox. The first 200 of you will get 20% off Brilliant’s annual premium subscription.
I love the restraint of not using VBA. I'm always more impressed when people make things in Excel and PowerPoint and don't just transform everything using Macros.
I'd have been tempted to add some VBA right at the end to generate the clock, but I can see that would open the door to more stuff. So yes impressive restraint indeed and a great video!
It might also make it more cross-platform compatible. Open Office sometimes has issues with Macro import, but cell formulas should be easier to import.
That CPU design is awesome - for sure. But can we talk about the documentation, i. e. this video? So fabulously made and with the huge fonts and graphics an absolute joy to watch. Thanks for taking the time to create such a gem!
This is so cliche and annoying. However, its better than the comments that are like “oH My gOodNeSS hE iS lIkE a gEnIus hE sHoUlD gEt a nObEL PEacE pRize”
It's the year 2100, super computing became the consumer norm. Humans managed to emulate the performance of a 4090ti on Space-Excel and managed to run old games such as Starfield and GTA 6 with native Windows 11 support in a Windows 48 machine
I took a microcomputer architecture class in college 30 years ago. I clearly have forgotten a lot about that class. Outstanding execution here. Thanks for sharing!
It’s pretty much just some simple code for doing math but in a really really unreadable way. Pretty much it’s like “okay is the clock tickin? Yeah? Ok then so like do I add, subtract, multiply, divide, etc…? Ok so you want me to add? Ok I’ll add these two numbers together.” In other words, “b30 is the clock tick and this cell is equal to a value dependent on the clocks tick as well as d30 which controls which operand is being done.”
This is incredible. I’ve been teaching “computer repair” for 25 years. Over the years there have been a few students that actually asked “but how does the cpu move data? How does it process the instructions?” I always gave a simplified explanation, as it doe snot fall into the scope of building and troubleshooting desktop PCs. Now I can show them this video to get an idea on the logic. :-) Thankfully there are also videos out there on “building your own CPU.” Thank you for sharing this! Incredible work!
I work in IT and I've seen some cool things done in Excel. But this is unbelievable. You have a remarkable skill set. Wish you the best of luck in succeeding and achieving your dreams.
This is maybe the greatest video i have seen in the last few years. This video and your project would have helped me a lot to explain to my students of computer architecture. I will download all the files and analize them carefully.
As a computer science graduate specializing in databases, I appreciate the brilliance here. This project would be a great introduction to CPU design in a comp sci course. Amazing.
@@miguelelgueta5830Pipelining is an important part of CPU design and rightfully made up the last third of my university's basic course on the matter. The alu was also cut short in the videos explanation and is way easier to implement in Excel. Overall it's a nice video but by no means a course.
The one bit of VBA that I think might be justified is a completely optional script that can "click" the clock cycle button for you, seeing how fast you can get it to run.
100%. I think you can evaluate if a worksheet is calculating, so just monitoring that would be enough. Then you could have it clock the system. I think if someone is writing a compiler in Python, then using VBA for this sort of operation is an acceptable application. I think it would also be justifiable to apply the cell coloring for the screen pixels in the same way, allowing 16.7 M true color output... This is just because Excel has a restriction for modifying the color of cells programmatically, but it unlocks a lot of potential that conditional formatting can't. For the sane reason, VBA could be used for loading the ROM. This wouldn't be all that different than using an EPROM burner, which still doesn't diminish or detract from the Excel CPU.
I'll have to play with it next time I'm at my computer but I think you might be able to get some sort of iterative calculation going (there is a setting in excel to allow it). Might just end up in an infinite loop that will crash Excel but it would be so neat to have a fast clock powered by formulas to keep the whole thing as pure as possible. Not even sure my version of Excel supports them but I've heard there is a lambda formula that can call other formulas so there may be a solution to be had there as well. I guess you could also implement a function (not a sub) in VBA that toggles a cell in a loop and then use that function in the formula bar (excel treats VBA functions as custom formulas since they both take some parameter(s) and return a result). Still cheating to me (especially since you'd likely wouldn't be using the return value but rather the loop and a direct reference to a cell) but I guess slightly less than just banging out VBA and running it as a macro.
Pretty sure the limitation is not how fast you push the button but how long it takes excel to process the formulas. That’s what he demonstrated at the end where each press of the button takes a couple of seconds to process the clock cycle, so any automation there just means you can leave the program running while you run some errands and it finishes in an hour
@@jordixboyI used to think assembly was complicated, but really it's just a simple functional language, in a way. You can get really creative with your solutions for problems instead of doing bulk things, like maybe leaving Y register untouched in this function specifically so the calling function can forgo saving it. Most assembly languages are just the same basic principles but with some different commands or limitations, some need more instructions to do the same function as an x86 one, for instance. That's why macro assemblers exist. Sure, it's probably not a good idea to do anything substantial in it, but at least knowing what decent assembly looks like, so your most used functions can be assessed for optimization. Could also have fun with a 6502 or z80 retro computer as a learning experience.
@@jordixboy assembly isn't hard in itself but the trickiness starts arising when you start doing everything in it, at that point you pretty much have to manage everything yourself, which is pretty fun actually
I found 6502 assembly was really fun. It was designed to be used by humans. Even with as difficult as it is, there is something really enjoyable and simplistic about it.
@@ireallydontknowifiamhonest yeah, bookkeeping in a way gets hard, or if your code block gets so big that directly indexed jumps aren't far enough.. and then you have to push and pop registers awkwardly and whatnot.
That’s cool and all, but when you realize that all of that is happening right now on the device that you’re watching it (and on servers, routers, switches etc) is MIND BLOWING. And we take it for granted.
its insane just by showing how complex it was to create the cpu- it made sense of how cpus work in the first place. essentially cylinders firing from an initial blast. awesome.
This is absolutely beautiful. I am an Electronics Engineer, and am good with excel also. I still can't imagine how much of time and patience it takes to do this... Keep up the great work brother ❤ You deserve my subscription ❤
Bro, I've been writing my own unrelated concept to convert/encode any arbitrary binary data to an image format - just a bitmap of, not necessarily pixels, but small "boxes", which I call "cells". I watched this video a while back, which is part of my inspiration for this new project of mine. But now I'm watching it again, more carefully, because I think I can marry these two concepts together. Taking our concepts to the next level - an image-based computer. arrays of Image frames can contain anything - a binary program, a video, a text file... And not even just files either. This concept can hold memory in and of itself, in the form of an image. So far, I've managed to stuff 16KB of data within a single image, using arrays of 4-bit colors in these cells. And I haven't even gotten around to a decoder yet, because the encoding part of it keeps changing :P
This is literally the best thing I've ever watched. It's really great to see others appreciate the power of excel WITHOUT using Visual Basic! The use of iterative calculation is genius, and the way you route everything together is truly splendid. Wonderful video, I'd love to see more videos elaborating on all these cool ways to utilize the functions!
@@InkboxSoftware I personally would have just wrote nothing but VBA except for rendering the screen which is benefitted by =MAKEARRAY since VBA is not nearly quick enough to handle all those cells. Though, I do understand the challenge aspect, but when I did challenge myself to use almost exclusively formulas except for the one function making sure the player didn't have to manually hold F9, it was pretty boring even after I had completed it, it just wasn't very fun for me, but to each their own!
there are so many people that have crazy titles like this and then just use shortcuts and produce a simplified result then. but you, you stayed true, used no shit, made an interesting video and even explained well what you're doing. keep on doing this, you earned my sub
Ah yes, an average task in university: Build your own CPU, RAM, Display and make your own Assembly Language for it in Excel. What a classic! All jokes aside, this actually taught me a lot about how CPUs work and I am even more grateful now for being able to run something as insane as Doom Eternal on my pretty old pc
That was one hell of a ride ! My gosh ! I am fond of PCs inner working, but wow ! The complex parts are so well-made ! And the concept is just mind-blowing ! Very good video :D
Not without rewriting Doom itself. It was designed for 32-bit systems, and in this video, a very limited instruction set is used. It would not be possible to capture and react to keyboard input from an Excel spreadsheet simply with formula either. Would be cool though.
Brilliant!! I'm sure you're going to inspire many old fellas like me. Computer architecture was by far my favorite. We designed 16bit CPU's using the proper software. Ended up taking design VLSI... Of course this was early 90's. Now I really want to load Excel and start designing the flip-flops, counters, multiplexors, etc!! Thank you!! Very inspiring!!
It's funny how as a programmer, my family assumes i know that kind of stuff. Like, no, you don't need to know the inner workings of something to use it, most people don't know how the keyboard works, yet they can use it to write
If black boxes always worked exactly as you intend them too then I'd agree... But they don't and while I wouldn't recommend just opening everyone you find for the sake of it, it really does help to have some experience cracking a few cases because you will need to at some point. I'd hazard to guess this attitude is one reason why most modern software is horribly optimized and tends to be a nasty soup of cobbled together packages. Sure that might be a simple and blissful way to do things but ignorance will never produce something of higher quality than true understanding. Not to mention it doesn't pass the "what if everybody did it" test because at some point somebody needs to be able to create and service black boxes or the consumers will have nothing to stitch together.
Im just a PLC Technician not a Programmer, but how a CPU Works was literally the first Thing i learned. The First Code we wrote Was i Assembly, if you Understand how the Basics work, you can build on that
Well, technically, the moment you showed both a NOT and an AND bitwise operation being supported by excel it was all possible, though actually getting it to work would be another matter :P Great video!
Have seen this in the news a few days ago and today your video popped up in my YT feed. I just had to click it. Amazing work, i expected some macro stuff but i never imagined this to even be possible just by formulas.
Between you and Ben Eater I think we have the best set of ‘how computers work’ resources ever made. Thank you so much for making this and giving it all away 🎉❤
Honestly insane. The fact you made a program that was essentially only made for documentation and somehow got it to be a 16-bit pc is impressive as hell. How you managed to figure this out is crazy impressive as well. Very well done.
This was hard enough with an HDL and a bunch of TAs to help us in class. Even though excel has a few tiny convenience features, this is awesome and I can't wait to see what else you have in store.
This is highly educational, it's not just writing an emulator for the functionality, it's implementing excel analogues for the actual digital logic level constructs.
@@WillKew Hah. I just meant that he could have cut out a portion of the work not actually related to the project by just going with with an appropriate instruction set in the first place. I do sometimes read my old comments and wonder why I worded them a particular way though.
This was the coolest thing I watched in a while, taking a computer architecture class right now and seeing some of the stuff we talk about made in excel is sick
For pure "Microsoft-verse", it should be DOS and Excel. But just to annoy Microsoft, the operating system should be IBM OS/2 and the spreadsheet Lotus 123.
There is an unfinished project of mine where I set about building a complex calculator system for a game mod with the goal of public release. The basis of it was to take simple arbitrary inputs (within a limited range) and the calculator would perform a series of operations and iterations to deliver a comprehensive breakdown of the results as the input relates to it's utilization in the game mod. Anytime I would talk to anyone about it they would act like Im performing alchemy and ask why I dont just use scripting or an actual programming language on an actual compiler or whatever... All this is to say I appreciate what youve done here. 10:30 especially here. the power of iteration!
I think it might have been valuable to use some of the LOOKUP functions. You could have had a microcode sheet where the instructions are defined which would have probably made things easier to fix. The cell formula you then paste to all the cells would just have this LOOKUP indirection.
Seems that performance could be improved using INDEX instead of INDIRECT paired with ADDRESS. And I agree with other comments about naming ranges or even naming constant values. Did not download to check but with modern Excel formulas it is likely that more improvements could be introduced (LETs and LAMBDAs maybe?) In any case: super cool project!!!!!
First of all, insane stuff! I've implemented a few CPUs, but definitely not in Excel lol - With the assembler being fairly small, wouldn't it be feasible to implement that in Excel functions (or at least macros) too? - Wouldn't setting the max iteration count (at 2:31) to 100+ drastically speed up the CPU, or would that break it? - Also, if the limitation on colors on the display is that you have to define a rule for each pixel, why not use RGB subpixels?
Man, you're awesome! Excel is great by itself, but this project is on another level. Not only it's beautiful, but it's also a valuable tool to learn the internal processes of a CPU. Instant subscribe!
From the day one of using Excel i knew that this application is much much more powerful than i think…. this just proves it! Crazy work you did here man!
It's probably a little easier to write it in the Spreadsheet than Java, even though Java is better suited to it, practically Java is easier, but the very fact that Excel is harder makes it more interesting and so easier to write in, for Java you're just using the most basic level things to do it so it doesn't feel like writing a program since the end goal is something you already had to begin with. This is why it doesn't feel all too hard to write the potentially thousands of BrainF commands just for a simple task but that same task may feel dull to do in a higher level language.
I could write a virtual CPU in 5 lines of Python or Java or 5 excel cells. It might not look nice, but emulating using a very powerful high level language is extremely simple. The real interesting thing here was how he made it readable and interactive and extremely well presented. An expert at the end of the day can do this in far less.
@@gregorymorse8423 I have implemented CPUs in Java before, I just never got far enough in the project to write an assembler, and I never really accomplished what I wanted to. I do have plans to make a complete virtual console soon though.
@CreatorJo writing an assembler is pretty easy but it does involve tokenizing, lexing, and parsing. It is certainly more work than emulating a simple instruction set. But then it's just simple translation. Far simpler than the work a compiler needs to go through as you don't have variables.
@@gregorymorse8423 Speaking of assemblers, when an assembler has compiled assembly into machine code, how does it then tell the CPU to run that machine code on Windows, I'd imagine on most electronics it's not terribly difficult, but for Windows it really seems to hate people using machine code. They also got rid of the DEBUG command in command prompt, how rude!
I have a suggestion for the 8-bit Minecraft. Instead of seeing the outline of the player when under blocks, why not just not show the layers above. This way, you can see where you can go, instead of the vague location
To try everything Brilliant has to offer-free-for a full 30 days, visit brilliant.org/Inkbox. The first 200 of you will get 20% off Brilliant’s annual premium subscription.
Okeydokey
Next do “installing Windows 98 in Excel”
The are some channels that have been running this offer for years. How do you know if you're going to be one of the lucky "first 200?"
NO! SHOVE YOUR SPONSOR RIGHT WHERE IT FITS!!
Automatic thumbs down for putting the sponsor in the middle.
I love the restraint of not using VBA. I'm always more impressed when people make things in Excel and PowerPoint and don't just transform everything using Macros.
Like that one guy that made PowerPoint Turing complete...
Excel on non-Windoze platforms is crippled, but this would work.
Yea I did a raytracer only using Excel formulae. Much more fun having to work out solutions that don’t use VBA.
I'd have been tempted to add some VBA right at the end to generate the clock, but I can see that would open the door to more stuff. So yes impressive restraint indeed and a great video!
It might also make it more cross-platform compatible. Open Office sometimes has issues with Macro import, but cell formulas should be easier to import.
"The best kind of possible - theoretically possible" - I'm stealing that
i love how that looks as if the source of the quote is "I'm stealing that"
@@NotHumanPerson””The best kind of possible - theoretically possible”
- I’m Stealing That”
- Michael Scott
yeah this is one of the best jokes i've ever heard
Slight adjustment to the Futurama meme innit?
🤓
this man basically made a VM in excel. This is a level of genius i cant even understand
Turing completeness is so beautiful
Finally a Zoomer worth his salt
@@Breakfast_of_Champions ok boomer
can it run doom
Technically it's an emulator
Dude I lost it when you said "I designed my own assembly language." Because of course you did lol. You're a genius.
That CPU design is awesome - for sure. But can we talk about the documentation, i. e. this video? So fabulously made and with the huge fonts and graphics an absolute joy to watch. Thanks for taking the time to create such a gem!
Ikr
Next episode: Excel running on Excel
*at 0.00000000000148 FPS
Minecraft on excel. Doom on excel.. mario! Emulation! The possibilities!
@@absolutetruth9975Yes if you give it enough time and memory 😏
This is so cliche and annoying. However, its better than the comments that are like “oH My gOodNeSS hE iS lIkE a gEnIus hE sHoUlD gEt a nObEL PEacE pRize”
If one were able to implement an 8086 and simple VGA, it’d be the best kind of possible.
Interviewer: How good are you with Excel?
Inkbox:
Dude's resume is just a link to this video
@@SamethokThe resume is also made in excel.
@@prateekpanwar646 The entire video is made in Excel.
@@AestheticalMinimalism we are made in Excel
@@slimeslayer5195 Planet Earth is made in Excel.
It's the year 2100, super computing became the consumer norm. Humans managed to emulate the performance of a 4090ti on Space-Excel and managed to run old games such as Starfield and GTA 6 with native Windows 11 support in a Windows 48 machine
Lol
jajajaj
They are waiting for Gta 7
@@zrayx7214 and Portal 3🤣
@@galacticviper4453 and half life 3 😭😭
I took a microcomputer architecture class in college 30 years ago. I clearly have forgotten a lot about that class. Outstanding execution here. Thanks for sharing!
4:21 "Writing high level assembly code" is by far the best line
7:09 “most of the operations are simple” that is the most complex excel formula I’ve seen lol
It’s pretty much just some simple code for doing math but in a really really unreadable way. Pretty much it’s like “okay is the clock tickin? Yeah? Ok then so like do I add, subtract, multiply, divide, etc…? Ok so you want me to add? Ok I’ll add these two numbers together.” In other words, “b30 is the clock tick and this cell is equal to a value dependent on the clocks tick as well as d30 which controls which operand is being done.”
@@feixin_duke The Excel equipment of writing an entire Java program in one line
This is incredible. I’ve been teaching “computer repair” for 25 years. Over the years there have been a few students that actually asked “but how does the cpu move data? How does it process the instructions?” I always gave a simplified explanation, as it doe snot fall into the scope of building and troubleshooting desktop PCs. Now I can show them this video to get an idea on the logic. :-) Thankfully there are also videos out there on “building your own CPU.” Thank you for sharing this! Incredible work!
you ruined many student's life
There is a great book that really explain the principles and logic of a cpu. Its called "But how do it know"
I strongly recommend it
Code by Charles Petzold is also rly good
Flip flops
@@PeacfullReal
now we wait for the Doom ports, and the Bad Apple animations
www
This
Hahahaha
I was here ☕
And the rickroll music
I work in IT and I've seen some cool things done in Excel. But this is unbelievable. You have a remarkable skill set. Wish you the best of luck in succeeding and achieving your dreams.
This is maybe the greatest video i have seen in the last few years. This video and your project would have helped me a lot to explain to my students of computer architecture. I will download all the files and analize them carefully.
As a computer science graduate specializing in databases, I appreciate the brilliance here. This project would be a great introduction to CPU design in a comp sci course. Amazing.
You arr so right, that was my thinking
I learnt more in this than my actual computer science course
this dude literally made a full course in cpu design in a 15 minutes video
@@miguelelgueta5830Pipelining is an important part of CPU design and rightfully made up the last third of my university's basic course on the matter. The alu was also cut short in the videos explanation and is way easier to implement in Excel.
Overall it's a nice video but by no means a course.
Excuse me, this would be the INTRODUCTION??
damn
If this doesn’t go viral, I’m actually gonna be mad
That requires running doom on it
@@killpidone my god, a genius!
Same.
@@Механизм-ж9я ik
fr
The one bit of VBA that I think might be justified is a completely optional script that can "click" the clock cycle button for you, seeing how fast you can get it to run.
100%. I think you can evaluate if a worksheet is calculating, so just monitoring that would be enough. Then you could have it clock the system. I think if someone is writing a compiler in Python, then using VBA for this sort of operation is an acceptable application. I think it would also be justifiable to apply the cell coloring for the screen pixels in the same way, allowing 16.7 M true color output... This is just because Excel has a restriction for modifying the color of cells programmatically, but it unlocks a lot of potential that conditional formatting can't. For the sane reason, VBA could be used for loading the ROM. This wouldn't be all that different than using an EPROM burner, which still doesn't diminish or detract from the Excel CPU.
Yeah, that would be a whole lot better than doing ALL of it manually.
I'll have to play with it next time I'm at my computer but I think you might be able to get some sort of iterative calculation going (there is a setting in excel to allow it). Might just end up in an infinite loop that will crash Excel but it would be so neat to have a fast clock powered by formulas to keep the whole thing as pure as possible. Not even sure my version of Excel supports them but I've heard there is a lambda formula that can call other formulas so there may be a solution to be had there as well.
I guess you could also implement a function (not a sub) in VBA that toggles a cell in a loop and then use that function in the formula bar (excel treats VBA functions as custom formulas since they both take some parameter(s) and return a result). Still cheating to me (especially since you'd likely wouldn't be using the return value but rather the loop and a direct reference to a cell) but I guess slightly less than just banging out VBA and running it as a macro.
Pretty sure the limitation is not how fast you push the button but how long it takes excel to process the formulas. That’s what he demonstrated at the end where each press of the button takes a couple of seconds to process the clock cycle, so any automation there just means you can leave the program running while you run some errands and it finishes in an hour
@@Eji1700 He said it runs at a few hertz, which is about how fast you can click. But, yeah, it's possible it can't run any faster.
This would be crazy to put on a resume.
After all of the insane job, I still felt so anxious about the "MANAGEMNET" thing at 14:34 Lol
Just what I like to see on my CPU!
if my college teachers used this shit to teach computers architecture I would have been hooked instantly back than
great job
'High level assembly code'
**Bursts into tears as someone that has never gone lower than C++**
assembly is not that hard, its pretty simple language, a lot simpler than c++
@@jordixboyI used to think assembly was complicated, but really it's just a simple functional language, in a way. You can get really creative with your solutions for problems instead of doing bulk things, like maybe leaving Y register untouched in this function specifically so the calling function can forgo saving it.
Most assembly languages are just the same basic principles but with some different commands or limitations, some need more instructions to do the same function as an x86 one, for instance. That's why macro assemblers exist.
Sure, it's probably not a good idea to do anything substantial in it, but at least knowing what decent assembly looks like, so your most used functions can be assessed for optimization. Could also have fun with a 6502 or z80 retro computer as a learning experience.
@@jordixboy assembly isn't hard in itself but the trickiness starts arising when you start doing everything in it, at that point you pretty much have to manage everything yourself, which is pretty fun actually
I found 6502 assembly was really fun. It was designed to be used by humans. Even with as difficult as it is, there is something really enjoyable and simplistic about it.
@@ireallydontknowifiamhonest yeah, bookkeeping in a way gets hard, or if your code block gets so big that directly indexed jumps aren't far enough.. and then you have to push and pop registers awkwardly and whatnot.
That’s cool and all, but when you realize that all of that is happening right now on the device that you’re watching it (and on servers, routers, switches etc) is MIND BLOWING.
And we take it for granted.
At billions of times a second
its insane just by showing how complex it was to create the cpu- it made sense of how cpus work in the first place. essentially cylinders firing from an initial blast. awesome.
Been Sys Engineer for 8 years and it was a struggle to follow and understand everything, very complex but cool. Awesome video!
Emulating physical circuitry with excel is really cool. Great video!
Excel is already powerful so this wasv rudimentary at best...
Should be taught on cs
The moment your CPU notices you have been cheating on it with Excel
it is more like a poly relationship really. Your cpu is totally in on it
@@gooseloose682 reddit cuck cpu
Emulators and VMs be like:
@@gooseloose682
Imagine getting your gf pregnant and dating the fetus
@@poka26ev2sooo, just like what dad did with me?
This is absolutely beautiful. I am an Electronics Engineer, and am good with excel also.
I still can't imagine how much of time and patience it takes to do this...
Keep up the great work brother ❤
You deserve my subscription ❤
This is one of the craziest projects I've ever seen, and explained so well at that. Great video! Earned my sub.
Bro, I've been writing my own unrelated concept to convert/encode any arbitrary binary data to an image format - just a bitmap of, not necessarily pixels, but small "boxes", which I call "cells". I watched this video a while back, which is part of my inspiration for this new project of mine. But now I'm watching it again, more carefully, because I think I can marry these two concepts together. Taking our concepts to the next level - an image-based computer. arrays of Image frames can contain anything - a binary program, a video, a text file... And not even just files either. This concept can hold memory in and of itself, in the form of an image.
So far, I've managed to stuff 16KB of data within a single image, using arrays of 4-bit colors in these cells. And I haven't even gotten around to a decoder yet, because the encoding part of it keeps changing :P
What are you going to do with the data in an image?
This is literally the best thing I've ever watched. It's really great to see others appreciate the power of excel WITHOUT using Visual Basic! The use of iterative calculation is genius, and the way you route everything together is truly splendid. Wonderful video, I'd love to see more videos elaborating on all these cool ways to utilize the functions!
I was so disappointed seeing other Excel videos just write Basic programs, I had to undo an injustice.
@@InkboxSoftware EXACTLY! 😄
Wow
@@InkboxSoftware I personally would have just wrote nothing but VBA except for rendering the screen which is benefitted by =MAKEARRAY since VBA is not nearly quick enough to handle all those cells. Though, I do understand the challenge aspect, but when I did challenge myself to use almost exclusively formulas except for the one function making sure the player didn't have to manually hold F9, it was pretty boring even after I had completed it, it just wasn't very fun for me, but to each their own!
there are so many people that have crazy titles like this and then just use shortcuts and produce a simplified result then. but you, you stayed true, used no shit, made an interesting video and even explained well what you're doing. keep on doing this, you earned my sub
Ah yes, an average task in university: Build your own CPU, RAM, Display and make your own Assembly Language for it in Excel. What a classic!
All jokes aside, this actually taught me a lot about how CPUs work and I am even more grateful now for being able to run something as insane as Doom Eternal on my pretty old pc
That was one hell of a ride !
My gosh ! I am fond of PCs inner working, but wow ! The complex parts are so well-made ! And the concept is just mind-blowing !
Very good video :D
This is so cool we started to implement our own ISA by scratch with RISC-V in my computer org class. Thanks for a great video!
But can it run Doom?
Yes, google “excel doom game”
Port it from graphics calculator?
Or Wolfenstein 3Diagram 📈 ?
@@axelkidd9850no, doom
Yes
Dude. That was pretty cool.
But the most important question:
CAN. IT. RUN. DOOM?
Theres a guy on youtube who sees if every device can run doom. Somebody needs to tell him about this.
Sad ... Kinda cant in this condition, they need to finish the CMD, but as he say ... In theory, yes we can ... Just couple of more steps
Not without rewriting Doom itself. It was designed for 32-bit systems, and in this video, a very limited instruction set is used. It would not be possible to capture and react to keyboard input from an Excel spreadsheet simply with formula either. Would be cool though.
@@jamieevans5979but can it ***fake*** running DOOM?
@@Akira-Aerins Sure. Just use a screen recorder and embed the video on the spreadsheet 😆
That seems like a very good project if you're learning about computer architectures.
You didn't write a compiler, you wrote an assembler :)
I had a degree in electronics like 14 years ago and it's amazing to see this. you put a lot of work. nice job
Absolute nuts, genius. Didn't understand 99% of it! But quality.
I'm going to rewrite Excel to run on your new CPU!
Brilliant!!
I'm sure you're going to inspire many old fellas like me. Computer architecture was by far my favorite. We designed 16bit CPU's using the proper software. Ended up taking design VLSI... Of course this was early 90's.
Now I really want to load Excel and start designing the flip-flops, counters, multiplexors, etc!!
Thank you!! Very inspiring!!
Have you done some projects on Excel? Is it possible to show them?
As an Excel nerd this is insane and I want to see more
One word: OUTSTANDING!! Cant wait to see how you improve on it. Well done, sir!
"But can it run doom?"
I would also like to see this
Doom has already been run on excel and on lower capacity programs. I'm sure it'd 100% run doom
but has it been run on a cpu written in excell?
It's funny how as a programmer, my family assumes i know that kind of stuff.
Like, no, you don't need to know the inner workings of something to use it, most people don't know how the keyboard works, yet they can use it to write
would be better for you if you did though
Front-end dev spotted
@@mmmmmmmmmmmmmmmmmmmmmmmmmmmm56 I make games and other programs, i don't make computers 🙃
If black boxes always worked exactly as you intend them too then I'd agree... But they don't and while I wouldn't recommend just opening everyone you find for the sake of it, it really does help to have some experience cracking a few cases because you will need to at some point.
I'd hazard to guess this attitude is one reason why most modern software is horribly optimized and tends to be a nasty soup of cobbled together packages. Sure that might be a simple and blissful way to do things but ignorance will never produce something of higher quality than true understanding. Not to mention it doesn't pass the "what if everybody did it" test because at some point somebody needs to be able to create and service black boxes or the consumers will have nothing to stitch together.
Im just a PLC Technician not a Programmer, but how a CPU Works was literally the first Thing i learned.
The First Code we wrote Was i Assembly, if you Understand how the Basics work, you can build on that
Thank you for providing actual human-written captions. Not many people do that anymore but it really helps.
Well, technically, the moment you showed both a NOT and an AND bitwise operation being supported by excel it was all possible, though actually getting it to work would be another matter :P Great video!
Blown away! Coded in 360 assembler back in the 70's and have great respect with what you accomplished. You have a great future ahead.
Have seen this in the news a few days ago and today your video popped up in my YT feed. I just had to click it.
Amazing work, i expected some macro stuff but i never imagined this to even be possible just by formulas.
Between you and Ben Eater I think we have the best set of ‘how computers work’ resources ever made. Thank you so much for making this and giving it all away 🎉❤
Don't forget James Sharman
Bro this is actually insane. Using pure excel to make an actual working 16-bit cpu
I’m actively working on a full 3d cube renderer in excel and this has inspired me
Video when
@@xdasdaasdasd4787 im not all that good at making videos but i will maybe upload one once i finish
Show us when it's done
Already been done use google
Honestly insane. The fact you made a program that was essentially only made for documentation and somehow got it to be a 16-bit pc is impressive as hell. How you managed to figure this out is crazy impressive as well.
Very well done.
bro took "i excel in it" to a whole new level
Hyper underrated, I've already said it, but more people need to see this.
The moment the rom was loaded and the instructions appread was magical 👏👏👏
This was hard enough with an HDL and a bunch of TAs to help us in class. Even though excel has a few tiny convenience features, this is awesome and I can't wait to see what else you have in store.
This is highly educational, it's not just writing an emulator for the functionality, it's implementing excel analogues for the actual digital logic level constructs.
And I was happy I could do the (sum)= function
0:30 the “me at the zoo” video was a nice touch
The Begining! :)
i barely understand what you're saying but it makes me want to learn about computer architecture
4:29 - Literally this exact sort-of use case is why RISC exists, you've re-invented the wheel a wee bit there.
Critiquing something for 'reinventing the wheel' in a video about building a CPU in excel is wild
@@WillKew Hah. I just meant that he could have cut out a portion of the work not actually related to the project by just going with with an appropriate instruction set in the first place.
I do sometimes read my old comments and wonder why I worded them a particular way though.
3:45 I love how asm is “high level” lol
Exactly what I thought. I almost had a stroke and also laughed like crazy
I've built "programs" in Excel, improving efficiancy at several workplaces ive been at.
This, however, is an entirely different level. Love it!
This was the coolest thing I watched in a while, taking a computer architecture class right now and seeing some of the stuff we talk about made in excel is sick
This is a masterpiece! Thank you so much!
Excel: *no, don't make me Turing complete NOOOOOooooo*
You know what that means, don't you?
m.th-cam.com/video/uNjxe8ShM-8/w-d-xo.html
You know what that means, don't you?
m.th-cam.com/video/uNjxe8ShM-8/w-d-xo.html
You know what that means, don't you?
m.th-cam.com/video/uNjxe8ShM-8/w-d-xo.html
You know what that means, don't you?
m.th-cam.com/video/uNjxe8ShM-8/w-d-xo.html
You know what that means, don't you?
m.th-cam.com/video/uNjxe8ShM-8/w-d-xo.html
I don't think AI is going to take you job bro! hahaha, great stuff, keep it up!
Im gonna learn how to make cpu from scratch then i will come back to this video to understand it
all thats left now is coding DOS in excel with this CPU and then running excel in that DOS
For irony, it would have to be lotus 1-2-3
@@killpidone that would be incredible
For pure "Microsoft-verse", it should be DOS and Excel. But just to annoy Microsoft, the operating system should be IBM OS/2 and the spreadsheet Lotus 123.
@@killpidone DOS is not done til Lotus won't run.
Here’s an unsolicited Excel tip: you can give names to cells in the top-left corner so that you don’t need to remember what $D$3 means.
And this comes in handy even for medium sized projects! I use this all the time, it makes everything so much more maintainable!
You can also use the name manager to do the same thing. It's even more powerful because you can create a named value that doesn't exist on any sheet.
@@MichaelStubbs What do you call medium sized?
Oh wow, that is insanely useful for writing things that will be easier for my teammates to read. Thanks!!
This is the way.
This is beyond amazing.
Edit: The only reason I understand all of this is because of Ben Eater's 8-bit computer build video series.
There is an unfinished project of mine where I set about building a complex calculator system for a game mod with the goal of public release. The basis of it was to take simple arbitrary inputs (within a limited range) and the calculator would perform a series of operations and iterations to deliver a comprehensive breakdown of the results as the input relates to it's utilization in the game mod. Anytime I would talk to anyone about it they would act like Im performing alchemy and ask why I dont just use scripting or an actual programming language on an actual compiler or whatever...
All this is to say I appreciate what youve done here. 10:30 especially here. the power of iteration!
Hey look it’s the first video on TH-cam. 0:30
I think it might have been valuable to use some of the LOOKUP functions. You could have had a microcode sheet where the instructions are defined which would have probably made things easier to fix. The cell formula you then paste to all the cells would just have this LOOKUP indirection.
I don’t often Like a video, but this deserves a Thumbs-up.
I hope that Computerphile come across this!
Most impressive and intriguing thing I've seen on YT this year!
Awesome job!
Well... Now run DOOM
Lol true (it can if it was running an os)
Dude this guy is a mad man i can feel the sleepless nights
This channel has become instant watch for me. Love love love these videos.
Have you ever watched The Microsoft Excel World Championship? It's on ESPN each year when they become ESPN 8 the Ocho for a week.
Looking forward to part 17 of this series "I coded DOOM in Game of Life in a 16 bit computer in Excel"
Bro! I asked, does it run doom? :D I guess we both look forward to this.
Seems that performance could be improved using INDEX instead of INDIRECT paired with ADDRESS. And I agree with other comments about naming ranges or even naming constant values. Did not download to check but with modern Excel formulas it is likely that more improvements could be introduced (LETs and LAMBDAs maybe?) In any case: super cool project!!!!!
Finally, I can download some RAM.
First of all, insane stuff! I've implemented a few CPUs, but definitely not in Excel lol
- With the assembler being fairly small, wouldn't it be feasible to implement that in Excel functions (or at least macros) too?
- Wouldn't setting the max iteration count (at 2:31) to 100+ drastically speed up the CPU, or would that break it?
- Also, if the limitation on colors on the display is that you have to define a rule for each pixel, why not use RGB subpixels?
I look forward to you implementing a RISC5 version! But seriously, I'm impressed with what you've done.
Hahhaha
Man, you're awesome!
Excel is great by itself, but this project is on another level.
Not only it's beautiful, but it's also a valuable tool to learn the internal processes of a CPU.
Instant subscribe!
From the day one of using Excel i knew that this application is much much more powerful than i think…. this just proves it! Crazy work you did here man!
You are insane. I can't even begin to comprehend the genius required for this.
I struggle to implement a virtual CPU in Java, yet you've implemented one in a spreadsheet program. Amazing. :D
It's probably a little easier to write it in the Spreadsheet than Java, even though Java is better suited to it, practically Java is easier, but the very fact that Excel is harder makes it more interesting and so easier to write in, for Java you're just using the most basic level things to do it so it doesn't feel like writing a program since the end goal is something you already had to begin with. This is why it doesn't feel all too hard to write the potentially thousands of BrainF commands just for a simple task but that same task may feel dull to do in a higher level language.
I could write a virtual CPU in 5 lines of Python or Java or 5 excel cells. It might not look nice, but emulating using a very powerful high level language is extremely simple. The real interesting thing here was how he made it readable and interactive and extremely well presented. An expert at the end of the day can do this in far less.
@@gregorymorse8423 I have implemented CPUs in Java before, I just never got far enough in the project to write an assembler, and I never really accomplished what I wanted to. I do have plans to make a complete virtual console soon though.
@CreatorJo writing an assembler is pretty easy but it does involve tokenizing, lexing, and parsing. It is certainly more work than emulating a simple instruction set. But then it's just simple translation. Far simpler than the work a compiler needs to go through as you don't have variables.
@@gregorymorse8423 Speaking of assemblers, when an assembler has compiled assembly into machine code, how does it then tell the CPU to run that machine code on Windows, I'd imagine on most electronics it's not terribly difficult, but for Windows it really seems to hate people using machine code. They also got rid of the DEBUG command in command prompt, how rude!
There is always someone smarter than you. TH-cam show me some incredible people, I thought no one can achieve this level
Doom in Excel CPU when?
"Nice computer you got here! Can I have it?"
I like to make UIs and softwares based on excel sheets but you my friend has taken it to a whole new level.
Using Excel in this way to demonstrate modelling a CPU is unironically excellent and captivating
I have a suggestion for the 8-bit Minecraft.
Instead of seeing the outline of the player when under blocks, why not just not show the layers above. This way, you can see where you can go, instead of the vague location
Can it run DOOM?
No
@@Aligames5747 anything can run doom 😂 I would love you see him try it even if it is a failure.
@@noahorick986 but this is 16 bit and doom is 32 bit
what my grandma sees when im doing the simplest things on a computer: