OLED display on a 6502 Single Board Computer using i2c

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 ก.ย. 2024
  • 6502 assembly in the sun and getting the SSD1306 0.96" OLED display on my 6502 based Single Board Computer Arduino clone, the 65uino, to display some real text!
    First I have some interesting personal news, then I go through how the display supposedly works and then we dive in to writing some super efficient 6502 assembly code to drive a display that a 6502 was never meant to have any business driving.
    The previous video, where I write the i2c driver routines and explain a bit about how the 65uino Arduino clone evolved from the 6502 Single Breadboard Computer is here:
    • I²C on a 6502 Single B...
    If you haven't seen it yet, I suggest you check out the video about my "Single Breadboard Computer"
    • A 6502 Based Computer ...
    In the video I also mention my 6502 Single Board Computer R1 and another video where I make a bootloader to upload code via the common nRF24l01+ modules.
    • A 6502 Single Board Co...
    • Wireless nRF24l01+ Boo...
    You can find the full project description on hackaday.io/pr...
    Source code and hardware files:
    github.com/And...
    (Includes spoiler code for next video!)
    commons.wikime...
    Jenn Durfey from Buffalo, NY, USA, CC BY 2.0 creativecommon..., via Wikimedia Commons
    commons.wikime...
    stiefkind, CC0, via Wikimedia Commons
    commons.wikime...
    Evan-Amos, Public domain, via Wikimedia Commons

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

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

    Congratulations on the Level Up Anders. Continue to really enjoy this series, looking forward to the next installment.

  • @carlo_geiss
    @carlo_geiss 6 หลายเดือนก่อน

    wonderful .... i love this easy assembler working form basics ... i want to make it too but i thought the ssd1306 libraries are to big for 6502 ... but now i knew it better ... thank you ....i still work with my old EMUF 232 boards .... i love it sooo much ... have a nice time ... greetings forn North-Sweden ... Carlo SA2KHG ...

    • @AndersNielsenAA
      @AndersNielsenAA  6 หลายเดือนก่อน

      Thanks for watching, Carlo! :)

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

    Majestic! And Congrats!

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

    Congratulations 🎉🎉🎉🎉

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

    That PCB layout looks wild! Nice video

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

    Maybe too late, but congrats on the wedding🎉

  • @JoseLopez-xu9qv
    @JoseLopez-xu9qv 11 หลายเดือนก่อน

    Excelente proyecto, gracias por compartir 🎉

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

    Congrats on leveling up! Instead of using xtmp, is it not more typical do a PHA, TYA, PHA, TXA, PHA on entry to subroutine then PLA, TAX, PLA, TAY, PLA, RET on exit from subroutine. This way all calls to subroutines preserve the A/Y/X registers on return. Of course if a register isn't used in a subroutine then no need to push/pop it from stack.

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

      It's always a tradeoff between speed, ROM and RAM space.. and laziness.
      In this case STA xtmp is 3 cycles + 2 bytes(ROM), whereas TXA PHA is 5 cycles + 2 bytes. So the former wins because it's faster and we don't need the subroutine to be reentrant :)

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

    Congratulations on the wedding

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

    Cool cool cool!
    It’s a shame we don’t have more RAM in this SBC to be able to load programs using a serial port and ditch constant fiddling with flash chip. It’s a nice challenge to fit your variables in 128 bytes but fitting code in that space does cripple one’s ability to have fun.

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

      128 bytes isn't much for code + variables, but you can do quite a lot with 100 bytes of code along with a bunch of generic subroutines in ROM. I'd certainly like to demo that before I start adding RAM :D

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

    I am curious when you didn't add the control characters like carriage return or newline (time around 10:18 in the video) How would the computer know how to enter or create a new line? Also you know someone is going to say play "Doom" on it. Congrats on your marriage!

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

      Thanks!
      Actually you're on to a core issue with running the SSD1306 via i2c :) Since it doesn't allow reads via i2c or SPI we can't check the current "cursor position" and since we don't use a framebuffer the 6507 has access to, we'll have to find other ways to keep track of the cursor position.
      That's also why I didn't have that part in the video I released today - the best I can come up with is to increment a counter every time we write a character to keep track of which page we're on.. And if we get a CR/NL we skip to the next page. It'll make it a bit slower but won't eat too much RAM.
      Gotta play 2D Doom on it :)

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

      @@AndersNielsenAA Come on you can't play "Doom" on it or can you? I enjoy your videos although I can only imagine how painful it is to constantly update the memory chip with new code. By the way is this a different project from the make "pong" on an old 386 machine? I was looking forward to adding ms-dos and making a newer version of the pong game.

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

      @viperjay1 I imagine the best "Doom" I can do for the 65uino is to port "Rogue" and call it "Doom 2D" :D
      Oh, that wasn't a 386! That was an 8088 PC XT - and next step on that project is to make the floppy drive controller. I'm afraid I'm confusing the TH-cam algorithm a bit with 6502 and 8088 content on the same channel, but seems crazy to make another just for that project.

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

    Hello. did the mole agree to let you program the 6502 in his area??

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

      I’m a member of 6502’s without borders - no permission needed

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

    What's Ukraine like as a honeymoon destination?

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

      Not quite that part of the former Soviet Union.