Forgot your password?
typodupeerror
Programming Education

Programming the Commodore 64: the Definitive Guide 245

Posted by timothy
from the you-kids-keep-off-my-xeriscaping dept.
Mirk writes "Back in 1985 it was possible to understand the whole computer, from the hardware up through device drivers and the kernel through to the high-level language that came burned into the ROMs (even if it was only Microsoft BASIC). The Reinvigorated Programmer revisits R. C. West's classic and exhaustive book Programming the Commodore 64 and laments the decline of that sort of comprehensive Deep Knowing."
This discussion has been archived. No new comments can be posted.

Programming the Commodore 64: the Definitive Guide

Comments Filter:
  • by tepples (727027) <tepples@nOSpAM.gmail.com> on Saturday March 13, 2010 @07:59PM (#31468030) Homepage Journal

    Here in 2010 it's not necessary to understand the whole computer

    Unless you want more throughput: manipulate more objects at once, serve more users at once, etc. If a Python program is spending most of its time in interpreter overhead, you may need to recode inner loops in C.

    Or unless you're programming for an 8-bit microcontroller roughly as powerful as a Commodore PET. Not all "computers" are as powerful as PCs or even smartphones.

  • by v1 (525388) on Saturday March 13, 2010 @08:03PM (#31468054) Homepage Journal

    Though my experience was on the Apple II not the Commodore. Little things like writing your own device drivers, drawing graphics via direct access to interlaces vram, (oh the maths!) direct read latch access to the floppy drives, writing hybrid assembly/BASIC apps. It was grand.

    It's downright depressing to compare my present-day knowledge of computers, classify myself as somewhere in the upper 2%, and still wish I knew a quarter as much (percentage-wise) about my current computer as I did about my //c.

    *sigh*

  • by Puff_Of_Hot_Air (995689) on Saturday March 13, 2010 @08:05PM (#31468078)

    Here in 2010 it's not necessary to understand the whole computer, from the hardware up through device drivers and the kernel through to the high-level language that came from your apt repositories.

    It wasn't necessary then either. The point is that you could. Now this is no longer possible. There are pros and cons to this, we can acheive more by building on the magical black boxes, but there was something deeply satisfying about knowing a device in such depth. The same can still be acheived in the embedded realm, however, and due to modern advances, it's cheaper and smaller than ever!

  • by ickleberry (864871) <web@pineapple.vg> on Saturday March 13, 2010 @08:05PM (#31468080) Homepage
    To know a computer from the ground up, as it were. Its not some long lost dream or anything, after all your average disposable Crapple Netbook with "clout computing" or Octocore Core i13 and a half is just a fancy C64 with more CPU instructions, more memory, more peripherals that runs faster.

    Its just that unless you start off at the low level, learning about transistors and that sort of shizzle and learning assembly language you probably will never bother to learn it. A lot of programmers now think about functions, objects and arrays as if they actually exists - not just a convenient way of presenting blocks of code and data in a way that makes it easy for you to understand. Fuck it, a lot of people fairly high up on the IT scene have no clue in the wide world about TCP or UDP but they sure as hell know how to write a 'Web App' using JSON and the latest Web 2.5 gimmick completely oblivious to any of the lower levels.

    The problem is when you have nearly everyone going for the latest abstraction layer, easy low hanging fruits (at the expense of efficiency and everything else - rabble rabble rabble) high level stuff there might be a day 2110 when they're still using HTTP + more abstraction layers but quantum computers aren't getting any faster for what they need and nobody knows knows any of the low-level stuff anymore. If you are the one kid on the block who knows how to write assembly in 2110 you'll be a rich man by 2111, just in time for the end of the world cause the Mayans were off by 100 years.
  • by GaryPatterson (852699) on Saturday March 13, 2010 @08:05PM (#31468082)

    It's lovely to remember what was, but not so great to forget what we have today.

    Sure, we generally don't know the whole widget from top to bottom, but it's a hell of a lot easier to get a program up and running. It's not just frameworks either - the choice of languages we have today beats the crappy BASIC we had then, or the assembly language tools we had.

    The first machine I knew inside-out was the ZX-Spectrum. While I like to remember it fondly, I would never want a return to those primitive times.

    It's a bit like object-oriented programming - we hide the details of an object and only deal with the interface. It's more scalable and leads to faster development.

  • Re:Frist psot! (Score:4, Insightful)

    by Nimey (114278) on Saturday March 13, 2010 @08:25PM (#31468214) Homepage Journal

    The Apple ][, clearly.

  • by tzanger (1575) on Saturday March 13, 2010 @09:36PM (#31468732) Homepage

    Today we have garbage collectiors in Java and that is why the C64 is completely outdated.

    Everyone who still writes code on the C64 instead of Java won't get a job.

    You probably don't even know the latest words.

    Oh, I don't know about that. There are thousands of embedded systems that need programming and require the kind of thorough knowledge of the hardware that you got from the old C64 days. There are more 8-, 16- and 32-bit systems without enough memory to run something like Java than there are PCs and higher class systems.

    Don't pooh-pooh the old ways. They're what's running your world.

  • by mindstrm (20013) on Saturday March 13, 2010 @09:48PM (#31468804)

    The deep knowledge is still there - the well is just a LOT deeper, and more complex.

    In the days of the C64 - it was reasonable for a skilled and/or curious programmer to get to the bottom of things and learn how everything worked, exactly. It was also potentially USEFUL for him to do this.... it was the only direction you could go, short of inventing a new language.

    So - today we still find deep knowledge out there - but it just not be as useful for even a very good programmer to go ALL the way down.

    Yes, a Java programmer should know more than just the surface - and more than just the patterns. He could also go deeper and understand the JVM implementation, and to a degree how it uses actual machine resources - but to suggest he needs to all the way down the rabbit hole is taking it a bit far.

    My point, I guess, is that there is no need to pine for the old days - nobody says you can't learn more and go deep, and those who do, tend to prosper.

  • Re:Indeed (Score:0, Insightful)

    by Anonymous Coward on Saturday March 13, 2010 @10:07PM (#31468944)

    blah blah blah

    Yet another wanker who doesn't realize that encapsulation and abstraction are IMPROVEMENTS.

    You want to know all the details. Fine. Go nuts. I don't need to re-invent the wheel. I would rather spend my time solving high level problems.

    The world works better when there are specialists doing things. It allows us to not have to divide our efforts a million different ways. I have no idea how a video card works (beyond the basics), and that's a good thing. Rather than studying video cards (and generalize) I was able to spend my time refining my specialty. I could be a shitty video card guy with shitty (my discipline) skills, or I could be a non-video-card guy with great (my specialty) skills. Which one do you think is more useful. I'll give you a hint: someone else can be really good at video cards. 2 complimentary specialists are always better than two competing generalists.

    Don't think so? Then tell me: did you build your own house? Your own car? No? Why not? Because someone else was better at it than you? How could that possibly be? BECAUSE THEY ARE A SPECIALIST.

    The world doesn't need 4 billion people with a basic skill set to do everything. It needs specialists who can excel. This is one of the fundamental concepts of capitalism.

    But my words are wasted here. No doubt modded as "troll" for pointing out the obvious.

  • by Anonymous Coward on Sunday March 14, 2010 @01:58AM (#31470150)

    So there was some truth to that old Commodore TV commercial after all.

    The kid with the C64 ended up driving the train.

  • Re:Frist psot! (Score:2, Insightful)

    by maxwell demon (590494) on Sunday March 14, 2010 @06:38AM (#31471116) Journal

    Well, at least ZX BASIC was the best BASIC I've ever seen. In which other BASIC could you put Formulas in strings and evaluate them at runtime, without writing a specialized formula interpreter yourself?

  • by v1 (525388) on Sunday March 14, 2010 @06:51PM (#31475576) Homepage Journal

    We're using "yesterday's terminology" here. For the purposes of computer app size, LoC is Lines of Code, not Libraries of Congress.

  • Re:Indeed (Score:3, Insightful)

    by exomondo (1725132) on Sunday March 14, 2010 @08:28PM (#31476322)

    And what do they do with it? Program? Nope. They learn their friends on FaceBook, not programming. They play games, not write them. They pirate music, not create it.

    Computers used to be primarily for those interested in computers, now they are exactly what they were designed to be, a tool to get things done. There are probably just as many - if not more - young tinkerers and hobbyist programmers, but the computer userbase has grown phenomenally since the old C64 days such that the percentage of that userbase is much lower. The people who use them simply for facebook, games and pirating music are likely not the sort of people who would write fast loaders and the like anyway.

Programmers do it bit by bit.

Working...