Jump to content
IGNORED

Commodore 64 Programming Books?


BillyHW

Recommended Posts

Hey folks,

 

I'm looking for (pdf scans preferably, of) Commodore 64 introductory programming books. I'd like to learn Basic, Assembly and machine code, starting with the basics and then working my way up to more advanced things.

 

I heard that there may be some good introductory books by some guy named Jim Butterfield (in the video below).

 

 

Does anyone have anything or can point me in the right direction? Thanks.

 

P.S. If anyone has any more video tutorials or whatnot too, please post links.

Edited by BillyHW
  • Like 1
Link to comment
Share on other sites

Love the vid! :love:

 

And yeah… better keep the user manual that's inside the box, 'cause you sure hell WILL need it!

 

Want to see what's on a disk? Or load a program? Not exactly intuitive. You'd think a disk drive that has its own microprocessor would have been a little easier to use. ;) :lol:

  • Like 1
Link to comment
Share on other sites

I'm looking for (pdf scans preferably, of) Commodore 64 introductory programming books. I'd like to learn Basic, Assembly and machine code, starting with the basics and then working my way up to more advanced things.

Here, have a link to Bombjack and the C64 books in particular... i've no idea what to recommend for a beginner since the one i'd usually point people towards isn't there, but i've heard reasonably good things about the Compute books.

 

Want to see what's on a disk? Or load a program? Not exactly intuitive.

Neither are the equivalent commands for other systems like DIR, LS or CAT; once you know them it all makes sense, but the same is true of LOAD"$",8 when you understand it.

  • Like 1
Link to comment
Share on other sites

BASIC V4 for later 40 column and all 80 column PETs have more advanced keywords for disk handling. In order to save ROM space, Commodore reverted to the older BASIC V2 with possibly a few bug fixes for the VIC-20 and C64. So it would've been possible to have CATALOG, DLOAD, PRINT DS$ etc on the home computers too, if Commodore had been willing to make them (at least the VIC) a bit more expensive. Then again how many customers would be interested to pay an additional $15-20 in order to have a slightly, but not very much better BASIC? Eventually those who needed could get a BASIC extention cartridge with far more useful commands for perhaps $40.

 

Me neither can vouch for any particular book. I'd think that the user manual with short examples + a book of listings to type in would be just as useful as a BASIC course. Once you get into assembly language, you might need a true book. You have one Butterfield book there, as well as a Dr Watson book that I'd think is fine - actually pretty much all of them probably are decent.

  • Like 1
Link to comment
Share on other sites

Neither are the equivalent commands for other systems like DIR, LS or CAT; once you know them it all makes sense, but the same is true of LOAD"$",8 when you understand it.

 

Huh? Talking intuitiveness here. DIR(ectory) makes sense. CAT(alog) makes sense. Forget what LS (line space? not) is supposed to be a derivative of, but clearly makes my point right now. ;)

 

LOAD"$",8 makes absolutely ZERO sense when calling a directory. Or looking into a disk.

 

Hey, I love the C64 platform, but let's not NOT call a spade a spade when it deserves to be called a spade. ;)

 

​LOAD"$",8… :rolling:

 

Of course you can get used to whatever… that's not the point. Not intuitive in the least. It's why there were FastLoad cartridges and JiffyDOS shortcuts to handle the idiotic DOS routines.

 

And then there's the "machine language" rows and columns we used to type into the C64 from Compute!. Yeah, that makes sense too, NOT!

 

post-13896-0-95723800-1450746274_thumb.jpg

Link to comment
Share on other sites

Here, have a link to Bombjack and the C64 books in particular... i've no idea what to recommend for a beginner since the one i'd usually point people towards isn't there, but i've heard reasonably good things about the Compute books.

 

 

Neither are the equivalent commands for other systems like DIR, LS or CAT; once you know them it all makes sense, but the same is true of LOAD"$",8 when you understand it.

 

Hey thanks for these links. Can anyone tell me which one(s) was(were) the manual(s) that came in the box when you bought a C64?

 

P.S. What else did you get in the box?

Edited by BillyHW
Link to comment
Share on other sites

I think I found the C64 user's manual(s):

 

http://www.bombjack.org/commodore/commodore/C64_Users_Manual.pdf

 

http://www.bombjack.org/commodore/commodore/C64_Users_Guide.pdf

 

http://www.bombjack.org/commodore/commodore/C64_Programmer's_Reference_Guide.pdf

 

 

Does anyone remember exactly what came in the box when you bought one?

 

Edit: Nevermind, the Jim Butterfield video I posted in the OP shows him unboxing it. It came with the Users Guide only, looks like.

Edited by BillyHW
Link to comment
Share on other sites

Here, have a link to Bombjack and the C64 books in particular... i've no idea what to recommend for a beginner since the one i'd usually point people towards isn't there, but i've heard reasonably good things about the Compute books.

 

 

Neither are the equivalent commands for other systems like DIR, LS or CAT; once you know them it all makes sense, but the same is true of LOAD"$",8 when you understand it.

 

BTW, what is the name/author of the book you said you'd recommend but isn't there?

Link to comment
Share on other sites

I believe ls is short for list directory contents, just like cp is short for copy files and directories or that rm is short for remove files or directories.

Regarding the dollar sign, I wonder if that is a principle that Commodore borrowed from another manufacturer, but I can't pinpoint which one it would be. Since BASIC V2 doesn't have a dedicated command to view a directory, the next best thing you could do was to ask the intelligent drive to compile one and send as a file, which is why you LOAD it into memory and then LIST to see it. The question then is what the syntax should be. You might say that LOAD"DIR",8 had made more sense, but on the other hand it had prevented you from making a file called DIR and also it would take more processing power of the drive to parse what the user is asking for - a regular file if it exists, or a generated listing. The dollar sign likely was so unique that people wouldn't mind not being able to name their own files in that way.

Actually you can have your own dollar file, and then use the extended syntax otherwise used with dual IEEE drives for the PET series. That means you load your file with LOAD"0:$",8 instead of LOAD"$0",8 (on the 1541, the 0 normally is implied as it is a single drive).

I'm not sure what is wrong with the hexadecimal listings, other than they're tedious to type in but that should be true for every computer of that generation, and would still be today if we didn't have Internet to download programs. Some computers had more or less advanced monitor programs where you can enter mnemonics in an assembly code listing instead, but generally it means more typing if you'll only going to type off a magazine listing anyway.

  • Like 1
Link to comment
Share on other sites

Huh? Talking intuitiveness here. DIR(ectory) makes sense. CAT(alog) makes sense. Forget what LS (line space? not) is supposed to be a derivative of, but clearly makes my point right now.

LS is short for "list" and comes from UNIX, which makes sense like DIR or CAT after you learn what they're contractions of and what they'll do, but not before; nobody ever sat down at a computer and thought "i need a list of files on this disk, i wonder what the command is" before randomly typing CAT, they'd have to read the manual for their particular machine first to know it's called a directory and DIR will display it. And that's before we start using modifiers with these commands, even something simple like DIR /W or LS -L isn't exactly obvious as such.

 

LOAD"$",8 makes absolutely ZERO sense when calling a directory. Or looking into a disk.

But it does make sense in the same way the others do once you understand it. LOAD just loads a file so that makes sense because you're loading data into memory when reading the directory and the ,8 is about as intuitive as A: or DF0: to identify the source device. The dollar sign is the "complicated" bit but is just a reserved character for the directory so it doesn't take much practical use to memorise in the same way DIR, CAT or LS with modifiers applied to them won't.

 

Doing things like deleting a file or formatting a disk are implemented terribly on the C64 but that's a different matter entirely and nobody in their right mind (or me for that matter) would argue otherwise.

 

And then there's the "machine language" rows and columns we used to type into the C64 from Compute!. Yeah, that makes sense too, NOT!

You've not seen hex dumps or DATA-based listings for other 8-bits...? That's not a C64 thing at all, that's an 8-bit machine code program in print thing and, if you learnt assembly language the hard way by hand assembling or spent a lot of time disassembling other people's code, those things actually start to make sense... i can see something like A9 00 8D 20 D0 and know it'll set the border colour to black for example.

  • Like 1
Link to comment
Share on other sites

BTW, what is the name/author of the book you said you'd recommend but isn't there?

Programming The Commodore 64 by Raeto Colin West, the VIC 20 equivalent i started out with is in that archive but i've never seen the C64 one online and it's one of the more common books that tend to come up when talking to European coders about how they got started.

Link to comment
Share on other sites

At least you can format a floppy disk with a C64 + 1541 without resorting to loading extra software or even buying a formatting program from a third party source. And yes, there have been examples of the latter (see DEC Rainbow). Even on MS-DOS or Acorn DFS/ADFS you need to load a program on a supplied floppy disk to format more disks. The same probably holds true for a lot of computers that load most of the DOS from disk. In that regard, the Commodore solution is much more elegant as you have the low level part of the DOS inside the drive at all times, and you just need to learn a little complex commands to access it. If only the "C" command for copying files would work across two daisy-chained floppy drives too, it had been very useful for those who could afford two drives. TBH I can't recall if it is possible to copy files between the two disk units in a dual IEEE drive, but I believe the answer is "no".

  • Like 1
Link to comment
Share on other sites

 

Hey thanks for these links. Can anyone tell me which one(s) was(were) the manual(s) that came in the box when you bought a C64?

 

P.S. What else did you get in the box?

My breadbin came with the User's Guide, but the Reference Guide was not included and I had to order it seperately. No idea about that User's Manual you linked to, I can't recall having ever seen it.

 

Other stuff in the box included a power supply and an RF-cable, that's all I remember.

Link to comment
Share on other sites

It is possible that on some markets, not even the user's guide was included. For instance, I have seen Swedish price lists as late as 1986 where the user's guide was sold separately. For a long while I thought that was a decision on behalf of the former distributor Datatronic/Handic, but even after Commodore themselves took over the distribution in 1985, the user's guide still seems to have been sold separately. Or perhaps they included the English printed version and it was the version translated to Swedish that cost extra, I'm not sure.

 

The Programmer's Reference Guide always was extra, I would think. Perhaps some resellers would bundle it in a special deal, but that was not intended.

 

Power supply, RF cable and mechanical TV/computer switch likely were the extra items in the box.

Link to comment
Share on other sites

The Programmer's Reference Guide always was extra, I would think. Perhaps some resellers would bundle it in a special deal, but that was not intended.

i've never seen the PRG bundled either, it's worth having as a reference but i wouldn't recommend it for the process of learning to program.

Link to comment
Share on other sites

What Billy might want in the long run are good memory maps. Perhaps not so much for BASIC, but certainly for assembler programming. While I've never used it myself, COMPUTE's book "Mapping the C64" (available on Bombjack) might be one of those books people still pay to have in paperback (or at least a download).

 

After checking the PDF, it turns out that Dr. Watson Computer Learning Series - Beginner's Assembly Language Programming for the CBM64 is the same book that I've got. I don't know how educational it is, but the memory maps in the appendix are very useful, in particular as they contain cross references between C64, VIC-20, PET V2 and PET V4. A few addresses are misaligned, I've noticed but generally it has been a valuable source to me for nearly 30 years so definitely worth a download once you get there.

Link to comment
Share on other sites

I've managed to figure out all the mappings except for three keys:

 

1. The left arrow in the top left corner of the original C64 keyboard

2. The SHIFT LOCK key

3. The RESTORE key

 

nbyhap.jpg

 

I've tried every key and I frankly don't think they are mapped to anything on the Mac keyboard. Does anyone else have this problem or know what's going on?

 

EDIT: Okay, so I've found the RESTORE key. It's on the Mac's F12 key, but you have to remove any Mac OS X assignments to this key first. I can live with that but I still haven't found the left arrow or the SHIFT LOCK key. These should really be assigned to the ~ key and caps lock key, respectively, but they're not.

Edited by BillyHW
Link to comment
Share on other sites

Okay, I updated from VICE 2.3 (Mac OS X Cocoa) to Vice 2.4 (Mac OS X Cocoa) and the left arrow seems to be mapped correctly now onto the ` key. (That's the one just to the left of the 1 key, as on the C64 keyboard.) Unfortunately though the upgrade to 2.4 appears to have broken the aspect ratio. Sigh. They say in the notes that they "fixed" the aspect ratio, but I'm not sure I believe them. They have so many different builds of VICE for so many different systems that maybe none of the developers even uses the Cocoa OS X version much. Still a great emulator though, and so much better than many other emulators I've used over the years.

 

So the only thin still not working is SHIFT LOCK, which isn't being mapped to Caps Lock for some strange reason. I'm going to try and edit the keymapping file myself to fix it.

Link to comment
Share on other sites

  • 2 weeks later...

Hey folks, thanks again for all these links to books. It's fantastic.

 

I've now worked through the C64 User Guide, though I had to skim over some of the sprite and sound sections for now. Neat stuff.

 

I'll probably be starting a programming thread and an emulator thread in addition to this one.

Link to comment
Share on other sites

  • 2 weeks later...

The link to Bombjack is an excellent source of manuals for all things Commodore. There is also:

https://archive.org/details/commodore_c64_manuals That you may have already found, and there's also:

http://www.commodore.ca/commodore-manuals/ And then there's also this site:

http://project64.c64.org/hw/c64.html There's a related site to Project64, that I can't find right this minute.

But, there are loads of good sites for our favorite computer these days.

 

BTW, I almost fell out of my chair with your "some guy named Jim Butterfield" comment starting this thread off.

Edited by motrucker
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...