DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

mcconfig(F)


mcconfig -- Irwin tape driver parameters

Format

variable=paramlist

Description

The mcconfig file (/etc/default/mcconfig) contains information on Irwin tape driver parameters.

variable is a case insensitive character string that names a configuration parameter.

paramlist is a string of one or more parameter values, the format of which are dependent on the variable used.

The following variables are defined:


IROPT
driver options

IRDBG
debugging aids

SYSFDC
system floppy controller parameters

ALTFDC
alternate controller parameters

4100
Irwin 4100 PC bus controller parameters

4100B
second 4100 PC bus controller parameters

IRDRV
drive searching sequence (old method 2.00)

IRSRCH
drive searching sequence (new method 2.02)

4251
4151 address

When configuring parameters, space and tab characters cannot be used. For example,


irdrv=3
is correct, while

irdrv = 3
is incorrect and will be ignored.

Parameters are passed to the tape driver by the daemon program /etc/mcdaemon. Configuration parameters are given on separate lines. The number sign character (#) may be used to open a comment. Comments are terminated by a newline. For example, the mcconfig file might contain:

   # this is a comment in the mcconfig file
   iropt=F
   4251=31f
Whenever changes are made to the mcconfig file, you need to reboot the system for the changes to take effect.

IROPT: configuration option string

The tape driver configuration variable IROPT may be used override certain default or automatically determined configuration parameters.

The values for IROPT are as follows:

B/b: 64KB DMA Boundary Present/Absent


B
This computer's hardware architecture has a 64KB DMA memory boundary. Tape data transfer buffers may not cross a 64KB physical boundary. This is the case for most PC and AT compatible machines.

b
This computer's hardware architecture does not have a 64KB DMA physical memory boundary. Tape data transfer buffers may be allocated anywhere in memory. This is true for PS/2s with the Micro Channel Architecture.

When neither ``B'' nor ``b'' is set, configuration is based upon the result of Micro Channel presence determination (see the M/m option). In a Micro Channel machine, ``b'' is assumed, otherwise ``B'' is used.

D/d: Use Demand/Single Byte DMA with Controllers Having a FIFO


D
When running in PC or AT class machine an controller which has a first-in-first-out (FIFO) buffer, use demand mode DMA transfers. Both the Intel 82072 and 82077 floppy controller chips (the latter is used in the 4100PC) have a 16 byte FIFO.

d
When running in a PC or AT class machine, use the standard single byte DMA transfer mode regardless of the floppy controller type.

When neither ``D'' nor ``d'' is set, automatic configuration determines whether a floppy controller chip with a FIFO is present on a per controller basis. When a controller having a FIFO is found (for example, Intel 82072/82077 parts return a positive response to the CONFIGURE command), DMA transfers with respect to that controller are set up using the demand mode. Using demand mode decreases the portion of the bus bandwidth consumed by tape read/write transfers.

F/f: Floating/Pulled-Up Drive Search


F
When searching for drives on the system controller, use a special ``floating track 0'' drive search. The ``floating'' drive search assumes the track 0 floppy interface line floats (can be high or low) when no drive is attached. This algorithm works in all machines but cannot locate a drive which is executing a load-point operation. The floating search is required on certain Adaptec controllers.

f
When searching for drives on the system controller, use the standard ``pulled-up track 0'' drive search. The standard algorithm assumes the floppy interface's track 0 line is pulled up (is high) when no tape drive is attached. When the standard search is employed on a controller which ``floats'' the track 0 line, a drive may be erroneously detected at a line where none is present. To deal with this condition either the IRDRV environment variable may be set to specify the drive line (preferred) or the ``floating track 0'' drive search ``F'' may be specified. When neither ``F'' nor ``f'' is set, automatic configuration of this option is performed by examining the model information returned from the BIOS ``Get Machine Configuration'' service (int 15, AH = C0). The following model uses the ``floating'' drive search:

Model Type Sub-type PS/2 model
F8 0D 24 MHz Model 70

 Model   Type   Sub-type PS/2 model
 F8      0D     24 MHz Model 70
H/h: Do/Don't Test for 4100 PC Bus Controller Signature

H
Test for Irwin 4100 PC Bus controller (default).

h
No 4100 PC controller present.

In the PC or AT (not Micro Channel) hardware environment (see the M/m option), when testing for the presence of a 4100 PC controller, the driver reads a byte from a signature port on the controller and compares this against the value 45 hexadecimal. The I/O port address of the signature port is found by adding six to the board's base port address (see the controller configuration section). For a 4100 PC Bus controller with switches set to ``as shipped from the factory'' positions, the signature port address is 0370 (hexadecimal) + 6. If the byte compares, the 4100 PC is present: otherwise it is not. This option is intended to be used when peeking at the factory set (0376 hexadecimal) signature port causes the disruption of some other adapter which is present at this address.

I/i: Do/Don't Wait-for-Index


I
Wait-for-index before data transfer of each tape block.

i
No need to wait-for-index before data transfer.

When neither ``I'' nor ``i'' is set, wait-for-index is enabled by default only when an Olivetti Micro Channel machine is present: otherwise wait-for-index is disabled.

If the following symptoms are experienced, after installing the MC driver in certain Micro Channel machines, the wait-for-index algorithm may need to be enabled:

A condition exists in some Micro Channel computers which causes errors reading the first sector of each tape block. Included are the IBM models 50, 60, and 80, and the Olivetti P-500.

These machines employ 72065 (except for the Olivetti which has a 765) floppy controllers and data separators with certain characteristics. The 72065 differs from other controllers in that it does not inhibit VCO SYNC when an INDEX signal is received. Characteristically, the data separator circuit will:

Most Irwin drives generate a read data signal with the 50/50 duty cycle when transiting servo headers.

When these factors are combined, and a tape is read, the following sequence of events occurs during a tape read operation: a servo header crosses the head. The drive sends a 50/50 duty cycle 250 KHz signal on the read data line. The PLL looses sync (that is, the loop control voltage goes to a rail). The end of the servo header crosses the head and the drive gives an INDEX pulse. No corresponding VCO SYNC inhibit is generated by the 72065 (this would normally put the PLL back on track). Sector 1 crosses the head but the PLL is still too far off to read the sector. The 72065 generates a record-not-found error.

Some Irwin drives are fitted with a data compensator board. This board has a circuit which alters the 50/50 duty cycle to a value which allows most of these controllers to maintain PLL synchronization. One exception is certain Model 80s.

For Micro Channel systems which do not have the compensator (and certain Model 80s which do), this problem can be circumvented by software. The technique relies on a feature of the 72065 (and other controllers in the 765 class): a VCO SYNC inhibit is generated just after the last byte of a READ command is sent to the controller. Inhibiting the VCO SYNC pin (which is normally telling the PLL to lock on incoming read data) causes the VCO's input to be switched to a reference. This results in quickly returning the PLL to a state in which it will be nearly synchronized with the ``real'' read data. VCO SYNC inhibition results from programming the floppy controller using a ``wait-for-index'' algorithm.

The wait-for-index algorithm sends all but the last byte of the data transfer command to the 72065. It then waits for a logical high to low transition of the floppy INDEX signal. The wait is accomplished by polling a special I/O port (at address 03F0h) provided by the Micro Channel floppy controller. The wait is used to delay the writing of the last byte of the 72065 transfer command until after the INDEX transition. As a result, the 72065 generates an inhibit pulse on VCO SYNC after INDEX, but with sufficient lead time to allow the PLL to achieve synchronization. Thus, sector one's ID can be correctly read.

As no index interrupt is available, wait-for-index polls to accomplish its task. The sought INDEX event is time critical. Under DOS, control for polling comes from either a task time startup thread, or the controller completion or timer tick interrupt. Under OS/2 and UNIX/XENIX a high priority daemon thread is awakened to poll for the index transition. Using the wait-for-index algorithm has the following drawback: all other system task time processing is stopped until index polling is complete. This means that the user will see sluggish system performance at certain times: typically, a 3 or 4 second dead period at tape track switch time. This may prove unacceptable in certain installations.


M
This computer has a Micro Channel Architecture bus.

m
This machine does not have a Micro Channel Architecture.

When neither ``M'' nor ``m'' is set, automatic configuration determines if Micro Channel Architecture hardware is present. The algorithm used depends upon the operating system and driver version. The M/m option is used for automatic configuration of the B/b, I/i, and P/p options.

If the string ``EISA'' is found at physical memory location 0xfffd9, (BIOS ROM location F000:FFD9) this is not a Micro Channel Architecture. Otherwise, if all 8 bits of the I/O port at address 0x0080 (DMA page register 0 in an AT compatibles) can be modified this is an AT 286/386 compatible. Otherwise this is a Micro Channel Architecture.

O/o: System Controller Does/Doesn't Support 1-Meg Transfers


O
The system controller supports one Megabit data transfers.

o
One Megabit transfers are not supported by the system controller.

When neither ``O'' nor ``o'' is set, automatic configuration determines whether the system controller supports 1-Megabit transfer rates. This is important when a 2120 is attached to the system controller. If the controller does not support 1- Megabit transfers, 500-Kilobit transfers are used for 80 and 120MB tapes. The driver detects the presence of the following 1-Megabit controllers: Intel 82072 and 82077.

P/p: 4251 Is/Isn't Present


P
A 4251 board is present in the system and has its jumpers configured to address the 4251's digital output register (DOR) at 0372h. When present, the tape driver echoes commands sent to the system floppy controller's DOR (at I/O port address 03F2h) to the 4251's DOR.

p
No 4251 board present.

When neither ``P'' nor ``p'' is set, and when running in a PC-bus (non-Micro Channel) machine (see the M/m option), automatic configuration determines the presence of a 4251 board by reading I/O port 0372h and comparing the input byte with the signature of the 4251. The 4251 signature byte is 42h. See also 4151=port.

Q/q: Compaq Portable III Piggy Back Tape Unit Is/Isn't Present


Q
A Compaq Portable III piggy back tape unit is present.

q
No Compaq Portable III piggy back tape unit is present.

When neither ``Q'' nor ``q'' is set, the algorithm used to test for presence of an alternate (Compaq Portable III piggy back) controller does the following: first the model byte is checked to see if the machine is other than an 8086 class machine (that is, the model byte must be less than FE). If this test passes, the BIOS address F000:FFEA is checked for the string ``COMPAQ''. When a match is found, the I/O port at the 0374 (that is, the floppy controller chip status port) is read and the three low order bits are tested. If all three bits are zero, the alternate controller is present.

When an alternate floppy controller is present, the following port addresses are used by default:

765 765    
Base DOR Stat Data Clock  
03F0 03F2 03F4 03F5 03F7 Primary FLOPPY controller
0370 0372 0374 0375 0377 Alternate TAPE controller

              765    765
 Base  DOR    Stat   Data   Clock
 03F0  03F2   03F4   03F5   03F7    Primary FLOPPY controller
 0370  0372   0374   0375   0377    Alternate TAPE controller
See the ``Controller parameter configuration'' section for information on reconfiguration of the default base address.

X/x: One Megabit Transfers Are/Aren't Allowed


X
Allow 1 Megabit transfers when conditions permit.

x
Never allow 1 Megabit transfers.

By default, 1 Megabit transfers ``X'' are allowed. If 1 Megabit transfers overload the system bus, the ``x'' option should be configured.

IRDBG: debugging options

Several debugging flags are available:

s
Drive search debug

When ``s'' is set, the result of the tape drive search (presence test) is shown. The following shows an example:

4100MC:3=CTLRNOTFND :2=CTLRNOTFND :1=CTLRNOTFND :0=CTLRNOTFND
4100MCB:3=CTLRNOTFND :2=CTLRNOTFND :1=CTLRNOTFND :0=CTLRNOTFND
4100:3=DRVNOTFND :2=tapedrive :1=DRVNOTFND :0=DRVNOTFND
4100B:3=CTLRNOTFND :2=CTLRNOTFND :1=CTLRNOTFND :0=CTLRNOTFND
ALTFDC:3=CTLRNOTFND :2=CTLRNOTFND :1=CTLRNOTFND :0=CTLRNOTFND
SYDFDC:3=DRVNOTFND :2=tapedrive :1=nottested
The order of drive presence testing is shown left to right and top to bottom. On a given line, the left most field has a symbol which represents a controller. Numeric fields preceded by a colon (:) give the unit select in the range 0 through 3. Fields preceded by an equals sign (=) have a symbol which represents result of tape drive presence testing for the controller and unit. These fields normally have an uppercase symbol which represents a driver error code. Two special strings are used: ``tapedrive'' if a drive was found, or ``nottested'' if drive presence was not tested.

i
Initialization value debug

When ``i'' is set, certain initialization values are displayed. The following is an example:

hz=18 12_us_scaler=12 scaler_loops=27510 model=0x1FC
is64kdma=1 demanddma_ok=1
isuchannel=0 port_4251=3F0
timers=[ 0 1 2 1 2 7 19 37 181 235 ]

r
Interrupt debug

When ``r'' is set, a character is displayed for each interrupt processed by the driver's finite state machine. In addition, reset cycles are shown. The following lists the characters and their meanings:

Character Meaning
N Floppy controller (NEC) interrupt
T Timer Interrupt
R Reset sent to floppy controller (start of reset)
r Reset complete

 Character   Meaning
 N           Floppy controller (NEC) interrupt
 T           Timer Interrupt
 R           Reset sent to floppy controller (start of reset)
 r           Reset complete

x
Data transfer debug

When ``x'' is set, the status of a transfer request is displayed at interrupt time. The display is similar to that shown below:

     Cylinder
     |
     |     DMA
     |     Overruns
     |     |                     Alternating
Track|     |    Positional       Asterisk
|    |     |    Retries          |
|    |     |    |                |
|    |     |    |    Interrupt   |
|    |     |    |    Status      |       Sector Map
+--+ +---+ +--+ +--+ +---------+ | +--------------------+
|  | |   | |  | |  | |         | | |                    |
T= 2 C= 42 O=12 R= 0 CRC         *[-c-- --Cs ---- M-O- --]
Track (T=decimal number) has the transfer request's track number.

Cylinder (C=decimal number) has the transfer request's cylinder number (tape block for the given track).

DMA Overruns (O=decimal number) has a count of DMA overruns (excluding, if indicated by in the Interrupt Status, the current DMAOVERRUN).

Positional Retry (R=decimal number) has the current positional retry number for the request. Note that a ``free'' retry is allowed under the following conditions:

Interrupt Error has the current reason for the interrupt displayed symbolically.

Alternating Asterisk (*). This one character field is alternately set with an asterisk (*) and a space ( ) character so that screen updates may be distinguished.

Sector Map ([-c-- --Cs ---- M-O- --]). Gives a visual indication of the status of each sector when an error occurs. Each printing character in the sector map represents the status of a sector. Before the start of a transfer, each entry is set to ``s''. On successful transfer of a sector, the corresponding entry is set to a hyphen (-). The following is a list of characters which appear in the sector map and their meanings:

Character Interrupt Error
  number symbol description
- 0 IE_NOERR No error
C 12 IE_CRC Data CRC error
c 13 IE_IDCRC ID CRC error
s 14 IE_RECNOTFND Record not found
M 16 IE_DATAMARK No data address mark
O 17 IE_DMAOVERRUN DMA overrun
? other unexpected Unexpected value

 Character   Interrupt                Error
             number   symbol          description
 -           0        IE_NOERR        No error
 C           12       IE_CRC          Data CRC error
 c           13       IE_IDCRC        ID CRC error
 s           14       IE_RECNOTFND    Record not found
 M           16       IE_DATAMARK     No data address mark
 O           17       IE_DMAOVERRUN   DMA overrun
 ?           other    unexpected      Unexpected value

IRDRV, IRSRCH: drive search control


IRDRV
drive searching sequence (old method)

IRSRCH
drive searching sequence (new method)

The tape driver uses a default drive searching sequence to test for the presence of tape drives. The default sequence may be replaced with a user configured sequence using either the IRDRV or IRSRCH variables. This is useful in situations where tape drives are erroneously detected by the default sequence, or where multiple tape drives are supported and a different mapping of logical to physical drives is desired. For example,

IRSRCH=SYSFDC:3,4100:2
says search for tape drives at unit select 3 on the system floppy controller, and unit select 2 on an Irwin 4100 PC bus controller.

The equivalent IRDRV specification is:

IRDRV=04,43
or alternately:
IRDRV=4,43
IRDRV specifications use a 2-digit number to specify a controller and unit select. The high-order digit gives the controller, and the low-order digit the unit select. If the high-order digit is missing, 0 (for the system floppy controller) is assumed. Note that the unit select used by IRDRV is in the range 1-4 while the unit select used by IRSRCH is in the range 0-3.

The following is a list of controllers supported by IRSRCH and IRDRV:

IRSRCH, IRDRV name High digit Controller
SYSFDC 0 System floppy (2.00)
ALTFDC 1 Alternate floppy (2.00)
4100MC 2 Irwin 4100 Micro Channel (2.01)
4100MCB 3 Second 4100 Micro Channel (2.01)
4100 4 Irwin 4100 PC Bus (2.01)
4100B 5 Second 4100 PC Bus (2.02)

 IRSRCH, IRDRV name   High digit   Controller
 SYSFDC               0            System floppy (2.00)
 ALTFDC               1            Alternate floppy (2.00)
 4100MC               2            Irwin 4100 Micro Channel (2.01)
 4100MCB              3            Second 4100 Micro Channel (2.01)
 4100                 4            Irwin 4100 PC Bus (2.01)
 4100B                5            Second 4100 PC Bus (2.02)


The syntax of an IRSRCH drive search sequence specification is:

IRSRCH = searchlist
searchlist = searchspec
  searchspec,searchlist
searchspec = controller:unitlist
controller =
SYSFDC (System floppy controller)

ALTFDC (Alternate controller)

4100MC (Irwin 4100 Micro Channel tape controller)

4100MCB (Second 4100 Micro Channel controller)

4100 (Irwin 4100 PC Bus tape controller)

4100B (Second 4100 PC Bus controller)
unitlist = unit
  unit:unitlist
unit = 0, 1, 2, 3

 IRSRCH =       searchlist
 searchlist =   searchspec
                searchspec,searchlist
 searchspec =   controller:unitlist
 controller =   SYSFDC    (System floppy controller)
                ALTFDC    (Alternate controller)
                4100MC    (Irwin 4100 Micro Channel tape controller)
                4100MCB   (Second 4100 Micro Channel controller)
                4100 (Irwin 4100 PC Bus tape controller)
                4100B     (Second 4100 PC Bus controller)
 unitlist =     unit
                unit:unitlist
 unit =         0, 1, 2, 3

The syntax of an IRDRV drive search sequence specification is:

IRDRV = searchlist
searchlist = searchspec
  searchspec,searchlist
searchspec = controllerdigit:unitdigit
controllerdigit =
0 (System floppy controller, may be omitted)

1 (Alternate controller)

2 (Irwin 4100 Micro Channel tape controller)

3 (Second 4100 Micro Channel controller)

4 (Irwin 4100 PC Bus tape controller)

5 (Second 4100 PC Bus controller)
unitlist = unit
  unit:unitlist
unitdigit = 0, 1, 2, 3

 IRDRV =             searchlist
 searchlist =        searchspec
                     searchspec,searchlist
 searchspec =        controllerdigit:unitdigit
 controllerdigit =   0    (System floppy controller, may be omitted)
                     1    (Alternate controller)
                     2    (Irwin 4100 Micro Channel tape controller)
                     3    (Second 4100 Micro Channel controller)
                     4    (Irwin 4100 PC Bus tape controller)
                     5    (Second 4100 PC Bus controller)
 unitlist =          unit
                     unit:unitlist
 unitdigit =         0, 1, 2, 3

SYSFDC, ALTFDC, 4100, 4100B: controller parameter configuration

Certain variables may be set to specify tape controller specific parameters. For example:
   4100=P:370,I:6,D:2,T:2,T:0
says an Irwin 4100 PC bus controller is installed and configured with a base I/O Port address (P) 0370 hexadecimal, using IRQ (I) 6, DMA channel (D) 2, and has two tape units (T), one wired for physical unit select number 2, and the other 0.

The general form for controller parameter specifications is:

controller = paramlist
paramlist = parameter
  parameter,paramlist
parameter = name:value
controller =
SYSFDC (System floppy controller)

ALTFDC (Alternate controller)

4100 (Irwin 4100 PC Bus controller)

4100B (Second 4100 PC Bus controller)
name =
P (Base I/O Port address)

I (Interrupt Request line (IRQ))

D (DMA channel)

T (Tape unit number [0-3])
value = [0123456789abcefABCDEF]+ (Hexadecimal number)

 controller =   paramlist
 paramlist =    parameter
                parameter,paramlist
 parameter =    name:value
 controller =   SYSFDC    (System floppy controller)
                ALTFDC    (Alternate controller)
                4100 (Irwin 4100 PC Bus controller)
                4100B     (Second 4100 PC Bus controller)
 name =         P    (Base I/O Port address)
                I    (Interrupt Request line (IRQ))
                D    (DMA channel)
                T    (Tape unit number [0-3])
 value =        [0123456789abcefABCDEF]+ (Hexadecimal number)

4100 PC configuration switch settings

The following tables contain the 4100 switch settings.

Base address SW1 SW2 SW3 SW4  
300 ON ON ON ON  
310 off ON ON ON  
320 ON off ON ON  
330 off off ON ON  
340 ON ON off ON  
350 off ON off ON  
360 ON off off ON  
* 370 off off off ON  
380 ON ON ON off  
390 off ON ON off  
3a0 ON off ON off  
3b0 off off ON off  
3c0 ON ON off off  
3d0 off ON off off  
3e0 ON off off off  
3f0 off off off off  

 +-------------+-------+-------+-------+-------+------------------+
 |Base address | SW1   | SW2   | SW3   | SW4   |                  |
 +-------------+-------+-------+-------+-------+------------------+
 |         300 | ON    | ON    | ON    | ON    |                  |
 +-------------+-------+-------+-------+-------+------------------+
 |         310 | off   | ON    | ON    | ON    |                  |
 +-------------+-------+-------+-------+-------+------------------+
 |         320 | ON    | off   | ON    | ON    |                  |
 +-------------+-------+-------+-------+-------+------------------+
 |         330 | off   | off   | ON    | ON    |                  |
 +-------------+-------+-------+-------+-------+------------------+
 |         340 | ON    | ON    | off   | ON    |                  |
 +-------------+-------+-------+-------+-------+------------------+
 |         350 | off   | ON    | off   | ON    |                  |
 +-------------+-------+-------+-------+-------+------------------+
 |         360 | ON    | off   | off   | ON    |                  |
 +-------------+-------+-------+-------+-------+------------------+
 |       * 370 | off   | off   | off   | ON    |                  |
 +-------------+-------+-------+-------+-------+------------------+
 |         380 | ON    | ON    | ON    | off   |                  |
 +-------------+-------+-------+-------+-------+------------------+
 |         390 | off   | ON    | ON    | off   |                  |
 +-------------+-------+-------+-------+-------+------------------+
 |         3a0 | ON    | off   | ON    | off   |                  |
 +-------------+-------+-------+-------+-------+------------------+
 |         3b0 | off   | off   | ON    | off   |                  |
 +-------------+-------+-------+-------+-------+------------------+
 |         3c0 | ON    | ON    | off   | off   |                  |
 +-------------+-------+-------+-------+-------+------------------+
 |         3d0 | off   | ON    | off   | off   |                  |
 +-------------+-------+-------+-------+-------+------------------+
 |         3e0 | ON    | off   | off   | off   |                  |
 +-------------+-------+-------+-------+-------+------------------+
 |         3f0 | off   | off   | off   | off   |                  |
 +-------------+-------+-------+-------+-------+------------------+

DMA channel SW5 SW6 SW7 SW8  
1 ON off ON off  
* 2 off ON off ON  

 +------------+-------+-------+-------+-------+------------------+
 |DMA channel | SW5   | SW6   | SW7   | SW8   |                  |
 +------------+-------+-------+-------+-------+------------------+
 |          1 | ON    | off   | ON    | off   |                  |
 +------------+-------+-------+-------+-------+------------------+
 |        * 2 | off   | ON    | off   | ON    |                  |
 +------------+-------+-------+-------+-------+------------------+

IRQ SW9 SW10  
3 ON off  
* 6 off ON  

 +-----------+-------+-------+----------------------------+
 |IRQ        | SW9   | SW10  |                            |
 +-----------+-------+-------+----------------------------+
 |         3 | ON    | off   |                            |
 +-----------+-------+-------+----------------------------+
 |       * 6 | off   | ON    |                            |
 +-----------+-------+-------+----------------------------+
* factory setting

4251: floppy extender address configuration

The Irwin 4251 adapter board augments the system floppy controller. It extends the total number of drives which may be attached from 2 to 4, and allows for the attachment of an external drive. The 4251 uses a single drive select I/O port. By design, the 4251 I/O port partially mimics the functionality of the system floppy controller's drive select port. The system controller's drive select port is called the Digital Output Register (DOR). When written with certain values, both the system controller's DOR and the 4251's drive select port activates a drive select line at the floppy interface. In the standard ``as shipped from the factory'' configuration, the 4251's port is addressed at 03F2 hexadecimal. The same address is used by system floppy controller's DOR. Thus, in the standard configuration, the 4251 monitors (that is, listens to and uses) bytes written to the system's DOR to select a drive. The 4251 uses unit selects 2 and 3. Unit selects are used by the software and should not be confused with the DRIVE SELECT jumpers on the tape drive which are almost always set to DRIVE SELECT 2. In certain hardware environments, the standard 4251 configuration either does not detect the presence of or fails to write tapes in a tape drive.

When a 4251 is configured for the standard address and is connected to:

The conditions listed in the above three paragraphs can be overcome. Typically, reconfiguring the 4251 to use the recommended alternate address by installing the A7 jumper allows the tape drive to function correctly. When this is done, the 4251's I/O address moves from 3F2 to 372 hexadecimal.

When configuring the address of the Irwin 4251, the board address jumpers are changed from the ``as shipped'' A0, A2, A3 position. Normally, the change involves reinstalling a jumper stored on one pin of the A7 pin pair to connect the A7 pin pair. This selects the address 372. However, when a secondary floppy controller (such as the Irwin 4100) or other adapter is present, the 372 address may be in conflict. In general, a secondary floppy controller uses addresses in the range 370 through 377, which includes the alternate 372 address of the 4251. To resolve this conflict, the 4251 can be re-addressed. In addition, the tape driver software must be informed of the new address.

The following information is given to aid in understanding of the relationship of the 4251 and tape driver software, the meaning of the 4251 jumpers A0 through A9, and an example of a non-standard configuration.

At initialization, the tape driver software tests for the presence of a 4251 at an alternate address. By default, the alternate address is 372 hexadecimal. (To select the 372 address on the 4251 install jumpers across the A0, A2, A3, and A7 pin pairs.) The test reads a byte from the alternate address and compares the byte with the signature. When the 4251's select port is read, a signature byte (42 hexadecimal) is returned. If the signature compares, the driver sends select bytes to both the system's DOR and the 4251's port. The default alternate address may overridden by using the variable named 4251. For example,

   4251=31f
tells the driver to test and use, if present, the port at 030F hexadecimal.

The 4251's port uses a single 10-bit I/O port address. The address is set using the jumper pin pairs labeled A0 through A9. Each jumper pin pair corresponds directly with an I/O port address bit. When a jumper pin pair is connected, the corresponding address bit is set to a logical 0. When the pin pair is disconnected, the address bit is set to a logical 1.

For example, to address the 4251 at 31F (an address which is unlikely to conflict with standard adapters), connect jumper pin pairs A5, A6, and A7.

See also

mcart(C), tape(C), tape(HW)
© 2003 Caldera International, Inc. All rights reserved.
SCO OpenServer Release 5.0.7 -- 11 February 2003