Saturday 28 September 2013

C64 Coding - Part 1 - A Modern Day Coder's Prodding

One thing was certain from day one: no way was I going to code directly on a real (or emulated) Commodore 64.

The days of poking, peeking and hoping my tape/disk drive didn't just die on me are long since departed - and rightly so. Even the most basic PC operating system's tools often wipe the floor with anything that came with the old 8-bit computers.

I wanted a cross-assembler solution, just as I'd used for the ZX Spectrum some time before. What would I need for coding for a C64 on a modern PC?

Basic Requirements


There are some basic tools we will need to edit, assemble and run our C64 programs. I'd recommend:-
  • Notepad++ - Text Editor, has syntax highlighting for assembly files, free!
  • dasm - cross-assembler that supports 6502/6510 CPU instruction generation
  • VICE - C64 emulator
Naturally, you might have a preferred editor for source code, and by all means use it! However, for our purposes, Notepad++ will do just fine.

A 6502 Assembly Reference


Don't panic! You don't need to understand all of this immediately - but it will come in extremely handy later: a complete 6502 instruction reference.


Just keep it handy (i.e. bookmark it!) for when we need to discuss the details.

A Really Good C64 / VIC II Guide


I used this to learn the basics - and it rocks:


Also this:


So, in that case (you may be wondering) why blog about this at all?

Well...

Those are great links for anyone who ever dabbled in 8-bit machines in the past. But it occurred to me whilst reading much of the stuff that:

A lot of assumptions are made.


It makes sense, since those articles are aimed at enthusiasts. But I know at least one person who never tried this stuff before, but has an interest in playing about with it - perhaps a more comprehensive guide is required?

There is no cohesive "project" being built.


A great tactic when constructing a tutorial is to produce - over the course of all the units in said tutorial - a complete project, application or game, that pulls together all the ideas presented. Neither of these (still great!) introductions really do this.

Sometimes, clarity is lacking.


There were several moments when I read sections in those articles that I got lost. That is, I needed to constantly refer back to previous chapters, and read the passages again. This is not necessarily a bad thing in itself, but I've always found that learning coding techniques comes more naturally when you can simply refer to your own notes - or even better, code - to recap on what you have learned thus far.


So! I realised... perhaps I should record my own experience somewhere... Maybe... perhaps... in a blog?

Huzzah!

No comments:

Post a Comment