Mike Pall: The story of 15 Second Copy for the C-64
pagetable.com/?p=656Posted Jul 18, 2011, 2:22 PM UTC
Posted Jul 18, 2011, 2:22 PM UTC
Here is what I posted as a comment:
I wrote a fast loader for the C64 back in the day too. I had access to a print out of the source code for the 4040 disk drive and using it as a guide I disassembled the 1541 roms and figured out what was going on. My fast loader worked using the standard cable. The hardest part was getting around the fact that the screen hardware stole cycles from the CPU. So my code had to look at the current raster value and pause when it was on a line that stole cycles from the CPU and then run full speed again when it could (other loaders got around this by turning off the screen). It was a lot of fun but also very frustrating debugging code inside the 1541 when it crashed.
edit: Here is an interview I did back in 2008 about the good old days.
I once wrote code for the 1541 that would PWM-pulse the disk access light in sync to a music tracker that was playing on the C64. Fun times.
Like one of the responses on the site, I too wrote a fast loader. But I got in late in the game. Still, I wanted something that was faster than quickload on Super Snapshot that was incredibly fast (the one that wrote the fast loader code onto the disk). I had a friend who had a bought a commercial parallel cable hooked up to one of the chips on the disk drive. I built my own (with the obligatory reset button on the connector that goes into the RS232 port and where the entire cable was removable, even from the VIA chip) and wrote my own code. I ended up with a faster version.
Don't remember the exact timings, but do remember that I couldn't find any game or anything else that was faster. Did my own GCR conversion to get more speed. Unfortunately, a lot of the later games had their own disk code, so unless you had that ripped out, it wouldn't work. Luckily, the Super Snapshot could save a memory snapshot of pretty much any game in memory. You would do just that right upon boot time and you were off to the races.
Just finding out how things worked was half the fun.
Answer me this. I have a chance to buy a C64 for what I consider a reasonable price. Do you think I would get any enjoyment from it, never having touched any low level programming languages?
Better off downloading one of the full-feature emulators for the C64 (they're free) and seeing if you like it enough to collect the actual vintage hardware.
You are the only person who could possibly know.
Wow, that brings back memories. I remember my Turbo Loader cartridge that would load stuff off the 1541 at super speeds. I was fat and happy with that thing.
Do you remember the program that would make the 1541 heads vibrate and create a song? I ran it a few times to confuse people, then feared that I was destroying the drive.
By the way, I worked for the company in Melbourne Florida that sold a 5MB and 10MB hard drive for the C64. It worked like a champ!
This is hella dope.
I am not a programmer in the slightest, in fact, I hate math with a passion. However, people's ingenuity always impresses me when I read about things like this.
Especially since the source code is so well documented and commented.
I am not a programmer in the slightest, in fact, I hate math with a passion.
I know this isn't the point of your post, but I just want to clear up this common misconception. Unless you get heavy into the CompSci side of things, programming often doesn't involve math beyond basic addition/ subtraction/multiplication/division, and when you need the latter two, the computer is often the one that does it for you. Most programming is less like algebra and more like planning a set of steps needed to complete a task, and telling those steps to Amelia Bedelia.
While CS does involve lots of things that are not math, most of it IS math, even the parts that are not algebra. The problem is that so many people don't understand what math is; basically anything that involves formal logic (such as an algorithm) is math.
Very little real-world programming involves algorithm design. Most of it involves assembling the building blocks (APIs, algorithms someone else already designed, programming language constructs, etc) that someone has already created for you. I believe it's referred to as "not reinventing the wheel".
I think the part you might be missing is that a lot of math is also like planning a set of steps needed to complete a task. That and finding ways to connect different things.
I'm not missing that.
You could say the same thing about a lot of disciplines. The same planning/connection thought process is also used by someone who builds furniture, or a delivery driver who maps his/her own routes. Hell, I'd venture to say that, on a regular basis, the average carpenter uses a lot more math than the average professional programmer.
Programming is a broad field. Someone who writes games probably uses a lot of math - physics engines, 3D movement, graphics, etc. Someone who writes a Twitter client application probably uses very little math. There's also all of the in-between.
That's not the kind of math I'm talking about, although it is a kind of math. There's a kind that deals in abstractions, and breaking things down into sub-problems and modules in a very deep way. My guess is that you, like most people, have never been exposed to real math, but the kind of stupid and robotic rote memorization and forced problem solving you study in high school.
If you work up to understanding, say, a proof of why pi is irrational, you're not going to be able to avoid feeling a sort of awe that you're not going to be able to articulate. It's more connected than you might think to the feeling of coming up with a nice abstraction in a computer problem, where you start getting more out of it than you put in.
[deleted]
Born to Code.
Good on ye, sir. Well done indeed.
The young boy that still lives inside me salutes you!!!
Sorry for the off-topic, but Meinolf Schneider… that's a name I haven't heard in quite some time. Oxyd still is one of the best games I've ever played. And Jürgen Piscols soundtrack still pops into my mind from time to time after all these years.
Any Atari ST'ler here who knows what Meinolf has been up to after Dongleware?
Much respect to you! I only strayed ever so slightly onto 1541 programming myself but lacked your perseverance, that's for sure. All I managed to do was make the LED light flash...
if c64 is web scale, why not no web sites database on c64?
http://www.c64web.com/ - webscale beyond anything you can IMAGINE!
Great, you managed to break it already just by linking to it from Reddit!
[deleted]
that's not database. server is never a bottleneck. you need high scale database.
IT'S SERVING HTML FROM IT'S AWESOME MEMORY DATABASE? THAT IS THE NEW WEBSCALE!
It's keyed by memory address!
RAM IS WEB SCALE COZ ITS ALL RANDOM ACCESS WITH PARALLEL FLIPFLOPS!!!! O(1) FTW!!!
Why did you delete your old accounts?
I was banned by one of the admin. So, I keep coming back with new accounts. So far 5!
Edit: WTF.. didn't know the accounts were deleted. Did you hack and delete my account? Those accounts were working.. I was only banned from posting on r/programming
[deleted]
[deleted]
[deleted]
Newsflash: yay, I found my old design documents! Hand-drawn cycle timings on graph paper. Scanning them in right now.
And I found various copies of the sources on my 25 year old disks. Some of them give read errors, though. Thankfully I used versioned file names even back then. :-) So I guess I'll be able to reconstruct them and put them on github eventually. I'm rather busy right now, so don't hold your breath.
Heck, I found sources for stuff I didn't even know I wrote ...
And a paper copy of my first 'big' Z80 program. Mastermind in 316 bytes. I was 11 or 12 at the time. Will I get sued by Parker bros., if I publish this? :-)
grin Looking over my notes from back then, there was a truly evil idea I never got around to implement: add a timer that shows how fast you were at swapping the discs and put the best results into a hiscore table! ;-)
Oh man, what a piece of history. Please make sure you publish them on GitHub at some point (if anyone has time, maybe they could try reconstructing the original succession of commits in a repo? :)...
I wrote time stamps into the source code header. Would be fun to push a commit from 1985 to github. :-)
More discoveries: I found schematics for a hardware GCR encoder/decoder ... scanning them in, too.
I wasn't born when the C64 came out, so I have no idea what any of this is, but it's exciting to be looking at software history unraveling before my very eyes!
I wasn't born when the C64 came out but still know what this all is, and that scares me a little.
Wow, everything I wrote back in the day for the TRS-80, in BASIC or assembly, stored on cassettes, is long gone... ditto for the C-64 disks. (Nothing that significant, but formative... fun stuff with sprites, a mail-order light-pen, Conway's game of Life in Z-80 assembly; even some UCSD Pascal using cassettes). It's very cool that you managed to preserve that stuff!
Well, it helps if your parents have a large basement. :-)
I still got my Logikus vintage 1968, which I inherited from my grandfather sometime in the 70's. He liked to play all kinds of logic puzzles with us kids.
Oh my God, that looks familiar. I was only 1 in 1968, but I'm pretty sure I had a version of that sold through Radio Shack. I have a very visceral memory of cutting up all that blue wire. I had a lot of additional Science Fair X-in-1 electronics kits, but utterly failed to actually learn much about real electronics.
Yep: found the English manual: http://www.classiccmp.org/dunfield/d/sf5000.pdf
I recall just barely being able to get anything to work at all on the thing.