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