home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DP Tool Club 24
/
CD_ASCQ_24_0995.iso
/
dos
/
tools
/
icach111
/
i_cache.doc
next >
Wrap
Text File
|
1995-07-31
|
73KB
|
1,801 lines
IIIIII CCCCCC AAA CCCCCC HH HH EEEEEE
II CC CC AA AA CC CC HH HH EE EE
II CC AA AA CC HH HH EE
II CC AA AA CC HHHHHHHH EEEEE
II CC AAAAAAAAA CC HH HH EE
II CC AA AA CC HH HH EE
II CC CC AA AA CC CC HH HH EE EE
IIIIII 111111 CCCCCC AA AA CCCCCC HH HH EEEEEE
Version 1.11
The I_Cache Device Driver
XMS disk and CD-ROM caching system
Developed and written by Miles Pawski
Copyright 1994,1995
All Rights Reserved
Code: MicroSoft MASM 6.10
Page 1
------------------------------------------------------------
TABLE OF CONTENTS
Introduction........................................... 3
Acknowledgements....................................... 3
Requirements
System.............................................. 4
Configuration....................................... 4
Specifications
Disk Caching Specifications......................... 5
CD-ROM Specifications............................... 6
Installation
Format & Requirements............................... 7
Basic............................................... 8
Advanced (parameters)............................... 8
/i /d ............................................ 8
/t /c /m ......................................... 9
/q /w /s ......................................... 10
/b /f /a ......................................... 11
/L ............................................... 12
/e /r ............................................ 13
CD-ROM Installation................................. 13
CD Installation Notes............................... 14
Compatible Installation Parameters.................. 15
Installation and Configuration Examples............. 15
Using The CD Audio Player
CD Player Usage..................................... 17
Hot Keys............................................... 19
Error Messages
I_Cache Error Messages.............................. 19
Disk Error messages................................. 21
CD-ROM Error Messages............................... 22
Software Compatability
DOS................................................. 22
Windows............................................. 23
Video (CD-i)........................................ 24
DESQview & QEMM..................................... 24
Other disk caches................................... 24
CAM drivers......................................... 24
Hardware Compatability
SCSI controllers and Virtual DMA.................... 24
Solutions (Ic_low.sys).............................. 25
Tape drives......................................... 25
Magneto-Optical drives.............................. 25
Compressed drives (Stacker, Dblspace)............... 26
System Optimization
Batch file use...................................... 27
The I_Cache API
Int 2fh............................................. 28
Precautions & Suggestions
Precautions......................................... 28
Suggestions......................................... 28
Disclaimer.......................................... 30
Customer Service
Technical Support................................... 30
Shareware Notes
Shareware terms..................................... 30
Registered user's privileges........................ 30
Page 2
-------------------------------------------------------------
INTRODUCTION
I_Cache was first developed as an answer to Computer User's
needs for faster disk access. It was designed to work with
all disks, whether they are IDE's, SCSI's, CD-ROMs, floppy
disks or other external drives. It is universal in its
design and was meant to be a "set it and forget it" utility.
It is designed to be used under the DOS operating system.
This Shareware release is the culmination of over a year of
development and subsequent Beta testing.
Users will find that, with I_Cache, their PC's run faster and
more efficiently due to the memory caching of frequently used
disk data sectors. As with all disk caches, when DOS
requests a cerain disk sector(s), I_Cache will check to see
if it has the requested sector(s) in memory and, if so, will
provide them to the application directly from memory rather
than reading the disk. This saves wear and tear on your disk
drives and speeds up the application.
I_Cache has been extensively tested and is completely safe to
use. It is especially suited for PENTIUM processors. I_Cache
also features a sophisticated, self-contained CD audio player
for your convenience.
ACKNOWLEDGEMENTS
I would like to thank all of my Beta testers, with special
consideration for the following three individuals, who hung
in there all the way and provided valuable input for the final
post-Beta release of I_CACHE:
Johnny Chu - Hong Kong
August C. Quint - Germany
Ryan O'Connell - United Kingdom
Thanks for all the reboots !!
Books that I found of great value:
Undocumented DOS (Second Edition)
A Programmers Guide to reserved MS-DOS functions and
Data Structures. (C) Copyright 1994 A. Shulman, R. Brown,
D. Maxey, R. Michels, J. Kyle Publisher: Addison-Wesley
PCintern
System Programming. (C) Copyright 1992 Abacus/DATA BECKER
Author: Michael Tischer
Page 3
-------------------------------------------------------------
SYSTEM REQUIREMENTS
DOS: 4.0+ or DRDOS 6.00+
COMPUTER: 386+
XMS driver: REQUIRED. For example: Himem.sys, Qemm,
Qext.sys......
XMS memory: At least 1 megabyte. XMS memory is also
referred to as eXtended memory and is the memory
which is above the 1 megabyte limit on your
computer. It is suggested that you have a cache
size of at least 1 megabyte for efficient
operation.
EXTENSIONS: Microsoft's MSCDEX if CD-ROMs are to be cached.
MSCDEX is usually supplied with your CD-ROM
software. It is also supplied with DOS Version
6.xx.
CONFIGURATION REQUIREMENTS
Autoexec.bat file -
VERIFY OFF
Config.sys file -
buffers=1
Hardware stack recommendations:
stacks=9,256 (non-DESQview users)
stacks=0,0 (DESQview users non-STEALTH)
Windows System.ini file -
[386Enh]
InDosPolling=1 (Windows users only)
Page 4
-------------------------------------------------------------
SPECIFICATIONS
I_Cache Version 1.11
DISK CACHING SPECIFICTIONS
Buffer (track) size -
4 (2048 bytes), 8 (4096 bytes), 16 (8092 bytes),
32 (16384 bytes), 64 (32768 bytes) sectors.
Auto or manually selected.
Cache memory -
XMS in an UNLOCKed block.
Cache size -
100k to 16000k. Can be automatically
reduced to a value suitable for Windows on
entry (to Windows). Can also be
dynamically resized from the command line.
Change line -
Supports external drives that support the
media change line. Also supports external
drives that don't support the change line
with the /L+ parameter. Can force a media
change with hot-keys.
Device Name -
$I_CACHE$
Disk Sector Size -
512, 1024, 2048, bytes per sector.
Disks -
IDE, SCSI hard or external disks of any
track configuration, sector translation
or size. Can cache up to 26 drives totally
including CD-ROMs. Up to 20 CD-ROMs can be
cached. Can cache DoubleSpace compressed drives.
I/O memory -
Regular or "high" memory or split loading with
the IC_LOW.SYS i/o driver.
Initial Load -
Either loaded low into regular memory or
loaded "high" with the usual methods. Can
be loaded either as a visible device driver
from the config.sys file or from the
autoexec.bat file. (If you are using QEMM 7.5,
see page 24, "Software Compatibility").
Page 5
-------------------------------------------------------------
Initial Size -
I_Cache requires 48.7k to initially load.
Maximum Size -
53.5k (with /t:64 & 16MB cache)
Read Caching -
Available for ALL disks. Utilizes LRU
(Least Recently Used) queue to prevent
cache "thrashing".
Write Caching -
Available for Hard disks and Magneto-Optical
drives only. Can be defeated with -w parameter.
Disks are written a track at a time. The track
queue is sorted before they are written. The
track queue is written to disk when the computer
is idle, that is, no keyboard or mouse activity.
(Preemptive multitasking)
XMS Transfer -
XMS servor API interface.
CD-ROM SPECIFICATIONS
Audio player -
Will play ALL CD-DA RedBook disks.
Supports software manipulated incremental
volume control for drives that support this
feature.
Ejects disk and closes tray with drives that
supprort these features.
All calls are routed through MSCDEX.
Audio/Video format -
All formats.
Data format -
High Sierra
ISO 9660
Disks -
CD-ROM
CD-DA
CD-XA
PHOTO-CD
CD-I
Page 6
-------------------------------------------------------------
Supported Cached addressing modes -
HSG
Supported Cached data read modes -
Cooked mode only - 2048 byte sectors
Interleaved mode
** Raw data requests are passed through the driver
and NOT cached by I_cache.
INSTALLATION
I_Cache Version 1.11
FORMAT: I_CACHE [/i] [/c:xxxx[.xxxx]] [/s] [/w] [/f] [/d]
[/a:xx[+-]xx[+-]..] [/t:xx(4,8,16,32,64)]
[/b:xx[+-]] [/r:(Devicename,Devicename)]
[/L[+-]] [/p] [/e[r+-][w+-]] [/q+-] [/?]
[/m+-]
I_Cache is a Device Driver which can be installed either from
the config.sys or autoexec.bat files.
I_Cache needs to be installed AFTER the following:
XMS and EMS drivers
CD-ROM dedicated device drivers
All BLOCK drivers (including driver.sys)
that are to be cached by I_Cache.
IC_LOW.SYS
ALL ASPI drivers (SCSI-based drivers)
DLBSPACE.SYS /MOVE
DRVSPACE.SYS /MOVE
I_Cache needs to be installed BEFORE the following:
MSCDEX
Page 7
-------------------------------------------------------------
BASIC INSTALLATION:
There are 2 parameters required for basic installation of
I_Cache: /i & /c
/i - Install I_Cache. Installation parameter only.
The other parameters (besides /c) are optional and will be dis-
cussed later. The /c parameter has two parts. It must be in the
following format /c:xxxx[.xxxx]. The first number is
required and specifies the size of the XMS cache in K. The
second value, which contains a decimal point and a number, is
optional, and specifies the size of the cache inside WINDOWS.
THIS VALUE MUST BE SMALLER THAN THE FIRST VALUE. On entering
WINDOWS, the cache will resize itself to this value. You may
install I_CACHE from either the config.sys or autoexec.bat files.
EXAMPLES (from autoexec.bat file):
I_CACHE.EXE /i /c:3000.2000
This installs I_CACHE with a cache
size of 3000K (XMS). It will resize itself
to 2000K on entering WINDOWS. It will
return to 3000k on leaving WINDOWS.
I_CACHE.EXE /i /c:4000
This installs I_CACHE with a cache
size of 4000K (XMS). It will be the same
size inside and outside of WINDOWS.
If you wish to install I_CACHE from the config.sys file, you
need only add device= to the above examples:
device=I_CACHE.EXE /i /c:3000.2000
Please consult your DOS manual for techniques on customizing your
config.sys and autoexec.bat files.
ADVANCED INSTALLATION:
Other parameters
/d
STAGED-WRITE DELAY. Default
This parameter turns on the staged-write delay feature.
The delay timing is not adjustable, but it is
dynamically computed to catch most same-track writes.
Updates to the disk with this feature are performed
when the computer is idle, that is, when keyboard or mouse
activity is not detected (preemptive multitasking).
Staged-write affects hard disks and Magneto-Optical drives
only. All other drives are in write_through mode regard-
less of this parameter. Can be defeated with -w.
Page 8
-------------------------------------------------------------
/m+ /m-
MAGNETO-OPTICAL STAGED WRITE DEFAULT: /m+ (ON)
Normally, when staged-write is activated, it affects hard
disks and Magneto-Optical drives only. Since Magneto-Optical
drives incorporate removable media, /m- can be used to defeat
the staged-write feature for these drives while leaving
staged-write activated for hard disks.
/t:xx
SPECIFY LOGICAL TRACK SIZE. Default: Auto selection
** INSTALLATION ONLY Valid values: 4,8,16,32,64
This parameter specifies the logical track size in
sectors. If you don't specify this parameter, track
size is determined automatically from the longest track
size of all cached hard disks. I_Cache assigns the
closest value to 8, 16 or 32. 4 and 64 can only be specified
with this parameter. If your system has no hard disk,
then I_CACHE defaults to a 16 sector track size. You
may change that with this parameter. THIS OPTION CAN
ONLY BE USED AT INSTALLATION.
Larger buffer sizes my not provide the most efficient
operation. Even if your hard disk has a track size of
63 sectors, I_Cache may work better if you specify a
track size of 16 with this parameter.
Best performance: /t:16 Worst performance: /t:4
/c:xxxx.xxxx
SPECIFY/RESIZE CACHE SIZE. Valid range: 100k-16000K
This parameter can be used to resize the cache after it
has been installed. You cannot resize the cache to a
value (in K) larger than originally specified on
installation. You may add a WINDOWS value to this but
it won't resize to that value, it will only store the
WINDOWS value and will resize to the first value given
after the colon. You cannot resize the cache once
inside Windows.
I_CACHE /c:2000
This will resize the cache to 2000K
(provided the initial size was not
smaller than this amount).
I_CACHE /c:2000.1000
This will resize the cache to 2000K
(provided the initial size was not
smaller than this amount). It will
also store a new WINDOWS value of
1000K.
Page 9
-------------------------------------------------------------
I_CACHE is reset when it is resized and all modified
buffers are written to disk before it is resized. You
cannot use this parameter with any others when you
resize the cache. I_CACHE may have trouble resizing up
to its maximum allowable size due to various XMS
allocations with software programs. If it can't, it
will beep and try a smaller size than specified, or
return to its value before the /c parameter was
specified. The cache can be manually reset by naming
an amount which is identical to the current cache size.
/q- /q+
/q- TURNS OFF INT 13 traps. DEFAULT: /q+ (Traps ON)
This parameter turns off int 13 detection traps. These
traps are essential for programs which bypass DOS and
access the disk directly through int 13. The traps maintain
the integrity of the cache buffers. Turning off this feature
may cause a compromise in data integrity with programs that
write to the disk directly. It is included only for special
circumstances in which I_CACHE has int 13 detection problems
or with applications that aren't compatible with I_CACHE's
int 13 detection. YOU SHOULD NOT NORMALLY USE THIS PARAMETER.
(See Software Compatibility: Page 23)
/w
WRITE-THROUGH hard disk & magneto-optical drives
This switches off the staged-write feature for all disks.
With the exception of Magneto-Optical drives, all floppy
and external drives are always in write-through mode.
/s
STATUS DISPLAY.
This brings up the cache status display. It won't work if
cache isn't installed.
The first screen indicates general information about I_CACHE
and its performance on your system. It shows read and write
hit percentages, where I_CACHE is loaded into memory, its
resident size, which drives are cached, etc.
The second screen indicates which block drivers have been
detected on your system and their place in memory. It shows
the names of any CD drivers detected and certain funtions that
the physical CD drive may support (by checkmarks).
Raw The CD-ROM drive is capable of reading full 2352
byte sectors as well as standard 2048 byte
sectors.
Write The CD-ROM drive is capable of writing to CD-ROM
disks.
Page 10
-------------------------------------------------------------
Play The CD-ROM drive can play audio disks.
Intlv The CD-ROM drive is capable of reading data
written in interleaved mode.
Pref The CD-ROM drive can take prefetch requests.
Redbk The CD-ROM drive can read data addressed in
RedBook mode (MIN:SEC:FRAME).
The third screen indicates the percentage of the cache that
each drive is using.
/b+ /b- /b:xx
BELL TONE during disk updates. Default: OFF.
Valid range: 5-100
(clock ticks)
I_CACHE will produce a beep every xx clock ticks during
staged-write activity. If a disk-write takes
less than xx ticks, I_CACHE will not produce a beep.
You may turn this feature on by either specifying a
value with /b:xx (5-100) or with /b+, which uses the
previously defined value or the default value (15).
You may turn off this feature with /b-.
If this feature is activated, it also causes the system
to beep when a media change is detected. If you what a
media change beep, but do disk beep, place a very high
value with the /b parameter. There are about 18 clock
ticks per second.
/f
FLUSH THE CACHE.
This flushes the cache if there are modified buffers
waiting to be written to disk. If there aren't, it
does nothing. You can also flush the cache with the hot-key
combination:
LSHIFT+ALT+F
/?
Parameters information.
/a:x[+-]x[+-]...
DRIVE SPECIFICATION Default: All drives
cached.
This specification indicates which drives to cache and
which drives not to cache, including CD_ROM drives.
Page 11
-------------------------------------------------------------
If I_CACHE detects a drive as being a RAM disk, then it
will turn off caching functions to that drive, since
caching RAM drives is a waste of resources and is
inefficient. If you have a RAM drive on your system
and I_CACHE did not detect it as being such, then caching
for that drive should be turned off.
EXAMPLE:
I_Cache /a:A+B-C+D-E+D+F+G-
Since all detected drives are automatically cached, you
need only specify which drives are NOT to be cached on
initialization of I_CACHE.
I_Cache /a:B-D-G-
accomplishes the same thing as the previous example.
After I_CACHE is installed, you may turn on and off
drives from the DOS command line.
I_Cache /a:a+d-
/L+-
DISK CHANGE-LINE SUPPORT
I_Cache needs to detect disk changes in order to clear its
buffers so corruption of data on the external disk doesn't
occur. This parameter is for external drives that don't
support the media change line. I_cache treats these
devices differently when this parameter is activated.
It checks the serial number I_cache has stored
for the external disk against the number which the DOS
kernel has stored for it. Disks without serial numbers
or non-DOS formatted disks are checked for last-access-
time. If the last time the disk was accessed is
greater than 2.5 seconds, then I_Cache treats it as being
changed.
If you are working with a drive with no change-line
support (or you have specified the drivparm= parameter
in the config.sys file and didn't use the /c
parameter), and you are working with disks with no
serial number (or non-DOS formatted disks), then, for
performance reasons, it may well serve to remove this
drive from being cached by I_Cache, rather than specify
this parameter.
/L affects ALL external drives. /L- is the default
(change-line supported). Use /L+ for drives that don't
support the disk change line or if you use drvparm= in
your config.sys file without the /c parameter.
Page 12
-------------------------------------------------------------
/er+-w+- DEFAULT /er-w-
I_Cache can report advanced information for errors
detected during disk reads or writes. The information is
is for diagnotstic purposes and is written in the upper left
hand corner of your screen in the following format:
I_CACHE detects READ/WRITE ERROR
Drive x Sector: 0x000000h (x)
Values above are reported in 32-bit hex.
The default for this information reporting is OFF. If
you wish I_Cache to display this information on read
errors only, specify /er+ on the command line. If you
wish I_Cache to display this information on write errors
only, specify /ew+ on the command line. Or, if wish the
information panel to be displayed on both read and write
errors, specify /er+w+. You can defeat the information
panel in the same way: /er-w- or use any combination of r
and w: /er+w-
When I_Cache overwrites the screen, the screen is refreshed
and restored to it's original look in TEXT MODE. In GRAPHICS
MODES, I_CACHE will attempt to restore the screen in 16 COLOR
MODES (or less). Whether it is successufl or not depends upon
the SIZE of I_CACHE's I/O BUFFER and the pixel distribution
on the screen. I_CACHE uses its I/O buffer as a temporary
storage area for RLE compressed pixel data. Therefore, the
size of the buffer and the gradient pattern of the screen
pixels determine the amount of screen restoration possible.
The error panel will be displayed for three (3) seconds.
This parameter does NOT apply to CD-ROMs.
CD-ROM INSTALLATION:
Required parameters and configuration
I_Cache can be installed either as a device driver from the
config.sys file or from the autoexec.bat file. Either way, in
order for CD-ROM drives to be cached, Microsoft's MSCDEX must be
installed AFTER I_Cache. The /r parameter is used on the I_Cache
installation line to specify individual CD-ROM device names which
are to be cached by I_Cache. The format for this parameter is as
follows:
/r:(devicename,devicename....)
All CD-ROM device drivers which are to be cached by I_CACHE
should be specified with the /r parameter and NOT on the
MSCDEX command line (/d switch). I_CACHE will sort them out
and redirect all calls as necessary. These are the steps you
should go through in order for I_CACHE to cache CD-ROMS with
MSCDEX.
1.) Insure that I_CACHE is loaded AFTER
all CD-ROM device drivers.
Page 13
-------------------------------------------------------------
2.) Insure that MSCDEX is loaded AFTER I_CACHE.
If I_CACHE is installed from config.sys, then
this is automatic since MSCDEX is a TSR and
loaded in the autoexec.bat file.
3.) If I_CACHE is to be loaded in the autoexec.bat
file, ensure that it is loaded BEFORE MSCDEX.
4.) Enter the device names of the CD-ROM device
driver(s) to be cached by I_CACHE in the /r
parameter:
[device=]i_cache /i /c:3000 /r:(MSC001,MSC002,SONY03)
Parenthesis are required!!
The names of the device drivers are
contained in your manual for the CD-ROM
setup but will be along the lines of the
ones mentioned above. They are never
longer than 8 characters.
5.) Enter I_CACHE's device name with the /d
parameter for MSCDEX:
MSCDEX /V /E /M:0 /D:$ICACHE$
MSCDEDX will now direct all calls for
devices named in the /r parameter through
I_CACHE.
$ICACHE$ is the device name for I_CACHE.
*** DO NOT DUPLICATE THE NAMES ON THE MSCDEX /d
PARAMETER WITH THOSE LISTED ON THE I_CACHE
/r parameter.
Any device names named on the MSCDEX /d
parameter line and NOT mentioned on the
I_CACHE /r parameter line will NOT be cached
by I_CACHE.
CD-Installation notes -
It is preferable that you specify /M:0 on the MSCDEX
installation line. This allocates 0 buffers for MSCDEX
and makes the MSCDEX program smaller. It also allows
I_Cache to handle all sector buffering, which is
preferable. It is also preferable to specify as few
buffers as possible on your CD-ROM device driver
installation line, although most drivers won't let you
specify 0.
Page 14
-------------------------------------------------------------
COMPATIBLE INSTALLATION PARAMETERS
/i /c /t /r (/d or /w) /b /L /a /e /m
********** - can be used in place of / for parameter designation.
i.e.: -w
INSTALLATION AND CONFIGURATION EXAMPLES
device=i_cache.exe /i /c:4000.2500 /d /b:9 /ew+
This entry would be found in the config.sys file. This
installs I_CACHE as a device driver with a main
XMS cache size of 4000K. The cache size in WINDOWS will be
2500K. Staged-write delay is ON. The update bell will be
sounded every 9 clock ticks during staged disk updates. Buffer
size will be auto-selected. Advanced information will be
displayed on disk write errors only.
This line must come AFTER all block drivers.
i_cache.exe /i /c:3000
This installs I_CACHE as a TSR (autoexec.bat file) with
an XMS cache size of 3000K. Staged-write will be ON by
default. The update bell will be OFF by default. Track size
will be auto-selected.
device=i_cache.exe /i /c:6000.3000 /w /t:32
This entry would be found in the config.sys file. This
installs I_CACHE as a device driver with a main XMS
cache size of 6000K. The cache size in WINDOWS will be 3000K.
Staged-write delay will be OFF and all disk-writes will be
written-through (/w). The track size will be 32 sectors.
This line must come AFTER all block drivers.
device=i_cache.exe /i /c:6000.3000 /d /b- /a:D-F- /r:(SONY01,SONY02)
This installs I_CACHE as a device driver with a main
XMS cache size of 6000K. The cache size in WINDOWS will be
3000K. Staged-write delay is ON. The update bell will be OFF.
The buffer size will be auto-seclected. Drives D and F will not
be cached although all other detected drives will be (cached).
CD-ROM devices drivers SONY01 and SONY02 will be cached provided
that MSCDEX is loaded in the autoexec.bat file and the name
$ICACHE$ is specified with its /d parameter. (MSCDEX /V /E
/D:$ICACHE$).
Page 15
-------------------------------------------------------------
This line must come AFTER all block drivers and CD-ROM drivers.
Lets say that you want to put I_CACHE into upper memory with the
tools provided with DOS and you want to load I_CACHE in the
autoexec.bat file. You also want to load the I/O buffer into low
memory and specify a track size of 32 sectors. You want to cache
CD-ROM device SONY01.
config.sys file:
buffers=1
.
.
.
device=sony01.sys
device=ic_low.sys -32 (See Solutions, page 24)
.
.
autoexec.bat file:
PATH=.....
.
loadhigh i_cache.exe /i /c:4000 /r:(SONY01)
.
MSCDEX /V /E /M:0 /D:$ICACHE$
With this example:
Cache size will be 4000k.
I/O buffer is in low memory. Track size is 32 sectors.
Staged write is ON by default.
Update bell is OFF by default.
CD-ROM device driver SONY01 is cached.
This driver may operate more than one CD-ROM
device. More than one drive letter may be
assigned. Check the status with the /s parameter
to see what drive letters are assigned to each
device driver. MSCDEX is loaded AFTER I_CACHE and
names $ICACHE$ as the device name.
Now lets say that you have QEMM loaded and you want to load
I_CACHE in the config.sys file (into upper memory). You want to
cache CD-ROM device SONY01.
config.sys file:
buffers=1
.
.
device=qemm386.sys .......
device=sony01.sys
device=c:\qemm\loadhi.sys /L c:\i_cache.exe /i /c:3000 /r:(SONY01)
.
.
autoexec.bat file:
PATH=.....
Page 16
-------------------------------------------------------------
.
MSCDEX /V /E /D:$ICACHE$
.
.
With this example:
I_CACHE is loaded high into the largest space
that QEMM can find.
Cache size will be 3000k
Staged write is ON by default.
Update bell is OFF by default.
CD-ROM device driver SONY01 is cached.
This driver may operate more than one CD-ROM
device. More than one drive letter may be
assigned. Check the status with the /s parameter
to see what drive letters are assigned to each
device driver.
USING THE CD AUDIO PLAYER
The /p parameter
(NOT available in unregistered versions)
I_Cache contains a built-in CD audio player for your convenience.
It is sophisticated in its design and can handle up to 20
separate CD drives. I_Cache needs to be loaded for this option
to work. This feature is activated with the /p parameter:
I_Cache /p
┌────────────────┐ ╔════════════════════════════════════════╗
│ I_Cache │ ║ ┌────────┐ ║
│ CD-Player │ ║ Running Time on Disk │12:34.56│ ║
│ Version 1.0 │ ║ └────────┘ ║
├────────────────┤ ║ Play Stop ┌──┐ ┌─┐ ║
│ CTRL+P - Play │ ║ ┌──┐ ┌──┐ Track │01│ │█│ ║
│ CTRL+S - Stop │ ║ │ │ │██│ └──┘ │ │ ║
│ CTRL+R - Reset │ ║ └──┘ └──┘ ┌─┐ │ │ ║
│ CTRL+C - Close │ ║ Drive │E│ │ │ ║
│ CTRL+E - Eject │ ║ Reset Close Eject └─┘ │ │ ║
│ │ ║ ┌──┐ ┌──┐ ┌──┐ │ │ ║
│ CTRL+T - Track │ ║ │ │ │ │ │ │ │ │ ║
│ CTRL+D - Drive │ ║ └──┘ └──┘ └──┘ │ │ ║
│ │ ║ │ │ ║
│ CTRL+[ ] Seek │ ║ Message │ │ ║
│ - Volume │ ║ ┌───────────────────────┐ Volume │ │ ║
│ │ ║ │ │ [ ] │ │ ║
│ ESC - Quit │ ║ └───────────────────────┘ └─┘ ║
└────────────────┘ ╚════════════════════════════════════════╝
Page 17
-------------------------------------------------------------
Minutes Seconds Frames
\ | /
\ | /
\───|────/
Running Time on Disk │12:34.56│
└────────┘
Running time is in Minutes, Seconds and Frames.
This is the amount of playing time into the disk
where the cd play head is located. There are 75
frames per second. Dynamically changes while
playing or seeking tracks.
Volume control Not all CD players support software manipulated
incremental volume control. Up-arrow raises the
volume; Down-arrow lowers it. If you find that
this adjustment does nothing to your volume, then
it means that software manipulated volume control
is not available on your CD. You must rely on the
volume control knob. Whether volume control is
supported or not, this feature can turn off and on
your volume. The volume factor in the CD driver
will be displayed. Values are from 0-255. 255 is
usually the default set by the dedicated CD
driver.
For CD players that DON'T support software
manipulated volume control, values are treated as
follows:
0 = OFF
1-255 = ON
For CD players that DO support software
manipulated volume control, values are treated as
follows:
0 = OFF
1-255 = volume increments
I_CACHE will increment or decrement your volume by
8.
Other keys: Except for the UP-ARROW and DOWN-ARROW volume
keys, all other keys must be used in conjuction
withe the CONTROL key. The funtion will not
activate until the CONTROL key is released.
CTRL+D Toggles the drive. While holding down the CONTROL
key, you can keep pressing D to find the drive
which you want to play.
CTRL+T Toggles the CD track. While holding down the
CONTROL key, you can keep pressing T in order to
find the track you want.
Page 18
-------------------------------------------------------------
CTRL+L-ARROW Shuttle seek forward and reverse. While holding
CTRL+R-ARROW down the CONTROL key, you can keep pressing either
RIGHT-ARROW or LEFT-ARROW in order to seek to the
spot on the disk which you want. The Running Time
display will change with your selection. Each
key press makes the CD seek position in +-1 second
increments. On release of the CONTROL key, the
seek will be accomplished.
CTRL+P Will start playing the CD from the CD head's
current position and will play until CTRL+S is
pushed, or to the end of the disk.
CTRL+R Resets the disk.
CTRL+E Ejects the disk if this command is supported by
your CD player.
CTRL+C Closes the CD tray if this command is supported by
your CD player.
CTRL+S Stops play.
HOT KEYS
I_CACHE has two hot-key combinations:
LSHIFT+ALT+F will flush the cache.
LSHIFT+ALT+M will force a media change.
A forced media change will make I_cache invalidate
all buffers allocated for external/floppy drives
including CD-ROMs.
ERROR MESSAGES
I_Cache Version 1.11
I_CACHE PRODUCED ERROR MESSAGES
-------------------------------
!! ACCESS DENIED !!
You cannot access I_Cache Ver x.x with I_Cache Ver x.x
You cannot mix versions of I_Cache.
If a certain version of I_Cache is installed on your computer,
you can't access I_Cache with a different version.
Page 19
-------------------------------------------------------------
Can't install I_Cache: 386+ processor required...
This message is displayed if you do not have a 386+
computer processor. I_cache can only be used with
computers containing at least a 386 chip.
Can't install I_Cache: XMS ERROR
This message is displayed if I_cache experiences problems
in allocating XMS. It is fatal and will cause I_Cache
to stop installing itself.
I_CACHE: Can't load WINDOWS at this time...try again
I_Cache has detected an error while trying to initialize
Windows enhanced mode. Wait a few seconds, then try again.
I_CACHE: Can't load Windows at this time...Please flush cache
first
I_Cache has detected that the write cache had unwritten
buffers waiting. The cache must be flushed prior to
entering Windows enhanced mode. Use hot keys LSHIFT+ALT+F
or, from the command line, use I_Cache /f. Then try to
load Windows again.
I_Cache Not Installed
I_Cache is not installed on your system. You will get this
message if you try one of the I_Cache command-line options
when I_Cache has not been installed.
I_Cache already installed
I_cache is presently running on your system. You will get
this message if you try to install I_Cache while it is
already running.
Installation option only...
You will get this message if you try to use an
INSTALLATION-ONLY option from the command line, for example
/t, /r, /i, etc.
Invalid cache size - Must be 100 - 16000
Valid Cache sizes are in k (1000 bytes). Valid values are
100 to 16000(k).
Invalid parameter combination
Certain parameter combinations aren't allowed. This
message will appear if you use an invalid combenation from
the command line.
Page 20
-------------------------------------------------------------
Need cache buffers specified: /c:xxxx
This message will appear if you tried to install I_Cache
without specifying a cache size.
No ID numbers available
This message will appear if, for some reason, your system
is already maxed-out with TSRs and device drivers and
I_Cache wouldn't install. Try de-installing a few, then
try installing I_Cache.
Requires MS-DOS 4.0 or later
I_Cache will only install if your computer has DOS Version
4.0 or later.
Sorry, can't resize cache from within Windows...
You can't manually resize the cache (with the /c parameter)
while operating inside of the Windows operating system.
Windows will automatically resize itself on entry and exit
from Windows if you have a Windows cache size specified on
installation. You may resize the cache while outside of
the Windows operating system.
Too many buffers - reduce memory request
This message appears on installation if your specified
track size is too small and your memory request is very
high. Try increasing your track size or reducing your
XMS memory request.
Too many devices named...20 maximum
You can only cache a maximum of 20 CD-ROM drives.
Unknown Command
Generated by CD audio player, usually if your player does
not support Eject Tray or Close Tray commands.
Unrecognized option
This message appears if you specify an unsupported
parameter.
DISK ERROR MESSAGES
-------------------
Common Critical Errors Generated by DOS
Drive Not Ready
You attempted to access a drive with no disk in it or with
Page 21
-------------------------------------------------------------
the drive door open. This usually occurs on external
drives. Also generated by the CD Audio Player when a disk
is not in the drive.
General Failure
The drive did not respond.
Sector Not Found
This is a critical error which will appear under DOS if
your disk could not find a sector in a file. The sector
may be damaged or your FAT may be invalid. I_Cache will
display an informative display prior to this if you have
used the /e parameter.
After this error, you usually get (A)bort, (R)etry,
(F)ail...
Unknown Media
DOS did not recognize your disk. This can happen with old
floppy disks, formatted under obsolete versions of DOS,
with non-DOS formatted disks, and with damaged disks.
Write Violation
This error occurs if you tried to write to a write-
protected (read-only) disk. It also occurs if you try to
write to a CD-ROM.
CD-ROM ERROR MESSAGES
---------------------
Common Error Messages Generated by MSCDEX or CD-ROM Drivers
Please consult your CD-ROM manual for error messages by the
CD-ROM dedicated driver or by MSCDEX.
SOFTWARE COMPATIBILITY
DOS
---
Norton Backup - Norton does not recommend the use of disk
caches with their backup programs, especially
with the use of Norton's proprietary disk
format. Although no errors have been
detected with Norton Backup, use I_Cache at
your own risk.
Page 22
-------------------------------------------------------------
If you wish to use I_CACHE with Norton Backup
programs, it is recommended that, if you are
backing up to an external/floppy drive, you
turn the external drive off with the /a:
parameter so that I_CACHE will not manage
that drive.
Norton AntiVirus - Please load any special drivers for this program
BEFORE I_Cache.
Defragmentation - Please turn all drives OFF with the /a
utilities parameter prior to using these utilities.
If you experience difficulty, use the /q-
parameter also. Remember to use /q+ when you
are finished with the program. This can
be accomplished in a batch file, which could
also start your program.
Norton Calibration- See above requirements for Defragmentation utils.
fix-it utilities If you experience problems with erroneous error
MS Scandisk displays for Norton Disk Doctor, try resetting
the cache. (See /c parameter).
MS Antivirus If you experience problems with this program,
then turn the appropriate drives OFF with the
/a: parameter.
**** (See System Optimization - Batch File Use..Pg. 27)
WINDOWS
-------
Windows-for-Work-Groups -
I_CACHE is NOT compatible with 32BitFileAccess
or its various components such as VCACHE and
VFAT. You should disable 32BitFileAccess and its
various components in the Windows system.ini
file if you wish to use I_CACHE for the par-
ticular drive in question. I_CACHE may provide
better performance than 32BitFileAccess anyway.
Conversely, if you wish to use 32BitFileAccess
and its various components (mentioned above)
instead of I_CACHE, then turn off the appropriate
drive with the /a: parameter. I_CACHE should
not service the same drive as 32BitFileAccess.
For example, if the components of 32BitFileAccess
are managing drive C, then use I_CACHE /a:c- to
turn off I_CACHE's management of the drive.
Page 23
-------------------------------------------------------------
Video (CD-i and others)
-----------------------
If you experience problems with laser video playback, use the /a:
parameter to uncache the drive. For instance, if you are
experiencing problems with CD drive F, then use: I_cache /a:f-
from the command line. Be sure to turn the drive back on for
data caching functions (I_cache /a:f+). Believe it or not,
CD-i video data can be cached.
DESQview and QEMM
-----------------
QEMM's /GETSIZE parameter may provide a false reading. If you
have problems loading I_Cache into upper memory with QEMM
and /GETSIZE indicates that I_Cache needs 60k+, then install
I_Cache with the /SIZE parameter: loadhi /size:49k I_Cache.exe...
QEMM 7.5 also has trouble loading I_CACHE high without the /SIZE
parameter.
Other Disk Caches
-----------------
I_CACHE is compatible with NO other disk caches. Please do not
install other disk caches with I_CACHE. If you are using VCACHE,
then I_CACHE must not service the same drive (as VCACHE).
CAM (Common Access Method) Drivers
----------------------------------
Use CAM drivers at your own risk. Some appear to be incompatible
with I_CACHE.
HARDWARE COMPATIBILITY
SCSI controllers and Virtual DMA
--------------------------------
Certain disk controllers support a concept called bus mastering.
This is where the actual disk controller takes over the bus in
order to transfer data to or from system RAM. Some SCSI
controllers have this feature. A problem occurs when running in
the virtual 8086 mode that Windows, DESQview and other virtual
machines provide. Memory managers such as QEMM and EMM386.EXE
also use virtual 8086 mode. The read or write address that is
passed to MS-DOS is often not the same as the actual physical
memory address. This can cause data to be read from the wrong
location or cause data to be written to the wrong address, which
in turn can cause erratic system behavior, general protection
faults, and the system to stop responding (hang).
Microsoft created a standard called Virtual DMA Services, which
provides an interface that allows these bus-master controllers to
get the correct address and avoid the problems mentioned above.
However, some older bus-master controller cards do not support
this standard. Most disk controllers do support this standard
however, and this includes all MFM, RLL, and IDE controllers as
well as many ESDI and SCSI devices.
Page 24
-------------------------------------------------------------
---> Use the enclosed utility VDMA.EXE to determine if Virtual DMA
Services are available on your computer. This utility will
notify you if VDS services are available on your computer and
if your controller card supports VDS services. You can also
determine this from the VDS category on the first I_CACHE
status panel (I_cache -s). If the VDS category indicates -none
detected- or the Support [ ] category is not checked, then you
may need to install IC_LOW.SYS.
Solutions
---------
There are two ways in which I_Cache can deal with non-compliant
VDS controller cards. This first way is to simply load I_CACHE
into low memory. This will supply the disk controller with the
same physical and virtual memory address.
The second way is, if you want to load I_CACHE into high memory,
to load the i/o buffer low: "split load". This can be done very
simply by using the separate i/o buffer IC_LOW.SYS. This is
loaded in the config.sys file (loaded low) prior to I_CACHE. The
format is as follows:
device=IC_LOW.SYS [-4][-8][-16][-32][-64]
This loads the i/o buffer. You then load I_cache
high anywhere AFTER ic_low.sys with any of the
memory managers, either in config.sys or autoexec.bat.
DO NOT LOAD IC_LOW.SYS INTO UPPER MEMORY. This defeats
the purpose of the driver.
Please note that you specify the track size on the IC_LOW.SYS
command line. If you don't specify anything, it defaults to 16
sectors. If you use this driver, I_cache won't autoselect track
size and the /t: parameter won't work. IC_LOW.SYS dictates the
buffer size. IC_LOW.SYS is NOT needed if you load I_CACHE low.
Tape Drives
-----------
I_CACHE was not designed to cache or manage tape drives. The
particular tape drive should be turned OFF with the /a:
parameter. Users who wish to configure I_CACHE for their tape
drive do so at their own risk.
Magneto-Optical Drives
----------------------
I_Cache will be compatible with these disks only if they are
formatted with a standard DOS boot sector. I_Cache will handle
media configured in 512, 1024, and 2048 bytes-per-sector.
Page 25
-------------------------------------------------------------
Compressed drives
-----------------
I_CACHE can manage and cache DoubleSpace drives and their host(s).
If your DoubleSpace drives are mounted during system initialization,
then I_CACHE will detect these drives and manage them accordingly.
You may use the /a: parameter on your I_CACHE initialization line
to indicate any compressed drives which you may not want cached.
I_CACHE wil detect all compressed drives which are activated prior
to the installation of I_CACHE. To do this, I_Cache MUST be
installed AFTER this line in your Config.sys file:
device=DrvSpace /MOVE
or
device=DblSpace /MOVE
Caching for DoubleSpace drives may be removed or asserted with
the usual I_Cache /a: parameter:
I_Cache /a:d-e+
If you wish to service a drive from the command line with any of
the following DoubleSpace commands, then you should turn OFF the
appropriate drive with the /a: parameter, then reboot your
computer when you are finished (if DoubleSpace doesn't auto-
matically do it for you:
* DBLSPACE /DELETE
* DBLSPACE /CREAT
* DBLSPACE /COMPRESS
* DBLSPACE /MOUNT
* DBLSPACE /UNMOUNT
* DBLSPACE /UNCOMPRESS
* DRVSPACE can be substituted for DBLSPACE
You should also turn OFF any drive which is to be defragmented.
You do this with the /a: parameter prior to defragmentation. You
may re-assert the drive when you are finished.
The I_Cache status display (I_Cache -s) codes DoubleSpace drives
as follows:
Dsp Comp - Compressed DoubleSpace drive
Dsp Drive - Drive available for DoubleSpace or
Host drive
I_Cache treats compressed DoubleSpace drives like any other
drive on your system.
Page 26
-------------------------------------------------------------
SYSTEM OPTIMIZATION
Batch File Use
--------------
Batch Files (files with .bat extentions) can be an invaluable tool
in optimizing your system. These files can automatically setup
I_CACHE with important parameters prior to launching certain
applications.
For instance, if you wish to use the 32BitFileAccess feature of
Windows-for-Work-Groups to cache your hard disks instead of using
I_CACHE for this purpose, then you can start WFWG from a batch file.
As stated on page 23, I_CACHE cannot manage the same drives as
WFWG. For instance, if you have four drives: A,B,C, and D, and
you wanted 32BitFileAccess to manage drives C and D, then you could
start up WFWG with the following batch file, which would turn OFF
hard disks C & D (for I_CACHE) before starting up WFWG, then
reasserting the drives when you left WFWG. Redirecting to NUL
will eliminate any display by I_CACHE.
I_CACHE /a:c-d- > NUL
Win /3
I_CACHE /a:c+d+ > NUL
While in WFWG, I_CACHE would still manage your floppy drives (A & B).
To make I_CACHE work even better with WFWG, you could initially
install I_CACHE with a Windows value of 128 or so:
I_CACHE /i /c:4096.128
In this example, when I_CACHE enters Windows, it will free up most
of its XMS memory and keep only 128k for the floppy drives. This
will leave the rest of the XMS memory for 32BitFileAccess.
Defragmentation utilities like DOS's DEFRAG.EXE and Norton's
Speedisk should have all I_CACHE drives turned OFF prior to
the startup of these applications. Norton's utility should also
use the /q parameter. A batch file could assert the proper
parameters automatically prior to starting the application and
restore I_CACHE's parameters afterwards. For example, your batch
file could use these three lines only (assuming that your system
has four drives A,B,C, & D):
I_CACHE /a:a-b-c-d- /q- > NUL
SPEEDISK [parameters]
I_CACHE /a:a+b+c+d+ /q+ > NUL
Please see your DOS manual for more information on batch files
and their use.
Remember, if you put "> NUL" on the I_CACHE command line as shown
above, you will prevent I_CACHE from displaying results to the
screen. A "quiet" display as shown above is favorable in batch
files.
Page 27
-------------------------------------------------------------
THE I_CACHE API
Int 2fh
-------
I_CACHE uses four (4) calls from the Smartdrv API:
1.) Installation check -
AX = 4A10h
BX = 0000h
CX = EBABh
Return:
AX = 1CACh if I_cache is installed
DX:BX = cache hits
DI:SI = cache misses
BP = version in BCD (01.10 = 0110h)
2.) Flush buffers -
AX = 4A10h
BX = 0001h
3.) Get device driver for drive -
AX = 4A10h
BX = 0007h
BP = drive number (0 = A, 1 = B, etc.)
Return:
ES:DI = address of device driver header for drive
(stored info from original drive DPB)
DL = subunit number for drive
4.) Reset cache -
AX = 4A10h
BX = 0002h
PRECAUTIONS & SUGGESTIONS
Precautions
-----------
1.) As with all disks and disk caches, you should take time to
perform daily full or incremental backups to safeguard your
data. Computer failure can't be predicted.
Page 28
-------------------------------------------------------------
2.) Use the DOS MIRROR command faithfully to save your data
FATs. This is especially important when you start to use a
new disk cache.
3.) Use the DOS MIRROR command with the /partn parameter to
save your partition table entries.
4.) Do NOT load I_CACHE from a command shell. When you exit
the shell, your computer will probably hang. Install
I_CACHE from the root shell only (config.sys or
autoexec.bat files).
5.) Check the status display or use the hot key combination
LSHIFT+ALT+F, or I_cache /f from the command line to ensure
that the cache is flushed of all written buffers prior to
turning off your computer. If you experience a power
failure, you may lose data that hasn't yet been written to
disk.
6.) See the Software Compatibilities section prior to using any
disk calibration, defragmenting or disk fix-it utilities.
Suggestions
-----------
1.) Don't allocate all of your memory for disk caches. Make
sure to leave some for programs that require DOS extenders,
etc., such as programming utilities like Codeview, MASM and
the like. Cache values for use within the Windows
operating system should be somewhat less than the main
cache value. The following are some recommended cache
values:
Total XMS memory I_cache size Windows size **
---------------- ------------ ------------
1000k 1000k -
2000k 1000k -
4000k 2048k 1000k
8000k 3072k 2048k
16000k 4096k 2048k
32000k 8000k 6000k
** optional
Page 29
-------------------------------------------------------------
Disclaimer
----------
The makers and developers of I_CACHE make no represent-
ation, warranty, assurance or inducement, express or
implied, as to its adequacy, sufficiency or freedom from
defect of any kind. Neither the makers or developers
will have any liability to any user resulting from the
use of it nor are they responsible for any data loss or
computer failure resulting from any inherent incompat-
ibilities with any other software or hardware.
CUSTOMER SERVICE
For technical problems or questions, contact Miles Pawski.
COMPUSERVE: 70473,527
FAX: 415-626-9539 (USA)
VOICE: 415-626-1759 (USA)
INTERNET: 70473.527@compuserve.com
MAIL: P.O. Box 170448, San Francisco, California 94117 USA
SHAREWARE NOTES
Shareware terms:
This is a user-supported program distributed as SHAREWARE! You
are entitled to use it for a trial period of 30 days. After that,
you must REGISTER for use. BBS operators, and users are
encouraged to distribute this trial-program, as long as no
charges other than the BBS connection or media fees are charged.
For business, education and government agencies, this program
should not be operated without an on site licence for daily use.
Registration through COMPUSERVE:
Program Title: I_CACHE 1.11 Registration ID: 6971 (GO SWREG)
Author: Miles Pawski
Registered user's privileges:
■ Technical support for this program and related problems.
■ Mailed notice of new versions and products available!
■ The next upgrade at no more than media and processing fees.
Please indicate which version you are using now.
■ Inclusion of the CD-AUDIO player.
Page 30
------------------------------------------------------------