☣️🦠 #stayathome with C64 🦠☣️

All seasons are 30% off, until end of June.

The easiest way to start programming Commodore 64

Learn BASIC and 6502 Assembly with bite-sized video tutorials.
Binge-watch previous episodes today!

Season 11 - Sprites on the Border, Printing Numbers and Splitting the Screen

Here's what you will get

  • 9 videos (50+ minutes in total)
  • transcripts (13000+ words)
  • source code examples (10000+ LOC)
  • access to 64bitesVIP Facebook group, where you can get help
  • plenty of exercises to solve on your own
  • online streaming
  • download with no DRM
  • one time payment (no monthly/annual fees)
Buy Season 11 for just $19.99 $13.99

Includes 9 videos, detailed transcripts, source code examples and exercises.

See what others are saying!

I learned assembly the hard way, with only limited documentation. Although part of the fun is in discovering all these things yourself, I think such screencasts could have helped me in getting up to speed faster. They do contain some nice bits of information :)

- Paul Koller

Game Developer, Creator of C64anabalt, Super Bread Box and Micro Hexagon

64bites brings me closer to understanding a computer I learned to love long ago, and still do. More than anything, it is really fun to follow the lessons and I always look forward to the next episode with great anticipation. It is the best thing since chocolate.

- Sebastian Kostka

Online Marketing Wizard at MeMyselfAndUs

I enjoyed both narration and realisation.
Actually, I was really shocked to have so much fun watching a programming screencast!

- Robert Lapinski

CEO of Idea Head, Mastermind behind the Pixel Magazine

How much time did you spend playing games on your Commodore c64? 64bites is more than 8-bit childhood memories, its a way to keep your beloved C64 alive, let's make our own game with it.

- Andrzej Śliwa

Polyglot Programmer, Lead Developer at bonusbox GmbH

This is really cool. I don't know exactly how popular it will end up being, but there is always room online for things like this.

- Peter Cooper

Founder at Cooper Press, Chair of O'Reilly Fluent Conference

Having watched a few episodes, I reiterate my original position: sooooooo coool. And Michal have really done a top-notch job on writing, production, audio, everything.

- Avdi Grimm

Creator of the best selling programming screencast series - RubyTapas

All Episodes in this Season

Episode #099 - Split Screen

Many two-player games on Commodore 64 split the screen horizontally and present separate view for each player. Today we are going to do it ourselves. We are going to make two horizontal parts of the screen scroll independently of each other.

Episode #098 - Binary Coded Decimal

One of the pretty common tasks we encounter while creating a game is printing the score. It can also be surprisingly difficult. Especially if you need an efficient solution. Today we will learn how an underestimated feature of the 6510 processor - the binary coded decimal mode, can be used to update and print the score efficiently.

Episode #097 - Printing Bin & Hex Numbers II

In the previous episode, we've created pseudo commands that converted numbers into their binary and hexadecimal string representations. They will work fine in most cases when we need to either print the string directly to the screen or store them in the memory. But sometimes we might prefer to have print commands that would use the KERNAL's character output routine. This way we wouldn't need to care about the screen coordinates and have the number printed at the current cursor position.

Episode #096 - Printing Bin & Hex Numbers I

When programming Commodore 64 we are using different representations of numbers. Sometimes it is more convenient to use a plain old decimal version, especially when we need to use any arithmetic. But when we operate on specific bits of a number it is easier to use a binary representation. Memory addresses, on the other hand, are more natural to read as hexadecimal numbers. In the source code, we can easily change the representation of a number. But we don't have any built-in way of printing them on the screen. Today we will solve this problem.

Episode #095 - Safe Branching

Often in programming Commodore 64, we need accurate and compact delay loops. We usually create them using one of branching instructions. Once we introduce such loop, our code can become fragile, since branches can take one cycle more if the jump lands on a different page than the next instruction. And it can happen by accident if we add some code to before those instructions or if we relocate the program. This can lead to frustrating debugging sessions since the compiler doesn't warn us about this problem automatically. Today we will change that.

Episode #094 - Counting Cycles

Aren't you tired of counting cycles in your routines by hand? Looking up specifications of every single instruction gets old soon. It's especially hard if your code contains branches and loops. Not to mention page crossing. Wouldn't it be great to have the cycle-count computed automatically? In this tutorial, we are going to create a library. You'll be able to include it in any project. It will automatically compute how many cycles your routine takes. We won't need to look up specifications of every single instruction. We will also make sure the library works well by using Test Driven Development to create it.

Episode #093 - Sprites everywhere

Can we display more than 8 sprites on the screen with side borders open? Of course, we can! You'll learn how in less than eight minutes!

Episode #092 - Sprites on the border IV - Four on a bad line

In the previous episode, we've found a way to display sprite-zero while also having the side border open. In this video we will figure out if that's possible on a bad line.

Episode #091 - Sprites on the border III - Eight sprites

In this episode, we will learn how to display sprite zero while the side border is open. This allows us to draw all eight sprites on the top and the bottom part of the border where there are no bad lines.