Commodore 64 Guides

I recently completed a personal project a long time in the making.

Having recently returned my Breadbin to perfect working order, I also wanted brand new copies of the C64 User’s Guide, and Programmer’s Reference Guide to complete the set.

I could have simply printed one of the scans of these guides from the internet but where is the fun in that? In truth, I have found all these scans somewhat disappointing - very often indistinct and not always complete. Instead, I did the only sensible option: I re-wrote them from scratch using my copies of the originals as source. I reconstructed every graphic (including front and back covers), every register map, every block diagram, every table and every paragraph to have a pristine final result. This took months. Literally.

Finally, after further weeks of proofing I had a couple of copies printed. Sadly (and this really annoyed me) the printing company limited spiral bound printing to 470 pages and the Reference Guide comes in at 504. I could have printed the User’s Guide spiral bound but as I wanted a matching set, hardback it was.

The PDF files I used for printing are below.

I want to extend my sincere thanks to the small army of amazing and eagle eyed people from all over the world who have sent both words of encouragement and who have reported errors. The ever improving condition of these guides is testament to your diligence and enthusiasm and I am very grateful to you.


  • The Programmer's Reference Guide I have rewritten is pretty much faithful, page for page, to the original. It does not contain the fold out Commodore 64 diagram at the rear of the original as that is beyond printing capabilities and the Quick Reference card is a separate PDF, which can be printed separately.
  • The User's Guide deviates slightly from the original page numbering - this is because I added a few elements such as an 8 pin A/V diagram missing from the original. If this bothers you, please don't download and use. Remember this was originally a personal project - for me alone. This leads nicely to styling:
  • I made some stylistic choices when I re-wrote the guides. I wanted to retain the look and feel of the originals but present them in a manner I liked. I've chosen fonts which are similar, but not identical, to the original. I've chosen certain line spacing and paragraph options which improve readability for me but which may not be to your taste. Again, I did what I thought looked good whilst still retaining all the information in basically the same place.
  • I may have missed something in my proof reading! It is entirely possible I have introduced inadvertent errors - please contact me if you find an error and I will make the correction (don't be offended if I do not reply directly - I get a lot of emails and it's not always possible to get back to everyone). Updates made to the guides are listed at the bottom of this page.
  • In both guides I have added PAL Oscillator Frequencies to the Musical Note Values appendix - the original English language guides only have NTSC values. My calculations for these PAL values differ from the PAL values printed in the German version of the User Guide. If someone wants to check my work, I have a simple C64 BASIC program which demonstrates exactly how I arrived at the PAL values in these guides, and contains all the calculations. I am happy for my logic to be checked and corrected.
Please check back periodically to ensure
you have the latest copy with errors fixed

Commodore 64 User's Guide
This version last updated 3rd February 2022 (See Errata at bottom of page)

Main Body Text PDF
Cover Graphic PDF

Commodore 64 Programmer's Reference Guide 
This version last updated 3rd August 2022 (See Errata at bottom of page)

Main Body Text PDF
Cover Graphic PDF

Quick Reference Card

Main PDF



I used to print my copies and was delighted with the results. Your mileage may vary and obviously I can't be responsible for them messing up. However, I've had a few books printed with them now and I've had no issues.

NB - different Print on Demand (POD) companies have different requirements and guidelines. I specifically designed these guidebooks to meet the guidelines outlined by lulu. If you choose to use another POD company you may well find these PDFs do not meet their criteria.

The process is reasonably straightforward if you have a lulu account: simply follow the instructions on the site to Start a Project and select "Print Book" from amongst the options:

Under "Select a Goal" select the option: "Print Your Book. Your book will be uploaded to your account and available only to you for purchasing copies in any quantity you desire."

Give your project a name and then press the "Design Your Project" button.

A new page will open.

Under "Interior File Upload" upload the PDF with the main body text.

This will take a few moments. When it is uploaded you will see some warnings:

Do not be alarmed. This is normal. I ignored these warnings and the final print I received was absolutely fine.

You then need to select the options for the book paper type, colour etc. This is important. I used:

It is imperative you select 80# Coated White paper or else the cover file provided will not work (the weight of the paper determines thickness of the spine and the cover has been designed specifically for these settings.)

Under "Design Your Cover" upload the cover graphic PDF.

And that pretty much concludes the process. You can then preview the book then step through the final options and confirm specifications to order it.

Simply repeat this process as required for different books.


As more people view these guides, errors will be found (and hopefully) reported. Below is a list of errors found and fixed so far.

Programmer's Reference Guide:

3rd August 2022 - (Revision R220803-01 )
  • Pxi - "STOCK FOL1O" corrected to "STOCK FOLIO"
  • P235 - Erroneous asterisk removed from No. of cycles of (Indirect),Y in the AND table.

20th July 2022 - (Revision R220720-01 )
  • P153 - BASIC program line 20 “POKE2030,13” corrected to “POKE2040,13”
  • P153 - BASIC program line 50 “POKEV+31,1” corrected to “POKEV+21,1”

26th May 2022 - (Revision R220526-01 )
  • P309 - "POKE55,1" corrected to  "POKE55,L" and "POKE5110" corrected to "POKE51,0" and "POKE5510" corrected to "POKE55,0"

18th April 2022 - (Revision R220418-01 )
  • P395 - "BUTTON B'LP" corrected to "BUTTON B"

5th March 2022 - (Revision R220305-01 )
  • P380 - Spelling error "SWITH" corrected to "SWITCH"

21st February 2022 - (Revision R220221-01 )
  • P127 - Multi-Color Bitmap Mode PEEK corrected to "53265"

8th February 2022 - (Revision R220208-01 )
  • P101 - "or $DDOO HEX" corrected to "or $DD00 HEX"
3rd February 2022 - (Revision R220203-01 )
  • P235 to P253 - All references (ie. "Ref: x.x.x" numbers) checked and 13 incorrect references found and fixed. These now correctly reference the MCS6500 Microcomputer Family Programming Manual available here.
2nd February 2022 - (Revision R220202-01 )
  • P197 - Missing full stops added to "register. Decay" and "be. Release"
  • P235 - AND reference changed from to the correct
  • P236 - BCS "Add 2 if branch occurs to next page" changed to "Add 2 if branch occurs to different page"
  • P237 - BEQ "Add 2 if branch occurs to next page" changed to "Add 2 if branch occurs to different page"
  • P417 - Spelling of "Occurs" corrected; spelling of "Borrow" corrected; spelling of "Accumulator" corrected; spelling of "Effective" corrected.

25th January 2022 - 21:23 hrs (Revision R220125-01)

  • P157 - In figure 3-5 "Poke V-16,1" corrected to "POKE V+16,1"

18th December 2021 - 16:19 hrs (Revision R211218-01)
  • P235 - ADC, Absolute X No. of bytes corrected to 3
  • P236 - BCS, "branch occurs to different page" corrected to "branch occurs to next page"
  • P237 - BEQ, "Ref" corrected to "Ref"
  • P238 - BNE, "Z=1" corrected to "Z=0"
  • P240 - CLV, "Clear Interrupt Disable Bit" corrected to "Clear Overflow Flag"
  • P241 - CPX, "Absolute CPX OPER,X" corrected to "Absolute CPX OPER"
  • P241 - CPY, "Absolute CPY OPER,X" corrected to "Absolute CPY OPER"
  • P244 - JSR, "Absolute JSR (Oper)" corrected to "Absolute JSR Oper"
  • P245 - LDX, "Add 1 if" corrected to "Add 1 when"
  • P246 - LDY, "Add 1 if" corrected to "Add 1 when"
  • P246 - LDY, "Absolute,Y LDY Oper,Y" corrected to "Absolute,X LDY Oper,X"
  • P247 - ORA, "Add 1 if page boundary is crossed" corrected to "Add 1 on page crossing"
  • P248 - ROL, All OP CODES were incorrect. Now corrected
  • P249 - RTI, Number of cycles corrected from "1" to "6"
  • P250 - SBC, "Add 1 if" corrected to "Add 1 when"
  • P253 - TXS, "Ref: 7.12" corrected to "Ref 8.8"

11th December 2021 - 20:02 hrs (Revision R211211-01)

  • P428 - "DARA" corrected to "DATA"

7th December 2021 - 10:20 hrs (Revision R211207)

  • P264 - "This is the default BASIC memory map which provides BASIC 2.0 and 38K contiguous bytes of user RAM." corrected to "This map provides 60K bytes of RAM and I/O devices. The user must write his own I/O driver routines."

14th November 2021 - 20:37 hrs (Revision R211114)

  • Added  Revision Number to page ii
  • Page 242 - At DEC corrected "Y - 1 -> M" to "M - 1 -> M"
  • Page 252 - At STY corrected "X -> M" to "Y -> M"
  • Pages 239 to 240 Removed erroneous "Branch to" from operations

12th November 2021 - 11:23 hrs:

  • Page 278 - Missing parenthesis added to "(See READST"
  • Page 282 - Line spacing corrected between "LDA #15" and "JSR CLOSE"
  • Page 284 - "I/0" corrected to "I/O"
  • Page 284 - "SET DDR TO" corrected to "SET DDR TO 0"
  • Page 294 - "TXTTA B+1" corrected to "TXTTAB+1"
  • Page 294 - "<TXTTA" corrected to "<TXTTAB"
  • Page 302 - "$FFBA" corrected to "$FFB4"
  • Page 303 - Added missing .X to UDTIM Registers affected
  • Pages 274 to 306 - All A, X and Y registers now prefixed with period: ".A, .X, .Y"

11th November 2021 - 14:20 hrs:

  • Incorrect parenthesis on pages 245, 246 and 248 removed.

User's Guide

3rd February 2022 - (Revision R220203):
  • Pages 149 to 150 - Fixes to Jotto: Line 440 "IF T = L" corrected to "IF T>= 1"; Line 580 "RN" corrected to "M"; Line 680 "H+L" corrected to "H+1"
23rd January 2022 - 22:26hrs (Revision R220123):
  • Page 73 - "11 POKE v+21,8" corrected to "11 POKE v+21,28"
18th January 2022 - 18:29hrs (Revision R220118):
  • Page 149 - "KPRNMZ" corrected to "KPMMZ"
13th January 2022 - 20:54hrs (Revision R220113):
  • Page 149 - "D,JWJM" corrected to "DJWJM"

11th December 2021 - 03:30hrs (Revision R211211):
  • Added Revision Number to page ii
  • Page 112 - "line 10 handles that" corrected to "Line 20 handles that"

Popular Posts