I really, REALLY like the way you go through the programs in stepwise fashion. Currently learning for the C64 so the memory addresses I write to are different, but as I understand it, the 8502's instruction set is similar enough in every way.
Glad you enjoy it! The instruction set in the 8502 vs. the 6510 is identical. The only difference between the CPUs is that the 8502 has a few more I/O lines and a different pinout compared to a 6510.
I always found Indirect Addressing confusing back in the 80's and as a result avoiding using it. Eventually I figured it out and realized how useful these could be. You have described this in a very clear and understandable manner, much better than most of the books I had back then. Fantastic job demonstrating all of this in a video!
I just had a thought. If only there were videos like this back in the 80s when the C64 and C128 were big. With no youtube it would probably have to be on PBS or public access cable or something. But with comprehensive, east to understand instructions like this, it would have resulted in an even bigger generation of programmers getting started with more complex machine language coding.
@@NybblesandBytes Hi June. There is nobody explaining CPU operations like you do. You put it in simple terms for ordinary folk like me. I used to think that this stuff was hard but you explain how a processor reads memory, put things into memory, and add things to memory. Turns registers on and off. I need to watch your episodes again and again for it to make sense. I watched your live cast but it was above me. I only just discovered your series and I've gotta say there is nobody else on UA-cam who's explaining the operation of a commodore 64/128 better. Cool beans.
@@cjh0751 Just be patient and methodical at trying to understand, like the way a CPU behaves -- if you have any questions, feel free to ask. You should also probably join the Discord; there's lots of folks in there that can help with your understanding as well. Super glad you're enjoying the series! :D
@@cjh0751 It's called "Power Up!" by Jeremy Blake, and it's part of his UA-cam free library. I think I use the middle-part of the song for the intro, and then switch to the B-part in the outtros.
Hi June (did I get that right?). TY so much for all your efforts. It is becoming all so very clear now :) Essentially, the C128 is a fantastic machine to learn deep basics of a computer. I am no collector of any vintage computer. We had Amigas at young age, but they were very complex concerning programming from my young perspective. I've never even have given them a try for programming. We just used them deeply seriously and not for games. I've downloaded Vice and will definitely give a shot at ASM on the C128. Specially your channel and the 8 Bit Guy really are doing all the magic for me. I just love both your style. You two should team up :) And who knows, in the end I will even learn how to progam an Amiga :)
Watching your videos is pure joy. Wonderful explanation of a pretty confusing topic! Lovely presentation on the familiar "green screen"! I would totally stick with that for future episodes, that was very clear and easy to follow. I remember scratching my head at those indirect modes back in the 80s, and gave up assembly, haha.. I wasn't old either, that's my excuse! Didn't pick up 6502 again, but got heavy into 68000 on the Amiga later. Anyway, much love from this viewer, always happy to see a new video from you. I did miss the white board in this episode, however. ;)
My brain does not wrap around assembly language very well... It did not in the eighties and still does not! But you are doing a great job explaining this, June. It was always strange, I could code in basic, C, Pascal and even Fortran back in the day, but sir me in from of an assembler and I am lost.
I really struggled with machine language back in the 80's too. I started the machine code monitor on the Plus/4 and wondered what it was all about, But it slowly made sense as i read more books on it. Just think of LDA and STA as storing a variable or a poke command in Basic.
at 4:39 you say "We've dumped memory from ". What do you mean by dumped here? Do you mean you're literally just showing use what's at that memory address? Thanks.
So great explanations. That’s not the easiest chapter and I had to write a lot of the lesson on paper to test later. Perhaps you should write a book ? 😉
Thanks for making, yet another, great video. 11:30 I wonder if the person who wrote the background music, consciously copied the tune from Eyes Without a Face, by Billy Idol.
I start to use assembler on a C64 without to have Internet and then i switch to x86 on 80286 and some times later on 80386 using MS DOS 5. For the C64 i bought a book from DATA BECKER with the complete dokumented ROM listing inside.
Thank you for the great videos. Can't wait for the next one. On a side note. How do you generate the graphics for your exemples you show? They look amazing.
I've recently been helping someone make an old style Z-80 computer. It's my first time programming in Z-80 assembler, and dear god it's making me miss 6502. Considering the Z-80 was supposed to be the more advanced processor, it really feels clunky for certain tasks.
Oh, and I have to add that your terminology used remains very technical though. People at least must have heard a bell ring here and there to understand terms like 'mnemonics', 'operands', 'opcodes', 'registers' and such. You immediately have started with those words. For the absolute beginner it is abacadabra. Perhaps it helps if you don't start with those techy words but lead to them by trivial daily common examples. E.g., indexed memory ops. It is simply a way like a postman coming to your door and you refer her or him to another location to pick something up for further processing... for example. Etc. Or 'Immediate'. Well, that simply means filling A, X or Y with the value mentioned, rather than filling either of them with a value from a memory location. Etc. Keep it simple... You certainly try to do this with examples, but tend to remain too techy with words I think. Or you say: "What is Mnemonic grouping..." "It is just a set of opcodes... ...addressing modes"... Uhmmmm, *shrug.... etc. Less techy talk I would say :) Please don't take this as ranting. I'm just trying to provide with feedback. It's all up to you of course and you are brave enough already to give it a try to teach :)
Tomi Halonen Wow.... You have given a good clue to software developers to add a functionality to mute bgm or not option while recording and playing back.
@Tomi Halonen I may try a video without BGM for Ep3. These songs do get a bit long in the tooth at times, and I am looking for music that doesn't include human voices to help even out the problem. While Jeremy Blake's tracks are great, he has a penchant for edited human voice, which is super annoying. I still want the video to have a pace, though, and BGM is a great way to ensure things keep moving. It's a hard balance to achieve. What I don't want this to become is raw tech speech with some video added in -- that's a fast way to turn folks completely off. Even 3blue1brown -- who talks about far more complicated topics than I do -- has BGM. Thing is, I've edited the BGM down to -20dB in this video, with equalization in the 1kHz range down to an additional -20dB. My voice regularly stays at around ~-6dB on FCPX's audio meters, peaking to ~0dB. Plus, I *always* master the audio wearing studio-quality monitoring headphones with a flat response rate. The end result is that it should be easy on the ears, overall. Unless you're using headphones and turn up the overall volume, you shouldn't hardly hear it on a modern audio system, or even a computer.
I really, REALLY like the way you go through the programs in stepwise fashion. Currently learning for the C64 so the memory addresses I write to are different, but as I understand it, the 8502's instruction set is similar enough in every way.
Glad you enjoy it! The instruction set in the 8502 vs. the 6510 is identical. The only difference between the CPUs is that the 8502 has a few more I/O lines and a different pinout compared to a 6510.
I always found Indirect Addressing confusing back in the 80's and as a result avoiding using it. Eventually I figured it out and realized how useful these could be. You have described this in a very clear and understandable manner, much better than most of the books I had back then. Fantastic job demonstrating all of this in a video!
Never really got this before, but with you excellent desciption...away we go in the monitor. Thnx June. Love it
I just had a thought. If only there were videos like this back in the 80s when the C64 and C128 were big. With no youtube it would probably have to be on PBS or public access cable or something. But with comprehensive, east to understand instructions like this, it would have resulted in an even bigger generation of programmers getting started with more complex machine language coding.
Your videos are absolutely stunning. I wish so much I had these in the eighties.
I've only found this series and it's brilliant
Glad you like it! :D
@@NybblesandBytes Hi June. There is nobody explaining CPU operations like you do. You put it in simple terms for ordinary folk like me. I used to think that this stuff was hard but you explain how a processor reads memory, put things into memory, and add things to memory. Turns registers on and off. I need to watch your episodes again and again for it to make sense. I watched your live cast but it was above me. I only just discovered your series and I've gotta say there is nobody else on UA-cam who's explaining the operation of a commodore 64/128 better. Cool beans.
Hi June. I'm so sorry to bother you again, but what is your intro music called. I think it's amazing. Where can I find it?
@@cjh0751 Just be patient and methodical at trying to understand, like the way a CPU behaves -- if you have any questions, feel free to ask. You should also probably join the Discord; there's lots of folks in there that can help with your understanding as well.
Super glad you're enjoying the series! :D
@@cjh0751 It's called "Power Up!" by Jeremy Blake, and it's part of his UA-cam free library. I think I use the middle-part of the song for the intro, and then switch to the B-part in the outtros.
Hi June (did I get that right?). TY so much for all your efforts. It is becoming all so very clear now :) Essentially, the C128 is a fantastic machine to learn deep basics of a computer. I am no collector of any vintage computer. We had Amigas at young age, but they were very complex concerning programming from my young perspective. I've never even have given them a try for programming. We just used them deeply seriously and not for games. I've downloaded Vice and will definitely give a shot at ASM on the C128. Specially your channel and the 8 Bit Guy really are doing all the magic for me. I just love both your style. You two should team up :)
And who knows, in the end I will even learn how to progam an Amiga :)
Watching your videos is pure joy. Wonderful explanation of a pretty confusing topic! Lovely presentation on the familiar "green screen"! I would totally stick with that for future episodes, that was very clear and easy to follow.
I remember scratching my head at those indirect modes back in the 80s, and gave up assembly, haha.. I wasn't old either, that's my excuse! Didn't pick up 6502 again, but got heavy into 68000 on the Amiga later.
Anyway, much love from this viewer, always happy to see a new video from you.
I did miss the white board in this episode, however. ;)
You are a good teacher.
Thanks!
My brain does not wrap around assembly language very well... It did not in the eighties and still does not! But you are doing a great job explaining this, June. It was always strange, I could code in basic, C, Pascal and even Fortran back in the day, but sir me in from of an assembler and I am lost.
Glad to hear I'm not the only one.
I really struggled with machine language back in the 80's too. I started the machine code monitor on the Plus/4 and wondered what it was all about, But it slowly made sense as i read more books on it. Just think of LDA and STA as storing a variable or a poke command in Basic.
An excellent video. I will have to review a few more times.
Awesome! Thank you very much for making this video.
at 4:39 you say "We've dumped memory from ". What do you mean by dumped here? Do you mean you're literally just showing use what's at that memory address? Thanks.
So great explanations. That’s not the easiest chapter and I had to write a lot of the lesson on paper to test later.
Perhaps you should write a book ? 😉
Thanks for making, yet another, great video.
11:30 I wonder if the person who wrote the background music, consciously copied the tune from Eyes Without a Face, by Billy Idol.
I start to use assembler on a C64 without to have Internet and then i switch to x86 on 80286 and some times later on 80386 using MS DOS 5. For the C64 i bought a book from DATA BECKER with the complete dokumented ROM listing inside.
Great Videos !
Thanks!
Thank you for the great videos. Can't wait for the next one. On a side note. How do you generate the graphics for your exemples you show? They look amazing.
@Russell Riker its a mix of Motion generators and Keynote.
Cool! What's next, self-modifying code? Please please please...
Hi June, great channel, learning so much. Unrelated to this topic…How do you make the slide titles appear in double sized text?
Well, these slides were done in Apple's tooling, and these are just truetype fonts I'm using so I just set the font size. :D
I've recently been helping someone make an old style Z-80 computer. It's my first time programming in Z-80 assembler, and dear god it's making me miss 6502. Considering the Z-80 was supposed to be the more advanced processor, it really feels clunky for certain tasks.
I am the inverse. When switching from Z80 to 6502, my reaction was pretty much the same as yours? I guess it depends on what one is used to.
Also why the is the @ symbol being put at those addresses? I didn't see where you loaded that in (or did and missed it).
Hi June!!!
Never knew you worked for Google.
The music is distracting, not good
Working on that. Should have a different track for this soon.
@@NybblesandBytes
Thanks for the reply, I was thinking about the volume.
Pa Pinkelman Are you listening using headphones, perchance? The music barely peaks at -25dB -- on speakers it should be barely noticeable.
Oh, and I have to add that your terminology used remains very technical though. People at least must have heard a bell ring here and there to understand terms like 'mnemonics', 'operands', 'opcodes', 'registers' and such. You immediately have started with those words. For the absolute beginner it is abacadabra. Perhaps it helps if you don't start with those techy words but lead to them by trivial daily common examples. E.g., indexed memory ops. It is simply a way like a postman coming to your door and you refer her or him to another location to pick something up for further processing... for example. Etc. Or 'Immediate'. Well, that simply means filling A, X or Y with the value mentioned, rather than filling either of them with a value from a memory location. Etc. Keep it simple...
You certainly try to do this with examples, but tend to remain too techy with words I think. Or you say: "What is Mnemonic grouping..." "It is just a set of opcodes... ...addressing modes"... Uhmmmm, *shrug.... etc. Less techy talk I would say :) Please don't take this as ranting. I'm just trying to provide with feedback. It's all up to you of course and you are brave enough already to give it a try to teach :)
Please remove bgm
@Ravi Chandran Noted.
Someday someone might invent "mute the background music" button to YT videos. However I didn't notice bgm before somebody mentioned it :P :P
Tomi Halonen
Wow.... You have given a good clue to software developers to add a functionality to mute bgm or not option while recording and playing back.
@Tomi Halonen I may try a video without BGM for Ep3. These songs do get a bit long in the tooth at times, and I am looking for music that doesn't include human voices to help even out the problem. While Jeremy Blake's tracks are great, he has a penchant for edited human voice, which is super annoying.
I still want the video to have a pace, though, and BGM is a great way to ensure things keep moving. It's a hard balance to achieve. What I don't want this to become is raw tech speech with some video added in -- that's a fast way to turn folks completely off. Even 3blue1brown -- who talks about far more complicated topics than I do -- has BGM.
Thing is, I've edited the BGM down to -20dB in this video, with equalization in the 1kHz range down to an additional -20dB. My voice regularly stays at around ~-6dB on FCPX's audio meters, peaking to ~0dB. Plus, I *always* master the audio wearing studio-quality monitoring headphones with a flat response rate. The end result is that it should be easy on the ears, overall. Unless you're using headphones and turn up the overall volume, you shouldn't hardly hear it on a modern audio system, or even a computer.
Nybbles and Bytes
Yes you are right. But still bgm is unwanted in educational videos. But I appreciate your great explanation. Thanks.