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.20 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 /q ............................................ 8 /t /c ............................................ 9 /s /b ............................................ 10 /f /? /a ......................................... 11 /L ............................................... 12 /e /r ............................................ 13 /k ............................................... 14 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=10 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.20 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 - $ICACHE$ 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.3k 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 all disks. Non-removable, fixed disks are automatically write-cached. Can be activated or defeated with the /a: parameter. (See /a: parameter for further instructions). 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.20 FORMAT: I_CACHE [/i] [/c:xxxx[.xxxx]] [/s] [/f] [/q+-] [/a:[xx[+-][(+-)]xx[+-][(+-)]..]] [/?] [/t:xx(4,8,16,32,64)] [/e[r+-w+-]] [/b:xx[+-]] [/r:(Devicename,Devicename)] [/L+-] [/p] [/k12-] 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 NETWORK drivers 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 /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) Page 8 ------------------------------------------------------------- /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 or /t:32 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. 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. Page 9 ------------------------------------------------------------- /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 volumes of disks. 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. 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. Page 10 ------------------------------------------------------------- /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 read-cached Fixed disks write-cached NOTE: THIS PARAMETER SUPERCEDES THE /W /D & /M PARAMETERS. Use /a: by itself on the command line to bring up a list of drives which I_CACHE is managing and caching. This specification indicates which drives I_CACHE is to manage, including CD_ROM drives. It will also turn on and off write caching to any drive. By default, all detected fixed (unremovable) disks are write-cached unless specified otherwise with this parameter. Write-caching and general drive management can be asserted on other drives from either the installation line or from the command prompt. 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. A + or a - after a drive letter indicates that the drive is turned on or off. When a drive is turned on, it is auto- matically read-cached, and vice-versa. A (+) or (-) after a drive letter indicates that write caching for the drive is turned on or off. These parameters may be combined. EXAMPLE: I_Cache /a:C+(+)D(-) ^ | In this case, the + after the drive specifier C indicates that the drive is turned on and managed by I_Cache. The drive is automatically read-cached when it is turned on. I_Cache /a:C+(+)D(-) ^^^ ||| The (+) indicates that write-caching for the drive is activated for drive C. I_Cache /a:C+(+)D(-) ^^^ ||| The (-) indicates that write-caching for drive D is deactivated. Write-caching isn't changed unless you specify (+) or (-) after the drive specifier. Page 11 ------------------------------------------------------------- Since all detected drives are automatically read-cached, you need only specify which drives are NOT to be cached or managed on the INITIALIZATION-LINE of I_CACHE. You may also specify any write-caching requests. I_Cache /a:B-D-G(+) After I_CACHE is installed, you may turn on and off drives and write-caching from the DOS command line. I_Cache /a:A+(-)D-E(+) In this example, drive A is turned on and write-caching for drive A is turned off; drive D is turned off, and write- caching for drive E is turned on. A drive cannot be write-cached but not read-cached. For instance, I_Cache /a:C-(+) turns the C drive off and stores the write caching value. When drive C is activated again, write-caching will be in force. Conversely, if drive C is already turned off, I_Cache /a:C(+) will do nothing but store the write-caching request. When drive C is activated, write-caching will be in force. Activating write-caching for floppy drives may diminish their performance to a great degree. /L+- DISK CHANGE-LINE SUPPORT DEFAULT: /L- 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), or 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. 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 (Parenthesis are required!!): [device=]i_cache /i /c:3000 /r:(MSC001,MSC002,SONY03) 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$ MSCDEX 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. /k12- Special keyboard handling DEFAULT: /k- (OFF) If you experience keyboard problems, try these special parameters: /k1 Keyboard handling level 1 /k2 Keyboard handling level 2 /k1 inhibits the keyboard during delayed writes. /k2 adds inhibition of the keyboard during all disk reads and writes all well as functions listed for /k1. These parameters defeat pre-emptive keyboard multitasking during delayed writes. Page 14 ------------------------------------------------------------- COMPATIBLE INSTALLATION PARAMETERS /i /c /t /r /b /L /a /e *********> - can be used in place of / for parameter designation. i.e.: -w NOTE: The /m /d /w parameters were discontinued in this version. INSTALLATION AND CONFIGURATION EXAMPLES device=i_cache.exe /i /c:4000.2500 /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. 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. The update bell will be OFF by default. Track size will be auto-selected. device=i_cache.exe /i /c:6000.3000 /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. The track size will be 32 sectors. This line must come AFTER all block drivers. device=i_cache.exe /i /c:6000.3000 /b- /a:B(+)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. The update bell will be OFF. The buffer size will be auto-seclected. Write caching for drive B is activated and 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 ------------------------------------------------------------- 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. 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 /a:B(+)/r:(SONY01) . . autoexec.bat file: . PATH=..... . MSCDEX /V /E /D:$ICACHE$ Page 16 ------------------------------------------------------------- With this example: I_CACHE is loaded high into the largest space that QEMM can find. Cache size will be 3000k 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. Write caching for drive B is activated. 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 (all removable media devices). ERROR MESSAGES I_Cache Version 1.20 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 or /GETSIZE indicates that I_Cache needs 60k+, then install I_Cache with the /SIZE parameter: loadhi /size:49k I_Cache.exe... OPTIMIZE: If you experience problems, remove write-caching from the boot drive on which Config.sys and Autoexec.bat are located. (See the /a: parameter on page 11 of this documentation). 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 Reserved - 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 five (5) 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) CX = I_Cache's code segment 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 original device driver header for drive (stored info from original drive DPB) DL = subunit number for drive 4.) Reset cache - AX = 4A10h BX = 0002h 5.) Status and write-cache controls AX = 4A10h BX = 0003h BP = drive number (0 = A, 1 = B, etc.) DL = function 00h = only get information (status) 03h = turn on write-caching for drive 04h = turn off write-caching for drive Return: AX = 1CACh if OK DL = Status bit 7 1 = drive turned OFF 0 = drive ON/read cached bit 6 1 = drive is write-through 0 = write-cached bit 5 1 = CDROM drive bits 0-4 drive number (0 = A, 1 = B, etc.) DL = 0FFh if drive not detected by I_CACHE NOTE: Write-caching will not take affect unless the drive is ON (read-caching in force). 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. 7.) If you have write-caching activated for external drives with removable media, ensure that all buffers are flushed prior to emoving the disk from the drive. 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 V1.20 Registration ID: 7972 (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 ------------------------------------------------------------