Tuesday, February 4, 2014

My Commodore 64

Lately, I've been obsessed with the Commodore 64.  It all started when I read a fantastic little book that discussed a one line program from a variety of different angles.  After spending a couple hours with emulators running on my MacBook, I wanted to get my hands on the real thing.

My first computer was a Commodore 64.  I remember vividly the happiness I felt that night in December when my father came home with all those boxes.  He laid everything on the floor and we spent hours putting everything together.  All the manuals and documentation were in English and at that age (eight), I had yet to master the language.  This is probably the greatest gift I ever received from anyone.  Not only was the Commodore 64 a fun game system, it was my first introduction to computer programming.  I spent a lot of time deciphering the codes in the manuals and I made little games in BASIC.  Unfortunately, I never figured out how to save anything, so I had to input the code every time I wanted to play one of my games (again, the manuals were in a "foreign" language).

All this reminiscence eventually lead me to acquire two systems.  The first is an early model breadbin C64, just like the one I had as a kid.  I made some modifications to it:
  • I added an SD card reader to replace the bulky disk drive; 
  • I added some buttons to control the SD card reader; 
  • I installed JiffyDOS with a Kernel selector switch;
  • and I installed heat-sinks on most integrated circuits.  
I will use this unit to play games and to create my own programs.

Programming the C64 may seem like an odd idea (or a waste of time), but the 6502 CPU on which the C64's CPU is based is still being manufactured and seeing lots of use in certain applications.  Learning program in 6502 machine language may be a very worthwhile endeavour…  these chips are a lot cheaper then the micro-controller development boards available these days and, in some sense, a lot more powerful.

Also, the Commodore Basic language was ported to OS X, Windows and Linux as a powerful scripting language.  As such, it is an interesting alternative to other scripting languages and a nice way of recycling my old chops.

I also acquired a mint condition C64G.  This is a beautiful unit with a C64C motherboard in a creamy-white breadbin case.  I got this one specifically for musical purposes and I modified it in the following way:
  • I added a 1/4" audio output; 
  • I grounded the audio input to reduce noise; 
  • I installed an LCD screen;
  • I installed a power plug for the LCD screen;
  • I installed heat-sinks on most integrated circuits.
This C64 will live on a pedal board next various guitar pedals. I'll use MSSIAH's mono-synth program as a sound source to be modified by the guitar pedals.  For controller, I'll use my previously mentioned homemade midi guitar controller.  I'm also using a Raspberry Pi running Pure Data to process the midi signals from the guitar controller to the C64.  Here's the signal path I'm considering at this time:

1266867 575796905816004 674561434 o