CCDISK.EXE      COPYRIGHT 1995-1996 horio shoichi      CCDISK.EXE



NAME
     ccdisk.exe - DOS reentrant SCSI disk driver

SYNOPSIS
     device=ccdisk.exe  [takeover]  [concurrency=max-concurrency]
     [irq_array=array-of-irqs]

     ccdisk VECTOR [interrupt-number interrupt-id]

COMMAND LINE RULES
     Command line has following rules

     -    Operands consist of options and terminating ';'  (semi-
          colon).  Except for ';' , the order is unimportant.

     -    The  character ';' (semicolon) terminates command line.
          Operands after the character are ignored.

     -    All operands are case sensitive, and generally must  be
          in  lower  case.   In  this  version VECTOR is the only
          upper case operand.  On config.sys line,  operands  are
          converted to lower case and then interpreted.

     -    The character '/' can be placed anywhere ' ' (the white
          space) can be placed.

     -    Alphabetic part of an option can be abbreviated down to
          one character, if there is no ambiguities.  For example
          the delete option has the syntax [d[e[l[e[t[e]]]]]].

DESCRIPTION
     Ccdisk.exe is a device driver loaded  from  config.sys  line
     that  handles  SCSI disks not using BIOS int13 interrupts to
     communicate with.  Instead, ccdisk.exe uses  ASPI  (Advanced
     SCSI Programming Interface) for its communications with SCSI
     disks.

     It must be loaded after ASPI and before concache.exe.

     If concache.exe is not loaded, ccdisk.exe works exactly like
     any  other  block device driver that handles SCSI disks.  It
     accepts driver requests from DOS serially and performs  each
     of the requests to the completion.

     If  concache.exe  is loaded, concache.exe intercepts all DOS
     requests to ccdisk.exe and routes the requests to ccdisk.exe
     described  as  above if necessary.  If the request is gener-
     ated by concache.exe then it directly far  calls  ccdisk.exe
     function entry that performs io asynchronously.


Concache 1.10       Last Update:  20 June 1996                  1



CCDISK.EXE      COPYRIGHT 1995-1996 horio shoichi      CCDISK.EXE



     Option  concurrency= specifies the maximum number of devices
     to work concurrent.  If this option is  not  specified,  the
     maximum  concurrency is set to the number of detected units.

     This concurrency value is retrieved by concache.exe and con-
     cache.exe  tries  to  set  aside stack area (about 400 - 500
     bytes per concurrency)  and  io  buffer  area  (minimum  512
     bytes.  See  concache.txt  for details.)  for each device to
     let them work concurrently.  If conventional memory or upper
     memory  block  is  precious, use rather conservative concur-
     rency= value.

     ASPI manager may also limit the concurrency  level  for  its
     own  buffer  management policy. In this case setting concur-
     rency= option larger than the limit is useless.  Check  this
     on accompanying manual for the value.

     Option  takeover  tells  ccdisk.exe  to  take over SCSI disk
     operations from DOS io.sys device  driver  which  use  int13
     method,  and  let  concache.exe  perform the disk operations
     concurrently with other devices and user/DOS programs.   The
     devices  remain  nominated  as  io.sys  drives but driven by
     ccdisk.exe through SCSI manager, dictated  by  concache.exe.
     Note SCSI manager must be loaded to use takeover option even
     if the board is configured to use BIOS.  For SCSI disks  not
     under BIOS, presence or absence of the option is irrelevant.
     Also note the option takes  effect  only  with  concache.exe
     loaded.   In  general,  it is hard to find the reason not to
     use this option.

     If SCSI disks are configured to use  BIOS  interface,  since
     BIOS  notifies  device  interrupt conditions via (also BIOS)
     int159[01]00 interrupts to tell only  device  types,  it  is
     impossible  to  handle  them  concurrently, nor discriminate
     them from non-SCSI devices.  To configure SCSI disks not  to
     use  BIOS, see respective SCSI board manufacturer's manuals.

     However, if only one SCSI disk unit exists and no other type
     disks  are configured, using ccdisk.exe is not very strongly
     advantageous, since in this case  BIOS  int159[01]00  inter-
     rupts definitely designate the unit.

     Option  irq_array= specifies irqs used for each host adapter
     in hexadecimal array.  Specifying irqs 0  (timer),  1  (key-
     board),  6  (floppy),  8  (real  time  clock), 9 (redirected
     interrupts), and 0xe  (IDE  type  hard  disk)  are  silently
     ignored.   The array is composed of concatenated hexadecimal
     value of irq numbers.  For example, irq_array=b0c means host
     adapter  0  uses  irq 11, adapter 1 uses none, and adapter 2
     uses irq 12.  If this option is unspecified, then irq  range

Concache 1.10       Last Update:  20 June 1996                  2



CCDISK.EXE      COPYRIGHT 1995-1996 horio shoichi      CCDISK.EXE



     8  -  15 is searched and those not pointing into ROM segment
     0xf000 space are considered candidate SCSI irqs.

     Note.
          In most cases default SCSI irq detection  should  work.
          However,  not all BIOS use segment 0xf000, the guess is
          easily defeated by the other programs, "stacks=" state-
          ment  in  config.sys  hides  ROM segment addresses, and
          high latency interrupts may not want to be involved  in
          delays concache.exe switchings cause.

     For  VECTOR  argument,  see  the corresponding subsection in
     concache.txt.

SEE ALSO
     concache.txt, floppies.txt, eqanda.txt, overview.txt,
     respective SCSI board manufacturer's manual.


FEATURES
     Current implementation has following restrictions

     -    Physical block size must  be  512  bytes,  and  logical
          block  size  (given  by  BIOS  parameter block) must be
          either 512, 1024, or 2048 bytes.

     -    Only DOS compatible partitions, type 1,  4,  5,  6  are
          recognized.

     -    No  removable  media, such as magneto-optical, are han-
          dled.

     -    Ioctl are not implemented.

     Irqs should have been retrievable via ASPI.
















Concache 1.10       Last Update:  20 June 1996                  3



