21

When I was working for a foundry consultancy, we did the following

  1. Download routines to add delays when writing certain tracks. This was a security feature. When the program started, it would try to read that track normally. If it could, it failed the security check and stopped running. If it couldn't, it downloaded the delay and checked again. If it couldn't then it failed security again.
  2. Download routines to do database searches and return the results. This was amazingly fast. 4 seconds to search the entire floppy. This was before SQL was invented so it was a home brew pattern match written in 6502 assembler.
  3. Make the LED flash different colours when computations were running

What other obscure tasks were the 8050/1541 drives used for?

8
  • I knew the disks were programmable, but didn't realize there was enough RAM to do useful stuff like that. Cool!
    – RichF
    Sep 9 '17 at 4:40
  • Tricks for enabling and breaking anti-piracy were even cooler but that is another topic.
    – cup
    Sep 9 '17 at 5:23
  • 3
    I am concerned this question will get closed as unanswerable. It's a shame, since I am curious about this very topic
    – OmarL
    Sep 9 '17 at 7:11
  • 1
    @mnem faster than the C64 if you're a PAL user, where the C64 runs at only 985 kHz. Almost 12% slower than the Vic-20 by clock speed — even more if you factor in bad lines. Thank goodness for that Vic-II!
    – Tommy
    Sep 9 '17 at 14:04
  • 2
    @RichF: the earlyest microcomputers had about the same amount of RAM (1 to 4 KB). You could do a lot with careful assembly coding. Having direct access to 170 KBytes of directly available background storage helped too, any disk sector could be loaded with a simple ROM function call. Sep 12 '17 at 9:24
13

There were a number of programs that used the 6502 in the 1541 as a coprocessor.

An obvious application was for calculating fractals, because that doesn't need a lot of RAM. An example is the Mandelbrot Construction Set (German article).

This thread also mentions some more recently written games which used the 1541 as coprocessor, namely The Masque, Panta Rhei, Altered States and Digital Worlds.

And of course all the Turbo Loaders had a part that needed to run on the 1541, but these were not really obscure.

12
  • Playing music with the drive heads, of course. I've tried that too, wrecking the drive in the process.

  • Dimming the drive LED, by flashing it very fast, with a variable duty cycle.

  • Printing a file on disk directly to a daisy-chained printer, freeing up the computer to do something else.

  • Direct disk-to disk copy between two 1541 units, similarly to the one above.

9
  • I've tried playing music with the drives too - I don't know whether it was the drive heads that changed the sound or a voice coil that was used to change the speed. Didn't do it too often because it was a work machine.
    – cup
    Sep 12 '17 at 13:06
  • 1
    @Tommy Why don't you post it as a separate question? (or two) Sep 15 '17 at 7:01
  • 2
    @Tommy in short: completely intentional. The disk drive user's manual tells you how to do it. I agree — make a question so we can write an answer detailing it :)
    – hobbs
    Oct 11 '17 at 7:31
  • 2
    @Tommy Actually, there is a point to asking something that's already well documented: stackexchange aims to be a canonical repository of questions and answers, even those that exist elsewhere on the web. "RTFM" or "STFW" are not supposed to be a phenomenon here. Feb 22 '18 at 9:30
  • 1
    @Tommy the 1541 didn't have different motor speeds. Only one: ca 300RPM but moving the head let's say from track 1 to 30 with different delays produced different notes.
    – Zibri
    Jun 14 '20 at 1:01
12

And now this: disk drive outputs the video signal through the serial bus connector! serial-to-video connection

"Freespin" Demo by Matthias Kramm (Quiss/Reflex):

https://www.youtube.com/watch?v=zprSxCMlECA

Technical details are described on the author's website: http://www.quiss.org/freespin/

Every single raster line, we have generate sync pulse by pulling both DATA and CLK to ground for 5 - 8 μs. And of course, we have to switch back and fro between black and white. Since the 6502 runs at 1Mhz, a single CPU cycle is already 8 horizontal pixels. But writing 1800 takes 4 cycles, so every switch between white and black is always at least 32 pixels wide. This is perhaps the biggest restriction of 1541tros, and dictated most of the effects. (Oldschool effects, like rasterbars, chessboards etc. tend to work nicely)

3
  • 1
    This is a very interesting hack! Can you summarize how this works? It would make for a much more complete answer and help it stand the test of time when / if the video link goes dead.
    – mnem
    Jul 7 at 17:40
  • 4
    That is mind-blowing. Details at quiss.org .
    – Nimloth
    Jul 7 at 19:07
  • This is at least for me the most far-fetched and obscured use of a floppy drive :) Jul 8 at 13:17
9

Reposting slightly, but this (German-language) page provides software for networking C64s via the serial bus, with the simplest intended power-on state being two C64s connected to the two inputs of a 1541, having one set to ignore the drive while the other loads, then reversing that, then having them talk to each other and to the drive through negotiation.

I think arbitration is decentralised for a flexible topology, so the mildly askew use of the drive is as a networking hub. One can imagine it becoming a more powerful server on such a network, e.g. being responsible for authoritative state in a multiplayer game, but I don't think the page goes that far.

2
  • I just had a look at the translation - this is amazing. You can connect up to 6 C64s together. Pity I haven't got the hardware otherwise I'd give it a go.
    – cup
    Sep 12 '17 at 16:01
  • Given that the IEE 488 bus Commodore used originally e.g. for the PET, and then simplified to a serial bus for the VC20 and C64, was a multi-master bus to begin with, intended for use in a laboratory with many devices on the bus, that usage is maybe not so obscure - it just restores this function to the serial variant.
    – dirkt
    Jul 7 at 3:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.