I saw the title in my notifications and said out loud "no way". I never thought I'd learn so much about the absolute lowest level parts of computing. But you have singlehandedly made it accessible, entertaining, and interesting for me.
Ah, the memories. My friends and I played with this stuff back when we wre in high school and the 6502 was new. There was no open source of MSBASIC back then, so we wrote our own disassembler (in FORTRAN!), went through the MSBASIC code and figured out what everything did and produced an buildable source, which we could then modify and assemble with our own assembler (also written in FORTRAN). OSI Superboard was our breadboard. Good times.
Wow, that sounds like a fun time! Sometimes I wish I grew up when computers were somewhat "simpler" and lower level. My first experience (2008?) with computers was the web, specifically HTML, I skipped JavaScript and dove right into PHP and MySQL, and to this day I still prefer Python over JavaScript (side note, look up Brython, which is a cool project that translates Python into JavaScript)
@@Schlupssoftware developer for 40+ years. Medical technology, aerospace, banking, all sorts of things. Disassembling & then understanding MSBASIC was one of the best learning experiences ever. We learned about the basics of parsing, expression evaluation, graphics, ... the list goes on and on. We hacked that OSI superboard to support raster graphics (it only did character graphics out of the box). That's why I love Ben's 6502 series - for me, it was a great way to learn about how computers REALLY work, and that foundation has served me well for 40+ years.
SCRTCH ("scratch") clears the memory, it's basically the same as the "NEW" statement. No idea why different implementations call it at different times during init, but I agree with you that it does not really matter at all as long as it is called *somewhere* ...
My bet goes on memory timing. Some architectures might fire a memory reset and run some CPU ops instead of wasting cycles waiting for the memory chip reset.
@@Darkstar2342 It makes sense if you ever read timing diagrams in documentations for old ICs of old computers. Changing the order of the opcodes is a classical optimisation trick.
24:40 is such a cool moment for the series since the whole thing started with Ben scoffing at the triviality of writing Hello World in Python. Then it comes full circle doing the same in BASIC but now understanding so much more of what's happening underneath.
I had a great day, an amazing concert, late dinner, a few videos, now let's go to bed. _Ben Eater video pops up_ - LIKE - Play - Notice the "cmp 3" at 30:35 and yell "#3 !!", glad to still be able to notice it - Read comments and enjoy this moment back in time Thank you, this was great!
On my Uni course in 92 we made single board 68000 computers using wire wrap etc Then wrote assembler. So I got an understanding of how computers work from this basic level. I since had 30y as a Software engineer and knowing how the low level worked was invaluable Most modern software engineers haven’t a clue about this stuff 🤷♂️ Great videos, Ben. 🎉
I don't have a 6502 or the ability to justify buying a whole bunch of parts right now, but I do have an 8085, enough parts already lying around that I'm able to make something work most of the time, and the stubbornness to try following along at home even with the intermediate step of translating the entire thing to this different architecture before getting to the part where I add it to the 8085 breadboard computer and honestly? I think it's taught me even more this way! just watching these videos is educational enough, and you make the content so accessible and easy to understand, building something from them definitely gives me more of an idea of how things work and why, but taking it that one step further and getting a version of what you were showing to work with my computer? it's like I'm testing my knowledge of what I just learned, by taking what I learned and doing something with it, asking myself questions like do I understand it well enough that I can recreate it on my own 8085 computer? when I'm using different parts that have different datasheets, do I know where to start looking in mine for the closest thing to an analogue of what you showed from yours? do I understand what this code does and how it does it well enough that I can write my own version of it in 8085 assembly code? and the answer is usually yes, because your videos do an excellent job of teaching a wider concept by narrowing down on one specific instance. It doesn't HAVE to be a 6502, that's just the specific part you used, and the actual concepts are so much more applicable. since I'm on an 8085, I also won't have wozmon*, but that's okay because it doesn't HAVE to be wozmon, it just needed to be a simpler starting point than MS-BASIC, etc., etc. *I might try to port wozmon over anyway just for the practice. and to make sure everything so far is working. and also because that'd be fun, I think I guess what I'm trying to say is thank you, I'm learning so much more from these videos than I ever thought I could, and I'm enjoying every minute of it. and with these past few videos it's looking more and more like my end goal of running CP/M 80 on this breadboard thing I built myself is also possibly achievable for me someday
But then you find out why Ben chose the 6502 over many other microprocessors: because a LOT of software had already been developed for it. Of course, there was a lot of software written for the 8080 as well, in particular for CP/M, so best of luck to you in getting that running!
The best thing if you're interested in the SW aspect of it all is to buy a small Raspberry Pi Pico or a a dev board from either Infineon or ST for ARM, or Microchip for AVR or TI for MSP430, they cost between $5 and $40 and you don't need a programmer and you will have something that fits in your pocket that will give you the HW to port this to. If it's the HW you're after then Ben's project or your own 8085 it is.
Amazing where this series started and where you are now. I've been considered a computer professional my entire life. How much I didn't know until following along with you....
Yeah, as a software dev nearly half my life now seeing how he writes code and creates/works with hardware is insane and on a whole different level. Really makes you think how much more there is yet to learn! Ben out here schooling us in the best way!
Fabulous work. I've been directing my college students to your videos for years (and I know and appreciate your feelings about higher ed), keep up the amazing work.
Amazing content. So easy to follow and fluid. If I only got anything like that 35 years ago, when I was cracking and "reverse engineering" Atari Basic and 6502 Atari Assembly on my 800 xl, things would have been smoother. Thanks Ben for your amazing high-quality videos on 6502 and 8bit computing.
I'm brand new to breadboard computing. And can't wait to get to a point where I can use this. Great job with all of this. It's guys like you & stuff like this that help us noobs & make things just a bit easier to get a grip of. So Thank you for all you're doing. .. Respect.
The memory map of the C64 treated zero page addresses $00 and $01 differently one was the data direction for the other, which was used for bank switching and cassette hardware control.
That's because the 6510 processor explicitly supported memory banking with these two addresses. It had two internal registers that could be written to (at 0x00 and 0x01). These addresses when read, returned the last value written. The CPU was then wired to the extra address lines from specific pins assigned to this purpose.
i was randomly suggested by this men on youtube home page with 7 years old making gate on breadboard.and i come his channel and shocked after all of this.respect bro for this video.
I have never thought of even touching basic, but here Im know how it all works even. I can see why this could be useful at the time, I actually like the way it codes... but im just grateful I can still copy paste and review code live, thanks future. And Ben this series should be on a museum of tech, is just so complete... should be a 101 on computer science everywhere
Oh man these are some of the best computer engineering videos around! I see those empty LOAD and SAVE subroutines - time to add USB / SD card / file storage next? :P
@@TheRavenCoder if my memory serves me right SD cards can be accessed through SPI... considering the fact that he already bitbanged a serial interface onto this system i think bitbanging SPI shouldnt bee too difficult for him. might be slow, but hey the thing will feel more like its reading from a cassette if its slow to load stuff XD
Absolutely incredible how you are able to make every topic you share so understandable and absolutely a joy to watch and learn. One of my absolute favorite content creators to view on YT and I cannot wait to se what you share next.
Ben, absolutely fabulous work! I love your videos! I see you appear to be a VI power user of sorts. Two Quick questions: How do you switch back and forth from the file you are editing and the output from your compiler command? And how are you splitting the view to have the directory listing on the left and selecting the file you want in the editor? Thanks for all you do! -Ronald
Thank you so much for this series. I've been following along since the start and loving it. I grew up with a C64, and while I've been using it and other 8bit machines my whole life, I never imagined I'd really understand them the way I do now.
you Sir are an ABSOLUTE legend! I adore your vids! Rarely are there vids that are that excellent and educational and just extremely entertaining as well! It just sparks so much interest and brings out the passion to just go and build/code/learn stuff! THANK YOU!
But that's just it: he didn't reinvent the wheel. He took something that already had a ton of development into it, and adapted it to his own hardware. Which if you ask me, is far superior to trying to emulate or reverse-engineer the custom chips in, say, a C-64.
This has been an enormously educational and entertaining series! Thankyou so much for making it! Is there any chance you could do a very quick summary of the development stages you’ve gone through to get to this point? This has been a long series and it might be hard for new viewers to catch up to the amazing place you’re at now.
This is really cool. I [finally] got this working on my breadboard. Had trouble with the windows download for the compiler and all so used cygwin, which is a linux environment that runs on Windows. Not binary compatible with linux but you can get source code for things like the ms basic and cc65 compilers and compile them. Used the Xgpro programmer (windows based) to put the bin file on the ROM. Next is to do the input buffer and see how that goes. Ben Eater - appreciate all the work you put into these.
Great stuff Ben. I have been working with an INS8073 recently that has Tiny BASIC in rom. It only works with a terminal and echos everything back to the terminal. For backspace, it sends
I am a simple man, I see new Ben Eater thumbnail, I like before getting 3 seconds into video. Thank you Ben Eater, I think I speak for us all when I say we love you.
I love your content. An amazing introduction to how computers work, and this new series is incredible for understanding the lowest levels of what allows programming languages to exist and work.
Which is great because it helps people new to this get over the fear of the technology. Now, whether it ever actually IS that easy and pleasant is still up for debate.
This whole series is such a fantastic introduction to how a computer actually works. Anxiously awaiting the video where you make LOAD and SAVE do something... 😁
For your next trick, build an interface that connects to a cassette tape drive that uses a DAC/ADC pair to generate/decode FSK tones, and then write code for LOAD and SAVE that use that to perform those functions!
I appreciate your description of some error, and some solution to fix it (5:10). Nowadays when a "bug" has been found, the blame is more of "you did this" instead of "why" and then fix the problem.
10 For X=1 to 10 20 Print "Great Video ! "; 30 Next X >Run Great Video ! Great Video ! Great Video ! Great Video ! Great Video ! Great Video ! Great Video ! Great Video ! Great Video ! Great Video !
10 REM "This is a comment". 20 GOTO 10 >RUN I suppose the command REM comes from "Remark"? I learnt BASIC on a ZX Spectrum 48K with rubber keyboard and later on I graduated to the the great Comodore 64 which had a proper keyboard. Loading a simple game from tape could take from half an hour to maybe an hour. A floppy disk was a huge luxury back then. Time flies and so does computer tech.
@@kreuner11 Not sure that the V2 version here corresponds to the C64 "V2", especially since it is a rebranded version, and the C64 has quite extensive KERNAL routines. They probably modified a lot of the input/output routines
@@kreuner11 I'm sure it's just a matter of writing routines for those. Note that Ben chose a particular port as his starting point (cbmbasic2), which he never explained. It's likely that he looked at all of the implementations and found this to be the one with the fewest needs for hardware-specific functions. I also recall that the Commodore Pet had editing features that allowed you to edit any program line that was showing on the screen, but this also would have required choosing ASCII characters for the four arrow keys, and writing functions to detect those. I suspect that the "backspace" feature he showed here was intended only for development, where programming was being done from a serial terminal.
I would watch a full size documentary of this guys life just to understand how he got to this level of knowledge, entertaining value and fearlessness. Awesome video and I've never thought we would run BASIC on the breadboard computer. Next step is a second computer with a working network stack?
NGL seeing that running made my jaw drop. Also, please implement some sound hardware and code where when you press ^C it emits a loud and obnoxious beep, shared with ^G for “bell”.
Interesting to see MICROTAN as a build option for Microsoft BASIC. The UK based Tangerine Microtan 65 was my first computer, built from a kit. I only programmed it in assembler as I couldn't afford to expand it to include BASIC. I am now following along with your build, but instead of using Wozmon, I'm using TanBug. It's all very similar, so easy to adapt.
Hi, in the ISCNTC (around 30:48) - wouldn't it be better to conditionaly jump if it was control-c and let it through to rts if it wasn't? And (I do realize it's only 2 instances, however) would it be possible to jump to label to output 0d0a? wouldn't it save a byte or two?
Me watching these videos: nodding, and saying yep, yep, that's right... Ben at 9:04 "I'm not really sure what this subroutine is or does exactly, or what difference it makes when it gets called..." Me: yep, yep, me too...
Wow! I certainly don't understand this stuff 😂 Amazing to see CRLF goes back so far! Nowadays, CRLF is still generally what MS-DOS & Windows expect for each newline, whereas Unix and Linux just expect LF.
The Unix and Macintosh operating systems used I/O libraries that handled cursor or printer head repositioning. DOS, BASIC, early Fortran, and some other bare metal languages left the programmer to deal with those details.
CR/LF goes back as far as ASCII, maybe even further. There were some printing terminals that couldn't do a CR without also advancing the paper, and others, like the Teletype 7-bit models, that separated these functions.
I saw the title in my notifications and said out loud "no way".
I never thought I'd learn so much about the absolute lowest level parts of computing. But you have singlehandedly made it accessible, entertaining, and interesting for me.
I used to think I knew the basics, until he did this series. He has taught me way more than any book. I hope he builds more soon.
Ben Eater is a National treasure and you are lucky to have him
I did the EXACT same thing lol
Exactly!!
this guy started from explaining how silicon gates work!
And now he's running BASIC.... mind blowing
@@13mudit 🤣🤣🤣 Couldn't get any crazier....
4:39 Ah, the tried and true method of "just keep hacking away until the compiler stops yelling at you" method. My favorite.
me trying to use linux
@@Rx7man The definition of progress right there! 😂
Ah, the memories. My friends and I played with this stuff back when we wre in high school and the 6502 was new. There was no open source of MSBASIC back then, so we wrote our own disassembler (in FORTRAN!), went through the MSBASIC code and figured out what everything did and produced an buildable source, which we could then modify and assemble with our own assembler (also written in FORTRAN). OSI Superboard was our breadboard. Good times.
That sounds super impressive. What are you doing now?
Wow, that sounds like a fun time! Sometimes I wish I grew up when computers were somewhat "simpler" and lower level. My first experience (2008?) with computers was the web, specifically HTML, I skipped JavaScript and dove right into PHP and MySQL, and to this day I still prefer Python over JavaScript (side note, look up Brython, which is a cool project that translates Python into JavaScript)
@@Schlupssoftware developer for 40+ years. Medical technology, aerospace, banking, all sorts of things. Disassembling & then understanding MSBASIC was one of the best learning experiences ever. We learned about the basics of parsing, expression evaluation, graphics, ... the list goes on and on. We hacked that OSI superboard to support raster graphics (it only did character graphics out of the box). That's why I love Ben's 6502 series - for me, it was a great way to learn about how computers REALLY work, and that foundation has served me well for 40+ years.
This is super cool
@@carldaniel6510fascinating
SCRTCH ("scratch") clears the memory, it's basically the same as the "NEW" statement. No idea why different implementations call it at different times during init, but I agree with you that it does not really matter at all as long as it is called *somewhere* ...
I'd guess it's one of those micro optimizations for specific implications.
@@TaeruAlethea You know, because of the implication.
My bet goes on memory timing. Some architectures might fire a memory reset and run some CPU ops instead of wasting cycles waiting for the memory chip reset.
@@ecosta what? that makes no sense. what even are "cpu ops" supposed to be? this is not HW initialization if you mean that
@@Darkstar2342 It makes sense if you ever read timing diagrams in documentations for old ICs of old computers. Changing the order of the opcodes is a classical optimisation trick.
Next we run DOOM!
yes
Lol
over a serial line?
file system? operating system?
Yess
4:27 "i will be equal to eater". You ARE Eater!!
if he is Eater then sentence "i will be equal to eater" is true ;)
@@works4me89 "will be" is not true
ROFL :D
@@CompressedSoup He was equal to eater, he is equal to eater, he will be equal to eater.
Checks out to me.
if (i == eater && me == watching) then with world { all_is_right = TRUE );
24:40 is such a cool moment for the series since the whole thing started with Ben scoffing at the triviality of writing Hello World in Python. Then it comes full circle doing the same in BASIC but now understanding so much more of what's happening underneath.
I had a great day, an amazing concert, late dinner, a few videos, now let's go to bed.
_Ben Eater video pops up_
- LIKE
- Play
- Notice the "cmp 3" at 30:35 and yell "#3 !!", glad to still be able to notice it
- Read comments and enjoy this moment back in time
Thank you, this was great!
Yes! Also noticed the suboptimal branching there - why not just BEQ is_cntc and "else" continue to RTS :)
I always feel like a kid on Christmas morning every time Ben uploads.
It is better than Christmas! At least, I'm not checking for Christmas 5 times per day.
Count me in the party!!
On my Uni course in 92 we made single board 68000 computers using wire wrap etc
Then wrote assembler. So I got an understanding of how computers work from this basic level.
I since had 30y as a Software engineer and knowing how the low level worked was invaluable
Most modern software engineers haven’t a clue about this stuff 🤷♂️
Great videos, Ben. 🎉
This series continues to delight
Unbelievable incredible videos with the best teacher on the internet. Thanks!
Wow, that's nearly $30 USD!
@@SanchoPanza-m8m Yeah... 29,35 USD today. 🙂
I don't have a 6502 or the ability to justify buying a whole bunch of parts right now, but I do have an 8085, enough parts already lying around that I'm able to make something work most of the time, and the stubbornness to try following along at home even with the intermediate step of translating the entire thing to this different architecture before getting to the part where I add it to the 8085 breadboard computer
and honestly? I think it's taught me even more this way! just watching these videos is educational enough, and you make the content so accessible and easy to understand, building something from them definitely gives me more of an idea of how things work and why, but taking it that one step further and getting a version of what you were showing to work with my computer? it's like I'm testing my knowledge of what I just learned, by taking what I learned and doing something with it, asking myself questions like do I understand it well enough that I can recreate it on my own 8085 computer? when I'm using different parts that have different datasheets, do I know where to start looking in mine for the closest thing to an analogue of what you showed from yours? do I understand what this code does and how it does it well enough that I can write my own version of it in 8085 assembly code?
and the answer is usually yes, because your videos do an excellent job of teaching a wider concept by narrowing down on one specific instance. It doesn't HAVE to be a 6502, that's just the specific part you used, and the actual concepts are so much more applicable. since I'm on an 8085, I also won't have wozmon*, but that's okay because it doesn't HAVE to be wozmon, it just needed to be a simpler starting point than MS-BASIC, etc., etc.
*I might try to port wozmon over anyway just for the practice. and to make sure everything so far is working. and also because that'd be fun, I think
I guess what I'm trying to say is thank you, I'm learning so much more from these videos than I ever thought I could, and I'm enjoying every minute of it. and with these past few videos it's looking more and more like my end goal of running CP/M 80 on this breadboard thing I built myself is also possibly achievable for me someday
But then you find out why Ben chose the 6502 over many other microprocessors: because a LOT of software had already been developed for it. Of course, there was a lot of software written for the 8080 as well, in particular for CP/M, so best of luck to you in getting that running!
The 8085 is my FAVORITE CPU.
The best thing if you're interested in the SW aspect of it all is to buy a small Raspberry Pi Pico or a a dev board from either Infineon or ST for ARM, or Microchip for AVR or TI for MSP430, they cost between $5 and $40 and you don't need a programmer and you will have something that fits in your pocket that will give you the HW to port this to.
If it's the HW you're after then Ben's project or your own 8085 it is.
Amazing where this series started and where you are now. I've been considered a computer professional my entire life. How much I didn't know until following along with you....
Yeah, as a software dev nearly half my life now seeing how he writes code and creates/works with hardware is insane and on a whole different level. Really makes you think how much more there is yet to learn! Ben out here schooling us in the best way!
Thanks!
Fabulous work. I've been directing my college students to your videos for years (and I know and appreciate your feelings about higher ed), keep up the amazing work.
Amazing content. So easy to follow and fluid. If I only got anything like that 35 years ago, when I was cracking and "reverse engineering" Atari Basic and 6502 Atari Assembly on my 800 xl, things would have been smoother. Thanks Ben for your amazing high-quality videos on 6502 and 8bit computing.
That little software product started a revolution. Nice seeing you bring it to your setup. Cheers!
Very cool! The 6502 and Z80 were our go-to micros 40+ years ago. These units allowed the creation of many new career paths for many people as well.
And with videos like this, I'm sure will inspire many more :)
I'm brand new to breadboard computing. And can't wait to get to a point where I can use this.
Great job with all of this. It's guys like you & stuff like this that help us noobs & make things just a bit easier to get a grip of. So Thank you for all you're doing. .. Respect.
Hi, I'm a kid just 12 years old and I made a computer using a 6502 processor by learning from you. Thanks !
Honestly amazed by your fearlessness more than anything. "Well let's just comment everything and see if it complains".
This guy is a legend.
Fantastic! This whole 6502 breadboard project never ceases to amaze.
just realised it's been almost exactly 5 years I started watching this channel
time flies
fruit flies like a banana
Right. I have been re-watching the videos and following along on an FPGA. The weird part is seeing my comments from 4+ years ago!
@@m1geo watching your own old youtube comments is gold
except I was 11 and they're fucking cringe :D
The memory map of the C64 treated zero page addresses $00 and $01 differently one was the data direction for the other, which was used for bank switching and cassette hardware control.
That's because the 6510 processor explicitly supported memory banking with these two addresses. It had two internal registers that could be written to (at 0x00 and 0x01). These addresses when read, returned the last value written. The CPU was then wired to the extra address lines from specific pins assigned to this purpose.
Definitely a hardware feature of the 6510 CPU: You loose two bytes to gain access to many more bytes.
People took months, if not years to develop that in the first place, but Ben can explain it in 30something minutes.
Just brilliant. Thank you!
i was randomly suggested by this men on youtube home page with 7 years old making gate on breadboard.and i come his channel and shocked after all of this.respect bro for this video.
Thank you, love this. Helps demystify what was incomprehensible to me those many years ago.
I have never thought of even touching basic, but here Im know how it all works even. I can see why this could be useful at the time, I actually like the way it codes... but im just grateful I can still copy paste and review code live, thanks future. And Ben this series should be on a museum of tech, is just so complete... should be a 101 on computer science everywhere
Oh man these are some of the best computer engineering videos around! I see those empty LOAD and SAVE subroutines - time to add USB / SD card / file storage next? :P
That would be awesome. Even battery backed RAM
USB and SD card file storage is complicated. Probably be a lot easier to use SATA based storage.
@@TheRavenCoder
if my memory serves me right SD cards can be accessed through SPI... considering the fact that he already bitbanged a serial interface onto this system i think bitbanging SPI shouldnt bee too difficult for him.
might be slow, but hey the thing will feel more like its reading from a cassette if its slow to load stuff XD
@@TheRavenCoderGeogre Foot (YT and Reddit) has made some code (I think C/asm) to use an SD card for his computer's file system
@@TheScarvig I did not know that. But yeah, looking at some documentation, that should be doable.
The BEST teacher as always… Waiting for the Save and Load commands with file system support for basic 😊
As for me, I'm waiting for his flash-based floppy emulator
@@BrightBlueJim NO! Cassette tape drive!
Absolutely incredible how you are able to make every topic you share so understandable and absolutely a joy to watch and learn. One of my absolute favorite content creators to view on YT and I cannot wait to se what you share next.
the best computer engineering ever !
Love from Morocco !
Your skill-set is incredible. Even your vim game is tight.
Your videos took me from a basic understanding of a transistor to BASIC. It’s been a great journey!
Thanks Ben, that was way more interesting than I thought it would be.
It's an AMAZING start to the day when I see a Ben Eater video notification!
Watched the whole video. was great
lol
Nice to see the codes from Bill and Steve run hand in hand on this computer :D
Do you mean Bill and Paul?
@@jimhark I mean Bill Gates and Steve Wozniak
Well, you started with chips and breadboards and now you're running the first programming language I learned as a kid.
Ben, absolutely fabulous work! I love your videos!
I see you appear to be a VI power user of sorts.
Two Quick questions:
How do you switch back and forth from the file you are editing and the output from your compiler command?
And how are you splitting the view to have the directory listing on the left and selecting the file you want in the editor?
Thanks for all you do!
-Ronald
Well done Sir, pushing the envelope of the breadboard computer! Thank you.
wozmon and ms basic are awesome additions to your computer. ive followed along, built the computer but not yet implemented the code, great job.
Thank you so much for this series. I've been following along since the start and loving it. I grew up with a C64, and while I've been using it and other 8bit machines my whole life, I never imagined I'd really understand them the way I do now.
Thanks
This is such a blast to the past, thanks for this entire series :D
Amazing! I got into computer science thanks to you. You are so good at explaining these concepts!
you Sir are an ABSOLUTE legend! I adore your vids!
Rarely are there vids that are that excellent and educational and just extremely entertaining as well!
It just sparks so much interest and brings out the passion to just go and build/code/learn stuff!
THANK YOU!
this is really cool! im working on my own operating system for the 65c02 inspired by ur videos
“Reinventing the wheel”, also in informatic, is NOT always a waste of time … as is said at work…
Fascinating 😍
But that's just it: he didn't reinvent the wheel. He took something that already had a ton of development into it, and adapted it to his own hardware. Which if you ask me, is far superior to trying to emulate or reverse-engineer the custom chips in, say, a C-64.
I understand what do you mean, and yes you also are right 😊
But he also write all from scratch, of course reusing knowledge already solidified
This series is one of the best educational series ever made.
After not going for development all those decades ago, I'm finally learning some assembly :D
Agreed. I my digital hardware professor does not come close to this.
This has been an enormously educational and entertaining series! Thankyou so much for making it! Is there any chance you could do a very quick summary of the development stages you’ve gone through to get to this point? This has been a long series and it might be hard for new viewers to catch up to the amazing place you’re at now.
Great to hear about this open source minipro software, Time to revive this gem of a device from my parts bin!
It's good to hear that the black T48 is now supported as the older white ones are getting difficult to find.
This is really cool. I [finally] got this working on my breadboard. Had trouble with the windows download for the compiler and all so used cygwin, which is a linux environment that runs on Windows. Not binary compatible with linux but you can get source code for things like the ms basic and cc65 compilers and compile them. Used the Xgpro programmer (windows based) to put the bin file on the ROM. Next is to do the input buffer and see how that goes. Ben Eater - appreciate all the work you put into these.
Update: Added a "BYE" command to MSBasic to exit back to WOZMON so we don't have to reset to exit the program.
been following this project since I was still In school. I am a CS masters student. Love it
Great stuff Ben. I have been working with an INS8073 recently that has Tiny BASIC in rom. It only works with a terminal and echos everything back to the terminal. For backspace, it sends
One of your best videos yet!
I am a simple man, I see new Ben Eater thumbnail, I like before getting 3 seconds into video. Thank you Ben Eater, I think I speak for us all when I say we love you.
Amazing clear and efficient breakdown, impressive work, thanks for clearing up the mysteries
Love your work. Like A LOT! it's awesome, also the story telling, the way you count and show the modifications of the code... just awesome. great!
Dude this is so nostalgic, brings me back to uni in my operating systems class
Madness! Truly impressive progress and great explanation!
I love your content. An amazing introduction to how computers work, and this new series is incredible for understanding the lowest levels of what allows programming languages to exist and work.
Awesome video series Ben, thank you ❤
Ben makes everything seems so easy and ordinary
Which is great because it helps people new to this get over the fear of the technology. Now, whether it ever actually IS that easy and pleasant is still up for debate.
Cant wait to see the debian fork to run on this
Amazing video again, awesome work
That is so cool !
Basic brings back memories.
Oh yes, this is what I was looking forward to. Need to get mine out and finish it
Great work, Ben! You make it look so easy.
This whole series is such a fantastic introduction to how a computer actually works. Anxiously awaiting the video where you make LOAD and SAVE do something... 😁
via Datasette!
For your next trick, build an interface that connects to a cassette tape drive that uses a DAC/ADC pair to generate/decode FSK tones, and then write code for LOAD and SAVE that use that to perform those functions!
So fun to ride along.
I remember typing an assember / editor into memory on the commadore, so I could then type in and assemble a game.
Nice Video! Thanks for this :)
Sweet I love the continuity
I appreciate your description of some error, and some solution to fix it (5:10). Nowadays when a "bug" has been found, the blame is more of "you did this" instead of "why" and then fix the problem.
10 For X=1 to 10
20 Print "Great Video ! ";
30 Next X
>Run
Great Video ! Great Video ! Great Video ! Great Video ! Great Video ! Great Video ! Great Video ! Great Video ! Great Video ! Great Video !
I was wondering if the semicolon would work over the serial. By the time you loop you have the CR.
10 REM "This is a comment".
20 GOTO 10
>RUN
I suppose the command REM comes from "Remark"?
I learnt BASIC on a ZX Spectrum 48K with rubber keyboard and later on I graduated to the the great Comodore 64 which had a proper keyboard. Loading a simple game from tape could take from half an hour to maybe an hour. A floppy disk was a huge luxury back then.
Time flies and so does computer tech.
These videos are great! Thank you so much
Amazing how this works out of the box by simply pointing it to a few locations, and just needs 3 bios routines.
Simplest thing Microsoft ever made!
I wonder how it worked on C64 where you could also move the cursor up and down
@@kreuner11 Not sure that the V2 version here corresponds to the C64 "V2", especially since it is a rebranded version, and the C64 has quite extensive KERNAL routines. They probably modified a lot of the input/output routines
@@kreuner11 I'm sure it's just a matter of writing routines for those. Note that Ben chose a particular port as his starting point (cbmbasic2), which he never explained. It's likely that he looked at all of the implementations and found this to be the one with the fewest needs for hardware-specific functions. I also recall that the Commodore Pet had editing features that allowed you to edit any program line that was showing on the screen, but this also would have required choosing ASCII characters for the four arrow keys, and writing functions to detect those. I suspect that the "backspace" feature he showed here was intended only for development, where programming was being done from a serial terminal.
Wonderful!
I would watch a full size documentary of this guys life just to understand how he got to this level of knowledge, entertaining value and fearlessness. Awesome video and I've never thought we would run BASIC on the breadboard computer. Next step is a second computer with a working network stack?
You are one smart cookie. 👍
NGL seeing that running made my jaw drop. Also, please implement some sound hardware and code where when you press ^C it emits a loud and obnoxious beep, shared with ^G for “bell”.
This stuff is awesome, thanks for sharing this knowledge.
I love when ben uploads
Wow, that's amazing!
A delightful watch as always.
You patch MS-Basic for a breadboard computer in about half an hour while I'm able to follow of what you are doing ... you're unbelievable
TH-cam was built for your videos
Great video✌
Nicely done!
Interesting to see MICROTAN as a build option for Microsoft BASIC. The UK based Tangerine Microtan 65 was my first computer, built from a kit. I only programmed it in assembler as I couldn't afford to expand it to include BASIC.
I am now following along with your build, but instead of using Wozmon, I'm using TanBug. It's all very similar, so easy to adapt.
Ditto here! Many hours punching a hex keypad. Half way through building up a Microtan65 as the one I built has long disappeared.
I need a Fire Alarm Sound for Upload Notifications from you
I would like to order CD in mail everytime when video come, as mp4.
...so I don't need visit yt :D
@@GameBacardi me too xD
@@GameBacardi ill Pay up to 10 Grand per CD
Very insightful. Thanks
Hi,
in the ISCNTC (around 30:48) - wouldn't it be better to conditionaly jump if it was control-c and let it through to rts if it wasn't? And (I do realize it's only 2 instances, however) would it be possible to jump to label to output 0d0a? wouldn't it save a byte or two?
Those bugged me too. Might fit back in 250 bytes?
@@renakunisaki Might fit - exactly, if I'm counting right it might save 3 bytes (if all the instructions and addresses are 1byte)
Me watching these videos: nodding, and saying yep, yep, that's right...
Ben at 9:04 "I'm not really sure what this subroutine is or does exactly, or what difference it makes when it gets called..."
Me: yep, yep, me too...
Outstanding
Informative and yes still nostalgic
Wow! I certainly don't understand this stuff 😂
Amazing to see CRLF goes back so far! Nowadays, CRLF is still generally what MS-DOS & Windows expect for each newline, whereas Unix and Linux just expect LF.
The Unix and Macintosh operating systems used I/O libraries that handled cursor or printer head repositioning. DOS, BASIC, early Fortran, and some other bare metal languages left the programmer to deal with those details.
CR/LF goes back as far as ASCII, maybe even further. There were some printing terminals that couldn't do a CR without also advancing the paper, and others, like the Teletype 7-bit models, that separated these functions.