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.
It was the last computer I ever programmed that you could understand top to bottom. It was actually possible to know everything there is to know about it. It's amazing what you could do with such a simple computer. My watch is more complicated now.
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
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
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.
I remember spending hours typing in programs from Compute! magazine. On some machines the code was in BASIC. On the C64 it was often in HEX code. That's right. Someone would create assembly language games then publish then as HEX in the magazine. You'd spend hours typing and verifying long strings of HEX that was entered via a BASIC converter. At one point the magazine developed a checksumming feature to verify that your lines were entered properly, but before that it was a pain.
The C64 was one of the first machines I'd ever used to go online. The Atari/C=64 wars were pretty amusing (I had both though!). There were also hundreds of little demos that you could load. Almost all of them took advantage of quirks of the hardware -- songs, digitized voices, animations. One of my favorites was a graphing application that drew 3D functions on the screen. They took sometimes hours to draw stuff that would be real-time today, but I'd spend hours just waiting for them to finish.
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