Winchester Host Adapter Fred Memory Mapping

for bbc micro/electron hardware, peripherals & programming issues (NOT emulators!)
User avatar
Posts: 2517
Joined: Sun Aug 02, 2009 4:59 pm
Location: Lost in the BeebVault!

Winchester Host Adapter Fred Memory Mapping

Postby BeebMaster » Sun Jan 14, 2018 12:45 pm

Back to an old recurring theme of mine, connecting up real 1980s Winchester Disc units to a Beeb at the same time as a more modern flash based storage device to do a backup.

The problem is that you can't have the original ADFS active at the same time as "IDE" ADFS, so doing something involving a CF type drive, run with an IDE controller, isn't possible, at least not without a hardware modification to the IDE interface and possibly also a re-programming of the controller chip.

IDE based storage under ADFS has been around for quite a while; more recently SCSI2SD has come along which will work with the original ADFS so in theory putting SCSI2SD on the SCSI bus along with a SCSI/ST506 Winchester disc should work.

But it doesn't because it seems like ADFS can only talk to SCSI ID 0, and whilst bridge boards like the Adaptec ACB4000 series support two drives under one controller number, and SCSI2SD can map up to 4 LUNs to a single controller, they still can't talk to each other when they are connected. ADFS will always recognise the Adaptec controller in preference to SCSI2SD. There's no support as far as I can tell in ADFS for anything presenting itself as SCSI ID 1 or greater.

The alternative appears to be to have two separate host adapters existing in different locations in Fred. The first Winchester host appears at &FC40-&FC43 and there is supposed to be room at &FC44-&FC47 for a second Winchester host (and possibly even space for 2 more at the next 8 bytes).

Even if this would work, I can't yet fathom how it would all appear to ADFS, or whether it even is really possible. I can't find any official Acorn confirmation that the second Winchester host is an official Fred memory allocation, and that it is supported by ADFS.

I've modified an Akhter host adapter to hopefully map to &FC44-47, but I don't know if I've done it right. WIth the modification, ADFS ignores the 1MHz bus entirely and looks at the floppy.

Here's the mod I did (after a false start cutting the wrong track):

Cut the track connecting IC6 (74LS138) pin 15 to 74LS00 pin 1.
Connect with flying wire IC6 pin 14 to 74LS00 pin 1.

When I've done that, the host is ignored. If I restore things by connecting flying wire 74LS00 pin 1 back to 74LS138 pin 15 then I get my Winnie back.

The Digistore tape drive has a similar modification, using an Acorn host adapter, whereby the track leading from 74LS138 pin 15 is cut and then bodged onto pin 14, so I think I'm on the right lines. However, using the Digistore Streamer ROM invariably gives me a tape drive not present error. It may need to do an Enquiry to read the product code from the tape drive before it acknowledges it, but doing an Enquiry command doesn't produce any data.

If the mapping has worked correctly, what results should I get by reading locations &FC40-&FC47?