SRDISK (TM) ReSizeable RAMDisk version 2.04 for XMS and EMS memory Copyright (c) 1991-1993 Marko Kohtala All rights reserved CONTENTS 1. Disclaimer of warranty 2. License 3. Features included 4. Files in this release 5. Usage 5.1. Basic installation 5.2. SRDISK device driver 5.2.1. XMS memory device driver 5.2.2. EMS memory device driver 5.2.3. EMS 3.2 memory device driver 5.3. SRDUMMY device driver 5.4. SRDISK program 5.4.1 SRDISK sample commands 5.4.2 SRDISK command line options 6. Troubleshooting 7. Trademarks 8. Last words 1. DISCLAIMER OF WARRANTY THIS SOFTWARE AND MANUAL ARE PROVIDED "AS IS" AND WITHOUT WARRANTIES AS TO PERFORMANCE OF MERCHANTABILITY OR ANY OTHER WARRANTIES WHETHER EXPRESSED OR IMPLIED. BECAUSE OF THE VARIOUS HARDWARE AND SOFTWARE ENVIRONMENTS IN WHICH THIS PROGRAM MAY BE USED, NO WARRANTY OF FITNESS FOR A PARTICULAR PURPOSE IS OFFERED. GOOD DATA PROCESSING PROCEDURE DICTATES THAT ANY PROGRAM BE THOROUGHLY TESTED WITH NON-CRITICAL DATA BEFORE RELYING ON IT. THE USER MUST ASSUME THE ENTIRE RISK OF USING THE PROGRAM. ANY LIABILITY OF THE SELLER WILL BE LIMITED EXCLUSIVELY TO PRODUCT REPLACEMENT OR REFUND OF PURCHASE PRICE. 2. LICENSE This software is NOT public domain. It is copyrighted software distributed as shareware. This software is NOT free. A license fee must be paid if used longer than for one month evaluation period. See PAYMENT.DOC for details of the payment. If you received this software on a CD-ROM or from a disk vendor, you have only paid for the disk. You do NOT have a license to use this software. Everybody has the right to copy and distribute this software as long as it is unmodified and all the original files listed in chapter 4 of this document are included. A fee of at most $7 may be charged for the total expences of copying. If a copying fee is taken, the receiver of this software must be made aware that he has only the evaluation and copying license stated above. Remember that you may COPY THIS TO YOUR FRIENDS! This is the idea behind shareware. Show this to your boss also (not meaning: if you do not count him/her to your friends ). SRDISK can prove worth a few megabytes of memory to you. 3. FEATURES INCLUDED This RAM disk currently supports the following features: * Compatible with MS-DOS versions from 3 to 6 and DR-DOS 5 to 6. * XMS - Extended memory on 286 and up with HIMEM or other XMS 2.0 driver. * EMS - Expanded memory of LIM/EMS version 3.2 and 4.0. * Device drivers may be chained to form larger disks using many different kind memories. * Resizeable - can preserve disk contents if new format has room enough. * Removable. Can be disabled without reboot. * Supports 32-bit sector addressing introduced in DOS 4. Thus over 32M RAM disks are possible if you have the memory. * Configurable - sector size - cluster size - root directory entry count - number of FATs * Predefined DOS and FDFORMAT floppy disk look-alike formats. * DISKCOPY compatible with DOS versions from 3.20 up. You can copy to/from SRDISK drive using DOS DISKCOPY. * Write protection. * Can optionally set environment variables SRDISKn (n=1,2,...) to the installed SRDISK drive letters. * Comes with a dummy drive you can use to locate SRDISK (or any other installable) drive at a higher letter. I have a list of new features to implement in the future. By sending money and feature suggestions you can help me make this program still better. Users may find that the ability to resize is invaluable. Since some programs can take best use of memory by directly using it while others need a fast disk for temporary files, you can now have optimal performance with both kinds of programs without the trouble of changing configuration and rebooting. The feature of being able to resize automagically when there is need for it is currently not in my reach. FAT filesystem in DOS just was not designed for it. There is some more explanation about it later in this document. 4. FILES IN THIS RELEASE The following files are distributed in this release: READ.ME some notes SRDISK.DOC this document SUOMI.DOC Finnish version of this document SRDXMS.SYS device driver for XMS memory SRDXMSS.SYS device driver for XMS memory (small version) SRDEMS.SYS device driver for EMS 4.0 memory SRDEMSS.SYS device driver for EMS 4.0 memory (small version) SRDEMS3.SYS device driver for EMS 3.2 memory SRDUMMY.SYS device driver for nothing but use drive letters SRDISK.EXE formatter program PAYMENT.DOC registering information WHATSNEW.DOC what is new in this release and history FILE_ID.DIZ short description of packet for BBS operators The small versions of device drivers do not support DOS DISKCOPY compatibility and may require user to make sure there is enough stack available by specifying STACKS=8,512 (or similar) in CONFIG.SYS. Also, you can not chain another device driver after a small version device driver. 5. USAGE The SRDISK is basicly split into two parts: 1) a device driver to add the virtual drive into DOS and 2) a program to control the device driver The following explains the installation and how to use both of these parts. 5.1. BASIC INSTALLATION The basic installation for XMS memory can be done following these steps: 1. Copy SRDXMS.SYS into you root directory. 2. Copy SRDISK.EXE into some directory in your PATH. 3. Make sure you have HIMEM.SYS or some other XMS driver installed in CONFIG.SYS before the following step. 4. Add into your CONFIG.SYS line DEVICE=SRDXMS.SYS 5. Add into your AUTOEXEC.BAT after the PATH command line SRDISK The defines the disk size in Kbytes. If you have EMS memory, then use file SRDEMS.SYS in place of SRDXMS.SYS and make sure EMS 4.0 device driver is installed in CONFIG.SYS before the SRDEMS.SYS. The device driver adds into DOS a new disk drive. Before you run SRDISK.EXE or when you set the disk size to zero, the new disk drive behaves as if you have a floppy drive without a floppy inserted. 5.2. SRDISK DEVICE DRIVER For a RAM disk you need a device driver. This device driver supplies a storage for an array of sectors which DOS uses to store all the data. SRDISK comes with separate drivers for storing the sectors in XMS (extended memory managed by HIMEM.SYS or other XMS driver) and in EMS memory. Most often you do not need any parameters for the device drivers, but the driver accepts two parameters: DEVICE=SRDmmm.SYS [d:] [/A] The [] around the parameter mean it is optional; you must not type the brackets. d: The 'd:' can be used to tell the driver at what letter it is assigned in case DOS does not let it know it. Another use for 'd:' is to define into what SRDISK drive the current driver is to be appended. If you need to have SRDISK at some specific drive letter, you can use SRDUMMY.SYS. Note though, that drive letters are always used in order from A to Z and you can only use up a few drives before the letter you want to use. /A This tells the driver to append itself to the previously installed SRDISK device driver. The memory accessed using this driver is then available as extra memory to the previously installed SRDISK drive. If you want the low part of your disk to use XMS and the high part EMS memory, you can put these two lines into your CONFIG.SYS DEVICE=SRDXMS.SYS DEVICE=SRDEMS.SYS /A For this to work, the first device driver must have the extra code to look into the next driver for more memory. Therefore the first device driver must not be the small version SRDXMSS.SYS or SRDEMSS.SYS. Merely installing the driver gives you no RAM disk. It is as if you had installed a floppy drive without putting a disk in the drive. For that you need the SRDISK.EXE program. The following chapters give some explanation about the different memory types and explains reasons for the problems there are. 5.2.1. XMS MEMORY DEVICE DRIVER 8088 processor instruction set can only access memory at addresses from 0 to 1048575 (1 megabyte) and memory above the address 1048575 is called extended memory. i80286 had a new mode (protected mode) where the instructions had a little different meanings and could be used to address memory above the 1 megabyte limit. XMS (eXtended Memory Specification) is a means to control the usage of extended memory between applications so that each application can have exclusive access to some range of addresses without fear the other application would be using the same memory for its own purposes. When SRDISK (or any other XMS client) needs extended memory, it requests it from extended memory manager (EMM) that follows the eXtended Memory Specification. Most common and free such memory manager is HIMEM.SYS. The EMM then tries to find available memory block (a contiguous range of addresses available) that is as large or larger than the requested memory block. If all of the available blocks are smaller than the requested size, the request fails even if the available blocks would be large enough when combined. Since DOS and DOS programs still run in the 8088 mode where instructions can not address memory beyond 1 megabyte limit, there is no way for them to access the memory directly. XMS also defines service to copy memory to and from the memory beyond the 1 megabyte limit. 5.2.2. EMS MEMORY DEVICE DRIVER Since 8088 could only address memory up to 1 megabyte, any memory added had to be made to use the same addresses with already existing memory. Some new hardware had to be added so that the memory occupying a range of addresses could be switched with another block of memory. Lotus/Intel/MicroSoft Expanded Memory Specification (LIM EMS) was developed to provide standardized access to this memory for much the same reason XMS was developed to provide access to extended memory. EMS uses a 64K memory area divided into four separate 16K windows to access the expanded memory. These windows show different 16K blocks of EMS memory (called pages) as requested by the application. EMS memory can also be simulated very efficiently with 386 virtual memory. For example EMM386 uses this method to convert extended memory into expanded memory. Since EMS memory is consisted of separate 16K pages, there is no requirement to have the allocated memory be in contiguous blocks as with XMS memory. Since all the available memory can be allocated, you can better predict how much memory you can allocate. 5.2.3. EMS 3.2 MEMORY DEVICE DRIVER EMS 3.2 is an older version of EMS. 4.0 is the currently most used one. The main reason SRDISK has version 3.2 driver is that MS-Windows 3.1 has a serious bug in the EMS protection it uses. Basicly with the EMS 3.2 driver you can access EMS disk that has been allocated before starting MS-Windows but not one that is allocated inside DOS window. With the EMS 4.0 driver you can not access memory allocated before starting MS-Windows but can well access memory that is allocated inside DOS window. In any case, MS-Windows will not allow any other process access the disk allocated in another process. 5.3. SRDUMMY DEVICE DRIVER SRDUMMY.SYS can be used to force installable device drivers to some specific drive letters. To better understand what for you might need it, read the following paragraph. DOS allocates drives in order from A to Z. The first drives A and B are always used for floppy drives. If you have hard disks, drives from C up are allocated to them by DOS before CONFIG.SYS is loaded. After all the standard hardware drives have been assigned, DOS reads the CONFIG.SYS and loads the devices found there. Each block device driver (a device supplying only an array of blocks of data, like SRDISK) is assigned one or more drive letters in the order they are in CONFIG.SYS. The device drivers can not determine to which drives they get assigned. SRDUMMY.SYS tells DOS it provides one or more block devices and thus uses up some drive letters. There will not be any drives though, and if you access the drives, you'll get the drive not ready error. SRDUMMY.SYS takes one parameter: The drive letter the next block device should be loaded to. Take a look at the following sample CONFIG.SYS: DEVICE=SRDXMS.SYS DEVICE=SRDUMMY.SYS G: DEVICE=SRDEMS.SYS If you have one hard disk, the floppies and hard disk use letters A-C. SRDXMS.SYS is then loaded to D and SRDUMMY.SYS uses drives E and F. SRDEMS.SYS loads thus at G. If you add a second hard drive, it will take drive letter D and SRDXMS.SYS will then be at E and SRDUMMY.SYS use only drive F putting SRDEMS.SYS to G again. If you add a few more drives so that drive G is already in use before SRDUMMY.SYS gets loaded, you will only get a warning message from SRDUMMY.SYS and the SRDEMS.SYS will load at the next available drive letter. DR-DOS 6 seems not to allow access to drive letters after P: even with LASTDRIVE=Z statement in CONFIG.SYS. So with DR-DOS you must avoid using the last drive letters after P:. 5.4. SRDISK PROGRAM The disk can be enabled by, for example, using command "SRDISK 1024" which will make first SRDISK a 1024K disk. It can be disabled by making it of size 0: "SRDISK 0". You should include the command to enable the RAM disk into your AUTOEXEC.BAT file. The SRDISK.EXE is self documented. You'll get the documentation by typing at the DOS prompt "SRDISK /?" and hitting enter. To get a hang of it better, some examples with explanations are given below. 5.4.1. SRDISK SAMPLE COMMANDS Command SRDISK 1024 creates or changes the old disk to a 1024K (= 1M) disk. More precisely it calculates various disk parameters as it best sees fit for most users needs. Those disk parameters can be defined by user on the command line if the calculated values do not meet his needs. After the parameters have been calculated, the memory (1024K = 1M) needed for the disk is allocated and a disk image is created into the memory. The calculated parameters include sector size, cluster size, number of FATs and root directory size. - Sector is the basic unit of storage. It's size does not mean much, but it has to be a power of 2 and no larger than 512 bytes. - Cluster size tells in how large blocks the space is allocated. Larger clusters mean smaller FAT (= File Allocation Table), but then even the smallest file always takes at least that much space. Cluster can not be smaller than one sector. A cluster is a collection of sectors. - FAT is the table that holds information about each allocation unit, cluster, on the disk. The information can be indication that the cluster is free, or where the next cluster of the file is or that the cluster is unusable. A disk only needs one FAT - though multiple copies of it can be specified. Note that the other FATs are only copies of the first one. - Root directory is limited to hold only some predefined number of files. If you get "Can not create file" errors while there is plenty of free space on disk, you need to make the root directory larger. Alternatively you should create a subdirectory and create the files there. Subdirectories can be arbitrarily large. If there is data on the disk to be preserved, sector and cluster size are not changed. Command SRDISK 1024 /O does the same as the command 'SRDISK 1024' except the various disk parameters are not calculated but instead the old parameters are used. Command SRDISK /F:1440 tries to create the disk to look like a real floppy disk. It also defines some parameters that otherwise have no effect like media descriptor, number of heads and sectors per track. These parameters have no other function but to make it look like it is a real, physical disk - which it is not. SRDISK drives are not accessible through BIOS, so some diskcopy and utility programs can fail if used with SRDISK. Command SRDISK /S:256 /C:1024 /D:64 reformats the disk. The size is determined by the old size of the disk even without the use of /O. Sector size is changed to 256 bytes, cluster size to 1024 bytes (two sectors) and root directory will hold 64 entries (one of which is used for the volume label). Command SRDISK /U clears the disk. It recalculates the format and makes it better if possible, but preserves the disk size. Without this switch, the disk contents are preserved if possible. This is also usefull if you can not resize the disk because of errors on it -- using this option the errors will be ignored and the disk is made whole new. Command SRDISK E: tests if E is a SRDISK RAMdisk and, as no format is defined, display it's current configuration. The letter may not correspond to the letter known by DOS for the drive if the letter is defined wrong when installing the SRDISK.SYS device driver in CONFIG.SYS. Command SRDISK without the drive letter specified tries to determine the drive by first trying the current drive and if it is not a SRDISK drive, then the first SRDISK drive loaded in CONFIG.SYS. As no change in the format is defined, the current configuration of the found drive are displayed. 5.4.2. SRDISK COMMAND LINE OPTIONS To ease remembering the command line options, SRDISK has for some settings several different options. Many of the options are long, but you can truncate them if you write enough for SRDISK to identify the option unambiguously. An exact match in the full lenght of the option is always identified instead of some another option that begins with the same characters. All numeric parameters for the options are translated using the C language rules: Number starting with 0 is octal number (base eight) and with 0x is hexadecimal (base 16), others are decimal. The options in alphabetical order are /? List of most important command line options /A:n Number of FAT copies (1 or 2) /ASK Ask for confirmation if data would be lost /AVAILABLE:n Resize to disk to have n Kbytes of space available /C:n Cluster size /CLUSTER:n Same as /C /D:n Dir entries /DEVICETYPE:n Device type for DISKCOPY compatibility /DIRENTRIES:n Same as /D /DOSFORMAT:n DOS or FDFORMAT lookalike format /E Set environment variables SRDISKn /ENVIRONMENT Same as /E /ERASE Clear disk contents, implies /FORCE /F:n Same as /DOSFORMAT /FATS:n Same as /A /FILESPACE:n Make the disk have n Kbytes space for files /FORCE Destroy data if necessary to force new format /FREEMEM:n Determine disk size to leave at least n Kbytes mem free /H Same as /? /HEADS:n Number of heads for DISKCOPY compatibility /HELP Same as /? /M:n[:n...] Max sizes for different drivers chained to a drive /MAXSIZE Allocate the disk as large as it can safely be allocated /MEDIA:n Media ID byte for DISKCOPY compatibility /MINSIZE Alias to /AVAILABLE:0, minimize the disk /NO NO, do not destroy data to complete new format /O Use old disk format where not redefined /OLD Same as /O /REGISTER Display registration information /S:n Sector size (128, 256 or 512 bytes) /SECTORS:n Number of sectors per track /SECTORSIZE:n Same as /S /SIDES:n Same as /HEADS /SPT:n Same as /SECTORS /U Same as /ERASE, FORMAT compatible /UNCONDITIONAL Same as /ERASE /FORCE /V:n Verbose level (1-5) to control amount of output /VERBOSE:n Same as /V /W:x Write protection x is ON/+ or OFF/- /WRITEPROTECT:x Same as /W /Y Same as /FORCE /YES Same as /FORCE The options by function /? /H /HELP List the most important command line options and exit. /A:n /FATS:n Number of FAT copies (1 or 2). You need only one FAT unless you need to make the disk look like some floppy disk. /AVAILABLE:n /MINSIZE Space available on the disk. The disk size will be counted to be large enough to hold the files already on it and to have n Kbytes of space available. /MINSIZE is the same as /AVAILABLE:0 and will also make the root directory smaller. /C:n /CLUSTER:n Cluster size. Cluster is the unit used to allocate disk space. This option has effect on the space used for File Allocation Table. If cluster size is small, bigger FAT is needed and there is less room for files, but files may take more room. /D:n /DIRENTRIES:n Root directory entries. FAT file system has fixed size root directory. You can specify the size for it using this option. Note that each entry is 32 bytes long and a fixed amount of sectors are used to hold the entries. Thus if sector size is 512 bytes each sector can hold 16 entries (512 / 32 = 16) and specifying /D:4 or /D:16 uses exactly the same amount of space on the disk: one sector. If there is nothing against it, I start to round the number of root directory entries up to fill the last root directory sector. Some utility programs can be confused if the last sector is only partially used. /DEVICETYPE:n DOS does not care what type the device is, but in case some utility program asks DOS for the type it can be specified with this switch. This is normally set correctly if you use the /F switch. Device types are 0 = 360K 1 = 1.2M 2 = 720K 3 = 8-inch single-density 4 = 8-inch double-density 5 = Hard disk 6 = Tape drive 7 = 1.44M 8 = Read/Write optical 9 = 2.88M /E /ENVIRONMENT Set environment variables SRDISK1, SRDISK2 etc. to the drive letters or SRDISK drives installed. You can then use the variables in batch files to access the RAM disk. For example: REM Set environment variables without much output and REM make a tiny disk at the same time SRDISK /E /V:1 /F:1 SET TMP=%SRDISK1%:\TMP MKDIR %TMP% IF "%SRDISK2%" == "" ECHO You have only one SRDISK drive /F:n /DOSFORMAT:n DOS or FDFORMAT lookalike formats. The number n defines the disk size in Kbytes. This option also sets all the other parameters besides the size to match the corresponding DOS or FDFORMAT created floppy disk. The currently supported formats are Size Media Device SPT Head Root 160 FE 360 8 1 64 DOS 180 FC 360 9 1 64 DOS 200 FD 360 10 1 112 FDFORMAT 205 FD 360 10 1 112 FDFORMAT 320 FF 360 8 2 112 DOS 360 FD 360 9 2 112 DOS 400 FD 360 10 2 112 FDFORMAT 410 FD 360 10 2 112 FDFORMAT 640 FB 720 8 2 112 DOS 720 F9 720 9 2 112 DOS 800 F9 720 10 2 112 FDFORMAT 820 F9 720 10 2 112 FDFORMAT 1200 F9 1.2 15 2 224 DOS 1440 F0 1.44 18 2 224 DOS 1476 F0 1.44 18 2 224 FDFORMAT 1600 F0 1.44 20 2 224 FDFORMAT 1640 F0 1.44 20 2 224 FDFORMAT 1680 F0 1.44 21 2 224 FDFORMAT 1722 F0 1.44 21 2 224 FDFORMAT 2880 F0 2.88 24 2 240 DOS In addition to these there is a special format 1 to make a mini disk. This can be used if you have your RAM disk in your PATH and do not want to get Drive Not Ready errors when you have freed the memory for RAM disk. Check your memory manager though: some memory managers allocate memory in 16K chunks and a 1K disk uses as much memory as a 16K disk does. /FILESPACE:n Space available for files. The disk will be larger than n Kbytes, since file allocation table and root directory always take some space too. Note that files usually take some extra space because the space for them is allocated in clusters. For example, if cluster size is 1024 bytes (1K), any file this long or smaller (but not 0 bytes) will use one cluster and thus 1024 bytes. Subdirectories also use file space. /FREEMEM:n /MAXSIZE Memory available for other programs. The disk will be sized to leave at least n Kbytes of memory to other programs. The disk size may be less than necessary if there is some uncertainty whether or not all the memory can be allocated. FOR XMS MEMORY, THIS CAN ALLOCATE LESS THAN THERE IS AVAILABLE SINCE XMS CAN NOT RELIABLY PUT ALL FREE MEMORY IN ONE BLOCK. ALSO, SINCE SOME MEMORY MANAGERS ALLOCATE MEMORY IN BLOCKS OF 4 OR 16 KBYTES, THERE MIGHT BE 15 KBYTES LESS FREE MEMORY THAN REQUESTED. The disk can also be disabled if more free memory is requested than there is available. /MAXSIZE is same as /FREEMEM:0, thus using all safely available memory for the disk. If some program of yours needs free memory and you do not care for disk contents, you can put for example SRDISK /FREEMEM:1024 /YES into a batch file to start to program. The /YES gives permission to clear the disk if the disk can not be made small enough otherwise. /HEADS:n /SIDES:n Number of heads for DISKCOPY compatibility. This is normally set correctly if you use the /F switch. /M:n[:n...] Max sizes for different drivers chained to a drive. Normally SRDISK uses as much space as is available on the first driver and only then starts allocating on the second one. If you want to use only up to some amount of memory on the different drivers chained to one drive, you can define the amounts with this option. For example to define first driver use only 100K of memory, give command SRDISK /M:100 If you would have three or more drivers chained into one drive, you could define first and third to use 100K and let the other drivers use as much as they were allowed to use before with command SRDISK /M:100::100 /MEDIA:n Media ID byte for DISKCOPY compatibility. This is normally set correctly if you use the /F switch. Use Media IDs in the range from 0xF0 to 0xFF. Smaller values make CHKDSK report that it is possibly non-DOS format media. /O /OLD Use old disk format where not explicitly redefined with command line options. /REGISTER Displays the registration information. /S:n /SECTORSIZE:n Sector size (128, 256 or 512 bytes). Sector is the basic allocation unit of a disk. Smaller sector size can decrease the amount of memory wasted on boot sector, FAT and root directory, but that is just about the only benefit of it. Clusters are formed of sectors, so sector size can not be larger than cluster size. DOS uses by default 512 bytes per sectors. /SECTORS:n /SPT:n Number of sectors per track for DISKCOPY compatibility. This is normally set correctly if you use the /F switch. /U /UNCONDITIONAL /ERASE Clear disk contents. This implies option /YES. If your disk gets corrupted and SRDISK refuces to reformat it, try this switch. SRDISK should not then care about the current disk, but rather just wipes it off and creates a new one. /V:n /VERBOSE:n Verbose level (1-5) to control amount of output. With /V:1 you can limit the output to the title. /W:x /WRITEPROTECT:x Write protection contol. The parameter x can be ON, + or nothing to enable the write protection or OFF or - to disable it. /Y /YES /FORCE /NO /ASK These are to control the need of user intervention. All questions in SRDISK are formed so that answer YES will give permission to destroy data and continue, while NO will abort the operation and try to preserve the data on the disk. By these options you can give the answer on the command line. /ASK is the default and means the user will be prompted to make choise. 6. TROUBLESHOOTING Causes of grief 1. RAM disks loose their contents when power is turned off! Do not store anything valuable there. 2. There is no XMS nor EMS memory without a proper device driver. HIMEM.SYS will do for XMS. For EMS you need to install the device driver that came with your expanded memory hardware. QEMM can supply both on 386 or better hardware and you might be better off using the SRDEMS driver with it. 3. Not all HIMEM.SYS support memory above 16M limit. HIMEM.SYS versions 2.78 and later should be good. Also these later versions may be limited to 128000K blocks; solution is to link two (or more) SRDXMS.SYS drivers (i.e. add "DEVICE=SRDXMS.SYS /A" line to CONFIG.SYS) and limit the first one with command "SRDISK /M:128000". This will only break the /MAXSIZE option. 4. DR-DOS 5 HIDOS.SYS does not implement the XMS resize function. Therefore SRDISK may not be able to resize the disk unless you replace the HIDOS.SYS with HIMEM.SYS. 5. Some programs swap themselves for a shell to the ramdisk. If you change the format of the disk or clear the disk from such program, the swapped program may not be able to recover and can crash your computer. 6. Some disk caching programs are reported to cache SRDISK too! This can cause a system crash and caching a RAM disk is anyway useless. If you use a disk cache, please load it before SRDxxx.SYS or tell it explicitly not to cache the SRDISK drive. 7. SRDISK needs it's XMS memory in one contiguous area. Therefore if SRDISK complaints about insufficient memory while you have plenty of it free, the reason might be that some other program uses a piece of the memory in the middle of the available memory. If you have a choise, use EMS since it does not (usually) have this problem. 8. There can be problems with XMS memory when not enough of it can be allocated. This may result in lost disk contents. Also some memory managers that provide both XMS and EMS (like QEMM and the EMM386.EXE of MS-DOS 6) can fool SRDISK to think there is more memory available than there really is if SRDISK uses both XMS and EMS memory for the disk. 9. Some multitasking environments (like MS-Windows) can free the memory allocated under them to the RAM disk. This will cause the data to be lost and errors in programs that try to access the disk. 10. MS-Windows has buggy memory protection that prevents programs from accessing memory allocated in another session. It also prevents using EMS memory allocated for the SRDEMS.SYS driver outside Windows and for the SRDEMS3.SYS driver inside Windows. In general you may find it better to use SRDEMS3.SYS or SRDXMS.SYS and allocate any disk you will use before starting Windows and never resize any disk while inside Windows. 7. TRADEMARKS Oh, and we should not forget these (I can not verify they are correct, but still): QEMM is a trademark of Quartedreck Office Systems Inc. Microsoft, MS-DOS, SmartDrive and Windows are trademarks of Microsoft Corporation. DR-DOS is a trademark of Digital Research Inc. Intel is a trademark of Intel Corporation. Lotus is trademark of Lotus Development Corporation. FDFORMAT is copyrighted by (and trademark of?) Christoph H. Hockst„tter, Germany. Nice work. SRDISK is my trademark. If any mentioned trademarks are not included in this list, please tell me about them. They are anyway hereby acknowledged. 8. LAST WORDS Please, if you know of a way to get around the Windows 3.1 memory protection, let me know about it. You can contact me by sending E-mail from Internet to `Marko.Kohtala@compart.fi' CompuServe to `>INTERNET:Marko.Kohtala@compart.fi' If the above address fails (if you do not get a reply, it propably has failed), I can still be reached at `Marko.Kohtala@hut.fi'. My surface mail address is Marko Kohtala PL 115 FIN-01451 Vantaa FINLAND You can also call Airline BBS, 24H, HST, V.32, V.42, MNP, +358-0-8725380 and leave mail at the PRIV area to me, Marko Kohtala (sorry, no netmail there). You can also always get the latest release of SRDISK from there. If you have access to Fidonet, Bitnet, UUCP mail or just about any network, ask your system operator if you can mail to Internet. You can find the latest release of SRDISK in United States, Illinois at The Midrange System BBS Sysop: David Gibbs FidoNet: 1:115/439 Phones: 708-776-1062 and 708-776-1063, both have HST and V.32 Using Remote Access You can file request latest version using magic file name SRDISK.