C-64 Diehards Relive History
Sunfish writes "The Daily Herald has a short article about a Commodore Exposition held this past weekend in the Chicago area. 'This is probably the geekiest of the geekiest,' admitted conference organizer Dave Ross. How has the C-64 influenced computing in today's world? I'd like to know how many Slashdotters 'used' to own and code for one of these relics, and was it more fun than C++ or VB?" I hope 2003's event will get a wrap-up the way 2002 does on the Expo home page.
When I was a kid, I used to attend Michigan Atari Computer Enthusiast (MACE) meetings. These meetings were held in the early 80s in Southfield, Michigan -- and the organization was about 2000 strong! The meetings were huge, lots of great demos, a tape library, etc. Those were great times.
About four years ago I realized MACE still existed, and was having a meeting, again, in Southfield. I drove out to it -- figured somehow I should for old times sake. Boy, was it a sorry thing. About six people in a little room. These folks were using computers from 1984 for their everyday work. They seriously couldn't see why you would ever switch to another platform or OS. The discussion centered around "keeping relevant" in the modern computing environ with your Atari.
I remember leaving the meeting, very sad. Remember the machine for what it was, folks. It was a happy thing that did you well. Don't spoil it with some sort of anachronistic BS...
If you are having the need for a good blast of history... get your java c-64 emulation here.
http://www.dreamfabric.com/c64/
Davak
I wrote my first programs on the C64 and I enjoyed it a lot. In many ways, I think it was more fun back then as we didn't have all of these high-level libraries to rely on for everything from displaying graphics to making toast. Because the BASIC was relatively primitive, one had to rely on the infamous POKE (modify data at a memory location) and SYS (call machine language routine) statements for doing anything worthwhile. The memory was completely filled with fun stuff and unlike today's platforms, most stuff was at the same location in memory every time you powered on. The terrific sprite tutorial in the handbook taught me binary. All in all, I'm thankful I was "raised" on the C64 and I'd like to think I learned a lot from it.
It had a fantastic sound chip for its time, even put all arcade machines to shame until sample playing arcade machines were designed.
h ttp://www.remix64.com
The SID chip introduced many people into synth music. I have a bias for electronic music now as a result.
Some useful links:
http://remix.kwed.org
http://www.hardsid.com
There is a lot of fun - and I mean a *lot* - to be had in assembly programming those old 8bit boxes.
... but anyway, if you're a programmer, and you like code for the sake of code, reliving the 8-bit 80's is worth the mental fun factor ...
I still covet, and hack around on my Oric-1, although its easier to get most of the development work done with an emulator.
Does 'vi' and an emulator count for 'still fun', or do you have to actually use the box? Dunno, maybe thats a hardware war I shouldn't get involved in, heh heh
Some great new games out there too, I might add, are still being made for these systems. Very fun games!
; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
Instead, I cut my teeth on a TI 99/4A.. First it was BASIC and then that happy day when my daddy bought me EXTENDED BASIC for Christmas wooyeah! And the final joy was my 32k memory expansion unit along with the disk controller and disk drive. Made my system roughly 3' wide and I was smokin!
--
om Shanti
Considering that the BASIC interpreter inside the C64 was licensed from Microsoft, I suppose that the C64 is actually a relative of Visual Basic.
o gr amming_language
http://en.wikipedia.org/wiki/Commodore_BASIC_pr
Slashdot: come for the pedantry, stay for the condescension.
I definitely enjoyed coding for the c64 more than for any modern platform. It only really compares to old school DOS programming, and the limitations of that environment means even that really didn't compare.
1) The C64 hardware was pretty much the same for every machine. This means that whatever neat hack you'd come up with, and believe me, there's a lot of them, it would work on just about any machine.
2) The system was relatively simple, so you could understand it without thousands of pages of reading.
3) If you didn't like something, be it BASIC, the Kernal, or anything else, it was a simple job to flip out the ROM and replace it in the underlying RAM with whatever you'd want.
4) While the graphics weren't great, it's better than most other systems at the time. The sound was almost certainly a cut above, too.
5) The C64 was extremely well documented, by amateurs, for amateurs. The documentation you'd find on it, and there was plenty, was easy to understand and chances are, if you wanted to know how to do something, someone had wrote an article or a few on exactly that. I still have well over a hundred books on C64 programming on a shelf. I haven't used them in awhile, but they're there. They cover just about every topic in programming you'd ever want. Oh, and the development tools for the C64 were inepensive. Just copy one of the free assemblers from someone else. Many flavors of development tools were freely available.
Simply put, it's a programmer's dream.
Help me. I've been modbombed by a few people with entirely too much time on their hands.
I made my nerd bones on a c64. Ran my first BBS, wrote my first BBS, learned 6502 machine lanaguage, all before the age of 15.
Learned to realign a 1541 disk drive. Learned to solder in reset switches, waited the longest 4-6 weeks of my life for my Action Reply Mk 5 Professional, only to replace it with a Super Snap Shot 7 a month later. First A/D converter (Covox Voice Master), first video scanner, first stolen long distance phone call.
For better or for worse, no piece of technology has had a greater effect of my life. By the end I had two systems, three 1541 5.25" drives, and two 800k 3.5" drives. 15 year old bliss.
My Dad bought me one for Christmas the first year they came out. Sears sold them through their catalog. In January, on my birthday, he bought me the 1541 disk drive. I wrote my first program, dialed into my first network and played lots of games on the C-64. It was all very natural to me. Having it made me realize that I was different than other kids. I wasn't strong, I wasn't fast but I was smart, very smart.
Many years later, I look back on the C-64 with fond memories. I'm a college graduate now (phi beta kappa) from VT, and my career is centered around maintaining/developing computers and networks. Much of what I have learned about computers I attribute to the C-64.
I learned to read and write code parallel with learning to read and write english. I had no disk drive, there was no local source for software. I had to type them in out of Power Play and Compute! magazine's.
/bin/sh prompt with a nightmare of dependencies to get simple perl scripts running. PETBasic was a huge leg-up for my coding skills.
Eventually I was tracing the program flow before typing it it, picking out superflous routines (I was lazy, wouldnt type 4 pages of carefully formatted print statements for a goofy instructions scene).
I eventually moved on to compilers and assembler (Blitz! basic kicked ass) on it. I held on to it until the bitter end.
It made a huge impression on my employer during the interview. I told him I've been programming literally as long as I can remember, on my C64 as a kid. The stuff is second nature to me now.
I wonder what kids today will do, without that advantage. What's easy to hack with, program, and understand for my kids?
I mean, an 8 year old at a
I don't need no instructions to know how to rock!!!!
I originally got the Commodore Plus/4, a computer that would have been a slightly enhanced C64 except... no backwards compatibility. So, wanting to use my computer, but not being able to run games on it, I got into programming. I later got a C64 too, which was a much better gaming box, but even more difficult for programming than the Plus/4 was.
A few items to give you a feel for what programming the C64 was like...
You could program in BASIC, Assembly, or get a third party compiler of some kind. BASIC was by far the most approachable of these for the newbie. The BASIC interpreter was in ROM, so as soon as you turn on the computer, you could just start typing in code. The downside to it being in ROM, however, is that you are stuck with that version of the language.
Being interpreted, Commodore BASIC was pretty slow stuff. For anything where execution speed makes a difference (like a game), Assembly was the way to go... the 1 MHz CPU didn't really handle the overhead of an interpreter well.
Commodore BASIC programs were horridly unstructured. GOTO everywhere, dependent on line numbers (and yet lacking a command to renumber your program if you run out of numbers). BASIC had the usual PRINT, IF .. THEN, and such, but doing anything nontrivial required using POKE (write directly to memory) and PEEK (read directly from memory) to access magic locations in memory. You could write directly to the screen buffer or color palatte, for instance as well as other more obscure locations. There was also a SYS command to execute machine code starting at a specified address, which was used for kernel system calls or jumping to ml subroutines.
While the Plus/4 had BASIC commands for things like drawing lines on the screen or making music, the C64 did not. Get used to the PEEK/POKE/SYS stuff described above if you want your program to do anything like that.
The floppy drive, while interesting in that it had a CPU of comparable power to the main computer, was notoriously slow. Whereas with computers these days temp files, swap space, running commands from a disk, and such are ubiquitous things, on the Commodore, I/O had to be kept to a minimum or you could forget about any kind of speed. The Unix "everything is a file" philosophy wouldn't have worked too well on this platform.
This wonderful Commodore BASIC was written by a then little-known company named Microsoft.
Of course, my primary objective for my C-64 was to gather and play games. That meant a 1541 5.25" floppy drive. That was the loudest, slowest piece of computer equipment ever manufactured. If I could manually scribe the bits on the disk with a writing utensil while reading the data from screen, I would beat that 1541.
The quest for games also meant BBS searches, wardialing, etc. Then I discovered MCI codes. Soon I was dialing BBSs in New York, Arkansas, Chicago. All of the country. I started by making printouts, but then I quickly remembered the numbers. Ever since, phone numbers have always stuck in my head. I remember my home phone number from every place I've lived since those days. Twenty years and probably fifteen different residences.
Of course, the FBI paid me a visit. That ended that. But I had a nice collection of games before it was all said and done, and the IBM PC and its clones had become the standard.
Beach Head. Raid Over Moscow. Infiltrator. Fourth & Inches. Microleague Baseball. Karateka. Ultima I, II, III, and IV. One-on-One. Flight Simulator. Just to name a few. I loved that beige box with a keyboard.
I wrote Logo for the Commodore-64 (and incidentally the Commodore 264 -- 50,000 ROM cartridges sitting in a warehouse) and the very short-lived Commodore-16, based on work we did at the MIT Logo laboratory for the Apple II and others. I needed a lot of page 0 registers, and had no need for basic, but I did need the disk to work, so I got on a plane and went to King of Prussia, PA and met with some nice folks at Commodore, and they gave me ROM listings on green paper, and I carefully checked each address to see if it was used.
.OPTION "FORWARD 1 would let you control the line algorithm, that kind of thing (not sure if that made it into the release.) I documented it with a quote from The Firesign Theatre's "I Think We're All Bozos On This Bus:" "Sometimes the options controlled by .OPTION are only loosely related to the primtives used, but there they are," which was inspired by "Living in the future is a little like having bees in your head, but there they are." The French translation of the manual was particularly amuzing!
They brought in the 3 guys who developed the SID and VIC chips and let us ask them questions, but wouldn't tell us their names, for fear of poaching. It was kinda humerous.
When I later had trouble debugging some interrupt routines, they made a special 6510 chip for me, since they owned the fab MOS Techology that made the chips (the 6510 is a 6502 with 8-bit IO at location 0 and 1, which was a big pain for Logo since we used to be carefree about taking CAR and CDR of NIL internally...took me a month to root those out). The special chip had an extra pin that said whether the chip was fetching I or D, and then we bought a Nicolet-Paratronics 16-channel logic analyzer, and Commodore supplied us with a PET and a Basic program to run it. You clipped the logic analyzer onto the chip, ran the PET program, and said for example "Start looking when location 64 is written". The cool thing was that since the logic analyzer was always watching the data, and the PET did the analysis, you could set a breakpoint up to something like 256 instructions before your condition happened. That was the world's coolest debugger (and I've used them all from, ITS HACTRN to Lisp Machines to Scheme).
We asked for a feature to be put in the VIC chip to let you do splitscreen graphics/text mode, kinda like in the Apple II. The VIC guy said it could be done with an interrupt routine. I told him I didn't want any screen jitter, and he assured me it would work fine. It did, except in "doublecolor" mode, and the boundary between the two modes shifted. So I hacked around it a bit with some NOPS and got it mostly stable, and did what any normal programmer would do: I documented it as a feature, and called it the "Doublecolor Status Line" in the index and said, "This is normal and should be no cause for concern."
There was also a ".OPTION" command that was a controlled equivalent to PEEK and POKE described elsewhere in Basic, and it let me put in hack features that were cheap to add. So
The thing was just terrible - a big centrally-mounted TV flashing day glow colors, ostensibily to get the attention of people in line, and little synthesized "ding" sounds and all. But I guess it worked, so it's still being used.
Slightly OT but...
Different code I wrote at UCI, probably about 1987, is still being used to print the quarterly Schedule of Classes booklet - complete with the last "graphic design" they bought from me in like 1988, coded directly in PostScript. Un-freaking-believable.
So the longest-lasting contributions to the world I ever made was when I was a part-time $12/hr UCI employee, and not at any of the startups or big companies I worked for after that. Hmmm. So it goes I guess...
Commodore 64 is easily the most fun computer system I've ever had. That's why I have two of them. =) The games were great, some of the apps bended the boundaries of the hardware, and the SID music is still the best thing imaginable.
Well, in retrospect, I have to say C64 programming - in BASIC, that is - wasn't as much fun as modern languages. In definite contrast, I bet 64 assembler coding is a lot of fun though, even on this day and age.
Sure, it was fun back in the day when I didn't know much of the possibilities. What they say about BASIC rotting the brain is true - When I finally used PCs all day long, I had some trouble adjusting to TurboPascal and C, but all that I ultimately needed was a single zen moment...
I never made that complex programs because the BASIC thing is actually quite limited.
The most complex thing I ever did was a multi-user operating system / bulletin board thing I made in early 90s. All in BASIC. Never had multitasking or dial-in system, though. Pretty frosty in retrospect, I suppose.
This year, I tried coding something real, but all this modern stuff - like getting used to function arguments - made me write some pretty hideous code. Ugh. Not to even mention that the slowness of the language started to become a problem. I think I'll do my law-mandated Tetris clone on PC in C++ instead of completing my DogSlowTris on C64 BASIC!
More recently, I've tried to learn 6502 assembler - it definitely seems far more fun way to program that thing. Especially with a cross compiler and emulator.
I don't have as much fun with my computers as I did with my Commodore. I splurged for a C=128 (which had the C=64 mode) with my paper route money, and kept it until I got my first Mac in 1988. It was cool, then, to run "kind of IBM stuff" like WordStar and TurboPascal in the CP/M mode.
Cocoa on the Mac and Delphi on the PC just aren't as fun.
--Jim (me)