Adaptec ACB-4000 MFM-SCSI protocol converter boards

I dont know if anyone would be looking at using these things anymore, but to save my info from dissapearing into the great big black hole of time I have written what I could still find down here.

These boards are MFM controllers that interface to a SCSI bus. Each board supports up to two MFM hard-drives. Unfortunately they are not completely normal SCSI hard-disks. They do not support the IDENTIFY command. This is probably due to the fact that back then the "auto-config"ness of SCSI wasnt such a high selling point as it is now. Also, they need you to send them a vendor specific format command before they will work (fair enough, just like normal MFM hard-drives, they need a low-level format). Also, this format command stores the drive geometry somewhere so that the controller board does not need to be told each time it is turned on.

When I got my first one of these boards, I didnt even have a SCSI controller. Not long afer that, I got four more for a song at a local swap meet on the assumption that they just HAD to be usefull for some project. Sure enough, I almost got my hands on ~8 112Meg MFM hard-drives. Imagine my glee at the thought of almost a whole Gigabyte of hard-disk space (things have changed since then)

I still cant work out where I got my information from,.. but I do have the program that I wrote which I have reverse engineered to get the following vendor specific command information:

MODE_SELECT Command for setting device paramaters
cmd[0] = MODE_SELECT
cmd[1] = (lun & 7) <<5;
cmd[2] = cmd[3] = 0;
cmd[4] = 0x18;			/* length of data block */

buf[0] = 0;		/* reserved */
buf[1] = 0;		/* medium type */
buf[2] = 0;		/* reserved */
buf[3] = 0x08;		/* block descriptor length */
buf[4] = 0;		/* density code */
buf[5] = 0;		/* no. blocks MSB */
buf[6] = 0;		/* "" */
buf[7] = 0;		/* "" LSB */
buf[8] = 0;		/* reserved */
buf[9] = (blksize >> 16) & 0xff;	/* block length MSB */
buf[10] = (blksize >> 8) & 0xff;	/* "" */
buf[11] = blksize & 0xff;		/* "" LSB */
/* vendor unique stuff */
buf[12] = 0x01;			/* list format code  1= soft sectored fixed disks */
buf[13] = (cyls >> 8) & 0xff;	/* high byte for cylinder count */
buf[14] = cyls & 0xff;		/* low "" */
buf[15] = heads & 0xff;		/* data head count */
buf[16] = (rwc >> 8) & 0xff;	/* high byte RWC cylinder */
buf[17] = rwc & 0xff;		/* low "" */
buf[18] = (wpc >> 8) & 0xff;	/* high byte WPC cylinder */
buf[19] = wpc & 0xff;		/* low "" */
buf[20] = lzone & 0xff;		/* landing zone,  0=default, land on innermost track */
buf[21] = stime & 0xff;		/* 0=non-buffered seek, 3ms / step; 1=28usec, 2=12usec */
buf[22] = 0;			/* for hard sectored */
buf[23] = 0;			/* "" */

FORMAT_UNIT command (standard SCSI command)

cmd[0] = FORMAT_UNIT;
cmd[1] = (lun & 7) <<5;
cmd[2] = 0;
cmd[3] = (tmp >> 8) & 0xff;     /* Interleave */
cmd[4] = tmp & 0xff;            /*  "   */
cmd[5] = 0;

I had some email conversation with a nice person with a manual, and he was able to tell me what all the switches did:

From spoetnix.idca.tds.philips.nl!wilko Thu Feb 17 14:28:43 1994
Return-Path: 
Received: by peril.zot.apana.org.au (Linux Smail3.1.28.1 #4)
	id m0pWzPv-0002UEC; Thu, 17 Feb 94 14:28 AEST
Received: from yarrina.connect.com.au ([192.189.54.17]) by bushwire.apana.org.au (8.6.5/8.6.5-bw3) with SMTP id NAA06278 for ; Thu, 17 Feb 1994 13:39:29 +1100
Received: from sun4nl.NL.net by yarrina.connect.com.au with SMTP id AA10931
  (5.67b8/IDA-1.5 for ); Thu, 17 Feb 1994 05:05:31 +1100
Received: from philapd by sun4nl.NL.net via EUnet
	id AA06438 (5.65b/CWI-3.3); Wed, 16 Feb 1994 19:05:21 +0100
Received: from apdnm.idca.tds.philips.nl by philapd.idca.tds.philips.nl with UUCP
          id AA10286 (879.1.1.13/2.18); Wed, 16 Feb 94 18:57:02 GMT (MET)
X-Organisation: Digital Equipment Enterprise bv, P.O. Box 245,
                NL-7300 AE Apeldoorn, The Netherlands
Received: from spoetnix.idca.tds.philips.nl by apdnm.idca.tds.philips.nl with SMTP
          id AA10452 (879.1.1.13/2.18); Wed, 16 Feb 94 17:58:50 GMT (MET)
Received:  by spoetnix.idca.tds.philips.nl (5.65/25-eef)
	id AA00766; Wed, 16 Feb 94 18:59:01 +0100
From: Wilko Bulte 
Message-Id: <9402161759.AA00766@spoetnix.idca.tds.philips.nl>
Subject: Re: Adaptec ACB4000 protocol boards.
To: hamish@zot.apana.org.au (Hamish Coleman)
Date: Wed, 16 Feb 1994 18:58:59 +0100 (CET)
In-Reply-To:  from "Hamish Coleman" at Feb 16, 94 01:41:55 pm
Return-Receipt-To: wilko@idca.tds.philips.nl
X-Mailer: ELM [version 2.4 PL23]
Content-Type: text
Content-Length: 1865      
Status: RO

> Firstly, the controler doesnt seem to support the SCSI inquiry command, thus
> making it hard to auto-detect - do you know of any 'approved' method of detecting
> this drive?  (I currently assume that any time an inquiry command is rejected,
> an acb4000, or other block-device is attached)

It doesnot support inquiry. So you are stuck with just 'assuming' it is there.
Maybe you could try to do a TEST UNIT READY command? 

> There are also two sets of jumpers on the board:  one set near the radial MFM
> cables that is labeled  'PU' 'R' 'S' 'T' and has four pins - do you know what
> this is for?

R<->PU ---> write precomp off for both drives
R<->S  ---> write precomp starts at same cyl as reduced write curr for both drives
R<->T ----> write precomp applied on all tracks, on both drives

Jumper in is 'feature selected'

> Then the block of eight pairs of jumpers labeled A-P, - I have found that A-B 
> through E-F are the SCSI address settings, but what are the other five pairs for?

G<->H  ---> DMA transfer rate, jumper in= SYSCLOCK/4, out= SYSCLOCK/2
I<->J  ---> Extended command set with jumper in
K<->L ---> not used
M<->N ---> support for drives that drop seek complete during head switching (when in)
O<->P ---> self diagnostics

> And finally, for non-termination of the SCSI bus, do I remove the resistor packs
> marked RP4 and RP3 that are near the SCSI connector?

Correct.

Cheers,

WIlko
_     __________________________________________________________________________
 |   / o / /  _   Wilko Bulte               mail: wilko@idca.tds.philips.nl
 |/|/ / / /( (_)  |d|i|g|i|t|a|l|  Equipment  Corporation -  WGF 
voice: +3155-432062    PO Box 245  -  7300 AE Apeldoorn   -  The Netherlands 
fax:   +3155-439133    Easynet: HLDE01::BULTE_W 	     DTN: 829 2062 
--------------------------------------------------------------------------------

From spoetnix.idca.tds.philips.nl!wilko Fri Feb 18 16:52:08 1994
Return-Path: 
Received: by peril.zot.apana.org.au (Linux Smail3.1.28.1 #4)
	id m0pXO8C-0002UYC; Fri, 18 Feb 94 16:52 AEST
Received: from yarrina.connect.com.au ([192.189.54.17]) by bushwire.apana.org.au (8.6.5/8.6.5-bw3) with SMTP id FAA06424 for ; Fri, 18 Feb 1994 05:19:07 +1100
Received: from sun4nl.NL.net by yarrina.connect.com.au with SMTP id AA26271
  (5.67b8/IDA-1.5 for ); Fri, 18 Feb 1994 05:18:27 +1100
Received: from philapd by sun4nl.NL.net via EUnet
	id AA24762 (5.65b/CWI-3.3); Thu, 17 Feb 1994 19:17:59 +0100
Received: from apdnm.idca.tds.philips.nl by philapd.idca.tds.philips.nl with UUCP
          id AA27170 (879.1.1.13/2.18); Thu, 17 Feb 94 19:13:37 GMT (MET)
X-Organisation: Digital Equipment Enterprise bv, P.O. Box 245,
                NL-7300 AE Apeldoorn, The Netherlands
Received: from spoetnix.idca.tds.philips.nl by apdnm.idca.tds.philips.nl with SMTP
          id AA16036 (879.1.1.13/2.18); Thu, 17 Feb 94 18:15:25 GMT (MET)
Received:  by spoetnix.idca.tds.philips.nl (5.65/25-eef)
	id AA13008; Thu, 17 Feb 94 19:15:45 +0100
From: Wilko Bulte 
Message-Id: <9402171815.AA13008@spoetnix.idca.tds.philips.nl>
Subject: Re: Adaptec ACB4000 protocol boards.
To: hamish@zot.apana.org.au (Hamish Coleman)
Date: Thu, 17 Feb 1994 19:15:43 +0100 (CET)
In-Reply-To:  from "Hamish Coleman" at Feb 17, 94 11:06:07 pm
Return-Receipt-To: wilko@idca.tds.philips.nl
X-Mailer: ELM [version 2.4 PL23]
Content-Type: text
Content-Length: 941       
Status: RO

> 
> > I<->J  ---> Extended command set with jumper in
> 
> Hmm - just one further question,.  what is 'extended command set' ?? - I enabled
> it (hoping that it might have meant the I got 'extended error codes') and could
> see no visible difference.
> 

The manual is rather vague on this. It seems to be usable to allow
the ACB4000 to replace a Xebec 1410 or Western Digital controller 
without driver changes. I don't think it is usable for you.
Further detail I could not find

Wilko

_     __________________________________________________________________________
 |   / o / /  _   Wilko Bulte               mail: wilko@idca.tds.philips.nl
 |/|/ / / /( (_)  |d|i|g|i|t|a|l|  Equipment  Corporation -  WGF 
voice: +3155-432062    PO Box 245  -  7300 AE Apeldoorn   -  The Netherlands 
fax:   +3155-439133    Easynet: HLDE01::BULTE_W 	     DTN: 829 2062 
--------------------------------------------------------------------------------



Back to the hacks page