Re: 1541 – two computers, one drive

From: Spiro Trikaliotis <ml-cbmhackers_at_trikaliotis.net>
Date: Wed, 25 Mar 2020 16:35:38 +0100
Message-ID: <20200325153538.GC30551_at_hermes.local.trikaliotis.net>
Hello,

* On Wed, Mar 25, 2020 at 03:35:07PM +0100 silverdr_at_wfmh.org.pl wrote:
> https://www.wikizero.com/en/Commodore_64_peripherals
> 
> says:
> 
> "It was also possible, without requiring a VIC-switch, to connect two Commodore 64s to one 1541 floppy disk drive to simulate an elementary network, allowing the two computers to share data on a single disk (if the two computers made simultaneous requests, the 1541 handled one while returning an error to the other, which surprised many people who expected the 1541's less-than-stellar drive controller to crash or hang). This functionality also worked with a mixed combination of PET, VIC-20, and other selected Commodore 8-bit computers."
> 
> Has anyone tested that? Is that a fully deterministic/reliable behaviour?

You have to know what you do, but then it works.

I have used essentially this setup when working on OpenCBM: A hard a
chain C128 (or C128D or C64) <--> drive 1 (usually a 1541) <--> drive 2
(1570, 1571 or 1580) <--> PC

The only things you have to do is:

1. Make sure (manually!) that no two computers (= IEC controller) use
   the bus at the same moment! That is, as long one computer has a
   transfer open (and it suffices even if a CLOSE is missing), then the
   other computer is not allowed to do anything on the bus.

2. As Anders Carlson wrote: Because the C64 does not release the CLOCK
   line after RESET, you have to do it before the other device can use
   the bus.

   You can use the POKEs given by him, or do an access to a drive, after
   which the line will be released. Thus, a LOAD "$",8 or LOAD
   "DOESNOTEXIST",8 is enough to release the line.

   Note that the C128 and C128D does not have this problem, as it tries
   to boot from the floppy drive. This access is enough to release
   CLOCK.

Thus, if your setup allows one switched off controller, the procedure
can be:

1. Switch on all drives and computer 1
2. If it is a C64, do the LOAD (or the POKE) as given above
   If it is a C128, wait until the boot access has stopped and you see
   the power on message
3. Switch on the other computer 2
   If it is a C64, do the LOAD (or the POKE) as given above


This can also be used to access the internal drive of an SX64 or C128D
from the outside.

Regards,
Spiro.

-- 
Spiro R. Trikaliotis
http://www.trikaliotis.net/
Received on 2020-05-30 01:22:25

Archive generated by hypermail 2.3.0.