Commodore 64 Assembly Programming Course

I just started a free Commodore 64 programming course on YouTube. It covers a lot of topics related to the C64. It’s also a complete tutorial for making a Commodore 64 game from scratch.

21 thoughts on “Commodore 64 Assembly Programming Course

    1. baardbi Post author

      Thank you. No. Unfortunately I didn’t think about GitHub when I made this course, but several code examples can be found on my Downloads page (including the complete test game).

      Reply
  1. Niclas

    Hi and thank you for a very good programming course.
    It seems like the download links for the course are broken?
    I’m mostly interested in the “Part 34 – Joes’s Crazy Adventure Source Code”, but when I click it, nothing happens. I tried two different browsers but couldn’t download.

    Reply
  2. Carsten

    Hey baardbi,

    This tutorial is fantastic!
    In the last decades every now and then I tried to put my hands on Assembly programming but always got frustrated very fast.
    This is the first time that I really begin too understand what’s going on inside the C64.
    I wish you would have taught me 40 years earlier!

    Thank you very much!

    Carsten from Germany

    Reply
  3. Richard Hodgson

    Hi, just been watching you vids for C64 and they are wonderful – perfect length and at the right level.
    I’ve tried to download the source code using the ‘download’ box that you have provided and nothing happens. I can download more recent source code for your C64 animation and C64 paint screen but not the ones that I want from your main tutorial. Is there a way of getting this code please.

    Reply
    1. baardbi Post author

      I’m glad to hear that you like the C64 videos. I have heard other people saying that the code doesn’t download. I know that in some cases Microsoft Edge blocks the download as a “virus” or something like that. If you click “Approve anyway” (or whatever it’s called in MS Edge) it should work. If you’re still having issues downloading, just copy the link in a comment here and I’ll take a look at it.

      Reply
  4. Michael Johnston

    Hi!

    I am so loving your series. I have ALS and have very little movement in my arms and legs. Your training gives me a reason to get up in the morning. I enjoy following along and typing in the code myself. This takes me along time but definitely helps with comprehension. Also really helps my debugging skills as I tend to make mistakes and have to go find them. Thank you again for all the thought and care you put into the videos.

    Reply
    1. baardbi Post author

      You’re very welcome. I’m really happy to hear that you enjoy the videos. Thank you for sharing your story and thanks for the feedback πŸ™‚

      Reply
  5. Carsten

    Hi!

    In room.library line 13 and 15 you load Room_LO,x and Room_HI,x to the accu and store it to ZP_ROOM_LO and ZP_ROOM_HI. But were did you define the address of Room_LO and Room_HI? I cannot find it either in any of variables nor in one of the constants files?

    Reply
  6. Adrian Paul Treacher

    Hi. I am really enjoying your tutorials. I find them easier to understand when compared to reading the books. However, Im on video 19. Everything is working fine but as soon as I import the Hud.bin file I get an error when I try to run the program which says:

    Error: In segment ‘Default’ the memoryblock ‘Charset Atrrib’ ($0e00-$0f3f) overlaps ‘Hud’ ($0f00-$0fbf)

    Is there something in the next video that fixes this please? I have followed you step by step until the hud.bin.
    Many thanks.

    Reply
    1. baardbi Post author

      Hello. Sorry I didn’t see your comment until now. I assume you are the same person who asked this question on YouTube, so hopefully you got your question answered there.

      Reply
  7. Adrian Paul Treacher

    Hey. Like I say I am learning so much from your videos and I am enjoyging the course. However, yes it is me from YouTube. So on, video 22 I said that the characters are not changing on my emulator like yours does. I have attached images of exactly what I have done. Importing charset.bin does not change the characters and importing charattrib just produces blue lines. At this point, I feel I cannot continue becuase something somewhere is not working and I dont want to continue on and later find there is something not working.

    pdf

    Reply
    1. baardbi Post author

      Hard to say why nothing happens. The code is correct. I guess it could have something to do with the binary file. Make sure you’re exporting this way:

      File – Import/Export – Binary – Export Character Set

      The file should be placed together with the main.asm file.

      But I see you’re using a multicolor charset. In order to do that bit 4 has to be set in $d016.

      // —– screen ram setup example —–

      BasicUpstart2(main)

      main:
      lda #%00011110 // screen ram: $0400 charset: $3800
      sta $d018 // screen memory setup

      lda #%11011000 // enable screen multicolor
      sta $d016

      lda #GREEN
      sta $d021 // set background color to green

      lda #WHITE
      sta $d022 // set extra color 1 to white
      lda #BLACK
      sta $d023 // set extra color 2 to black

      rts

      *=$3800 “charset”
      .import binary “charset.bin”

      Reply
  8. Adrian Paul Treacher

    Yeah I am doing everything the same way as you. Did you create your charset as multicolour first as I have exported the character set both multicolour and hi res text and it makes no difference.

    Reply

Leave a Reply to Michael Johnston Cancel reply

Your email address will not be published. Required fields are marked *

The maximum upload file size: 256 MB. You can upload: image, audio, video, document, spreadsheet, interactive, text, archive, code, other. Links to YouTube, Facebook, Twitter and other services inserted in the comment text will be automatically embedded. Drop file here