Connecting an LCD to our computer - 6502 part 4

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 ธ.ค. 2019
  • Schematics, datasheets, kits, and more at eater.net/6502
    Part 1: • “Hello, world” from sc...
    Part 2: • How do CPUs read machi...
    Part 3: • Assembly language vs. ...
    Part 4: This video!
    Part 5: • What is a stack and ho...
    Part 6: • RAM and bus timing - 6...
    Part 7: • Subroutine calls, now ...
    Support these videos on Patreon: / beneater or eater.net/support for other ways to support.
    ------------------
    Social media:
    Website: www.eater.net
    Twitter: / ben_eater
    Patreon: / beneater
    Reddit: / beneater
    Special thanks to these supporters for making this video possible:
    Adam Lininger
    Adrien Friggeri
    ahmed
    Alex Catchpole
    Andrew R. Whalley
    Anthony Cuccia
    Armin Brauns
    Austin Grant
    BakerStaunch
    Beau-James Erion
    Ben Dyson
    Ben Kamens
    Ben Williams
    Bradley Pirtle
    Brandon Stranzl
    Brian Wanda
    Bryan Brickman
    Carlos Ambrozak
    Chad Fertig
    Christopher Blackmon
    Chuck Crizer
    Clayton Parker Coleman
    Daniel Tang
    Dave Walter
    David Boardman
    David H. Friedman
    David House
    David Turner
    Dean Winger
    Debilu Krastas
    Dominic Kulmer
    Dušan Dželebdžić
    Dzevad Trumic
    Eric Brummer
    Eric Busalacchi
    Eric Dynowski
    Eric Twilegar
    Erik Broeders
    Eugene Bulkin
    Foaly
    fxshlein
    Gabriel Lafond-Thenaille
    HaykH
    hunter wright
    Ian Tait
    Ingo Eble
    Ivan Sorokin
    Jackson Warren
    Jason DeStefano
    JavaXP
    Jay Binks
    Jayne Gabriele
    Jeremy A.
    Jeremy Wise
    Jimmy Campbell
    Joel Messerli
    Joel Miller
    Joern Heidenreich
    Jon Dugan
    Jordan Scales
    Joshua King
    Justin Dubs
    Justin Duch
    Kefen
    Kent Collins
    Maksym Zavershynskyi
    Manne Moquist
    Marcus Classon
    Mats Fredriksson
    Matt Alexander
    Matthew Mattox
    Matthäus Pawelczyk
    Michael
    Michael Burke
    Michael Garland
    Michael Tedder
    Miguel Ríos
    Mirko Rener
    Nathan Wachholz
    Nicholas Counts
    Nicholas Moresco
    Nick Sutton
    Nick Wrightsman
    Onion Sniffer
    Paul Pluzhnikov
    Paul Randal
    Pedro Madhat
    Peter Simard
    Philip Hofstetter
    Randy True
    Ric Allinson
    Ric King
    Richard Wells
    Rob Bruno
    Robert Blackshaw
    Robert Butler
    Ross
    Sachin Chitale
    Sam Rose
    Scott
    Sergey Ten
    Sever Banesiu
    SonOfSofaman
    Stefan Nesinger
    Stefanus Du Toit
    Stephen Riley
    Stephen Smithstone
    Steve Jones
    Steve Gorman
    Steven Pequeno
    sunyiming
    Sylvain Thrd
    Thomas Ballinger
    Tom Burns
    Vladimir Kanazir
    Warren Miller
    xisente
    Örn Arnarson

ความคิดเห็น • 904

  • @juanchoavid123
    @juanchoavid123 4 ปีที่แล้ว +1989

    nothing is on fire is the most common circuit designer phrase

    • @PeterfoxUwU
      @PeterfoxUwU 4 ปีที่แล้ว +36

      sadly thats not true :(

    • @stevewalston7089
      @stevewalston7089 4 ปีที่แล้ว +61

      @@PeterfoxUwU Yep, usually it is something regarding smoke. As in, "not letting the magic smoke out", or more commonly a "smoke test".

    • @KingJellyfishII
      @KingJellyfishII 4 ปีที่แล้ว +16

      More like "it's on fire!!!!!!"
      Note the exclamation marks.

    • @juanchoavid123
      @juanchoavid123 4 ปีที่แล้ว +6

      @@stevewalston7089 smoke test jajaja i didnt know that

    • @te0nani
      @te0nani 4 ปีที่แล้ว +17

      I look away every time I plug in something I build.

  • @bornach
    @bornach 4 ปีที่แล้ว +814

    Chuck Peddle, main designer of the 6502, passed away on 15th December 2019
    Rest in Peace

    • @markjones5973
      @markjones5973 4 ปีที่แล้ว +36

      Yep, the computer pioneers of our era are beginning to go now. Dennis Ritchie, co-inventor of C, passed in 2019. There was somebody else that died recently, but I can't recall who it was.

    • @huguia
      @huguia 4 ปีที่แล้ว +34

      @@markjones5973 Dennis Ritchie died in 2012

    • @smilingbuddha2836
      @smilingbuddha2836 4 ปีที่แล้ว +34

      Dennis Ritchie died twice?

    • @markjones5973
      @markjones5973 4 ปีที่แล้ว +52

      @@huguia Typo. I knew he died a few years ago, so I looked it, saw that it was in 2012, came back here and promptly typed 2019. I'm such a dumbass sometimes.

    • @masaratech
      @masaratech 4 ปีที่แล้ว +5

      @@markjones5973 good for you

  • @arnabnath4205
    @arnabnath4205 4 ปีที่แล้ว +760

    I had my Digital Electronics exam today and thank to your 8 bit computer playlist I was able to score a A grade , keep up the good work mate ❤️🍀

    • @MAYERMAKES
      @MAYERMAKES 4 ปีที่แล้ว +9

      That is awesome!

    • @hermitoldguy6312
      @hermitoldguy6312 4 ปีที่แล้ว +6

      Well done. :)

    • @Mobin92
      @Mobin92 4 ปีที่แล้ว +20

      Once you know how to read those specs documents, everything becomes much clearer.

    • @sifiso5055
      @sifiso5055 4 ปีที่แล้ว +2

      That’s really awesome

    • @DatMilu2K
      @DatMilu2K 4 ปีที่แล้ว +1

      You both keep up the good work! :)

  • @Alex-nh6zc
    @Alex-nh6zc 4 ปีที่แล้ว +375

    This is what happens when the "primitive tech" channels advance into the modern era

    • @tux1468
      @tux1468 4 ปีที่แล้ว +19

      Or rather, the one "primitive tech" channel since all the other ones are just poorly ripping it off.

    • @smooooth_
      @smooooth_ 4 ปีที่แล้ว +6

      @@tux1468 Usually I'd be mad about them ripping him off, but to be honest some of them are just as entertaining, but not from an educational point of view.

    • @Amethaz
      @Amethaz 2 ปีที่แล้ว

      @@tux1468 Add apionet

    • @tux1468
      @tux1468 2 ปีที่แล้ว

      @@Amethaz Bro go away

    • @Amethaz
      @Amethaz 2 ปีที่แล้ว

      @@tux1468 No❤️

  • @tino11
    @tino11 4 ปีที่แล้ว +877

    So after 10 years of being a professional programmer, I'm now waiting for a video on how to optimise hello world code.
    2019 is weeeird.

    • @alchemy1
      @alchemy1 4 ปีที่แล้ว +11

      Even after 10 years having been a programmer ( I mean a professional one) you didn't know this one. so what went through your mind?
      In the meantime I found 2019 to be a rather fascinating one, most satisfying. Would that make it double weird for you? :-)

    • @eriknestaas2270
      @eriknestaas2270 4 ปีที่แล้ว +139

      "2019 is weeeird"... Oh boy, you thought that 2019 was a weird year...

    • @TheAlianae
      @TheAlianae 4 ปีที่แล้ว +9

      Erik Nestaas 2020 is weird.coronavirus...

    • @santubandieri
      @santubandieri 4 ปีที่แล้ว +5

      @@eriknestaas2270 lol

    • @juliencollet1208
      @juliencollet1208 3 ปีที่แล้ว +25

      We were so naive back then.......

  • @williamdavies1316
    @williamdavies1316 4 ปีที่แล้ว +132

    the best christmas present

    • @angeloc1340
      @angeloc1340 4 ปีที่แล้ว

      I got the ELEGOO UNO R3 Project Most Complete Starter Kit But I still haven’t gotten very far in figuring anything out that’s why I’m watching a bunch of videos but I’m still confused as heck

    • @runo8
      @runo8 4 ปีที่แล้ว

      I got that same kit for Christmas too! I’ve had a little experience with electronics but nothing crazy, made some cool little projects like a joystick controlled LED grid or a sound controlled motor

    • @angeloc1340
      @angeloc1340 4 ปีที่แล้ว

      I tried to do even the simple stuff but couldn’t figure anything out

    • @runo8
      @runo8 4 ปีที่แล้ว

      Go on their website and download the PDF that they give for your specific kit. From there, read the first four lessons and if you need help finding the right parts, look at the little guide they put on the top of the parts box

  • @lachyplays3089
    @lachyplays3089 3 ปีที่แล้ว +267

    That awkward moment when the MPU in your lcd is almost more powerful than your computer

    • @Machin396
      @Machin396 2 ปีที่แล้ว +4

      Lol !

    • @VictorianMaid99
      @VictorianMaid99 ปีที่แล้ว +3

      This is so true

    • @sharpfang
      @sharpfang 3 หลายเดือนก่อน

      Certainly faster pushing 8 lines of pixels from font memory to display and doing all the cursor bookkeeping while the CPU outputs one byte, then pulses the E line.

  • @lucasbune
    @lucasbune 4 ปีที่แล้ว +128

    Fantastic stuff. I've graduated uni as an electrical engineer, but most of this low-level stuff was glossed over even in the digital hardware courses. These video's don't really teach me much new material per say, but what it does teach fills in the holew and gives me a lot of those "Ah hah!" and "Eureka!" moment where all the things just click into place and really deepens the understanding of how these systems work and are build up physically.
    With this series specifically, i've had flashbacks to the very first embedded programming course in second semster, where we hooked an LCD up to an arduino programmed with AtmelStudio to say "Hello, world!". Never understood exactly how the ports on the ATmega were addressed and accessed by the core of the microprocessor, until now. Good stuff.
    Merry chrismas Ben :)

    • @alexlovett1991
      @alexlovett1991 3 ปีที่แล้ว +6

      You’ve really summed up how I feel watching this. I graduated (MEng, EEE) 7 years ago, assembly was done in first year before quickly moving onto c. I remember assembly, I remember being taught about how microprocessors work (I scored well on this stuff and software in general), but these videos just make it seem so much easier.

    • @TheAcidicMolotov
      @TheAcidicMolotov 2 ปีที่แล้ว +1

      @@alexlovett1991 how is your career if you do not mind me asking. I am studying EE and am wondering how easy getting a job was. I have knowledge with programming in multiple languages, hoping that could help me.

    • @alexlovett1991
      @alexlovett1991 2 ปีที่แล้ว

      @@TheAcidicMolotov I don't know about where you are, but in the UK being an EEE you shouldn't have a problem at all getting a job. Get your profile on linkedin and you should get recruiters messaging you. That's how I got my first job. After 6 months working I basically had recruiters contacting me daily (which is common for other software engineers I know).
      I'd be wary about using the phrase 'i know language x' it's best to be honest and say 'I've got n experience in x language' where n could be little, a reasonable amount, a lot etc. If you claim to 'know' a programming language interviewers might have a high expectation for the depth of knowledge. I've been doing java for 8 years, I think I've got a very good knowledge of it, but I'm also aware there's a lot I still don't know about it and if asked by someone about those topics I'd have to answer 'i don't know'
      It's also really worth getting some projects on GitHub or another public repo that you can add in on your CV. Just having done multiple projects on your own time really helps show enthusiasm.

    • @TheAcidicMolotov
      @TheAcidicMolotov 2 ปีที่แล้ว +1

      @@alexlovett1991 thanks for the answers!

  • @NoC4k3
    @NoC4k3 4 ปีที่แล้ว +92

    "Im not pround of this code"
    basicly me, every time i write code.

    • @NineEyeRon
      @NineEyeRon 4 ปีที่แล้ว +4

      NoCake Elsewhere: I am proud of this code I copied from google and glued together

    • @youdonotknowmyname9663
      @youdonotknowmyname9663 3 ปีที่แล้ว +3

      How to programm for beginners:
      Step 0: Search for your problem on StackOverflow
      Step 1: Copy & Paste
      Step 2: Compile
      Step 3: Profit!

    • @aleisterlavey9716
      @aleisterlavey9716 2 ปีที่แล้ว +1

      But is the Code proud of you?

    • @mohamodzclipzzofc5184
      @mohamodzclipzzofc5184 14 วันที่ผ่านมา

      ​@@aleisterlavey9716Is the proud code of itself?

  • @vq502
    @vq502 ปีที่แล้ว +8

    His instruction / documentation reading skills are legendary

    • @RedHair651
      @RedHair651 2 หลายเดือนก่อน

      This. I'm fully dependent on stack overflow and ChatGPT and this guy is doing wonders with immutable and finite paper.

  • @fingersmcoy
    @fingersmcoy 4 ปีที่แล้ว +9

    I have learned so much more from Ben than I did in college. Maybe it is because I am older and wiser, but I think it is because Ben is an amazing teacher. If you read this Ben, please dont ever stop teaching on youtube.

  • @henrymaddocks984
    @henrymaddocks984 4 ปีที่แล้ว +384

    “333 bytes is inefficient” I’m watching this in chrome 🤔

    • @ETXAlienRobot201
      @ETXAlienRobot201 4 ปีที่แล้ว +37

      even on a modern CPU, for what this is doing, it's inefficient
      on a system with even lower memory, it's worse.
      there's also the issue that every time you want to go and change the output... OUCH!
      you have to copy-paste several lines of the same code and tweak them just a bit, and hope you don't screw-up
      its good as a tech demo or proof-of-concept
      hence why he said the next video will be about optimizing it
      though, i do have a theory all of what will happen...lol
      i'm mainly watching this for fun, and also because i'm curious how you take processor and build an actually useful device with it.
      as for chrome, or ANY modern browser [rather, application] , tbh, yes, quite inefficient. it's now the rule and not the exception that web browsers suffer memory leaks. it starts as trickle, and before you know it, you HAVE to re-start the browser... >.< I use pale moon, myself. Never liked chrome since my first experience, firefox drove me away by taking-away all the features and customization that I used it for in the first place. The reasons go honestly far beyond the scope of developing a single application, though. It's decades of questionable practices, including so-called "rapid app development" and other "innovations" in the tech industry. I started my "serious" programming with these newer languages/tools, and tbh, there are multiple things I don't like. I watch videos like this, and about ROM-hacking, so on. I just facepalm at what's being done today. I have so many ideas right now or projects/systems I'm slowly cobbling-together that are pretty heavily inspired from older technologies/tricks [if not re-implementing them to some degree], or using low-level concepts. Or well, that's the plan.

    • @ETXAlienRobot201
      @ETXAlienRobot201 4 ปีที่แล้ว +10

      using a million other libraries or adding extra baggage is why i don't trust jquery, node/npm, so on...
      javascript is unfortunately so utterly worthless on its own that you need libraries by default. i have yet to see anyone preaching the joys of HTML5 use the APIs right out of the box. they use engines that abstract the crap away. been building my own from scratch. this is a problem plugins didn't have. but "in the name of security" they were decided to be killed-off.
      hoping to switch myself to full native or web + native development. I just also don't desire to touch such things as C++, either... *shudder* And I suspect my next obstacle is going to be these corporations for "our security" going full gatekeeper via the online stores. note the 'recommend' setting in win10 is to ONLY install from the store. There's a lot of programs that this can kill-off because there are so many reasons it can't or WON'T appear in e-stores. And then it might even force others into needing to go through additional licensing programs [i suspect this is the future for hex editors and programs that have a reputation for being used in hacking, especially reversing proprietary formats and facilitating piracy/emulation]
      libraries aren't in themselves bad, the way they're used and maintained is. mainly the mainstream ones. admittedly, i used to do this, jquery's main use: $("some_element"). if this is what you need to do, document.getElementById("some_element"). note this is discouraged. same with directly using XHR, which you could cut AJAX out in 90% of all cases. bootstrap, jquery, so on, should only be used for sites like twitter, youtube, so on... [if even there, but google did jquery, twitter did bootstrap... small sites/apps don't need and shouldn't use them]
      it's mainly executives who don't know anything about the company and the industry leading this push. look at commercials where the only thing they can brag about is : "patented" , "proprietary". this just simply means they keep their methods secret and have gone through the [very expensive] process of facilitating the legal right to sue people for trying to copy their product/service/process. speaks nothing for the quality of the product/service. this is also what i find funny about norton/lifelock. "with all these data breaches happening..." , why these happen : governments [NSA caused ransomware outbreak by not disclosing the exploits to computer companies, cuz THEY wanted them to look for possible 'terrorists' via unethical, immoral, and ILLEGAL spying mechanisms] , databases get breached partially because executives don't want to pay money to people to properly fix them, INTERNET OF THINGS [that shouldn't be connected to the internet], cloud computing, streaming [latter two are ultimately DRM mechanisms cuz it turned-out the fatal weakness of DRM was, and always will be, client-side code/data. it's not security/convenience as the reason, it's copyreich]
      i'm personally waiting for the next big crash, it's inevitable this will happen in the next few decades. we're actually making things less and less compatible with each other, which will lead to a lot of data rot, FAST. [like flash being killed, at least the open source community is working on it.] we're connecting EVERYTHING to the internet, increasing VASTLY the attack surface for hackers to target. we're increasing bandwidth usage and the infrastructure wasn't designed for so much traffic, nor was it properly upgraded in many cases. we're adding countless lines of tightly coupled dependency/overhead/boilerplate code and adding many extra layers to code management that don't belong there. [oh, and writing macros to generate code/data that the COMPILERS should be doing automatically] everything is obsolete when it's released, nothing released is finished. W3C members and browser vendors are STILL having a pissing contest, this is why APNG failed and GIF is STILL in use. [This is also why CSS3 suffered that prefixed properties BS.] Proprietary code is still supported in open source bodies [EME, aka DRM for the web, glorious "champions of internet freedom" , Mozilla, actually switched their stance to endorse/support it] Something's gotta give...
      [oh, and programmers who actually care or know how to do things are quitting/dying, assuming the 'supervisor' or an 'o' aren't telling them to basically, not do their job, cuz it costs money, anyways]
      I'm hoping my own code base will avoid some of this since I'm trying to axe the third-party dependencies as much as possible... Even then, there's a lot I can't avoid, like the internet globally suffering an outage, or the possibility/inevitability M$/Crapple are gonna tighten the noose around developer's necks since as it stands, I [and many others] can write and publish code/software which they don't have the ability to control at present. [End users, likewise, can still download/install/execute/[de]compile that code.]
      welp...another text wall... never thought programming and tech, generally, could be so...political... >.< i just want to make + play games, dammit!

    • @ETXAlienRobot201
      @ETXAlienRobot201 4 ปีที่แล้ว +2

      yes and no. the HTML5 Canvas/webGL and WebAudio APIs are absolutely miserable if you don't have a library. even if it's an in-house solution or lightweight, it's still a library/engine/framework, it's still basically necessitated because you're dealing with simple state machines that don't have any concept of what an actual program [especially game/animation] needs...
      a 2D game needs a concept of tiles/sprites, which requires some additional systems and data structures.
      a 3D one needs models, skeletons, possible inverse kinematics, [shaders,] etc... If you implement that wrong, performance is bad, you could even potentially cause damage/stress to the machine/ [something people don't seem to like mentioning about GL is that you really shouldn't touch it if you don't know what you're doing. just how it's not technically necessary even for 3D UP TO A CERTAIN POINT]
      all games need asset management and audio playback + audio looping.
      HTML5 doesn't do this out of the box. Neither does C/C++, so on, but we already have libraries [and...MASSIVE engines/frameworks] to deal with this for native applications and...mobile/console. Web had shockwave, java, Flash, Unity as the main ones. They each had their use, and I'd argue still have benefits if people can do ANYTHING besides freak-out about code exploits and "proprietary black boxes". More so, Flash. Shockwave's plugin is horrible, I hated dealing with it. But, some of my fav games need it. Unity is still a mess post-webGL [especially as an impenetrable proprietary black box with code doing god knows what] Java applets were neutered and I don't like the "everything is a class" blueprint-oriented nightmare java helped create. Flash's format, at least, is honestly great if you consider bandwidth and flexibility/extensibility. Parts are a nightmare to parse because that's how serious adobe/macromedia were about making the files SMALL. coupled with the AVM you had pretty much the only general-purpose game engine that's arguably useful, ONCE you figure-out how to use it. You don't have to monkey-patch flash or add loads of boilerplate to make even a simple/'mediocre' game. You can, and a lot of modern flash games do run entire frameworks behind the scenes like box2D or Flixel, but you never NEEDED to. A lot of the limitations with flash are also imposed, now that the format and AVM are documented so thoroughly, it's not out of the question to bypass the limitations or improve the parts that don't work. Just as an asset format, I wish SWF or something like it, stayed. That's one of my projects, but it's time-consuming and tedious, and I''m spread too thin. I probably sound like an Adobe shill, but I've long since lost my respect for them as a company. Currently I don't plan to collaborate with them or any other large organization since I don't trust them. I also don't expect adobe to do anything more than allow it to happen like they already have with SWFmill, FFDEC [which sourcetek/sothink hate! (:< ] , haxe/flashdevelop, flashpoint, etc... Anyways, I just feel the SWF format, itself, has far from outlived its usefulness. Regardless, it should be a user CHOICE to have flash as much as it is to not have. but the "open web" community has demonstrated they're not entirely open [Encrypted Media Extensions!!!] , and aren't open-MINDED ["flash needs to die, flash users are stupid, flash developers need to adapt or die with adobe despite themselves doing NOTHING WRONG"]. There are other things, but I no longer can find the sources [suspicious!], plus don't really want to drag THAT discussion on much longer. I'm worrying about things I shouldn't have to, and don't want to. Which is ANOTHER reason good and potentially good developers are LEAVING the field, especially veterans and disillusioned newcomers.
      I am currently trying to transition to Haxe. I'm cautiously optimistic Johanthan Blow actually achieves all or most of his promised goals because:
      I like js for small little macros [converting hex, Caesar cipher, countdowns, so on] , not full-fledged programs
      C is still a bit arcane
      assembly isn't feasible unless i target a retro platform where asm programming is decently tolerable
      actionscript is basically dead
      C++ is NOPE
      python isn't really supposed to run large applications and the whitespace sensitivity will hang you quickly
      lua needs an interpreter if you plan to USE it
      Rust just didn't quite impress me
      Java is too strict and the devtools keep ADDING LAYERS [AND NEED JAVA INSTALLED, which while i have, is outdated and i can't seem to update]
      Haxe still hasn't impressed me, really. But, better than manually writing JS and I CAN compile to native applications or the Neko VM at some point.
      As for NPM and all : yep... companies and the desire to get hired by said companies. i actually DON'T want to be. freelance or something? fine... chain of command consisting of people who should not be considered 'qualified' to make decisions? NOPE... [which tbh is just ONE reason] i've seen enough blogs and portfolios. same reason people remove their older works "silly me, i was so dumb back then!". the code style and design choices? sure, i'm ashamed of SOME of my stuff in those regards. but yanno what? i'm proud i can say i did it at all, that i completed it.
      this has some not nice code and uses...jquery:
      crystalien-redux.com/unrelated/ETX/apps/web/marsTrans/MarsTrans.html
      but, i can say i FINISHED it, and that it does EVERYTHING i wanted it to.
      [and it still works to this day!]
      i might update it in the future, i might not. and two big changes will be externalizing the messages array to a JSON database [at least converting it], and trying to pull jquery + jscrollpane OUT. i settled for that at the time because CSS3 was giving me problems [THANKS BROWSER VENDORS AND W3C!]
      point is, it means more to me this is done. if a potential employer cannot understand that, if they cannot understand the particular problems that i had to solve to make this work, then they don't deserve me, and they aren't qualified to hire employees.
      programming, engineering, science; are about developing practical solutions to actual problems, finding the sometimes illusive answers to important questions. companies and standards organizations lost sight of this, obviously. infomercials show it nicely with the insane majority of products you just don't need and can solve the supposed problem with your existing products "special tray to cook your bacon in the microwave!" and common sense. a handful are practical, but MOST aren't. same goes with frameworks and some of these "features" [like 'the cloud'] they added to software. i lost it with the M$ solitaire when they started bragging about the "innovations"... there are CLOUD-BASED games that UP-FRONT let you export your data to A FILE and vice-versa. and tell me why i need to watch ads on a card game that i could easily play in meat space for basically free [cards are cheap, much cheaper in the long run than subscribing to the premium/VIP version] if i wanted? their only true innovation was the extra modes. even then...pft... i could buy like 4-8 decks of cards and play HUNDREDS AND THOUSANDS OF GAMES. didn't need shiny new graphics, didn't want ads, and i fail to see the save data for that game weighing-in even at a KB, easily stored in a plain .txt file or copied to a text/email >.<
      well, more time basially wasted ranting bout this...sigh...
      however, the site i'm trying to use is suspiciously not loading at normal speed, so i can't play my crappy casual games, anyways... >.>

    • @ETXAlienRobot201
      @ETXAlienRobot201 4 ปีที่แล้ว +2

      engine/framework/library are a bit ambiguous at times.
      well, accessing the HTML DOM is a simple/small action. jquery's most famous use is to do exactly that. again, for a very specific type of project, it makes sense to bring those frameworks in. but tbh, decoders don't need anything sufficiently advanced, either. reading a PNG could be done with DataStream.js [makes dataviews easier to work with] , zlib.js, and then the PNG-specific bits can be written on both of those. file parsing also usually is the reading of an array, or several...XD. i've reversed or partially reversed a few. seen arrays and other tabular data a LOT. chunk-container types are also surprisingly common.
      the libraries using libraries using libraries is one main reason i don't use NPM, though. i do understand how SOME of it happens, though. there are a few libraries i want to use in my own, or have the option to, i fear some wrapper objects/instances might need to be used...BLEK! i'm not saying this is the most common reason. 90% definitely is "look, i made an NPM library, you should hire me!"

    • @colinpitrat8639
      @colinpitrat8639 4 ปีที่แล้ว +1

      On my computer:
      In C++: 8kB
      In Rust: 430kB
      In naked assembly: 1k
      Even the .class in Java (which doesn't include the runtime so it's cheating) is 417B.
      OK, this is comparing apples and oranges but it's still interesting.

  • @Wanttoknowabout
    @Wanttoknowabout 4 ปีที่แล้ว +342

    Merry Christmas Ben!

  • @Neceros
    @Neceros 3 ปีที่แล้ว +20

    I love this sort of computing. It reminds me of my childhood in the 80s. Assembly code is fascinating to me, even if I'll never have a reason to use it. I would have loved to be involved in NES or SNES, trying to use all of the registers and bits as efficiently and creatively as I could have. The wild west of games.

  • @mgfails9274
    @mgfails9274 4 ปีที่แล้ว +439

    Would you do a series abut USB protocol? Especially HID

    • @skmgeek
      @skmgeek 4 ปีที่แล้ว +11

      MGfails noice. Perfect 64 likes.

    • @MaxPicAxe
      @MaxPicAxe 4 ปีที่แล้ว +15

      That would be actually very interesting good idea

    • @mgfails9274
      @mgfails9274 4 ปีที่แล้ว +14

      @@skmgeek 69 now :)

    • @Aemilindore
      @Aemilindore 4 ปีที่แล้ว +2

      YES!

    • @BrainSlugs83
      @BrainSlugs83 3 ปีที่แล้ว +9

      If you are interested in self learning, there's a library for the AVR ATMEGA called V-USB that bit bangs the USB protocol using IO pins. It also has example code for emulating a bunch of different HID devices. I made an arcade joystick using it a few years back -- back before you could just buy a pre-made board on Amazon for $12... 😑

  • @pdrg
    @pdrg 4 ปีที่แล้ว +41

    26:00 - when you're paid by the line

    • @dustybrown4599
      @dustybrown4599 3 ปีที่แล้ว +3

      Don't tell me programmers can get paid per line. Omg
      I'm starting to think I could do this job. I just need a partner to debug it all.

    • @jonyw8851
      @jonyw8851 3 ปีที่แล้ว +2

      @@dustybrown4599 if you can't debug it yourself, you can't code.

  • @Snavenport
    @Snavenport 4 ปีที่แล้ว +23

    Literally the best Christmas present :)

  • @Darkness2179
    @Darkness2179 8 หลายเดือนก่อน +5

    I'm learning so much. Holy cow.
    As a budding programmer, I have nothing but praise and appreciation for the free education this channel is providing. Thank you.

  • @MrPassy4u
    @MrPassy4u ปีที่แล้ว +1

    RTFM!
    This is the perfect and most satisfying example. Binge watching from when coming home today, and exited how many episodes come.
    Hello world

  • @ryannorthup3148
    @ryannorthup3148 4 ปีที่แล้ว +36

    "Nothing is on fire." Wow, surprised by that. Usually at least ONE thing smokes out in a programmer video.

    • @electronichaircut8801
      @electronichaircut8801 3 ปีที่แล้ว +3

      Electroboom disapproves

    • @norsk54472
      @norsk54472 2 ปีที่แล้ว

      software runs on smoke......let the smoke out, it doesn't run again more

    • @fh8i1
      @fh8i1 2 ปีที่แล้ว +1

      Duh really 🤣

  • @vaendryl
    @vaendryl 4 ปีที่แล้ว +81

    even a vid like this that's almost half an hour long feels like it's too short :S

    • @Tangobaldy
      @Tangobaldy 4 ปีที่แล้ว +2

      Lol I slow video down so I can understand what he says

    • @MaxPicAxe
      @MaxPicAxe 4 ปีที่แล้ว +1

      Yeah, even when I slow it down to 1.25x speed

    • @vaendryl
      @vaendryl 4 ปีที่แล้ว +1

      @@MaxPicAxe that's faster lol

    • @ChandrapalSd
      @ChandrapalSd 3 ปีที่แล้ว +2

      @@vaendryl No , he slows down the time

    • @karakamen
      @karakamen 3 ปีที่แล้ว

      Holly shit! It's been half an hour?!

  • @CODMarioWarfare
    @CODMarioWarfare 4 ปีที่แล้ว +21

    When your boss measures productivity by number of lines of code

  • @3Max
    @3Max ปีที่แล้ว +1

    Lots of impressive stuff here, but one of the most impressive is how you never make any typos! (forget a paren, sure, but I don't think I've seen you type backspace in this whole series!). Thanks for these videos, they are great.

  • @Aeroshogun
    @Aeroshogun 4 ปีที่แล้ว +23

    Thank you Benjamin! These videos encourage and motivate me to improve my knowledge of electronics and pursue my business desire/passion to become a hardware manufacturer!

  • @fathomisticfantasy2681
    @fathomisticfantasy2681 4 ปีที่แล้ว +12

    I find it to be a very special gift that you would upload on Christmas Eve. The Tech DIY community is very lucky to have you. I got your main kit under the Christmas tree with a signal generator. As a college student I find this community to be very important in my life. I hope you had a Marry Christmas Ben and God bless you and your family.

  • @TheanHooYew
    @TheanHooYew 3 ปีที่แล้ว +6

    Played with a 6502-based Heathkit during my college days over 30 years ago. Would have been way more interesting if we had someone like Mr. Eater as our lecturer.

    • @salihefee
      @salihefee 4 หลายเดือนก่อน

      your youtube account is older than me...

    • @RedHair651
      @RedHair651 2 หลายเดือนก่อน

      The ironic part is that academia failed Ben Eater and he dislikes it for it.

  • @SordidEuphemism
    @SordidEuphemism 4 ปีที่แล้ว +5

    Thank you for another year of learning! This series has taught me more than I ever learned in formal classes. Have a safe and warm holiday!

  • @DIPper352
    @DIPper352 6 หลายเดือนก่อน +1

    As someone coming from Arduino
    It's amazing to see this in detail
    How the LCD actually works
    Instead of importing some library

  • @EagleZH23
    @EagleZH23 4 ปีที่แล้ว +11

    I recently got interested in electronics and embedded systems, and I just wanna binge watch all the videos in your channel!

    • @awesomefacepalm
      @awesomefacepalm 4 ปีที่แล้ว +2

      Great interest! I'm doing computer engineering on embedded right now at uni. Jobs are guaranteed and the work is real fun!

    • @EagleZH23
      @EagleZH23 4 ปีที่แล้ว +3

      @@awesomefacepalm I am actually an electronics engineer student, only figured out my interest a while back xD

    • @awesomefacepalm
      @awesomefacepalm 4 ปีที่แล้ว +2

      @@EagleZH23 great!

  • @pissmilker2313
    @pissmilker2313 4 ปีที่แล้ว +3

    This is getting exciting. Can't wait for the next video! Merry Christmas Ben

  • @svenprigann2631
    @svenprigann2631 2 ปีที่แล้ว +1

    Hey Ben, just wanted to to say thanks to you. I've started my journey of Electrical engineering in 2016 and got confronted with AVR assembly back in 2017. Scratching my head about toggling an LED in this course I attended I started searching for a source of information on the internet and found your channel. This literally changed my life!
    Of course I scored an A in this exam, as well as in all other exams containing electronics. At the end of my bachelor's degree, i graduated as best student of the year. From there on I've attended I started a master in electrical engineering during covid with my handy dandy TH-cam at my side. What can i say...I've also graduated with superb grades.
    What I want to say is: the first inspiration and steps during learning matter the most. Thank you Ben 😉

  • @hugoreze
    @hugoreze 4 ปีที่แล้ว

    You makes my computer architecture classes worth my time... Amazing as always!

  • @moriambar6533
    @moriambar6533 4 ปีที่แล้ว +5

    Well that was an unexpected, early and really wonderful christmas gift. Thanks Ben!

  • @angst_
    @angst_ 4 ปีที่แล้ว +114

    You could stick a ribbon/strip of plastic under the eeprom chip to give it "handles" to pull it up evenly.
    or
    Snap the chip into a sacrificial socket and pry that out each time. Might prolong the life of the chip.
    or
    Even use a programming jumper cable that jacks into the breadboard?
    just a thought. I held my breath every time you popped it out!

    • @DRSDavidSoft
      @DRSDavidSoft 4 ปีที่แล้ว +10

      Seeing this really makes me appreciate the In-System Programmer and the bootloader on my Arduino!

    • @the_jcbone
      @the_jcbone 4 ปีที่แล้ว +5

      Joshua Bryant put a zif socket on the breadboard.

    • @johnnywolinski8639
      @johnnywolinski8639 4 ปีที่แล้ว +2

      @@the_jcbone i'll do this so i can stop having to reball my 74181

    • @the_jcbone
      @the_jcbone 4 ปีที่แล้ว

      johnny wolinski I meant Ben. :-)

    • @veiledAutonym
      @veiledAutonym 4 ปีที่แล้ว +3

      There's also "chip pullers", specific tools for that; tweezers meant to pull chips evenly on each side. Your plan is a great workaround if you don't have the tools though!

  • @madpuppet666
    @madpuppet666 4 ปีที่แล้ว +1

    thanks for this great series. I'm a long time 6502 coder, but I've been wanting to get into circuit building for years and this video presents it all so simple and straight forward.

  • @Avionics1958
    @Avionics1958 4 ปีที่แล้ว +1

    Ben you got me glued to my phone for half an hour and thoroughly enjoyed it!. Merry Christmas!

  • @davidanon2742
    @davidanon2742 4 ปีที่แล้ว +27

    thanks Ben

  • @TobiasTimpe
    @TobiasTimpe 4 ปีที่แล้ว +17

    Wow, thank you for this Christmas present :)

  • @fmphotooffice5513
    @fmphotooffice5513 3 ปีที่แล้ว +1

    4:00 Thanks for giving an excellent short description of what is integrated in the package design. Typically you'd hear to just don't worry about it and continue with implementation. Great instruction!

  • @hayjaydee873
    @hayjaydee873 4 ปีที่แล้ว +19

    RIP Chuck Peddle 20.12.19 ~ developer of the 6502

  • @garcez9472
    @garcez9472 4 ปีที่แล้ว +22

    The end of the series: Recreating Windows 1from scratch - 6502 part 32

    • @EmanueleX
      @EmanueleX 2 ปีที่แล้ว +2

      Windows (the dos versions) ran on a 8088 so its almost the same but the chip needs to be upgraded

  • @achrefnasri8847
    @achrefnasri8847 4 ปีที่แล้ว +1

    sir your wire channeling techniques are so amazing... i'm jealous

  • @jacobwhyte7267
    @jacobwhyte7267 4 ปีที่แล้ว +2

    It's very interesting watching these videos after just taking a course on this kind of stuff in my computer engineering program

  • @andymok7945
    @andymok7945 2 ปีที่แล้ว +3

    Wow, very retro. I played with the 6502 & 65C802 CPU back in the 80's I built a logic analyzer based the 65C802. I used two 2x40 LCD panels for UI. All written assembler. The project was done on S100 prototyping boards using wirewrap method. It was lots of fun. Later on I was using the Intel 8031 family of controllers.

  • @JacGoudsmit
    @JacGoudsmit 4 ปีที่แล้ว +22

    I know where you're going, but it might be fun to connect the R/!W, RS and E line directly to the 6502 in the future (with a simple address decoder of course). That would make it possible to just say Hello World by writing the command bytes to one address and the message characters to another address, without the hassle of toggling the control bits in the program.

    • @TEBLify
      @TEBLify 4 ปีที่แล้ว +4

      If I understood the display datasheet correctly, which in part is just gibberish to me so there's that... the display can run as fast as 350KHz on the slowest functions, so even 1Mhz might be pushing it. With components rated at 14Mhz I think the VIA ends up the easiest option, especially if you need to read from the LCD.

    • @davethedaemon9024
      @davethedaemon9024 3 ปีที่แล้ว +6

      I'm a little late to the party, but in case anyone is interested ... I did this and so far it works! And yes, it was fun to do! The E line needs a NOR gate with one input to an address select line (active low - I used a 74ls138 as the address decoder) and the other input to PHI1out. I connected the RS line to A0. Right now, I can't test higher than 165Khz. I need to un-spaghettify my clock module first. The spec sheet says "... high speed MPU bus interface - 2 MHz (when VCC = 5V)". And there should be a way to generate wait states for higher CPU clocks.

    • @davethedaemon9024
      @davethedaemon9024 3 ปีที่แล้ว +7

      Here's an update. I'm able to directly access the display on the 6502 bus at 1Mhz clock. No 65C22 VIA needed.

    • @Stoney3K
      @Stoney3K 3 ปีที่แล้ว +1

      You could slap it directly on the bus in this arrangement, but it would interfere with other stuff you *may* want to attach to that bus later on. The CIA/VIA should be your interface to any peripherals.

    • @matthiasfuchs1299
      @matthiasfuchs1299 9 หลายเดือนก่อน

      That's how it should be done. For higher clocks you need to check the busy flag on DB7 before accessing the next register.

  • @angelrosales2778
    @angelrosales2778 2 ปีที่แล้ว

    What this guy is doing is a treasure!!
    I am taking my hat off in admiration of what you are doing!
    Thank you

  • @5coffeebreak2
    @5coffeebreak2 ปีที่แล้ว

    Full thanks for you sir and all of the team

  • @KingJellyfishII
    @KingJellyfishII 4 ปีที่แล้ว +50

    You know what's worse than 177 lines for a hello world? 1k lines for a hello world. I wrote an OS and by the time I'd got the keyboard and video drivers working + bootloader + a bunch of other stuff it came out to be ~1100 lines of C and assembly.

    • @KingJellyfishII
      @KingJellyfishII 4 ปีที่แล้ว

      @defunctusername haha yeah that's true.

    • @EDLEXUS
      @EDLEXUS 4 ปีที่แล้ว

      You had way to much time...

    • @KingJellyfishII
      @KingJellyfishII 4 ปีที่แล้ว +3

      @@EDLEXUS yep. I was on a few long haul flights...

    • @brendonholder2522
      @brendonholder2522 4 ปีที่แล้ว +1

      Wow! What discipline do you study? I am student for my bachelor of science in Electrical Engineering but I’m also interested in computer science and native level coding

    • @letsgocamping88
      @letsgocamping88 4 ปีที่แล้ว +1

      1024 hope the WiFi was good for all those trips to stack exchange

  • @zypherDNK
    @zypherDNK 4 ปีที่แล้ว +4

    @BenEater Merry Christmas thank you for the video! :)

  • @havresylt
    @havresylt 4 ปีที่แล้ว

    Very thankful for these and your other instructional videos. Such an inspiration! I'm halfway through the 8-bit stuff, and have finished this project too, with some modifications and additions. Merry Christmas! 😊🎄

  • @hypt0ny
    @hypt0ny 4 ปีที่แล้ว

    This has been an amazing project to follow, thank you for sharing

  • @toddp6104
    @toddp6104 4 ปีที่แล้ว +4

    Great that your keeping old school programming alive, using the KISS principle Keep It Simple Stupid😀 Love your work👊👍 You Rock👊👍

  • @markjones5973
    @markjones5973 4 ปีที่แล้ว +21

    Next video is probably one I would have thought you'd do a while back: Add a RAM chip so you can have a stack, and put most of that code into subroutines.

    • @RemcovanZuijlen
      @RemcovanZuijlen 4 ปีที่แล้ว +4

      I was thinking the same, why not using subroutines? But then I realized it needed a stack and therefore RAM :) well, he still has 32k unused address space. I like where this is leading to.

    • @urugulu1656
      @urugulu1656 4 ปีที่แล้ว

      oh thats why hes not using those... though you not really need a stack or ram to do that ...
      just store your program counter in a free register (i guess there is a b-register or something) then do all your subroutine-ey stuff and write the program counter back in software?!

    • @RemcovanZuijlen
      @RemcovanZuijlen 4 ปีที่แล้ว +3

      urugulu true. Though I am not sure if JSR/RTS could work like that. I should read up on it. My assumption is that it needs a block of 256 bytes at address $0100 it can read/write for the stack.

    • @markjones5973
      @markjones5973 4 ปีที่แล้ว +1

      @@urugulu1656 Nope. 6502 has three 8-bit registers: A, X, and Y. A subroutine like one to display a string would need to make use of A and at least one of X and Y. And, to get to the program counter, you would need to jump to a subroutine and pull it off the stack anyway.

    • @stamasd8500
      @stamasd8500 4 ปีที่แล้ว +4

      Too bad they never made the 6532 chip in a static CMOS version. If there had been one, it could have been used in this project instead of the 65C22 and it would provide the same 2 8-bit I/O ports, plus 128bytes of RAM which would be enough for a stack (plus a bonus timer). This way the number of components could be minimized by avoiding using a separate RAM chip. It's still doable to use a NMOS 6532, but you won't be able to stop the clock or run it slowly because that's not a static chip.

  • @WYO_Dirtbag
    @WYO_Dirtbag 4 ปีที่แล้ว

    I just got your kit for Christmas. I'm so excited to get started!

  • @JoesComputerMuseum
    @JoesComputerMuseum 4 ปีที่แล้ว

    Your dialog and exposition is so well done. You make me jealous, sir!

  • @TcG4mer
    @TcG4mer 4 ปีที่แล้ว +3

    I would love to see you use the video card you made and make an audio card to use with the 6502 computer. Also love your videos, they have been an enourmous inspiration in my journey in learning digital eletronics, thank you for sharing your work with us!

  • @Mr-Adamsky
    @Mr-Adamsky 4 ปีที่แล้ว +18

    Ben you must release this series faster because I’m starting my assembly course next semester as a part of my Electrical engineering program ;). Great video as always!

  • @vitaliimakarov6181
    @vitaliimakarov6181 ปีที่แล้ว

    Never thought that assembler is so fascinating language. Thank you Ben, you are a great teacher and inspiration for us.

  • @erygion
    @erygion 4 ปีที่แล้ว

    Thank you Mr. Eater! Great video and I'm learning so much, I'd like to get to the point of writing my own programs for this machine and you've setup a great foundation to do that. Thank you, I can't wait to do the next video.

  • @among-us-99999
    @among-us-99999 4 ปีที่แล้ว +3

    I would love to see some proof-of-concept coprocessor stuff in your explanation/building style!

  • @ndookie
    @ndookie 4 ปีที่แล้ว +13

    What a nice Christmas gift!

  • @WiihawkPL
    @WiihawkPL 4 ปีที่แล้ว

    this is by far the best christmas present i've gotten so far

  • @paulmaydaynight9925
    @paulmaydaynight9925 4 ปีที่แล้ว

    very nice and clear tutorial decrypting and understanding the datasheet as always ben, thank you

  • @KuraIthys
    @KuraIthys 4 ปีที่แล้ว +31

    I love the fact you're selling kits on your site.
    Not likely to get the 6502 one.
    But the variable timer seems very useful.
    And I need a programmer - last time I tried to get one all I got was a usb cable. XD

    • @OrangeC7
      @OrangeC7 4 ปีที่แล้ว +8

      Man that sucks
      you tried hiring a programmer and all that showed up was some random usb cable

  • @jimidante
    @jimidante 4 ปีที่แล้ว +12

    Nothing is on fire that is also good 😂

  • @iainmacneill2985
    @iainmacneill2985 3 ปีที่แล้ว +2

    I would love to see an instructional video on how you cut the jumper wires so precisely. Great videos! Just ordered your 6501 kit.

  • @Mikiolo01
    @Mikiolo01 4 ปีที่แล้ว +1

    This video is today's best gift so far ❤️

  • @TimothyChapman
    @TimothyChapman 4 ปีที่แล้ว +4

    Great video as usual. Also, I think I'll try putting your 8-bit breadboard computer on an FPGA now that I have one.

  • @mr.cobalt6695
    @mr.cobalt6695 4 ปีที่แล้ว +9

    Hmm to make the code easier to read and more efficient (spacewise at least), you can just make a new label that takes data input (either from memory or from a register), and then prints it on the screen.
    .printc:
    ; print code
    ; set a to "H"
    jmp .printc
    ; etc
    And then you can make a loop that iterates over some memory and passes it to printc
    And you can define a string in memory to be read by the loop
    I know in nasm you would use db but probably not in vasm

    • @SimonBuchanNz
      @SimonBuchanNz 4 ปีที่แล้ว +1

      to iterate you need a register to put the index/address in, which is presumably the "extra hardware" Ben is talking about.

    • @SimonBuchanNz
      @SimonBuchanNz 4 ปีที่แล้ว

      worse, there isn't anything you can put at the end of .printc, without a stack, which needs RAM, which could also be what he's referring to (but that needs a stack pointer, which is another register anyways)

    • @artit91
      @artit91 4 ปีที่แล้ว +4

      Simon Buchan he has registers it's part of the cpu but he has no stack currently so if the sp changes nothing really happens so he can't call procedures

    • @mr.cobalt6695
      @mr.cobalt6695 4 ปีที่แล้ว

      Doesn't he already have the ram chip and ROM chip mapped to different parts of memory? Or do I just not pay enough attention lol

    • @SimonBuchanNz
      @SimonBuchanNz 4 ปีที่แล้ว +1

      @@mr.cobalt6695 ROM only, even if it's programmable, and a two byte IO buffer.

  • @kimbring2727
    @kimbring2727 2 ปีที่แล้ว +1

    Yeah, I finally write the HelloWorld to my LCD. Thank you again for your instruction.

  • @bomberoo243
    @bomberoo243 4 ปีที่แล้ว +1

    I guess time and repetition works because I am actually starting to understand most (or some) of the content now. Thanks for these walk throughs! I'll continue to watch into the new year and beyond buddy!

  • @chainedlupine
    @chainedlupine 4 ปีที่แล้ว +10

    RIP, Chuck Peddle.

  • @blar2112
    @blar2112 4 ปีที่แล้ว +19

    The chip in the LCD display is more powerful than the computer you made, isn it?

    • @jasonlee3247
      @jasonlee3247 4 ปีที่แล้ว +1

      Lucas Viñas really?

  • @martinherbert699
    @martinherbert699 4 ปีที่แล้ว

    Merry Christmas Ben! Thank you for this wonderful Christmas present! I'm thoroughly enjoying following this series and learning so much along the way. Keep up the amazing work you are doing!
    I didn't quite catch how the data is fed into the display, but I watched again and found it at 18:30.
    I stopped what I was doing as I noticed the notification just to watch this video!

  • @declanwilcoxon1123
    @declanwilcoxon1123 2 ปีที่แล้ว

    This channel has kept my grade afloat in digital electronics

  • @alexchitic8816
    @alexchitic8816 4 ปีที่แล้ว +5

    Instead of manualy reseting the 65c02, why not use a 555 timer to hold the reset line for about 1 or 2 seconds?

  • @willsharp9809
    @willsharp9809 4 ปีที่แล้ว +7

    Why do you do a bitwise OR with the Register Select bit and the Enable bit? Won't the Register Select bit already be 1 during that operation?
    Edit:. Never mind I understand, didn't realize the Enable bit would turn the Register Select bit off.
    Love your videos,
    Cheers

    • @renakunisaki
      @renakunisaki 4 ปีที่แล้ว

      LDA is replacing the value of A, so you need it to be RS, then both RS and E, then only RS again. Likewise, STA is setting all 8 bits of the output to the value of A.

    • @davidmcgill1000
      @davidmcgill1000 4 ปีที่แล้ว

      Should be able to load the data into X or Y and do binary math on A to improve the code.

  • @Anthony-ym6iz
    @Anthony-ym6iz 4 ปีที่แล้ว +2

    Happy Christmas mate from a big fan in the UK!! Thanks for all your amazing work!!!

  • @johnnywolinski8639
    @johnnywolinski8639 4 ปีที่แล้ว

    Thanks for making your videos even on Christmas Eve, you're a hero to a lot of people. Without you, I probably wouldn't have finished my ALU until after I start college.

  • @lexibigcheese
    @lexibigcheese 4 ปีที่แล้ว +6

    Lads, he's getting ram and making a stack (and maybe ram in the zeropage for pointers and stuff!)

  • @ownpj
    @ownpj 4 ปีที่แล้ว +3

    Why not use the 6522 handshake pins for toggling the E pin automatically?

  • @caffeinatedinsanity2324
    @caffeinatedinsanity2324 3 ปีที่แล้ว

    This really helps me understand stuff like how microcontrollers work

  • @FilterYT
    @FilterYT 4 ปีที่แล้ว

    Thanks Ben, you are an amazing communicator.

  • @rikschaaf
    @rikschaaf 4 ปีที่แล้ว +4

    Are you going to optimize the code using a loop or using a function?

    • @onedeadsaint
      @onedeadsaint 4 ปีที่แล้ว +3

      if you watch to the end he says he's doing that in the next video.

    • @bluerizlagirl
      @bluerizlagirl 4 ปีที่แล้ว

      There aren't really "functions" on the 6502! There is JSR (Jump to Subroutine), which stores a copy of the program counter on the stack and jumps to the address supplied; and there is RTS (ReTurn from Subroutine), which reads an address off the top of the stack and jumps to there. You can JSR to somewhere in memory, do a bunch of instructions and then RTS back to where you came from.
      Just to make it interesting, the PC is actually pointing to the last byte of the JSR instruction, which is the high byte of the address, when it gets copied onto the stack. But when that address gets copied back into the PC, the PC gets increased anyway at the end of every instruction, even RTS; so it's then correctly pointing to the (first byte of the) next instruction after the JSR.
      So what you might do is have a subroutine that pushes a copy of A onto the stack, and writes it to PORTB; then sets RS, R/W and toggles E on and off, trashing the original value of A; and lastly pulls A back off the top of the stack and does an RTS. Then we can just LDA with the character code and use a single JSR instruction to send it to the LCD module.
      And that's easily turned into a loop, using the X or Y index register.
      But first we need some RAM to implement a stack!

  • @mheermance
    @mheermance 4 ปีที่แล้ว +3

    If your clock rate is only a MHz or two, you don't need a 65C22 to interface one. Instead hook it up directly to the 6502 data bus, and use address decoding to memory map it.

  • @Missterpaja
    @Missterpaja ปีที่แล้ว +1

    Love the cable managment

  • @ericwalls7717
    @ericwalls7717 4 ปีที่แล้ว

    Thanks, Ben, just got my 6502 package! Can't wait for more content!

  • @atharvavaidya9245
    @atharvavaidya9245 4 ปีที่แล้ว +6

    I've never clicked on a notification faster

  • @bluerizlagirl
    @bluerizlagirl 4 ปีที่แล้ว +4

    Why didn't you write a JSR/RTS routine for sending an instruction, and another one for sending a character?

    • @bluerizlagirl
      @bluerizlagirl 4 ปีที่แล้ว +8

      Oh, never mind. There's no RAM yet, so you have no stack .....

    • @BenEater
      @BenEater  4 ปีที่แล้ว +12

      @@bluerizlagirl Shhh! Spoilers for the next video :)

    • @Loundre3
      @Loundre3 4 ปีที่แล้ว

      @@BenEater Best spoiler possible.
      Cannot wait for the next video :-)

    • @wich1
      @wich1 4 ปีที่แล้ว +2

      bluerizlagirl I wouldn’t even use subroutines, just create two macros for send instruction and data, use the instruction macro 3 times and loop over a string to send the actual message. No RAM needed, no subroutines needed.

    • @bluerizlagirl
      @bluerizlagirl 4 ปีที่แล้ว

      @oH well,lord! A macro is just a block of code you can insert over and over again. Instead of copying and pasting, you define a macro consisting of the code you want to copy and insert that wherever you want to paste it. The computer then copies it and pastes it for you, possibly even making substitutions.

  • @luismaocampo7866
    @luismaocampo7866 ปีที่แล้ว

    That stuff you do is amazing. I tried to watch and understant this videos before i got into college but now is when i get the idea

  • @belesiu
    @belesiu 4 ปีที่แล้ว

    Merry Christmas Ben. You have a nice, simple presentation style (thank you for leaving out the gratuitous background music and garish graphics) and a pleasant voice. I’ve been enjoying your videos all 2019 and I’m looking forward to 2020.

  • @mekafinchi
    @mekafinchi 4 ปีที่แล้ว +9

    As a programmer, watching you copy-paste code that should every obviously be a function was excruciatingly painful to watch

    • @dreamyrhodes
      @dreamyrhodes 4 ปีที่แล้ว +1

      But you do realize, that he like wants to explain how the display works and not how you write asm? He wants to show us, which bits go where.

    • @haraberu
      @haraberu 4 ปีที่แล้ว +3

      I thought the same thing at first... But you can't JSR (function call) without a stack to put the return address. Which means you need a RAM chip at address 0x0100-0x01FF.

    • @mekafinchi
      @mekafinchi 4 ปีที่แล้ว +1

      H x
      That’s something I was unaware of, thank you!

    • @mekafinchi
      @mekafinchi 4 ปีที่แล้ว +1

      Supertyp
      Yes, I am well aware of that. But supposing he was able to use JSR as H x had mentioned, he would still have to implement a part involving those bits, and still have to go into detail. A function would still have to set those bits up, and any way he wrote the code would enable such explanations.

    • @dreamyrhodes
      @dreamyrhodes 4 ปีที่แล้ว +1

      @@mekafinchi He says he's doing that in the next video.

  • @sofi7509
    @sofi7509 4 ปีที่แล้ว +12

    Anybody else had to watch this at 0.75 speed?

    • @Aragubas
      @Aragubas 4 ปีที่แล้ว

      why

    • @mariuzpl
      @mariuzpl 4 ปีที่แล้ว

      I have to watch at 2x because of my family at christmas dinner

    • @ukaszMarianszki
      @ukaszMarianszki 4 ปีที่แล้ว

      No

  • @TetriTek
    @TetriTek 4 ปีที่แล้ว

    Amazing, what perfect timing. I was going to try and work on one of these today!

  • @franklincerpico7702
    @franklincerpico7702 4 ปีที่แล้ว +1

    A Christmas eve gift!!! Thanks Ben!!

  • @genjii931
    @genjii931 4 ปีที่แล้ว

    A new video just in time - I got my kit today! Thanks, Ben!

  • @SlykeThePhoxenix
    @SlykeThePhoxenix 4 ปีที่แล้ว

    Been watching your stuff for a while. Just purchased the kit!

  • @hrnekbezucha
    @hrnekbezucha 4 ปีที่แล้ว

    Love you, man! I wish more people could explain stuff like you do.

  • @binface9
    @binface9 4 ปีที่แล้ว

    Really enjoying this series.

  • @jrioublanc
    @jrioublanc 4 ปีที่แล้ว +1

    Clear and efficient as usual, I like it. Thanks