Jim Butterfield: The Commodore Guru - An Interview


Copyright 1996, 1999 by Jim Lawless

Update: July 2, 2007

I just found out that Jim Butterfield passed away on June 29th after a long battle with cancer.

I grieve with the family and the legions of techies who looked upon Jim as a mentor via his articles and ongoing contact with the Commodore community.

Rest in peace, Mr. Butterfield.

This article originally appeared in Commodore Hacking #14.



My initial interest in the Commodore 64 computer began in 1983.  At the


time, my primary source of information pertaining to the C64 came from


Compute! and Compute!'s Gazette publications.  One author's name stood


from the rest; Jim Butterfield.





I used to turn to Jim's articles immediately when I managed to get my


hands on a new magazine.  Mr. Butterfield has the rare ability to


describe complex subjects in simple terms.





I'm certain that I'm not alone when I credit Jim with having taught me


a lot about the inner workings of the Commodore 64.  As important as


the specifics of writing code for the C64 was Jim's style.  He would


often write code that was readily portable to multiple CBM machines.


His code had longevity and purpose.  The solidity of his programs left


me with a lasting impression pertaining to how software should be


developed.





The following interview with Jim was conducted via e-mail.





Q: What was the first programming language that you learned?





A: In about 1963, an assembly language called COGENT for a computer that


few people have ever heard of: a Collins Radio C-8401. That was shortly


followed by work on an IBM 1401, which had a machine language that was


alphanumeric. (Honest! You could keypunch M/L directly!)





Q: Were numbers expressed in Base-36?





A: No. Decimal.





The basic machine had 1000 bytes (not 1K) of (7-bit) memory (core, not


RAM!) so addresses ranged from 000 to 999 (and were given in decimal, of


course). Expanded machines had 4K, then 16K ... the addresses were


slightly more complex in that case.





Thus, to move bytes from an area at, say address 123 to address 456 the


instruction would be M123456. I AM NOT MAKING THIS UP!!!!





Q: Did you guys have contests to spell out goofy words as part of a


program? (I know of a programmer who used to regularly use the return


code $0BAD to indicate a problem...)





A: No (the addresses mixed in with the op codes ruled that out), but you


could do fun things on a 1401 if the system manager wasn't looking ..


such as play music.





Q: What was the first computer that you owned?





A: Not counting the TUTAC-1, which was powered by rubber bands and was


more correctly a logic machine: The KIM-1, a single-board microcomputer


made by MOS Technologies, Inc., of Norristown PA. MOS Technologies was


subsequently acquired by Commodore.





Q: When did you first encounter a Commodore computer?





A: When Commodore acquired MOS Technologies, the computer that I had


owned for over a year became a Commodore computer. Subsequently, an


employee of MOS Technologies, Chuck Peddle, convinced Jack Tramiel of


Commodore that they should launch a personal computer called "The PET".


I got one of those not long after they started production.





Q: Did you have formal training in computer programming?





A: Yes, on that long-ago Collins C-8401. But this was more a process-


control machine; it didn't use of any the newfangled (at the time)


languages such as Fortran and Cobol. So my training was in machine


language/assembler.





Q: What was the first book that you wrote?





A: A couple of enthusiasts and I collaborated on a volume called "The


First Book of KIM", a book describing how to do things with the KIM-1


single board computer. That computer was powered by a 6502,by the way;


in fact the KIM-1 board itself was designed as a engineering prototype


for people who wanted to try out the chip.





Q: Was it similar to the Altair where you had to manually increment an


address-counter before you could throw the switches to set the byte at


that address?





A: No, the KIM-1 had an operating system in ROM. That's one of the


things that made all KIM users "equal" and able to share programs, while


the other early micro owners had quite a scattering of stuff.





Q: What COULD you do with a KIM-1?





A: Hey, watch it! That's like saying, "What could you do with a


Commodore 64"? Although the KIM-1 came with a hexadecimal keypad rather


than a keyboard, and output to a six-digit LED display, you could use


those to good advantage AND hook up extra stuff. Play music? Play


Blackjack? Hunt the Wumpus? Skeet shoot? Unless you had the budget for a


printer, you'd have a hard time doing an accounts receivable, of course.


But this is the 6502 we're talking about! And we all know it can do


ANYTHING!





Q: What was the last book that you wrote?





A: It's probably the revised version of "Machine Language For the


Commodore 64, 128, and Other Commodore Computers". In 1985 and 1986,


however, I did produce a "pocket diary" reference guide for Commodore 8-


bit computers.





Q: Have you ever written articles or books on subjects that are not


computer-related?





A: My first writing experience was a treatise on transistor theory,


published by Popular Electronics in August of 1959. Not much else.





Q: Did you write commercial software for any of the Commodore computers?





A: As a general rule, no. All my stuff is public domain. At one time, I


had written a simple spell-checking engine that was incorporated into a


word processing package for a while.





Q: SuperMon was a tool that I used daily when developing ML routines or


exploring the C64. What prompted you to write SuperMon?





A: In the early days of Commodore personal computers, there were quite a


few machine language monitors around. They were partly based on some


publicly published code by Steve Wozniak (of Apple!), and partly based


on the MOS Technology TIM monitor, from KIM-1 days.





Two variants of the basic monitor caught my eye: NewMon, which added


several useful features to the basic Machine Language Monitor; and


HiMon, which sited the monitor in upper memory where it wouldn't


conflict with BASIC programs. I decided to put the two together and


generate a self-relocating MLM. That was desirable in early PET/CBM


days, where some computers would come with 8K RAM, some with 16K, and


others with 32K; you couldn't assume where the top of memory would be.





In those days, almost every Commodore computer came with a small built-


in MLM, and the first Supermon was an add-on. Later, as Commodore


changed the style of the MLM packages they built into newer machines


such as the 128, I went back and modified those earlier versions so that


they would work the same across all platforms.





Q: Did you ever expand the mini-assembler in SuperMon into a full-blown


assembler development package?





A: No. I hustled Brad Templeton into writing PAL, so that there would be


an assembler available for those who needed it. There had been a few


assemblers around before that - Commodore had one, and another was the


MAE system - but I was sure that somebody like Brad could do better.





Q: Even Superman had to put up with Kryptonite. Describe your worst


experience as a software developer / technical writer.





A: My first publication of SuperMon in Compute! magazine had the wrong


end-of-address supplied (my fault). I got a LOT of mail and phone calls


on that one.





Q: I had heard a rumor pertaining to your software development habits


that indicated you would approach a given project with full force. You


would focus your undivided attention on it until it was complete. Is


this rumor accurate?





A: Possibly. If I have a project under way, it "follows me around" until


it's complete; I fret over it and can't put it away until all the pieces


are in place.





Q: If so, did you ever change this methodology?





A: Not to any great extent. A half-written program bugs me, and I won't


rest until it's finished.





I might, however, decide that I'm taking the wrong track, and scrap a


program completely in order to start over. This isn't a loss: the first


attempt can show you what's really wanted.





Q: Your articles made you seem a bit omniscient. You always had the


inside info on the newest CBM computers and always seemed to be able to


explain their complexities in a manner that would suggest that you had a


lot of time to study them. I don't know a whole lot about your


employment during the mid/late 80's. Were you affiliated with CBM? A


beta-tester?





A: I had many friends in Commodore Canada, but I never worked for the


company, although I did contract work for them on occasion.





The big problem was not getting information from Commodore; it was


learning to ignore most of it. Commodore was bubbling over with ideas


and plans that never came to fruition. There was no point in writing


about projects that never happened (the Commodore music box? the cash


register? the videotape/disk storage device?). I took the position:


"Don't tell me about it until it's a real product!".





Commodore Canada was an excellent source of information, and I relied on


them to keep me from straying too far into technical speculation.





Q: Did you use any high-level languages on CBM computers?





A: BASIC, of course. COMAL, a BASIC derivative language from Denmark,


was nicely constructed. Played around a little with C, but that language


doesn't fit comfortably into an 8-bit environment.





Q: What was your favorite computer that CBM produced?





A: I don't know that I have a single favorite. The early PET/CBM


machines were great "discovery" platforms, where we could investigate


these wonderful new computers. The advent of the VIC-20 and the


Commodore 64 brought color and sound, which added to the charm of these


home computers; but they paid a penalty in slow disk access and screen


width limitations. Today, perhaps the Commodore 128 ranks as the best,


or at least the computer with most general usability. But it wasn't


produced in quantities as great as some of the earlier machines, and so


the user community hasn't been quite as furious.





Q: What kind of home computer do you currently use?





A: C128 .. Amiga .. Pentium system. All three.





Q: Who were your influences as related to writing?





A: Nobody specific. Just tried to write it as I would say it.





Q: Who were your influences as related to programming?





A: I've worked with a lot of sharp programmers over the years. Not one I


can pick out especially.





Q: If you could relive the CBM glory years, would you do anything


differently?





A: I don't think so. On another path, I could have gone for big bucks;


but making money carries a responsibility to support and service, and


that would have taken the fun out of it.





Q: Is your current job computer-related?





A: I'm currently more or less retired.





Q: If you had not chosen a career in computing, what field of endeavor


would you most likely have pursued?





A: Before computers, I worked in electronics and telecommunications.





Q: What are your current hobbies?





A: Reading; travel; films; raising my daughter. (That's a hobby???)





Q: What sort of technical literature do you currently read?





A: Mostly reference material. Current magazines are heavy on the "what's


for sale" stream; to my mind, that's not the fun part of computing.





Q: Are you surprised that a sort of "CBM renaissance" has been taking


place the last few years ( ...availability of C64 emulators on multiple


platforms and such...the SuperCPU from CMD...).





A: It's a shame that Commodore wasn't able to/interested in keeping the


8-bit line going. It's good to see that is happening.





Surprised? A little. But enthusiasts and user groups have always had a


stronger effect than manufacturers are willing to admit.





Q: What is your opinion on the way consumer computing has evolved since


the inception of the early PET machines?





A: The average computer user today has a lot less fun than we still have


with the early machines. The industry message today is "Buy it and use


it, and then turn it off .. don't worry or think about how it all


works". That's sure a lot less fun for tinkerers.





Q: What words of wisdom would you care to impart on a new (or


revitalized) generation of CBM hackers?





A: Enjoy what you're doing! If it becomes drudgery, you're doing it


wrong!



Back to Jimbo's On-line Articles

Jimbo's Home Page