they just added classes to it too so really it is now a perl++ :D
@masteryoda0047Ай бұрын
a hidden gem on youtube
@wrongdogreckons-cp2sy13 күн бұрын
Thank you - I appreciate hearing that :)
@PattelitoАй бұрын
I really enjoyed this video. Keep up the good work :)
@wrongdogreckons-cp2syАй бұрын
Thank you! Will do! I am working on one on Crystal-Lang right now - its a lot of fun.
@yaroshchenko_coder3 ай бұрын
Thanks for the interesting lesson on the Perl 5 programming language
@michaeljtessmer36893 ай бұрын
Where did you get the prototyping cards?
@wrongdogreckons-cp2sy3 ай бұрын
I got them from Amazon - search for 'YUNGUI PCB Protoboard'
@paullee1073 ай бұрын
Earned a sub - I'm working on a much less refined channel @TechHeart6090
@jfftck3 ай бұрын
This is still more of a computer than an iPad, just by the fact that you can create the applications on the same device. I find it sad that Apple started like this and is now pushing hard to limit the user to the experience that they create and not allow the user to explore their own devices.
@wrongdogreckons-cp2sy3 ай бұрын
Agree! Being able to program directly on the device - no matter how painful - seemed pretty core to the concept of being a computer. My next step is to make it a little easier to program on the device.
@twenty-fifth4204 ай бұрын
If I do learn Perl, I expect my transition to be somewhat like when I did Ruby then went to more modern Crystal. I think dynamic languages have uses for simplifying the productivity process and a series of scripts can do marvelous on data. I am on Linux now, I heard people tell me I can run Perl scripts like Bash ones, but like I implied, if I did learn Perl, I would like to have features of compilation. I also love the concept of Raku, so my level one project would probably be something like make a perl script do some bash stuff, and my level 20 is to make a compiler for both Perl and Raku. I also like how 'functional' it is, it is like an older Nim imo. Tell me, are sub-routines/procedural programming the primary imperative discipleine, or are there OOP features that can make my Ruby/Crystal heart flutter? Either way, I love this! Liked and subbed!
@wrongdogreckons-cp2sy3 ай бұрын
I've just started playing with Raku a little and can see where it has a lot of uses - particularly in making your own domain-specific-language. I have never paid attention to Crystal until your comment, but it looks amazing and can't wait to play with it a bit. I like the macro system and the built-in ability to call native libraries. Exciting stuff - thanks for the pointer!
@WagonLoads4 ай бұрын
I would like to do the same thing using the S100 bus and fix all of the design flaws. and add every bell and whistle that didn't exist in 1977... Maybe give it a dual mode bus, so it is backward compatible, but have a 2nd mode that gives it access to unimaged capabilities that can be done today...
@wrongdogreckons-cp2sy3 ай бұрын
Interestingly, I just watched a video on a found homebrew based on the RCA 1802 where the maker had built their own backplane (not S100) - it might be interesting to you: kzbin.info/www/bejne/aqHKgGp5q9iXnKs - thanks for watching - cheers!
@alfredo1valenzuela4 ай бұрын
Stories From The Marble Tower
@wrongdogreckons-cp2sy4 ай бұрын
I am unclear on the context? Please expand :)
@tassoevan4 ай бұрын
I've got emotional watching this.
@wrongdogreckons-cp2sy4 ай бұрын
If I am 100% honest, I got emotional making it. Thanks!
@iwantagoodnameplease4 ай бұрын
Using multiple SBC all mashed together is kind of hilarious. But I guess it's easier (and cheaper) than sourcing a bunch of random Z80s and sticking them all on a breadboard. I'm surprised you said the RP2040 is maxed out with the keyboard. It's a dual core, 130Mhz CPU. I'd expect you to be able to use that second core for processing. USB is a pain on such small devices, and so I can understand why you just had an entire MCU dedicated to polling it, but a Pico is more than capable of reading the USB protocol properly as still having plenty of room left for processing. PS/2 devices are hard to find these days, though you can get adapters, and could even make it simpler.
@wrongdogreckons-cp2sy4 ай бұрын
You're right about the keyboard module - it definitely has plenty of clock-cycles left over that can (and will) be put to use. There are lots of optimizations and honestly this could been done on one or two RP2040s. This was mostly an artistic design and it does an over-abundance of processing, but that has the advantage that I can develop out services on the nodes over time to make it into a capable little computer. Cheers!
@RonyMarcolino4 ай бұрын
Beautiful piece of hardware. I really love it 🥰
@wrongdogreckons-cp2sy4 ай бұрын
I really appreciate you saying that - thanks. Cheers!
@dimiutube4 ай бұрын
Wow! This is really a nice project. Love it 🥰 And especially the sentence „Is it a good computer? No! But it is my computer“ means so much!
@wrongdogreckons-cp2sy4 ай бұрын
Thank you! I'll make it a better computer over time, but I'm super happy to have gotten it working in the first place 😊
@adipurnama_workshop4 ай бұрын
Perhaps I can make a simpler project than this awesome computer, and can be well documented and nice to watch like this. Congratulation, you're doing great!
@wrongdogreckons-cp2sy4 ай бұрын
Please do! Its time well spent. Thanks!
@lorensims48464 ай бұрын
Perl is still the lead in Regular Expressions. I still judge programming languages based on how close their ease of use for regular expressions comes to that of Perl. So many programs and programming languages depend on the pcre (Perl-compatible regular expressions) library. The syntax of Perl is based on that of the Unix utilities grep, sed, and awk, just some of the tools Perl was designed to replace.
@wrongdogreckons-cp2sy4 ай бұрын
Absolutely - Perl has set the gold standard for regular expressions.
@BetterIP_4 ай бұрын
I love this. And it's fun that you basically summarized almost whole year in 17 minutes :D
@ph0sgene9674 ай бұрын
Now make it run doom
@wrongdogreckons-cp2sy4 ай бұрын
This genuinely made me laugh - and gave me a target to shoot for. Check back :)
@3osufdh4rfg4 ай бұрын
Another good homebrew series like Ben Eater's is the one by James Sharman where he builds a pipelined CPU and some peripherals like a graphics card, sound card, and various I/O.
@wrongdogreckons-cp2sy4 ай бұрын
Yes! I recently subscribed to them and am working my way through the series. Thanks for the tip!
@ewasteredux4 ай бұрын
This is something I have always wanted to do but never took the time. I am glad you were able to do it. It is quite inspiring, and I am sure it was alot of work. If you ever wrote a book with a BoM, I would buy it and make it for sure. No better way to learn about what a computer is and what sort of creative freedom they potentially encompass.
@wrongdogreckons-cp2sy4 ай бұрын
Thanks! The time spent diving deep has been a great diversion - and having the creative freedom of how to connect the pieces together makes it fun. Time well spent.
@davidprock9044 ай бұрын
I have a computer architecture design that very literally has limitless parallelism for the code that you write.
@wrongdogreckons-cp2sy4 ай бұрын
Would like to hear more about that - any overview information?
@davidprock9044 ай бұрын
@wrongdogreckons-cp2sy that's way to much info for KZbin to handle. But... It is similar to an FPGA but completely different. The highest level overview... I got what I call a cluster, truly thow that's the entire architecture... Each cluster connects to eight other clusters in a three-dimensional stack. There is no multiplexing. All clusters are flawlessly identical so no way to address a particular X,Y,Z if its not in use. but the eight ports on each cluster are numbered so you can "snake around" through an XYZ matrix of clusters that are "blank/formated" but doesn't matter if blank or not... The full address of a cluster is broken down into three parts. The application ID, function ID, and sequence ID. , That should be self-explanatory enough, that part with the ID's. So when you are writing your code aka populating clusters, you are also giving them their address but you don't have to really think much about it if you use it in the logic that I mentioned. It is a process in memory style type of architecture. There is no ALU, GPU or CPU but it is All and None at the same time. There are three types of buses that run through the entire architecture the way the clusters connect to each other through ports but their identical in function but their used differently, I don't have anything in particular I call them just high medium low buses. If you are trying to get ultra fancy with your coding, on the low level bus, you would not really need more than two duplicates of the low level bus. But just one is perfect. For the middle level bus, six duplicates is probably pushing it to be overkill, buh that's trying to seek the most absolute godlike performance. For the high level bus, however many duplicates of it you have, essentially you could 'almost' consider that your core count, but not truly. The high level bus is used for application to application communication, system to system, application to system etc, Also including external hardware, mouse, keyboard, speakers, printer, monitor, network, USB, etc. The middle level bus is used for function to function communication inside of an application. And the low-level bus is just following sequence, the order of operations. Your assembly code one instruction after the next. The clusters physically defragment to each other. So it does not matter if it looks like a perfect cube or if it's branched out like lightning. As long as the appropriate clusters are neighboring each other at least by one port. Let me give you a visual example. You have a bag with a thousand marbles aka clusters. Each cluster holds an assembly instruction. (following the sequence), So on the low level bus, the particular function of a particular application will zone off all of its clusters, making a pool on the low-level bus. So however many assembly instructions are used to make up that function, they can follow the order of operations, the sequence, all day long and not interfere with any other functions of that application or any other application, because the ports are cut off on the low-level bus that do not neighbor the same function of the same application. And to have functions communicate with each other inside of the same application., they will use the middle layer bus. With the middle layer bus, the way those ports are cut off, is representative of the application as a whole. And when one application needs to communicate with another application or hardware, they will use the high level bus. Physically externally you are 'kind of' in a way limited to the duplicates of the high-level bus. But internally you are not physically limited to high level buses because of a feature I developed called the rope bridge, but using it wastes precious cluster space, It forms a physical bridge connecting one or more applications or even particular functions between applications without using the high level bus at all.
@davidprock9044 ай бұрын
@wrongdogreckons-cp2sy Part 2, here is the continuation because KZbin on my phone could not handle editing the above text as I was typing. I need to bring up hard coding addresses on any other architecture creates security issues but not on mine. Here's why. Since there is no multiplexing, you have one wire per bit. One cluster that wants to activate another has to put its identity/ address on the bus, the cluster that it wants to call out to, its instruction, its data, etc. And the receiving cluster sees its identity being called. The receiving cluster checks its security ID, a section within itself, kind of like a registered but permanent storage. that aka register has enough bits to store an entire address application ID, function ID, sequence ID. There is a way to store an unlimited number of security IDs starting with one cluster, but it's too much to go into here. Not important at the moment. You can be mediocre about the security by just filling in the application ID and leaving the others blank or you can have stronger security by filling in the application ID and the function ID or extreme overkill security by setting all three in the security ID. If the security ID filled in matches the identity of the calling cluster then execution continues. otherwise the calling cluster gets terminated. There is no way to soft code or hard code around this. And obviously if the security ID is left blank then any function of any application can interact with that particular cluster. I haven't mentioned this part yet, but it should have been obvious. The callings are a broadcast message. So if you've got a thousand clusters pooled up on the low-level bus and the first sequence calls out to the second sequence all thousand or 999, get that message. And no address is ever used with all zeros for all three together or individually application function sequence. This saves on electricity usage.
@davidprock9044 ай бұрын
@wrongdogreckons-cp2sy Part 3, In regards to external hardware using the high level buses, so physically you would be kind of limited. But the reason I said not exactly is because of, ... For one, how many of the clusters are you willing to expose outside of the periphery of the chip? And for a piece of hardware like speakers, for example, you could hard wire to the middle level bus or even the low level bus. So your sound processing app would have isolated access to the speakers and of the hundreds of applications that need to output sound. Well, they have to go through the sound processing app anyway.
@davidprock9044 ай бұрын
@wrongdogreckons-cp2sy part 4.... ....... For one, if you are willing, of course, and if you think hard enough, you will know what the following is for... Nehine oh fur, for stix hero, ...... ..... ..... .....
@bbaxley19894 ай бұрын
This video is a work of art. I love the diagrams and the interspersed shots of the seasons changing. Jaw droppingly beautiful.
@wrongdogreckons-cp2sy4 ай бұрын
Thank you very much! Those are some very kind words - I appreciate them and I appreciate you.
@dfbess4 ай бұрын
Absolutely brilliant ! this is what these electronics are about.. not making game emulators.. but learning..
@wrongdogreckons-cp2sy4 ай бұрын
Agree - they open a whole new field of possibilities - far beyond another NES emu :)
@GM-Parad0x4 ай бұрын
Supper, you get a new sub. keep on with that good work
@wrongdogreckons-cp2sy4 ай бұрын
Thanks for the sub! I've had a great time, so expect more :) Cheers!
@GM-Parad0x4 ай бұрын
@@wrongdogreckons-cp2sy make more that kind of thing and you will gain a bunch of followers 😜
@hemant_theelectronoob4074 ай бұрын
loved the idea and watching the video, great work!
@wrongdogreckons-cp2sy4 ай бұрын
Thanks so much! I've had a great time making it and so I appreciate the feedback!
@JiffyJames854 ай бұрын
This is how I learned to code two decades ago. It frustrated me that I had no idea how a computer worked (1's and 0's became what I see on the screen), and started studying microprocessor design. Then I learned how to code to emulate processors. After that, I got frustrated in not knowing how the internet worked. So, I learned how to use Google, and just started searching. Eventually, I had to learn to code even more in order to create TCP hosts and clients, and thus learned Python.
@wrongdogreckons-cp2sy4 ай бұрын
Its all an incremental journey. Thanks for watching - cheers!
@lorentiobrodesco97414 ай бұрын
"it's a good computer? No but it's an expression of art"
@wrongdogreckons-cp2sy4 ай бұрын
Well said - I appreciate that statement. Thank you.
@kioshiki45194 ай бұрын
I really like this, thanks for posting a nice video explaining it. Wishing you all the best in life and future projects.
@wrongdogreckons-cp2sy4 ай бұрын
Thank you so much for watching and letting me know - I've had a great time with this project so I'm glad people are enjoying it - cheers!
@domanit9274 ай бұрын
thats great, now make an os for agi
@wrongdogreckons-cp2sy4 ай бұрын
Good thinking, but some side-projects would feel too much like our day jobs :)
@cdkw82544 ай бұрын
Absolutely loved it brother. I am a ambitious 17 year old child who loves retro technology and this felt like a bliss to me. Keep it up.
@wrongdogreckons-cp2sy4 ай бұрын
That's really cool - I like the idea of passing the retro tech concepts to new generations. Good luck on your journey - cheers!
@careycummings99994 ай бұрын
This was/is a super cool project, and the way you produced and directed the video is outstanding. Kudos to you Sir!
@wrongdogreckons-cp2sy4 ай бұрын
Thank you kindly! It was a blast to make, so glad you enjoyed :)
@i-onedarksnow92885 ай бұрын
FIVE PC for making ONE UGLY TOY...
@wrongdogreckons-cp2sy4 ай бұрын
oh boy, are you gonna hate the next rev... thanks for watching and cheers!
@gameprofcaa5 ай бұрын
Programming is physical. But it's not obvious. In 1977 I saw an electronics engineer friend demonstrate his original home-brew computer using a 6800 processor. Despite my own years of electronics and programming courses, things were still foggy until I applied that knowledge on my own system. After an amazing 'aha' moment, it all clicked. Later, as a game development professor, I tried recreating those "aha" experiences for my students. Those who pushed beyond those barriers left other students in the dust, reversed engineered products, and became excellent problem solvers. Thanks for sharing your own journey. Now can you reduce production costs while making it scalable? 😎
@wrongdogreckons-cp2sy4 ай бұрын
I really like how you said that - 'Programming is physical. But its not obvious.' - I think I've missed a lot of 'obvious' things because I didn't take the time to reflect and introspect. Its worth doing. On the students that you saw excel, where would you put curiosity as a factor?
@maalos5 ай бұрын
why the hell does this use so many boards? 2 esp32's would've been totally enough for that
@wrongdogreckons-cp2sy4 ай бұрын
of course - but optimization was never my point. Cheers!
@Dhruv.Wadhwa5 ай бұрын
wow that's a wonderful project ! i did something similar a year ago, i made the emulator of ben eaters 8 bit computer on a pico and made the device handheld so i could play with it during boring lecture classes. have hosted it on hackaday as "8 bit handheld computer".
@wrongdogreckons-cp2sy4 ай бұрын
THAT is cool AF. I especially appreciate the online simulator, playing with that now. Thanks for the pointer - I subscribed to your hackaday project and yt channel. Cheers!
@Dhruv.Wadhwa4 ай бұрын
@@wrongdogreckons-cp2sy thanks means a lot 🙂
@raspberrypi5 ай бұрын
LOVE this. Blogging it tomorrow. An old-school at home tinkerer project designed around a plant-based extended metaphor; what more could we ask for? This is exactly why Raspberry Pi was created in the first place - to get people back into building their own computers at home.
@wrongdogreckons-cp2sy4 ай бұрын
Thank you! The original Raspberry Pi brought excitement back into computing for me - I even made magic mirrors for Christmas one year :) Discovering the RP2040 this past year has done it again - I appreciate what Rasberry Pi has given to computing.
@foxmccloud89605 ай бұрын
Dang that's cool 😊
@wrongdogreckons-cp2sy4 ай бұрын
Thank you! Its been a blast to make.
@Unstableslab475 ай бұрын
I didn't believe how few subs you have, this feels like big channel content. Great Job!
@wrongdogreckons-cp2sy4 ай бұрын
Thank you! Making the video has been one of the best parts of this project.
@SJFrzrbrn5 ай бұрын
I respect the passion, desire to learn, courage to try (and fail), and even more resolute courage to re-try (and eventually succeed). The irony is that the computing horsepower is there in your project to exceed what what 100+ retro computers could do if you go back to the wire wrapped back plane and CPUs made from through hole discreet logic ICs with daughter boards for the various I/O. But I'm not minimizing what you did. You learned a great deal!
@wrongdogreckons-cp2sy4 ай бұрын
I appreciate that, this was all about trying something new. On your second point - I agree! There are so many optimizations to be had here - but that would make it feel too much like my day job to be fun :) In all seriousness though, recent updates have made it super snappy and my next steps on this are to consider how I can make use of the extra horsepower - its a fun experiment.
@oscareriksson94145 ай бұрын
Great job! It looks really cool too!
@wrongdogreckons-cp2sy4 ай бұрын
Thank you! Cheers!
@nikolazgonjanin85235 ай бұрын
Everything about this video is beautiful. The technical topics, storytelling, and videography, bravo!
@wrongdogreckons-cp2sy5 ай бұрын
Those are incredibly kind words and made my day - thanks!
@JP_the_Programmer5 ай бұрын
It came out beautiful! It is equal parts art as it is a technical feat.
@wrongdogreckons-cp2sy5 ай бұрын
Thank you! I appreciate that you get what I was going for here. Cheers!
@Nimith155 ай бұрын
Please keep posting your videos are so cinematic and can watch for hours dude. really nice project
@wrongdogreckons-cp2sy5 ай бұрын
Thank you so much! I absolutely will keep posting, have two in the works now :) Cheers!
@Maxjoker985 ай бұрын
Awesome video! You should look into digital logic design if you want to understand how computers works on an *even lower* level. It's actually not that difficult to develop a computer on the logic gate level, or very close to it(digital logic design). You could start with a graphical logic simulator like "LogiSim Evolution" or "Digital"(names of good logic simulators). For learning It's probably easiest to create a completely custom simplified architecture piece by piece. For better programming and debugging, you'll probably also want to write your own instruction set emulator and a basic assembler along the way. It takes a bit of back-and-forth adjusting until you have an architecture that is both nice to program and nice to implement as a digital logic design. Once you got the hang of what is what, you can plan out a physical build in the same logic simulation program using e.g. 74xx series logic chips(chips actual computer were made of, most of them still available!). You'd need to code up a basic operating system in your own assembler. Or re-create an architecture with an existing compiler in the logic simulator using logic gates/74xx series logic chips. I'd be glad to help out, as I just recently learned how to do most of this myself. I'm usually a software guy, but my desire to understand computers better lead me here :P
@ITGuyinaction5 ай бұрын
👍 👍 👍 👍 👍 👍 👍
@0LoneTech5 ай бұрын
I was wondering how you could arrive at that many computers. It's like you added one or two per function block. Each RP2040 has processing power nearly on par with a BeBox, but memory only half of an Amiga 500. You didn't run out of processing power; you just didn't add scheduling, the core part of most operating systems. On the plus side, you got plenty of experience with inter-IC communication! There's also precedent for this type of distributed processing; Commodore computers ran the disk operating system in the disk drives, and the Apple 1 had a functionally separate terminal from the computer. An interesting extreme is the GreenArrays network on chip where it takes three computers to interface with external memory, which is okay because it has 144 of them.
@wrongdogreckons-cp2sy5 ай бұрын
You are correct - the latency is largely about communication timing and there isn't any scheduler. In the context of 'running user commands' it is not mult-tasking, whoever gets to the processor first gets full reign. A lot of my decisions were about the look of the piece and it looked better with more chips :) I do like that I have plenty of processing power left over to add functionality. Trying to read, but I am super confused about GreenArrays though - trying to Grok what they are doing there. Its great that they have 144 computers on that board, but am unclear on why...
@0LoneTech5 ай бұрын
@@wrongdogreckons-cp2sy I reckon most who hear of them are as bemused. Consider it an experiment in architecture; its closest relatives are TIS-100, FPGAs and transputers, each of different granularity. It's supposedly quite efficient but not clearly integrated either socially or industrially. I think a part of it is some old hand Forth enthusiasts saw the extensibility of their platform and wanted to build the new world. They just never stopped, while other things changed around them. A bit like GNU Hurd. They're not wrong, their systems are cool, but they could be improved with basic routing and recruiting people who grew up watching youtube on 64 bit pocket computers to work on 18 bit systems that don't even have peripherals may be a challenge.
@aiden_3c5 ай бұрын
I really appreciate this video. I love how the computer turned out in the end. I'm working on my own operating system (after hearing your definition I'm more comfortable calling it that), that manages I/O from an epaper display with a few buttons. It's been really fun building rendering functions from scratch, then being able to use those to build other UI drawing components and text. Im glad I had this video recommended to me
@wrongdogreckons-cp2sy5 ай бұрын
Couldn't agree more - its fun to get into the basics :) Thanks so much for your kind words, and share your project out so we can see. Good luck!
@chadzulu43285 ай бұрын
What an amazing project bro! It looks great too.
@wrongdogreckons-cp2sy5 ай бұрын
Thank you - its a fun project to work on. Cheers!
@babudelhi98855 ай бұрын
Cool, now you inspired me to make my own version
@wrongdogreckons-cp2sy5 ай бұрын
That's amazing! Please share what you build!
@BestFirmwareAround5 ай бұрын
Nice one! And I did something similar using 4 PIC32 MCUs... it's a complete computer featuring "all and everything", plus a windows clone - all written in C kzbin.info/www/bejne/aHSblax5bd2bjqs