Installing CC65

From Nesdev wiki
Jump to: navigation, search

An assembler is a program that translates assembly language source code into machine code. A commonly used assembler that produces machine code for 6502 CPUs is CA65, which is distributed as part of the CC65 package. These instructions tell how to install and run CA65 on Windows 2000 or Windows XP.

Configuring Windows

Windows is shipped with file name extensions hidden in Windows Explorer. This misfeature was originally intended to make Windows 95 look more like Mac OS 7.5, which did not use file name extensions. But hiding makes it easier to accidentally create a file name with two extensions. Worse yet, destructive software such as the ILOVEYOU worm (Wikipedia article) has shipped with two extensions: one to indicate to the operating system that the file is executable and one to fool the user into thinking that the file is not executable (and thus safe). The first thing we will do is turn on the display of file name extensions in Windows Explorer:

  1. Open Control Panel. (This may be in Start > Control Panel or Start > Settings > Control Panel.)
  2. In Windows XP, if "Pick a category" shows up at top center of the window, click "Switch to Classic View".
  3. Open Folder Options and activate the View pane.
  4. In the scrolling list of Advanced Options, turn make sure that "Hide extensions for known file types" is not checked.
  5. Press OK to put the change into effect.

Configuring 7-Zip

Windows 2000 does not come with software to extract files from PKZIP archives. Windows XP comes with a bare-bones archiver called Compressed Folders that can only handle PKZIP archives (.zip), not rar or 7z or tar or gz or bz2 files. The 7-Zip package can extract files from all of them, as well as add files to PKZIP and 7-Zip archives.

Downloading CC65

  1. Read the front page of CC65's web site.
  2. Scroll down to "Download". At the bottom of this section is a list of mirrors.
  3. Enter one of the mirrors, and download the and packages to your computer. (The ##### represents a version number, such as 2.11.0-1, which may change before you read this.) The cc65-win32 contains the CC65 package compiled for Windows, and cc65-doc contains the manual.
  4. Extract to a new folder.
  5. Open this folder and run the install.vbs file as an administrator to copy it to Program Files.
  6. Delete this folder.

Log out and log in to complete installation.

Building CC65 on Ubuntu (Linux)

Absolute easiest method:

Debian Hosting

Set up you repository there as it says on the homepage. Using software sources and import the gpg key. or add: deb stable contrib to your software sources list.

Download: KeyFile add to authentication sources.

Then: sudo apt-get install cc65

Done.! Enjoy.


Note: I'll add a link to the compile.txt in the docs at the cc65 site later. Note2: I must be really tired, I never even thought of just modifying the makefile. Note2: Ignore "Method 2". And I'll clean this up in the morning. Note3: If enough people want it and tell me so on the userpage, I'd be more than willing to upload a package somewhere.

Unzip the source, move that top-level folder somewhere; I just dragged it from the archive onto the Desktop. Open a terminal and get to your Desktop folder (or where ever you put it):

$ cd cc65-VERSION/make $ make -f make/gcc.mak

Now once that finishes, rename gcc.mak to makefile, then open it, and remove the text "make/" from line 37. If you don't want a particular executable installed (and also packaged), on line 134, remove the name of the program. If you're programming for the NES, chances are you don't need the C compiler, so you'd remove "cc65". Next, you'll need to rename the top-level make folder to the name of its parent folder, as checkinstall will otherwise use "make" as the name of the package. I did this by accident, and it took me a whole 15 minutes to force the reinstallation of the make utility and make sure the spurious/incorrectly named cc65 package was removed. After you remove the top-level make to the same as the parent, enter that newly renamed folder and run "sudo checkinstall". Give it a nice descriptive name, modify any other items you feel like, and hit enter. It should do its thing, install the program, and output a .deb package into the folder.

I did not use this method, so attempt it carefully. I used the below method which doesn't modify any files but it does copy the ENTIRE directory tree into itself, along with some more complex directory/file renaming.


Replace VERSION with the rest of the folder name after "cc65-". It doesn't take long to make the entire suite of programs. After you've built it, you could probably install by just saying "make -f make/gcc.mak install", and perhaps you'll want to (I didn't try this). Others, such as myself, want to make sure it can be removed. For this, we use the checkinstall program. The problem is, the installation runs a script file with a hardcoded path from the main directory to place each executable. While you could play with the makefile, I had success with a somewhat more hackish solution:

Rename the make directory to the same thing as the top level cc65 directory. Then, enter the directory you just renamed and create a folder called make. Put a copy of install-sh into this new make folder. Now copy all the folders except the recently renamed one INTO the recently renamed one. Then, rename gcc.mak to makefile and run "sudo checkinstall" from the directory that has makefile in it (Desktop/cc65-2.10.1/cc65-2.10.1 for example).