Adapting WozMon for the breadboard 6502

  Рет қаралды 91,826

Ben Eater

Ben Eater

Күн бұрын

Пікірлер
@rager1969
@rager1969 Жыл бұрын
Ben's big brain modifying the big brain work of Woz is lovely to watch.
@blakelee4555
@blakelee4555 Жыл бұрын
Well I know what I'm thankful for this thanksgiving
@markrix
@markrix Жыл бұрын
That ascii chart has to be one of the most viewed images on the internet IMO
@joeblow229
@joeblow229 Жыл бұрын
It's so neat that you're still working with these breadboard computers! I remember back in 2019 I found one of your videos, and it inspired me to build a Z80 based desk light with LEDs and a "resistor ROM". It's still running four years later :)
@nokkreload
@nokkreload Жыл бұрын
Wonderful 🎉
@blazernitrox6329
@blazernitrox6329 Жыл бұрын
WozMon is such an incredible piece of software. Truly , Woz was one of the developers of all time.
@KingJellyfishII
@KingJellyfishII Жыл бұрын
WozMon is such a piece of software. Truly , Woz was one of the developers of all time. FTFY
@erikb3799
@erikb3799 Жыл бұрын
WozMon is a piece of software. Truly, Woz waz a developer from time. FTFY
@rm_steele
@rm_steele Жыл бұрын
@@erikb3799 WozMon is software. Woz was a developer with time. FTFY
@sakura_x64
@sakura_x64 Жыл бұрын
@@rm_steeleWozMon time! FTFY
@PeranMe
@PeranMe Жыл бұрын
At LEAST one. Developers.
@tomedmonson501
@tomedmonson501 Жыл бұрын
Thanks, Ben, you are an incredible communicator. I haven’t done any assembly language since the late 1980s, but I could follow along with you just fine. I’m looking forward to watching a lot of your other videos.
@DirkJMartens
@DirkJMartens 10 ай бұрын
What a great series this is. So much fun. So educational. So entertaining. So meaningful. Two comments: 1) I think at least 2 steps should be added in the RESET section of the code: a) initialising the stack (LDA #$FF and TXS) and b) initialising the ACIA (LDA #$00 and STA ACIA_STATUS) Both were there in previous videos. Relying on the hardware reset of the CPU/ACIA to achieve this is (I think) much more risky than relying on the wraparound from $FF to $00 after an INC and the other tricks that the Woz used to save a few bytes here and there. 2) Adding the two initialisation steps and still fit in the 250 bytes requires to free up some bytes somewhere and I was thinking to initialise the ACIA with "receiver echo mode on" (i.e. set bit 4 in ACIA_CMD) so a character will automatically echo on the terminal and we don't need to do it via code.
@sirflimflam
@sirflimflam Жыл бұрын
Hey Ben, I just wanted to say I've been following your videos for a long time now and you are probably the only person who has managed to really explain how all this low level stuff works in a way that I get. The breadboard 6502 is seriously one of my favorite series. Keep doing what you do. Cheers
@13mudit
@13mudit Жыл бұрын
Perhaps subconsciously, I knew this video was going to be released today. I had just completed my 4th rewatch of the entire 6502 series yesterday. Thank you Ben
@vdubjunkie
@vdubjunkie Жыл бұрын
It’s one thing to figure all this out and yet another to do such a fantastic jovv explaining it all so anybody with the interest can follow along. Thanks again for putting in the time!
@oneeyestudios
@oneeyestudios Жыл бұрын
Today has just become a happier Thanksgiving. Thanks Ben.
@AndersNielsenAA
@AndersNielsenAA Жыл бұрын
Still amazing how Ben makes it look so easy to teach these things :)
@NickFrom1228
@NickFrom1228 Жыл бұрын
Man this brings back memories. Thank you for the walk through the past.
@kaitlyn__L
@kaitlyn__L 11 ай бұрын
Always love how you explain assembly.
@theorixlux
@theorixlux Жыл бұрын
I am technically up to date on all episodes. I am practically still on episode 1. I am officially on my 7th rewatch of the series so far. So... Me, as a vet, says; Woah, Wozman left us two bites? That rascal! I hope it fills me up like them Webb Sight cookies!
@ItsJustNeto
@ItsJustNeto Жыл бұрын
It's always a good day when Mr. Ben publishes a video 😀
@DaveVW
@DaveVW 5 ай бұрын
Thanks! you gave me the confidence to port WozMon to my own 6502 minimal emulator, then to Commodore Vic-20, 64, 128 just for fun.
@dillingerlee2536
@dillingerlee2536 4 ай бұрын
Hi Ben. I sent a donation via Venmo. In the comment I requested tutorials using a VIC chip. My mistake. I meant a SID sound chip. I'd like to be able to extend your 8 Bit computer to play Jingle Bells or something. Or perhaps others with more electronics knowledge than I will read this comment and pick up where you left off. I see others are also making extension videos. This makes me happy. If someone can do a video on how to make a Chip computer, burn your own PCB board, and make a PocketChip I would be forever in their debt too. Need someone to pick up where Nick Blundell left off on his OS Dev videos. Who can write a simple 16 Bit keyboard driver and file system using Assembly? No Visual Studio. Just Flat Assembly. I love how your work has sparked other to do creative things too. You are a true inspiration. Keep up the groundbreaking work. Much respect.
@StevenHokins
@StevenHokins Жыл бұрын
Awesome video, thank you for this Woz series ❤
@cryptic_daemon_
@cryptic_daemon_ Жыл бұрын
U know its a thankfull day, when the bob ross of computer engineering drops another banger!!
@sudo4598
@sudo4598 Жыл бұрын
@@pikadroo you are seriously implying that he's doing this to sell products?
@TheDanEfranChannel
@TheDanEfranChannel Жыл бұрын
@@pikadroo”Ross used his television show to promote a line of art supplies and class recordings, building what would become a $15-million business” -Wikipedia
@kaitlyn__L
@kaitlyn__L 11 ай бұрын
@@pikadroohe literally tells you how and where to buy his special paint brush set in every episode, and each episode assumes that to follow-along you have all the tools in the exact sizing and quantity (especially the small/medium/large spatula scraper things, which came in all sorts of sizes).
@Otakunopodcast
@Otakunopodcast Жыл бұрын
Funny, I was just experimenting today with porting WozMon to the Commodore 64. Yeah, I know, kind of pointless, since there are dozens of other, more capable ML monitors available for the C64. But it was kinda fun, and also helped me in my continuing efforts to learn how to program the 6502 and how to use the Turbo Macro Pro assembler. (Also I was bored and needed something to do :) ) Had to put together some kinda hacky, very much not Woz-like code to interface with the C64 (cursor handling is... not fun) but I was able to get the thing to work! :)
@toby9999
@toby9999 Жыл бұрын
I created my own ML monitor for the C64 way back in the 80s. All I could get then was a cartridge based version, and it wasn't very good.
@saltyhashes1781
@saltyhashes1781 11 ай бұрын
Wow! Who would have guessed! Machine Learning in the 80s!
@cobbrobotics
@cobbrobotics 11 ай бұрын
Cool video, excellent explanations and inspirational. Thank you!
@RussellBeattie
@RussellBeattie Жыл бұрын
That serial UART bug is a such a pain! Having to loop and wait is such a waste when the chip could just do the right thing.
@aimah4390
@aimah4390 Жыл бұрын
Thank you for sharing this information
@plato4ek
@plato4ek Жыл бұрын
At last! I've been waiting for your next video so long! And here it is! 🥳
@ecosta
@ecosta Жыл бұрын
Amazing how many features Woz packed in 254 bytes. Decades later, a "Hello World" fetches 300MB from 3k dependencies.
@bigkeoni6429
@bigkeoni6429 Жыл бұрын
I'll be gifting my self for Christmas with the se kits, along with the video card.......great stuff Ben
@michaelkaercher
@michaelkaercher 10 ай бұрын
as always a pleasure to watch
@lightdark00
@lightdark00 Жыл бұрын
A Thanksgiving miracle that you showed back up! Happy Thanksgiving!
@Tsanito
@Tsanito Жыл бұрын
Great video. Thank you!
@user-plgmgrs326
@user-plgmgrs326 Жыл бұрын
Good job 👍
@Sommyie
@Sommyie Жыл бұрын
The ending is the chef's kiss. ❤
@CraftMine1000
@CraftMine1000 Жыл бұрын
Always when I see a new Ben eater video I get happy :)
@franciscovarela7127
@franciscovarela7127 Жыл бұрын
Nice work.
@wanderingmoon9772
@wanderingmoon9772 11 ай бұрын
Id love to see more breadboard projects showing how to program Ic/microcontrollers. I would also love to see you discuss more about data sheets. I have a reclaimed motor from a vacuum I'm having a hard time finding a datasheet for.
@Scriabin_fan
@Scriabin_fan Жыл бұрын
Was not expecting a video from on you on thanksgiving day. Happy thanksgiving and thanks for the video. I'm sure i'll learn a lot from this.
@danieljudah8992
@danieljudah8992 Жыл бұрын
What an unexpected content on Thanksgiving! Thank you!
@maixicek
@maixicek Жыл бұрын
thank you Ben for this video 🧡
@willofirony
@willofirony Жыл бұрын
Masterclass
@dacomputernerd4096
@dacomputernerd4096 Жыл бұрын
Oh new video! Can't wait to watch it
@der.Schtefan
@der.Schtefan Жыл бұрын
Your videos are what half the Internet is waiting for :)
@BytebroUK
@BytebroUK Жыл бұрын
You make such good vids. Probably going to have to do the Patreon thing at some point soon.
@LiamDennehy
@LiamDennehy Жыл бұрын
It would be interesting to see you assemble a program then load that into RAM over the serial port using the monitor, skipping the while ROM flash process.
@Devmedow
@Devmedow Жыл бұрын
I happened to bring out my breadboard computer today and then found this was just uploaded.
@Controllerhead
@Controllerhead Жыл бұрын
EDIT: Apparently the 65C02 DOES have INC / DEC for A which the original 6502 does not, disregard the following comment, i'll keep it as is, but still worth pointing out it won't work on a 6502. 7:48 You can't DECrement A... bruh... that is not a valid instruction on the 6502 =( ...If your display isn't working (which i notice you didn't show) this probably explains why... that delay loop isn't doing what you think it's doing. god knows what that built as... Just use X / Y with DEX / DEY and that should fix it. Otherwise i always appreciate your content!
@truckjumperdude
@truckjumperdude Жыл бұрын
What a better thanksgiving this is
@Dirty_Bits
@Dirty_Bits Жыл бұрын
There are only a couple things that I'll drop everything for - Ben Eater vids make that list!
@uni-byte
@uni-byte Жыл бұрын
Very nice!
@justovision
@justovision Жыл бұрын
Great work. As you go through changing the ascii values it's worth noting I think that you're just subtracting 8 from the significant byte. 8 -> 0, A -> 2, B -> 3... good reminder that hex is just numbers. Thank you for doing these videos.
@marred2277
@marred2277 Жыл бұрын
subtracting 8 from the significant nybble I think, more accurately, or 128 from the byte, cheers
@hamzawali2893
@hamzawali2893 Жыл бұрын
The legend is back!!!!
@DigitLineEletronica
@DigitLineEletronica Жыл бұрын
Fantastic...
@IslandHermit
@IslandHermit Жыл бұрын
Convenient that the code above SETBLOCK leaves 0 in the A register so the extra shift won't cause any problems.
@sean_vikoren
@sean_vikoren Жыл бұрын
pure gold
@Marenthyu
@Marenthyu 10 ай бұрын
... and now it's 3am again.
@Percent50-cb6ek
@Percent50-cb6ek 11 ай бұрын
Babe wake up new Ben Eater video.
@Devmedow
@Devmedow Жыл бұрын
Very awesome
@sloomeamohammad8899
@sloomeamohammad8899 11 ай бұрын
I am an Arab, I love your videos and I watch with subtitles, thank you ❤
@noureddinebenakrim5458
@noureddinebenakrim5458 Жыл бұрын
The hero is back
@deltakid0
@deltakid0 Жыл бұрын
I would really love to get back to 74 series and built may be a hardware multiplier
@rachelf6745
@rachelf6745 Жыл бұрын
babe wake up new ben eater just dropped
@DeeBash
@DeeBash 11 ай бұрын
Hi Ben, it would be so good when you teach us Paged and Segmented memory.
@bobweiram6321
@bobweiram6321 Жыл бұрын
Ben the Eater didn't eat turkey so we can learn 6502. We should all be grateful.
@larsmller2253
@larsmller2253 10 ай бұрын
Hi Ben Thanks a lot for your amazing videos. You are a wonderful explainer, that makes it easy to follow. I have a question about the speed of your 6502 computer. The W65C02 can run up to 14Mhz, but I remember you talked about timing for the chip selections. I want to run it at 10Mhz, what would mean that I need to chance/improve to make this possible ? 🙏 Best Regards Lars
@tim_allen_jr
@tim_allen_jr 9 ай бұрын
So cool
@سلمانالسوادي-ح7ك
@سلمانالسوادي-ح7ك 11 ай бұрын
How to be as great as you are, Incradebal
@clementpoon120
@clementpoon120 Жыл бұрын
i wonder if we can make a platform independent version of wozmon that can run on practically everythign
@marred2277
@marred2277 Жыл бұрын
I would say no, this is low level, you can't really get any closer to the hardware, so it necessarily is very closely tied to the hardware it's running on.
@uzbekistanplaystaion4BIOScrek
@uzbekistanplaystaion4BIOScrek Жыл бұрын
a portable version of wozmon in assembly is basically impossible, because there are many different versions of assembly that correspond to different instruction set architectures, which can vary significantly. you could write a program in c that implements the features of wozmon, which could be compiled for most (if not all) architectures, although it'd inevitably be less compact and maybe less performant.
@tobiasthrien1
@tobiasthrien1 Жыл бұрын
1:17 You can simplify your life by adding: set vartabs=16,8,15 set expandtab to your vimrc. Then you don't need to enter every space individually. Instead you press Tab onces and vim will enter the appropriate number of spaces for you. Similarly at 2:06 if you use "R" (Replace) the comment will stay where it is.
@JSRFFD2
@JSRFFD2 Жыл бұрын
I don't remember exactly how the ACIA circuitry worked, but I wonder if a hardware hack to the ACIA output could have pulled bit 7 high when it outputs on the bus, thus not needing so many code changes. It means you could never read a serial byte with bit 7 high, but would be more compatible with other Apple 1 software.
@Beerkeg92
@Beerkeg92 10 ай бұрын
Perhaps in a few years we'll get doom running on this thing...
@ed_halley
@ed_halley Жыл бұрын
I would just add one thing. Woz's code needed deep analysis to find tricks like the Y high bit at NOTCR. Comment *why* you're using Y high bit in the code. Of course other comments in the same vein would help too. Source code is for humans, not just computers.
@VGCCCCC
@VGCCCCC Жыл бұрын
One thing idea Ive had is since the original WozMon program was for a keyboard and a screen, could you adapt it to use your keyboard interface and vga card?
@kaitlyn__L
@kaitlyn__L 11 ай бұрын
The Apple I’s screen driver circuitry was basically a serial terminal in a trenchcoat, which is part of why it worked so well for a UART with only a few mods. It could definitely be done, but would require essentially implementing all the ASCII-to-character stuff which this code just assumes magically happens.
@herauthon
@herauthon 10 ай бұрын
i saved this Video for the future.. so..mankind will interconnect again.. at lo-power.. it be called the BEE - the Ben Eater Experience. :D
@JEMSS97
@JEMSS97 Жыл бұрын
Hello, can you do video about the circuit inside an op-amp and how it works. Thanks!
@CZghost
@CZghost 11 ай бұрын
Is this a reupload? I remember watching a very similar video of yours if not the same earilier.
@truezulu
@truezulu Жыл бұрын
Arh... I wouldn't say you did a video recently... That's not quite accurate...
@4115steve
@4115steve Жыл бұрын
this would be cool to see as a "little man computer"
@SFS_Paraverse_Studio
@SFS_Paraverse_Studio 11 ай бұрын
From what website do you buy the chips like the counter, the adder etc...?
@SergeAx
@SergeAx 11 ай бұрын
Hi, Ben! Am a big fan of your channel. Thank you for your work! I have a question: why don't you put all ASCII codes to constants in the beginning of the file, use those constants through the code, and then just change them in one place? Given educational spirit of your video, that would be a good lesson of making code more readable and easier to refactor!
@DirkJMartens
@DirkJMartens 10 ай бұрын
I had the same thought, and defined the constants and replaced e.g. all "CMP #$1B" with "CMP #ESC" ... but when trying to analyse the code, understanding the result of "CMP #$1B" when the A register contains e.g. "$30" is much easier then "CMP #ESC" ... so I ended up editing the code again and adding the ASCII codes in the comments: "CMP #ESC ; ESC = $1B" On the other hand, it does make perfect to replace e.g. "LDA #$5C" with "LDA #PROMPT" and define "PROMPT = $5C" so you can change your prompt to ">" or "*" easily if you like.
@SerjLevonyuk
@SerjLevonyuk 11 ай бұрын
Please make "Worlds worst ethernet adapter". DIY scheme on breadboard that can recive an ethernet frame and send it to pc over serial.
@iDoComputers
@iDoComputers Жыл бұрын
3 hrs ago!! and today’s thanksgiving???????
@roysainsbury4556
@roysainsbury4556 8 ай бұрын
This was interesting. I decided to try converting it to Z80 (on a TRS80 emulator), and it seems to work as intended (of course, the TRS80 has a much better disk based monitor, but it was just an experiment). Interestingly though, I notice a lone "DEC" instruction in the ECHO routine. As far as I know, the 6502 has no instructions to increment or decrement A. X would do just as well I guess. Perhaps DEC is one of those illegal instructions, or maybe a modern equivalent 6502 actually implemented these? I tried DEC (and DEC A) on an online assembler, and it didn't accept it.
@AftercastGames
@AftercastGames Жыл бұрын
Couldn’t help noticing, but does adding the shift left at the end of the video break the code above it? Probably need to verify. Great video. Gives me some ideas for making a cross platform version.
@marred2277
@marred2277 Жыл бұрын
no, the accumulator will contain 0 at the end of that routine, so the ASL's will do nothing
@carsoncoder
@carsoncoder 11 ай бұрын
You shoukd try to run C code on the 6502.
@anon_y_mousse
@anon_y_mousse 11 ай бұрын
Are you going to implement a C compiler for the breadboard computer or can you use cc65 for it?
@jortand
@jortand Жыл бұрын
I’m not even American but I’m pretty thankful for this
@futileskills
@futileskills 11 ай бұрын
Congrats, chatgpt sent me here. You are even famous with AI lol
@gebanb
@gebanb Жыл бұрын
Will you use the video card that you built earlier?
@th3darkgem566
@th3darkgem566 9 ай бұрын
I wonder, is there some app or something to simulate this sort of thing, or just program it on my pc?
@davidadesina3321
@davidadesina3321 Жыл бұрын
Yo I've got a question If hyper v is bare metal then I should be able to boot straight to say Kali right? If that's true can you show how
@halfsourlizard9319
@halfsourlizard9319 11 ай бұрын
Why can't all of KZbin be people editing interesting code in Vim.
@guilhermeperotta3092
@guilhermeperotta3092 Жыл бұрын
Hey Ben, you need to update your Chrome browser :D
@am2dan
@am2dan Жыл бұрын
Who else was trying to recall all those ASCII codes before he could look them up?
@Squossifrage
@Squossifrage 10 ай бұрын
04:08 Why not change CR to LF while you're at it?
@ROBOTRIX_eu
@ROBOTRIX_eu Жыл бұрын
@RegisMichelLeclerc
@RegisMichelLeclerc Жыл бұрын
Well, you could have seen that the codes you were yesting were ASCII + 0x80h, so you just needed to syvstract 0x80h from the test values as well. Now all those tests take a lot of space, another way of seeing it is to make a table of pointers to subroutines (way to speak, it's just JMPs, not necessarily JSRs), but that would change completely the "spirit" of the code. However, I don't know if the 6502 is able to do JMP [address] with the jump address stored there, like on the 8086?
@小x全栈工程师
@小x全栈工程师 Жыл бұрын
我也为我的6502计算机适配了WozMon,只需要改动少量代码就可以了。
@beefburger888
@beefburger888 10 ай бұрын
www.youtube.com/@SebastianLague/featured
@spageen
@spageen Жыл бұрын
I'm pretty sure Steve Wozniak was Jimmy Neutron as a kid
@christiankm8820
@christiankm8820 Жыл бұрын
get first blocked! anyways, ofc i haven't finished the video yet, so i'm interested to see how this is done
@s404n1tn0cc
@s404n1tn0cc Жыл бұрын
Whats up Eater. Thought the world had Eat'n your up whole. 5 mo ago Really??
A simple BIOS for my breadboard computer
21:53
Ben Eater
Рет қаралды 355 М.
Installing the world’s worst video card
25:12
Ben Eater
Рет қаралды 982 М.
ТЮРЕМЩИК В БОКСЕ! #shorts
00:58
HARD_MMA
Рет қаралды 2,5 МЛН
Players vs Pitch 🤯
00:26
LE FOOT EN VIDÉO
Рет қаралды 131 МЛН
За кого болели?😂
00:18
МЯТНАЯ ФАНТА
Рет қаралды 2,9 МЛН
FOREVER BUNNY
00:14
Natan por Aí
Рет қаралды 22 МЛН
Rearchitecting the 6502
16:17
Some Assembly required
Рет қаралды 14 М.
Running MSBASIC on my breadboard 6502 computer
36:53
Ben Eater
Рет қаралды 227 М.
The RS-232 protocol
26:10
Ben Eater
Рет қаралды 856 М.
How Wozniak’s code for the Apple 1 works
37:18
Ben Eater
Рет қаралды 336 М.
Binary to decimal can’t be that hard, right?
42:26
Ben Eater
Рет қаралды 825 М.
World's worst video card gets better?
44:25
Ben Eater
Рет қаралды 840 М.
My modified Ben Eater 6502 Computer PCB!
11:51
The Invent0r
Рет қаралды 42 М.
Hardware interrupts
27:36
Ben Eater
Рет қаралды 601 М.
The Madness of Z80 I/O
22:52
Noel's Retro Lab
Рет қаралды 75 М.
ТЮРЕМЩИК В БОКСЕ! #shorts
00:58
HARD_MMA
Рет қаралды 2,5 МЛН