Never underestimate the ingenuity of the demoscene. The self-imposed limitations lead to incredible creativity, and, the range of devices they manage to get their demos running on never ceases to amaze us. But we never thought we’d see a C64 demo without one central component: the C64.
Full disclosure: [Matthias Kramm]’s demo, called “Freespin”, does need a C64 to get started. The venerable 6502-based computer runs a loader program on a 1541 disk drive. But from then on, it’s all floppy drive. And [Matthias] has laid bare all his tricks.
The video below shows the demo in full, including a heart-stopping on-camera cable mod. By adding a single 100 Ω resistor, [Matthias] turned the serial clock and data lines into a two-bit digital-to-analog converter, good enough to generate signals for both black and white pixels and the sync pulses needed for the display.
No demo would be complete without sound, and Freespin’s tunes come from controlling the drive’s stepper motor, like a one-voice Floppotron.
Watching nothing but a floppy drive run a cool demo is pretty amazing. Yes, we know there’s a full-fledged computer inside the floppy, but the bit-banging needed to make this work was still mighty impressive. It might be cool to see what you could do with multiple drives, but we understand the minimalistic aesthetic as well. And speaking of tiny little demos: the 256 bytes of [HellMood]’s “Memories” or [Linus Åkesson]’s “A Mind is Born” still leave us speechless.
[Richy Freeway] wrote in with this one. Thanks!
Mind boggled!
Mind boggling with a heartstopping cable hack at the start. WOW!
Interesting that the cutting of the cable didn’t reset the drive… (big chance that the reset line briefly connected to ground) but who cares if that part was correct or not.
The fact that the demo works is much more interesting and the concept of using the serial lines for video output is rather fun. A perfect way to demonstrate the functionality of the drive. I really like it, thanks for posting!
Wow, that was very cool. I wonder how many cables he got through before getting that demo right.
Wasn’t this done years ago with putting one on them C64 joysticks called the DTV64 in a floppy drive ?.
This article buries the lede somewhat…
The 1541 floppy drive has a 6502 cpu just like the C64.
The 1541 also only has 2kb of RAM (not all that usable) and has to do the screen updates in realtime (racing the beam – just like an Atari 2600). Oh, and do music with the motor while/between loading new demo parts.
Weren’t there RAM upgrades around at the time ?
To make room for some of the more sophisticated third party floppy firmwares ?
Anyway, I always were joking that the 1541 is more capable than the C64 itself.
How ironic that this was (in some ways) true. :)
Yes, many RAM upgrades (some commercial like the RAMBoard, some custom hacks – most for the original 1541). You could actually bring the drive up to a full 64k, though you couldn’t use all the RAM. I think the maximum USABLE in the drive was either 32k or 48k if I remember correctly.
I crown thee, “King of the Demo!”
That was very, very cool.
I remember doing music with the floppy drives back in the 80’s. But also doing video is definitely new. Awesome. Next up: do it in 256 bytes.
I paid very close attention to the flashing screen, now I will obey all his orders..
Great
Amazing! I can’t tell you how happy it makes me to see Reflex and PVCF are still around!
WOW! That was worth the drive!
Makes you think how wasteful we are with modern hardware when complaining our modern computers with their GBs of ram and multicore 2+GHz CPUs are running ‘a bit slow’
A somewhat ironic statement considering that Commodore used the equivalent of the main computer (6502 CPU, memory, and even a dedicated operating system) just to run the disk drive. You could say that a C64 with a disk drive was a dual processor system except an entire processor was “wasted” on the disk drive.
And even then loading games off disk was *slower* than loading from tape was on my trusty old Amstrad!
People had to write replacement drive firmware just to get half-way acceptable performance out of it, culminating in lft’s amazing real-time GCR decoding routine: https://www.linusakesson.net/programming/gcr-decoding/index.php
Agreed. E. g. Windows 10: 30 GB on disk, 2.7 GB of RAM on startup (!!). Frameworks upon frameworks wasting CPU cycles even on the simplest operations. That is what insanity looks like.
Yes, now days it’s mostly spaghetti code, rather than good tight programing back in the day.
Breathtaking work! This is akin to a demo game (“Barnstormer”) Bill Mensch did at MOS to prove to Chuck Peddled that the VIA chip was capable of being used as as video graphics generator. Read about it in Brian Bagnal’s books about Commodore, or the Computer History Museum oral history video with Bill.
wow, that was amazing!
The next level would be hooking up three 1541 drives in a way they can synchronize then using each one to drive a single input to an RGB monitor for full color and 3 voice sound.
Not only he butchers the cable for show (completely unnecessary), but in the docs also suggests harvesting resistor from within C64. Blasphemy!
I was aware of ATmegas pushing composite video data through port pins, it just never occured to me to consider if this is feasible on 1MHz CPU. Making this work with 2KB of RAM in 1541 makes it very impressive.
Wow